Я новичок в OpenModelica, пытаюсь смоделировать DC / DC преобразователь с постоянным ограничением напряжения и тока. В основном выход должен обеспечивать постоянное напряжение до тех пор, пока не будет достигнут максимальный ток, а затем удерживать этот ток путем снижения напряжения.
Это пока часть уравнения моего кода:
model DC_DC "Voltage source with current limiting"
import SI = Modelica.SIunits;
parameter SI.Voltage Vnom(start=1) "Value of nominal output voltage";
parameter SI.Current Inom(start=1) "Value for maximum continous output current";
parameter SI.Current Imax(start=1) "Value for maximum output current";
Modelica.Electrical.Analog.Interfaces.PositivePin p
annotation (Placement(transformation(extent={{-110, -10},{-90,10}})));
Modelica.Electrical.Analog.Interfaces.NegativePin n
annotation (Placement(transformation(extent={{110, -10},{90,10}})));
SI.Voltage v;
equation
v = p.v - n.v;
if n.i > Imax and v <= Vnom then
n.i = Imax;
0 = p.i + n.i;
else
Vnom = p.v - n.v;
0 = p.i + n.i;
end if;
end DC_DC;
Всякий раз, когда я симулирую, результаты для напряжения и тока выглядят так, как будто я ожидал этого, поэтому расчет кажется правильным,Тем не менее, я получаю предупреждение
максимальное число итераций достигнуто, но корень не найден.
Можно мне это объяснить? Спасибо!