Блок MATLAB function позволяет вам составить функцию языка MATLAB® в модели Simulink®, которая генерирует встраиваемый код. Когда вы моделируете модель или генерируете код для целевого окружения, функция в блоке MATLAB function генерирует эффективный код C/C++. Этот код встречает строгой памяти и требованиям типа данных сред целевого процессора. Таким образом блоки MATLAB function приносят степень MATLAB для встроенной среды в Simulink.
Для получения дополнительной информации о блоке MATLAB function и генерации кода, обратитесь к следующему:
Страница с описанием блока MATLAB function в документации Simulink
Реализация функций MATLAB Используя блоки (Simulink)
Рабочий процесс генерации кода (MATLAB Coder)
Когда вы используете блок MATLAB function в модели Simulink, которая задает переопределение типа данных, блок определяет эквиваленты переопределения типа данных типов параметра и входного сигнала. Блок затем использует эти эквивалентные стоимости, чтобы запустить симуляцию. Следующая таблица показывает, как блок MATLAB function решает, что тип данных заменяет эквивалентное использование
Тип данных входного сигнала или параметра
Настройки переопределения типа данных в модели Simulink
Для получения дополнительной информации о переопределении типа данных, смотрите fxptdlg
.
Входной сигнал или тип параметра | Установка переопределения типа данных | Переопределение типа данных применяется к установке | Замените тип данных |
---|---|---|---|
Наследованный single | Double | All numeric types или Floating-point | Встроенный double |
Single | All numeric types или Floating-point | Встроенный single | |
Scaled double | All numeric types или Floating-point | fi scaled double | |
Заданный single | Double | All numeric types или Floating-point | Встроенный double |
Single | All numeric types или Floating-point | Встроенный single | |
Scaled double | All numeric types или Floating-point | fi scaled double | |
Наследованный double | Double | All numeric types или Floating-point | Встроенный double |
Single | All numeric types или Floating-point | Встроенный single | |
Scaled double | All numeric types или Floating-point | fi scaled double | |
Заданный double | Double | All numeric types или Floating-point | Встроенный double |
Single | All numeric types или Floating-point | Встроенный single | |
Scaled double | All numeric types или Floating-point | fi scaled double | |
Наследованный Fixed | Double | All numeric types или Fixed-point | fi double |
Single | All numeric types или Fixed-point | fi single | |
Scaled double | All numeric types или Fixed-point | fi scaled double | |
Заданный Fixed | Double | All numeric types или Fixed-point | fi double |
Single | All numeric types или Fixed-point | fi single | |
Scaled double | All numeric types или Fixed-point | fi scaled double |
Для получения дополнительной информации об использовании блока MATLAB function с переопределением типа данных смотрите Используя Переопределение Типа данных с блоком MATLAB function (Simulink).
Генерация кода из MATLAB поддерживает значительное количество функций Fixed-Point Designer™. Обратитесь к Функциям, Поддерживаемым для Ускорения Кода или генерации кода C для получения информации, о которой поддерживаются функции Fixed-Point Designer.
Для получения дополнительной информации о работе с блоками MATLAB function фиксированной точки см.:
Чтобы моделировать модели с помощью типов данных с фиксированной точкой в Simulink, у вас должна быть лицензия Fixed-Point Designer.
Можно задать параметры для блока MATLAB function в модели фиксированной точки использование Model Explorer. Попробуйте следующее осуществление:
Поместите блок MATLAB function в новую модель. Можно найти блок в библиотеке Simulink User-Defined Functions.
Откройте Model Explorer путем выбора View> Model Explorer из модели.
Расширьте узел untitled* в панели Model Hierarchy Model Explorer. Затем выберите узел MATLAB Function. Model Explorer теперь появляется как показано в следующей фигуре.
Следующие параметры в панели Dialog применяются к блокам MATLAB function в моделях, которые используют типы данных с фиксированной точкой и целочисленные типы данных:
Выберите, обработать ли наследованную фиксированную точку и целочисленные сигналы, когда fi
возражает.
Когда вы выбираете Fixed-point
, блок MATLAB function обрабатывает все входные параметры фиксированной точки как Fixed-Point Designer объекты fi
.
Когда вы выбираете Fixed-point & Integer
, блок MATLAB function обрабатывает всю фиксированную точку и целочисленные входные параметры как Fixed-Point Designer объекты fi
.
Задайте свойства fimath
для блока, чтобы сопоставить со следующими объектами:
Вся фиксированная точка и целочисленные входные сигналы к блоку MATLAB function, который вы принимаете решение обработать как fi
, возражают.
Весь fi
и объекты fimath
создаются в блоке MATLAB function.
Можно выбрать одну из следующих опций для MATLAB Function block fimath:
Same as MATLAB — Когда вы выбираете эту опцию, блок использует те же свойства fimath
в качестве текущего значения по умолчанию fimath. Окно редактирования появляется, потускнел и отображает текущее значение по умолчанию fimath в форме только для чтения.
Specify Other — Когда вы выбираете эту опцию, можно задать собственный объект fimath
в окне редактирования.
Для получения дополнительной информации об этих параметрах смотрите Используя Объекты fimath в блоках MATLAB function.
Параметр MATLAB Function block fimath позволяет вам задать один набор свойств объектов fimath
для блока MATLAB function. Блок сопоставляет свойства fimath
, которые вы задаете со следующими объектами:
Вся фиксированная точка и целочисленные входные сигналы к блоку MATLAB function, который вы принимаете решение обработать как fi
, возражают.
Весь fi
и объекты fimath
создаются в блоке MATLAB function.
Можно установить эти параметры на следующем диалоговом окне, к которому можно получить доступ или через Model Explorer (Simulink) или через Порты и Менеджер данных (Simulink).
Получить доступ к этой панели через Model Explorer:
Выберите View> Model Explorer из вашего образцового меню.
Затем выберите блок MATLAB function из панели Иерархии модели на левой стороне Model Explorer.
Чтобы получить доступ к этой панели через Порты и Менеджер данных, выберите Tools> Edit Data/Ports из меню MATLAB Editor.
Когда вы выбираете Same as MATLAB для MATLAB Function block fimath, блок MATLAB function использует текущее значение по умолчанию fimath. Текущее значение по умолчанию fimath появляется, потускнел и в форме только для чтения в окне редактирования.
Когда вы выбираете Specify other, блок позволяет вам задавать свой собственный объект fimath
в окне редактирования. Можно сделать так одним из двух способов:
Построение объекта fimath
в окне редактирования.
Построение объекта fimath
в рабочем пространстве MATLAB или рабочем пространстве модели и затем ввод его имени переменной в окне редактирования.
Если вы используете эту опцию и планируете совместно использовать свою модель с другими, убедитесь, что вы задаете переменную в рабочем пространстве модели. Смотрите Совместное использование Моделей с блоками MATLAB function Фиксированной точки для получения дополнительной информации о совместном использовании моделей.
Fixed-Point Designer isfimathlocal
функционирует генерация кода поддержек для MATLAB.
Когда вы сотрудничаете с коллегой, можно совместно использовать модель фиксированной точки использование блока MATLAB function. Чтобы совместно использовать модель, убедитесь, что вы перемещаете любые переменные, которые вы задаете в рабочем пространстве MATLAB, включая объекты fimath
, к рабочему пространству модели. Например, попробуйте следующее:
Поместите блок MATLAB function в новую модель. Можно найти блок в библиотеке Simulink User-Defined Functions.
Задайте объект fimath
в рабочем пространстве MATLAB, что вы хотите использовать для любого сигнала фиксированной точки Simulink ввод блока MATLAB function как вход:
F = fimath('RoundingMethod','Floor','OverflowAction','Wrap',... 'ProductMode','KeepLSB','ProductWordLength',32,... 'SumMode','KeepLSB','SumWordLength',32) F = RoundingMethod: Floor OverflowAction: Wrap ProductMode: KeepLSB ProductWordLength: 32 SumMode: KeepLSB SumWordLength: 32 CastBeforeSum: true
Откройте Model Explorer путем выбора View> Model Explorer из модели.
Расширьте узел untitled* в панели Model Hierarchy Model Explorer и выберите узел MATLAB Function.
Выберите Specify other для параметра MATLAB Function block fimath и введите переменную F
в окно редактирования на панели Dialog. Нажмите Apply, чтобы сохранить ваши изменения.
Вы теперь задали свойства fimath
, которые будут сопоставлены со всеми входными сигналами фиксированной точки Simulink и всем fi
и объектами fimath
, созданными в блоке.
Выберите узел Base Workspace в панели Model Hierarchy. Вы видите переменную F
, которую вы задали в рабочем пространстве MATLAB, перечисленном в панели Contents. Если вы отправляете эту модель коллеге, тот коллега должен сначала задать ту же самую переменную в рабочем пространстве MATLAB, чтобы получить те же результаты.
Сократите переменную F
из базового рабочего пространства и вставьте его в рабочее пространство модели, перечисленное под узлом для вашей модели, в этом случае, untitled*. Model Explorer теперь появляется как показано в следующей фигуре.
Можно теперь послать модель по электронной почте коллеге. Поскольку вы включали необходимые переменные в рабочую область самой модели, ваш коллега может просто запустить модель и получить правильные результаты. Получение и выполнение модели не требуют никаких дополнительных шагов.