基于模板技术的汽车多体动力学建模研究
2012-07-27王波兴王一波黄运保
王波兴,王一波,黄运保
(华中科技大学 国家CAD支撑软件工程技术研究中心,湖北 武汉430074)
0 引 言
多体系统建模技术是多体系统仿真分析平台的关键技术之一,建模方法直接影响仿真分析结果[1]。随着数学、力学和计算技术的发展,汽车动力学研究由原来的集中参数模型拓展到多体参数模型[2]。集中参数模型,如配有机械式变速器的传动系动力学模型[3],美国密西根大学建立的十七自由度整车模型等。多体参数模型,是把汽车的零部件看成刚体或柔体,用运动学约束来描述零部件间的连接,然后由相应软件工具(如 MSC.ADAMS)自动建立动力学方程进行求解[4],国内不少学者对此进行了深入的研究[5-6]。总的说来,目前的动力学仿真软件大都具有较强的仿真分析功能,但是在模型的前处理方面存在一些不足,建模效率和模型可重用性低、模型不易维护、可读性差、模板开放性低[7],如 MSC.Adams/car虽已非常成熟,但其模板文件格式是专有的,未对用户开放,模型结构不容易理解,对模板进行扩展较难。为提高车辆动力学建模的质量和效率,本文通过对已有模型的重复利用,采用对用户开放的模板技术,对汽车动力学模型进行描述、组织和管理,提供了一个逻辑上一致的车辆模型,使不同水平的工程人员可基于模板获得一个车辆动力学模型的雏形,然后进行各种设计开发活动,能减少工作量、保证建模质量。本文采用XML语言进行模板描述,XML的灵活性、可读性、可扩展性与专有文件格式的模板相比,具有很大的优势,对用户开放的模板技术使得定制、扩展模板更为方便。
1 汽车动力学建模技术
1.1 汽车仿真的动力学建模
车动力学仿真主要可分为建模,求解,后处理3个步骤。建模属于前处理阶段,通常是先建立三维几何实体模型,然后添加力学要素和约束,消除冗余约束后进行装配,得到力学模型,根据各种力学原理,分析得到不同工况下车辆受力和其它动力学特性间的关系,建立数学模型,再由求解器进行求解,最终得到模型的运动学和动力学特性分析结果,这些结果以曲线和动画的形式表现,可作为车辆设计分析的重要参考。若采用一般的交互式建模,则要求建模人员有较高的数学、力学、计算机专业等背景知识,且需要严格的测试来保证模型的正确性,降低了效率。
1.2 汽车动力学的模板化建模技术
模板概念出现已久,不仅在建筑、铸造等行业得到了广泛的应用,而且渗透到了办公自动化、软件工程、图像处理、CAD等领域[8]。模板是从一类相似事物中抽象出的共同特征,同时包含了基于这些特征的处理方法,这一类事物在模板的约束下根据模板产生,实际事物是模板在具体领域的实例。
针对当前汽车动力学仿真软件建模复杂、模型结构可读性差、模板开放程度低等缺点,本文研究了对用户开放的模板化建模技术,采用“基本模板-结构模板-模板实例化”的架构,将其应用于汽车动力学建模仿真。不同类型的汽车动力学模型虽然存在不同程度上的差异,但是在系统的基本组成上有许多共同点,模板技术把汽车动力学模型中不同汽车的共性部分抽象为模板框架,采用一种通用的表示方法来描述。采用基本模板来描述车辆模型各个基本构件的属性、特征和功能,同时用结构模板来描述系统整体的拓扑结构及各个基本模板之间的约束关系。基模板在结构模板的组织下形成一个整车模板,然后进行实例化得到整车模型实例。整个模板框架集成了前人已有的设计经验,减少了重复劳动。在实际建模过程中,设计者可以从模板库中选择某种符合自己要求的结构模板,对于个别基本模板进行替换或者修改,然后实例化,即可快速得到所需模型。
2 动力学模型的模板描述
模板具有多种应用形式,可依据使用模板的方式及目的将模板分为两大类型:比对式模板和生成式模板[9]。本文采用生成式模板,它是通过分析提炼大量的实例经验而得到的,用语义描述以及符号表示等知识表示技术进行保存。在生成新的设计对象时,只需根据需求把相关的数据应用于该模板,然后进行相应操作即可。
2.1 模板的结构
描述车辆动力学基本零部件的模板称为基本模板。对于车辆动力学系统,可将其看作一个装配体,由各个子系统装配而成,这些子系统包括车身、悬架、轮胎、转向系统、制动系统、动力总成,这些子系统可抽象成一级基本模板,对这些一级子系统可进一步划分出二级子系统,如动力总成可以划分为,发动机、扭矩转换器、变速器、分速箱、差速器等基本部件,这些基本部件可抽象为二级基本模板。对二级基本模板下的一些不可再细化的部件可抽象出三级基本模板。
如图1所示,基本模板(Template)的结构包括模板标识(ID)、对象成员(Objects)、属性(Attributes)以及规则(Rules),用扩展的巴克斯范式(extended backusnaur form,EBNF)表示为:Template::=<ID,Objects,Attributes,Rules>
图1 模板的结构
其中,ID是模板名,定义模板所描述事物的类别;Objects是一个对象集合,这些对象共同组成模板所描述的事物,是一个递归的定义,对于最基本的零部件,它退化为自身;Attributes是模板所描述事物本身所具有的特征属性,它包括属性名称(attribute name)、属性值(attribute value)、赋值方式(obtain attribute),赋值方式主要有以下3种形式:用户输入、默认值、继承上层模板;Rules是组成该模板的对象之间、不同模板之间进行操作时应遵循的规则,它包括规则的类别、名称、规则值的获取方式和规则值。
描述汽车各个子系统拓扑关系的模板成为结构模板。它是从一类整体结构相似但局部参数不同的车辆抽象出来的,由N(N>0)个结构模板或基本模板以一定的方式组合而成。它并不细化到车辆设计的具体参数,仅描述某类车辆的拓扑结构。
2.2 模板的描述语言
动力学模型的模板采用XML语言来描述。XML即可扩展标记语言(extensible markup language),是一种标记语言,是当前处理结构化文档信息的有力工具,是W3C的推荐标准。它的设计宗旨是传输数据、存储数据,使用一系列自定义的标签来描述数据。
与Adams/car的模板文件格式相比,XML描述的模板具有以下优点:作为一种可扩展性标记语言,其自描述性使其非常适合不同应用间的数据交换,而且这种交换是不以预先规定一组数据结构定义为前提,具有很强的开放性;可读性好,通过标签对设计数据进行描述,树形层次结构使信息便于理解;可扩展性好,可以添加新的XML标签来描述新扩充的模板部件信息或模板新加区段信息;可以实现模板文件结构与相对应的参数分离,分离后的参数文件仍具有一定的结构形式;可验证和可维护性好,可利用XML Schema对模板文件结构进行正确性有效性的验证,易于用户维护。
2.3 基于实例推理的模型生成
2.3.1 模板与模板实例的关系
模板本身只是一个规范和标准,只有通过实例化才能生成模板实例。模板实例在结构上同模板具有本质上的差异。模板实例描述的是车辆建模的最终设计结果,是通过对抽象模板指定参数来产生的。抽象模板描述的只是某种类型车辆的设计架构,并没有生成具体的车辆实例,因此需要对抽象模板进行具体的参数赋值,实现模板实例化,得到模板个体,最终完成车辆建模。模板和实例在层次上是一一对应的,模板分解和实例分解以及他们的对应关系如图2所示。
将各个小的子实例储存在不同的模板中,构建成大的树形层级模板实例库,在基于实例推理时能提高检索效率和提取实例时的正确性。
模板个体是一个三元组,用EBNF表示为,Template Instance::=<ID,Objects,Attributes>,其中,ID是所属模板名;Objects是构成模板所描述模型的对象集合,此时每个对象的所有特征是确定的,这是与模板中的Objects的区别。Attributes是模板实例的特征属性集合,与模板中Attributes的区别是此时的每个属性已被赋值。
2.3.2 模板专家系统
模板专家系统包括用户界面、模板库、工程数据库、图形库、知识库、模板检查模块、参数分离模块以及求解器接口模块等几个部分,其结构和基本机理如图3所示。
用户通过系统提供的人机交互界面,直观方便地定义自己的车辆模型,或者扩充修改已有的车辆模型。系统将用户的定义依照特定的规则翻译成相应格式的XML文件送到模板库中存储。使用模板时,系统借助于相应的函数,将用户选择的模板信息从模板库中提取出来,对用户修改过的模板进行合法性检查,并提示用户进行修改,验证通过后,对模板进行实例化,把建造好的模型实例进行参数分离,通过求解器接口将其传送给相应的求解器进行仿真分析计算。
2.3.3 模板实例化
利用模板生成模型实例的过程称为模板实例化,该过程需要知识库的支持。同一模板生成的不同模型实例具有相同的内部结构,不同的内部状态。车辆建模过程中需要大量的经验知识、设计规范,比如车辆结构设计知识、模板选择知识、设计参数选择知识等,知识库用来存储和管理这些知识。
模板的实例化包括两个过程,即基本模板的实例化和结构模板的实例化。基本模板的实例化是一个指定参数的过程,模板只是个框架,实例化即在知识库的支持下对相应变量指定参数。当各个零部件子系统设计完成之后,即在基本模板被实例化后,便可对结构模板进行实例化,即将这些子实例依照该模板定义的规则进行组合,提取参数赋给相应对象的属性,并将对象送给求解器接口。
针对不同模型,将建模过程分为两种情况。第一种,新建模型是现有模板库中已有模板的重新组合,或者实例库中有相似模型的实例;第二种,新建模型中存在部分模块无法与模板库中的已有模板匹配,需重新设计。对于第一种情况,新建一个实例时,设计人员可根据设计意图,在树状层级实例库中自上而下逐级搜索选择,提取相应子模板下的相似实例,然后在知识库的支持下,修改参数,从而组合产生一个新的实例。图4为一个车辆悬架实例的索引树。
图4 车辆悬架实例索引树
对于第二种情况,在实例库中没有搜索到与当前条件相符的实例,即该问题的原形对于此系统而言代表了一类全新的实例。系统将自动为其生成一个新模板,并根据该模板的级别将其存入相应级别的模板库以实现对该类问题的归类,对模板指定参数进行实例化后,将该实例存入模板实例库。
3 基于模板技术的车辆动力学建模
3.1 车辆动力学子系统模板
在工程设计过程中,对于复杂机械系统通常可以按照功能、结构分解成若干个子部件独立进行设计,以降低系统的整体设计难度[10]。本文将车辆动力学系统分为车身、悬架、轮胎、转向系统、制动系统、动力总成等一级子系统;对动力总成,分为变速箱、分动箱、发动机、扭矩转换器、差速器等二级子系统;对悬架,分为减震器、弹性元件等三级子系统。图5为某重型汽车起重机底盘动力学系统的部分分解结构。
图5 某重型汽车起重机底盘动力学系统分解图(部分)
以下示例性的给出了车辆车身基本模板的结构。
车身模板描述如下:
<车身模板>::=<车身-ID><车身-对象><车身-属性><车身-规则>
<车身-对象>::=<NULL>
<车身-属性>::=<文件信息><工程参数>
<文件信息>::=<文件类别><更新时间>
<文件类别>::=<库><类>
<工程参数>::=<空气动力学><质量><惯量><质心坐标><轮心高><轮距>
<空气动力学>::=<参考点坐标><参考长度><迎风面积><空气动力学系数>
<空气动力学系数>::=<力><力矩>
<力>::=<横向><纵向><垂向>
<力矩>::=<横向><纵向><垂向>
<车身-规则>::=<NULL>
采用XML描述的车辆车身基本模板的实例片段如下所示,鉴于文章篇幅所限,仅列出部分文件内容。
车身模板实例的XML描述如下:
车身模板实例的XML中描述的车身模板实例包括了实例文件自身的信息和车身以及空气动力学的一些参数。同样的,一个子系统结构模板包含该系统的结构、必要的一些组件以及这些组件之间的相互关系、一些基本的设计参数和对一些特性文件的引用。示例中的设计参数包括车身的质量、转动惯量、车身质心的位置、车辆的迎风面积等数据。特性文件描述组件的属性,如发动机的转速扭矩图,这些文件以文本文件保存在工程数据库中,模板描述中只提供该文件的名字,实例化时系统自动根据名字找到相应文件并读取相关数据。类似的组件还有变速箱、差速器、扭矩转换器、弹簧、阻尼器等,这些参数均保存在工程数据库中,供模板库调用。
3.2 构建汽车模板库
利用模板化的建模技术,针对不同类型的汽车,建立不同的基本车辆模板。对于同一子系统,如悬架,针对不同的悬架类型建立不同的悬架模板。各种基本模板和结构模板形成了汽车模板库。汽车模板库采用三层结构,交互界面层,库管理层,数据层。
交互界面层用来和用户进行交互,提供模板查询、参数编辑操作。库管理层用来维护模板库,提供模板库选择、模板管理、实例管理、工程属性信息设定、图形信息设定等,其中模板管理功能包括模板升级和删除以及新建自定义模板和实例,这样就可以不断扩展模板库以满足工程需要,同时使这些经验能够得到有效重用。数据层包括图形库和工程数据库,图形库主要是车辆各个部件的三维几何图形信息,以及车辆外形信息,为仿真分析的后续动画仿真提供数据,工程数据库则由车辆的各种特性文件和特征参数组成,为模板的实例化提供数据源支持。
3.3 汽车整车建模软件
本文采用基于模板技术的建模方法构建了汽车动力学仿真建模模块,并利用其进行动力学建模,取得了较好的效果。下面以某重型汽车为例来展现基于模板的建模过程。
首先,根据在车型选择界面选择相应的车辆类型,系统根据用户的选择从模板库中提取相应的车辆模板,并初始化所有参数值,用户可根据需求利用交互界面提供的参数化设计功能,修改相应参数或者替换相应子系统模板,如图6所示,最终得到所需模型。
图6 汽车悬架的参数设置界面
为验证所建车辆动力学模型的合理性及精度,将仿真结果和实验结果进行对比。本文对车辆进行闭环控制的双移线工况进行仿真,车辆以40Km/h行驶,总仿真时间为11S。这里选取3个参数结果进行比较。图7为车身侧倾角图,图8为车身侧向加速度图,图9为车身横摆角速度图。图中,虚线为仿真数据,实线为实验数据。通过曲线对比图可知,由于建模时做了一些简化和假设,仿真结果和实验结果有一定的误差,但是仿真曲线和实验曲线从趋势上是吻合的,说明了所建立的车辆动力学模型的合理性。
4 结束语
本文采用模板技术和基于实例推理相结合的方法,来实现汽车多体动力学建模。将工程技术人员已建立的动力学模型抽象为模板,使设计经验可得到有效复用;采用XML语言进行模板描述解决了目前一些专有模板开放性不够、可扩展性不强的缺点,使得建立专有并且对用户开放的模板库变得容易;在模型实例的生成上,采用了基于实例推理的技术,实现了汽车动力学模型的快速建模,提高了设计效率;最后用实例验证了所建模型的合理性。另外,该技术已应用于某重型汽车起重机数字化样机的开发中,证明了本文提出的方法是可行的。
[1]WANG Yang-yang,JIN Xiao-xiong,ZUO Shu-guang,et al.A research on vehicle dynamics simulation platform based on RW method of multi-body dynamics[J].Automotive Engineering,2008,30(1):22-25(in Chinese).[王阳阳,靳晓雄,左曙光,等.基于R-W多体理论的整车动力学仿真平台研究[J].汽车工程,2008,30(1):22-25.]
[2]HUANG Guang-qiang.The researching progress of automobile dynamics[J].Computer Aided Engineering,2009,18(3):1-2(in Chinese).[吴光强.汽车动力学研究进展[J].计算机辅助工程,2009,18(3):1-2.]
[3]Crowther A R,Zhang N.Torsional finite elements and nonlinear numerical modelling in vehicle powertrain dynamics[J].Journal of Sound and Vibration,2005,284:825-849.
[4]CHEN Li-ping,ZHANG Yun-qing,REN Wei-qun.Mechanical system dynamic analysis and ADAMS application tutorial[M].Beijing:Tsinghua University Press,2005(in Chinese).[陈立平,张云清,任卫群.等.机械系统动力学分析及ADAMS应用教程[M].北京:清华大学出版社,2005.]
[5]HUANG Zhi-gang,WANG Feng,ZHU Hui,et al.ADAMS/Car for simulation of vehicle handling and stability[J].Computer Simulation,2010,27(5):344-347(in Chinese).[黄志刚,王丰,朱慧,等.ADAMS/Car在汽车操纵稳定性仿真中的应用[J].计算机仿真,2010,27(5):344-347.]
[6]REN Kai,WANG Jun-jie,WU De-hong.The simulation and optimization of macpherson front suspension of a certain minibus based on ADAMS/CAR[J].Machinery Design & Manufacture,2010(3):36-38(in Chinese).[任凯,王军杰,吴德宏.基于ADAMS/CAR的微型客车麦弗逊前悬架仿真和优化设计[J].机械设计与制造,2010(3):36-38.]
[7] WANG Bo-xing,JIANG Ji-du,XIA Hong-jian.Study on model description language for vehicle dynamics automatic modeling[J].Application Research of Computers,2007,24(6):38-41(in Chinese).[王波兴,江继都,夏鸿建,等.面向汽车动力学自动建模的模型描述语言研究[J].计算机应用研究,2007,24(6):38-41.]
[8]LIU Xiao-ping,SHI Hui,MAO Zheng-qiang.Development and prospects of template technology[J].Journal of Hefei University of Technology(Natural Science),2005,28(9):1089-1094(in Chinese).[刘晓平,石慧,毛峥强.模板研究发展 与 展 望[J].合 肥 工 业 大 学 学 报,2005,28(9):1089-1094.]
[9]SHI Hui,LIU Xiao-ping.Application framework of template technique in CAD field[J].Science & Technology Review,2008,26(10):87-92(in Chinese).[石慧,刘晓平.模板技术在CAD领域内应用框架探讨[J].科技导报,2008,26(10):87-92.]
[10]XIA Hong-jian, WANG Bo-xing,CHEN Li-ping.Subsystem modeling technique on simulation platform of multi-body system[J].Journal of Computer-Aided Design & Computer Graphics,2007,19(9):1206-1211(in Chinese).[夏鸿建,王波兴,陈立平.多体系统仿真分析平台子系统建模技术[J].计算机辅助设计与图形学学报,2007,19(9):1206-1211.]