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

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

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

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

Конструкция и инициализация объектов

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

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

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

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

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

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

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

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

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

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

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

  • Не используйте состояние симуляции сохранения и восстановления в качестве опции SimState ни для каких Системных объектов в блоке MATLAB Function.

  • Не передайте системный объект в качестве примера входного параметра функции, компилируемой с codegen (MATLAB Coder).

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

Свойства

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

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

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

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

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

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

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

Методы

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

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

Примечание

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

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

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

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

Используя блок MATLAB System, можно включить в модель Simulink отдельные системные объекты, которые вы создаете с файлом определения класса. Модель может затем сгенерировать встраиваемый код. Для получения дополнительной информации см. раздел MATLAB System Block.

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

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

Похожие темы