APP下载

基于MBD的线控底盘实验设计方法

2022-09-01刘彦博孙伟奇陈思聪申赞伟

实验室研究与探索 2022年5期
关键词:阿克曼线控底盘

刘彦博,孙伟奇,史 瑞,陈思聪,郝 丽,申赞伟

(1.上海交通大学a.电子信息与电气工程学院教学发展与学生创新中心,b.资产管理与实验室处,上海 200240;2.心动互动娱乐有限公司城北大王寨工作室,上海 200070;3.斯柯信号有限公司平台技术中心,上海 200071)

0 引言

“十四五”期间,智能网联汽车产业将越发备受关注。国务院、国家发展和改革委员会都将智能汽车放到核心战略发展地位[1]。到2025 年,我国部分自动驾驶、有条件自动驾驶智能网联汽车将有望占当年汽车市场销量的50%以上[2]。行业预计智能汽车中的代码行数将超过1 亿行,这使得汽车系统变得越来越复杂。而传统面向文档的方法来开发系统和软件已达到其效率极限[3]。

“智能网联汽车技术路线图2.0”的发布,加速了汽车产业布局。随着无人驾驶汽车系统复杂程度的提高,开发过程的每个阶段都会带来复杂性[4]。对于大型系统,任何隐藏在复杂阶段中的小问题都有可能对整个系统造成损害。自动驾驶公司正在使用基于模型开发的设计理念来践行软件定义汽车。在教学中引入企业前沿设计理念,可激发学生的兴趣和研究方向[5]。

1 模型设计理念

在传统的开发过程中,需求、设计、实现和测试任务在不同的工具环境中顺序执行,有许多手动步骤。需求通过文本方式捕获,使用文档管理工具。如图1所示的传统设计流程中,每个阶段都可能会出现一些缺陷。前面阶段中所积累的缺陷会引发在测试阶段中开发时间和成本的资源消耗和损失[6]。

图1 传统设计流程

如图2 所示,相同的一组需求分别为基于模型的设计和传统流程设计流程。需求不作为文本规范的基础,而是用于以模型的形式开发可执行的规范。MBD使用这些模型来阐明需求和规范。然后对模型进行详细阐述,来进行详细设计。使用基于模型的设计工具,可以在系统级模拟设计实现之前发现接口缺陷。一旦设计完成,就会自动从模型中生成产品代码和测试用例。测试可以在需求阶段开始来模拟可执行的规格,以验证需求是否被满足。进而使得缺陷被更早地捕获并移除,降低了开发的总成本[7]。

图2 基于模型设计流程

如图3 所示为V-模型开发生命周期的各阶段与其相关的测试阶段之间的关系。水平轴和垂直轴分别表示时间或项目完整性(从左到右)和抽象级别。

图3 V-模型开发流程

(1)系统设计阶段。通过研究用户需求文档来分析和理解所提议系统的业务。系统设计实现用户需求的可能性和技术,并相应地编辑用户需求文档。这个过程生成用作开发阶段蓝图的软件规范文档。这些文档包含一般的系统组织,菜单结构,数据结构等。为了更好地理解,它可能还包含示例业务场景,示例窗口,报告。在此阶段还将制作其他技术文档,例如实体图,数据字典。在这一阶段准备了用于系统测试的文档。

(2)需求分析阶段。首先生成需求文档,描述系统的功能、界面、性能、数据和安全需求。它将作为系统设计人员在系统设计阶段的指南,包括软性和硬性方法的需求。

(3)架构设计阶段。即计算机体系结构和软件体系结构设计的阶段,也可以称为高级设计。选择体系结构的基准是应实现包括模块列表等每个模块的简要功能,如接口关系、依赖关系、数据库表、体系结构图、技术细节等。在特定阶段进行集成测试设计。

(4)单元设计阶段。也称为底层设计。设计的系统分为较小的单元或模块,并对每个单元或模块进行说明,以便直接编码。设计文档或程序规范将以伪代码包含模块的详细功能逻辑:数据库表以及所有元素,包括其类型和大小;所有接口详细信息以及完整的应用程序接口(Application Programming Interface,API)参考;所有相关性问题和错误消息列表;完成模块的输入和输出。在此阶段进行单元测试设计。

(5)单元测试(Unit Testing,UT)阶段。即一种测试源代码的各个单元以确定它们是否适合使用的方法。在过程编程中,一个单元可以是单独的功能或过程。UT由程序员或偶尔由白盒测试人员创建。通过测试功能中的每个可能分支,来验证内部逻辑代码。

(6)集成测试(Integration Testing,IT)阶段。将其单独的模块一起测试来暴露接口和集成组件之间在交互中的故障。在IT 过程中通常不直接检查代码是否存在错误,因此测试通常是一个黑匣子。

(7)需求验证测试阶段。即用于确定系统是否满足需求分析阶段中指定的需求的测试阶段。验收测试设计源自需求文档。验收测试阶段是客户用来确定是否接受系统的阶段。

(8)系统集成和测试(System Integration Testing,ST)阶段。它将系统规范与实际系统进行比较。IT 完成后,下一个测试级别是ST。ST 将检查集成产品是否满足指定要求。在较低的测试级别中,测试是根据技术规范进行的,即从软件生产商的技术角度进行的测试。ST是从客户和未来用户的角度来看系统。测试人员验证是否完全和适当地满足了要求;所有系统组件的相互作用都会产生许多功能和系统特性。因此,它们仅在整个系统的级别上可见,并且只能在此处进行观察和测试。

2 车辆模型建模

选择的底盘设计为阿克曼底盘设计。阿克曼转向几何学是汽车或其他车辆转向中连杆的几何布置,它能解决转弯内外车轮需要找出不同半径圆的问题[8]。

