Chart

Реализуйте управляющую логику с конечным автоматом

  • Библиотека:
  • Stateflow

  • Chart block

Описание

Конечный автомат является представлением событийно-управляемой (реактивной) системы. В событийно-управляемой системе система отвечает на событие путем создания перехода от одного состояния (режим) другому. Этот переход происходит, если условие, задающее изменение, верно.

Stateflow® график является графическим представлением конечного автомата. Состояния и переходы формируют базовые элементы системы. Можно также представлять блок-схемы не сохраняющие состояние.

Например, можно использовать диаграммы Stateflow, чтобы управлять физическим объектом в ответ на события, такие как датчики температуры и давления, часы и управляемые пользователями события.

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

Диаграмма Stateflow может использовать MATLAB или C как язык действия, чтобы реализовать управляющую логику.

Порты

Входной параметр

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

Когда вы создаете входные данные в панели Символов, Stateflow создает входные порты. Входные данные, которые вы создаете, имеют соответствующий входной порт, который появляется, если вы создаете данные.

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | Boolean | fixed point | enumerated | bus

Вывод

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

Когда вы создаете выходные данные в панели Символов, Stateflow создает выходные порты. Выходные данные, которые вы создаете, имеют соответствующий выходной порт, который появляется, если вы создаете данные.

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | Boolean | fixed point | enumerated | bus

Параметры

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

Параметры на вкладке Code Generation требуют Simulink® Coder™ или Embedded Coder®.

Основной

Выберите, как отобразить метки порта на значке блока Chart.

none

Не отображайте метки порта.

FromPortIcon

Если соответствующий значок порта отображает имя сигнала, отобразите имя сигнала на блоке Chart. В противном случае отобразите имя блокировки порта.

FromPortBlockName

Отобразите имя соответствующей блокировки порта на блоке Chart.

SignalName

Если имя сигнала существует, отобразите имя сигнала, соединенного с портом на блоке Chart. В противном случае отобразите имя соответствующей блокировки порта.

Программируемое использование

Параметр: ShowPortLabels
Ввод: символьный вектор
Значение: 'FromPortIcon' | 'FromPortBlockName' | 'SignalName'
Значение по умолчанию: 'FromPortIcon'

Управляйте пользовательским доступом к содержимому графика.

ReadWrite

Позвольте открыться и модификация содержимого графика.

ReadOnly

Позвольте открыться, но не модификация графика. Если график находится в библиотеке блоков, вы можете создать и открыть ссылки на график и можете сделать и изменить локальные копии графика, но вы не можете изменить полномочия или изменить содержимое исходного экземпляра библиотеки.

NoReadOrWrite

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

Программируемое использование

Параметр: Permissions
Ввод: символьный вектор
Значение: 'ReadWrite' | 'ReadOnly' | 'NoReadOrWrite'
Значение по умолчанию: 'ReadWrite'

При определении порядка выполнения методов блока, Simulink причин, чтобы обработать график как модуль.

off

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

on

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

Зависимость

Если вы выбираете этот параметр, вы включаете Minimize algebraic loop occurrences, Sample time и параметры Function packaging. Function packaging требует программного обеспечения Simulink Coder.

Программируемое использование

Параметр: TreatAsAtomicUnit
Ввод: символьный вектор
Значение: 'off' | 'on'
Значение по умолчанию: 'off'

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

off

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

on

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

Зависимость

Чтобы включить этот параметр, выберите параметр Treat as atomic unit.

Программируемое использование

Параметр: MinAlgLoopOccurrences
Ввод: символьный вектор
Значение: 'off' | 'on'
Значение по умолчанию: 'off'

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

  • Если блоки в графике могут запуститься на различных уровнях, задайте шаг расчета графика, как наследовано (-1).

  • Если все блоки должны запуститься на том же уровне, задайте шаг расчета, соответствующий этому уровню как значение параметра Sample time.

  • Если какой-либо из блоков в графике задает различный шаг расчета (кроме -1 или inf), Simulink отображает сообщение об ошибке, когда вы обновляете или симулируете модель. Например, предположите, что все блоки в графике должны запустить 5 времена секунда. Чтобы убедиться на этот раз, задайте шаг расчета графика как 0.2. В этом примере, если какой-либо из блоков в графике задает шаг расчета кроме 0.2, -1, или inf, Simulink отображает ошибку, когда вы обновляете или симулируете модель.

