exponenta event banner

Stateflow. Диаграмма

Графическое представление конечного автомата

    Описание

    Использовать Stateflow.Chart объект для создания графического представления конечного автомата путем объединения состояний, переходов и данных. Дополнительные сведения см. в разделах Концепции конечного автомата и создание диаграмм с помощью API Stateflow.

    Создание

    Создание Stateflow.Chart объект, вызовите функцию sfnew. Например, чтобы создать пустую диаграмму в новой модели Simulink ® под названиемmyModel, введите:

    sfnew myModel

    Можно также добавить новую диаграмму в существующую модель с помощью функции. add_block (Simulink):

    add_block('sflib/Chart','myModel/Chart')

    Затем для доступа к Stateflow.Chart объект, вызовите find для функции Simulink.Root объект:

    rt = sfroot;
    chart = find(rt,'-isa','Stateflow.Chart', ...
        'Path','myModel/Chart');

    Свойства

    развернуть все

    Содержание

    Имя диаграммы, указанное как символьный вектор.

    Язык действий, используемый для программирования диаграммы, указанный как 'MATLAB' или 'C'. Дополнительные сведения см. в разделе Различия между MATLAB и C как синтаксисом языка действий.

    Семантика конечного автомата, реализованная диаграммой, указанная как 'Classic', 'Mealy', или 'Moore'. Дополнительные сведения см. в разделе Обзор машин Mealy и Moore.

    Поддерживает ли диаграмма данные переменного размера, указанные как числовые или логические 1 (true) или 0 (false). Только данные переменного размера могут изменять размеры во время моделирования. Дополнительные сведения см. в разделе Объявление данных переменного размера в диаграммах потока состояний.

    Разложение состояния

    Разложение подстанций на верхнем уровне защитной оболочки на графике, указанное как 'EXCLUSIVE_OR' или 'PARALLEL_AND'. Дополнительные сведения см. в разделе Указание декомпозиции подсостояния.

    Инициализация диаграммы

    Инициализировать ли конфигурацию состояния диаграммы в нулевое время вместо первого входного события, указанного как числовой или логический 1 (true) или 0 (false). Дополнительные сведения см. в разделе Выполнение диаграммы при инициализации.

    Поведение состояний, когда событие ввода вызова функции повторно активирует диаграмму, указанное как одно из следующих значений:

    • '' - Диаграмма не содержит событий ввода вызова функции.

    • 'held' - Диаграмма сохраняет самые последние значения состояний.

    • 'reset' - График возвращается к начальным условиям состояний.

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

    Инициализировать ли выходные данные каждый раз при пробуждении диаграммы, указанной как числовой или логический 1 (true) или 0 (false). Дополнительные сведения см. в разделе Инициализация выходных данных при каждом включении диаграммы.

    Выход активного состояния

    Создать ли порт вывода данных активного состояния для диаграммы, указанный как числовой или логический 1 (true) или 0 (false). Дополнительные сведения см. в разделе Мониторинг активности состояния через данные активного состояния.

    Это свойство доступно только для чтения.

    Объект данных активного состояния для диаграммы, указанный как Stateflow.Data объект. Это свойство применяется только в том случае, если HasOutputData свойство для диаграммы: true.

    Имя объекта данных активного состояния для диаграммы, указанного как символьный вектор. Это свойство применяется только в том случае, если HasOutputData свойство для диаграммы: true.

    Режим мониторинга выходных данных активного состояния, указанный как 'ChildActivity' или 'LeafStateActivity'.

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

    Определить ли перечисляемый тип данных для вывода данных активного состояния вручную, указанный как числовой или логический 1 (true) или 0 (false). Дополнительные сведения см. в разделе Определение типа перечисления действий состояния.

    Дискретная семантика с непрерывным временем

    Метод активации для диаграммы, указанный как 'CONTINUOUS', 'DISCRETE', или 'INHERITED'. Дополнительные сведения см. в разделе Обновление метода.

    Примерное время активации диаграммы, указанное как символьный вектор. Это свойство применяется только в том случае, если ChartUpdate свойство для диаграммы: 'DISCRETE'.

    Включить ли обнаружение пересечения нуля при переходах состояний на диаграмме, указанных как числовой или логический 1 (true) или 0 (false). Это свойство применяется только в том случае, если ChartUpdate свойство для диаграммы имеет значение 'CONTINUOUS'. Дополнительные сведения см. в разделе Отключение обнаружения пересечения нулей.

    Супершаговая семантика

    Включить ли семантику супершагов для диаграммы, указанной как числовой или логический 1 (true) или 0 (false). Дополнительные сведения см. в разделе Супершаговая семантика.

    Максимальное число переходов, которое диаграмма может выполнить за один супершаг, указанный как целочисленный скаляр. Это свойство применяется только в том случае, если EnableNonTerminalStates свойство для диаграммы: true.

    Поведение, если супершаг для диаграммы превышает максимальное число переходов, указанное в NonTerminalMaxCounts свойство до достижения стабильного состояния, указанное как одно из следующих значений:

    • 'Proceed' - Диаграмма переходит в спящий режим с последней конфигурацией активного состояния.

    • 'Throw Error' - Диаграмма генерирует ошибку.

    Это свойство применяется только в том случае, если EnableNonTerminalStates свойство для диаграммы: true.

    Экспортированные функции

    Следует ли экспортировать функции на уровне диаграммы в другие блоки модели Simulink, указанные как числовые или логические 1 (true) или 0 (false). Дополнительные сведения см. в разделе Экспорт функций потока состояний для повторного использования.

    Являются ли экспортированные функции из диаграммы глобально видимыми в модели Simulink, указанной как числовой или логический 1 (true) или 0 (false). Если это свойство включено, блоки в модели могут вызывать функции, экспортированные из диаграммы, без использования квалифицированной нотации. Это свойство применяется только в том случае, если ExportChartFunctions свойство для диаграммы: true.

    Целочисленные данные и данные с фиксированной точкой

    Насыщает ли данные на диаграмме переполнение целых чисел, указанное как числовое или логическое 1 (true) или 0 (false). Если это свойство отключено, данные в диаграмме переносятся при переполнении целых чисел. Дополнительные сведения см. в разделе Обработка переполнения целых чисел для данных диаграммы.

    Унаследованные сигналы Simulink для обработки как Designer™ с фиксированной точкой fi объекты, указанные как одно из следующих значений:

    • 'Fixed-point' - Диаграмма рассматривает все вводы с фиксированной точкой как fi объекты.

    • 'Fixed-point & Integer' - Диаграмма рассматривает все фиксированные и целочисленные входы как fi объекты.

    Это свойство применяется только к диаграммам, в которых в качестве языка действий используется MATLAB ®.

    Дефолт fimath свойства диаграммы, указанные как одно из следующих значений:

    • 'Same as MATLAB Default' - Использовать то же самое fimath свойства в качестве текущего значения по умолчанию fimath объект.

    • 'Other:UserSpecified' - Использовать InputFimath свойство для указания значения по умолчанию fimath объект.

    Это свойство применяется только в том случае, если ActionLanguage свойство диаграммы: 'MATLAB'.

    Дефолт fimath объект, указанный как символьный вектор. Когда EmlDefaultFimath свойство для диаграммы: 'Other:UserSpecified', это свойство можно использовать для:

    • Введите выражение, которое создает fimath объект.

    • Введите имя переменной для fimath в рабочей области MATLAB или модели.

    Это свойство применяется только к диаграммам, использующим MATLAB в качестве языка действий.

    Создание кода

    Включает ли созданный код условный оператор препроцессора для условий исполнения в диаграмме, указанный как числовой или логический 1 (true) или 0 (false). Это свойство применяется только при создании кода с помощью Embedded Coder ®. Дополнительные сведения см. в разделе Создание кода с использованием исполнительных переходов.

    Язык действий C

    Следует ли использовать строгий ввод данных, когда диаграмма взаимодействует с входными и выходными сигналами Simulink, заданными как числовые или логические 1 (true) или 0 (false). Это свойство применяется только к диаграммам, использующим C в качестве языка действий. Дополнительные сведения см. в разделе Использование строгой типизации данных с Simulink I/O.

    Использовать ли битовые операции в действиях состояния и перехода в диаграмме, указанных как числовой или логический 1 (true) или 0 (false). Это свойство применяется только к диаграммам, использующим C в качестве языка действий. Дополнительные сведения см. в разделе Включение C-разрядных операций.

    Использовать ли явное упорядочение параллельных состояний и переходов, указанное как числовое или логическое 1 (true) или 0 (false). Это свойство применяется только к диаграммам, использующим C в качестве языка действий. Дополнительные сведения см. в разделе Заданный пользователем порядок выполнения состояния/перехода.

    Отладка

    Установить ли On Chart Entry точка останова для диаграммы, заданная как числовая или логическая 1 (true) или 0 (false).

    Пример: chart.Debug.Breakpoints.OnEntry = true;

    Графический образ

    Это свойство доступно только для чтения.

    Редактор для диаграммы, указанный как Stateflow.Editor объект. Этот объект можно использовать для управления положением, размером и уровнем увеличения окна Stateflow ® Editor.

    Отображается ли в окне Stateflow Editor диаграмма, указанная как числовая или логическая 1 (true) или 0 (false).

    Цвет фона для диаграммы, заданный как трехэлементный числовой вектор формы [red green blue] определяет значения красного, зеленого и синего цветов. Каждый элемент должен находиться в диапазоне от 0 до 1.

    Цвет полей, функций и состояний на диаграмме, указанный как трехэлементный числовой вектор формы [red green blue] определяет значения красного, зеленого и синего цветов. Каждый элемент должен находиться в диапазоне от 0 до 1.

    Цвет для переходов в диаграмме, заданный как трехэлементный числовой вектор формы [red green blue] определяет значения красного, зеленого и синего цветов. Каждый элемент должен находиться в диапазоне от 0 до 1.

    Цвет для соединений в диаграмме, заданный как трехэлементный числовой вектор формы [red green blue] определяет значения красного, зеленого и синего цветов. Каждый элемент должен находиться в диапазоне от 0 до 1.

    Цвет для меток поля, функции и состояния в диаграмме, указанный как трехэлементный числовой вектор формы [red green blue] определяет значения красного, зеленого и синего цветов. Каждый элемент должен находиться в диапазоне от 0 до 1.

    Угол шрифта для поля, функции и меток состояния на диаграмме, указанный как 'NORMAL' или 'ITALIC'.

    Пример: chart.StateFont.Angle = 'ITALIC';

    Вес шрифта для полей, функций и меток состояния на диаграмме, указанный как 'NORMAL' или 'BOLD'.

    Пример: chart.StateFont.Weight = 'BOLD;

    Начальный размер шрифта для меток аннотации, поля, функции и состояния в диаграмме, указанный как скаляр.

    Пример: chart.StateFont.Size = 8;

    Имя шрифта для метки аннотации, поля, функции и состояния в диаграмме, указанное как символьный вектор.

    Пример: chart.StateFont.Name = 'Arial';

    Цвет меток перехода в диаграмме, заданный как трехэлементный числовой вектор формы [red green blue] определяет значения красного, зеленого и синего цветов. Каждый элемент должен находиться в диапазоне от 0 до 1.

    Угол шрифта для меток перехода на диаграмме, указанный как 'NORMAL' или 'ITALIC'.

    Пример: chart.TransitionFont.Angle = 'ITALIC';

    Вес шрифта для меток перехода на диаграмме, указанный как 'NORMAL' или 'BOLD'.

    Пример: chart.TransitionFont.Weight = 'BOLD';

    Начальный размер шрифта для меток перехода в диаграмме, указанный как скаляр.

    Пример: chart.TransitionFont.Size = 8;

    Имя шрифта для меток перехода в диаграмме, указанное как символьный вектор.

    Пример: chart.TransitionFont.Name = 'Arial';

    Иерархия

    Это свойство доступно только для чтения.

    Машина, содержащая диаграмму, заданную как Stateflow.Machine объект.

    Это свойство доступно только для чтения.

    Расположение диаграммы в иерархии модели, указанное как символьный вектор.

    Изменилась ли диаграмма после ее открытия или сохранения, указывается как числовой или логический 1 (true) или 0 (false).

    Блокируется ли диаграмма, указывается как числовой или логический 1 (true) или 0 (false). Включите это свойство, чтобы предотвратить изменения в диаграмме.

    Это свойство доступно только для чтения.

    Блокируется ли диаграмма, указывается как числовой или логический 1 (true) или 0 (false). Это свойство эквивалентно свойству Locked, но используется внутри для предотвращения изменений в диаграмме во время моделирования.

    Идентификация

    Описание диаграммы, указанное как символьный вектор.

    Ссылка на документ для диаграммы, указанная как символьный вектор.

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

    Это свойство доступно только для чтения.

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

    Функции объекта

    classhandleПредоставить дескриптор класса для объекта
    defaultTransitionsВозврат переходов по умолчанию в объекте на верхнем уровне оболочки
    dialogДиалоговое окно «Открыть свойства»
    findУказанные объекты в иерархии
    fitToViewУвеличение графического объекта
    getВозврат структуры MATLAB, содержащей параметры свойств объекта или массива объектов
    parseАнализ одной или всех диаграмм в модели
    setЗадать свойства с заданными значениями
    viewЭкранный объект в среде редактирования

    Примеры

    свернуть все

    Вызовите функцию sfnew для открытия новой модели Simulink, содержащей пустую диаграмму Stateflow.

    sfnew

    Доступ к Simulink.Root путем вызова sfroot функция.

    rt = sfroot;

    Доступ к Stateflow.Chart путем вызова find для функции Simulink.Root объект.

    chart = find(rt,'-isa','Stateflow.Chart');
    Представлен до R2006a