exponenta event banner

Ограничения функциональных блоков MATLAB

Функциональные блоки MATLAB

Ограничение функционального блока MATLABФАТАЛЬНЫЙ/нефатальныйПроверка совместимости

Имена блоков:

  • Не должен содержать "*/«или»/*’.

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

НеокончательныйПроверьте использование функциональных блоков MATLAB > Проверьте имена блоков, которые содержат символы «/* »,« */» или начинаются или заканчиваются символом «*»
Класс хранения выходного сигнала должен быть установлен в Auto когда блок имеет константу (Inf) время выборки.НеокончательныйПроверка использования функциональных блоков MATLAB > Проверка неподдерживаемого использования класса хранения
Выходной порт не должен тестироваться, если блок имеет константу (Inf) время выборки.НеокончательныйПроверка использования функциональных блоков MATLAB > Проверка неподдерживаемых тестовых точек

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

  • Для параметра «Тип» должно быть установлено значение Unstructured.

  • Не должно иметь значение инициализации данных None.

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

НеокончательныйПроверка использования функциональных блоков MATLAB > Проверка класса хранения выходных блоков
Входными и выходными портами должны быть скаляры, векторы или 2-D матрицы.НеокончательныйПроверка использования функциональных блоков MATLAB > Проверка наличия блоков с более чем двумерными входами или выходами
Порты ввода и вывода не должны использовать сигналы на основе кадров.НеокончательныйПроверка использования функциональных блоков MATLAB > Проверка отсутствия обрамления входов и выходов
Функция MATLAB ® должна установить метод Update в значениеInherited.НеокончательныйПроверьте использование функциональных блоков MATLAB > Проверьте, что для всех функций MATLAB установлен «Метод обновления» на «Наследуемый».
Функциональная упаковка (RTWSystemCode) должен иметь значение Inline. Если Nonreusable function или Reusable function выбран, подсистема и модель должны находиться в поддерживаемых конфигурациях.НеокончательныйПроверка использования функциональных блоков MATLAB > Идентификация подсистем с неподдерживаемыми конфигурациями для неинлинизированных
Повторно используемая подсистема в модели должна быть из библиотеки. Она должна быть демаскированной, односкоростной атомной подсистемой или подсистемой функционального вызова.НеокончательныйПроверка использования функциональных блоков MATLAB > Проверка того, что повторно используемые подсистемы в модели находятся в библиотеке и являются демаскированными односкоростными атомными подсистемами или подсистемами вызова функций
Функция MATLAB не должна использовать входные триггерные сигналы.НеокончательныйПроверьте использование функциональных блоков MATLAB > Проверьте, что функции MATLAB не содержат входных триггерных сигналов.
Блок, который является постоянным или имеет параметры, которые могут быть настроены, не должен управлять двумя или более многоскоростными блоками без использования явных блоков Rate Transition.НеокончательныйПроверьте использование функциональных блоков MATLAB > Проверьте, что блоки, которые являются постоянными или параметры которых могут быть настроены, не управляют двумя или более многоскоростными блоками без использования явных блоков перехода скорости.
Насыщение при целочисленном переполнении (SaturateOnIntegerOverflow) не должен быть выбран (должен быть установлен в off).НеокончательныйПроверьте использование функциональных блоков MATLAB > Проверьте, что для всех функций MATLAB установлено значение «Saturate on integer overflow» (Насыщение при переполнении целого числа) «Off» (Выкл).
Рассматривать эти унаследованные типы сигналов Simulink как объекты fi не должны иметь значение Fixed-point & Integer.НеокончательныйПроверьте использование функциональных блоков MATLAB > Проверьте, что для всех функций MATLAB установлено значение «Рассматривать наследуемые типы сигналов Simulink как объекты fi:», отличное от «Фиксированная точка и целое число».
Не следует выбирать поддерживаемые массивы переменного размера (необходимо установить значение off).ФАТАЛЬНЫЙПроверьте использование функциональных блоков MATLAB > Проверьте, что для всех функций MATLAB в поле «Support variable-size arrays» установлено значение «Off».

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

Ограничение данных функции MATLABФАТАЛЬНЫЙ/нефатальныйПроверка совместимости
Данные, определенные в функции MATLAB, должны иметь один из следующих поддерживаемых типов данных: встроенный, шинный или перечисляемый тип, унаследованный от Simulink.IntEnumType.НеокончательныйПроверьте использование данных в функциях MATLAB > Проверьте, что данные, определенные в функции MATLAB, имеют поддерживаемый тип данных.
Данные, определенные в функции MATLAB, должны иметь одно из следующих поддерживаемых измерений: скаляр, вектор или матрица.НеокончательныйПроверьте использование данных в функциях MATLAB > Проверьте, что данные, определенные в функции MATLAB, имеют поддерживаемое измерение.
Данные, определенные в функции MATLAB, должны быть некомплексными.НеокончательныйПроверка использования данных в функциях MATLAB > Проверка несложности данных, определенных в функции MATLAB

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