目前阿克曼底盘在低速自动驾驶底盘和中国大学生方程式赛车中应用较多[9-10]。

如图4 所示,阿克曼底盘可分为前转向和后转向。本文阿克曼模型选用前转向。

图4 阿克曼底盘模型

图中参数:δin为转向角,(°);δL为左车轮角,(°);δR为右车轮角,(°);δvir为虚拟轮角,(°);TW为跟踪宽度,m;WB为轴距,m;TC为转弯半径,m;γ 为转向比例。

阿克曼转向系统的基本要求,在转弯时,内侧转向轮相对于车辆纵向中心线的转向角必须大于外侧转向轮。转向轮之间的转向角之差称为前束角。对于理想的阿克曼转向,车轮角度有一个共同的转弯圈。

为了简化整体结构,对经典汽车底盘件做了部分改动。普通的独立车轮悬架是一种复杂的机械结构。底盘分为两部分,后部(承载两个驱动单元)和前部(承载其余的设备)。这两个部分由轴承内的轴连接,使后桥能够摆动。这种方法能够避免因重载而使经典的独立悬架无法实现的情况。基于实际的转向角度和期望的前进速度,车载电脑(Electronic Control Unit,ECU)来计算车轮速度和设置为驱动单位。计算转向角度的方程为[8]:

3 Simulink建模与仿真

使用Matlab Simulink 进行车辆运动过程进行建模[11]。Matlab Simulink 软件被广泛适用于汽车仿真,用于建立模型车动力模型,将车辆动力模型进行匹配。在Mathworks Hardware Suppport页面中可以获取、配置Matlab和Simulink的集成硬件解决方案。

在车辆建模设计过程中,对于车辆运动力学方面要考量速度、纵向加速度、横向加速度以及车辆本身的质量,车轮转动惯量等参数。线控底盘Simulink 建模结构,如图5 所示。模型采用高电平控制器,该模型的异步系统基于中断的子系统,模型的同步基于控制器局域网络(Controller area network,CAN同步通信[12]。

图5 线控底盘控制模型

编码器计数异步更新。当一个完整上升沿触发,中断发布。CPU 和中断信号的设置对应eCAP 模块。如图6 所示,eCAP引脚需要根据型号硬件实现配置上的布线进行设置。在主同步模型中每10 ms检索和重置一次的计数。

图6 eCAP模型

如图7 所示,目前限于编码器更新速率,车辆动力学控制器采样时间为10 ms。

图7 编码器采样模型

如图8 所示,在线控底盘设计中,ePWM模块产生PWM(Pulse width modulation)信号来调节电动机。定时器周期必须小于20 kHz,电动机使用ePWM模块的A和B通道。当收到标准化的期望速度时,1 前进,-1反向。

图8 电机速度控制模型

如图9 所示,舵机转向控制信号(steering端)经过处理后,输出至eCAP 模块。本文使用CAN 打包/解包以及CAN传输和接收在CAN总线上共享数据。

图9 舵机转向控制模型

CAN Receive端接收到信号后解析出控制信号传输到执行端口,如图10 所示。

图10 CAN接收模型

CAN Send端接发送信号,将控制信号打包后传输到传送端口,如图11 所示。

图11 CAN发送模型

DBC(Data Base CAN)设计文件包含打包信息,如图12 所示。使用CAN硬件支持包访问CAN网络,发送信息到CAN网络,使用仪表板块可视化车辆状态。

图12 Simulink CAN DBC打包信息

通过使用Embedded Coder 生成代码,如图13所示。

图13 Simulink模型代码生成

基于MBD设计代码测试全覆盖,满足要求,如图14 所示。

图14 Simulink模型代码测试

4 实车验证

将以上实验模型,配合目前设计参数来构建总模型,满足电动机控制器功率与电压的基本需求。

如图15 所示,线控底盘供电系统7.3 V电池为舵机、双电动机驱动供电。7.3 V通过DC-DC 模组升压到9 V为CAN卡供电。7.3 V通过5 V稳压器给ECU供电。ECU 输出3.3 V 给霍尔传感器获取前端编码器和后端编码器信息。底盘调试,通过DB9 数据接口将程序加载到自动驾驶线控底盘。

图15 线控底盘硬件供电图

图16 所示为Matlab Gui 搭建的调试界面,读取CAN信号解析后,图形页面显示不同传感器上的信息。可通过速度以及车辆动力学参数,计算出在当前车速下车辆性能,在某一时刻下车辆的纵向加速度、速度、车辆质量的信息。

图16 线控底盘Simulink调试界面

图17 所示为设计的线控底盘在全局参考轨迹的跟踪途径,从原点出发,返回到终点,能够满足自动驾驶赛道的要求。

图17 线控底盘轨迹路径图

5 结语

本文搭建了基于模型线控底盘仿真模型与硬件。将仿真参数代入实车模型,验证了模型的正确性。通过线控底盘的全流程设计,培养了基于车辆动力学方程从系统设计、需求分析,到自动生成代码、代码测试的工程实践能力,提升自主设计的创新能力。该设计方法的掌握,可使设计过程少走弯路,不仅可以缩短开发周期,还能有效节约开发成本。

猜你喜欢

阿克曼线控底盘
嗜黏蛋白阿克曼菌与肥胖相关代谢性疾病的研究进展
2023年实现量产,长城汽车智慧线控底盘技术全揭秘
基于磁流变液的线控转向力反馈装置探究
基于线控转向系统的无人驾驶技术发展
轿车底盘评价调校初探
依维柯New Daily底盘改装房车中国首秀
底盘测功机的发展及应用
瑞风S5车底盘异响
93岁外婆和德国作家的幽默问答等二则
约瑟夫·阿克曼:扛起德意志银行的革命大旗