Ограничения блока MATLAB function

Блоки MATLAB function

Ограничение блока MATLAB functionКРИТИЧЕСКИЙ / НефатальныйПроверка совместимости

Имена блока:

  • Не должен содержать '*/' или '/*'.

  • Не должен запускаться или заканчиваться '*'.

НефатальныйCheck usage of MATLAB Function Blocks> Check for block names that contain ‘/*’,’*/’, or start or end with the character ‘*’
Класс памяти выходного сигнала должен быть установлен в Auto, когда блок имеет постоянный (Inf) шаг расчета.НефатальныйCheck usage of MATLAB Function Blocks> Check for unsupported usage of storage class
Выходной порт не должен быть testpointed, когда блок имеет постоянный (Inf) шаг расчета.НефатальныйCheck usage of MATLAB Function Blocks> Check for unsupported testpoints

Выведите пользовательские классы памяти сигнала:

  • Должны были установить Type на Unstructured.

  • Не должны были устанавливать Data initialization на None.

  • Не должен ссылаться на объект сигнала с непустым начальным значением.

НефатальныйCheck usage of MATLAB Function Blocks> Check storage class of block outports
Порты ввода и вывода должны быть скалярами, векторами или 2D матрицами.НефатальныйCheck usage of MATLAB Function Blocks> Check for blocks with greater than two-dimensional inputs or outputs
Порты ввода и вывода не должны использовать основанные на кадре сигналы.НефатальныйCheck usage of MATLAB Function Blocks> Check whether inputs and outputs are not framed
Функция MATLAB® должна установить Update method на Inherited.НефатальныйCheck usage of MATLAB Function Blocks> Check that all MATLAB functions set ‘Update method’ to ‘Inherited’
Function packaging (RTWSystemCode) должен быть установлен в Inline.КРИТИЧЕСКИЙCheck usage of MATLAB Function Blocks> Check that all MATLAB function blocks have RTWSystemCode set to Inline
Функция MATLAB не должна использовать сигналы входа Trigger.НефатальныйCheck usage of MATLAB Function Blocks> Check that MATLAB functions do not contain input Trigger signals
Функция MATLAB не должна использовать выходные сигналы вызова функции.НефатальныйCheck usage of MATLAB Function Blocks> Check that MATLAB functions do not contain Function Call output signals
Блокируйтесь, который является постоянным или имеет параметры, которые могут быть настроены, не должен управлять двумя или больше многоскоростными блоками, не используя явные блоки Перехода Уровня.НефатальныйCheck usage of MATLAB Function Blocks> Check that blocks that are constant or whose parameters can be tuned, do not drive two or more multirate blocks without using explicit rate transition blocks
Saturate on integer overflow (SaturateOnIntegerOverflow) не должен быть выбран (должен быть установлен в off).НефатальныйCheck usage of MATLAB Function Blocks> Check that all MATLAB functions set ‘Saturate on integer overflow’ to ‘Off’
Treat these inherited Simulink signal types as fi objects не должен быть установлен в Fixed-point & Integer.НефатальныйCheck usage of MATLAB Function Blocks> Check that all MATLAB functions set ‘Treat these inherited Simulink signal types as fi objects:’ to a value other than ‘Fixed-point & Integer’
Support variable-size arrays не должен быть выбран (должен быть установлен в off).КРИТИЧЕСКИЙCheck usage of MATLAB Function Blocks> Check that all MATLAB functions set ‘Support variable-size arrays’ to ‘Off’

Данные в функциях MATLAB

Ограничение данных о функции MATLABКРИТИЧЕСКИЙ / НефатальныйПроверка совместимости
Данные, заданные в функции MATLAB, должны иметь один из следующих поддерживаемых типов данных: встроенный, шина или перечислимый тип, наследованный от Simulink.IntEnumType.НефатальныйCheck usage of Data in MATLAB Functions> Check that data defined in MATLAB function is of a supported data type
Данные, заданные в функции MATLAB, должны иметь одну из следующих поддерживаемых размерностей: скаляр, вектор или матрица.НефатальныйCheck usage of Data in MATLAB Functions> Check that data defined in MATLAB function is of a supported dimension
Данные, заданные в функции MATLAB, должны быть некомплексными.НефатальныйCheck usage of Data in MATLAB Functions> Check that data defined in MATLAB function is non-complex

