Чтобы помочь вам идентифицировать и диагностировать проблемы со своей 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, эта проверка использует Polyspace Code Prover, чтобы провести анализ кода. Смотрите Верификацию Исходного кода с 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 на мелком шаге. Шаг режима 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 файл или определения параметра маски.
ModelCompileErrorS-функция анализатор сталкивается с ошибкой при компиляции входной модели. Можно попытаться перекомпилировать модель и проверять диагностическое средство просмотра для получения дополнительной информации.
Эта проверка смотрит робастность S-функций путем определения несовместимого номера и типа параметров с определенными случайными значениями. Эта проверка могла заставить MATLAB отказывать. Чтобы устранить эту проблему, следуйте за этапами воспроизведения, когда вы будете повторно запускать проверки S-функции и проверять типы данных S-параметра-функции и значения.
Simulink.sfunction.Analyzer | Simulink.sfunction.analyzer.BuildInfo | Simulink.sfunction.analyzer.Options | findSfunctions