Modelica распечатать текущее время - PullRequest
2 голосов
/ 10 октября 2019

Как мне распечатать текущую дату и / или время в файл (например, файл журнала или CSV-файл) из Modelica? Нужен ли для этого внешний код? Мне не удалось найти пример кода в стандартной библиотеке Modelica.

Ответы [ 2 ]

4 голосов
/ 10 октября 2019

https://build.openmodelica.org/Documentation/Modelica.Utilities.Streams.print.html

Вам необходимо добавить это в раздел уравнения или алгоритма:

.Modelica.Utilities.Streams.print(String(time));

Для использования по местному системному времени: https://build.openmodelica.org/Documentation/Modelica.Utilities.System.getTime.html

model GetTime
  Integer ms;
  Integer sec;
  Integer min;
  Integer hour;
  Integer mday;
  Integer mon;
  Integer year;
algorithm
  (ms, sec, min, hour, mday, mon, year) := .Modelica.Utilities.System.getTime();
  .Modelica.Utilities.Streams.print("ms:" + String(ms) + "\n");
  .Modelica.Utilities.Streams.print("sec:" + String(sec) + "\n");
  .Modelica.Utilities.Streams.print("min:" + String(min) + "\n");
  .Modelica.Utilities.Streams.print("hour:" + String(hour) + "\n");
  .Modelica.Utilities.Streams.print("mday:" + String(mday) + "\n");
  .Modelica.Utilities.Streams.print("mon:" + String(mon) + "\n");
  .Modelica.Utilities.Streams.print("year:" + String(year) + "\n");
end GetTime;
2 голосов
/ 14 октября 2019

Начиная с версии 1.1 библиотека тестирования (поставляется с Dymola 2019) содержит запись оператора DateTime.

Существует несколько конструкторов для записи оператора. Если дальнейшие аргументы не приводятся, используется системное время. Вот пример:

> dt =Testing.Utilities.Time.DateTime()   // use getTime() to create the operator record
> dt.a                                    // access one of the variables of the operator record
= 2019
> String(dt)                              // convert to string using default format
= "2019-10-14 12:31:50"
> String(dt, format="%Hh %MINmin %Ss")    // convert to string using custom format
= "12h 35min 12s"

Durations - это еще одна запись оператора в библиотеке тестирования, которая может работать с промежутками времени.

...