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