Эта тема показывает, как преобразовать 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 |
---|---|
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 представлять универсальный массив ячеек |
MATLAB System Block | Реализация функций MATLAB Используя блоки