设置变量步长求解器在特定s函数连续状态下使用的绝对容差。
void ssSetStateAbsTol(SimStruct *S, const int_T idx, const Real_T val)
年代
SimStruct表示S-Function块。
idx
一种表示s函数连续状态的指数。此索引的范围为0
来n - 1
在哪里n为s函数中连续状态的个数。
瓦尔
绝对公差的值。该值必须为正实标量。
用于设置用于s函数连续状态的绝对容差,用于当前仿真的变步长求解器。
请注意
固定步长求解器不分配绝对公差。因此,在验证模拟使用的是变量步长求解器之前,永远不要调用这个宏。您可以使用ssIsVariableStepSolver
确定模型是否使用变步长求解器。
C, c++
/* * mdlStart(SimStruct *S) {const real_T absTol0 = (mxGetPr(ssGetSFcnParam(S,0)))[0];const real_T absTol1 = (mxGetPr(ssGetSFcnParam(S,1)))) [0];/*绝对公差不被固定步长求解器使用*因此每个调用绝对公差API必须被保护*/ if (ssIsVariableStepSolver(S)) {ssSetStateAbsTol(S, 0, absTol0);ssSetStateAbsTol(年代,1,absTol1);}}
看到这个功能sfun_atol.c
中使用的sfcndemo_sfun_atol
以获取使用此函数的完整示例。