Чтобы помочь вам идентифицировать и устранить проблемы с моделью S-функции и исходным кодом, S-функции проверяют с помощью API анализатора S-функции, чтобы помочь вам обнаружить потенциальные проблемы S-функции.
Проверки окружения проверяют ваше окружение на наличие API анализатора S-функций. Эта проверка включает в себя MEX проверка настройки компилятора.
MEX SetupЭта проверка указала на наличие MEX компилятор на текущей машине. Компилятор C по умолчанию включен в ваш MATLAB® монтаж. Список поддерживаемых компиляторов см. в разделе Изменение компилятора по умолчанию. Можно изменить компилятор по умолчанию, набрав mex -setup в командной строке.
Эти проверки проверяют исходный код для S-функций. Эти проверки включают в себя MEX скомпилировать проверку и Polyspace® Code Prover™ проверки.
MEX Проверка компиляцииThe MEX для проверки компиляции используются MEX компиляторы для идентификации предупреждений и ошибок компилятора в исходном коде S-функции.
Если у вас есть лицензия Polyspace, эта проверка использует Polyspace Code Prover для проведения анализа кода. Для получения дополнительной информации смотрите Верификация (Polyspace Code Prover).
MEX Проверки файловЭтот набор проверок проверяет семантику S-функции MEX-файл.
MdlOutputsModifyContinuousStatesЭта проверка указывает, что непрерывные состояния S-функции изменены в mdlOutputs способ. Непрерывные состояния могут быть изменены только на основном временном шаге и требуют ssSetSolverNeedsReset макрос для сброса решателя S-функции. Изменение состояний S-функции без сброса решателя может привести к неожиданным результатам.
MdlUpdateModifyContinuousStatesЭта проверка указывает, изменяются ли непрерывные состояния S-функции в mdlUpdate способ. Непрерывные состояния могут быть изменены только на основном временном шаге и требуют ssSetSolverNeedsReset макрос для сброса решателя S-функции. Изменение состояний S-функции без сброса решателя может привести к неожиданным результатам.
MinorStepModifyDiscreteStates Эта проверка указывает, изменяются ли дискретные состояния S-функции в ее mdlOutputs метод за мелкий шаг. Дискретные состояния S-функции могут быть изменены только на основном шаге, охраняемом sslsMajorTimeStep.
MinorStepModifyModesЭта проверка исследует, изменен ли вектор режима S-функции в mdlOutputs за мелкий шаг. Шаг Mode 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-функции.
findSfunctions | Simulink.sfunction.Analyzer | Simulink.sfunction.analyzer.BuildInfo | Simulink.sfunction.analyzer.Options