车辆线性二,三,四自由度汽车动力学模型稳定性对比仿真【附说明文档】 资料:附带对应的建模说明文档和对比分析 [1]仿真对比:对不同自由度汽车模型进行了对比,通过将不同自由度模型的对比,研究了二自由汽车操稳性模型的误差,将仿真结果与实际结果进行对比,可以看出不同自由度的汽车操稳性动力学模型在一定的范围内误差并不是很大 [2]建模仿真分析:二自由,三自由度和四自由模型的建模过程和解答了如何建立汽车操稳性仿真模型 基于代码建模,给出了不同自由度汽车操稳性动力学模型的代码,为了方便引用将这些代码均转化为函数形式,也给出了说明。

在汽车动力学研究领域,不同自由度的汽车动力学模型对于理解车辆操稳性起着关键作用。今天咱就来唠唠二、三、四自由度汽车动力学模型稳定性对比仿真这事儿,还附上了建模说明文档和对比分析,绝对干货满满。

建模仿真分析

二自由度模型建模

二自由度模型主要考虑车辆的侧向运动和横摆运动,这是最基础的车辆动力学模型。先来看代码实现(以Python为例):

import numpy as np


def two_dof_model(parameters, time_step):
    m = parameters['m']
    Iz = parameters['Iz']
    a = parameters['a']
    b = parameters['b']
    Cf = parameters['Cf']
    Cr = parameters['Cr']
    beta = 0
    r = 0
    results = []
    for _ in range(len(time_step)):
        Fyf = -Cf * (beta + a * r / parameters['u'])
        Fyr = -Cr * (beta - b * r / parameters['u'])
        Fy = Fyf + Fyr
        Mz = a * Fyf - b * Fyr
        beta_dot = (Fy - m * parameters['u'] * r) / (m * parameters['u'])
        r_dot = Mz / Iz
        beta = beta + beta_dot * time_step[0]
        r = r + r_dot * time_step[0]
        results.append([beta, r])
    return results

这段代码里,parameters字典存储了车辆的物理参数,像质量m、转动惯量Iz、质心到前后轴的距离ab,以及前后轮胎的侧偏刚度CfCrtime_step表示时间步长。通过迭代计算侧向加速度和横摆角速度,模拟车辆运动。

三自由度模型建模

三自由度模型在二自由度基础上,增加了车辆的纵向运动。代码如下:

def three_dof_model(parameters, time_step):
    m = parameters['m']
    Iz = parameters['Iz']
    a = parameters['a']
    b = parameters['b']
    Cf = parameters['Cf']
    Cr = parameters['Cr']
    u = parameters['u']
    v = 0
    r = 0
    results = []
    for _ in range(len(time_step)):
        alpha_f = np.arctan((v + a * r) / u)
        alpha_r = np.arctan((v - b * r) / u)
        Fyf = -Cf * alpha_f
        Fyr = -Cr * alpha_r
        Fx = parameters['Fx']
        Fy = Fyf + Fyr
        Mz = a * Fyf - b * Fyr
        v_dot = (Fy - m * u * r) / m
        r_dot = Mz / Iz
        u_dot = (Fx + m * v * r) / m
        v = v + v_dot * time_step[0]
        r = r + r_dot * time_step[0]
        u = u + u_dot * time_step[0]
        results.append([v, r, u])
    return results

这里多了纵向力Fx和纵向速度u的计算,考虑了纵向和侧向以及横摆运动之间的耦合关系,更加贴近实际车辆行驶情况。

四自由度模型建模

四自由度模型进一步考虑了车辆的垂向运动,让模型更加完善。代码如下:

def four_dof_model(parameters, time_step):
    m = parameters['m']
    Iz = parameters['Iz']
    a = parameters['a']
    b = parameters['b']
    Cf = parameters['Cf']
    Cr = parameters['Cr']
    kf = parameters['kf']
    kr = parameters['kr']
    u = parameters['u']
    v = 0
    r = 0
    z = 0
    results = []
    for _ in range(len(time_step)):
        alpha_f = np.arctan((v + a * r) / u)
        alpha_r = np.arctan((v - b * r) / u)
        Fyf = -Cf * alpha_f
        Fyr = -Cr * alpha_r
        Fx = parameters['Fx']
        Fy = Fyf + Fyr
        Mz = a * Fyf - b * Fyr
        Fzf = kf * (parameters['z0'] - z - a * r / parameters['L'])
        Fzr = kr * (parameters['z0'] - z + b * r / parameters['L'])
        Fz = Fzf + Fzr
        v_dot = (Fy - m * u * r) / m
        r_dot = Mz / Iz
        u_dot = (Fx + m * v * r) / m
        z_dot = (Fz - m * 9.81) / m
        v = v + v_dot * time_step[0]
        r = r + r_dot * time_step[0]
        u = u + u_dot * time_step[0]
        z = z + z_dot * time_step[0]
        results.append([v, r, u, z])
    return results

这里新增了垂向刚度kfkr,以及垂向位移z等参数,模拟了车辆在行驶过程中的垂向受力和运动。

仿真对比

通过对不同自由度模型进行仿真对比,能研究二自由汽车操稳性模型的误差。实际操作时,给每个模型输入相同的初始条件和外部激励,比如相同的车速、转向角等。

parameters = {
   'm': 1500,
    'Iz': 2500,
    'a': 1.2,
    'b': 1.4,
    'Cf': 60000,
    'Cr': 70000,
    'Fx': 1000,
    'u': 20,
    'z0': 0.1,
    'kf': 20000,
    'kr': 22000,
    'L': 2.6
}
time_step = np.linspace(0, 10, 1000)
two_dof_results = two_dof_model(parameters, time_step)
three_dof_results = three_dof_model(parameters, time_step)
four_dof_results = four_dof_model(parameters, time_step)

把仿真结果与实际结果对比后发现,在一定范围内,不同自由度的汽车操稳性动力学模型误差并不是很大。二自由度模型虽然简单,但在一些对精度要求不是特别高的场景下,能快速给出近似结果;三自由度模型在考虑纵向运动后,更符合一般行驶工况;四自由度模型最复杂,但在研究一些涉及垂向振动影响操稳性的问题时必不可少。

车辆线性二,三,四自由度汽车动力学模型稳定性对比仿真【附说明文档】 资料:附带对应的建模说明文档和对比分析 [1]仿真对比:对不同自由度汽车模型进行了对比,通过将不同自由度模型的对比,研究了二自由汽车操稳性模型的误差,将仿真结果与实际结果进行对比,可以看出不同自由度的汽车操稳性动力学模型在一定的范围内误差并不是很大 [2]建模仿真分析:二自由,三自由度和四自由模型的建模过程和解答了如何建立汽车操稳性仿真模型 基于代码建模,给出了不同自由度汽车操稳性动力学模型的代码,为了方便引用将这些代码均转化为函数形式,也给出了说明。

总的来说,通过这次建模仿真对比,我们对不同自由度的汽车动力学模型有了更深入的理解,在实际应用中可以根据具体需求选择合适的模型。希望这篇博文能对研究汽车动力学的小伙伴们有所帮助。

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