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

В фазе 1 этого рабочего процесса вы задаете интерфейс к модели 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. Во вкладке Simulation выберите Save> 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. Во вкладке Modeling, под Design Data, выбирают Data Input.

      Диалоговое окно Свойств данных открывается на вашем рабочем столе выбранной вкладкой 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. Во вкладке Modeling, под Design Data, выбирают Data Output.

      Диалоговое окно Свойств данных открывается на вашем рабочем столе, на этот раз с различными значениями по умолчанию, сопоставленными с осциллографом 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 от Воздушного Диспетчера к соответствующему входу в Физическом объекте:

    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.

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