使用Simcenter 3D Motion进行整车动力学仿真时,集成OpenCRG路面后无法生成几何显示。本文说明了无法显示几何的原因,同时给出了一个解决方法。
OpenCRG路面是整车动力学仿真时常用的随机路面格式,其来自试验对路面的扫描结果和处理,包含了复杂的3D路面轮廓信息,而且支持目前主流的高频动力学轮胎模型,如CDTire和FTire。因此使用OpenCRG路面进行整车动力学仿真,用于底盘新跟性能开发和疲劳动载荷的获取。
Virtual.Lab Motion升级为Simcenter 3D Motion后也同样支持OpenCRG路面的集成,同时提供了路面可视化工具,可以在计算之前显示路面几何轮廓,方便用户检查模型和辅助模型调试。但是在很多情况下,同样的OpenCRG路面文件在VL Motion可以正常显示和工作,但集成到Simcenter 3D后无法显示几何路面,而且并不能正常参与计算。
经过研究发现,问题来源与SC Motion在对路面数据进行几何处理时的机制相比VL Motion发生变化,这也间接导致了路面显示的出错和计算的无效。问题根源为对OpenCRG路面文件中的定义路面高度和坡度的数值为NaN (Not a Number)时的处理。通常在路面文件中有一个程序行专用于路面程序来控制NaN数值,GRID_NAN_MODE在路面文件的$ROAD_CRG_MODS 字段内,用户可以通过修改这个设置来选择采用那种方式处理NaN数。如
Example: Set NaN to zero. (* or ! means ignore the rest of this line.)
$ROAD_CRG_MODS
* CRG elevation grid NaN handling
* GRID_NAN_MODE = 0 ;!keep NaN
GRID_NAN_MODE = 1 !set zero
* GRID_NAN_MODE = 2 ! keep last value in cross section (default)
GRID_NAN_OFFSET = 0 ! z offset to be applied for NaNs (def: 0)
$
Example: Set NaN to the most recent good value. (* or ! means ignore the rest of this line.) $ROAD_CRG_MODS
* CRG elevation grid NaN handling
* GRID_NAN_MODE = 0 ! keep NaN
* GRID_NAN_MODE = 1 ! set zero
GRID_NAN_MODE = 2 ! keep last value in cross section
GRID_NAN_OFFSET = 0 ! z offset to be applied for NaNs (def: 0)
$
有关GRID_NAN_MODE更多文档可以参考 OpenCRG 用户手册:https://www.asam.net/standards/detail/opencrg/
在有些情况下,用户在OpenCRG文件内并没有定义$ROAD_CRG_MODS字段,如果没有明确定义NaN的处理情况下, 则路面z高度值为NaN时会保持为NaN,Simcenter 3D软件对NaN数值点的图形处理方式为定义为坏点,然后放弃整个路面的几何显示,包括哪些好的数据区域也一起被放弃显示。这也就是造成了在Simcenter 3D Motion中无法显示路面,而且步参与计算的后果。之前VL Motion可以处理同样路面文件是因为Catia对NaN点的处理为仅放弃坏点的处理,而绝大部分好的区域仍会被正常显示和处理。
解决方法。
当碰到路面文件包含NaN数据点时,用户可以在路面文件内手动增加$ROAD_CRG_MODS字段,然后明确的定义出NaN数的处理方式,让软件可以正常显示和传递数据。通过增加以下文本即可解决大部分包含坏点的路面文件。
$ROAD_CRG_MODS
GRID_NAN_MODE = 1 ! set zero
GRID_NAN_MODE = 2 ! keep last value in cross section
以上设置为1或者2都可以解决坏点问题,用户可以根据实际选择用哪种处理模型。