目录
工程师眼中使用 Simpack 进行实时仿真的首次体验
Simpack 实时多体动力学
Simpack 代码导出 | 早期应用
Simpack Realtime | 我们用于实时多体仿真的现代方法
那么,是什么让 Simpack Realtime 具有突破性?
长期以来,在机械系统建模领域,尤其是在硬件在环(HIL)、驾驶员在环(DIL)以及虚拟原型设计等应用中,多体系统在实时环境中的仿真一直是一个目标。而 Simpack 通过引入多项关键技术,在使复杂系统的实时多体动力学成为可行方面发挥了关键作用。
工程师眼中使用 Simpack 进行实时仿真的首次体验
我至今仍清晰地记得第一次体验我们实时仿真技术的情景。那大约是在 2012 年,我正在处理一个客户项目,该项目涉及一个车辆模型,为了满足特定要求,该模型采用了类似 Pacejka 的自定义轮胎实现。在花了数周时间优化每个子系统并将轮胎方程编码为 Simpack 用户例程后,我终于对结果感到满意。
由于客户使用的是驾驶模拟器,而我们刚刚发布了新一代实时技术,所以我们同意在一个基本的桌面模拟器上演示该车辆模型。我们搭建了一个简单的测试装置:一个带有扭矩反馈的游戏风格方向盘和踏板,运行在一台转换为实时 Linux 系统的 Windows 笔记本电脑上。
然后关键时刻到来了。我加载了模型,坐下(坐在办公椅上)并转动方向盘。在无数个小时调整方程和分析二维图表之后,感受到汽车对我的输入做出反应,这改变了一切。当我加速、刹车和转向时,每一个反应都反映了我所构建的物理特性。我的工作变得有了生命力——它不再仅仅是数字,而是在实时与我进行物理交互。我正在体验我的模型。这次经历给我留下了深刻的印象,我本能地拍了一张照片 —— 不是拍装置,而是拍它所代表的东西:我第一次实时“驾驶”自己的多体模型。就是这个🙂:
说 Simpack “发明” 了实时多体动力学可能言过其实,但事实上,该软件是首个在工业层面实现这项技术的,并且 Simpack 通过做出关键创新一直引领着该领域。
在 4 月发布的一篇 SIMULIA 博客文章中,我讨论了 Simpack 技术的独特之处,特别是它如何建立运动方程。我所描述的一个关键优势是 Simpack 的相对坐标方法,这种方法自然会形成一个数值高效且稳定的模型,使其天生就非常适合实时仿真应用。
这一优势源于 Simpack 倾向于生成常微分方程(ODE),而不是通常由绝对坐标算法生成的更复杂的微分代数方程(DAE)。
实际上,DAE 产生于经典的“绝对坐标” 算法,问题在于求解这些方程会增加计算复杂度。这些 DAE 会导致更高的求解器消耗和更低的数值鲁棒性,这两者对于需要确定性和快速执行的实时应用来说都是问题。
相反,Simpack 的相对坐标算法使用树状拓扑来定义物体相对于其父物体的运动。结果是,运动方程主要是 ODE,在数值求解时更简单,并且对于实时仿真中常用的显式或半隐式积分方法,表现出更好的性能特征。
Simpack 在需要时也支持创建基于 DAE 的模型,但它独特的算法也允许生成纯 ODE 模型,这是许多其他多体仿真技术无法实现的。
基于 ODE 的系统在实时应用中的优势包括:
每个积分步的计算负载更低
无需约束稳定
改进的数值条件
更简单的求解器结构,更适合硬件在环(HiL)环境中常用的固定步长求解器
由于 Simpack 的求解器技术非常适合实时应用,因此在驾驶模拟器上运行 Simpack 一直是可能的。我们从 2001 年开始推广这项技术。当时,我们的技术被命名为“代码导出”,如这张来自我们旧网站的图片所示。
“代码导出” 是我们第一代实时技术,基于代码导出生成。通过这种方法,多体模型经过符号预处理并编译成特定目标的 C 代码,可以部署在专用的实时平台上。这种方法确保了高执行速度和确定性,但需要单独的代码生成工作流程,这增加了集成复杂度并降低了灵活性。
Simpack 代码导出在客户现场使用了大约 10 年,这让我们对实时应用相关的许多挑战有了深入的了解。一个关键的认识是,“仅仅” 生成实时代码不足以满足客户的需求。
大约在 2013 年推出的第二代技术标志着一个重大转变。与需要专有硬件和操作系统的代码导出方法不同,Simpack Realtime 旨在标准的支持实时的 Linux 平台上运行标准的 Simpack 程序。这得益于新的 Simpack Realtime 求解器技术,其中包括“智能并行化”,并结合了实时 Linux 内核、内存锁定和确定性调度方面的进步。
在实时环境中运行完整的“现成” 多体求解器的想法在行业中是一个全新的概念。
它快速、灵活,并且为现代工程工作流程而构建。它使多体仿真模型能够直接在 Simpack 环境中实时运行。无需漫长的代码生成或繁琐的编译步骤——只需加载模型并点击运行。我们称之为直接实时。
我们的直接实时方法一直为我们的用户带来显著价值。通过无限制地利用 Simpack 求解器的全部功能,工程师可以在他们的实时模拟器上运行他们的模型,而不会在模型保真度或性能上做出妥协。
这种方法的另一个关键优势是不再需要模型简化和求解器调优。
一个体现这种灵活性的有力例子是,Simpack Realtime 可以通过使用 Simpack FMU 导入功能无缝导入功能模型单元(FMU),与软件在环(SIL)相结合。这意味着你可以集成第三方组件,如动力转向或电池管理模块,并且仍然实现可靠的实时性能(实际上,你必须确保第三方组件是实时兼容的)。
除此之外,你可以在运行之间轻松修改 Simpack 模型参数—— 对于某些参数,甚至可以在实时仿真运行时动态调整它们。这实现了前所未有的快速迭代和交互式测试。
正如我们的一位客户所说:“我们真的很喜欢你们的工作流程,因为它是透明的。”
例如,在汽车行业,工程师们在实时仿真中一直依赖查找表来近似悬架运动学——这种方法虽然有效,但会引入一些中间数据处理步骤。有了 Simpack Realtime,这些近似就过时了。你现在可以实时运行完整详细的悬架模型,包括动态衬套元件,无需预先计算数据,从而实现更准确、基于物理的仿真——直接且不打折扣。多年来,我们还确保第三方轮胎模型集成与所有主要轮胎模型的实时执行完全兼容。
已经证明,Simpack Realtime 可以与包含柔性体的模型无缝协作。这是我们的一位客户发表的一篇论文:Venrooij et al.等人的《实时多体仿真:宝马如何用虚拟技术革新驾驶动力学开发》。
在我的经验中,柔性体集成显著提升了驾驶模拟器的驾驶体验。
值得注意的是,除了汽车行业,Simpack Realtime 还广泛应用于各种不同的行业,包括铁路、风电、传动系统、建筑甚至消费品。例如,你可以观看这个讨论用于风电整机的 Simpack Realtime 的网络研讨会。
如今,Simpack Realtime 使你能够在多种硬件配置上部署相同的模型,无缝覆盖从早期在桌面模拟器或实时硬件上的独立运行,一直到在高端运动平台上的全面部署的实时开发过程的每个阶段。如果标准平台不够,客户甚至可以编写自己的自定义通信层。
而且不止于此,借助集成的实时动画功能,你可以在仿真运行时可视化它们。
我们希望这篇文章已经阐明了为什么 Simpack 已成为高性能实时仿真领域值得信赖的领导者,使工程师能够突破可能的极限。但这只是故事的一部分,创新是我们所做一切的核心,我们对未来感到兴奋。
本文作者:Tom Burton,SIMULIA Industry Process Senior Consultant