1、在仿真中没有连续系统时,也会有小步长的更新。 2、对于有些模块例如通信模块,如果跟随连续系统的求解器进行小步长更新,会影响与其他系统之间的交互。 所以,目前希望只让一些特定的模块(根据simulink)有跟随小步长的选项来增加准确性,其他的不跟随,且在没有连续系统的情况下不应有小步长更新
step()
中,执行完output
和update
后,就已经完成了该步长的更新,不需要调用求解器。因此在执行solve
时要先判断该模型是否有连续系统,没有的话solve
就立即结束,如果有的话,再进行求解器的求解。no_continuous_system
,在solve
中对其进行判断,如果为True则跳过求解器求解环节。update_on_minor_step
,默认值为True
,就是在小周期进行更新,False
时小周期不会更新。它只会影响离散系统,连续系统会忽略这个值。对于一些特殊模块,如果有在小周期不更新的需求,需要修改这个参数。
step
中做了对应的修改,效果如下,默认是勾选状态。
step.set_parameter('update_on_minor_step',False)
,即可手动关闭。update_on_minor_step
状态取消,结果如下所示。
可以看到step只在大步长进行输出。self.parameters['update_on_minor_step']=False
info.json
需要在参数一栏添加以下内容:"update_on_minor_step": {
"value": true,
"data_type": "bool",
"dimensions": [],
"label": "update when meet minor steps",
"description": "update when meet minor steps"
}
本文章使用limfx的vscode插件快速发布