主要内容

ssSetSkipContStatesConsistencyCheck

金宝app引擎跳过连续状态一致性检查

语法

void ssSetSkipContStatesConsistencyCheck(SimStruct *S,boolean_T v)

参数

年代

SimStruct表示s功能块。

v

布尔值(boolean_T)告诉仿真软件金宝app®跳过状态一致性连续检查。

描述

使用此宏要求Simulink跳过对正确编写的金宝apps函数的连续状态一致性检查。一个正确的s函数是一个使用ssSetSolverNeedsReset宏,当它改变自己的连续状态在主要的时间步骤。

默认情况下,Simuli金宝appnk监控s函数的连续状态变化。当您不使用时,它会发出更改警告ssSetSolverNeedsReset宏。如果你使用ssSetSolverNeedsReset宏,您不需要Simulink监控s函数中的连续状态变化,因此可以加速s函数并提高仿金宝app真性能。要告诉Simul金宝appink停止监视连续的状态变化,请使用ssSetSkipContStatesConsistencyCheck宏。如果s函数:

  • 永远不会改变状态。

  • 改变状态,但使用ssSetSolverNeedsReset宏来重置求解器。

若要跳过支票,请使用ssSetSkipContStatesConsistencyCheck(年代,1)mdlInitializeSizes方法。

请注意

出于性能原因,持续状态一致性检查仅在正常模式和加速模式模拟中执行。特别地,Simulink不会对金宝app以下情况执行连续状态一致性检查:

  • S-functions内模型加速模式

  • 任何s功能,如果模型运行在快速加速器模式

语言

C, c++

例子

下面的示例使用这个宏要求Simulink引擎跳过一致性检查,因为S-function已经在它的金宝appmdlOutputs方法。

static void mdlinitializesize (SimStruct *S){:: <剪切>:ssSetSkipContStatesConsistencyCheck(SimStruct S,1);:: <剪>:静态孔隙mdlOutputs (SimStruct *年代,int_T tid)} / * mdlInitializeSizes结束* /静态孔隙mdlOutputs (SimStruct *年代,int_T tid){/ *改变州主要时间步只有* / (ssIsMajorTimeStep (S) & & YourConditionsForStateChange){双* x = ssGetContStates(年代);/*重置状态*/ for (i=0;我< nContStates;I ++) {x[I] = 0.0;} /*要求Simulin金宝appk引擎重置求解器。* / ssSetSolverNeedsReset(年代);} }
介绍了R2016a