我想通过使用 S-Function 中的命令为每个求解器步骤设置可变步长,例如:
dT= ... % calculate the dT from the inputs of Block and the parameters of S-function
set_param(gcs,'...',num2str(dT));
但是,Matlab 没有为我们提供像“Step”这样的可分配参数,用于通过使用上面的命令“set_param()”来指定求解器步长。求解器步长的 callable 和 assignalbe 参数只有“MaxStep”和“MinStep”。因此,以下两个命令在 Simulink 中是可接受和可执行的:
set_param(gcs,'MaxStep',num2str(dT1));
set_param(gcs,'MinStep',num2str(dT2));
因此,我试图将相同的值分配给 dT1 和 dT2 以获得特定的步长,但立即出现错误报告,指示最大值。步和分钟。步骤不能相同。
所以我的问题是如何在 S-Function 的脚本中为求解器指定步长?