车辆基础理论

西昌.何雨锋  本文谢绝转载

一、车辆的坐标理论

理论上说一辆车有3个坐标转向轴,分别是:

YAW轴-----车辆在水平面的转动   对应车顶车底方向

Pitch轴-------车辆前后的翻滚   对应两个车门方向

Roll轴---------车辆的平翻      对应车前后方向

 

车辆基础理论_第1张图片

2.1.1.3   车辆悬挂系统(Suspension)

车辆的悬挂系统是一个机械系统,是一个装了很多轮子的车辆底盘。在现实生活中车辆有许多不同类型的悬挂,每一种都有其优点和缺点。原则上,所有的悬架系统允许车轮沿着各自的车轮轴旋转,也允许轮子向上或向下有一定范围的移动。通常轮子的上下浮动是在一条直线上进行的(但由于有些悬挂装置做了改进,车轮会沿着曲线移动也很正常)。

这个系统有两个作用:1、让车轮沿车轴旋转  2、让车轮可以上下在一定范围内浮动。

可以用一个弹簧+一个防侧倾杆+减震器来控制这种行为,当车轮向上或向下浮动时,弹簧将被压缩,弹力将变大直到车底盘下的硬质点。

硬质点(hard point):车轮可以达到的最大浮动点。

由于结合了弹簧和车辆底盘的悬挂系统会导致车辆上下过度震荡,为了快速抑制这种振荡,就要添加创建一个不断同车轮移动方向相反的一个阻尼器。阻尼器的方向将与车轮运动方向相反,如果地面顶着轮子向上运动,则阻尼器会向下用力,这个比例大概为1:3左右。

 

hk车辆模块采用了简化的模型:

1、假定车轮的运动是有限的沿着悬挂方向的直线

2、悬浮独立于车辆质量

3、悬挂弹簧连接到底盘空间的一个点上,这个点称为hard point硬点,悬挂线延伸穿过车轮轮胎的正中心(半轮宽度)位置。

车辆基础理论_第2张图片

2.1.1.3.1. 悬挂弹簧(The Suspension Spring)

当弹簧被压缩时,它就会产生力量。硬弹簧就是强度较高的弹簧。在车辆套件里面,悬挂弹簧和底盘组成了弹簧质量系统,它的震荡频率取决于弹簧的强度和车的质量。

所以,弹簧常数C=用户定义常数x车的质量。因此,当汽车的质量发生改变的时候,弹簧的强度同样也会发生变化。一般用户定义的弹簧常数,是从5-50范围。下面是一些例子:

跑车:50

越野车:30

豪华轿车15

2.1.1.3.2. 悬挂阻尼  (The Suspension Dashpot)

如果没有阻尼,弹簧悬挂系统将一直震荡下去,所以说阻尼将是必要的,这被称为减震器。阻尼将在悬挂方向上阻止任何方向的运动。更高的阻尼系数,可以更快的使动能衰减。

“临界阻尼值(critical damping)”是指减震器在悬挂的运动在不到一个震荡周期就衰减完的阻尼值。真正的汽车的阻尼值实际上是低于临界阻尼值的。

临界阻尼值依赖于悬挂的强度。因此,比应该试着建立悬挂强度适当的阻尼值。良好的阻尼可以提供10%-50%的悬浮力范围值。如果阻尼值过高时,物理模拟将变得不稳定。

 

2.1.1.4. 摩擦力

当拐弯的时候,汽车就会产生一种维持当前行驶方向的倾向。然而,轮胎与路面之间的摩擦力会曲线变化。

当轮胎上产生了不在质心的摩擦力时,扭力将使汽车出现翻滚。所以摩擦力会有一个最大摩擦系数,这个值取决于:

1、道路的类型与轮胎产生的摩擦系数f.

2、轮胎与地面之间的 相对速度V。当它为零的时候,汽车不会滑动。

3、轮胎的角速度。

因此,我们得到一个公式:maxF = f (v, a) * F

对于简单的车辆模拟来说,车辆套件使用如下公式:

F(VA)=常数(摩擦系数)

