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

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

  • Действие состояний графика

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

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

  • Значения персистентных данных в функциях MATLAB® и блоках Таблицы истинности

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

Цель примера

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

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

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

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

2. Позвольте сохранить рабочей точки.

  a. Откройте диалоговое окно Model Configuration Parameters и перейдите к панели Импорта/Экспорта Данных.

  b. Установите флажок конечных состояний.

  c. Введите имя, такое как sf_boiler_ctx01.

  d. Установите флажок рабочей точки финала Save.

  e. Нажмите Apply.

Завершать этот шаг программно, введите:

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

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

3. Задайте запуск и времена остановки для этого сегмента симуляции.

  a. В диалоговом окне Model Configuration Parameters перейдите к панели Решателя.

  b. В течение Времени начала введите 0.

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

  c. Нажать ОК.

Завершать этот шаг программно, введите:

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

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

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

  a. Откройте диалоговое окно Model Configuration Parameters и перейдите к панели Импорта/Экспорта Данных.

  b. Снимите флажок рабочей точки финала Сохранения.

  c. Снимите флажок конечных состояний.

  d. Нажать ОК.

Завершать этот шаг программно, введите:

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

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

1. Позвольте загрузить рабочей точки.

  a. Откройте диалоговое окно Model Configuration Parameters и перейдите к панели Импорта/Экспорта Данных.

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

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

  d. Нажмите Apply.

Завершать этот шаг программно, введите:

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

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

  a. В диалоговом окне Model Configuration Parameters перейдите к панели Решателя.

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

  c. Нажать ОК.

Завершать этот шаг программно, введите:

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

Шаг 3: симулируйте определенный сегмент

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

Смотрите также

|

Похожие темы