王力霆 唐 兆 黎 荣 辜 铮 胡玉炜 李岳洪 张继业
1.西南交通大学牵引动力国家重点实验室,成都, 6100312.西南交通大学机械工程学院,成都, 610031
在高速列车动力学研究中,数值仿真发挥着关键作用,研究如何对列车动力学仿真方案进行有效分析对中国铁路稳健发展具有重要意义[1-2]。随着网络信息技术的发展,轨道交通装备研发与云计算、人工智能等新兴技术融合,逐渐走向数字化、智能化的发展道路[3]。然而,车辆运行速度、载重量、路网规模等指标的逐年提高导致了列车产品设计过程中需考虑的要素日益复杂,部门协同更频繁,多学科知识交叉更深入,计算规模扩大等现象。这些现象对传统列车动力学仿真分析流程提出了诸多挑战,主要表现为可视化手段单一且动态交互低效、异地协作困难、客户端硬件设备昂贵、人为因素多、分析时效性差等[4-5]。为了更好地应对上述困难,列车动力学仿真分析环境亟需向着集成化、平台化的方向演进。
云仿真概念是在2009年由李伯虎等[6]提出,并被认为是仿真工程领域特别值得关注的方向之一[7],在技术上深度融合了网络通信、虚拟化、生命周期管理、仿真分析、云计算等技术,通过仿真资源虚拟化以及服务云池的构建为用户提供可靠灵活的云端仿真服务。
近年来,国内外研究人员已逐渐将云仿真技术运用于复杂产品研发,如何越等[8]在既有核电仿真系统基础上构建云仿真平台,实现了高效、敏捷的仿真服务以及系统的模块化部署;张彬桥[9]将水电站复杂大系统仿真与云计算、消息队列、鲶鱼粒子群算法结合实现了“互联网+水电仿真”的服务模式并满足了大规模仿真的需求;TAYLOR等[10]针对计算流体动力学(CFD)的远程高性能计算需求构建了PaaS平台,实现了工作流高效管理与跨平台资源调度。云端仿真技术允许用户通过互联网远程访问高性能计算机和数据存储资源进行各种类型的仿真模拟,从而在无需购买昂贵硬件设备的情况下进行大规模和高性能仿真计算,还可以实现多用户共享和协作[11]。
在列车动力学仿真可视化分析领域,仿真分析相关研究工作还是以单机软件系统为主导,如SIMPACK[12]、UM[13]、Vampire[14]、TTISIM[15]等软件,云仿真相关应用案例较少。因此,本文从可视化与模块集成化角度出发,结合列车动力学仿真、云渲染、云计算等技术构建了云仿真驱动的列车动力学协同可视化分析框架,并对可视化分析场景搭建、多用户协同的远程可视化交互、求解器集成等关键技术进行研究,然后依据该框架搭建软件系统,最后对系统进行功能、精度、性能方面的验证。
列车动力学协同可视化分析框架及应用系统在云仿真理论及方法指导下,在网络通信及虚拟化技术支持下,以列车动力学性能分析需求作为牵引,为多角色构成的研究人员群体提供一体化、开放协同的可视化仿真分析环境。框架遵循分层级、模块化思想进行设计,从下到上分为四层(基础设施层、服务支撑层、云仿真服务层与应用交互层),如图1所示。
图1 云仿真驱动的列车动力学协同可视化分析框架层级Fig.1 Hierarchy of cloud simulation-driven train dynamics collaborative visualization analysis framework
基础设施层为云仿真平台提供运行环境以及基础仿真能力,主要包括经虚拟化技术封装的物理资源(存储资源、计算资源等),形成多元的虚拟资源池,屏蔽异地、异质性因素,向上具备虚拟资源管理接口,具有提供资源申请、资源释放等能力。
服务支撑层由基础设施层驱动,在内部数据平面的支持下通过多个模块对上层的列车动力学仿真分析业务起支撑作用。该层包含的三种支撑模块分别对应仿真建模、云端渲染、仿真求解三个方面。其中仿真建模支撑模块为模型参数可视化配置功能提供支持,如模型预处理、仿真元数据管理等;云端渲染支撑模块则是为多用户协同可视化分析提供基础能力,包括复杂信令逻辑处理、网络穿透、媒体数据中转等;仿真求解支撑模块从求解器集成角度出发,通过求解器通信组件打通参数配置、结果采集与上传、异步并发求解调用等流程,并提供异步消息队列、负载均衡等功能为任务执行增效。
云仿真服务层在服务支撑层的通信、集成、增效功能基础上构建覆盖仿真全生命周期的核心服务,包括方案管理、方案配置、资源组合、任务监控与管理、可视化分析与验证等完整流程,为多角色研究人员提供高效能仿真分析服务。
应用交互层则提供列车动力学仿真建模平台与列车动力学实时可视化分析平台,包含项目管理、任务监控、仿真建模、可视化分析等服务界面与功能接口,支持多组多角色用户通过多终端、跨平台的方式进行列车动力学协同可视化分析。
为了更好地将列车动力学仿真数据三维映射服务化,设计列车动力学仿真分析场景搭建框架如图2所示,包含如下4个部分:①基础场景模型是动力学研究主体的“承载体”,承担着轨道参数等仿真方案参数的三维实体映射任务,由松耦合的异构模型生成器以及基础模型资源构成;②研究主体模型是研究人员在仿真分析中的主要观测体,包括车辆参数等仿真方案参数、三维仿真模型(轮对、构架、车厢等)及其动态信息,其中动态信息由时间序列主导,与其他关键性能指标相互映射,并预留控制接口实现细粒度场景回溯;③分析方法集是研究人员与研究主体间的“桥梁”,联通人机交互流程,具有多维度、高自由度、直观等特点;④驱动数据是框架运转的“发动器”,承担着驱动可视化场景构建、研究主体模型引入、仿真分析流程运转等任务,分为仿真结果数据与仿真参数数据。
图2 列车动力学仿真分析场景搭建框架Fig.2 Framework for train dynamics simulation analysis scene building
在基础场景模型特别是铁路线路构建过程中,以“点线面体”顺序按层次建模,提供参数化建模方案与关键建模算法并辅以网络通信技术构建在线基础场景建模服务。算法模块获取曲线长度、曲线半径、坡道长度、坡度角等参数生成特征点,并以三阶贝塞尔插值得到线路曲线,再通过扫掠与离散单元生成获得初步模型,最后进行线路超高的映射以及轨道连接处不连贯问题的修正。
在研究主体模型的驱动方面,为平衡映射完成度与计算精度,对列车自由度进行简化。保留了车体、转向架、车钩、轮对等部件自由度以模拟浮沉运动、摇头运动以及部件的旋转或偏移情况,最终每节车厢包含24个自由度,可以较准确地对仿真结果进行三维映射。
另外,为减少插值算法对线路模型精确度的影响,轨道的底层设计为多段短轨道拼接而成的长轨道。该情况下,简单使用车辆定距计算转向架及轮对的位置,会出现转向架与车体不处于一条轨道上的时刻,从而造成两者在沿线路方向上分离的现象。因此,在驱动研究主体模型的过程中,需对列车模型各部件的位姿进行状态分类与修正。
输入:
Tw=Ti∥初始化车厢轨道为Ti
While(列车开始运行)
Tw=Ti∥更新车体轨道
Tb=Ti-1∥更新后转向架轨道
Else
Tb=Tw∥更新后转向架轨道
End if
Tw=Ti
Tf=Ti+1
Else
Tf=Tw
End while
图3为多节编组高速列车在控制脚本作用下的运行模拟示意图,其中图3a、图3b、图3c分别为直线、曲线、隧道工况下的运行场景。
(a)直线工况
分析方法集包括二维数据展示方法集、三维数据映射方法集及细粒度场景回溯方法。在传统后处理模块中,通常以多层级列表的形式对各项指标进行索引,过多的数据从属关系造成了用户较重的认知负担,因此,本文构建了二维数据展示方法集,为轮对、车厢、转向架、车钩、减振器等列车部件级模型绑定相应动力学性能指标面板,由点击事件触发弹窗,实现了轮轴横向力、轮对横移、轮轨接触力、车体加速度、轮重减载率、脱轨系数等指标的灵活、直观展示,从而将可视化场景与仿真数据实时联系起来,使得用户能够更容易地挖掘列车动力学响应规律。
三维数据映射方法集包含云仿真结果驱动的轮对位移、车体点头角、车钩位移、车钩垂向摆角等映射动画,同时采用自适应的三向箭头模型对轮轨接触力、车体加速度等有向指标进行表征。自适应指可以自动通过控制算法保证不同的数值区间与波动幅度都能够合理地映射到三维箭头上,保证三维箭头不超出画面且能够反映微小的数值波动。
细粒度场景回溯是针对时间维度的分析方法。列车动力学性能指标在时间属性上具有连续性,无跃迁现象,因此以时间序列作为主导设计细粒度场景回溯功能,建立虚拟三维空间中时间与动力学指标结果映射关系,可以满足跨时空评估列车运行情况的需求。时序数据通常可描述为
Data.T={(t1,ST1,SA1,RQ1),(t2,ST2,SA2,RQ2),…,(tn,STn,SAn,RQn)}
(1)
式中,t代表数据对象的时间属性;ST代表稳定性指标结果数据;SA代表安全性指标结果数据;RQ代表平稳性指标结果数据。
研究人员可通过拖拽进度条触发事件回调从而操作Data.T控制接口,对t进行复杂查询,再通过映射算法实现细粒度的场景回溯功能,从而在时间尺度上对动力学性能进行三维可视化分析。其中时间粒度的粗细通过方案中的采样频率确定。某次场景回溯案例如图4所示,其中图4a、图4b、图4c分别代表运行时间在2.52 s、9.15 s、12.42 s下的驾驶室视景。
(a)t=2.52 s (b)t=9.15 s (c)t=12.42 s图4 场景回溯案例Fig.4 The case of scene retraction
云渲染将“云应用”与渲染结合,实现了在线三维可视化,广泛适用于在线视频游戏领域[16]。在传统列车运行可视化中,由于场景复杂度高、三维模型精细、交互频繁等原因,系统对客户端硬件要求苛刻,因此借助云渲染思路,针对跨平台、“瘦客户端”等需求,将渲染资源中心化并按需提供,避免了研究人员在动力学分析过程中受到时空、终端类型、硬件水平等限制。WebRTC(web real-time communication)是一项开源实时通信技术,可基于浏览器建立对等实时通信,具有低延迟、高质量、跨平台等特点[17],因此框架选用WebRTC作为云渲染支撑技术。
为建立灵活分组、多角色混合、高效实时、可交互的列车动力学分析在线可视化服务,提出远程可视化交互框架如图5所示,分为以下4个部分:
图5 远程可视化交互框架Fig.5 Framework for remote visual interaction
(1)混合角色驱动的逻辑组接入。一次仿真前后处理流程可能需要多种角色参与,分别在不同任务流程发挥相应关键作用。角色职责上分为设计、分析、建模、管理四类,组群混合时可灵活形成多元能力分布的逻辑组,在资源组合模块中根据能力分布按需分配仿真资源,提高集群资源利用率。例如可视化分析过程中,为分析人员分配更高带宽以满足实时交互需求,而其他人员则分配较少的带宽,只传输媒体信息。
(2)信令逻辑处理。作为远程交互可视化的枢纽,向下对Web接入请求进行认证、检验、分配等处理,向上为各Web页面配对渲染源实例。消息转发模块负责WebRTC对等连接建立之前的媒体协商、Candidate收集等流程;逻辑组管理模块则为组业务提供支持,包括组成员管理、组异常分析与处理、交互权转移等。
(3)渲染源数据准备。渲染源在后台逻辑、渲染池管理中间件的加持下实现池化,按需取用,满足不同类型的可视化分析需求。基于面向对象技术在WebRTC原始接口上建立CamSender、AudioSender类,对Unity3D场景中的音视频数据进行采集、加工、编码等处理完成数据准备。另外,建立InputReceiver类并通过基于SCTP(stream control transmission protocol)的RTCDataChannel接收数据,依据表1中交互协议解析数据,再按需构建远程虚拟设备集合,最终实现实时交互数据在渲染实例中的精确映射。
表1 交互协议
(4)对等连接建立与数据传输。基于WebRTC 会话层实现双端的媒体协商、Candidate收集任务后,建立对等连接,通过MediaStream、RTCDataChannel模块实现流传输。由于某些情况下对称型NAT(symmetric NAT)策略的存在,基于公有云建立STUN/TURN(session traversal utilities for NAT/traversal using relays around NAT) Server并搭建中转链路,最终为研究人员提供稳定、灵敏、实时的远程交互可视化功能。
由于研究人员需通过可视化场景实时观测指标结果并即时定位仿真方案缺陷,因此可视化分析功能在时效性上需达到秒级响应,即指标结果分片映射至可视化系统的时间跨度应处于秒级。然而列车动力学仿真求解器因缺失模块间通信功能而无法独立进行任务状态感知、结果数据采集、驱动数据配置等工作,因此亟需设计一种求解器集成模型以在实现求解器模块通信的基础上充分降低数据在系统各模块间的流通耗时。
仿真任务到达计算中心时刻Tsubmit至第一份指标结果数据分片被可视化映射的时刻Tfirst形成的区段Psubmit→first构成可表达为
Psubmit→first=Pconfig→Psolve→Pcollect→Ptransfer→Pmapping
(2)
式中,Pconfig为驱动数据配置流程;Psolve为仿真求解流程;Pcollect为数据采集流程;Ptransfer为数据传输流程;Pmapping为可视化映射流程;→为流程衔接符。
针对求解器Pconfig与Ptransfer的缺失,本文基于Golang语言开发了求解服务中间件。Golang通过原生特性Goroutine及Channel实现基于通信顺序过程(communicating sequential process,CSP)模型的松耦合、安全的并发编程,符合多用户并发模型特点[18]。中间件实现过程中针对Pconfig中并发驱动数据写入时锁粒度大的缺点,借鉴Linux RCU(read copy, update)思想,通过复制并更新驱动数据原件后再进行原子覆盖的方式降低锁粒度,在驱动数据配置并发量为20的情况下使得并发参数配置效率提高了42.1%。针对Pcollect采集不及时的问题,基于生产者-消费者模型建立接口Collecter、Consumer分别完成结果监听与上传,并通过具有动态缓冲区的数据通道进行高性能线程间通信,实现指标结果封装、映射与交换流程异步,避免串行带来的时间损耗。完整集成模型示意如图6所示。
图6 求解器集成模型Fig.6 Integrated model of solver
列车动力学仿真任务为CPU密集型任务,访问量突增对动力学分析时效性产生的消极影响会很严重。针对此问题,采用了基于Docker的虚拟化技术将中间件与算法程序封装为具备一定隔离性的容器,并通过Kubernetes进行统一编排和管理。部署好集群后,Kubernetes中默认调度器会将新创建的Pod通过Predicates以及Priorities两个调度算法自动调度到最合适的节点上,初步实现集群的负载均衡及弹性扩展。
依据上述研究成果,分布式系统基于B/S架构设计,后台基础服务基于ABP Framework开发,并以PostgreSQL作为结构化数据库系统,Redis作为缓存系统,列车动力学分析可视化场景由Unity3D驱动,云渲染模块基于Node.js、Render Streaming、Unity WebRTC搭建,物理架构如图7所示,具体硬件配置如表2所示。
表2 硬件配置
图7 系统物理架构Fig.7 Physical architecture of the system
图8为一次协同分析案例的运行过程示意图,逻辑组由四个不同角色(设计、建模、分析、管理)的用户组成,分别主导总体方案设计、仿真建模、可视化分析、逻辑组管理四种工作,多组之间可以共享可视化内容。然而,并非每项工作都只由一个用户完成,比如在可视化分析过程中,所有用户皆可获取云渲染画面,但是只有分析人员具有交互权,其他角色的用户只做辅助分析,若需进行交互需先向管理人员申请交互权。
图8 系统运行案例Fig.8 Cases of system operation
云仿真系统与商业动力学软件SIMPACK按以下工况进行计算:列车时速为80 km/h,曲线半径为2000 m,曲线长度为340 m,缓和曲线长度为25 m,超高0.1 m。选取脱轨系数、轮轴横向力、轮重减载率三个性能指标的最大值进行对比。由表3可知,两个软件系统的求解结果具有良好的一致性。
表3 指标对比结果
在另一工况(曲线半径为1000 m,缓和曲线长度为45 m,超高为0.075 m)下以轮轨横向力、轮轨垂向力两个性能指标作为对象进行对比验证,结果如图9所示。两者在量值以及变化趋势上总体吻合,但存在一定差异,差异来自于两者动力学建模过程中轮轨接触、线路平纵断面、轨道结构等细节。
图9 轮轨力指标对比结果Fig.9 Results of wheel-track force index comparison
总的来说,云仿真系统在关键动力学性能指标结果上能与SIMPACK取得较好的一致性,在平稳性、安全性分析中能够部分替代商业动力学软件。
在系统实现前期,可视化模块采用Unity WebGL技术进行发布,导致运行时大量渲染工作在客户端进行。为体现云渲染技术在列车动力学实时可视化分析应用中的优势,将基于WebRTC的云渲染技术与项目前期使用的Unity WebGL技术进行性能对比。对比采用的三维场景信息如下:轨道全长1340 m,包含扣件5360个(间隔0.5 m),支柱54个(间隔50 m),场景总体三角面片数为1143万。具体指标为平均加载时间、平均交互时间、平均画面帧率,分别代表了时效性性能、交互灵敏性与画面流畅度。根据图10结果,云渲染方案在交互灵敏性与画面流畅度方面略低,但仍然满足高质量可视化交互需求。在时效性方面,由于云渲染方案中用户无需加载大量静态资源,平均加载时间为7.2 s,远远低于WebGL方案的平均加载时间356.8 s,且不会随场景复杂度变化,满足后续可视化场景扩展需求。
图10 可视化性能分析结果Fig.10 Results of the visualization performance analysis
为了对比本系统求解器与SIMPACK在单节点上的并发求解能力,本文以相同计算节点上的最大并发量为指标,用两个软件分别执行相同参数的单节列车动力学仿真任务。当CPU利用率达到100%时认为节点已达性能极限,记录达到性能极限时的运行软件数量。经过多组试验,SIMPACK平均最大并发量为7.31,本系统求解器平均最大并发量为11.23,比SIMPACK平均最大并发量约高出53.7%。造成该结果的主要原因是本系统中求解器与前后处理模块的解耦,软件资源粒度更小,而SIMPACK架构耦合性更强。
(1)本文针对传统列车动力学仿真流程中多用户协同不便、硬件要求苛刻、自动化水平不足等问题,将列车动力学仿真分析技术与云计算、云渲染、求解器集成技术相结合,提出了一种云仿真驱动的列车动力学协同可视化分析框架。
(2)本文细化了列车动力学可视化分析场景搭建流程,并设计了一种相应框架。通过基础场景构建、研究主体模型驱动、分析方法集构建三个步骤实现对列车动力学分析可视化场景的搭建自动化与服务化。
(3)本文在云渲染架构的基础上进一步基于WebRTC提出了一种多组多角色协同的远程可视化交互框架,提高了仿真的协作性和分析效率,同时减少了传统渲染架构中大量的客户端渲染工作。
(4)本文提出了一种面向列车动力学实时分析的求解器集成模型,将原本紧密关联的模块解耦,结合Linux RCU思路、容器编排等技术实现了模块间高效通信以及弹性扩容。
(5)本文在实际项目中对框架及系统进行了精度与系统性能的验证,结果表明:该框架及系统可满足研究团队在列车动力学仿真分析中的需求,同时对其他复杂系统的云端可视化分析模块构建具有借鉴意义。未来的工作中将构建云渲染服务质量评估模型,从多维度进行远程实时可视化交互优化,提高列车动力学仿真分析效率。