exponenta event banner

Устранение неполадок S-функциональных проверок

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

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

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

MEX Проверка настройки

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

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

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

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

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

Проверка проверки кода Polyspace

При наличии лицензии Polyspace для выполнения анализа кода используется средство проверки кода Polyspace. Дополнительные сведения см. в разделе Проверка Polyspace (проверка кода Polyspace).

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-функциональных блоках, объявите состояния 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-функции.

См. также

| | |

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

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