exponenta event banner

Системные объекты в создании кода MATLAB

Код C/C + + можно создать в MATLAB ® из системы, содержащей системные объекты, с помощью Coder™ MATLAB. Вы можете создавать эффективный и компактный код для развертывания в настольных и встраиваемых системах и ускорять алгоритмы с фиксированной точкой.

Правила и ограничения использования системных объектов для создания кода

Следующие правила использования и ограничения применяются к использованию системных объектов в коде, созданном из MATLAB.

Построение и инициализация объекта

  • Если объекты хранятся в постоянных переменных, инициализируйте системные объекты один раз путем встраивания дескрипторов объектов в if оператор с вызовом isempty().

  • Задайте аргументы конструкторам System object™ в качестве констант времени компиляции.

  • Инициализация всех свойств системных объектов, releaseImpl использует до конца setupImpl.

  • Невозможно инициализировать свойства системных объектов с другими объектами класса MATLAB в качестве значений по умолчанию при создании кода. Необходимо инициализировать эти свойства в конструкторе.

Входы и выходы

  • Системные объекты принимают не более 1024 входных данных. Поддерживается максимум восемь измерений на вход.

  • Тип данных входных данных не должен изменяться.

  • Сложность вводимых данных не должна меняться.

  • Если требуется изменить размер входных данных, убедитесь, что поддержка переменных размеров включена. Поддержка генерации кода для данных переменного размера также требует включения поддержки переменного размера. По умолчанию в MATLAB включена поддержка данных переменного размера.

  • Системные объекты, предварительно определенные в программном обеспечении, не поддерживают переменные размеры, если их данные превышают DynamicMemoryAllocationThreshold значение.

  • Не устанавливайте системные объекты как выходные данные из блока MATLAB Function (Simulink).

  • Не используйте параметр Сохранить и восстановить состояние моделирования как SimState для любого объекта системы в блоке функции MATLAB (Simulink).

  • Не передавать объект System в качестве примера входного аргумента функции, скомпилированной с помощью codegen.

  • Не передавайте объект System функциям, объявленным как внешние (функции, вызываемые в интерпретируемом режиме) с помощью coder.extrinsic функция. Системные объекты, возвращенные из внешних функций и области действия Системные объекты, которые автоматически становятся внешними, могут использоваться в качестве входных данных для другой внешней функции. Но эти функции не генерируют код.

Свойства

  • В системных блоках MATLAB нельзя использовать переменные размеры для дискретных свойств состояния системных объектов. Частные свойства могут иметь переменный размер.

  • Объекты не могут использоваться в качестве значений по умолчанию для свойств.

  • Нельзя назначать значения неперестраиваемым свойствам только один раз, включая назначение в конструкторе.

  • Неперестраиваемые значения свойств должны быть постоянными.

  • Для вводов с фиксированной точкой, если настраиваемое свойство имеет зависимые свойства типа данных, можно задать настраиваемые свойства только во время конструирования или после блокировки объекта.

  • Для getNumInputsImpl и getNumOutputsImpl методы, если задать возвращаемый аргумент из свойства объекта, это свойство объекта должно иметь Nontunable атрибут.

Глобальные переменные

Методы

Системные объекты в кодегене

Системные объекты можно включать в код MATLAB так же, как и любые другие элементы. Затем можно скомпилировать файл MEX из кода MATLAB с помощью codegen , которая доступна при наличии лицензии MATLAB Coder. Этот процесс компиляции, включающий ряд оптимизаций, полезен для ускорения моделирования. Дополнительные сведения см. в разделе Начало работы с классами MATLAB Coder и MATLAB.

Примечание

Большинство, но не все системные объекты поддерживают генерацию кода. Дополнительные сведения см. на справочной странице конкретного объекта.

Системные объекты в функциональном блоке MATLAB

С помощью блока Функция MATLAB (Simulink) можно включить любой объект System и любую функцию языка MATLAB в модель Simulink. Эта модель может затем генерировать встраиваемый код. Системные объекты обеспечивают алгоритмы более высокого уровня для генерации кода, чем большинство связанных блоков. Дополнительные сведения см. в разделе Реализация функций MATLAB с использованием блоков (Simulink).

Системные объекты в системном блоке MATLAB

С помощью блока Система MATLAB (Simulink) можно включить в модель Simulink отдельные системные объекты, создаваемые с помощью файла определения класса. Затем модель может генерировать встраиваемый код. Дополнительные сведения см. в разделе Системный блок MATLAB (Simulink).

Системные объекты и программное обеспечение компилятора MATLAB

Программное обеспечение MATLAB Compiler™ поддерживает системные объекты для использования внутри функций MATLAB. Компилятор не поддерживает системные объекты для использования в скриптах MATLAB.

Связанные темы