Ограничение кода MATLABФАТАЛЬНЫЙ/нефатальныйПроверка совместимости

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

  • Функции не должны находиться внутри многоразовой подсистемы или подсистемы void-void.

  • Модельный параметр Кодовая упаковка интерфейса (CodeInterfacePackaging) должен иметь значение Nonreusable function.

НеокончательныйПроверка использования кода в функциях MATLAB > Проверка неинлинированных пользовательских функций с глобальными переменными в коде MATLAB
Неинлинированные пользовательские функции в коде MATLAB должны определять только один выводНеокончательныйПроверьте использование кода в функциях MATLAB > Проверьте, что неинлинированные пользовательские функции в коде MATLAB содержат только один вывод.
Для подстрочного индекса массива в коде MATLAB для соответствующего измерения размера 1 должно использоваться постоянное значение индекса 1.НеокончательныйПроверьте использование кода в функциях MATLAB > Проверьте, что подстрочный индекс массива в коде MATLAB использует постоянный индекс 1 для соответствующего измерения размера 1
При индексировании массива в коде MATLAB должен использоваться нижний индекс, меньший или равный базовому измерению массива.НеокончательныйПроверьте использование кода в функциях MATLAB > Проверьте, что индексирование массива в коде MATLAB использует нижний индекс, который меньше или равен базовому измерению массива

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

  • cast(A,'newclass')

  • cast(A,'like',p)

НеокончательныйПроверка использования кода в функциях MATLAB > Проверка аргумента типа для приведения в функциях MATLAB
colon (:) оператор не должен иметь более 3 операндов.НеокончательныйПроверьте использование кода в функциях MATLAB > Проверьте, что операторы двоеточия в коде MATLAB имеют не более 3 операндов
colon (:) оператор должен использовать целочисленные или двойные данные.НеокончательныйПроверьте использование кода в функциях MATLAB > Проверьте, что операторы двоеточия в коде MATLAB используют только целочисленные и двойные данные
Данные, используемые в функции MATLAB, должны иметь один из следующих типов данных: boolean, int8, int16, int32, uint8, uint16, uint32, single, double, или скалярная шина.НеокончательныйПроверьте использование кода в функциях MATLAB > Проверьте, что данные, используемые в функции MATLAB, имеют поддерживаемый тип данных.

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

D = diag(v,k)

где k - диагональное число, k должен быть константой.

НеокончательныйПроверьте использование кода в функциях MATLAB > Проверьте, что диагональное число, используемое в функции diag в коде MATLAB, является постоянным.
Идентификаторы, используемые в присвоении, массиве, аргументах вызова функции и аргументах определения функции, должны быть скалярными, векторными или матричными. Идентификаторы, используемые в любом другом контексте, должны быть скалярными.НеокончательныйПроверьте использование кода в функциях MATLAB > Проверьте, что код в функции MATLAB имеет поддерживаемое измерение
Скобки в коде MATLAB не должны быть пустыми.НеокончательныйПроверка использования кода в функциях MATLAB > Проверка непустых скобок в коде MATLAB
for операторы в коде MATLAB должны иметь диапазоны индексов, которые являются моноинкрементными двоеточиями.НеокончательныйПроверьте использование кода в функциях MATLAB > Проверьте, что для операторов в коде MATLAB имеются диапазоны индексов, которые представляют собой одномоментные инкрементные двоеточия
for операторы в коде MATLAB должны иметь значения диапазона индекса, являющиеся целыми числами литерала const.НеокончательныйПроверьте использование кода в функциях MATLAB > Проверьте, что для операторов в коде MATLAB значения диапазона индекса являются целыми числами литерала const
for операторы в коде MATLAB должны иметь значения скалярного индекса.НеокончательныйПроверьте использование кода в функциях MATLAB > Проверьте, что для операторов в коде MATLAB имеются значения скалярного индекса.
Операнды оператора питания точки должны быть одиночного или двойного типа данных.НеокончательныйПроверьте использование кода в функциях MATLAB > Проверьте, что данные, определенные в функции MATLAB, имеют двойной или одиночный тип данных.

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

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

