Реализовать логику управления с конечным конечным автоматом
Stateflow
Конечный автомат является представлением управляемой событием (реактивной) системы. В управляемой событиями системе система реагирует на событие, осуществляя переход из одного состояния (режима) в другое. Этот переход происходит, если условие, определяющее изменение, является истинным.
Диаграмма Stateflow ® является графическим представлением конечного конечного автомата. Состояния и переходы являются основными элементами системы. Можно также представить блок-схемы без состояния.
Например, диаграммы Stateflow можно использовать для управления физической установкой в ответ на такие события, как датчики температуры и давления, часы и события, управляемые пользователем.
Можно также использовать конечный автомат для представления автоматической коробки передач автомобиля. Трансмиссия имеет следующие рабочие состояния: парковка, реверс, нейтраль, привод и низкий. Когда водитель перемещается из одного положения в другое, система выполняет переход из одного состояния в другое, например, из парковки в реверс.
Диаграмма Stateflow может использовать MATLAB или C в качестве языка действий для реализации логики управления.
Port_1 - Входной портПри создании входных данных на панели «Символы» модуль Stateflow создает входные порты. Создаваемые входные данные имеют соответствующий входной порт, который появляется после создания данных.
Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | Boolean | fixed point | enumerated | bus
Port_1 - Выходной портПри создании выходных данных на панели «Символы» модуль Stateflow создает выходные порты. Создаваемые выходные данные имеют соответствующий выходной порт, который появляется после создания данных.
Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | Boolean | fixed point | enumerated | bus
Параметры на вкладке «Создание кода» требуют использования Simulink ® Coder™ или Embedded Coder ®.
Show port labels - Выбор способа отображения меток портовFromPortIcon (по умолчанию) | FromPortBlockName | SignalNameВыберите способ отображения меток портов на значке блока диаграммы.
noneНе отображать метки портов.
FromPortIconЕсли соответствующий значок порта отображает имя сигнала, отобразите имя сигнала в блоке диаграммы. В противном случае отобразите имя блока портов.
FromPortBlockNameОтображение имени соответствующего блока портов в блоке диаграммы.
SignalNameЕсли имя сигнала существует, отобразите имя сигнала, подключенного к порту в блоке диаграммы. В противном случае отобразите имя соответствующего блока портов.
Параметр: ShowPortLabels |
| Текст: символьный вектор |
Значение: 'FromPortIcon' | 'FromPortBlockName' | 'SignalName' |
По умолчанию: 'FromPortIcon' |
Read/Write permissions - Выбор доступа к содержимому диаграммыReadWrite (по умолчанию) | ReadOnly | NoReadOrWriteУправление доступом пользователей к содержимому диаграммы.
ReadWriteВключить открытие и изменение содержимого диаграммы.
ReadOnlyВключить открытие, но не изменение диаграммы. Если диаграмма находится в библиотеке блоков, можно создавать и открывать ссылки на диаграмму, а также создавать и изменять локальные копии диаграммы, но нельзя изменять разрешения или содержимое исходного экземпляра библиотеки.
NoReadOrWriteОтключить открытие или изменение диаграммы. Если диаграмма проживает в библиотеке, Вы можете создать связи с диаграммой в модели, но Вы не можете открыть, изменить, разрешения изменения, или создать местные копии диаграммы.
Параметр: Permissions |
| Текст: символьный вектор |
Значение: 'ReadWrite' | 'ReadOnly' | 'NoReadOrWrite' |
По умолчанию: 'ReadWrite' |
Treat as atomic unit - Управление выполнением подсистемы как одного блокаПри определении порядка выполнения блочных методов заставляет Simulink рассматривать диаграмму как единицу.
При определении порядка выполнения блочного метода следует рассматривать все блоки диаграммы как находящиеся на том же уровне иерархии модели, что и диаграмма. Такая иерархическая обработка может привести к перемежению выполнения методов блоков в диаграмме с выполнением методов блоков вне диаграммы.
При определении порядка выполнения блочных методов следует рассматривать диаграмму как единицу измерения. Например, когда Simulink необходимо вычислить вывод диаграммы, Simulink вызывает методы вывода всех блоков диаграммы, прежде чем вызывать методы вывода других блоков на том же уровне, что и блок диаграммы.
При выборе этого параметра включаются параметры свертки Минимизировать алгебраические вхождения цикла, Время выборки и Функция. Для упаковки функций требуется программное обеспечение Simulink Coder.
Параметр: TreatAsAtomicUnit |
| Текст: символьный вектор |
Значение: 'off' | 'on' |
По умолчанию: 'off' |
Minimize algebraic loop occurrences - Контроль устранения алгебраических петельНе пытайтесь устранить какие-либо искусственные алгебраические петли, которые включают в себя атомную подшагу.
Постарайтесь исключить любые искусственные алгебраические петли, которые включают атомарный подграф.
Чтобы включить этот параметр, выберите параметр Обработать как атомную единицу.
Параметр: MinAlgLoopOccurrences |
| Текст: символьный вектор |
Значение: 'off' | 'on' |
По умолчанию: 'off' |
Sample time - Укажите интервал времени-1 (по умолчанию) | [Ts 0]Укажите, должны ли все блоки на этой диаграмме выполняться с одинаковой скоростью или могут выполняться с разной скоростью.
Если блоки на диаграмме могут выполняться с разными скоростями, укажите наследуемое время выборки диаграммы (-1).
Если все блоки должны работать с одинаковой скоростью, укажите в качестве значения параметра Sample time время выборки, соответствующее этой скорости.
Если какой-либо из блоков на диаграмме указывает другое время выборки (кроме -1 или inf), Simulink отображает сообщение об ошибке при обновлении или моделировании модели. Например, предположим, что все блоки на диаграмме должны выполняться 5 раз в секунду. Чтобы обеспечить это время, укажите время образца диаграммы как 0.2. В этом примере, если какой-либо из блоков на диаграмме указывает время выборки, отличное от 0.2, -1, или inf, Simulink отображает ошибку при обновлении или моделировании модели.
-1Укажите наследуемое время выборки. Если блоки на диаграмме могут выполняться с разными скоростями, используйте этот пример времени.
[Ts 0]Укажите время периодической выборки.
Чтобы включить этот параметр, выберите параметр Обработать как атомную единицу.
Параметр: SystemSampleTime |
| Текст: символьный вектор |
Значение: '-1' | '[Ts 0]'
|
По умолчанию: '-1' |
Treat as grouped when propagating variant conditions - Подсистема обработки управления как блок on (по умолчанию) | offПри распространении исполнительных условий из блоков Источник исполнения (Variant Source) или в блоки Приемник исполнения (Variant Sink) программа Simulink рассматривает диаграмму как единицу измерения.
Simulink рассматривает диаграмму как единицу измерения при распространении условий исполнения из блоков источника исполнения или в блоки получателя исполнения. Например, когда Simulink вычисляет условие исполнения диаграммы, оно распространяется на все блоки диаграммы.
Simulink рассматривает все блоки диаграммы как находящиеся на том же уровне иерархии модели, что и сама диаграмма, при определении их условия исполнения.
Параметр: TreatAsGroupedWhenPropagatingVariantConditions |
| Текст: символьный вектор |
Значение: 'on' | 'off' |
По умолчанию: 'on' |
Function packaging - Выбор формата кодаAuto (по умолчанию) | Inline | Nonreusable function | Reusable functionВыберите сгенерированный формат кода для атомарного (невоиртуального) подшаблона.
AutoSimulink Coder выбирает оптимальный формат для системы на основе типа и количества экземпляров диаграммы, существующих в модели.
InlineSimulink Coder помещает диаграмму без каких-либо условий.
Nonreusable functionSimulink Coder явно генерирует отдельную функцию в отдельном файле. Диаграммы с этим параметром генерируют функции, которые могут иметь аргументы в зависимости от параметра Function interface (Simulink). Созданную функцию и файл можно назвать с помощью параметров Имя функции (Simulink) и Имя файла (без расширения) (Simulink). Эти функции не являются возвратными.
Reusable functionSimulink Coder генерирует функцию с аргументами, которые позволяют повторно использовать код диаграммы, когда модель включает несколько экземпляров диаграммы.
Эта опция создает функцию с аргументами, позволяющими повторно использовать код диаграммы в сгенерированном коде иерархии ссылок на модель, которая включает несколько экземпляров диаграммы в ссылочных моделях. В этом случае диаграмма должна находиться в библиотеке.
Если требуется представить несколько экземпляров диаграммы в виде одной многократно используемой функции, можно обозначить каждый из них как Auto или как Reusable function. Лучше всего использовать одну, поскольку при использовании обеих функций создаются две многократно используемые функции, по одной для каждого обозначения. Результаты этих вариантов различаются только тогда, когда повторное использование невозможно. Выбор Auto не позволяет управлять функцией или именем файла для кода диаграммы.
Reusable function и Auto оба параметра определяют наличие нескольких экземпляров диаграммы и возможность повторного использования кода. Опции ведут себя по-разному, когда невозможно повторно использовать код. В этом случае Auto дает встроенный код или, если обстоятельства запрещают встраивание, отдельные функции для каждого экземпляра диаграммы.
При выборе Reusable function пока созданный код находится в системе управления версиями, задайте для параметра Имя файла значение Use subsystem name, Use function name, или User specified. В противном случае имена файлов кода изменяются при каждом изменении модели, что препятствует управлению версиями файлов.
Для этого параметра требуется Simulink Coder.
Чтобы включить этот параметр, выберите Обработать как атомную единицу.
Установка для этого параметра значения Nonreusable function или Reusable function включает следующие параметры:
Параметры имени функции
Параметры имени файла
Раздел памяти для инициализации/завершения функций (требуется встроенный кодер и системный целевой файл на основе ERT)
Раздел памяти для выполнения функций (требуется встроенный кодер и целевой системный файл на основе ERT)
Установка для этого параметра значения Nonreusable function включает функцию с отдельными данными (требуется лицензия на Embedded Coder и целевой системный файл на основе ERT).
Параметр: RTWSystemCode |
| Текст: символьный вектор |
Значение: 'Auto' | 'Inline' | 'Nonreusable function' | 'Reusable function' |
По умолчанию: 'Auto' |
HDL Coder™ предоставляет дополнительные опции конфигурации, которые влияют на реализацию HDL и синтезированную логику.
Этот блок имеет единую архитектуру HDL по умолчанию.
Чтобы создать порт вывода в коде HDL, отображающем активное состояние, в окне «Свойства» диаграммы выберите «Создать вывод для мониторинга». Выходные данные являются перечисляемым типом данных. См. раздел Упрощение диаграмм статусов путем включения вывода активного состояния.
Чтобы вставить выходной регистр, который задерживает вывод диаграммы в цикле моделирования, используйте свойство блока OutputPipeline (HDL Coder).
| ConstMultiplierOptimization | Каноническая цифра со знаком (CSD) или факторизованная оптимизация CSD. Значение по умолчанию: |
| ConstrainedOutputPipeline | Количество регистров для размещения на выходах путем перемещения существующих задержек в рамках проекта. Распределенная конвейерная обработка не перераспределяет эти регистры. Значение по умолчанию: |
| DistributedPipelining | Распределение регистров трубопроводов или ресинхронизация регистров. Значение по умолчанию: |
| InputPipeline | Количество входных ступеней трубопровода для вставки в сформированный код. Распределенная конвейерная обработка и конвейерная обработка с ограниченным выходом могут перемещать эти регистры. Значение по умолчанию: |
| InstantiateFunctions | Создание VHDL ® |
| LoopOptimization | Распаковка, потоковая обработка или отсутствие оптимизации циклов. Значение по умолчанию: |
| MapPersistentVarsToRAM | Сопоставить постоянные массивы с оперативной памятью. Значение по умолчанию: |
| OutputPipeline | Количество выходных ступеней трубопровода для вставки в сформированный код. Распределенная конвейерная обработка и конвейерная обработка с ограниченным выходом могут перемещать эти регистры. Значение по умолчанию: |
| ResetType | Подавление генерации логики сброса. Значение по умолчанию: |
| SharingFactor | Количество функционально эквивалентных ресурсов для сопоставления с одним общим ресурсом. Значение по умолчанию - 0. См. также раздел Совместное использование ресурсов (кодер HDL). |
| VariablesToPipeline | Предупреждение
Вставьте регистр трубопровода на выходе указанной переменной или переменных MATLAB ®. Укажите список переменных как символьный вектор с пробелами, разделяющими переменные. |
Этот блок поддерживает генерацию кода для сложных сигналов.
Сведения об ограничениях использования диаграмм см. в разделе Введение в создание кода HDL (HDL Coder).
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.


