Чтобы реализовать интерфейс самостоятельно, выполните упражнения в этом разделе. В противном случае откройте предоставленную модель путем ввода этой команды в подсказке MATLAB®:
addpath(fullfile(docroot, 'toolbox', 'stateflow', 'gs', 'examples')) Stage1Interface
Следующие разделы описывают объяснение для ввода и вывода графика Stateflow®.
Тип Входа. Температура материальной части
Объяснение. Цель графика состоит в том, чтобы управлять температурой воздуха в материальной части. Цель состоит в том, чтобы поддержать идеальную температуру 120 градусов путем активации одного или двух вентиляторов при необходимости. График должен проверять температуру объекта в зависимости от времени, чтобы определить объем охлаждения необходимого.
Свойства Входа. Свойства температурного входа следующие:
Свойство | Значение |
---|---|
Имя | temp |
Осциллограф | Входной параметр |
Размер | Наследуйтесь входному сигналу Simulink® для совместимости |
Тип данных | Наследуйтесь входному сигналу Simulink для совместимости |
Порт | 1 |
Тип Вывода. Скорость потока воздуха, на основе того, сколько вентиляторов действует
Объяснение. Когда Подсистема Simulink определяет температуру материальной части в зависимости от времени, это должно составлять скорость потока воздуха. Скорость потока воздуха непосредственно связана на сумму охлаждающегося действия, сгенерированного вентиляторами. Когда больше поклонников активируется, охлаждая увеличения действия и воздушные потоки быстрее. Чтобы передать эту информацию, диаграмма Stateflow выводит значение, которое указывает, запускаются ли 0, 1, или 2 вентилятора. Подсистема Simulink использует это значение в качестве индекса в многопортовый переключатель, который выводит охлаждающееся значение действия, как описано во Взгляде на Материальную часть.
Свойства Вывода. Свойства потока воздуха вывод следующие:
Свойство | Значение |
---|---|
Имя | airflow |
Осциллограф | Вывод |
Тип данных | 8-битное беззнаковое целое ( (Значения могут быть только 0, 1, или 2.) |
Порт | 1 |
Чтобы начать создавать вашу диаграмму Stateflow, вы добавите блок Stateflow в частично созданную модель Simulink под названием sf_aircontrol_exercise
, который содержит подсистему Материальной части, описанную во Взгляде на Материальную часть.
Добавить блок Stateflow в существующую модель Simulink:
Откройте модель Simulink путем ввода sf_aircontrol_exercise
в подсказке команды MATLAB.
Модель открывается на вашем рабочем столе:
Модель является неполной, потому что она не включает диаграмму Stateflow, которую вы создадите, когда вы выполняете упражнения в этом руководстве. Вместо этого модель содержит несколько нефункциональных блоков: Терминатор, Inport и блоки Аннотации.
Удалите нефункциональные блоки и их коннекторы.
Удерживайте клавишу SHIFT, чтобы выбрать несколько объектов, и затем нажать Delete.
Ваша модель должна теперь выглядеть так:
Сохраните модель как Stage1Interface:
Создайте новую локальную папку для хранения вашей рабочей модели.
В окне модели Simulink выберите File> Save As.
Перейдите к новой папке.
Введите Stage1Interface
как имя файла.
Оставьте тип по умолчанию как Simulink Models.
Нажмите Save.
На панели инструментов модели Simulink нажмите Library Browser icon:
Браузер Библиотеки Simulink открывается на вашем рабочем столе:
Добавьте блок Stateflow Chart в модель Simulink:
В левой области прокрутки Браузера Библиотеки выберите Stateflow.
Перетащите первый блок, названный Графиком, в вашу модель.
Модель должна теперь выглядеть так:
Кликните по метке Chart
под блоком Stateflow и переименуйте его Air Controller
.
Измените язык действия графика к C:
Дважды кликните блок, чтобы открыть график.
Щелкните правой кнопкой мыши в пустой области графика и выберите Properties.
От поля Action Language выберите C
.
Выберите OK.
Ярлык для добавления блока Stateflow к новой модели Simulink
Вводы и выводы являются элементами данных в диаграмме Stateflow, которые взаимодействуют с родительской моделью Simulink. Чтобы задать вводы и выводы для вашего графика, выполните эти шаги:
Дважды кликните блок Air Controller в модели Simulink Stage1Interface
, чтобы открыть диаграмму Stateflow.
Редактор Stateflow открывается на вашем рабочем столе:
Добавьте элемент данных, чтобы содержать значение температурного входа из модели Simulink:
В меню редактора выберите Chart> Add Inputs & Outputs> Data Input From Simulink.
Диалоговое окно Свойств данных открывается на вашем рабочем столе выбранной вкладкой General:
Значения по умолчанию в диалоговом окне зависят от осциллографа — в этом случае, ввод данных.
В поле Name поменяйте имя элемента данных к temp
.
Покиньте следующие поля в их значениях по умолчанию во вкладке General, потому что они соответствуют конструктивным требованиям:
Поле | Значение по умолчанию | Что это означает |
---|---|---|
Осциллограф | Input | Введите из модели Simulink. Элемент данных получает свое значение от Сигнала Simulink на том же входном порте. |
Размер | -1 | Элемент данных наследовал свой размер от Сигнала Simulink на том же порте. |
Сложность | Off | Элемент данных не содержит комплексных чисел. |
Ввод | Inherit: Same as Simulink | Элемент данных наследовал свой тип данных от Сигнала Simulink на том же выходном порте. |
Порты присвоены вводам и выводам в порядке, они создаются. Поскольку temp
является первым входом, который вы создали, это присвоено входному порту 1.
Во вкладке General выберите Add to watch window.
Окно Stateflow Breakpoints и Watch позволяет вам исследовать значение temp
во время точек останова в симуляции. Вы попробуете это в Установке Параметров Симуляции и Точек останова.
Нажмите OK, чтобы применить изменения и закрыть диалоговое окно.
Добавьте элемент данных, чтобы содержать значение потока воздуха вывод от Воздушного Диспетчера график:
В меню редактора выберите Chart> Add Inputs & Outputs> Data Output To Simulink.
Диалоговое окно Свойств данных открывается на вашем рабочем столе, на этот раз с различными значениями по умолчанию, сопоставленными с осциллографом Output:
Поскольку airflow
является первый вывод, который вы создали, это присвоено выходному порту 1.
В поле Name диалогового окна Свойств данных поменяйте имя элемента данных к airflow
.
В поле Type выберите uint8
(8-битное беззнаковое целое) из подменю.
Посмотрите на поле Initial value.
Начальное значение является пустым выражением, которое указывает на значение по умолчанию нуля, на основе типа данных. Это значение сопоставимо с образцовым проектом, который указывает, что никакие вентиляторы не запускаются, когда график просыпается впервые.
Внесите следующие изменения для других свойств во вкладке General:
Свойство | Что задать |
---|---|
Ограничьте область значений | Войдите 0 для Minimum и 2 для Maximum. |
Добавьте, чтобы смотреть окно | Выберите это, чтобы добавить airflow во вкладку Watch окна Stateflow Breakpoints и Watch. |
Нажмите OK, чтобы применить изменения и закрыть диалоговое окно.
Вернитесь к модели Simulink путем нажатия кнопки стрелки вниз на панели инструментов Stateflow Editor.
Заметьте, что вход temp
и вывод airflow
были добавлены к блоку Stateflow:
Вы можете должны быть увеличить блок Air Controller, чтобы видеть ввод и вывод ясно. Изменить размер блока:
Выберите блок и переместите указатель через один из углов, пока это не изменится на эту форму:
Удерживайте левую кнопку мыши и перетащите блок к желаемому размеру.
Сохраните Stage1Interface
.
Существует несколько способов добавить объекты данных в диаграммы Stateflow. Вы использовали редактора Stateflow, который позволяет вам добавить элементы данных в диаграмму Stateflow, которая открыта и фокусируется. Однако, чтобы добавить объекты данных не только к графику, но и где угодно в Stateflow разрабатывают иерархию, можно использовать инструмент, названный Model Explorer. Этот инструмент также позволяет вам просмотреть и изменить объекты данных, которые вы уже добавили в график. Для получения дополнительной информации смотрите Иерархию Объектов Stateflow и Добавьте Данные Через Model Explorer в Руководстве пользователя Stateflow. Можно также добавить, что объекты данных программно с помощью API Stateflow, как описано в Создают Объекты Stateflow в Руководстве API Stateflow.
Теперь, когда вы задали вводы и выводы для блока Stateflow Air Controller, необходимо соединить их с соответствующими сигналами подсистемы Материальной части Simulink. Выполните эти шаги:
В модели Stage1Interface
соедините вывод airflow
from Air Controller с соответствующим входом в Материальной части:
Поместите указатель по выходному порту для airflow
на правой стороне блока Air Controller.
Указатель изменяется в форме на крест нитей.
Удерживайте левую кнопку мыши и переместите указатель на входной порт для airflow
на левой стороне блока Physical Plant.
Выпустите мышь.
Связь должна выглядеть примерно так:
Можно использовать ярлык для того, чтобы автоматически соединить блоки. Выберите исходный блок, и затем удерживайте клавишу CTRL и щелкните левой кнопкой по целевому блоку.
Соедините вывод temp
от Материальной части до соответствующего входа в Воздушном Контроллере путем рисования ответвления от строки, которая соединяет temp
с Осциллографом:
Поместите указатель в строку, где вы хотите, чтобы ответвление запустилось.
В то время как удержание клавиши CTRL, нажмите и удерживайте левую кнопку мыши.
Перетащите указатель к входному порту для temp
на левой стороне блока Air Controller.
Отпустите кнопку мыши и клавишу CTRL.
Измените местоположение связи так, чтобы она выглядела так:
Чтобы изменить местоположение связей, переместите свой курсор через конец строки. Когда изменения курсора в кругу, выберите конец строки с левой кнопкой мыши и перетащите строку к новому местоположению.
Сохраните Stage1Interface
.
Куда пойти затем. Теперь вы готовы смоделировать рабочие режимы с состояниями. Смотрите Реализацию Штаты, чтобы Представлять Рабочие режимы.