1.摩托车虚拟样机建模
摩托车相对于四轮汽车而言有其自身的独特性,但在进行试验分析工作时基本还是按照汽车标准规定的动力学、燃油经济性、操纵性、制动性与平顺性进行。在具体工程上,更多的分析工作是基于主观评价方法,而非客观评价,这样造成样车试验结论的主观性偏差,更为现实的是试验的成本与周期都居高不下。为此,可仿照汽车工业,充分地利用虚拟样机技术提升工作的效率,提高产品的性能。
作为单轨迹车辆,其操纵稳定性不像四轮车辆那样,但仍旧是最为关心的一个环节,这时人和路的因素都需要考虑,因此摩托车车辆虚拟样机技术首先要解决的也是人-车-路闭环系统问题。
在Adams中有多种方式来完成摩托车的相关标准建模与仿真工作。可以在Adams/View中进行摩托车的建模工作(包括轮胎与地面模型),利用Controls Toolkit进行控制系统的创建(主要模拟人的控制模型),再将两者耦合起来形成闭环。当然,模拟人的控制系统也可以用第三方的控制软件完成,如Easy5,Matlab等,再通过Adams/Controls将两者关联起来形成闭环进行仿真研究。另外,Adams有专门的摩托车仿真模块VI-Motorcycle,在该模块中基于模板,子系统与装配的三层架构创建模型,在程序中还内涵了考虑驾驶员的函数(Adams的用户自程序)直接就可实现考虑人-车-路的闭环系统,并且程序中还定制了专门针对摩托车行业经常进行的标准试验类型。
2.VI-Motorcycle功能介绍
Motorcycle是专业的摩托车运动学与动力学仿真工具,基于Adams软件进行二次开发形成的专业工具。该模块实现了快速建模与模型调整,快速实现标准规定的仿真类型,所有这一切都是基于Adams的参数化建模功能和模板、子系统与装配三层架构而实现的。基于提供的功能,可在一下领域进行应用:
软件提供自带的模板库,根据角色的划分有车身、动力系、转向系、悬架、车轮、驾驶员等部分,当然,用户也可以基于这一架构不断地拓展,满足自己的需要。更为关键的是程序中提供了专门应用于摩托车行业的分析类型,如转向力矩、8字绕行、制动、迂回行(Weave)、转向摇晃(Wobble)、直线加速、两轮台架等,当然,还可以根据需要进行分析类型的定制。
3.VI-Motorcycle应用案例
下面进行绕8字的分析,直接调用对应工况,设置相关参数:
完成计算后,其后处理的动画和曲线如下图所示:
上述过程可以很迅速的完成,关键是要了解内部的运行过程,这时可以查看一下本次仿真的脚本命令:
output/nosep
preferences/solver=CXX
control/routine=vitools::vmc_initcon, &
function=user(1)
deactivate/jprim, id= 4
!
simulate/statics
control/routine=vitools::vsc_adjcon, &
function=user(900, 1)
!
string/6, string=Vehicle Setup
control/routine=vitools::vsc_reportcon, &
function=user(1205,2,1,1,1,5,6,19,1)
! update gyro location
control/routine=vitools::vsc_mmovecon, &
function=user(1215, 18, 19, 10, 0)
control/routine=vitools::vsc_mmovecon, &
function=user(1215, 420, 18, 423, 0)
control/routine=vitools::vsc_mmovecon, &
function=user(1215, 421, 18, 423, 1)
control/routine=vitools::vsc_mmovecon, &
function=user(1215, 27, 18, 27, 0)
control/routine=vitools::vsc_mmovecon, &
function=user(1215, 28, 18, 28, 0)
control/routine=vitools::vsc_mmovecon, &
function=user(1215, 29, 18, 29, 0)
control/routine=vitools::vsc_mmovecon, &
function=user(1215, 30, 18, 30, 0)
control/routine=vitools::vsc_mmovecon, &
function=user(1215, 31, 18, 31, 0)
control/routine=vitools::vsc_mmovecon, &
function=user(1215, 32, 18, 32, 0)
simulate/statics
!
deactivate/joint, id=5
simulate/statics
string/6, string=Running Condition
control/routine=vitools::vsc_reportcon, &
function=user(1205,2,2,1,1,5,6,18,1)
deactivate/jprim, id= 5
!
deactivate/jprim, id=3
! mass calc activity
control/routine=vitools::vsc_reportcon, &
function=user(1205,0,2,1,1,0,0,421,0)
control/routine=vitools::vsc_vhlipcon, &
function=user(1, 1, 2)
!-- Initialize VIdriver
control/ routine=vidriver_adams::vdrv_setcon, function=user(4, 4, 17, 0, 12, 24, 0)
control/ routine=vidriver_adams::vdrv_srvcon, function=user(1, 4, 3)
!-- Initialize vehicle states
control/ routine=vitools::vsc_admstartupcon, function=user(3, 4, 5, 10, 6)
simulate/dynamics, end=20.0, steps=2000
!
通过调用动态链接库中CONSUB子程序完成不同阶段模型的修改设置,完成初始条件设定与静力学分析,并对驾驶员的对应子程序进行设定,而这些参数的设定都是在点击绕8字分析框后,程序自动生成的,最后再进行相应的动力学计算。
也可对悬架进行单独分析:
进行线性化分析,查看系统的Weave及Wobble振动模态:
两轮台架分析:
摩托车半实物仿真:
4.总结
Adams作为专业的多体动力学仿真工具,在其核心功能模块基础上针对不同行业开发了很多专业工具。就摩托车虚拟样机的建模与仿真工作而言,既可以在Adams/View中实现也可在MotorCycle模块中实现,因为两者本质上是相通的。
免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删