Запись конкретной переменной в .txt или .mat с помощью Dymola - PullRequest
0 голосов
/ 02 октября 2018

Мне нужен способ записать конкретную переменную из симуляции в .txt или .mat.

Использование:

Streams.print(Modelica.Math.Vector.toString(resultVector),"filename"); 

приводит к неверным данным, поскольку не соответствует, по сравнению с экспортом переменной через вкладку моделирования.Значения в файле .txt совершенно разные, без видимого шаблона.

Ответы [ 2 ]

0 голосов
/ 05 октября 2018

Поскольку постобработка была бы приемлемой, доступно несколько вариантов:

Dymola включает инструмент alist:

alist -e var1 [-e var2 ...] inputFile outputFile

export data for var... as comma-separated values, suitable
for importing into Microsoft Excel.

Options: -a  write in ASCII format (default)
         -b  write in Matlab binary format

https://www.j -raedler.de/ projects / DyMat / может использоваться для чтения файла результатов и создания файла в любом формате, который вам нравится (с использованием Python).

OpenModelica имеет параметр, аналогичный alist, который также может выполнять повторную выборкусигнал, если вы хотите меньше точек данных https://openmodelica.org/doc/OpenModelicaUsersGuide/v1.12.0/scripting_api.html#filtersimulationresults.

0 голосов
/ 02 октября 2018

Будет ли Modelica.Utilities.Streams.writeRealMatrix делать то, что вам нужно?

Для меня

Modelica.Utilities.Streams.writeRealMatrix(
  fileName="C:/temp/test.mat", 
  matrixName="testMatrix", 
  matrix=[1,2;4,5], 
  append=false, 
  format="7")

привело к ожидаемому файлу .mat.

Для возможности записи переменнойв файле .mat вам придется преобразовать вашу переменную в (двумерную) матрицу - если она еще не одна.Это может быть достигнуто путем преобразования скаляра или вектора с использованием квадратных скобок.Это даст matrix=[1] для скаляра или matrix=[{1,2,3,4}] для вектора.Использование matrix=1 или matrix={1,2,3,4} приведет к ошибке.

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