Диагностируйте проверки S-функции

Чтобы помочь вам идентифицировать и диагностировать проблемы со своей S-моделью-функции и исходным кодом, проверки S-функции используют S-функцию API анализатора, чтобы помочь вам обнаружить потенциальные проблемы S-функции.

Проверки среды

Проверки среды смотрят вашу среду для S-функции API анализатора. Эта проверка включает MEX проверка настройки компилятора.

MEX Проверка Setup

Эта проверка указала на присутствие MEX компилятор в текущей машине. Компилятор C по умолчанию включен в ваш MATLAB® установка. Чтобы видеть поддерживаемый список компиляторов, см. Компилятор Значения по умолчанию Изменения. Можно изменить компилятор по умолчанию путем ввода mex -setup в командной строке.

Проверки исходного кода

Эти проверки смотрят исходный код для S-функций. Эти проверки включают MEX скомпилируйте проверку и Polyspace® Проверка Code Prover™.

MEX Скомпилируйте проверку

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

Проверка Polyspace Code Prover

Если у вас есть лицензия Polyspace, эта проверка использует Polyspace Code Prover, чтобы провести анализ кода. Смотрите Верификацию Исходного кода с Polyspace Code Prover (Polyspace Code Prover) для получения дополнительной информации.

S-функция MEX Проверки файла

Этот набор проверок смотрит семантику S-функции MEX- файл.

MdlOutputsModifyContinuousStates

Эта проверка указывает, что непрерывные состояния S-функции изменяются в mdlOutputs метод. Непрерывные состояния могут только быть изменены на главном временном шаге и требуют ssSetSolverNeedsReset макрос, чтобы сбросить решатель S-функции. Изменение состояний S-функции, не сбрасывая решатель может привести к неожиданным результатам.

MdlUpdateModifyContinuousStates

Эта проверка указывает, изменяются ли непрерывные состояния S-функции в mdlUpdate метод. Непрерывные состояния могут только быть изменены на главном временном шаге и требуют ssSetSolverNeedsReset макрос, чтобы сбросить решатель S-функции. Изменение состояний S-функции, не сбрасывая решатель может привести к неожиданным результатам.

MinorStepModifyDiscreteStates

Эта проверка указывает, изменяются ли дискретные состояния S-функции в ее mdlOutputs метод на мелком шаге. Дискретные состояния S-функции могут только быть изменены на существенном шаге, который охраняет sslsMajorTimeStep.

MinorStepModifyModes

Эта проверка занимается расследованиями, изменяется ли вектор режима из S-функции в mdlOutputs на мелком шаге. Шаг режима S-функции может только быть изменен на главном временном шаге, который охраняет ssIsMajorTimeStep функция.

GlobalStaticAsInvisibleState

Эта проверка указывает, использует ли S-функция статические или глобальные переменные, чтобы представлять внутренние состояния. Чтобы избежать неожиданного поведения, которое следует из наличия S-функции в нескольких Блоках s-function, объявите состояния S-функции явным образом использование ssSetNumDiscreteStates или использование API функции памяти хранилища данных.

ContinuousStateWithoutContinuousSampleTime

Эта проверка смотрит, объявляется ли время непрерывной выборки S-функции явным образом, когда оно имеет непрерывные состояния. Можно использовать ssSetSampleTime задавать время непрерывной выборки, когда S-функция имеет непрерывные состояния.

CombinedMdlOutputsMdlUpdateWithDiscreteState

Эта проверка смотрит ли S-функция mdlUpdate и mdlOutputs методы объединены, когда S-функция имеет дискретные состояния. Когда S-функция будет иметь дискретные состояния, задайте mdlUpdate и mdlOutputs методы отдельно и изменяют дискретные состояния только в mdlUpdate метод.

DeclareCanBeConditionalExecWithState

Эта проверка смотрит, устанавливает ли S-функция SS_OPTION_CAN_BE_CALLED_CONDITIONALLY опция, когда это имеет подобные состоянию данные или несколько шагов расчета. Эта опция могла вызвать Simulink® механизм, чтобы переместить S-функции в условно выполняемый режим, такие как условно выполняемая подсистема. Удалите эту опцию, когда вы будете иметь подобный состоянию или несколько шагов расчета.

TestHarnessCreationError

Этот код ошибки указывает, что S-функция анализатор сталкивается с ошибкой при создании тестовой обвязки для входных S-функций в Библиотеке Simulink. Возможными причинами мог быть недостающий .mex файл или определения параметра маски.

ModelCompileError

S-функция анализатор сталкивается с ошибкой при компиляции входной модели. Можно попытаться перекомпилировать модель и проверять диагностическое средство просмотра для получения дополнительной информации.

Введите проверку робастности параметра

Эта проверка смотрит робастность S-функций путем определения несовместимого номера и типа параметров с определенными случайными значениями. Эта проверка могла заставить MATLAB отказывать. Чтобы устранить эту проблему, следуйте за этапами воспроизведения, когда вы будете повторно запускать проверки S-функции и проверять типы данных S-параметра-функции и значения.

Смотрите также

| | |

Похожие темы

Похожие темы