✅ 博主简介:擅长数据搜集与处理、建模仿真、程序设计、仿真代码、论文写作与指导,毕业论文、期刊论文经验交流。
✅ 具体问题可以私信或扫描文章底部二维码。
(1) 半主动悬架建模及性能评价
为了研究半主动悬架的控制策略,首先需要对控制对象进行建模。本文建立了不同形式的路面激励模型,包括随机路面模型和确定性路面模型。随机路面模型主要用于模拟实际道路上的随机振动,而确定性路面模型则用于模拟特定的路面激励,如凸起、凹陷等。通过对这些模型的仿真,可以全面评估悬架在不同路况下的性能。
在悬架性能评价方面,本文介绍了常用的评价指标和方法,包括车身加速度、轮胎动变形、悬挂行程等。这些指标能够全面反映悬架在不同工况下的表现。为了验证模型的准确性,本文使用了二自由度模型进行仿真,并与实际车辆测试结果进行了对比。结果显示,二自由度模型能够较好地预测悬架在不同路况下的动态响应,为后续的控制策略研究提供了可靠的基础。
针对阻尼可调减振器的建模,本文选择了非参数化建模方式,并借鉴了UniTire轮胎模型的建模思想,提出了适用于电磁阀控减振器和磁流变液减振器的UniDamper减振器模型。该模型具有辨识参数少、满足物理边界条件等优点,能够精确描述减振器的响应特性。通过建立减振器响应特性的动力学模型,本文详细分析了减振器在不同工况下的动态行为,为后续的控制策略设计提供了理论支持。
(2) 面向乘坐舒适性的控制策略
在面向乘坐舒适性的控制策略研究中,本文重点分析了天棚(Skyhook, SH)和加速度阻尼(Acceleration Driven Damper, ADD)控制的不同控制特性。SH控制主要通过减少车身的垂直加速度来提高乘坐舒适性,而ADD控制则通过调节减振器的阻尼系数来吸收振动能量,减少车身的振动。
为了进一步优化控制效果,本文从控制逻辑相位关系的角度进行了分析。研究表明,SH控制在低频时效果较好,而ADD控制在高频时效果较好。因此,本文提出了一种改进的ADD控制策略,通过对车身加速度信号在低频时进行-90°的相位补偿,使其在低频时的控制效果接近SH控制,而在高频时的控制效果接近ADD控制。这样,改进的ADD控制策略能够在全频域内有效降低车身的振动加速度,提高乘坐舒适性。
为了验证改进ADD控制的有效性,本文对理想SH和ADD控制的传递函数模型进行了幅频特性的理论分析。结果显示,改进ADD控制确实具有实际优势和理论根基。通过仿真验证,改进ADD控制在全频域内的控制效果优于传统的SH和ADD控制,能够显著降低车身的振动加速度。
(3) 面向驾驶安全性的控制策略
在面向驾驶安全性的控制策略研究中,本文重点分析了地棚(Groundhook, GH)控制算法。GH控制主要通过减少轮胎的动变形来提高驾驶安全性。本文对比了速度GH和位移GH两种控制算法,发现速度GH在低频时效果较好,而位移GH在高频时效果较好。
为了进一步优化控制效果,本文提出了对轮胎振动速度进行相位补偿的改进GH控制策略。通过对轮胎振动速度信号进行相位补偿,改进GH控制能够在全频域内有效降低轮胎的动变形,提高驾驶安全性。通过仿真验证,改进GH控制在全频域内的控制效果优于传统的速度GH和位移GH控制,能够显著降低轮胎的动变形,提高驾驶安全性。
为了综合考虑悬架的性能,本文利用权重因子的方式将改进ADD分别与GH和改进GH进行混合,形成了两种在全频域内的最佳混合控制算法。这两种混合控制算法能够在保证乘坐舒适性的同时,提高驾驶安全性。通过仿真验证,这两种混合控制算法在全频域内的控制效果优于单一的控制策略,能够全面提高悬架的性能。
(4) 磁流变液减振器的响应特性及控制策略
为了进一步提高半主动悬架的控制效果,本文以磁流变液阻尼可调减振器为研究对象,对其响应特性进行了分析和测试。研究发现,减振器的响应时间受运动方向、速度、驱动电流幅值、控制的母线电压等因素影响。为了提高减振器的响应时间,本文采用了前馈-比例-积分(Feedforward-Proportional-Integral, FPI)的控制策略。FPI控制策略通过前馈控制提前调整减振器的阻尼系数,比例-积分控制则用于消除稳态误差,从而提高减振器的响应速度和控制精度。
为了提高控制算法的抗干扰性,本文提出了基于理想阻尼力元和重力力元的理想改进加速度阻尼(Modified Acceleration Driven Damper, MADD)参考模型的滑模控制算法。滑模控制算法通过引入参考模型,能够有效应对减振器响应时间等非线性因素引起的参数摄动和建模不确定性,提高算法的控制效果和抗干扰性。通过仿真对比,发现采用参考模型的滑模控制在不同的减振器响应时间下表现更为稳定,抗干扰能力强,相比其他算法具有明显优势。
在悬架的性能表现方面,车身振动加速度更容易受减振器响应时间特性的影响,而轮胎动变形受减振器响应时间的影响较小。这表明,通过优化减振器的响应时间,可以显著改善车身的振动加速度,从而提高乘坐舒适性。
(5) 硬件在环(HiL)试验台的开发与验证
为了验证本文提出的控制策略,本文利用电磁示功机开发了一台面向悬架控制的减振器硬件在环(Hardware-in-the-loop, HiL)试验台。该试验台能够模拟实际车辆在不同路况下的动态响应,为控制算法的验证提供了可靠的平台。
本文详细介绍了减振器HiL试验台的工作原理,并对试验台的跟随特性进行了分析验证。结果显示,试验台能够准确模拟减振器在不同工况下的动态响应,为控制算法的验证提供了可靠的实验数据。通过该试验台,本文对前面章节中提出的控制算法进行了验证。实验结果表明,针对不同的控制目标,本文提出的控制算法相比于其他算法更具有优势,能够显著提高悬架的性能。
# 示例代码 - 半主动悬架建模
class SemiActiveSuspension:
def __init__(self, mass, damping_coefficients, spring_constants):
self.mass = mass # 车身质量
self.damping_coefficients = damping_coefficients # 减振器阻尼系数
self.spring_constants = spring_constants # 弹簧刚度
self.body_acceleration = 0.0 # 车身加速度
self.tire_displacement = 0.0 # 轮胎动变形
def update(self, road_excitation, control_signal):
# 计算减振器的阻尼力
damping_force = self.damping_coefficients * control_signal * self.body_acceleration
# 计算弹簧力
spring_force = self.spring_constants * self.tire_displacement
# 计算总力
total_force = damping_force + spring_force - road_excitation
# 计算车身加速度
self.body_acceleration = total_force / self.mass
# 更新轮胎动变形
self.tire_displacement += self.body_acceleration * 0.1 # 假设时间步长为0.1秒
def get_body_acceleration(self):
return self.body_acceleration
def get_tire_displacement(self):
return self.tire_displacement
# 示例代码 - 改进的ADD控制
class ImprovedADDControl:
def __init__(self, suspension):
self.suspension = suspension
self.phase_compensation = -90 # 低频时的相位补偿
def calculate_control_signal(self, body_acceleration, frequency):
# 计算相位补偿后的控制信号
if frequency < 10: # 低频时
compensated_acceleration = body_acceleration * np.exp(1j * np.radians(self.phase_compensation))
else: # 高频时
compensated_acceleration = body_acceleration
# 计算控制信号
control_signal = np.abs(compensated_acceleration)
return control_signal
# 示例代码 - 改进的GH控制
class ImprovedGHControl:
def __init__(self, suspension):
self.suspension = suspension
self.phase_compensation = -90 # 低频时的相位补偿
def calculate_control_signal(self, tire_velocity, frequency):
# 计算相位补偿后的控制信号
if frequency < 10: # 低频时
compensated_velocity = tire_velocity * np.exp(1j * np.radians(self.phase_compensation))
else: # 高频时
compensated_velocity = tire_velocity
# 计算控制信号
control_signal = np.abs(compensated_velocity)
return control_signal
# 示例代码 - 混合控制
class HybridControl:
def __init__(self, add_control, gh_control, weight_add, weight_gh):
self.add_control = add_control
self.gh_control = gh_control
self.weight_add = weight_add
self.weight_gh = weight_gh
def calculate_control_signal(self, body_acceleration, tire_velocity, frequency):
# 计算ADD控制信号
add_signal = self.add_control.calculate_control_signal(body_acceleration, frequency)
# 计算GH控制信号
gh_signal = self.gh_control.calculate_control_signal(tire_velocity, frequency)
# 混合控制信号
control_signal = self.weight_add * add_signal + self.weight_gh * gh_signal
return control_signal
# 示例代码 - 滑模控制
class SlidingModeControl:
def __init__(self, reference_model, k, l):
self.reference_model = reference_model
self.k = k # 滑模增益
self.l = l # 滑模律
self.error = 0.0
self.error_integral = 0.0
def calculate_control_signal(self, current_state, reference_state):
# 计算误差
self.error = reference_state - current_state
self.error_integral += self.error
# 计算滑模控制信号
control_signal = self.k * self.error + self.l * self.error_integral
return control_signal
# 示例代码 - 参考模型
class ReferenceModel:
def __init__(self, ideal_damping_force, gravity_force):
self.ideal_damping_force = ideal_damping_force
self.gravity_force = gravity_force
def get_reference_state(self, current_state):
# 计算参考状态
reference_state = self.ideal_damping_force + self.gravity_force - current_state
return reference_state
# 示例代码 - 主程序
if __name__ == "__main__":
# 初始化悬架模型
suspension = SemiActiveSuspension(mass=1000, damping_coefficients=100, spring_constants=10000)
# 初始化控制策略
add_control = ImprovedADDControl(suspension)
gh_control = ImprovedGHControl(suspension)
hybrid_control = HybridControl(add_control, gh_control, weight_add=0.7, weight_gh=0.3)
reference_model = ReferenceModel(ideal_damping_force=500, gravity_force=9800)
sliding_mode_control = SlidingModeControl(reference_model, k=1.0, l=0.1)
# 模拟驾驶过程
for t in range(100):
# 获取当前状态
body_acceleration = suspension.get_body_acceleration()
tire_displacement = suspension.get_tire_displacement()
tire_velocity = suspension.get_tire_displacement() / 0.1 # 假设时间步长为0.1秒
# 计算控制信号
control_signal = hybrid_control.calculate_control_signal(body_acceleration, tire_velocity, frequency=5)
# 应用滑模控制
reference_state = reference_model.get_reference_state(tire_displacement)
control_signal = sliding_mode_control.calculate_control_signal(tire_displacement, reference_state)
# 更新悬架状态
suspension.update(road_excitation=1000, control_signal=control_signal)
# 打印当前状态
print(f"Time: {t}, Body Acceleration: {body_acceleration:.2f} m/s^2, Tire Displacement: {tire_displacement:.2f} m, Control Signal: {control_signal:.2f}")