Примечание
В R2019a, SimState
объект был переименован в ModelOperatingPoint
.
Чтобы эффективно проектировать систему, вы моделируете модель итеративно, поэтому можно анализировать систему на основе различных входов, граничных условий или условий работы. Во многих приложениях при выполнении нескольких симуляций распространена фаза запуска со значительным динамическим поведением. Например, холодный запуск взлета газотурбинного двигателя происходит перед каждым набором маневров самолета. В нескольких симуляциях вы идеально:
Симулируйте фазу запуска один раз.
Сохраните снимок симуляции в конце фазы запуска.
Используйте этот снимок в качестве начального состояния для каждого набора условий или маневров.
Используйте 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, чтобы остановить симуляцию.
В диалоговом окне Параметры конфигурации на панели Data Import/Export установите флажок Final states. Флажок Save final Operating Point становится доступным.
Установите флажок Save final Operating Point.
В Final states текстовом поле введите имя переменной для ModelOperatingPoint
объект.
Симулируйте модель.
Используйте 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 перед восстановлением ModelOperatingPoint
Simulink перезаписывает Start time значением, сохраненным в ModelOperatingPoint
.
В диалоговом окне Параметры конфигурации, на панели Data Import/Export, в разделе Load from workspace, установите флажок Initial state. Текстовое поле становится доступным.
Введите имя переменной, содержащей ModelOperatingPoint
в текстовом поле.
Установите значение Stop time больше, чем время сохранения рабочей точки.
Можно использовать ModelOperatingPoint
объекты, сохраненные в релизах, начиная с R2010a, чтобы восстановить ModelOperatingPoint
модели. Однако эта опция восстанавливает только записанные состояния модели. Чтобы увидеть версию Simulink, используемую для сохранения ModelOperatingPoint
, исследуйте параметр version ModelOperatingPoint
объект.
Simulink определяет, ModelOperatingPoint
ли объект, указанный в качестве начального состояния, сохранен в текущем релизе. По умолчанию Simulink отображает сообщение об ошибке, если
ModelOperatingPoint
не сохранен в текущем релизе. Можно настроить диагностику, чтобы Simulink мог отображать сообщение как предупреждение и пытаться восстановить как можно больше значений. Чтобы включить это восстановление максимальных усилий, в диалоговом окне Параметров конфигурации установите сообщение для Operating Point object from earlier release равным warning
. Ранее именованные SimState
объекты загружаются как ModelOperatingPoint
объекты в 19а.