FMU-модуль и перевод из OpenModelica в Python с PyFMI - PullRequest
0 голосов
/ 03 января 2019

Загрузка FMU-модуля OpenModelica (с шумовым модулем MSL) в среде Python с PyFMI не работает.

Я попытался запустить экспортированные FMU-модули из OpenModelica в PyFMI-среде. Детерминированные модели отлично работают.

Однако, когда я включаю модели шума, используя блок MSL Modelica.Blocks.Noise.NormalNoise, тогда я получаю FMU, у которого возникают проблемы при загрузке в PyFMI-среду. Текст ошибки заканчивается на:

FMUException: Ошибка загрузки двоичного файла. Не удалось загрузить DLLL: libModelicaExternalC.so.0: невозможно открыть файл общего объекта: нет такого файла или каталога.

Само собой разумеется, но в OpenModelica система с шумом работает хорошо. Тот же код в JModelica, скомпилированный и загруженный в среде Python с PyFMI, также хорошо работает. Однако случайная шумовая последовательность различна для одного и того же начального числа в OpenModelica и JModelica, что указывает на некоторую разницу.

В этом примере я запускаю JModelica и PyFMI версии 2.1 в Docker Linux, а OpenModelica также запускается в среде Linux. С Linux в обоих я могу перенести FMU-модель. И JModelica, и OpenModelica поддерживают стандарт Modelica 3.2.2 и соответствующий MSL.

Я также только что протестировал пример с JModelica и PyFMI версии 2.4 (или, по крайней мере, 2.2), используя образ Docker Linux из mclab. Я получаю тот же текст ошибки, что и для 2.1 (и без блока шума он работает, как это было для 2.1).

-

Мой вопрос: описанная ошибка на стороне PyFMI или OpenModelica или, возможно, на обоих? Или при экспорте FMU из OpenModelica с блоком помех можно сделать что-то еще, что должно заставить все это работать?

Ответы [ 2 ]

0 голосов
/ 07 января 2019

В OMEdit установите Platfoms на «Static» в Tools-> Options-> FMI перед генерацией FMU.

0 голосов
/ 04 января 2019

В сообщении об ошибке указывается, что FMU отсутствует одна из его зависимостей, libModelicaExternalC.so (все зависимости FMU должны быть включены в FMU). Проблема заключается в инструменте генерации FMU, а не в PyFMI.

...