Когда вам нужно итерационно симулировать модель, чтобы настроить параметры, достичь желаемого отклика или автоматизировать проверку, используйте быстрый перезапуск, чтобы избежать повторного компиляции. Быстрый перезапуск позволяет вам выполнять итерационные симуляции, не компилируя модель или завершая симуляцию каждый раз. Типовой рабочий процесс, использующий быстрый перезапуск, включает следующие шаги.
Включите быстрый перезапуск с помощью кнопки Fast Restart на Simulink® Панель инструментов или из командной строки.
Симулируйте модель. Первая симуляция требует от модели компиляции, инициализации и сохранения ModelOperatingPoint
объект. Когда симуляция завершена, оно не прекращается. Вместо этого модель снова инициализируется при быстром перезапуске.
Выполните любое из следующих действий:
Измените настраиваемые параметры.
Настройка входов корневого уровня.
Измените базовое рабочее пространство, моделируйте переменные рабочего пространства модели и записей в словаре данных, на которые ссылаются настраиваемые параметры.
Измените входы на From File и From Workspace блоки.
Измените параметр Initial state для следующей симуляции.
Используя блок Signal Builder, измените данные, переименуйте сигналы и группы сигналов и добавьте новые группы.
Измените значения переопределения логгирования сигналов для модели программно при помощи set_param
команда и DataLoggingOverride
параметр. См. раздел «Переопределение параметров логгирования сигналов из MATLAB».
После того, как вы инициализировали модель в быстром перезапуске, вы не можете
Измените размерность, тип или сложность сигнала или переменной.
Внесите изменения в нетронутый параметр, такой как шаг расчета.
Внесите такие структурные изменения, как добавление или удаление блоков или соединений.
Эти изменения требуют, чтобы вы снова скомпилировали модель. Чтобы внести такие изменения, отключите быстрый перезапуск, внесите изменения и повторите эту процедуру.
Симулируйте модель. Модель использует новые значения параметров и входов, которые вы предоставили, но не компилируются снова.
После достижения требуемого отклика отключите быстрый перезапуск.
Примечание
Когда вы отключаете быстрый перезапуск, Simulink не хранит никакой информации о компиляции для модели. Модель компилируется, когда вы следующий симулируете модель.
Прежде чем вы моделируете модель в быстром перезапуске, убедитесь, что модель соответствует следующим требованиям:
Если в модели активированы коллбэки, убедитесь, что они не пытаются вносить структурные изменения при повторной инициализации модели. Для примера в начале каждой симуляции вызываются коллбэки, такие как команды инициализации маски. Поэтому избегайте использования кода инициализации маски, который вносит структурные изменения в модель.
Все блоки в модели должны поддерживать ModelOperatingPoint
объект.
Режим симуляции Normal или Режим Accelerator.
Примечание
Когда быстрый перезапуск включен, вы не можете сохранить изменения в модели после ее компиляции. Для сохранения изменений требуется, чтобы Simulink отбросил информацию о скомпилированном состоянии. Чтобы сохранить любые изменения модели, сначала отключите быстрый перезапуск.
Используйте один из следующих методов, чтобы включить быстрый перезапуск:
Нажмите кнопку Fast restart на панели редакторов.
В MATLAB® Командная строка, использование set_param
чтобы включить быстрый перезапуск. Напечатать
set_param(model,'FastRestart','on')
После того, как вы загрузите модель и включите быстрый перезапуск, симулируйте модель.
Симулируйте модель путем вызова sim
или нажмите кнопку Run на панели инструментов Редактор. Первая симуляция в быстром перезапуске требует, чтобы модель скомпилировала и сохранила ModelOperatingPoint
объект.
Когда симуляция завершена, строка состояния показывает, что модель инициализируется при быстром перезапуске.
Настройте настраиваемые параметры в модели, такие как значение усиления блока Gain или настройте входные значения корневого уровня. Можно также внести изменения в переменные базовые рабочие пространства. Вы не можете настроить нетронутые параметры, такие как шаг расчета, потому что для этого требуется, чтобы модель скомпилировалась еще раз.
Моделируйте модель еще раз. На этот раз модель не компилируется. При нажатии кнопки Play или шаге вперед Simulink обновляет блоки, которые имеют новые значения, а также блоки, которые ссылаются на переменные рабочей области.
Когда вы удовлетворены результатами, отключите быстрый перезапуск, нажав кнопку Fast restart off.
Чтобы сохранить изменения, сохраните модель.
Примечание
После инициализации модели в быстром перезапуске Simulink отображает предупреждение, если вы пытаетесь внести структурное изменение в модель. Чтобы внести такие изменения, необходимо выключить быстрый перезапуск.
Когда вы нажимаете Stop в середине симуляции быстрого перезапуска:
Симуляция не завершается.
Модель находится в инициализированном состоянии.
Теперь можно изменить настраиваемые параметры в модели
Вы можете завершить симуляцию и выйти из быстрого перезапуска, нажав кнопку Fast restart off.
Вы можете быстро выйти из перезапуска, только когда модель находится в инициализированном состоянии. После симуляции нажмите кнопку Fast restart of.Для этого программно введите:
set_param(model,'FastRestart','off')
Simulink завершает симуляцию.
Simulink отбрасывает любую скомпилированную информацию о модели.
Модель должна скомпилироваться снова при следующем моделировании.
Когда модель инициализируется в быстром перезапуске, в сложение к блокировке значений и базового рабочего пространства переменных, можно настроить параметры в панелях Data Import/Export и Solver в диалоговом окне Параметров конфигурации (на вкладке Simulation, под Prepare, нажмите Model Settings).
Определенные параметры настраиваются между симуляциями только тогда, когда модель инициализируется при быстром перезапуске. Они включают в себя:
Initial Value параметр блока IC
Initial Output параметр блока Merge
Data параметр блока From Workspace
Signal параметр и сигнальные группы блока Signal Builder.
Когда быстрый перезапуск включен, Simulink вызывает модель и методы блоков и коллбэки следующим образом:
Вызов модели InitFcn
коллбэк.
Вызов модели SetupRuntimeResources
способ.
Функции mdlSetupRuntimeResources
Метод S-функции.
Вызов модели Start
способ.
Функции mdlStart
Метод S-функции.
Вызов модели Initialize
способ.
Функции mdlInitializeConditions
Метод S-функции.
Примечание
Используйте флаг ssIsFirstInitCond для защиты кода, который должен запускаться только во время фазы инициализации любой симуляции, включая первую и последующую инициализацию при быстром перезапуске.
Вызывайте модель и блокируйте StartFcn
коллбэки.
Примечание
Шаги 1-5 применяются ко всем симуляциям в Simulink (с быстрым перезапуском или без него).
Для первой симуляции в быстром перезапуске захватите снимок симуляции. Симуляционный снимок содержит состояние симуляции (ModelOperatingPoint
) и информацию, относящуюся к записанным данным и блокам визуализации. В рамках захвата моментального снимка вызовите ModelOperatingPoint
Метод S-функции.
Это стандартная фаза выполнения любой симуляции с быстрым перезапуском или без него.
Вызов модели Outputs
.
Вызов модели Update
.
Вызов модели Derivatives
.
Повторите эти шаги в цикле до тех пор, пока не будет запрошено время остановки или остановка.
Вызов модели Terminate
способ.
Функции mdlTerminate
Метод S-функции.
После окончания симуляции вызывайте модель и StopFcn блоков
коллбэки. Это стандартная фаза любой симуляции с быстрым перезапуском или без него.
Восстановите снимок симуляции, взятый для быстрого перезапуска. В рамках восстановления вызовите set
Метод S-функции.
Подождите в повторно инициализированном состоянии до одного из следующих действий:
Чтобы запустить другую симуляцию (программно или с помощью Редактор) при быстром перезапуске, вернитесь к шагу 3.
Чтобы завершить режим Fast Restart и распаковать модель:
Вызовите метод модели CleanupRuntimeResources
и mdlCleanupRuntimeResources
Метод S-функции.
Не вызывайте StopFcn
коллбэки снова на этой точке.
В некоторых случаях. а Start
и Terminate
методы вызываются только один раз, а не для каждой последующей симуляции быстрого перезапуска. В этих случаях эти вызовы методов объединяются с вызовами в SetupRuntimeResources
и CleanupRuntimeResources
, соответственно. Эти случаи являются следующими:
Когда S-функция содержит пользовательские ModelOperatingPoint
сохраните и восстановите методы.
Когда S-функция устанавливает флаг SS_OPTION_CALL_TERMINATE_ON_EXIT
.
Когда S-функция помещена в ускоренный режим ссылочной модели.
Для получения дополнительной информации о обратных вызовах модели коллбэки Коллбэки для настраиваемого поведения модели».
Можно изменить начальные значения состояния, включая ModelOperatingPoint
, между симуляциями быстрого перезапуска.
Когда ModelOperatingPoint
объект для начального состояния используется в быстром перезапуске, каждая новая симуляция сбрасывается во время запуска модели, а не во время моментального снимка каждой ModelOperatingPoint
объект. После этого, на первом шаге вперед, Simulink проверяет, чтобы увидеть, ModelOperatingPoint
ли был задан. Если да, Simulink восстанавливает его перед вычислением следующего шага. Таким образом, первый шаг симуляции эффективно быстро переходит ко времени моментального снимка заданного
ModelOperatingPoint
объект.
Быстрый перезапуск поддерживает логгирование данных с помощью Данные Моделирования Inspector. Каждая симуляция в быстром перезапуске создает объект SDI с <modelname> fast restart run <number> имени. Значение number
шаги для каждой симуляции.
Когда Вы помещаете пользовательский код в диалоговое окно <reservedrangesplaceholder4>> <reservedrangesplaceholder3>> <reservedrangesplaceholder2>> <reservedrangesplaceholder1> pane in the <reservedrangesplaceholder0>, это называют только во время первой симуляции в быстром перезапуске.