聊聊-汽车软件功能开发与控制器集成测试
Posted 混合动力系统攻城狮
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了聊聊-汽车软件功能开发与控制器集成测试相关的知识,希望对你有一定的参考价值。
今天小编整理了汽车级的软件功能开发、控制器集成测试相关的知识。我们经常说的策略,其实是属于应用程序的范畴,策略和功能的开发符合软件工程的要求,测试包括开放源代码的白盒测试和只能拿到Hex文件的黑盒测试。本篇的主要内容有:汽车级软件要求、汽车软件结构、功能开发思路与方法和控制器集成测试方法。
1. 汽车软件的要求
许多针对发动机和行驶安全的系统必须具有良好的“实时性”,控制器响应必须与实际的物理过程相一致。在对非常快的物理过程进行调节时,要求计算速度必须非常快,要达到每秒可以执行2.5亿条指令。在很多情况下对可靠性要求会很高,尤其是与安全相关的功能。此外,还要采用一个复杂的诊断系统监控软件和电子系统的运行。汽车软件的要求如下图所示:
2. 汽车软件结构
汽车软件有很多程序组成,汽车级软件原则上分为应用软件(APP)和与硬件相关的基础软件(BSW)。微控制器以及标准软件组件的静态软件架构如下图所示:
软件可被分为不同的组,较大的组,如整车控制(HCU)、变速箱控制、发动机控制和电机控制等。较小的组,发动机控制又可以分为:进气系统、燃烧系统、燃油系统和排气系统控制等。还可以继续细分,直到某个传感器求值或喷油量计算等。
通常不会开发一个全新的大功能,而是尽可能地重复应用已开发好的和经过测试验证的软件部分。
某混合动力汽车软件结构举例如下所示(图片来源个人硕士论文):
3. 汽车软件开发流程
汽车V模式开发流程如下,简要描述为:首先在逻辑系统中对汽车的功能进行描述,然后将其映射到一个包含所有程序和数据的具体软件系统中。此处需要考虑整个由微处理器控制车辆系统。这样做的价值在于可清楚地将软件功能的技术规格(系统用于做什么)、设计构思(怎样构建组件)和技术实现(软件怎样转换)3步工作加以分离。软件功能的技术规格用物理层面上的电压、电流和转速来表现,而程序和数据的设计以及技术实现则需针对某一特定的微处理器来开发。
4. 汽车软件功能开发思路与方法
A.基于模型开发
在开发汽车开环和闭环控制功能时,除了要考虑功能安全外,还必须全面考虑可靠性、安全性以及实现过程中的诸多问题。基于模型的开发方法如下图所示,这种开发方法分为两大方面:用逻辑系统架构中的虚拟模型实现早期的功能测试和验证,而在技术系统架构中才涉及真实的控制器和车辆。
B.开环与闭环控制
在开环控制中,控制器的输出量是根据输入量、预先设定的数据、特定曲线以及控制逻辑(计算过程)在控制器中计算得到的,该控制过程不需要检验作用效果。
闭环控制形成封闭回路,在实际控制过程中,系统实际的输出值与期望值不断进行比较,一旦出现偏差,控制系统便对实际输出值进行纠正,典型控制实例:发动机怠速控制。
C.软件功能的建模与仿真
闭环仿真模型框图如下图所示,其中:
驾驶员模型:循环工况设置、换挡意图实现、加速踏板以及制定踏板等
环境模型:提供环境温度、湿度等信息
控制器模型:控制策略模型,决策发动机和电机需求扭矩等
整车模型:包括零部件本体模型、控制器模型(一般建立数值模型时,控制器和本体一起建模)、机械拓扑结构模型(主要是扭矩、转速的数学方程式)等
通过搭建控制策略和控制对象的模型,在PC环境下进行离线仿真,可以快速验证控制策略的正确性,实现基本的功能验证。
D.软件功能的快速原型控制技术
利用快速原型技术可以提前在实车上实现控制和调节功能的技术指标。模型化的控制或调节功能必须首先在试验中实现,一个试验系统可以用作实现控制和调节功能软件的执行平台(如下图所示)。
实验系统使用的快速原型控制器,它的计算能力通常比以后的量产控制器要高。使用快速原型工具并遵循统一的标准,就可以将特定的软件功能模型自动转换成可执行代码,以尽可能地模拟特定的各种特性。
5. 软件和电子控制器的集成和测试
(1)集成与源代码生成
通过自动代码生成技术,搭建的模型生成C代码和基础软件实现集成,编译器将控制器代码转化成机器可读的可执行源代码。一般的编译输出包括:十六进制文件(例如HEX文件)和符合ASAP2标准的A2L描述文件。生成的A2l文件截图如下所示:
(2)测试
在集成和测试阶段,仿真模型可以作为测试系统和测试平台的基础。在此,需要考虑经常性的企业重叠开发、集成和测试任务的特殊要求。原型车样车数量有限,因此大多数的零部件供应商没有一个完整的、实际的集成和测试环境对他们所提供的零部件进行测试。
零部件的集成是所有参与开发的零部件的同步点。只有在具备所有零部件的情况下才能进行集成测试、系统测试和验收测试。对于控制器来说,其软功能的测试只有在汽车所有零部件(传感器、执行器和被控对象)都具备的情况下才能进行。在实际车辆中,控制器需要与测量系统、标定系统以及诊断系统相连。这种情况下除了控制器的测量值外,对车辆数据也要进行显示和分析。
(3)在环测试系统
在环测试系统采用下述的测试方法:嵌入式电子系统通过接口与实验室中的真实环境(例如传感器和执行器)或者虚拟环境(数学模型)相连。被控对象可以是单个控制器,也可以是控制器网络。执行器可以采用实物,也可以是仿真模型。高功率的和具有复杂特性的执行器(例如喷油器和汽车的驱动电机)采用仿真模型可显著简化测试系统搭建。与台架测试和实车测试相比,在环测试灵活性更好,测试更全面深入,很容易复现测试案例;在环测试运行状态的设定不受物理条件限制,既可以方便地模拟老化和故障情况,也可以模拟器件的容差(比如设定值发生器、传感器和执行器),还可以测试控制器的监控、诊断和安全功能。
许多测试可以自动进行,这对于复杂的诊断测试(需要测试所有的诊断案例)是非常有利的。采用这种方式可以重复测试尽可能多的错误类型以及错误组合并形成错误文档。以这种方式可进行各种更加深入的测试。在环测试可用于软件和硬件的测试验证和扩展开发。根据被控对象的不同测试系统可分为如下几种方式:
A.模型在环(MIL)
用于测试软件的功能模型,被测试的功能模型在开发计算机上运行。
B.软件在环(SIL)
用于测试软件代码,被测试代码也在开发计算机上运行。
C.功能在环(FIL)
同样用于测试软件代码,但与软件在环不同的是:被测试软件在一个目标硬件(即控制器)上运行。这样可以在目标环境中考擦软特性的同时,还可以访问其内部变量。
D.硬件在环(HIL)
通过I/O口测试整个控制器功能,采用真实的控制器,整车通过模型模拟,待测部件为实物。
结语
近几篇文章都是流程性的介绍文章,小编码字的同时也顺便整理自己的思路。后续的文章依旧是基础知识的学习总结,先从车用传感器相关知识开始吧。小编刚刚入职1个月,依旧是小白一只,文章中有不合适的地方和思路有问题的,欢迎各个读者留言指正。
以上是关于聊聊-汽车软件功能开发与控制器集成测试的主要内容,如果未能解决你的问题,请参考以下文章