exponenta event banner

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

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

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

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

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

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

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

  • inputsignal - подструктура с одним полем, input.

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

Определение структур потока состояний

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

  2. Добавьте объект данных в диаграмму, как описано в разделе Добавление данных потока состояний.

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

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

    • Input

    • Output

    • Local

    • Parameter

    • Temporary

  4. Задайте свойство Тип для структуры. В зависимости от области действия структура Stateflow может иметь один из этих типов данных.

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

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

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

    • Количество, имя и тип входных данных

    • Измерение

    • Время выборки

    • Сложность

    • Режим отбора проб

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

    Bus: <object name>

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

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

    <date type expression>

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

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

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

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

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

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

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

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

Чтобы отладить структуру Stateflow, откройте окно Точки останова Stateflow и Просмотр и изучите значения полей структуры во время моделирования. Для просмотра значений полей структуры в командной строке используйте точечную нотацию для индексирования в структуру. Дополнительные сведения см. в разделе Проверка и изменение данных и сообщений при отладке.

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

  • Определение каждой структуры из Simulink.Bus в базовой рабочей области.

  • Структуры не могут иметь постоянную область действия.

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

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

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

См. также

(Симулинк)

Связанные темы