Выполнить команду dymola из командной строки

Есть ли способ передать Dymola команду из командной строки Windows? Я хочу передать ему такие команды, как Simulate(), openModel и т. д.


person barbar    schedule 04.03.2014    source источник


Ответы (2)


Вместо этого вы можете написать файл сценария (.mos). если вы действительно заинтересованы в открытии модели/симуляции модели с использованием файла .bat, вы также можете создать файл .bat для записи файла сценария (.mos), а затем запустить файл сценария. Я могу привести пример для того же.

Вы можете использовать следующую строку кода в пакетном файле и попробовать запустить то же самое:

SET var=%cd%
cd %var%
echo openModel("%var%\test_case.mo", true) > filename.txt
echo simulateModel("test_case", method="dassl", resultFile="test_case") >> filename.txt
copy "filename.txt" "script.txt"
rename "script.txt" "script.mos"
script.mos

Сначала я пишу файл сценария (script.mos), а затем запускаю его. обратите внимание, что я имею в виду текущий каталог.

Я не уверен, что точно ответил на ваш вопрос, пожалуйста, не стесняйтесь предлагать то же самое.

person prasadshet    schedule 26.03.2014
comment
Можете ли вы сказать мне, как я могу запустить файл сценария через приглашение DOS? - person barbar; 26.03.2014

Из примечаний к выпуску Dymola: «В Dymola 2014 FD01 доступен новый интерфейс Java для Dymola, содержащий ряд функций для выполнения таких операций, как моделирование, установка переменных, построение графиков и экспорт данных». Так же есть старая версия этого интерфейса, это насколько я знаю единственный способ управлять Dymola из другого приложения. Если вы хотите сделать это из командной строки, я думаю, что единственный способ - разработать приложение Java, которое работает как мост.

Я надеюсь, что это поможет, Марко

person Marco Romanoni    schedule 05.03.2014
comment
Dymola не обязательно нужно запускать из командной строки. У меня есть ситуация, когда соединение Matlab-dymola через некоторое время выходит из строя (см. соединение dymola), и я подумал, что могу позволить Matlab управлять командной строкой и, наконец, управлять Dymola. - person barbar; 06.03.2014
comment
Пробовали ли вы сбросить межсоединение, то есть закрыть и снова открыть его каждые n шагов, чтобы избежать неудобств? Возможно, это как-то связано с буферами, ограничениями памяти или ограничениями времени соединения, и вы должны разорвать его до того, как возникнет одно из этих ограничений. - person Marco Romanoni; 07.03.2014
comment
Как объяснено в взаимосвязи matlab-dymola, я использую скрипт dymolaM.m . Полный код представлен по ссылке. В конце кода вы можете увидеть команду ddeterm, которая, как я полагаю, является командой для завершения соединения. - person barbar; 09.03.2014