Создайте диаграммы Stateflow для выполнения, в то время как MATLAB возражает

Чтобы объединить преимущества программирования конечного автомата с полной функциональностью MATLAB®, создайте автономный график Stateflow® за пределами модели Simulink®. Сохраните автономный график с дополнительным .sfx и выполните его как объект MATLAB. Совершенствуйте свой проект при помощи анимации графика и графических средств отладки.

С автономными графиками можно создать приложения MATLAB, такие как:

Эти приложения могут быть совместно использованы и выполнены, не требуя лицензии Stateflow. Для получения дополнительной информации смотрите Долю Автономные Графики.

Создайте автономный график

Чтобы создать автономную диаграмму Stateflow, откройте редактора Stateflow при помощи функции edit. Например, в Окне Команды MATLAB, введите:

edit chart.sfx
Если файл, chart.sfx не существует, редактор Stateflow, открывает пустой график с именем chart. В противном случае редактор открывает график, заданный файлом sfx.

После того, как вы сохраняете автономный график, информацию об отображениях функции help о выполнении его в MATLAB:

help chart.sfx

Создайте объект диаграммы Stateflow

Чтобы выполнить автономный график в MATLAB, сначала создайте объект диаграммы Stateflow. Используйте имя файла sfx для автономного графика как функция. Задайте начальные значения данных как пары "имя-значение". Например, эта команда создает объект диаграммы chartObject, инициализирует data1 и data2, и выполняет его переход по умолчанию:

chartObject = chart('data1',value1,'data2',value2)

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

disp(chartObject)

Выполните автономный график

После того, как вы зададите объект диаграммы Stateflow, можно выполнить автономный график путем вызывания функции step (со значениями данных, при необходимости):

step(chartObject,'data1',value1,'data2',value2)

Также можно вызвать одну из входных функций события:

event_name(chartObject,'data1',value1,'data2',value2)

Если ваш график имеет графический или функции MATLAB, можно вызвать их непосредственно в Окне Команды MATLAB. Вызывание функции графика не выполняет автономный график.

function_name(chartObject,u1,u2)

Можно выполнить автономный график, не открывая редактора Stateflow. Если график открыт, то редактор Stateflow подсвечивает активные состояния и переходы посредством анимации графика.

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

Можно выполнить автономный график из скрипта MATLAB, модели Simulink или пользовательского интерфейса App Designer. Для получения дополнительной информации см.:

Совместно используйте автономные графики

Можно совместно использовать автономные графики с сотрудниками, у которых нет лицензии Stateflow.

Если у ваших сотрудников есть Stateflow, они могут открыть, отредактировать и выполнить ваши автономные графики. Во время выполнения, анимации графика и отладки поддерживается. Сообщения ошибки времени выполнения содержат гиперссылки на состояние или переход в графике, где ошибка происходит.

Если у ваших сотрудников нет Stateflow, они могут выполнить ваши автономные графики, когда MATLAB возражает, не открывая редактора Stateflow. Стройте диаграмму анимации, и отладка не поддержана. Сообщения ошибки времени выполнения не содержат гиперссылки на график.

Свойства и функции объектов диаграммы Stateflow

Объект диаграммы Stateflow инкапсулирует данные и операции в одной структуре путем обеспечения:

  • Частные свойства, которые содержат переменные внутреннего состояния для автономного графика.

  • Функция step, которая вызывает различные операции, реализующие семантику графика.

Объект диаграммы может иметь другие свойства и функции, которые соответствуют различным элементам, существующим в графике.

Автономные элементы диаграммыЭлементы объекта диаграммы
Локальные и постоянные данныеОбщественные собственности
Введите событияФункции, которые выполняют график
Графический и функции MATLABФункции, которые можно вызвать из Окна Команды MATLAB

Параметры конфигурации объекта диаграммы

Когда вы создаете объект диаграммы, можно задать поведение графика включением этих параметров конфигурации как пары "имя-значение".

Параметр конфигурацииОписаниеПример
-animationDelayЗадайте задержку что использование анимации графика, чтобы подсветить каждый сегмент перехода. Значение по умолчанию является секундами 0.01. Чтобы произвести анимацию графика без задержек, обнулить.

Создайте объект диаграммы, который имеет очень медленную анимацию путем определения вторых задержек:

chartObject = chart('-animationDelay',1)

-enableAnimationВключите анимацию графика. Значением по умолчанию является true.

Создайте объект диаграммы, которому отключили анимацию:

chartObject = chart('-enableAnimation',false)

-executeInitStepВключите начальное выполнение переходов по умолчанию. Значением по умолчанию является true.

Создайте объект диаграммы, но не выполняйте переход по умолчанию:

chartObject = chart('-executeInitStep',false)

-warningOnUninitializedDataВключите предупреждение о пустых данных о графике после инициализации объекта диаграммы. Значением по умолчанию является true.

Устраните предупреждение при создании объекта диаграммы:

chartObject = chart('-warningOnUninitializedData',false)

Инициализация данных о графике

В редакторе Stateflow можно использовать окно Symbols, чтобы задать начальные значения для данных о графике. Когда вы создаете объект диаграммы, данные о графике инициализируются в алфавитном порядке согласно его осциллографу. Постоянные данные инициализируются сначала. Локальные данные инициализируются в последний раз.

Если вы используете выражение, чтобы задать начальное значение, то график пытается разрешить выражение:

  • Используя значения других данных в графике.

  • Вызывание функций на пути поиска файлов.

Например, предположите, что вы задаете начальное значение для локальных данных x при помощи выражения y. Затем:

  • Если график имеет постоянный названный y, y инициализируется перед x. Локальные данные x присвоены то же начальное значение как y.

  • Если график имеет локальные данные под названием y, x инициализируется перед y. Локальные данные x присвоены пустому массиву. Если параметр конфигурации, -warningOnUninitializedData установлен в true, предупреждение, происходит.

  • Если график не имеет никаких данных под названием y, x инициализируется путем вызова функционального y. Если файл, y.m не находится на пути поиска файлов, эта ошибка, происходит:

    Undefined function or variable 'y'.

Stateflow не ищет рабочее пространство MATLAB, чтобы разрешить начальные значения, таким образом, эта ошибка происходит, даже если существует переменная под названием y в рабочем пространстве MATLAB.

Возможности и ограничения

Поддерживавшие функции:

Не поддерживаемый (содержимое, характерное для Simulink):

  • Шаг расчета и непрерывно-разовая семантика.

  • C язык действия.

  • Функции Simulink и Подсистемы Simulink как состояния.

  • Введите, выведите, и данные о параметре.

  • Данные оперативной памяти хранилища данных.

  • Выведите и локальные события.

  • Введите, выведите, и локальные сообщения.

Другие ограничения:

  • Никакая Мучнистая семантика или семантика Мура.

  • Никакие таблицы переходов состояний.

  • Никакие функции Таблицы истинности.

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

  • Никакие действия перехода (действия, которые выполняются после исходного состояния для перехода, выходится, но перед целевым состоянием, не начаты).

  • Никакие операторы обнаружения изменения, такие как hasChanged, hasChangedFrom или hasChangedTo.

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

| |

Похожие темы

Для просмотра документации необходимо авторизоваться на сайте