Код в функциях MATLAB

Ограничение кода MATLABКРИТИЧЕСКИЙ / НефатальныйПроверка совместимости

Использовать невстроенные пользовательские функции с глобальными переменными в коде MATLAB:

  • Функции не должны быть в допускающей повторное использование или пустой пустотой подсистеме.

  • Параметр модели Code interface packaging (CodeInterfacePackaging) должен быть установлен на Nonreusable function.

НефатальныйCheck usage of Code in MATLAB Functions> Check non-inlined user defined functions with global variables in MATLAB code
Невстроенные пользовательские функции в коде MATLAB должны задать только один выводНефатальныйCheck usage of Code in MATLAB Functions> Check that non-inlined user defined functions in MATLAB code contain only one output
Индексирование массивов в коде MATLAB должно использовать постоянное индексное значение 1 для соответствующей размерности размера 1.НефатальныйCheck usage of Code in MATLAB Functions> Check that array subscripting in MATLAB code uses a constant index of 1 for a corresponding dimension of size 1
Индексация массива в коде MATLAB должна использовать индекс, который меньше чем или равен базовой размерности массивов.НефатальныйCheck usage of Code in MATLAB Functions> Check that array indexing in MATLAB code uses a subscript that is less than or equal to the array base dimension

Функция cast должна иметь одну из следующих форм:

  • cast(A,'newclass')

  • cast(A,'like',p)

НефатальныйCheck usage of Code in MATLAB Functions> Check type argument for cast in MATLAB functions
colon (:) оператор не должен иметь больше чем 3 операндов.НефатальныйCheck usage of Code in MATLAB Functions> Check that colon operators in MATLAB code have no more than 3 operands
colon (:) оператор должен использовать целое число или двойные данные.НефатальныйCheck usage of Code in MATLAB Functions> Check that colon operators in MATLAB code use only integer and double data
Данные, используемые в функции MATLAB, должны иметь один из следующих типов данных: boolean, int8, int16, int32, uint8, uint16, uint32, single, double или скалярная шина.НефатальныйCheck usage of Code in MATLAB Functions> Check that data used in MATLAB function is of a supported data type

Диагональный номер, заданный для функции diag, должен быть константой. Например, в операторе:

D = diag(v,k)

где k является диагональным номером, k должен быть константой.

НефатальныйCheck usage of Code in MATLAB Functions> Check that diagonal number used in a diag function in MATLAB code is constant
Идентификаторы, используемые в присвоении, массиве, аргументах вызова функции и функциональных аргументах определения, должны быть скаляром, вектором или матрицей. Идентификаторы, используемые в любом другом контексте, должны быть скаляром.НефатальныйCheck usage of Code in MATLAB Functions> Check that code in MATLAB function is of a supported dimension
Скобки в коде MATLAB не должны быть пустыми.НефатальныйCheck usage of Code in MATLAB Functions> Check for nonempty brackets in MATLAB code
Операторы for в коде MATLAB должны иметь индексные области значений, которые являются моно инкрементными выражениями двоеточия.НефатальныйCheck usage of Code in MATLAB Functions> Check that for statements in MATLAB code have index ranges that are mono incremental colon expressions
Операторы for в коде MATLAB должны иметь индексные значения области значений, которые являются литеральными целыми числами const.НефатальныйCheck usage of Code in MATLAB Functions> Check that for statements in MATLAB code have index range values that are literal const integers
Операторы for в коде MATLAB должны иметь скалярные индексные значения.НефатальныйCheck usage of Code in MATLAB Functions> Check that for statements in MATLAB code have scalar index values
Операнды точечного оператора степени должны иметь один или двойной тип данных.НефатальныйCheck usage of Code in MATLAB Functions> Check that data defined in MATLAB function is of a double or single data type

Поскольку MATLAB базируется функции, если директива coder.inline задана, это должно быть установлено в always.

