В этом разделе показано, как ускорить оптимизацию отклика с помощью быстрого перезапуска Simulink ®. Функцию быстрого перезапуска можно использовать для ускорения оптимизации отклика настраиваемых параметров модели.
Быстрый перезапуск позволяет выполнять итеративное моделирование без компиляции модели или прекращения моделирования каждый раз. Быстрый перезапуск позволяет скомпилировать модель только один раз. Затем можно настроить параметры и снова смоделировать модель, не тратя время на компиляцию. Быстрый перезапуск связывает несколько этапов моделирования с одной стадией компиляции для повышения эффективности итеративного моделирования. Вы видите ускорение задач оптимизации конструкции с помощью быстрого перезапуска в моделях с длительной стадией компиляции. См. раздел Как быстрый перезапуск улучшает итерационное моделирование.
При включении быстрого перезапуска можно изменять только настраиваемые свойства модели во время моделирования. Дополнительные сведения об ограничениях см. в разделе Ограничения.
Оптимизировать можно с помощью быстрого перезапуска в оптимизаторе отклика (не поддерживается в Simulink Online™) или в командной строке.
Чтобы оптимизировать отклик модели с помощью быстрого перезапуска в оптимизаторе отклика:
Откройте модель Simulink.
Включить быстрый перезапуск в модели.
Щелкните Быстрый перезапуск (Fast Restart
) в окне модели.![]()
Откройте оптимизатор отклика для модели.
Настройте конструктивные переменные, требования к конструкции и, при необходимости, параметры оптимизации.
Дополнительные сведения см. в разделах Указание конструктивных переменных, Указание требований к конструкции временной области в приложении, Указание требований к конструкции частотной области в приложении и Определение параметров оптимизации.
Щелкните Оптимизировать (Optimize), чтобы оптимизировать отклик модели в режиме быстрого перезапуска.
Отключить быстрый перезапуск.
В окне модели щелкните Быстрый перезапуск (Fast Restart).
![]()
Чтобы оптимизировать отклик модели с помощью быстрого перезапуска в командной строке:
Откройте модель Simulink.
Создайте сценарий моделирования модели. Перед конфигурированием модели для быстрого перезапуска необходимо создать сценарий моделирования с информацией для регистрации. После компиляции модели для быстрого перезапуска изменить данные регистрации невозможно.
Simulator = sdo.SimulationTest('model');Укажите сигналы модели для регистрации во время моделирования модели.
Для задач оптимизации отклика, включающих требования к частотной области, модель линеаризуется с помощью Simulink Control Design™. Используйте SystemLoggingInfo имущества sdo.SimulationTest объект, Simulator, чтобы указать линейные системы для регистрации при моделировании модели. Пример см. в разделе Оптимизация конструкции для соответствия требованиям частотной области (код).
Укажите требования к конструкции, Requirementsи конструктивные переменные, param. Для примера см. раздел Оптимизация конструкции в соответствии с требованиями к ответу на шаг (код).
Настройте модель и сценарий моделирования для быстрого перезапуска.
Simulator = fastRestart(Simulator,'on');Создайте функцию оптимизации затрат, myCostfcn, и пройти Simulator в функцию затрат в качестве входных данных. Дополнительные сведения см. в разделе Запись функции затрат. В функции затрат симулятор, сконфигурированный для быстрого перезапуска, используется для обновления параметров модели, моделирования модели и регистрации сигналов.
Использовать анонимную функцию с одним аргументом, вызывающим myCostfcn.
optimfcn = @(param) myCostfcn(param,Simulator,Requirements);
Здесь, myCostfcn - функция затрат, которая принимает конструктивные переменные, param, сценарий моделирования, Simulatorи требования к конструкции, Requirements, в качестве входных данных.
Выполните оптимизацию.
[param_opt,opt_info] = sdo.optimize(optimfcn,param);
Восстановите параметры быстрого перезапуска симулятора.
Simulator = fastRestart(Simulator,'off');Вы видите ускорение задач оптимизации конструкции с помощью быстрого перезапуска в моделях с длительной стадией компиляции. Если фаза компиляции модели не длинна, вы не увидите существенного изменения скорости оптимизации.
fastRestart | sdo.optimize | sdo.SimulationTest