MATLAB Function поддержки блоков

Simulink® Code Inspector™ поддерживает подмножество языка и функций MATLAB Function блока для инспекции кода. Инспектор кода проверяет использование блока MATLAB Function. Для поддерживаемого языка и функций могут применяться некоторые ограничения. Перед инспекцией кода, когда вы проверяете совместимость вашей модели с инспекцией кода правилами, проверка совместимости обнаруживает и сообщает о нарушениях MATLAB Function ограничений блоков. Simulink Code Inspector поддерживает следующее для инспекции кода:

MATLAB Function блок функцииЧто поддерживается
Тип данных
  • Встроенные типы данных: boolean, int8, int16, int32, uint8, uint16, uint32, single, и double

  • Автобус

  • Перечисленные типы, унаследованные от Simulink.IntEnumType

Размерность и сложность данных
  • Скалярные, векторные и матричные данные

  • Sampling mode of output signal установлено на Sample-based

  • Реальные данные

Возможности данных
  • Вход

  • Выход

  • Параметр

  • Классы памяти при следующих условиях:

    • Type установлено на Unstructured

    • Класс памяти не может быть повторно использован

  • Память хранилища данных

  • Постоянные переменные

MATLAB Function параметров блока
  • Function packaging (RTWSystemCode) установить на Inline. Если вы выбираете Nonreusable functionПодсистема должна быть в следующих строениях:

    • Установите Function name options значение User Specified.

    • Установите Function interface значение void-void.

    • Установите Function with separate data значение off.

    • Установите Code interface packaging параметра модели в Nonreusable function.

    Если вы выбираете Reusable function, модель должна использовать следующие строения:

    • Pass reusable subsystem outputs as с Individual arguments

    • Установите Code interface packaging параметра модели в Nonreusable function.

  • Saturate on integer overflow (SaturateOnIntegerOverflow) параметр удален (установите значение off)

MATLAB® операции - скаляр
  • Арифметика: uminus, uplus, minus, plus, и multiplication

  • Реляционные: >, >=, <, <=, ==, и ~=

  • Логический: &, |, &&, ||, и not

  • ldivide (.\) и rdivide (./) - с плавающей точкой и целым числом

  • power - с плавающей точкой и целым числом

  • Транспонирование (', .').

Операции MATLAB - поддержка векторов
  • Поддержка массивов и матриц для поэлементных операторов.

  • Операторы назначения, такие как y = u, для векторов или матриц того же размера.

  • Индексирование массива.

  • colon (:) оператор для целочисленных или двойных данных и не более 3 операндов.

  • Конкатенация невариабельных массивов скаляра размера.

  • Матричное умножение (*).

  • Транспонирование (', .').

Операторы программы MATLAB
  • Составные операторы

  • Операторы If

  • for операторы

  • switch операторы

Встроенные функции MATLAB
  • cast

  • Прямое приведение для: int8, int16, int32, uint8, uint16, uint32, double, и single

  • true, false ключевые слова

  • zeros и ones

  • coder.nullcopy

  • assert

  • Математические функции (скаляр и поддержка массивов): rem, abs, sqrt, size, ceil, floor, fix, log, log10, exp, hypot, mod, round, pow2, min, max, sum и тригонометрические функции (sin, cos, tan, asin, acos, atan, и atan2)

  • diag

  • eye

  • is* встроенные функции: isempty, isscalar, isvector, ismatrix, isrow, iscolumn, isinteger, isfloat, islogical, и isnumeric

  • Битовые операции: bitand, bitcmp, bitget, bitor, bitset, bitshift, и bitxor

  • Матрица и операции над массивами: dot, cross, length, mean, numel, prod, reshape, и nnz

  • sign

  • deg2rad

  • rad2deg

Функции
  • MATLAB block функции уровня.

  • Вызываются автономные пользовательские функции.

  • Вызовы функций к определяемым пользователем локальным функциям.

  • Определения автономных функций и локальных функций, которые совместимы с Simulink Code Inspector.

  • Использование coder.inline('always') и coder.inline('never') директивы.

  • coder.const

  • coder.target

  • coder.ceval

Примечание

Simulink Code Inspector поддерживает верификацию coder.ceval функция в MATLAB Function блоках, которая позволяет модели вызывать функцию C/C + + из сгенерированного кода. Чтобы включить эту функциональность, Source file и Header file C/C + + определены в параметрах конфигурации под Code Generation > Custom Code > Insert custom C code in generated. В результате определения этих параметров проверка совместимости «Проверка кода generation settings» прекращает работать с нефатальным предупреждением. В этой ситуации Simulink Code Inspector проверяет эти модели, хотя они не выполняются с нефатальным ограничением. Необходимо вручную просмотреть внешние файлы C/C + +, перечисленные в разделе Utils Verification отчета Simulink Code Inspector.

СообщениеБлочная трассируемость и верификация
Управляемые функцииВерификация искривленных имен функции, сгенерированных из MATLAB Function блока деления выражения. В отчете Simulink Code Inspector перечислены эти функции, чтобы можно было вручную проверить тело функции. Проверьте тело функции вручную, чтобы убедиться, что она соответствует вызову функции.
Размер и тип верификацииSimulink Code Inspector получает информацию о размере и типе переменных в коде из данных моделирования блока. Чтобы независимо проверить информацию о типах и размерах, можно использовать Simulink Report Generator™, чтобы сгенерировать отчет Разработки системы Description (SDD) для вашей модели. Проверьте отчет SDD на наличие MATLAB Function данных о символах блоков, таких как размер, сложность, положение и сайты вызова функций.

MATLAB Function Block Constraints разделяет ограничения на следующие категории:

  • Ограничения на MATLAB Function блок.

  • Ограничения на данные в функциях MATLAB.

  • Ограничения на код в функциях MATLAB.

  • Ограничения на сообщения КОД MATLAB Analyzer.

Таблица содержит ограничения, применяемые для каждой категории.

Для каждой записи в таблице:

  • В Constraint столбце перечислено ограничение Simulink Code Inspector на блок MATLAB Function, данные или код.

  • Столбец FATAL / Nonfatal определяет, прекращает ли нарушение ограничения инспекцию кода.

    • При проверке кода, сгенерированного из моделей с несовместимостью FATAL, инспекция кода прекращается. Код, сгенерированный из моделей с несовместимостью FATAL, не может быть проверен.

    • Когда вы проверяете код, сгенерированный из моделей с нефатальными несовместимостями, инспекция кода не прекращается. Несмотря на невозможность полной проверки сгенерированного кода, инспекция кода продолжается. Simulink Code Inspector может частично проверить сгенерированный код. Можно сконфигурировать инспекцию кода так, чтобы нефатальное нарушение ограничений завершало инспекцию кода.

  • В Compatibility Check столбце перечислены проверки совместимости, которая проверяет на нарушение ограничения, и ссылки на описание проверки.

Похожие темы