0

我想求解这种形式的方程:x' = -Ax + B.|sin(100*pi*t)| 我像这样使用ode45:

function find_x
t = 0:0.001:10;
x0 = 0;
R1 = 90000;
R2 = 1000;
C = 0.001;
[t,x]=ode45(@rhs, t , x0);

plot(t,x);

    function dxdt = rhs(t,x)
        dxdt = -(C/R1 + C/R2)*x + C/R1*abs(sin(100*pi*t)) ;
        %It's form is dx/dt = -A.x + B.U(t)
    end
end

但我认为它给了我错误的答案。实际上,我从一个问题“找到二极管电桥和电容器之后的输出电压形式”得到这个方程,如下所示: 在此处输入图像描述

任何人都可以向我建议另一种解决方法吗?谢谢。

4

1 回答 1

3

不是真正解决这个问题的地方,这让我回到了我的信号和系统时代,但基本上你的方程应该有 C 作为分隔符......

记住是

I = C *dV/dt

因此,如果您在 RHS 上有 dV/dt,您应该期望在 LHS 上看到 1/C:

function khan
t = 0:0.001:10;
x0 = 0;
R1 = 90000;
R2 = 1000;
C = 0.001;
options = odeset('RelTol',1e-6,'AbsTol',1e-8);
[t,x]=ode45(@rhs, t , x0,options);

plot(t,x);

    function dxdt = rhs(t,x)
        dxdt = -(1/R1 + 1/R2)*x/C + 1/R1*abs(sin(100*pi*t))/C ;
        %It's form is dx/dt = -A.x + B.U(t)
    end
end

在此处输入图像描述

于 2013-06-03T02:14:19.950 回答