作为结果,如果汽车质量发生了变化,汽车的结果摩擦力行为不会产生任何变化。在现实世界里,车胎摩擦力一般为0.8。

2.1.1.4.1.   前后摩擦之间的关系( The Relationship Between Front and Back Friction)

如果你给了汽车所有的轮胎双倍的摩擦力,汽车可以在不打滑的情况下更快的提速,而整体的驾驶情况仍然是在汽车不翻转的情况下被精确的模拟。

但是如果你只给前轮增加20%的摩擦系数,那将产生巨大的差异,想象一下,一辆汽车左转弯

车辆基础理论_第3张图片

如上图所示,摩擦力施加到轮胎上使汽车加速向右转,而前轮的转向角度右决定了汽车的转弯半径。如果这个转弯半径导致摩擦力超过了最大的允许值,则道路上的汽车将会失去控制。

如果前轮失去抓地力,赛车将出现“转向不足”,其前轮胎将出现滑动。它就不会遵循的转向角度定义曲线,这通常意味着前面轮胎的的摩擦系数小于后面的轮胎

If the back tires slide first, the car “oversteers”, sliding on its back tires. This means that the car may spin uncontrollably in curves.

如果后轮首先滑动,汽车将出现后摆,在的后轮胎的滑动将意味着汽车将控制不住地出现曲线旋转

如果所有四个轮胎同时出现滑动汽车将沿着惯性的方向滑动使汽车更难控制但增加了驾驶的乐趣

你可以看到,前、后摩擦系数之间的关系决定了这些效果的出现。在一个物理模拟中,刹车和加速平衡也将影响这种行为。

 

事实上,轮胎的摩擦圆不是100%圆,但略有变形。然而在大多数情况下,它是足以承担一个完美的圆

 

这个圈子是什么意思

想像一辆汽车以一个急转弯不制动或加速。假设这辆车不滑动而。如果司机加速,一个额外的力分量添加到现有的力,这样产生的力超过最大摩擦力。开始滑动

因此,任何向前或向后车轮上的转矩有效地降低最大侧力,使车轮容易滑动。一个很好的例子是一个轮胎倦怠阻止车轮制动

知道了这个原理,对制动转矩和加速力矩对单个车轮的分布是非常重要的。这也被称为制动或加速平衡

如果你创建了一辆非常强大的引擎并且车轮使用正常的摩擦值,你将体验到

 

一个正常的 加速度

一个很滑的车

这是因为车轮可以简单地继续开进没有获得抓地力

 

2.1.1.6  刹车和加速转矩分配

刹车和加速转矩分配汽车的刹车和加速力矩分配到4个车轮对驾驶行为有影响

当你运用更多的正向扭矩到车轮,其允许的最大侧力减小。换句话说,施加扭矩到轮胎上会有效的降低摩擦系数,车从而变得更容易

在实践中,这意味着后轮驱动的汽车,倾向于过度的曲线前轮驱动车往往不足

2.1.1.7  转动惯量中心的影响

在车辆动力学中,底盘的质量扮演了一个小角色。质量往往放大了效果超过了对车辆的行为的整个实际影响。然而,重心的位置才是最大影响所在

 

惯性张量是一个3x3的矩阵,沿着主轴旋转一个物体是多么困难。惯性张量依赖于物质本身的质量分布。例如,让一公斤的相比,同样公斤重的自行车车轮自旋起来要容易得多。

惯性张量大致等于物体的质量乘以物体的体积的所有点与重心之间的平均距离。因此尺寸为4m×2m×4m一辆汽车的主轴为

轴:约2米×1500公斤

前进轴:约1米×1500公斤

右轴:约2米×1500公斤

A higher center of mass means that the car rolls more heavily in curves. It also means an increase in a braking car’s rotation around the pitch axis.

一个更高的质量中心意味着汽车更容易侧翻,这也意味着刹车时绕着pitch轴的旋转会增加

Higher rotation inertia makes it more difficult to change the angular velocity of the car. It also reduces the frequency of rotational oscillations about the center of mass. A car oscillating around the roll axis at 2 Hertz only oscillates at a rate of 1 Hertz if its inertia is doubled. Hence, the inertia can be used to reduce the likelihood of a car spinning out of control when colliding or sliding.

