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

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

Быстрый перезапуск позволяет вам выполнять итерационные симуляции, не компилируя модель или завершая симуляцию каждый раз. Используя быстрый перезапуск, вы компилируете модель только один раз. Затем можно настроить параметры и снова симулировать модель, не тратя время на компиляцию. Быстрый перезапуск связывает несколько фаз симуляции с одной фазой компиляции, чтобы сделать итерационные симуляции более эффективными. Вы видите ускорение задач оптимизации проекта с помощью быстрого перезапуска в моделях, которые имеют длинную фазу компиляции. Смотрите, как быстрый перезапуск улучшает итеративные симуляции.

Когда вы включаете быстрый перезапуск, можно изменять настраиваемые свойства модели только во время симуляции. Для получения дополнительной информации об ограничениях см. «Ограничения».

Анализ чувствительности можно выполнить с помощью быстрого перезапуска в Sensitivity Analyzer или в командной строке.

Рабочий процесс Sensitivity Analyzer для быстрого перезапуска

Чтобы вычислить модель с помощью быстрого перезапуска в Sensitivity Analyzer:

  1. Откройте модель Simulink.

  2. Включите быстрый перезапуск в модели.

    Щелкните Fast Restart в окне модели.

  3. Откройте Sensitivity Analyzer для модели.

  4. Задайте набор параметров, сгенерируйте выборки параметров и задайте требования к анализу чувствительности. Вы можете задать параметры оценки. Для примера смотрите Исследования проекта с использованием отбора проб параметров (графических интерфейсов пользователя) и Идентифицируйте ключевые параметры для оценки (код).

  5. Щелкните Evaluate, чтобы оценить модель в режиме быстрого перезапуска. Требования к проекту оцениваются для каждой комбинации значений параметров в вашем наборе параметров.

  6. Отключить быстрый перезапуск.

    В окне модели нажмите Fast Restart.

Эта функциональность не поддерживается в Simulink Online™.

Рабочий процесс командной строки для быстрого перезапуска

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

Чтобы оценить модель в режиме быстрого перезапуска с помощью функции затрат, направленной на оценку параметра:

  1. Откройте модель Simulink.

  2. Задайте значения параметров модели, params, для оценки и генерации выборок параметров, params_samples. Для получения примера смотрите Идентификация ключевых параметров для оценки (код).

  3. Создайте объект эксперимента, Exp.

    Exp = sdo.Experiment('model');

    Сохраните измеренные входно-выходные данные в Exp. Для получения примера смотрите Идентификация ключевых параметров для оценки (код).

  4. Создайте симулятор модели из эксперимента.

    Simulator = createSimulator(Exp);

    Simulator является sdo.SimulationTest объект.

    Примечание

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

  5. Сконфигурируйте модель и симулятор для быстрого перезапуска.

    Simulator = fastRestart(Simulator,'on');
  6. Создайте функцию затрат, myCostfcn, и передайте Simulator в функцию затрат как вход. Для получения дополнительной информации смотрите Написание функции затрат. В функции стоимости симулятор, сконфигурированный для быстрого перезапуска, используется, чтобы обновить параметры модели, симулировать модель и зарегистрировать сигналы.

    Используйте анонимную функцию с одним аргументом, который вызывает myCostfcn.

    evalfcn = @(param) myCostfcn(param,Simulator,Exp);
    
  7. Оцените модель.

    [param_opt,opt_info] = sdo.evaluate(evalfcn,param,param_samples);
  8. Восстановите настройки быстрого перезапуска симулятора.

    Simulator = fastRestart(Simulator,'off');

Рабочий процесс быстрого перезапуска аналогичен для анализа чувствительности, который идентифицирует переменные проекта с помощью функции затрат, направленной на оптимизацию ответа. Смотрите Использование режима быстрого перезапуска во время оптимизации отклика.

Поиск и устранение проблем

Почему я не вижу ускорение оценки, которое я ожидал использовать быстрый перезапуск?

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

См. также

| |

Похожие темы