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

Примечание

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

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

  1. Моделируйте фазу запуска однажды.

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

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

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

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

  • Регистрируемые состояния

  • Состояние решателя и механизма выполнения

  • Пересечение нулем сигнализирует для блоков о том нуле регистра пересечения

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

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

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

  • Транспортная задержка

  • Переменная транспортная задержка

  • Из рабочей области

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

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

  • Stateflow

  • Matlab.system

  • Второе поколение Simscape™ Multibody™

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

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

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

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

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

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

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

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

  • В итоговом Stop time.

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

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

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

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

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

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

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

Программируемое сохранение

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

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

Совет

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

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

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

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

Примечание

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

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

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

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

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

Программируемое восстановление

Конфигурировать моделирование, чтобы восстановить рабочую точку что вы сохраненный в примере выше:

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

Объект ModelOperatingPoint восстанавливается, когда вы моделируете модель.

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

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

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

Похожие темы