更高的转动惯量可以使改变汽车的角速度变得更难。它也减少了旋转振荡绕质心频率。在惯性加倍的情况下,汽车的辊轴在2赫兹的振荡速度只有1赫兹。因此惯性张量可以用来在发生碰状或侧滑时减少汽车失控的可能性

 

2.1.1.8   转向(Steering)

转向将方向盘会导致轮胎在Yaw轴上有一定的旋转。在现实生活中汽车的方向盘和轮胎的转向角有一个简单的线性关系。但是如果你用游戏手柄以200码的速度玩真正的一级方程式赛车200英里每小时的话你不会长时间的停留在路上

因此,在游戏中你要在预处理环境使需设几个车辆部件的原始输入数据。hvk车辆套间有两个步骤:第一,在预处理的driverinputcomponent中使用,其次是一个steeringcomponent组件。你可以在车辆套件编程指南中找到关于这些组件和它们的默认实现的更详细的信息

2.1.1.8.1 驾驶输入组件driverinputcomponent

双斜线输入控制器在输入和输出值之间使用了一个非常简单的关系。输入值小于控制器的“死区”,则返回零。输入值x大于死区dz并小于slopepointx它返回(xDZ)* initialslope

车辆基础理论_第4张图片

 

当输入的值大于slopepointx值时,输出值将表现得特别明显,直到它达到1

2.1.1.8.2。速度依赖转向角steeringcomponent)转向组件

作为一个操纵杆的精度比真正的方向盘小很多车辆套件可以改变输入的变化取决于当前精度

基本的想法是,车的速度更高时,它对方向将更不敏感。当给定一个特定的摩擦系数和车辆速度时理论上可以确定最大转向角是在汽车滑动的边缘

 

当车辆在滑动边时,转向角作为一个车速的函数。

车辆基础理论_第5张图片

我们可以看到,车速越快,转向角越小。

但这只是理论上的,实际情况是:

车辆基础理论_第6张图片

当车速慢于一定的情况下,转向角是恒定不变的;高于一定的速度时,才随速度的变化而减小转向角。

2.1.1.9.   空气动力学  Aerodynamics

空气具有一定的密度,它会影响到移动中的车辆。这些影响被称之为气动阻力和升力。空气阻力对汽车的行驶方向产生相反的力。气动升力产生一个向上的(或负向下)力。阻力是影响限制汽车的最高速度的主要因素

车辆基础理论_第7张图片

从上图我们可以看出,随着车速提高到了一定量时,风阻开始变大。

默认的车速与风阻公式为:

Fdrag = ½ * airDensity * dragCoefficient * frontalArea * velocity2

Flift = ½ * airDensity * liftCoefficient * frontalArea * forward_velocity2

2.1.1.10 发动机(Engine)

发动机产生所有能量,或叫扭矩来驱动汽车。目前最常用的汽车发动机是内燃机。这种类型的发动机的基本原理是,汽油在汽缸中燃烧,从而产生了发动机的扭矩。这一部分扭距实际上在发动机里就被摩擦所消除了。发动机扭矩和摩擦力实际表现在发动机的每分钟的转速上。这种关系用下面的说明:

车辆基础理论_第8张图片

我们可以看到,当发动机转速上升时,摩擦力也在上升,特别是当转速到了一定值时,摩擦力上升明显。

当发动机转速上升时,在摩擦力不明显前,输出的扭距是在不断增大的,但当摩擦力上升明显时,扭距将会开始下降。

说明发动机转速只在一定范围内产生足够的扭距,太快的转速反而导致扭距下降。

2.1.1.10.1 汽车套件(Vehicle kit)

在这个套件中默认实现使用简化的曲线。你只需要指定转速/力矩以下三个参数:

最低转速(RPM)/力矩(Torque)

普通转速/力距: 当发动机在到达最高转速时

最大转速/力矩:定义为发动机最大转速。如果发动机超出此值发动机自动关闭

所有这些值只是影响到发动机在optimum转速时的一个因素。如果发动机在4000转时,opt rpm发动机摩擦力产生700 [nm]的扭矩为0.5发动机的扭矩为350

