Разделите длинную симуляцию на сегменты

В этом примере показано, как использовать рабочие точки с диаграммами Stateflow. Рабочая точка является снимком состояния модели Simulink ® в определенное время во время симуляции. Для графика Stateflow ® рабочая точка включает в себя:

  • Активность состояний графика

  • Значения локальных данных графика

  • Значения выходных данных графика

  • Значения стойких данных в функциях MATLAB ® и блоках Truth Table

Для получения дополнительной информации смотрите Использование рабочих точек в Stateflow.

Цель руководства

Предположим, что вы хотите симулировать эту модель, не начиная со времени t = 0.

Эта модель моделируется в течение 1400 секунд, но выход, который вас интересует, происходит где-то между t = 400 и 600. Можно симулировать модель, сохранить рабочую точку в момент t = 400, а затем загрузить эту рабочую точку для симуляции между t = 400 и 600.

Шаг 1: Задайте рабочую точку

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

2. Включите сохранение рабочей точки.

  A. Откройте диалоговое окно Model Параметры Конфигурации и перейдите на панель Data Import/Export.

  б. Установите флажок Конечные состояния.

  c. Введите имя, например sf_boiler_ctx01.

  d. Установите флажок Сохранить конечную рабочую точку.

  e. Нажмите Применить.

Чтобы выполнить этот шаг программно, введите:

set_param('sf_boiler', ...
    'SaveFinalState','on', ...
    'FinalStateName','sf_boiler_ctx01', ...
    'SaveOperatingPoint','on');

Для получения дополнительной информации о настройке параметров модели смотрите set_param (Simulink).

3. Определите начало и времена остановки для этого сегмента моделирования.

  A. В диалоговом окне Model Configuration Parameters перейдите к панели Solver.

  б. Для параметра Start time введите 0.

  C. Для времени остановки введите 400.

  c. Нажмите OK.

Чтобы выполнить этот шаг программно, введите:

set_param('sf_boiler', ...
    'StartTime','0', ...
    'StopTime','400');

4. Запустите симуляцию. Когда вы симулируете модель, вы сохраняете полную рабочую точку при t = 400 в переменной sf_boiler_ctx01 в базовом рабочем пространстве MATLAB.

5. Отключите сохранение рабочей точки. Этот шаг препятствует перезаписи рабочей точки, сохраненной на предыдущем шаге.

  A. Откройте диалоговое окно Model Параметры Конфигурации и перейдите на панель Data Import/Export.

  б. Снимите флажок Сохранить конечную рабочую точку.

  c. Снять флажок Конечные состояния.

  d. Нажмите кнопку ОК.

Чтобы выполнить этот шаг программно, введите:

set_param('sf_boiler', ...
    'SaveOperatingPoint','off', ...
    'SaveFinalState','off');

Шаг 2: Загрузка рабочей точки

1. Включите загрузку рабочей точки.

  A. Откройте диалоговое окно Model Параметры Конфигурации и перейдите на панель Data Import/Export.

  б. Установите флажок Начальное состояние.

  c. Введите переменную, которая содержит рабочую точку вашего графика, sf_boiler_ctx01.

  d. Нажмите Применить.

Чтобы выполнить этот шаг программно, введите:

set_param('sf_boiler', ...
    'LoadInitialState','on', ...
    'InitialState','sf_boiler_ctx01');

2. Определите новое время остановки для этого сегмента симуляции. Вы не должны вводить новое время запуска, потому что симуляция продолжается с того места, где оно остановилось.

  A. В диалоговом окне Model Configuration Parameters перейдите к панели Solver.

  б. В поле время остановки введите 600.

  c. Нажмите OK.

Чтобы выполнить этот шаг программно, введите:

set_param('sf_boiler','StopTime','600');

Шаг 3. Моделируйте конкретный сегмент

Когда вы моделируете модель, следующий выход появляется в блоке Scope (Simulink).

См. также

(Simulink) | (Simulink)

Похожие темы