Как я могу получить доступ к переменной времени в modelica - PullRequest
6 голосов
/ 06 августа 2011

Я бы хотел смоделировать явно зависящее от времени дифференциальное уравнение в Modelica.

Скажи, что я хотел бы модели

Real x(start=1);
der(x) = t;

в Моделице. Как правильно получить доступ к переменной времени t?

1 Ответ

12 голосов
/ 07 августа 2011

Переменная времени в Modelica называется time и доступна в любой модели или блоке (но не в пакетах, записях, соединителях или функциях).

Кроме того, вместо использования атрибута startЯ предлагаю использовать исходные уравнения.Таким образом, ваша полная модель будет выглядеть следующим образом:

model FirstOrder
  Real x;
initial equation
  x = 1;
equation
  der(x) = time;
end FirstOrder;

Уравнения в разделе initial equation применяются только для решения для начальных значений состояний.Уравнение, показанное выше, тривиально, но вы можете делать интересные вещи, такие как:

model FirstOrder_IC2
  Real x;
initial equation
  x*x*x = 3.0*time+7.0;
equation
  der(x) = time;
end FirstOrder_IC2;

Суть в том, что вы можете использовать другие уравнения, кроме тех, которые непосредственно указывают значение состояния.Приведенное выше исходное уравнение не является «физически» интересным, но математически оно связано с тем, что оно является нелинейным и изменяющимся во времени (т. Е. Чувствительным ко времени начала моделирования).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...