主要内容

处理s -功能检查

为了帮助您识别和排除s函数模型和源代码的问题,s函数检查使用s函数分析器api来帮助您检测潜在的s函数问题。

环境检查

环境检查检查s函数分析器api的环境。此支票包括墨西哥人编译器设置检查。

墨西哥人设置检查

该检查表明存在墨西哥人当前机器中的编译器。MATLAB中包含一个默认的C编译器®安装。要查看受支持的编译器列万博1manbetx表,请参见更改默认编译器.您可以通过键入更改默认编译器墨西哥人设置在命令行。

源代码检查

这些检查检查s -函数的源代码。这些检查包括墨西哥人编译检查和Polyspace®代码验证™检查。

墨西哥人编译检查

墨西哥人编译检查使用墨西哥人编译器来识别编译器警告和s函数源代码中的错误。

Polyspace代码验证检查

如果您有Polyspace许可证,则使用此检查多空间代码证明进行代码分析。看到源代码验证与Polyspace代码证明(Polyspace Code Prover)获取更多信息。

功能墨西哥人文件检查

这组检查检查S-function的语义墨西哥人- file。

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万博1manbetx®引擎将s函数移动到有条件执行的模式,例如有条件执行的子系统。当您有类似状态或多个采样次数时,请删除此选项。

TestHarnessCreationError

此错误代码表示s函数分析器在为Simulink库中的输入s函数创建测试套件时遇到错误。万博1manbetx可能的原因是失踪.mex文件或掩码参数定义。

ModelCompileError

s函数分析器在编译输入模型时遇到错误。您可以尝试重新编译模型并检查诊断查看器以获得更多信息。

输入参数鲁棒性检验

该检查通过指定与某些随机值不兼容的参数数量和类型来检查s函数的鲁棒性。这个检查可能会导致MATLAB崩溃。要修复此问题,请在重新启动s -函数检查并检查s -函数参数数据类型和值时遵循复制步骤。

另请参阅

|||

相关的话题

相关的话题