半主动悬架软件架构

本文介绍了汽车行业中的Autosar软件架构,强调其标准化接口和配置灵活性,以及半主动悬架系统的详细软件架构,包括信号接口、功能模块和控制策略。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、Autosar软件架构

1、什么是Autosar

Autosar= Automotive Open System Architecture,汽车开发系统架构的意思。直白一点的讲就是把基础软件做一个封装,标准化接口,标准化代码,目标是做一套标准化代码,使得一套代码打天下,一套代码适用所有产品,用户精力就集中在应用开发,其它交给autosar;用户在移植到不同平台时候只要使用配置工具改改配置参数,导导文件,点击一键生成然后就生成了底层基础软件代码。

看起来是不是很没技术含量,从业小伙伴们自嘲他们只是"点一点工程师";其实不然,里面大有门道。这里插播个广告,有没有autosar小伙伴近期打算换工作的可以私聊交流沟通;

2、架构

大的方面,分为应用层(App),实时接口(RTE)和基础软件(Bsw);

应用层App: 功能实现,现在主要使用matlab/simulink进行开发,自动生成代码;
实时接口(Rte):链接应用层与基础层;
基础软件(Bsw):通信、IO、诊断等等非常多服务
Microcontroller:硬件库文件,基本上是与芯片厂家合作开发,主要包含与硬件强相关的代码如电源直接驱动,寄存器直接读取等。

再往细一点的分法就五花八门了,我们不是专门讲autosar的专栏,我就拿个简单的(图片来自雪云飞星博客),功能开发涉及到的在SWC1,SWC2......不同模块生成的代码最后集成到一个统一的工程里。

二、半主动悬架软件架构

1、软件架构

2、信号接口

应用层输入信号:
VehErrMode: 整车故障等级,严重故障则CDC保持默认电流,轻微故障则CDC正常运行;
DriveMode: 驾驶模式,驾驶员输入,可选择运动模式、舒适模式等;
VehSpd:车速,km/h
AccPosition:加速踏板开度,0~100%;
BrkPosition:制动踏板开度,0~100%;
SteerAng:方向盘角度,-720°~720°;
HighFL/HighFLVld:左前高度及高度信号有效性;
HighFR/HighFRVld:右前高度及高度信号有效性;
HighRL/HighRLVld:左后高度及高度信号有效性;
HighRR/HighRRVld:右后高度及高度信号有效性;
AccFL/AccFLVld:左前车身加速度及有效性;
AccFR/AccFRVld:右前车身加速度及有效性;
AccRL/AccFRVld:左后车身加速度及有效性;
EcuSysState:ECU系统状态,初始化、上电、正常工作、降级、故障、下电等;

应用层输出信号:
DampErrState:减振器控制系统故障状态;
DampErrCode:减振器系统故障代码;
RefCurrentFL:左前减振器需求电流,0.5~3A;
RefCurrentFR:右前减振器需求电流,0.5~3A;
RefCurrentRL:左后减振器需求电流,0.5~3A;
RefCurrentRR:右后减振器需求电流,0.5~3A;

最后,ECU驱动电路产生实际电流CurrentFL、CurrentFR、CurrentRL、CurrentRR作用在减振器电磁阀上,产生阻尼力。

3、功能模块说明

1)信号预处理与运动解算:信号滤波、信号转换,估算右后车身加速度AccRR、侧向加速度及纵向加速度;
2)  故障诊断与状态管理:诊断减振器有无失效等故障;状态管理指根据ECU系统状态及故障诊断结果,管理电流输出与否;
3)垂向振动控制:即前面讲的天棚控制,优化垂向抖动;
4)俯仰控制:优化起伏颠簸路面时车身的前后俯仰运动;
5)转向侧倾控制:优化转弯时车身侧倾角度,保持车身姿态;
6)制动点头控制:优化制动减速时车速点头幅度,保持车身姿态;
7)加速抬头控制:优化加速时车身抬头幅度,保持车速姿态;
8)过减速带优化:针对单一工况的优化;
9)  末端行程保护:防止剧烈冲击撞击车身限位;
9)路面粗糙度估计:实时区分几个路面粗糙度等级,不同路面等级采用不同增益参数。
10)阻尼结果综合输出:3~9都会输出一个阻尼比参数,综合加权或别的逻辑处理后,输出一个总的阻尼参数;
11)阻尼电流转换:产生实际需求电流。

### 使用Simulink进行全主动悬架建模与仿真的方法 #### 1. 建立基本模型结构 在Matlab/Simulink环境中,建立汽车悬架系统的仿真模型通常从定义物理组件及其相互作用开始。这包括车轮、车身质量、弹簧阻尼器以及执行机构等部件的参数设置[^1]。 对于全主动悬架而言,在传统被动元件基础上增加了能够实时调整特性的作动装置(如液压缸),这些都需要被精确描述并集成到整体架构之中。为了简化初期工作量可以考虑利用已有的成熟模板作为起点[^2]。 ```matlab % 定义全局变量和常数 global m c k F; m = 500; % 车身质量 (kg) c = 1000; % 阻尼系数 (Ns/m) k = 1e5; % 弹簧刚度 (N/m) function dydt = suspension(t,y) global m c k F z = y(1); v = y(2); dzdt = v; dvdt = (-c*v-k*z+F)/m; dydt=[dzdt;dvdt]; end ``` 此部分代码展示了如何设定一些基础属性值,并编写简单的二阶微分方程来表示单自由度振动系统的行为模式——这是构建更复杂多体动力学问题前的重要准备阶段之一。 #### 2. 设计控制器逻辑 针对不同工况下的需求变化而优化响应表现,则需引入适当类型的反馈控制系统。例如PID调节器因其易于理解和实现成为首选方案;而对于更加复杂的场景则可能涉及到自适应控制、模糊推理乃至神经网络等多种高级算法的选择应用[^3]。 当采用模糊控制时,可以通过创建隶属函数集合理解输入信号特征分布情况进而制定决策规则表用于指导输出动作幅度大小: ![Fuzzy Logic Controller](https://www.mathworks.com/help/fuzzy/ug/examples/images/fis-diagram.png) 图中展示的是一个典型的二维输入一维输出型模糊推理解析框架实例,其中包含了三个主要组成部分:前提条件评估单元负责接收外部刺激信息经过量化处理后传递给核心运算层完成最终判断过程并向外界发送指令消息。 #### 3. 进行联合调试验证 最后一步就是把上述各个独立环节组合起来形成闭环测试回路以便观察实际运行效果是否满足预期目标要求。此时应该充分利用软件自带的各种可视化工具辅助分析数据趋势曲线帮助快速定位潜在缺陷所在位置及时加以修正完善直至达到满意程度为止[^4]。 ```matlab mdlName='FullActiveSuspension'; open_system(mdlName); set_param([mdlName '/Vehicle Body'],'Position',[100,100]); set_param([mdlName '/Road Excitation'],'Amplitude', 'A'); set_param([mdlName '/Controller'],'P','Kp','I','Ki','D','Kd'); sim(mdlName); ``` 以上脚本说明了怎样加载预存档文件(.slx),并对特定子模块内的某些关键配置项做出相应修改操作之后启动整个工程项目的模拟流程。
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

极简车辆控制

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

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

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

打赏作者

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

抵扣说明:

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

余额充值