Ограничения блока 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. Если Nonreusable function или Reusable function выбран, подсистема и модель должны быть в поддерживаемых настройках.НефатальныйCheck usage of MATLAB Function Blocks> Identify Subsystems that have unsupported configurations for non-inlined
Допускающая повторное использование подсистема в модели должна быть от библиотеки. Это должно быть размаскировано, односкоростное атомарный или подсистема вызова функций.НефатальныйCheck usage of MATLAB Function Blocks> Check that reusable subsystems in a model are from a library and are unmasked single-rate atomic or function-call subsystems
Функция MATLAB не должна использовать сигналы входа Trigger.НефатальныйCheck usage of MATLAB Function Blocks> Check that MATLAB functions do not contain input Trigger 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 должно использовать постоянное значение индекса 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, должны иметь один из следующих типов данных: booleanint8int16int32uint8uint16uint32единственный'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 операторы не должны иметь выражений случая, содержащих массив ячеек.Нефатальный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 не должны вызывать вызов функции выходные параметры.НефатальныйCheck usage of Code in MATLAB Functions> Check usage of function call outputs in MATLAB code
Код MATLAB не должен содержать определение внутренней функции.НефатальныйCheck usage of Code in MATLAB Functions> Check usage of inner functions in MATLAB code
coder.targer не должен содержать пустую цель.НефатальныйCheck usage of Code in MATLAB Functions> Check that coder.target in MATLAB code contains a non-empty target

Код 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

Похожие темы