Как ссылаться на время начала и окончания эксперимента Dymola как на переменные? - PullRequest
0 голосов
/ 19 сентября 2018

Для простых тестовых моделей я обычно использую синтаксис, подобный следующему:

// Assuming the start time is 0 and stop time is 1
x = xMin + (xMax - xMin) * time;
y = f(x);

Чтобы быть верным, независимо от настройки моделирования, я хотел бы использовать:

x = xMin + (xMax - xMin) * (time - startTime) / (stopTime - startTime);
y = f(x);

Однако,Я не уверен, как можно ссылаться на значения, определенные в форме «Настройка моделирования» / «Общие».

Я пытался просто ссылаться на StartTime, startTime, starttime, timestart, timeStart и т. Д., Но безуспешно.

Я понимаю, что можно установить StartTime и StopTime с помощью аннотации, но эти значения устанавливаются только при первом открытии модели и поэтому могут не отражать время начала и окончания моделирования.

Ответы [ 2 ]

0 голосов
/ 20 сентября 2018

Не идеально, но вы можете предоставить информацию извне:

Добавьте время начала и окончания в качестве параметров для вашей модели

parameter Modelica.SIunits.Time stopTime = 0;
parameter Modelica.SIunits.Time startTime = 1;

и используйте функцию для выполнениясимуляции

function sim
  input Modelica.SIunits.Time startTime = 1;
  input Modelica.SIunits.Time stopTime = 2;
algorithm 
  DymolaCommands.SimulatorAPI.simulateExtendedModel(
    "model-name", startTime, stopTime, 
    initialNames={"startTime", "stopTime"}, 
    initialValues={startTime, stopTime});
end sim;
0 голосов
/ 19 сентября 2018

В настоящее время невозможно получить доступ к времени остановки симуляции в Dymola для использования в модели, но вы можете получить время запуска следующим образом:

  parameter Real startTime(fixed=false);
initial equation
  startTime=time;

Обратите внимание, что если вы используетеСимуляция> Продолжить> Продолжить startTime не будет обновлено, но будет продолжено с исходным значением.

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