Эта тема показывает, как преобразовать 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 Используя блоки