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

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

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

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

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

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

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

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

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

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

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

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

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

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

    • Input

    • Output

    • Local

    • Parameter

    • Temporary

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

    ВводОписание
    Inherit: Same as Simulink

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

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

    • Номер, имя и тип входных параметров

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

    • 'SampleTime'

    • Сложность

    • Выборка режима

    Если входной сигнал прибывает из блока 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 используйте оператор type Stateflow, чтобы скопировать тип другой структуры. Для получения дополнительной информации смотрите, Задают Типы Структуры путем Вызова Оператора типа.

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

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

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

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

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

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

Отладьте структуры

Чтобы отладить структуру Stateflow, откройте окно Stateflow Breakpoints и Watch и исследуйте значения полей структуры во время симуляции. Чтобы просмотреть значения полей структуры в командной строке, используйте запись через точку, чтобы индексировать в структуру. Для получения дополнительной информации смотрите, Смотрят Stateflow Data Values и Index Substructures и Fields.

Инструкции для типов данных структуры

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

  • Структуры не могут иметь постоянного осциллографа.

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

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

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

Смотрите также

Связанные примеры

Больше о