Доступ к сигналам шины через структуры Stateflow

Stateflow® structure - тип данных, заданный из Simulink.Bus (Simulink) объект. Используя структуры Stateflow, можно объединить данные разного размера и типа, чтобы создать:

  • Входы и выходы, которые получают доступ к Simulink® сигналы шины от диаграмм Stateflow, блоков Таблица и блоков MATLAB Function.

  • Локальные данные в диаграммах Stateflow, таблицах истинности, графических функциях, MATLAB® функций и коробок.

  • Временные данные в графических функциях Stateflow, таблицах истинности и функциях MATLAB.

Для примера в модели sf_bus_demoдиаграмма Stateflow получает входной сигнал шины при помощи структуры inbus и выводит сигнал шины от структуры outbus. Входной сигнал поступает из блока Bus Creator Simulink COUNTERBUSCreator, который связывает сигналы от двух других блоков Bus Creator. Область структуры output outbus соединяется с блоком Bus Selector Simulink. Оба inbus и outbus вывести свой тип из Simulink.Bus COUNTERBUS объекта.

Элементы массива типа данных структуры Stateflow называются полями. Поля могут быть любой комбинацией отдельных сигналов, мимикрированных сигналов, векторов и других структур (также называемых подструктурами). Каждое поле имеет свой тип данных. Тип данных не должен совпадать с типом любого другого поля в структуре. Для примера в модели sf_bus_demo, каждая из структур inbus и outbus имеет два поля:

  • inputsignal является подструктурой с одним полем, input.

  • limits является подструктурой с двумя полями, upper_saturation_limit и lower_saturation_limit.

Задайте структуры Stateflow

  1. Чтобы определить тип данных структуры, создайте объект шины Simulink в базовом рабочем пространстве, как описано в разделе «Создание и задание объектов Simulink.Bus (Simulink)».

  2. Добавьте объект данных к графику, как описано в Add Stateflow Data.

    Чтобы задать временные структуры в таблицах истинности, графических функциях и функциях MATLAB, добавьте объект данных к функции. Для получения дополнительной информации см. Раздел «Добавление данных через Model Explorer».

  3. Установите свойство Scope для структуры. Ваш выбор:

    • Input

    • Output

    • Local

    • Parameter

    • Temporary

  4. Установите свойство Type для структуры. В зависимости от его возможностей, структура Stateflow может иметь один из этих типов данных.

    НапечататьОписание
    Inherit: Same as Simulink

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

    В базовом рабочем пространстве задайте Simulink.Bus объект с теми же свойствами, что и сигнал шины, который соединяется с входной структурой Stateflow. Эти свойства должны совпадать:

    • Число, имя и тип входов

    • Размерность

    • Шаг расчета

    • Сложность

    • Режим дискретизации

    Если входной сигнал поступает из блока Bus Creator, в диалоговом окне Bus Creator задайте соответствующий объект шины для Output data type поля. Когда вы задаете объект шины, Simulink проверяет, что свойства Simulink.Bus объект в базовом рабочем пространстве соответствует свойствам сигнала шины Simulink.

    Bus: <object name>

    В Type поле замените <object name> с именем Simulink.Bus объект, который определяет структуру Stateflow.

    Для входных или выходных структур вы не обязаны задавать сигнал шины в модели Simulink, которая соединяется со структурой Stateflow. Если вы задаете сигнал шины, его свойства должны совпадать с Simulink.Bus объект, который определяет структуру Stateflow.

    <date type expression>

    В Type поле замените <data type expression> с выражением, которое вычисляется как тип данных. Для примера:

    • Введите имя Simulink.Bus объект, который определяет структуру Stateflow.

    • Для структур с возможностями, кроме Output, используйте Stateflow type оператор для копирования типа другой структуры. Для получения дополнительной информации смотрите Задать типы структур путем вызова типа Оператор.

Для примера, в sf_bus_demo модель, структура входа inbus и структура output outbus выведите их тип через спецификацию типа формы Bus: COUNTERBUS.

Задайте типы структур путем вызова type Оператор

Чтобы задать типы структур, можно использовать выражения, которые вызывают Stateflow type оператор. Этот оператор устанавливает тип одной структуры на тип другой структуры на диаграмме Stateflow. Для примера, в sf_bus_demo модель, a type выражение оператора задает тип локальной структуры counterbus_struct в терминах входной структуры inbus. Обе структуры определены из Simulink.Bus COUNTERBUS объекта. Для получения дополнительной информации смотрите Деривация типов данных из других объектов данных.

Виртуальная и невиртуальная шины

Модели Simulink поддерживают виртуальные и невиртуальные шины. Невиртуальные шины считывают свои входы от структур данных, хранящихся в смежной памяти. Виртуальные шины считывают свои входы из несмежной памяти. Для получения дополнительной информации смотрите Типы составных сигналов (Simulink).

Диаграммы Stateflow поддерживают только невиртуальные шины. Входные структуры Stateflow могут принимать сигналы виртуальной шины и преобразовывать их в невиртуальные сигналы шины. Входные структуры Stateflow не могут наследовать свойства от сигналов виртуальной шины. Если вход на график является виртуальной шиной, задайте свойство Type входной структуры через спецификацию типа формы Bus: <object name>.

Отладка структур

Чтобы отлажить структуру Stateflow, откройте окно Stateflow Breakpoints и Watch и исследуйте значения структурных полей во время симуляции. Чтобы просмотреть значения полей структуры в командной строке, используйте запись через точку для индекса в структуру. Для получения дополнительной информации см. раздел «Просмотр и изменение данных и сообщений во время отладки».

Инструкции по типам структурных данных

  • Задайте каждую структуру из Simulink.Bus объект в базовом рабочем пространстве.

  • Структуры не могут иметь постоянных возможностей.

  • Структуры возможностей должны быть настраиваемыми.

  • Объекты массива данных не могут содержать структуры.

  • Вы не можете задать структуры для машин Stateflow. Для получения дополнительной информации см. Обзор объектов Stateflow.

См. также

(Simulink)

Похожие темы