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

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

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

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

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

Например, в модели sf_bus_demo, диаграмма Stateflow получает входной сигнал шины при помощи структуры inbus и выходные параметры шина сигнализируют от структуры о outbus. Входной сигнал прибывает из блока Simulink Bus Creator COUNTERBUSCreator, который связывает сигналы от двух других блоков Bus Creator. Структура output outbus подключения к блоку Simulink Bus Selector. Оба 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 и структура output outbus выведите их тип через спецификацию типа формы Bus: COUNTERBUS.

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

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

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

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

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

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

Чтобы отладить структуру Stateflow, откройте окно Stateflow Breakpoints и Watch и исследуйте значения полей структуры в процессе моделирования. Чтобы просмотреть значения полей структуры в командной строке, используйте запись через точку, чтобы индексировать в структуру. Для получения дополнительной информации смотрите, Смотрят и Изменяют Данные и сообщения, В то время как Отладка и индексирует Подструктуры и Поля.

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

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

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

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

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

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

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

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

Больше о