2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




 
 Open Modelica, изменение начального состояния моделирования
Сообщение30.05.2021, 15:29 
Добрый день,я изучаю систему Open Modelica.
Дали задании изменить исходный график RLC-цепи в другой.
Рисунки графиков представлены ниже

Исходный график:
Изображение

Вот список уравнений, которые я реализую в Open Modelica для 1-го рисунка (рабочий, основной пример в Modelica).

$V=i_{R}R$
$C \cdot \frac{DV}{Dt}=i_{C}$
$L \cdot \frac{Di_{L}}{Dt}=(V_{b}-V)$
$i_{L}=i_{R}+i_{C}$


Код:
Код:
model Lab5

extends Modelica.Icons.Example;
type Voltage=Real(unit="V");
type Current=Real(unit="A");
type Resistance=Real(unit="Ohm");
type Capacitance=Real(unit="F");
type Inductance =Real(unit="H");

parameter Modelica.SIunits.Resistance R=100 "Resistance";
parameter Modelica.SIunits.Inductance L=1 "Inductance";
parameter Modelica.SIunits.Voltage Vb=24 "Total DC Voltage";
parameter Modelica.SIunits.Capacitance C=1e-3 "Capacitance";
Voltage V;
Current i_L;
Current i_R;
Current i_C;

equation
V = i_R * R;
C * der(V) = i_C;
L * der(i_L) = Vb - V;
i_L = i_R + i_C;


А это график,который я должен получить в Open Modelica(создан в Scilab)
Изображение

Для 2-ого рисунка подобрана следующая система уравнений

$i_{R}=i_{L}=i_{C}+i_{out}$
$U_{in}=U_{R}+U_{L}+U_{C}$
$I_{C}=C \cdot \frac{DV}{Dt}$
$U_{L}=L \cdot \frac{Di_{L}}{Dt}$

$$\left\{
\begin{array}{rcl}
 \frac{Di_{L}}{Dt}=\frac{(U_{in}-R \cdot i_{L}- U_{C})}{L} \\
 \frac{DU_{C}}{Dt}=\frac{i_{L}-i_{out}}{C} \\
\end{array}
\right.$$

И данную систему уравнений я перенёс в Open Modelica (не работает и не строит)

Код:
extends Modelica.Icons.Example;

//Объявление переменных,как в первом блоке кода//
Current u_Vx;
  Current u_L;
  Current u_R;
  Current u_C;
  Current i_Vx;
  Current i_L;
  Current i_R;
  Current i_C;


equation
i_L=i_C+i_Vx;
i_R=i_L;
u_L=u_R+u_C;
u_Vx=u_L;

C*der(u_C)=i_C;
L*der(i_L)=u_L;
der(i_L)=(u_Vx-R*i_L-u_C)/L;
der(u_C)=(i_L-i_Vx)/C;


Основная ошибка,которая тут кроется -неверное построение алгоритма моделирования, не происходит процесс моделирования цепи.Одну функцию я разбил на 2(что является также ошибкой при построении кода моделирования).
Причина - уход от другой ошибки Open Modelica - несоответствие количеству переменных и количество вычислений(выражений)

Вопрос

Каким образом мне нужно изменить свою систему уравнений,чтобы после построения строилась цепь,как на рисунке 2?

 
 
 [ 1 сообщение ] 


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group