-1

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

[Ts 0]

Задайте периодический шаг расчета.

Зависимость

Чтобы включить этот параметр, выберите параметр Treat as atomic unit.

Программируемое использование

Параметр: SystemSampleTime
Ввод: символьный вектор
Значение: '-1' | '[Ts 0]'
Значение по умолчанию: '-1'

При распространении различных условий от блоков Variant Source или с блоками Variant Sink, Simulink причин, чтобы обработать график как модуль.

on

Simulink обрабатывает график как модуль при распространении различных условий от блоков Variant Source или с блоками Variant Sink. Например, когда Simulink вычисляет различное условие графика, это распространяет то условие со всеми блоками в графике.

off

Simulink обрабатывает все блоки в графике, как являющемся на том же уровне в иерархии модели как сам график при определении их различного условия.

Программируемое использование

Параметр: TreatAsGroupedWhenPropagatingVariantConditions
Ввод: символьный вектор
Значение: 'on' | 'off'
Значение по умолчанию: 'on'

Генерация кода

Выберите формат сгенерированного кода для атомарной (невиртуальной) субдиаграммы.

Auto

Simulink Coder выбирает оптимальный формат для вашей системы на основе типа и количества экземпляров графика, которые существуют в модели.

Inline

Simulink Coder встраивает график безусловно.

Nonreusable function

Simulink Coder явным образом генерирует отдельную функцию в отдельном файле. Графики с этой установкой генерируют функции, которые могут иметь аргументы в зависимости от интерфейса Function (Simulink) установка параметра. Можно назвать сгенерированную функцию и файл с помощью Имени функции параметров (Simulink) и Имя файла (никакое расширение) (Simulink). Эти функции не повторно используемы.

Reusable function

Simulink Coder генерирует функцию с аргументами, которая позволяет повторное использование кода графика, когда модель включает несколько экземпляров графика.

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

Советы

  • Когда это необходимо, несколько экземпляров графика представляли как одна допускающая повторное использование функция, можно определять каждого из них как Auto или как Reusable function. Лучше использовать тот, потому что использование обоих создает две допускающих повторное использование функции, один для каждого обозначения. Результаты этого выбора отличаются только, когда повторное использование не возможно. Выбор Auto не допускает управление функции или имени файла для кода графика.

  • Reusable function и Auto опции и определяют, существуют ли несколько экземпляров графика и код, может быть снова использован. Опции ведут себя по-другому, когда невозможно снова использовать код. В этом случае, Auto выражения встроили код, или если обстоятельства запрещают встраивание, отдельные функции для каждого экземпляра графика.

  • Если вы выбираете Reusable function в то время как ваш сгенерированный код находится под системой контроля версий, установите File name options на Use subsystem name, Use function name, или User specified. В противном случае имена ваших файлов кода изменяются каждый раз, когда вы изменяете свою модель, которая предотвращает систему контроля версий над вашими файлами.

Зависимость

  • Этот параметр требует Simulink Coder.

  • Чтобы включить этот параметр, выберите Treat as atomic unit.

  • Установка этого параметра на Nonreusable function или Reusable function включает следующие параметры:

    • Function name options

    • File name options

    • Раздел Memory для инициализирует/отключает функции (требует Embedded Coder и основанного на ERT системного конечного файла),

    • Раздел Memory для функций выполнения (требует Embedded Coder и основанного на ERT системного конечного файла),

  • Установка этого параметра на Nonreusable function включает Function with separate data (требует лицензии на Embedded Coder и основанный на ERT системный конечный файл).

Программируемое использование

Параметр: RTWSystemCode
Ввод: символьный вектор
Значение: 'Auto' | 'Inline' | 'Nonreusable function' | 'Reusable function'
Значение по умолчанию: 'Auto'

Примеры модели

Расширенные возможности

Генерация кода C/C++
Генерация кода C и C++ с помощью Simulink® Coder™.

Генерация кода PLC
Сгенерируйте код Структурированного текста с помощью Simulink® PLC Coder™.

Преобразование фиксированной точки
Спроектируйте и симулируйте системы фиксированной точки с помощью Fixed-Point Designer™.

Представлено до R2006a