Реализация интерфейса с Simulink

Создайте его сами или используйте предоставленную модель

Чтобы реализовать интерфейс самостоятельно, выполните упражнения в этом разделе. В противном случае откройте предоставленную модель путем ввода этой команды в подсказке MATLAB®:

addpath(fullfile(docroot, 'toolbox', 'stateflow', 'gs', 'examples'))
Stage1Interface

Конструктивные соображения для определения интерфейса

Следующие разделы описывают объяснение для ввода и вывода графика Stateflow®.

Входные параметры, необходимые из модели Simulink

Тип Входа.  Температура материальной части

Объяснение.  Цель графика состоит в том, чтобы управлять температурой воздуха в материальной части. Цель состоит в том, чтобы поддержать идеальную температуру 120 градусов путем активации одного или двух вентиляторов при необходимости. График должен проверять температуру объекта в зависимости от времени, чтобы определить объем охлаждения необходимого.

Свойства Входа.  Свойства температурного входа следующие:

СвойствоЗначение
Имяtemp
ОсциллографВходной параметр
РазмерНаследуйтесь входному сигналу Simulink® для совместимости
Тип данныхНаследуйтесь входному сигналу Simulink для совместимости
Порт1

Выходные параметры, необходимые от диаграммы Stateflow

Тип Вывода.  Скорость потока воздуха, на основе того, сколько вентиляторов действует

Объяснение.  Когда Подсистема Simulink определяет температуру материальной части в зависимости от времени, это должно составлять скорость потока воздуха. Скорость потока воздуха непосредственно связана на сумму охлаждающегося действия, сгенерированного вентиляторами. Когда больше поклонников активируется, охлаждая увеличения действия и воздушные потоки быстрее. Чтобы передать эту информацию, диаграмма Stateflow выводит значение, которое указывает, запускаются ли 0, 1, или 2 вентилятора. Подсистема Simulink использует это значение в качестве индекса в многопортовый переключатель, который выводит охлаждающееся значение действия, как описано во Взгляде на Материальную часть.

Свойства Вывода.  Свойства потока воздуха вывод следующие:

СвойствоЗначение
Имяairflow
ОсциллографВывод
Тип данных

8-битное беззнаковое целое (uint8)

(Значения могут быть только 0, 1, или 2.)

Порт1

Добавление блока Stateflow к модели Simulink

Чтобы начать создавать вашу диаграмму Stateflow, вы добавите блок Stateflow в частично созданную модель Simulink под названием sf_aircontrol_exercise, который содержит подсистему Материальной части, описанную во Взгляде на Материальную часть.

Добавить блок Stateflow в существующую модель Simulink:

  1. Откройте модель Simulink путем ввода sf_aircontrol_exercise в подсказке команды MATLAB.

    Модель открывается на вашем рабочем столе:

    Модель является неполной, потому что она не включает диаграмму Stateflow, которую вы создадите, когда вы выполняете упражнения в этом руководстве. Вместо этого модель содержит несколько нефункциональных блоков: Терминатор, Inport и блоки Аннотации.

  2. Удалите нефункциональные блоки и их коннекторы.

    Совет

    Удерживайте клавишу SHIFT, чтобы выбрать несколько объектов, и затем нажать Delete.

    Ваша модель должна теперь выглядеть так:

  3. Сохраните модель как Stage1Interface:

    1. Создайте новую локальную папку для хранения вашей рабочей модели.

    2. В окне модели Simulink выберите File> Save As.

    3. Перейдите к новой папке.

    4. Введите Stage1Interface как имя файла.

    5. Оставьте тип по умолчанию как Simulink Models.

    6. Нажмите Save.

  4. На панели инструментов модели Simulink нажмите Library Browser icon:

    Браузер Библиотеки Simulink открывается на вашем рабочем столе:

  5. Добавьте блок Stateflow Chart в модель Simulink:

    1. В левой области прокрутки Браузера Библиотеки выберите Stateflow.

    2. Перетащите первый блок, названный Графиком, в вашу модель.

    Модель должна теперь выглядеть так:

  6. Кликните по метке Chart под блоком Stateflow и переименуйте его Air Controller.

  7. Измените язык действия графика к C:

    1. Дважды кликните блок, чтобы открыть график.

    2. Щелкните правой кнопкой мыши в пустой области графика и выберите Properties.

    3. От поля Action Language выберите C.

    4. Выберите OK.

 Ярлык для добавления блока Stateflow к новой модели Simulink

Определение вводов и выводов

