Создайте список всех текущих переменных и их соответствующих значений в FMIKit-Simulink - PullRequest
1 голос
/ 09 января 2020

В настоящее время я использую FMIKit для Simulink, найденный здесь https://github.com/CATIA-Systems/FMIKit-Simulink

Из документации очень хорошо работает для запроса значений параметров в FMU с помощью FMIKit.getStartValue (FMUBLOCK, ' Variablename ');

, но только если вы знаете имя и структуру переменной, которую вы ищете.

Я хотел бы узнать, есть ли способ извлечь полный список переменных в FMU вместе с их значениями непосредственно перед началом симуляции (для отладки сима)?

1 Ответ

1 голос
/ 09 января 2020

Начальные значения переменных модели можно получить, прочитав описание модели FMU (например, VanDerPol.fmu из тестовых FMU FMI 2.0 ):

% import the FMU and select the FMU block

% set a different start value for variable "mu"
FMIKit.setStartValue(gcb, 'mu', '1.3');

% read the model description (returns a Java object)
md = FMIKit.getModelDescription('VanDerPol.fmu');

% iterate over the list of variables
for i = 1:md.scalarVariables.size
  v = md.scalarVariables.get(i-1);

  % get the name and start value
  name  = char(v.name);

  % get the start value from the FMU block
  start = FMIKit.getStartValue(gcb, name); % might be empty

  disp([name ': ' start])
end

дает вам

x0: 2
der(x0): 
x1: 0
der(x1): 
mu: 1.3
...