0

У меня есть модель процесса simulink с несколькими управляющими входами. Я смоделировал модель процесса, используя ряд susbsytems (блок m-файлов последовательно и параллельно), и интеграция выполняется с использованием интегратора для каждой подсистемы.Получение производных переменных состояния из модели simulink

Я могу запустить эту модель и получить состояния и выходы (Is is possible to programmatically play a Simulink model and measure its states?), но я также хотел бы иметь возможность получать временную производную от состояний.

Например, если у меня работает optimal control problem, мне нужна функция, которая программно возвращает производные переменных состояния для использования в качестве ограничений. В идеале я бы использовал одну и ту же модель, но не использовал программное обеспечение simulink для интеграции.

Я полагаю, что я мог бы собрать входные данные для каждого интегратора в модели и использовать это как производную, но это ужасный способ сделать это (трудно поддерживать, для начала).

ответ

0

У меня такая же проблема при работе с Simulink, вы можете найти следующую команду полезную:

[sys,x0,str,ts] = model([],[],[],'sizes'); 
[sys,x0,str,ts] = model([],[],[],'compile'); 
outputs = model(t,x,u,'outputs'); 
derivs = model(t,x,u,'derivs'); 
dstates = model(t,x,u,'update'); 
model([],[],[],'term'); 

для получения более подробной информации, Вы можете обратиться к странице: https://www.mathworks.com/help/simulink/slref/model_cmd.html

Смежные вопросы