Вводы и выводы являются элементами данных в диаграмме Stateflow, которые взаимодействуют с родительской моделью Simulink. Чтобы задать вводы и выводы для вашего графика, выполните эти шаги:

  1. Дважды кликните блок Air Controller в модели Simulink Stage1Interface, чтобы открыть диаграмму Stateflow.

    Редактор Stateflow открывается на вашем рабочем столе:

  2. Добавьте элемент данных, чтобы содержать значение температурного входа из модели Simulink:

    1. В меню редактора выберите Chart> Add Inputs & Outputs> Data Input From Simulink.

      Диалоговое окно Свойств данных открывается на вашем рабочем столе выбранной вкладкой General:

      Значения по умолчанию в диалоговом окне зависят от осциллографа — в этом случае, ввод данных.

    2. В поле Name поменяйте имя элемента данных к temp.

    3. Покиньте следующие поля в их значениях по умолчанию во вкладке General, потому что они соответствуют конструктивным требованиям:

      Поле Значение по умолчаниюЧто это означает
      ОсциллографInputВведите из модели Simulink. Элемент данных получает свое значение от Сигнала Simulink на том же входном порте.
      Размер-1Элемент данных наследовал свой размер от Сигнала Simulink на том же порте.
      СложностьOffЭлемент данных не содержит комплексных чисел.
      ВводInherit: Same as SimulinkЭлемент данных наследовал свой тип данных от Сигнала Simulink на том же выходном порте.

      Примечание

      Порты присвоены вводам и выводам в порядке, они создаются. Поскольку temp является первым входом, который вы создали, это присвоено входному порту 1.

    4. Во вкладке General выберите Add to watch window.

      Окно Stateflow Breakpoints и Watch позволяет вам исследовать значение temp во время точек останова в симуляции. Вы попробуете это в Установке Параметров Симуляции и Точек останова.

    5. Нажмите OK, чтобы применить изменения и закрыть диалоговое окно.

  3. Добавьте элемент данных, чтобы содержать значение потока воздуха вывод от Воздушного Диспетчера график:

    1. В меню редактора выберите Chart> Add Inputs & Outputs> Data Output To Simulink.

      Диалоговое окно Свойств данных открывается на вашем рабочем столе, на этот раз с различными значениями по умолчанию, сопоставленными с осциллографом Output:

      Примечание

      Поскольку airflow является первый вывод, который вы создали, это присвоено выходному порту 1.

    2. В поле Name диалогового окна Свойств данных поменяйте имя элемента данных к airflow.

    3. В поле Type выберите uint8 (8-битное беззнаковое целое) из подменю.

    4. Посмотрите на поле Initial value.

      Начальное значение является пустым выражением, которое указывает на значение по умолчанию нуля, на основе типа данных. Это значение сопоставимо с образцовым проектом, который указывает, что никакие вентиляторы не запускаются, когда график просыпается впервые.

    5. Внесите следующие изменения для других свойств во вкладке General:

      СвойствоЧто задать
      Ограничьте область значенийВойдите 0 для Minimum и 2 для Maximum.
      Добавьте, чтобы смотреть окноВыберите это, чтобы добавить airflow во вкладку Watch окна Stateflow Breakpoints и Watch.
    6. Нажмите OK, чтобы применить изменения и закрыть диалоговое окно.

  4. Вернитесь к модели Simulink путем нажатия кнопки стрелки вниз на панели инструментов Stateflow Editor.

    Заметьте, что вход temp и вывод airflow были добавлены к блоку Stateflow:

    Совет

    Вы можете должны быть увеличить блок Air Controller, чтобы видеть ввод и вывод ясно. Изменить размер блока:

    1. Выберите блок и переместите указатель через один из углов, пока это не изменится на эту форму:

    2. Удерживайте левую кнопку мыши и перетащите блок к желаемому размеру.

  5. Сохраните Stage1Interface.

Совет

Существует несколько способов добавить объекты данных в диаграммы Stateflow. Вы использовали редактора Stateflow, который позволяет вам добавить элементы данных в диаграмму Stateflow, которая открыта и фокусируется. Однако, чтобы добавить объекты данных не только к графику, но и где угодно в Stateflow разрабатывают иерархию, можно использовать инструмент, названный Model Explorer. Этот инструмент также позволяет вам просмотреть и изменить объекты данных, которые вы уже добавили в график. Для получения дополнительной информации смотрите Иерархию Объектов Stateflow и Добавьте Данные Через Model Explorer в Руководстве пользователя Stateflow. Можно также добавить, что объекты данных программно с помощью API Stateflow, как описано в Создают Объекты Stateflow в Руководстве API Stateflow.

Соединение блока Stateflow к подсистеме Simulink

Теперь, когда вы задали вводы и выводы для блока Stateflow Air Controller, необходимо соединить их с соответствующими сигналами подсистемы Материальной части Simulink. Выполните эти шаги:

  1. В модели Stage1Interface соедините вывод airflow from Air Controller с соответствующим входом в Материальной части:

    1. Поместите указатель по выходному порту для airflow на правой стороне блока Air Controller.

      Указатель изменяется в форме на крест нитей.

    2. Удерживайте левую кнопку мыши и переместите указатель на входной порт для airflow на левой стороне блока Physical Plant.

    3. Выпустите мышь.

      Связь должна выглядеть примерно так:

    Совет

    Можно использовать ярлык для того, чтобы автоматически соединить блоки. Выберите исходный блок, и затем удерживайте клавишу CTRL и щелкните левой кнопкой по целевому блоку.

  2. Соедините вывод temp от Материальной части до соответствующего входа в Воздушном Контроллере путем рисования ответвления от строки, которая соединяет temp с Осциллографом:

    1. Поместите указатель в строку, где вы хотите, чтобы ответвление запустилось.

    2. В то время как удержание клавиши CTRL, нажмите и удерживайте левую кнопку мыши.

    3. Перетащите указатель к входному порту для temp на левой стороне блока Air Controller.

    4. Отпустите кнопку мыши и клавишу CTRL.

    5. Измените местоположение связи так, чтобы она выглядела так:

      Совет

      Чтобы изменить местоположение связей, переместите свой курсор через конец строки. Когда изменения курсора в кругу, выберите конец строки с левой кнопкой мыши и перетащите строку к новому местоположению.

  3. Сохраните Stage1Interface.

Куда пойти затем.  Теперь вы готовы смоделировать рабочие режимы с состояниями. Смотрите Реализацию Штаты, чтобы Представлять Рабочие режимы.