2014 dxdy logo

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

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




Начать новую тему Ответить на тему
 
 Open Modelica, изменение начального состояния моделирования
Сообщение30.05.2021, 15:29 


30/05/21
1
Добрый день,я изучаю систему 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 сообщение ] 

Модераторы: Karan, Toucan, PAV, maxal, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group