车辆运动控制(3)轮胎模型

车辆运动控制(3)轮胎模型

车辆运动控制(3)轮胎模型
《车辆运动控制(2)车辆横摆动力学建模》 中根据单轨模型分析得到2自由度的车辆横摆动力学微分方程:
{ v ˙ y = − v x φ ˙ + 1 m [ F y f cos ⁡ ( δ f ) + F y r ] φ ¨ = 1 I z ( l f F y f cos ⁡ ( δ f ) − l r F y r ) (16) \begin{cases} \dot{v}y=-v_x\dot{\varphi} +\frac{1}{m}[F{yf}\cos(\delta_f)+F_{yr}]\\ \ddot{\varphi}=\frac{1}{I_z}(l_fF_{yf}\cos(\delta_f)-l_rF_{yr}) \end{cases} \tag{16}⎩⎪⎨⎪⎧​v ˙y ​=−v x ​φ˙​+m 1 ​[F y f ​cos (δf ​)+F y r ​]φ¨​=I z ​1 ​(l f ​F y f ​cos (δf ​)−l r ​F y r ​)​(1 6 )

其中,F y f , F y r F_{yf},F_{yr}F y f ​,F y r ​ 车辆前、后轴上轮胎侧向力的合力还需要进一步通计算而得

在车辆的运动过程中
轮胎所受的纵向力、侧向力、垂直力及回正力矩对汽车的操纵稳定性和安全性起着重要作用
由于轮胎结构复杂,动力学性能呈非线性
选择符合实际又便于使用的轮胎模型是建立车辆动力学模型的关键

; 2. 轮胎模型

目前,主要的轮胎模型可以分为:

  • 理论轮胎模型
  • 经验轮胎模型
  • 物理轮胎模型

虽然轮胎模型各有不同
但是这些模型都力求更加准确地 表达轮胎和地面的函数关系
并且都是 描述轮胎的输人和输出之间的关系

  1. Pacejka 轮胎模型

其中,最常见的是 Pacejka 提出的以 魔术公式(Magic Formula, MF) 为基础的半经验轮胎模型
此模型运用三角函数的组合公式拟合轮胎试验数据
描述轮胎的 纵向力F x F_x F x ​、 侧向力F y F_y F y ​、 回正力矩M z M_z M z ​,、 翻转力矩M x M_x M x ​,、 阻力矩M y M_y M y ​,与 侧偏角α \alpha α、 滑移率之间的定量关系以及纵向力、侧向力的联合作用工况
能够表达不同驱动情况时的轮胎特性

魔术公式的一般表达式为:
Y ( x ) = D sin ⁡ { C arctan ⁡ [ B x − E ( B x − arctan ⁡ ( B x ) ) ] } (17) Y(x) = D\sin{ C\arctan[Bx – E(Bx – \arctan ( Bx))]} \tag{17}Y (x )=D sin {C arctan [B x −E (B x −arctan (B x ))]}(1 7 )

符号含义符号含义
Y Y Y

输出变量

轮胎的纵向力
F x F_x F x ​

或 侧向力
F y F_y F y ​

或 回正力矩
M z M_z M z ​x x x

输入变量

轮胎的侧偏角
α \alpha α

或 纵向滑移率
D D D

峰值因子
C C C

形状因子
B B B

刚度因子
E E E

曲率因子

以上四个因子由轮胎的 垂向载荷F z F_z F z ​和 外倾角γ \gamma γ 确定

Pacejka 轮胎模型 的输人量与输出量之间的关系如图所示:

车辆运动控制(3)轮胎模型

外倾角:车轮所处平面和纵向垂直平面间的夹角

车辆运动控制(3)轮胎模型
轮胎呈现”八”字形张开时称为负外倾,而呈现”V”字形张开时称正外倾

; 4. 轮胎侧向力

4.1. 根据魔术公式计算

在横摆动力学建模中,主要关注轮胎的侧向力F y F_y F y ​

利用魔术公式计算轮胎侧向力的公式如下:
F y = D sin ⁡ { C arctan ⁡ [ B x − E ( B x − arctan ⁡ ( B x ) ) ] } + S v (18) F_y = D\sin{ C\arctan[Bx – E(Bx – \arctan ( Bx))]} + S_v \tag{18}F y ​=D sin {C arctan [B x −E (B x −arctan (B x ))]}+S v ​(1 8 )
其中,x = a + S h x=a+S_h x =a +S h ​

符号含义符号含义符号含义
α \alpha α

轮胎侧偏角
S h S_h S h ​S v S_v S v ​

曲线的水平、垂直方向漂移
E E E

曲率因子
D D D

峰值因子
C C C

形状因子
B B B

刚度因子
F z F_z F z ​

轮胎垂向载荷
γ \gamma γ

轮胎外倾角

魔术公式的参数A A A可以根据轮胎实验数据拟合得到
当轮胎与道路之间的附着系数为1.0时,取值如下表:

车辆运动控制(3)轮胎模型

水平方向漂移:S h = A 9 F z + A 10 + A 8 γ S_h=A_9F_z+A_{10}+A_{8}\gamma S h ​=A 9 ​F z ​+A 1 0 ​+A 8 ​γ
垂直方向漂移:S v = A 11 F z γ + A 12 F z + A 13 S_v=A_{11}F_z\gamma+A_{12}F_z+A_{13}S v ​=A 1 1 ​F z ​γ+A 1 2 ​F z ​+A 1 3 ​
刚度因子:B = A 3 sin ⁡ [ 2 arctan ⁡ ( F z / A 4 ) ] ∗ ( 1 − A 5 ∣ γ ∣ ) / ( C ∗ D ) B = A_3\sin[2\arctan(F_z/A_4)] * (1 – A_5 | \gamma |)/(C* D)B =A 3 ​sin [2 arctan (F z ​/A 4 ​)]∗(1 −A 5 ​∣γ∣)/(C ∗D )
形状因子:C = A 0 C=A_0 C =A 0 ​
峰值因子:D = A 1 F z 2 + A 2 F z D=A_1F_z^2+A_2F_z D =A 1 ​F z 2 ​+A 2 ​F z ​
曲率因子:E = A 6 F z + A 7 E=A_6F_z +A_7 E =A 6 ​F z ​+A 7 ​

《车辆运动控制(2)车辆横摆动力学建模》 的 理想化假设3 只考虑 纯侧偏角 特性下
根据公式18计算不同轮胎垂向载荷 F z F_z F z ​ 所对应的轮胎侧向力F y F_y F y ​:

import matplotlib.pyplot as plt
import math

A = [1.65, -34, 1250, 3036, 12.8, 0.00501, -0.02103,  0.77394,
     0.0022890, 0.013442, 0.003709, 19.1656, 1.21356, 6.26206]

Fz_list = [2.5, 5, 8.5, 14]

alpha_list = range(-8, 9)

def getFy(Fz, alpha, gamma=0):
    '''
    计算轮胎侧向力
    Fz:轮胎垂向载荷
    alpha:轮胎侧偏角
    gamma:轮胎外倾角,假设为0
    '''

    Sh = A[9] * Fz + A[10] + A[8] * gamma

    Sv = A[11] * Fz * gamma + A[12] * Fz + A[13]

    C = A[0]

    D = A[1] * Fz**2 + A[2] * Fz

    Ca = A[3] * math.sin(2 * math.atan(Fz / A[4])) * (1 - A[5] * abs(gamma))

    B = Ca / (C * D)

    E = A[6] * Fz**2 + A[7]

    x = alpha + Sh

    Fy = D * math.sin(C * math.atan(B * x - E * (B * x - math.atan(B * x)))) + Sv

    return Fy / 1000

FyOutput = [[0 for c in range(len(alpha_list))]for r in range(len(Fz_list))]

for x in range(len(Fz_list)):
    for y in range(len(alpha_list)):
        FyOutput[x][y] = getFy(Fz_list[x], alpha_list[y])

plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False

for x in range(len(Fz_list)):
    plt.plot(alpha_list, FyOutput[x], label='Fz={}kN'.format(Fz_list[x]))

plt.xticks(alpha_list)
plt.xlabel('轮胎侧偏角/(°)')
plt.ylabel('轮胎侧向力/(kN)')
plt.title("根据公式18计算的不同垂向载荷下轮胎侧向力图")
plt.legend()
plt.show()

车辆运动控制(3)轮胎模型

4.2. 根据刷子轮胎模型计算

Pacejka 提出的 刷子轮胎模型 也经常被用来计算轮胎侧向力F y F_y F y ​,其计算公式为:
F y = { C a tan ⁡ ( α ) − C a 2 3 μ F z ∣ tan ⁡ ( α ) ∣ tan ⁡ ( α ) + C a 3 27 μ 2 F z 2 tan ⁡ 3 ( α ) , ∣ α ∣ < arctan ⁡ ( 3 μ F z C a ) μ F z s g n ( α ) , ∣ α ∣ ≥ arctan ⁡ ( 3 μ F z C a ) (19) F_y= \begin{cases} C_a\tan(\alpha)-\frac{C_a^2}{3\mu F_z} | \tan(\alpha) | \tan(\alpha)+\frac{C_a^3}{27\mu^2 F_z^2}\tan^3(\alpha),| \alpha | < \arctan(\frac{3\mu F_z}{C_a})\\ \mu F_z sgn(\alpha),| \alpha | ≥ \arctan(\frac{3\mu F_z}{C_a}) \end{cases} \tag{19}F y ​=⎩⎪⎨⎪⎧​C a ​tan (α)−3 μF z ​C a 2 ​​∣tan (α)∣tan (α)+2 7 μ2 F z 2 ​C a 3 ​​tan 3 (α),∣α∣<arctan (C a ​3 μF z ​​)μF z ​s g n (α),∣α∣≥arctan (C a ​3 μF z ​​)​(1 9 )

符号含义符号含义符号含义
α \alpha α

轮胎侧偏角
C a C_a C a ​

轮胎的侧偏刚度
μ \mu μ

轮胎与道路之间的附着系数

Sgn函数一般指阶跃函数,指出参数的正负号。如果数字大于0,则返回1,数字等于0,则返回0,数字小于0,则返回-1。

根据公式19,不同 垂直载荷 F z F_z F z ​ 下 轮胎侧向力 F y F_y F y ​ 与 轮胎侧偏角α \alpha α 的关系如图:

import matplotlib.pyplot as plt
import math

A = [1.65, -34, 1250, 3036, 12.8, 0.00501, -0.02103,  0.77394,
     0.0022890, 0.013442, 0.003709, 19.1656, 1.21356, 6.26206]

Fz_list = [2800, 8000, 14000, 19000]

alpha_list = range(-12, 13)

def sgn(a):
    if a > 0:
        return 1
    elif a < 0:
        return -1
    else:
        return 0

def getFy(Fz, alpha, mu=1, gamma=0):
    '''
    计算轮胎侧向力
    Fz:轮胎垂向载荷
    alpha:轮胎侧偏角
    mu:轮胎与道路之间的附着系数
    gamma:轮胎外倾角,假设为0
    '''

    alpha = alpha / 180 * math.pi

    Ca =  A[3] * math.sin(2 * math.atan(Fz / 1000 / A[4])) * (1 - A[5] * abs(gamma)) * 180 / math.pi

    if abs(alpha) < math.atan((3 * mu * Fz) / Ca):
        Fy = Ca * math.atan(alpha) - Ca**2 /(3 * mu * Fz) * abs(math.atan(alpha)) * math.atan(alpha) + Ca**3 / (27 * mu**2 * Fz**2) * math.atan(alpha)**3
    else:
        Fy = mu * Fz * sgn(alpha)

    return Fy

FyOutput = [[0 for c in range(len(alpha_list))]for r in range(len(Fz_list))]

for x in range(len(Fz_list)):
    for y in range(len(alpha_list)):
        FyOutput[x][y] = getFy(Fz_list[x], alpha_list[y])

plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False

for x in range(len(Fz_list)):
    plt.plot(alpha_list, FyOutput[x], label='Fz={}N'.format(Fz_list[x]))

plt.xticks(alpha_list)
plt.xlabel('轮胎侧偏角/(°)')
plt.ylabel('轮胎侧向力/(N)')
plt.title("根据公式19计算的不同垂向载荷下轮胎侧向力图")
plt.legend()
plt.show()

车辆运动控制(3)轮胎模型
  1. 线性化

根据上两个图所示的不同载荷下轮胎侧向力与轮胎侧偏角的关系曲线可以看出
当轮胎侧偏角较小时,轮胎侧向力F y F_y F y ​ 可以近似表示为 轮胎侧偏角α \alpha α 的线性函数:
F y = C ˉ a α (20) F_y = \bar{C}_a \alpha\tag{20}F y ​=C ˉa ​α(2 0 )

其中,C ˉ a \bar{C}_a C ˉa ​ 为轮胎的 线性侧偏刚度

此轮胎线性化模型在 侧向加速度 α y ≤ 0.4 g \alpha_y ≤ 0.4g αy ​≤0 .4 g 、 轮胎侧偏角 α < 5 ° \alpha 的情景下
对常规轮胎具有较高的拟合精度
因此应用公式20时需对轮胎侧偏角的范围进行约束

谢谢

Original: https://blog.csdn.net/qq_32618327/article/details/124404432
Author: 氢键H-H
Title: 车辆运动控制(3)轮胎模型

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/558922/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球