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

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

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

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

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

Для получения дополнительной информации смотрите, Создают и Задают Объекты Simulink.Bus (Simulink).

Пример структур Stateflow

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

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

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

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

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

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

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

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

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

    • Input

    • Output

    • Local

    • Parameter

    • Data Store Memory

    • Temporary (Только в графиках, которые используют C в качестве языка действия),

  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.

Model Explorer showing the specification for the data object inbus.

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

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

Model Explorer showing the specification for the data object counterbus_struct.

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

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

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

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

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

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

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

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

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

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

(Simulink)

Похожие темы