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