SH垂向控制模块开发及与carsim联合仿真对比

本文探讨了半主动悬架与Carsim的联合仿真方法,涉及CDC减振器的建模、模拟器接口配置、天棚控制算法的应用以及仿真对比,结果显示天棚算法在衰减车身共振上有显著优势,但需进一步调参优化防止多余振动。

一、半主动悬架与Carsim联合仿真框架

整个cdc-carsim仿真工程框架大致如上图所示,carsim提供整车模型,实时输出加速度,角速度等传感器信号;simulink模型根据传感器信号的数据,各个控制模块依次计算需求电流。

由于carsim车辆模型没有带cdc减振器,只提供了减振器阻尼力的接口,因此,在各个模块加权计算出需求电流后,仿真模型多一步查表,查出阻尼力,再反馈回给carsim。

二、减振器力曲线

由于手里没有实际CDC示功曲线,我们这里尽可能接近的造一个。

以上图carsim中减振器曲线作为中间电流如(0.8A)时的CDC力特性曲线,两边的再按照一定比例增减。数据和曲线图如下所示:

三、配置carsim与simulink的接口

Carsim输出,Simulink输入

名称含义单位
Az_SM车身质心垂向加速度g
Ax_SM车身质心纵向加速度g
Ay_SM车身质心侧向加速度g
AVx车身质心侧倾率deg/s
Avy车身质心俯仰率deg/s
CmpRD_L1左前减振器压缩速率mm/s
CmpRD_L2左后减振器压缩速率mm/s
CmpRD_R1右前减振器压缩速率mm/s
CmpRD_R2右后减振器压缩速率mm/s
Az_S2左前车身垂向加速度g
Az_S3右前车身垂向加速度g
Az_S4左后车身垂向加速度g
Az_S3右后车身垂向加速度g

Carsim输入,Simulink输出

名称含义单位
IMP_FD_L1左前减振器阻尼力N
IMP_FD_L2左后减振器阻尼力N
IMP_FD_R1右前减振器阻尼力N
IMP_FD_R2右后减振器阻尼力N

四、搭建垂向SH控制模型

天棚控制算法原理及仿真_天棚算法-优快云博客

在上述这篇文章中,连续天棚计算公式如下:

这里C是指阻尼系数,阻尼系数可以看做是电流,电流越大,阻尼系数越大,反之电流越小,阻尼系数越小。依据这个公式,搭建天棚控制模型,依次计算得到四根减振器的需求电流。

需求电流再与减振器速度一起通过力--速曲线一起查表,便得到了减振器力,这个力输出到carsim,作用到carsim的车上。

五、仿真对比

这边随便调了一组参数,以36km/h车速经过c级路面,车辆质心加速度对比

均方根值对比提升 19.33%

在衰减车身共振频率方面,天棚算法与被动减振器比起具有很大优势,提升明显。但是同时在5到10hz之间引入了多余振动。后续再进行细致调参,如果仍解决不了此问题,考虑加入Add算法。

 

 

### Carla模拟器自动驾驶入门指南 #### 安装启动 Carla 是一个开源的自动驾驶研究模拟平台,专为支持自动驾驶系统的开发、训练和验证而设计。要开始使用 Carla 模拟器,首先需要完成安装过程。可以通过官方文档获取详细的安装说明[^4]。对于硬件性能较低的情况,可以调整参数以优化运行效率,例如通过命令 `./CarlaUE4.sh -prefernvidia -quality-level=Low` 来降低画质并提升帧率。 #### 基本架构功能 Carla 的核心目标是提供一种易于用户使用和定制化的工具,用于解决一系列自动驾驶相关任务。其主要特点包括: - **模块化 API**:允许开发者通过 Python 和 C++ 控制模拟环境。 - **传感器仿真**:支持多种传感器类型的配置,如摄像头、激光雷达 (LiDAR) 和 GPS 等。 - **动态场景生成**:能够完全控制静态和动态参者的行为,比如行人和其他车辆的动作。 - **开放标准兼容性**:采用 OpenDRIVE 标准定义道路和城市环境[^1]。 #### 手动控制脚本 为了熟悉 Carla 的操作方式,可以从手动控制脚本入手。以下是几个常用的示例脚本及其用途: - `manual_control_carsim.py`: 提供基本的手动驾驶体验。 - `manual_control_chrono.py`: 集成了 Chrono 物理引擎的支持。 - `manual_control_steeringwheel.py`: 支持方向盘外设连接进行真实感操控。 - `manual_control_gbuffer.py`: 展示如何访问图形缓冲区数据以便进一步分析处理[^2]。 #### 数据记录回放 利用 Carla 内置的数据记录功能可以帮助研究人员捕捉整个实验过程中发生的关键事件。所有重要信息都会被序列化存储在一个二进制文件里,之后可重新加载此文件实现精确重播。这不仅有助于调试复杂行为模式下的异常情况,还能作为机器学习模型输入的一部分加以利用[^5]。 #### 编程接口概览 下面给出一段简单的 Python 脚本来演示如何初始化客户端并服务器交互: ```python import carla def main(): client = carla.Client('localhost', 2000) world = client.get_world() blueprint_library = world.get_blueprint_library() vehicle_bp = blueprint_library.filter('model3')[0] spawn_point = random.choice(world.get_map().get_spawn_points()) vehicle = world.spawn_actor(vehicle_bp, spawn_point) try: main() finally: if 'vehicle' in locals() and vehicle is not None: vehicle.destroy() ``` 这段代码展示了怎样建立到 Carla Server 的链接,检索可用的地图起点列表,并在那里部署一辆特斯拉 Model 3 类型的小轿车实例[^3]。 ---
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

极简车辆控制

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值