Для пользовательских функций MATLAB директива coder.inline должна быть явным образом установлена в always или never.

НефатальныйCheck usage of Code in MATLAB Functions> For MATLAB root function, do not specify coder.inline directive or set coder.inline directive to 'always'. For user defined MATLAB functions, explicitly set coder.inline directive to 'always' or 'never'
Математические функции в коде MATLAB должны использовать целочисленные или данные с плавающей точкой.НефатальныйCheck usage of Code in MATLAB Functions> Check that math functions in MATLAB code use only integer and floating-point data
Функции MATLAB не должны иметь недостающей информации о типе данных.НефатальныйCheck usage of Code in MATLAB Functions> Check that no code in MATLAB functions has missing data type information
Функции MATLAB не должны иметь недостающей информации о размерности.НефатальныйCheck usage of Code in MATLAB Functions> Check that no code in MATLAB functions has missing dimension information
Вызовы функции в коде MATLAB должны решить к известному функциональному определению.НефатальныйCheck usage of Code in MATLAB Functions> Check that all function calls in MATLAB code resolve to a known function definition
Операторы в функциях MATLAB не должны иметь операндов со смешанным типом данных.НефатальныйCheck usage of Code in MATLAB Functions> Check that operators used in MATLAB function do not have operands with mixed data type
При использовании операций над матрицей в коде MATLAB Loop unrolling threshold не должен приводить к частично развернутым циклам в сгенерированном коде.НефатальныйCheck usage of Code in MATLAB Functions> Check that the ‘Loop unrolling threshold’ does not result in partially unrolled loops in the generated code when using matrix operations in MATLAB code
Условная инициализация персистентной переменной должна использовать оператор if с одним isempty(persistent) или условием ~isempty(persistent).НефатальныйCheck usage of Code in MATLAB Functions> Check that conditional initialization of persistent variables uses an 'if' statement with a single isempty(persistent) or ~isempty(persistent) condition
Условная инициализация персистентной переменной должна содержать только один оператор в теле оператора if.НефатальныйCheck usage of Code in MATLAB Functions> Check that there is only one initialization statement of a persistent variable in ‘if’ statement body
Операторы switch не должны иметь case-выражений, содержащих массив ячеек.НефатальныйCheck usage of Code in MATLAB Functions> Check that switch statements in MATLAB code do not have case expressions containing a cell array
Операторы switch должны использовать тот же скалярный целочисленный тип для всего переключателя и условий случая.НефатальныйCheck usage of Code in MATLAB Functions> Check that switch statements in MATLAB code use the same scalar integer type for all conditions
colon (:) функциональные и операции деления в коде MATLAB должен использовать скалярные операнды.НефатальныйCheck usage of Code in MATLAB Functions> Check that operators and functions in MATLAB code have supported operand dimensions
Операторы if должны использовать условия, которые являются скаляром.НефатальныйCheck usage of Code in MATLAB Functions> Check that if statements in MATLAB code use conditions that are scalar
Функции MATLAB не должны содержать неподдерживаемый код MATLAB.НефатальныйCheck usage of Code in MATLAB Functions> Check for unsupported MATLAB code in MATLAB functions
Модель не должна задавать рекурсивные функции в коде MATLAB.НефатальныйCheck usage of Code in MATLAB Functions> Check usage of recursive functions in MATLAB code
coder.ceval не должен задавать опцию -global.НефатальныйCheck usage of Code in MATLAB Functions> Check that coder.ceval in MATLAB code does not specify '-global' option
coder.ceval не должен задавать опцию layout.НефатальныйCheck usage of Code in MATLAB Functions> Check that coder.ceval in MATLAB code does not specify layout option

Код MATLAB сообщения анализатора

Код MATLAB ограничение сообщения анализатораКРИТИЧЕСКИЙ / НефатальныйПроверка совместимости
Проблемы в блоке MATLAB function.НефатальныйCheck MATLAB Code Analyzer messages> Check MATLAB code used in MATLAB Function blocks
Проблемы в названных функциях MATLAB.НефатальныйCheck MATLAB Code Analyzer messages> Check called MATLAB functions

Похожие темы