Как получить строковые выходные переменные с FMPy? - PullRequest
0 голосов
/ 03 апреля 2019

Я использую FMPy для моделирования некоторых FMU, которые имеют выходные переменные String, но они не доступны в результатах моделирования (объект, возвращаемый simulate_fmu (имя файла)).

Обрабатываются ли эти переменные в другомпуть?Если да, как я могу получить к ним доступ?

Спасибо.

Редактировать 1:

Я запустил симуляцию, используя values.fmu , которая имеетСтроковая выходная переменная (string_out).

Минимальный пример:

import fmpy
# fmu path
fmu_name = "C:\\fmusdk\\fmu20\\fmu\\cs\\x64\\values.fmu"
# Simulate
res = fmpy.simulate_fmu(fmu_name, stop_time=2., debug_logging=False)
# Results
print('Results names and types: ' + str(res.dtype))

Примечание: для запуска примера необходимо загрузить и установить fmusdk, для которого требуется один из Microsoft Visual Studio 2005 (VS8), 2008 (VS9), 2010 (VS10), 2012 (VS11), 2013 (VS12) или 2015 (VS14).

Выход:

Results names and types: [('time', '<f8'), ('int_out', '<i4'), ('bool_out', '?')]

Ожидается:

Я ожидал, что res содержит выходную переменную string_out.

Используя debug_logging:

Я понял, что fmi2GetString это никогда вызвано, поэтому для выхода будет невозможно иметь значения string_out. Из-за этого я не уверен, поддерживает ли FMPy строку определения типа или нет.

Сведения о системе:

Python version: 3.7.3

FMPy version: 0.2.10

1 Ответ

1 голос
/ 10 апреля 2019

Строки поддерживаются только в качестве параметров (по состоянию на FMPy 0.2.10).Если вам нужны строки в качестве входных или выходных данных, вы можете создать собственный цикл моделирования и напрямую использовать функции fmu.setString() и fmu.getString().

В качестве примера можно использовать custom_input.py отправная точка.

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