Сохраните и восстановите рабочую точку симуляции

Примечание

В R2019a, SimState объект был переименован в ModelOperatingPoint.

Чтобы эффективно проектировать систему, вы моделируете модель итеративно, поэтому можно анализировать систему на основе различных входов, граничных условий или условий работы. Во многих приложениях при выполнении нескольких симуляций распространена фаза запуска со значительным динамическим поведением. Например, холодный запуск взлета газотурбинного двигателя происходит перед каждым набором маневров самолета. В нескольких симуляциях вы идеально:

  1. Симулируйте фазу запуска один раз.

  2. Сохраните снимок симуляции в конце фазы запуска.

  3. Используйте этот снимок в качестве начального состояния для каждого набора условий или маневров.

Используйте ModelOperatingPoint объект для сохранения моментального снимка симуляции. Как только вы сохраняете снимок, в будущих симуляциях восстановите ModelOperatingPoint объект и используйте его, чтобы задать начальные условия.

The ModelOperatingPoint объект содержит информацию о:

  • Зарегистрированные состояния

  • Состояние решателя и двигателя выполнения

  • Сигналы пересечения нулем для блоков, которые регистрируют пересечения нуля

  • Выход значений определенных блоков в модель

    Simulink® анализирует блочные соединения и другую информацию, чтобы определить, эффективно ли он использует выходные значения в качестве информации о состоянии.

The ModelOperatingPoint объект также хранит скрытые состояния этих блоков:

  • Transport Delay

  • Variable Transport Delay

  • From Workspace

  • Для каждой подсистемы

  • Условно выполняемые подсистемы

  • Stateflow

  • MATLAB System

  • Simscape™ Multibody™ вторая генерация

Сохраняя эту информацию, ModelOperatingPoint объект гарантирует, что результат симуляции, которая начинается с рабочей точки, аналогичен симуляции, которая запускается с самого начала.

Преимущества использования рабочей точки

  • Когда ModelOperatingPoint объект сохраняет моментальный снимок симуляции, он сохраняет информацию в дополнение к записанным состояниям в модели. Восстановите всю эту информацию, чтобы убедиться, что моделирование соответствует непрерывной симуляции. Например, если информация о решателе повлияла на симуляцию, то изменение состояния блока без использования ModelOperatingPoint может привести к различным результатам.

  • Можно сохранить несколько рабочих точек во время симуляции, а затем возобновить симуляцию из любой из этих рабочих точек.

  • The ModelOperatingPoint объект восстанавливает состояние блоков, которые обычно трудно восстановить в конкретное состояние, например, блок задержки транспорта. Состояние блока Transport Delay не сохраняется в формате структуры или массива при регистрации данных с помощью Final states параметра конфигурации.

Можно также использовать опцию Final states на панели Data Import/Export параметров конфигурации, чтобы сохранить состояние симуляции. Однако эта опция сохраняет только записанные состояния - непрерывные и дискретные состояния блоков. Эти состояния являются только подмножествами полного состояния симуляции модели. Они не включают информацию о скрытых состояниях блоков, которая требуется для правильного выполнения блока.

Сохраните рабочую точку

Сохраните рабочую точку в начале последнего шага с помощью одной из следующих опций:

  • На заключительном Stop time.

  • Когда вы прерываете симуляцию с помощью кнопки Pause или Stop. Можно также сохранить рабочую точку, когда вы останавливаете симуляцию с помощью get_param('modelName','CurrentOperatingPoint').

  • Когда вы используете set_param или блок, подобный блоку Stop, чтобы остановить симуляцию.

Интерактивное сохранение

  1. В диалоговом окне Параметры конфигурации на панели Data Import/Export установите флажок Final states. Флажок Save final Operating Point становится доступным.

  2. Установите флажок Save final Operating Point.

  3. В Final states текстовом поле введите имя переменной для ModelOperatingPoint объект.

  4. Симулируйте модель.

Сохраните и восстановите рабочую точку

Используйте sim команда с set_param. Установите SaveOperatingPoint параметр в 'on'.

sldemo_tonegen
set_param('sldemo_tonegen','SaveFinalState','on','FinalStateName',...
'myOperPoint','SaveOperatingPoint','on');
simOut = sim('sldemo_tonegen','StopTime','10');
myOperPoint = simOut.myOperPoint;

Чтобы сконфигурировать симуляцию, чтобы восстановить сохраненную рабочую точку, используйте LoadInitialState. Simulink ® восстанавливает ModelOperatingPoint объект при симуляции модели.

set_param('sldemo_tonegen','LoadInitialState','on','InitialState',...
'myOperPoint');
myOperPoint = simOut.myOperPoint;

Совет

Прежде чем вы сохраните рабочую точку, отключите параметр Block Reduction в Строениях > Simulation Target > Продвинутые Параметры.

Восстановление рабочей точки

Восстановите снимок симуляции с помощью ModelOperatingPoint объект после изменения модели. Значение Start time не меняется от значения в симуляции, которое сгенерировало рабочую точку. Это ссылка значение для всех зависящих от времени и времени переменных как в исходной, так и в текущей симуляции. Для примера блок может сохранить и восстановить количество попаданий шага расчета, которые произошли с начала симуляции в качестве его ModelOperatingPoint объект.

Допустим, модель, которую вы пробежали от 0 до 100 с и которую вы теперь хотите запустить от 100 до 200 с. Start time составляет 0 с как для исходной симуляции, так и для текущей симуляции. Начальное время текущей симуляции составляет 100 с. Также, если блок имел 10 выборочных временных попаданий во время исходной симуляции, Simulink распознает, что следующий выборочный временной хит является 11-м, относительно 0, а не 100 с.

Примечание

Если вы измените Start time перед восстановлением ModelOperatingPointSimulink перезаписывает Start time значением, сохраненным в ModelOperatingPoint.

Интерактивное восстановление

  1. В диалоговом окне Параметры конфигурации, на панели Data Import/Export, в разделе Load from workspace, установите флажок Initial state. Текстовое поле становится доступным.

  2. Введите имя переменной, содержащей ModelOperatingPoint в текстовом поле.

  3. Установите значение Stop time больше, чем время сохранения рабочей точки.

Восстановление из различных версий Simulink

Можно использовать ModelOperatingPoint объекты, сохраненные в релизах, начиная с R2010a, чтобы восстановить ModelOperatingPoint модели. Однако эта опция восстанавливает только записанные состояния модели. Чтобы увидеть версию Simulink, используемую для сохранения ModelOperatingPoint, исследуйте параметр version ModelOperatingPoint объект.

Simulink определяет, ModelOperatingPoint ли объект, указанный в качестве начального состояния, сохранен в текущем релизе. По умолчанию Simulink отображает сообщение об ошибке, если ModelOperatingPoint не сохранен в текущем релизе. Можно настроить диагностику, чтобы Simulink мог отображать сообщение как предупреждение и пытаться восстановить как можно больше значений. Чтобы включить это восстановление максимальных усилий, в диалоговом окне Параметров конфигурации установите сообщение для Operating Point object from earlier release равным warning. Ранее именованные SimState объекты загружаются как ModelOperatingPoint объекты в 19а.

Похожие темы