В фазе 1 этого рабочего процесса вы задаете интерфейс к модели Simulink®.
Чтобы реализовать интерфейс самостоятельно, выполните упражнения в этом разделе. В противном случае откройте предоставленную модель путем ввода этой команды в подсказке 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:
Создайте новую локальную папку для хранения вашей рабочей модели.
Во вкладке Simulation выберите Save> 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:
Во вкладке Modeling, под Design Data, выбирают Data Input.
Диалоговое окно Свойств данных открывается на вашем рабочем столе выбранной вкладкой 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, чтобы применить изменения и закрыть диалоговое окно.
Добавьте элемент данных, чтобы содержать значение потока воздуха выход от Воздушного Диспетчера график:
Во вкладке Modeling, под Design Data, выбирают Data Output.
Диалоговое окно Свойств данных открывается на вашем рабочем столе, на этот раз с различными значениями по умолчанию, сопоставленными с осциллографом 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
от Воздушного Диспетчера к соответствующему входу в Физическом объекте:
Поместите указатель по выходному порту для airflow
на правой стороне блока Air Controller.
Указатель превращается в форме в крест нитей.
Удерживайте левую кнопку мыши и переместите указатель на входной порт для airflow
на левой стороне блока Physical Plant.
Выпустите мышь.
Связь должна выглядеть примерно так:
Можно использовать ярлык в том, что он автоматически соединил блоки. Выберите исходный блок, и затем удерживайте клавишу CTRL и щелкните левой кнопкой по целевому блоку.
Соедините выход temp
от Физического объекта до соответствующего входа в Воздушном Контроллере путем рисования ответвления от линии, которая соединяет temp
к Осциллографу:
Поместите указатель в линию, где вы хотите, чтобы ответвление запустилось.
В то время как удержание клавиши CTRL, нажмите и удерживайте левую кнопку мыши.
Перетащите указатель к входному порту для temp
на левой стороне блока Air Controller.
Отпустите кнопку мыши и клавишу CTRL.
Измените местоположение связи так, чтобы она выглядела так:
Чтобы изменить местоположение связей, переместите свой курсор через конец линии. Когда изменения курсора в кругу, выберите конец линии с левой кнопкой мыши и перетащите линию к новому местоположению.
Сохраните Stage1Interface
.
Куда пойти затем. Теперь вы готовы смоделировать рабочие режимы с состояниями. Смотрите Реализацию Штаты, чтобы Представлять Рабочие режимы.