Модель, перемещающаяся целевую визуализацию путем преобразования кода MATLAB в поведение Simulink

Эта тема показывает, как преобразовать MATLAB® код к Simulink® модель. Во-первых, пример показывает, как преобразовать алгоритм MATLAB для перемещения целевой визуализации к модели Simulink с той же функциональностью. Затем таблица показывает общие преобразования от кода MATLAB до поведения Simulink.

Преобразуйте движущуюся цель код MATLAB в модель Simulink

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

Перемещение цели код MATLAB

Открыть скрипт

Этот пример использует MATLAB, чтобы создать, переместить, визуализировать, и удалить цели. Два различных пакета MATLAB генерируют две отдельных целевых базы данных. Целевым создателем является Система object®, поскольку она требует использования состояний. Целевая база данных является глобальной базой данных. Целевым средством проверки, которое определяет, ли цель вне области значений и удаляет цель, если это, является Системный объект, потому что это требует использования состояний. Целевое положение updater является простым алгоритмом и является поэтому функцией MATLAB. Цель visualizer является Системным объектом и требует использования состояний.

В данном примере initDB функция используется, чтобы инициализировать глобальную базу данных и создать Struct Tagret. Затем цели создаются с помощью Target Creator function и Target Creation info Package. Цели из области значений затем удалены. Целевой диапазон 5 для этого примера, таким образом, любая цель, больше, чем 5, удалена, и остающиеся целевые положения обновляются. Этот процесс циклично выполняется более чем 100 раз и визуализируется, когда он запускается.

Перемещение цели модель Simulink

Откройте эту модель

open_system('slexTargetIllustrationModel.slx')

Скрипт MATLAB может быть преобразован в модель Simulink, которая имеет ту же функциональность. Target Database преобразован в DSM использование Model PostLoadFcn и Simulink.Bus.createObject. Преобразуйте Target Creation info Package к Функции Simulink. Целевой создатель, целевое средство удаления и целевое средство просмотра являются каждым coverted в блок MATLAB System, поскольку они используют Системные объекты в MATLAB. Целевое средство просмотра также использует блок Display, чтобы визуализировать цели, когда симуляция запускается. Цель updater преобразована в блок MATLAB function, поскольку это - простая функция MATLAB, которая не использует Системные объекты или состояния. Количество временных шагов в цикле соответствует времени остановки на панели инструментов.

Целевой создатель использует ограниченные по объему функции в коде MATLAB, чтобы вызвать целевые пакеты создания. Используйте getGlobalNamesImpl и getSimulinkFunctionNamesImpl API в Simulink, чтобы объявить имена функций для Target Creator Системный объект. Эти функции объявляют целевые имена положения и скорости пакета создания в целевом пакете создания, таким образом, пакет может быть вызван Системными объектами в Simulink.

Чтобы запустить модель, нажмите Run. После компиляций модели это производит визуализацию точно так же, как в коде MATLAB.

Общие преобразования кода MATLAB к поведению Simulink

Следующая таблица показывает некоторые случаи отображения кода MATLAB с блоками Simulink и функциями. Примечание: этот список не является всесторонним.

Построение MATLABПостроение Simulink
structШина
Массив structМассив шин
Глобальная переменнаяDSM
ФункцияБлок MATLAB function
Системный объектБлок MATLAB System
Системный объект вызывает к внешним функциямБлок System вызывает к функциям Simulink
Алгоритм планированияДиаграмма Stateflow
Цикл верхнего уровня (например: "for t=1:0.1:10")Время начала Simulink, время остановки и временной шаг
Параметр, настраивающий алгоритмы MATLABНастраиваемые параметры Simulink
Итерация по массивуПодсистема Foreach
if-else циклЕсли блок и Если подсистема Действия
Оператор case оператора switchПереключите блок Case и блок Subsystem Действия Случая Переключателя
while циклВ то время как блок Iterator
Глобальный доступ к ресурсу (например: база данных, дескриптор файла, коммуникационный порт, аппаратное устройство)DSM или функции Simulink
Персистентные переменныеДискретные состояния в Системном объекте или "персистентное" ключевое слово в блоке MATLAB function
Динамический массивпеременный размер (ограниченный теперь, неограниченный в будущем)
Фиксированная точка fi объектФиксированная точка Simulink
CellArrayИспользуйте struct представлять универсальный массив ячеек

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

|

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