В фазе 6 этого рабочего процесса вы симулируете график, чтобы протестировать его поведение. В процессе моделирования можно анимировать графики Stateflow®, чтобы подсветить состояния и переходы, как они выполняются.
Чтобы подготовить график к симуляции самостоятельно, выполните упражнения в этом разделе. В противном случае откройте предоставленную модель, чтобы видеть, как должны появиться параметры симуляции. Введите эту команду в подсказке MATLAB®:
addpath(fullfile(docroot, 'toolbox', 'stateflow', 'gs', 'examples')) Stage6Simulate
Прежде, чем запустить сеанс симуляции, необходимо исследовать график, чтобы видеть, соответствует ли он рекомендуемым методам проекта:
Переход по умолчанию должен существовать на каждом уровне иерархии Stateflow, которая содержит исключительный (OR) состояния (имеет исключительный [OR] разложение). (См. Решение, Куда Поместить Переходы По умолчанию.)
Каждый раз, когда возможно, объекты входных данных должны наследовать свойства от связанного входного сигнала Simulink®, чтобы гарантировать непротиворечивость, минимизировать ввод данных и упростить обслуживание вашей модели. Вспомните, что в Определении Вводов и выводов, вы задали вход temp
наследовать его размер и тип от выходного порта Simulink temp
, который предоставляет входное значение Воздушному Контроллеру график.
Объекты выходных данных не должны
наследовать типы и размеры, потому что значения назад распространены от блоков Simulink и могут, поэтому, быть непредсказуемыми. Вспомните, что в Определении Вводов и выводов, вы задали тип данных как uint8
и размер как скаляр (значение по умолчанию). (См., Стараются не Наследовать Свойства Выходных данных от блоков Simulink в Руководстве пользователя Stateflow.)
Можно задать типы данных и размеры как выражения, в которых вы вызываете функции, которые возвращают значения свойств других переменных, уже заданных в Stateflow, MATLAB или программном обеспечении Simulink. Такие функции включают тип и fixdt
. Для получения дополнительной информации смотрите Specify Data Properties при помощи Выражений MATLAB в Руководстве пользователя Stateflow.
Чтобы задать продолжительность симуляции, выполните эти шаги:
Откройте модель Stage5Trigger
— или тот вы создали в предыдущих упражнениях или предоставленной модели для этапа 5.
Чтобы открыть предоставленную модель, введите следующую команду в посдказке MATLAB:
addpath(fullfile(docroot, 'toolbox', 'stateflow', 'gs', 'examples')) Stage5Trigger
Сохраните модель как Stage6Simulate
в вашей локальной папке работы.
Дважды кликните Воздушный Контроллер, чтобы открыть график.
Проверяйте настройки на время симуляции:
В Редакторе Simulink, во вкладке Modeling, нажимают Model Settings.
Следующее диалоговое окно открывается:
Нажмите Solver в левой панели Select, если это уже не выбрано.
Под Simulation time справа, обратите внимание, что запуск и времена остановки были заданы для вас. Можно настроить эти времена спустя, когда вы становитесь более знакомыми с поведением во время выполнения графика.
Сохраните предварительно установленные значения на данный момент и нажмите OK, чтобы закрыть диалоговое окно.
Оставьте график открытым для следующего осуществления.
Когда вы симулируете модель Simulink, Stateflow анимирует графики, чтобы подсветить состояния и переходы, как они выполняются. Анимация обеспечивает визуальную верификацию, что ваш график ведет себя, как вы ожидаете. К анимации включают по умолчанию Быстро. Замедление его дает вам больше времени, чтобы просмотреть порядок выполнения объектов. Чтобы сконфигурировать анимацию для вашего сеанса симуляции, выполните эти шаги:
Установите скорость анимации к носителю. В редакторе Stateflow, во вкладке Debug, устанавливает скорость анимации на Medium
. Это замедляет анимацию.
Оставьте Воздушный Контроллер графиком открытый для следующего осуществления.
В этом осуществлении вы изучите, как установить точки останова приостанавливать симуляцию во время ключевых операций этапа выполнения, таким образом, можно наблюдать поведение графика в замедленном воспроизведении. Вы установите следующие точки останова:
Точка останова | Описание |
---|---|
Стройте диаграмму записи | Симуляция останавливается, когда диаграмма Stateflow просыпается. |
Запись состояния | Симуляция останавливается, когда состояние становится активным. |
Вы также изучите, как исследовать значения данных, когда симуляция делает паузу.
Выполните эти шаги:
Щелкните правой кнопкой мыши в графике и выберите Set Breakpoint on Chart Entry.
Для каждого PowerOn
состояния и
PowerOff
, щелкните правой кнопкой мыши в состоянии и выберите Set Breakpoints> On State Entry.
В этом осуществлении вы симулируете Воздушный Контроллер график. В процессе моделирования вы будете изменять точки останова и наблюдать значения данных, когда выполнение сделает паузу. Выполните эти шаги.
В Stage6Simulate
, откройте блок Scope. Расположите блок Scope и Воздушный Контроллер график, таким образом, они отображаются на вашем рабочем столе.
Запустите симуляцию путем нажатия на Run.
После того, как цель симуляции создается, график появляется с серым фоном, указывая, что симуляция началась. Симуляция продолжается, пока она не достигает первой точки останова, когда Воздушный Контроллер график просыпается.
Щелкните правой кнопкой мыши по переходу в FAN1
состояния, и выберите Add to watch> (Input) temp. Это добавляет переменную
temp
к окну Stateflow Breakpoints и Watch.
Щелкните правой кнопкой мыши в SpeedValue
состояния, и выберите Add to watch> (Output) airflow. Это добавляет переменную
airflow
к окну Stateflow Breakpoints и Watch.
Можно также просмотреть значения данных из командной строки MATLAB в точках останова симуляции. Вот то, как сделать это:
Когда симуляция сделает паузу в точке останова, щелкните в командной строке MATLAB и нажмите клавишу Enter.
Окно Команды MATLAB отображает debug>>
подсказка.
В подсказке введите имя объекта данных.
Окно Команды MATLAB отображает значение объекта данных.
Просмотрите значения temp
и airflow
.
Обратите внимание на то, что temp
70 (ниже порога для включения FAN1
) и airflow
0 (указание, что никакие вентиляторы не запускаются).
Возобновите симуляцию путем нажатия кнопки Continue.
Симуляция продолжается до следующей точки останова, активации PowerOff
состояние, которое кажется подсвеченным в графике (как часть анимации).
Переход по умолчанию активирует PowerOff
после того, как график просыпается.
Во вкладке Breakpoints окна Stateflow Breakpoints и Watch Data очистите точку останова на Записи Графика. Наведите курсор на имя точки останова и нажмите удалить кнопку. Продолжите симуляцию.
Симуляция продолжается к следующей точке останова, активации PowerOn
состояние:
Обратите внимание на то, что temp
повысился до более чем 157 градусов. Осциллограф отображает температурный шаблон:
Чтобы ускориться через остальную часть симуляции, очистите все точки останова и продолжите симуляцию.
Заметьте тот FAN1
продолжает циклически повторяться на и прочь как temp
колеблется между 119 и 120 градусами до, подвергает циклу включения и выключения питания прочь в 500 секунд. После подвергает циклу включения и выключения питания прочь, вентиляторы прекращают запускаться и temp
начинает повышаться неконтролируемый, пока симуляция не достигает времени остановки в 600 секунд.
Осциллограф получает это действие:
Это отображение должно выглядеть одинаково как Осциллограф после выполнения предварительно созданной модели в Выполнении Модели.
Сохраните Stage6Simulate
, и закройте все другие окна и диалоговые окна.