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

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

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

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

Проверка Setup MEX

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

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

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

Проверка компиляции MEX

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

Проверка Polyspace Code Prover

Если у вас есть лицензия Polyspace, эта проверка использует Polyspace Code Prover, чтобы провести анализ кода. Смотрите Верификацию Polyspace (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-параметра-функции и значения.

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

| | |

Похожие темы

Похожие темы