2.1.1.10.2. 发动机性能 (Engine Resistance)

发动机性能的线性内插用两个线段如下图所示:

车辆基础理论_第9张图片

 

如上所示,有3个转速点:min optiomal max.

在min转速之前,扭距都不会上升。

在min之后到optimal之间,扭距缓慢上升。

在optimal到max之间,扭距明显上升。

到了max之后,扭距将不再上升。

2.1.1.10.3  发动机净扭矩(Engine Net Torque)

车辆基础理论_第10张图片

如图所示,发动机的净扭距在到达optimal转速后反而下降了。

2.1.1.10.4。发动机离合器(Engine Clutch)

汽车的发动机在转速大于或小于一定的转速时将不会工作,这就是它工作的上下限,车辆的驾驶者必须按下离合器允许车辆自由滑动。作为一个结果,发动机转速实际上比在传动轴的转速要高。为了模拟这种行为,这里介绍一种转速低于最低转速离合器的方法

当变速箱转速小于(0.5×minrpm发动机转速是使用下面的公式计算

EngineRPM = minRPM + clutchSlipRPM * throttleInput

enginerpm = minrpm + clutchsliprpm * throttleinput

throttleinput值是一个介于0和1之间的,描述如何司机踩油门踏板的值

2.1.1.11  变速器 (Transmission)

为了保持使发动机工作在不同车速下得到最佳的转速范围,你需要用变速器。变速器是一种利用杠杆或力矩转换改变发动机转速和车轮转速之间比率的装置。如果发动机转速增加,但车轮保持不变(比值越大),汽车产生更大的扭矩。另一方面如果发动机转速下降,车轮保持不变比值越小汽车可以达到更高的速度

一个典型的变速器包括离合器,变速箱和分离器。离合器可以根据司机的需要断开发动机与变速箱齿轮。变速箱将扭矩从发动机驱动轴数齿轮。分离器转矩从驱动轴传给左、右

下面的公式描述的车轮和发动机之间的关系

EngineRPM = WheelRPM / (primaryTransmissionRatio * GearRatio[currentGear])

WheelTorque = EngineTorque * primaryTransmissionRatio * GearRatio[currentGear]

enginerpm是发动机每分钟转数

wheelrpm是平均分钟的车轮转数

PrimaryTransmissionRatio is the transmission ratio at the differential.

primarytransmissionratio (主变速比) 是变速的比值

当比较最后高的轮转速与汽车的总阻力时可以计算出汽车的最高速度

由于实际原因连续两个齿轮之间的转动比例应该是恒定的

默认的汽车套件工具箱实现提供了一种自动变速器包括以下参数

所有的齿轮传动比

传动比

最小和最大发动转速转速时实现自动换挡功能

换档延迟时间clutchdelaytime

wheelstorqueratio(车轮与扭距比),它定义了如何将发动机的扭矩分配到车轮。例如,如果你想创建一个前轮驱动的汽车,两个前轮应该有一个值0.5和后轮0值。所有车轮转矩的总和应为1

2.1.1.11.1.  转向技巧 (Tuning tips)

开始调整齿轮比的一个好办法是1齿轮组的齿轮比和使用下面的公式的primarytransmissionratio

TopSpeedCar[m/s] = TopSpeedOfCar[mph] * 1.605 / 3.6

MaxWheelAngularVel = TopSpeedCar[m/s] / wheelRadius

MaxWheelRPM = MaxWheelAngularVel * 60 / 2 * PI

PrimirayTransmissionRatio = maxEngineRPM / MaxWheelRPM

可以设置使用齿轮的齿轮比为1.5

2.1.1.12. Brakes 刹车

刹车减速车辆通过摩擦机制将动能转化为热能。最常见的例子就是汽车的轮子,通过制动鼓制动盘从而产生对车轮制动的力矩

汽车套件将输入值的最大制动力矩制动踏板。然后由此产生的扭矩分配到车轮

将制动扭矩车轮实际上意味着减少转弯时的最大侧力轮。这辆汽车的司机往往可以利用这种行为让汽车进入漂移。这是实现使用手刹的最简单的方式完全阻止车轮

2.1.21 范围内如何欺骗物理

2.1.2.1  简介

 

在物理上精确模拟驾驶行为是具有挑战性的,也可以很有趣,特别是如果你的游戏忠于现实。然而,如果游戏的重点是很有趣,易于学习,你可能需要使用一些技巧来帮助或欺骗的模拟驾驶。本章包括车辆套件演示几个的技巧和方法

 

2.1.2.2。 主观 时间与实际 时间(Subjective Time and Real-Time)

 

在驾驶游戏中,玩家通常不期望游戏在实际时间中运行-他们希望它跑得比较快!他们想驾车在以每小时200英里的速度也能够绕过城市的角落。他们预计汽车能跑得更快而不是一个真正的汽车

然而,在某些情况下,一个真正的赛车的表现太快,会严重考验玩家的反应。在这些情况下,司机们希望慢动作行为尤其是如果汽车发生滑动或碰撞时

这将创建一个两难境地,因为你需要模拟汽车比实际时间更快或更慢,而在同一时间。幸运的是,汽车套件允许你使用“作弊”的物理模拟以处理这个。你可以很容易的实现所需的行为仅仅使用很少的参数

下面的欺骗可以让你增加汽车的反应

给车辆增加重力或添加一个额外的重力

将车轮摩擦系数增加到3

使悬挂变得更

添加额外的偏航力矩和额外的偏航角度

这些欺骗行为可以降低汽车的反应

质量中心或几乎减少所有摩擦力矩因素质量中心

 

增加 惯性

增加角速度

应用额外的力和力矩(如摩托车控制器

 

2.1.2.3  重

 

在一般情况下,要降低重心以改进汽车。特别是在在转弯过程中可以降低侧倾和俯仰力矩,制动和加速。汽车可以变得“更好地棒”。它也减少了汽车的翻转的可能性

然而,也有一些限制,你可以改变质心位置同时仍然有一个逼真的模拟。如果发生撞车时,质心过低可能会使汽车的前向上跳。这是因为碰撞点的质心的上方,从而创造一个角冲量。如果质心的移动到地面以下,侧倾和俯仰力矩的逆转将导致一个非常不切实际仿真行为

车辆基础理论_第11张图片

通过技巧,可以让你降低质心而不产生这些负面影响。如果碰撞的冲击角是一个问题,那么通过对俯仰轴增加惯性可以降低这种效应。另外,不用降低刚体的质心,也可以有效地通过设置torquerollfactortorquepitchfactor值来产生小于1的质心效果

2.1.2.4。惯性

如果一个非常快的车撞上一个固体,它可能会开始旋转的很厉害,这将是令人沮丧的模拟。然而,有一些技巧可以用来减少高角速度的可能性。一种方法是增加惯性。三个轴可以分别设置不同的值,使三个轴分别独立。做一点惯性的小改变(20%)将改变了整个汽车的行为。不要试图大幅度的修改惯性

2.1.2.5。角速度阻尼(Angular Velocity Damping)

如果汽车需要一个大的跳跃,它的角速度在空时是不变的。这可能会导致汽车翻过来,当它碰到地面。这种精确的物理行为可能是令人沮丧的模拟。因此,需要一种机制来抑制角速度的设置

 

汽车套件提供了一个衰减角速度的控制器。然而,你可能不想在所有的东西上都阻止角速度,因为你想在某一个旋转的汽车碰撞中看到。测量角速度,如果低于某一阈值的阻尼将使用正常的角速度阻尼。如果是在阈值之上,将采用碰撞角速度阻尼

为normalspindamping范围应在0和3之间,和0.5和1.5之间的值应给予合理的结果。一个π自旋门槛意味着如果汽车旋转小于180度/,使用normalspindamping

如果你的车用现实的碰撞,然后collisionspindamping值0和0.5之间是合理的。但是如果你的游戏结果在许多碰撞,然后用高值3和10之间。这将删除任何高角速度。这种技术可以帮助防止玩家失去方向

2.1.2.6.   摩擦均衡器(Friction Equalizer)

The tires of a stopped car on a flat surface press against the ground with a certain force, called static load distribution. However, if the car is moving, these forces change due to various effects. This is called dynamic load distribution. The frictionEqualizer parameter allows you to change dynamic load distribution to be more equal to the static load distribution.

一辆停着的车以一定的力量地面平面按轮胎,称为静载荷分布。然而,如果汽车在行驶中,由于不同的效果,这些力量的变化。这就是所谓的动态负荷分配。frictionequalizer参数允许变化的动态负载分配更平等的静态负载分配

The effect is that the driving behavior of the car does not change when the car accelerates, brakes, goes over hilly terrain, etc.

效果是:汽车的驾驶行为时不改变汽车加速刹车越过丘陵地形

Setting this parameter to values between 0 and 1.0 virtually averages all the suspension forces. For example, let’s say the value is set to 0.8, and the back tires are not touching the ground while the front tires are. The front tires are pressed onto the ground at 10000N of force. In this case, the vehicle Kit redistributes this 10000N to the individual tires using the following equations:

设置这个参数的值0和1之间的所有的悬浮力几乎平均。例如,让我们说的值设置为0.8,和后轮胎不接触地面时,前轮胎。前轮胎压到地面10000n力。在这种情况下车辆的套件10000n使用下列方程个别轮胎

Front tires: 5000N* (1-0.8) + 5000N*2/4*0.8 = 3000N

前轮胎5000N *1-0.8+ 5000N×2/ 4×0.8 = 3000N

Back tires: 5000N*2/4*0.8 = 2000N

轮胎:5000N×2/ 4×0.8 = N

Hence, if you set frictionEqualizer to 0.0 you get physically correct behavior. If you set this parameter to higher values (up to 1.0) you improve the driving behavior on rough and off-road terrain.

因此,如果你frictionequalizer 0你得到正确的物理行为。如果你将此参数设置为较高的值(1提高你对粗糙和越野驾驶行为

2.1.2.7. Extra Angular Torque

2.1.2.7。额外的转矩

When a car starts to slide, it becomes very difficult to control. Even professional racing drivers sometimes have problems stopping their car from spinning. Applying some non-physical impulses and torques around the yaw axis can help to control the car in sliding conditions.

当汽车开始滑动,它会很难控制。即使是专业的赛车手,有时有问题停止他们的车从纺纱。运用一些物理的冲动和扭矩偏航轴可以帮助控制滑动摩擦条件下的车

The extraTorqueFactor uses the current steering angle to create a torque around the yaw axis e.g. steering to the left creates a small constant torque to the left. Good values range from 0 to 2.

使用当前的extratorquefactor转向的角度建立一个扭矩在偏航轴如转向左边创建一个小的恒转矩的左边。好的值的范围从0到2

 

车辆悬挂定点方法:

1、在平面上画出XZ轴坐标图;

2、假设是4个轮子,抛开悬挂Y点不谈(其实一般性车辆4个轮子悬挂的高度都是相同的),假设中心点是0,0,那么ABCE四个点的位置如图所示

车辆基础理论_第12张图片

可以看出,A点坐标是++,B点坐标是+-.C点坐标是-+,D点坐标是--,X轴正向为正前方。

需要注意的是,无论底盘如何旋转,A点对应的永远是C点。

3、如果底盘旋转90度,则变成了下面的图:

车辆基础理论_第13张图片

即A点旋转到了+x+z的位置,其他点位置一样的旋转变化。其中AB两点距离是轮距,AC两点距离是轴距。Z轴正向为前进方向。

4、更多轮子的定位方法:

按4轮悬挂定位法先将ABCD四个轮子定位,注意CD是最后两个轮子的位置而不是中间轮子的位置,然后更多的轮序的轮子放在中间,如果在调试中发现中间轴的位置不对,则对调EF轮子的坐标即可,下图为6轮的位置,很混乱是吧?没关系,只要ABCD轮的位置不错就可以了,至于中间的轮子位置,在调试中慢慢修改即可。

车辆基础理论_第14张图片

 

 

 

 

 

 

 


 

 

 

 

你可能感兴趣的:(k_Phy_physic)