一、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)阻尼电流转换:产生实际需求电流。