НеокончательныйПроверьте использование Code в MATLAB Functions > Для корневой функции MATLAB не указывайте coder.inline directive или устанавливайте coder.inline directive как 'всегда'. Для определяемых пользователем функций MATLAB явно задайте для директивы coder.inline значение 'always' или 'never'
Математические функции в коде MATLAB должны использовать целочисленные данные или данные с плавающей запятой.НеокончательныйПроверьте использование кода в функциях MATLAB > Проверьте, что математические функции в коде MATLAB используют только целочисленные данные и данные с плавающей запятой.
В функциях MATLAB не должна отсутствовать информация о типе данных.НеокончательныйПроверьте использование кода в функциях MATLAB > Убедитесь, что в функциях MATLAB отсутствует информация о типе данных.
В функциях MATLAB не должна отсутствовать информация об измерении.НеокончательныйПроверьте использование кода в функциях MATLAB > Убедитесь, что в функциях MATLAB отсутствует информация об измерении.
Вызовы функций в коде MATLAB должны разрешаться в известное определение функции.НеокончательныйПроверьте использование кода в функциях MATLAB > Проверьте, что все вызовы функций в коде MATLAB соответствуют известному определению функции.
Операторы в функциях MATLAB не должны иметь операндов со смешанным типом данных.НеокончательныйПроверьте использование кода в функциях MATLAB > Проверьте, что операторы, используемые в функции MATLAB, не имеют операндов со смешанным типом данных.
При использовании матричных операций в коде MATLAB пороговое значение Разматывания цикла не должно приводить к частичному разматыванию циклов в сгенерированном коде.НеокончательныйПроверьте использование кода в функциях MATLAB > Проверьте, что при использовании матричных операций в коде MATLAB «Loop unrolling threshold» не приводит к частичному развертыванию циклов в сгенерированном коде.
Условная инициализация постоянной переменной должна использовать if оператор с одним isempty(persistent) или ~isempty(persistent) состояние.НеокончательныйПроверьте использование кода в функциях MATLAB > Проверьте, использует ли условная инициализация постоянных переменных оператор if с одним условием isempty (persistent) или ~ isempty (persistent)
Условная инициализация постоянной переменной должна содержать только одну инструкцию в if тело инструкции.НеокончательныйПроверка использования кода в функциях MATLAB > Проверка наличия только одной инструкции инициализации постоянной переменной в теле инструкции «if»
switch операторы не должны содержать выражения регистра, содержащие массив ячеек.НеокончательныйПроверьте использование кода в функциях MATLAB > Проверьте, что операторы switch в коде MATLAB не содержат выражений регистра, содержащих массив ячеек
switch операторы должны использовать один и тот же скалярный целочисленный тип для всех условий switch и case.НеокончательныйПроверьте использование кода в функциях MATLAB > Проверьте, что операторы switch в коде MATLAB используют один и тот же скалярный целочисленный тип для всех условий.
colon (:) операции функции и деления в коде MATLAB должны использовать скалярные операнды.НеокончательныйПроверьте использование кода в функциях MATLAB > Проверьте, что операторы и функции в коде MATLAB поддерживают измерения операндов.
if операторы должны использовать скалярные условия.НеокончательныйПроверьте использование кода в функциях MATLAB > Проверьте, что если операторы в коде MATLAB используют скалярные условия.
Функции MATLAB не должны содержать неподдерживаемый код MATLAB.НеокончательныйПроверка использования кода в функциях MATLAB > Проверка неподдерживаемого кода MATLAB в функциях MATLAB
Модель не должна определять рекурсивные функции в коде MATLAB.НеокончательныйПроверка использования кода в функциях MATLAB > Проверка использования рекурсивных функций в коде MATLAB
coder.ceval не должно указывать -global вариант.НеокончательныйПроверьте использование кода в функциях MATLAB > Проверьте, что coder.ceval в коде MATLAB не указывает параметр «-global»
coder.ceval не должно указывать layout вариант.НеокончательныйПроверьте использование кода в функциях MATLAB > Проверьте, что coder.ceval в коде MATLAB не определяет опцию компоновки.
Подфункции в коде MATLAB не должны вызывать выходы вызова функции.НеокончательныйПроверка использования кода в функциях MATLAB > Проверка использования выходных сигналов вызова функции в коде MATLAB
Код MATLAB не должен содержать определения внутренней функции.НеокончательныйПроверка использования кода в функциях MATLAB > Проверка использования внутренних функций в коде MATLAB
coder.targer не должен содержать пустой целевой объект.НеокончательныйПроверьте использование кода в функциях MATLAB > Проверьте, что файл coder.target в коде MATLAB содержит непустую цель

Сообщения анализатора кода MATLAB

Ограничение сообщений анализатора кода MATLABФАТАЛЬНЫЙ/нефатальныйПроверка совместимости
Проблемы в функциональном блоке MATLAB.НеокончательныйПроверка сообщений анализатора кодов MATLAB > Проверка кода MATLAB, используемого в функциональных блоках MATLAB
Проблемы в называемых функциях MATLAB.НеокончательныйПроверка сообщений анализатора кодов MATLAB > Проверка функций MATLAB

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