如何在同一模型中用不同求解器?
技术分享
发布于 2025-08-06 16:58:41
查看 9过去300天
问题描述
部分用户咨询是否可以在同一模型中设置不同求解器。该需求是可以进行支持的,基于目前的Sysplorer机制,采用Sysplorer物理建模与Sysblock框图式建模混合仿真的形式即可满足该用户需求。
解决方案
目前解决该问题的方法为采用混合仿真处理。处理步骤如下:
1.针对需要不同求解器的模型分别进行建模;
如下图所示,可以新建物理建模相关的Sysplorer模型,该模型模式下可以选择一种求解算法。

如下图所示,同时可以在框图建模中新建Sysblock模型,该模式下可以选择另一种求解算法。

完成上述两种搭建即可获得Sysplorer、Sysblock模型各一个。
2.分别在Sysplorer模型与Sysblock模型中设置求解算法;
在软件导航栏中“主页”中可以选择“仿真设置”。
在仿真设置中可以设置模型的仿真区间———模型仿真开始时间、终止时间;
同时可以设置输出区间————模型步长、仿真步数;

在积分算法中可以设置算法类型————定步长、变步长、离散求解、自定义;
每种不同的算法类型又分别可选多种不同的积分算法;



同理,在Sysblock模型中也可以对模型进行相同的处理,设置不同的求解算法。

目前框图式建模的算法类中支持定步长算法、变步长算法;针对这两种类型中又可以设置不同的算法;
3.调整模型接口,闭环模型进行编译仿真。
Sysplorer模型与Sysblock模型分别设置好不同的算法后,即可进行闭环仿真,

如上图所示,将Sysblock模型拖入Sysplorer窗口界面中,将互相之间的端口做好闭环即为闭环的混合仿真模型,该模型即可实现同一模型中采用不同算法执行仿真的需求。
混合仿真常见问题
- 端口类型不一致导致的报错
Sysplorer模型与Sysblock模型接口处的端口类型不一致会导致报错。 - 端口维度不一致导致的报错
Sysplorer模型与Sysblock模型接口处的端口类型不一致会导致报错,Sysplorer端口为数组时,连线时有特殊设置,具体可参考如何解决“下标访问越界”报错。 - 模型步长设置问题导致的报错
所属专栏:Sysblock基础平台
产品信息:Sysblock 嵌入式代码生成工具