1

所以我正在尝试对下图中显示的系统进行建模。我之前在 ODE45 中使用 Matlab 建模,但由于某种原因,我不断收到以下代码的奇怪输出。我不确定是不是因为我输入了 if( (Vin - Vd - Vc)/Ll >= 0 ) 的条件,这有助于防止在二极管反向偏置时任何电流在二极管的错误方向上流动。

我试图附上图片,但我的代表不够高,真的吗?,所以我必须描述它。

source -> Inductor(Ll) -> diode -> Capacitor -> ground
                               |->Inductor(Lline)->resistor(Rf) -> ground

任何帮助表示赞赏!

function dy = ThreeLamp(t,y)

I1 = y(1);
I2 = y(2);
Vc = y(3);

Is = 1E-15;                                     % these are parameters for the diode
n = 1.05;
Vt = .025;

D = 24;                                        % this number is from 0 to 50
f = 100E3;                                     % this is the frequency of the input waveform
Ll = 5E-7;
Lline = 5.3E-6;
C = 10E-6;
Rf = 10;
Vin = (465/2)*(6/266)*square(2*pi*f*t,D);       % Input voltage waveform

if( Vin < 0 )                                   
   Vin = 0;                                     % get rid of negative half cycle
end

%%

Vd = n*Vt*log(I1/Is + 1)/log(10);               % This is the voltage across the diode

if( (Vin - Vd - Vc)/Ll >= 0 )                   % Is the diode conducting when forward biased?
    dy(1) = (Vin - Vd - Vc)/Ll;                 % Sounds good, what is the current?
else
    dy(1) = 0;                                  % force current to 0 when reversed biased
end
dy(2) = (Vc - I2*Rf)/Lline;                     % KCL for second loop
dy(3) = (I1 - I2)/C;                            % Voltage on cap

dy = dy';                                       % ODE45 likes output to be in columns

end

% [t, y] = ode45('ThreeLamp',[0 .001],[0 0 0 ]);
4

1 回答 1

1

我最近在尝试对 DCDC 升压转换器建模时遇到了完全相同的问题。就像 am304 所说,一个僵硬的求解器可能是这个问题的解决方案。二极管打开/关闭时的不连续性非常强,可变步长求解器很难提取。我发现一个固定步长求解器非常适合我的应用程序。

编辑

但是,正如 horchler 所提出的,没有容差收敛或其他数值安全网,因此您必须非常仔细地解释您的输出。使用非常小的步长并且对输出非常明智,当输出具有预期的形状时,通常会缓解这个问题。然而,当试图解决一个僵硬的系统时,必须注意霍克勒的警告。我发现即使固定步骤方法失效,对解决方案的洞察力也是值得的。

结束编辑

此外,您可能还想检查流过二极管的电流方向。我发现我会得到一个很大的反向偏置电流流过二极管,这是不可能的!

我在这里设置了一个电路模型。这是一张图片,这是正确的拓扑吗?!图片

编辑

好的,既然我了解了电路,我也许可以对导数函数有所帮助,ThreeLamp. 如果二极管是反向偏置的,那么通过电感的电流就不能流过二极管。因此,二极管导通/不导通点的电流变化很大,以便在切断通过二极管的电流的同时切断通过电感器的电流。我认为这个问题在第 25 行左右进行电感电流计算。

于 2013-06-24T14:36:45.003 回答