CAN/CANFD
CCP/UDS
Bootloader/OTA
ECU/VCU/FCU
Simulink/ECUCoder
Ethernet
Hardware
Download
上一篇
下一篇
燃料电池系统控制器FCU
一.燃料电池系统控制器概述
-1.1.FCU知名产品
-1.2.FCU产品开发方案
二.FCU硬件的设计与开发
-2.1.关键元器件的选型
-2.2.FCU硬件模块介绍
-2.3.PCB设计
-2.4.硬件功能测试
-2.5.设计失效模式及后果分析
三.FCU结构的设计与开发
-3.1.FCU的结构组成
-3.2.FCU在整车上的布局
四.FCU基础软件的设计与开发
-4.1.FCU基础软件开发工具链
-4.2.FCU基础软件的系统架构
-4.3.FCU基础软件的主要模块
五.FCU应用软件的设计与开发
-5.1.FCU应用软件开发工具链
-5.2.FCU应用软件的主要模块
-5.3.FCU应用软件的MiL测试
-5.4.FCU的HiL硬件在环仿真测试
-5.5.FCU台架测试
六.DV和PV测试
-6.1.DV测试
-6.2.PV测试
七.FCU标定
-7.1.标定工具链
-7.2.桌面标定
-7.3.HiL标定
-7.4.台架标定
八.FCU小结
回到顶部
燃料电池系统控制器FCU
一.燃料电池系统控制器概述
-1.1.FCU知名产品
-1.2.FCU产品开发方案
二.FCU硬件的设计与开发
-2.1.关键元器件的选型
-2.2.FCU硬件模块介绍
-2.3.PCB设计
-2.4.硬件功能测试
-2.5.设计失效模式及后果分析
三.FCU结构的设计与开发
-3.1.FCU的结构组成
-3.2.FCU在整车上的布局
四.FCU基础软件的设计与开发
-4.1.FCU基础软件开发工具链
-4.2.FCU基础软件的系统架构
-4.3.FCU基础软件的主要模块
五.FCU应用软件的设计与开发
-5.1.FCU应用软件开发工具链
-5.2.FCU应用软件的主要模块
-5.3.FCU应用软件的MiL测试
-5.4.FCU的HiL硬件在环仿真测试
-5.5.FCU台架测试
六.DV和PV测试
-6.1.DV测试
-6.2.PV测试
七.FCU标定
-7.1.标定工具链
-7.2.桌面标定
-7.3.HiL标定
-7.4.台架标定
八.FCU小结
回到顶部
# 燃料电池系统控制器FCU ## 一.燃料电池系统控制器概述
燃料电池根据技术原理大致可以分为五类:碱性燃料电池、磷酸燃料电池、熔融碳酸型燃料电池、固体氧化物燃料电池、质子交换膜燃料电池,其中氢氧质子交换膜燃料电池(简称氢燃料电池)应用最为广泛。燃料电池系统控制器FCU(Fuel Cell Control Unit,简称FCU)作为燃料电池系统的控制大脑直接决定了整个燃料电池系统的运行效率和工作稳定性。 ![](images/FCUsmall.png)
图1-1 氢燃料电池系统与FCU
FCU主要功能有以下几点: 1. 氢气气路管理,采集阳极氢气进气压力,根据目标压力需求控制喷氢阀进行氢气补给,同时需要完成排水排气处理。 2. 空气气路管理,采集阴极空气进气压力,根据目标压力需求控制空压机和节气门进行空气补给。 3. 水热管理,根据电堆的当前温度,进出口温度进行系统温度控制。 4. 系统状态控制,根据当前需求对各个子系统进行任务调度。 5. 故障诊断与分级,对控制过程中出现的异常进行诊断识别定位,划分出故障等级进行上报提醒。 FCU硬件由电路板、接插件、外壳、透气阀等部件构成。其中电路板上带有车规级单片机,FCU软件在单片机中存储与运行。 ### 1.1.FCU知名产品
华海科技RapidECU-F系列控制器是当前国内燃料电池行业应用最为广泛的燃料电池系统控制器。本站提供了《[RapidECU-F23控制器硬件参考手册](./f23.html)》给用户参考。 ### 1.2.FCU产品开发方案
FCU产品的开发普遍使用V型开发模式,如下图V模型示意图表明开发中存在的不同级别以及测试过程各阶段和开发过程各阶段的对应关系。 国内当前的主流开发方案是FCU供应商给主机厂或者系统厂家技术团队提供软件开发环境,比如《[电控开发环境搭建手册](./build.html)》。主机厂或者系统厂家技术团队主导开发FCU软件,过程中FCU供应商提供技术支持。对于不具备FCU软件开发能力的部分主机厂,则可以委托FCU供应商或者第三方开发软件。 V模型是一个汽车领域广泛使用的开发模型,也是在软件测试中最具代表性的测试模型之一,如图1.2-1所示。 ![](images/2023-04-10-14-05-15.png)
图1.2-1 V模型
V 模型从左到右,描述了基本的开发和测试过程,明确标注了项目过程中不同级别的开发测试阶段。图中箭头代表了时间方向,左边下降的过程属于开发阶段,右边上升的过程属于测试阶段。 在FCU系统开发中,最有影响力的汽车行业标准之一是ISO 26262《道路车辆功能安全》。ISO 26262是适用于汽车用电子、软件企业的电气产品功能安全的国际标准。目前最新ISO 26262标准是2018 年12月发布的第二版。 ISO 26262《道路车辆功能安全》国际标准是针对总重不超过3.5吨八座乘用车,以安全相关电子电气系统的特点所制定的功能安全标准,基于IEC 61508 《安全相关电气/电子/可编程电子系统功能安全》制定,在2011年11月15日正式发布。 ISO 26262是史上第一个适用于大批量量产产品的功能安全(Functional Safety)标准。特别需要注意的是,ISO 26262仅针对安全相关电子电气系统,包含电机、电子零件与软件,不应用于非电子电气系统(如机械、液压等)。 ISO 26262为汽车安全提供了一个生命周期(管理、开发、生产、经营、服务、报废)理念,并在这些生命周期阶段中提供必要的支持。该标准涵盖功能性安全方面的整体开发过程(包括需求规划、设计、实施、集成、验证、确认和配置)。 ISO 26262标准根据安全风险程度对系统或系统某组成部分确定划分由A到D的安全需求等级(Automotive Safety Integrity Level 汽车安全完整性等级ASIL),其中D级为最高等级,需要最苛刻的安全需求。伴随着ASIL等级的增加,针对系统硬件和软件开发流程的要求也随之增强。对系统供应商而言,除了需要满足现有的高质量要求外还必须满足这些因为安全等级增加而提出的更高的要求。 ISO 26262提供了一套非常缜密的管理方法、流程、技术手段和验证方案,称之为安全管理生命周期,如图1.2-2所示。 ![](images/2023-08-14-13-53-04.png)
图1.2-2 安全管理生命周期体系
各阶段的作用如下所示: 1. 项目定义。根据项目的各种重要信息,描述本次项目的功能需求、接口定义、环境条件、功能安全等。 2. 安全生命周期初始化。根据项目定义,确定安全生命周期的划分。 3. 危险分析和风险评估。确定功能安全ASIL的等级。 4. 功能安全概念。根据项目架构,确定每个环节具体的功能安全要求。 5. 系统级产品开发。参照V模型,对产品软硬件进行开发、测试、集成、验证。 6. 产品硬件研发。遵循ISO 26262-5 按照V模型进行硬件研发。 7. 产品软件研发。遵循ISO 26262-6 按照V模型进行软件研发。 8. 生产计划和操作计划。ISO 26262-6 定义了生产和操作的具体要求。 9. 产品发布。ISO 26262-4 规定了产品发布的具体要求。 10. 操作、服务和拆解。应该符合ISO 26262-7的具体要求。 11. 可控性。危险分析和风险评估中,要考虑所有相关人员的危险控制能力。 12. 外部措施。除开车辆本身的安全措施外,还需要考虑,例如护栏、隧道消防系统等安全保护措施。 13. 其他技术。项目以外的,不同于E/E设备的技术,如机械和液压技术。 通过以上具体的生命周期的各个阶段和标准中对每个阶段所必须考虑的措施方法和具体技术的要求,将各个阶段的要求和如何满足要求的措施都进行逐一落实,这样才能设计、制造出满足功能要求的安全产品。 ## 二.FCU硬件的设计与开发
在燃料电池系统中,FCU需要与不同的电控单元、传感器、执行器交互,在硬件方面需要丰富的输入输出资源支持控制需求,FCU硬件一般需要满足以下几个要求: 1. 能够采集氢气侧压力,空气侧压力及流量,温度信息等车载部件的信号。 2. 能够通过PWM或者Peakhold驱动比例阀或者喷氢阀,通过高/低端功率驱动控制排水阀、排气阀,控制冷却水泵、散热风扇等负载部件工作。 3. 与VCU、DCF等控制器进行CAN通信,与部分传感器进行SENT通信等。 为了实现FCU与周边电器件的正常交互,FCU系统应支持模拟量输入、数字量采集、PWM 输入/输出、低端驱动、高端驱动、CAN、SENT等通道。FCU上给主芯片供电的电源可采用系统基础芯片 (SBC)。FCU通常需要配置监控芯片,即硬件看门狗功能。 FCU的硬件设计开发包括原理图的设计、电路功能仿真、印制电路板 (PCB)设计与检测(包括布线、布局规则的检测和信号完整性分析)等。电路原理图和PCB设计尤为重要,其设计合理性对FCU的运行性能有较大影响。 原理图设计、电路仿真、PCB设计均需要用到EDA工具软件,关于EDA工具软件可以参考本站《[电控硬件基础知识](./hardware.html)》中的章节《[EDA工具的选择](./hardware.html#EDA工具的选择)》。 ### 2.1.关键元器件的选型
FCU的关键元器件需满足“车规级”要求,根据ISO 26262的规定,为了达到一定的功能安全等级,需要选择ASIL D级的主控芯片。根据初步计算得到的需求参数选择电源芯片、驱动芯片、收发器等。元器件选型过程中最主要最关键的是单片机的选型。 关于FCU使用单片机选型可以参考本站《[单片机基础知识](./mc.html)》中的章节《[电控系统的单片机选型](./mc.html#电控系统的单片机选型)》。 ### 2.2.FCU硬件模块介绍
燃料电池系统控制器是一个多输入、多输出、模数电路共存的复杂系统,其各个功能电路相对独立。因此,按照模块化思想设计了硬件系统的各个模块,主要包括 MCU最小系统、电源管理、开关量输入、频率量输入、模拟量输入、高/低端驱动模块、PWM驱动、CAN通信模块、SENT通信模块等。典型的FCU硬件框图如图2.2-1所示。 ![](images/F23_HW.png)
图2.2-1 FCU硬件框图
**1.MCU最小系统** MCU最小系统为FCU的核心,内含小型 CPU 负责运算。MCU 最小系统由主控芯片及其周边的复位电路、晶振电路组成。 单片机复位电路类似计算机的重启部分电路,当计算机在使用中出现“死机”情况时,按下重启按钮,计算机内部的程序从头开始执行,实现软件功能复位。 晶振是晶体振荡器的简称。如图2.2-2所示为串联型振荡器,晶振Y1与单片机的引脚EXTAL、XTAL构成振荡电路,此时会产生谐波,降低电路时钟振荡器的稳定性,因此需要在晶振的两引脚处接入两个10~50pF 的瓷片电容接地,以减小谐波对电路稳定性的影响。 ![](images/VCU_OSC.png)
图2.2-2 MCU晶振电路
**2.传感器电源输出** 电源电路将外部电源输入转换为平稳的3.3V和5V电源,可以为FCU板上电路和外部传感器供电,如图2.2-3所示。 电源芯片具备过流及短路保护,对5V电源输出电压具有采集监控功能。电源芯片需具备外部使能信号,可实现硬线唤醒。 ![](images/2023-04-13-10-12-33.png)
图2.2-3 电源电路
**3.模拟量输入** 电压 (或电流电阻) 随时间连续变化的信号称为模拟信号。模拟量输入模块的作用就是将各种模拟量信号变换成单片机能够识别处理的信号。 常见的FCU模拟量输入信号有氢气压力、空气压力、蓄电池电压、各类温度传感器信号等。 模拟量输入信号分为电阻信号和电压信号两种。 模拟量输入的电路示意图可参考本站《[RapidECU-F23控制器硬件参考手册](./f23.html)》中的章节《[模拟量输入_下拉型](./f23.html#模拟量输入_下拉型)》与《[模拟量输入_上拉型](./f23.html#模拟量输入_上拉型)》。 **4.开关量输入** 开关量输入信号分为高电平有效信号及低电平有效信号,电压范围为0~32V。FCU中常见的开关量信号有急停开关信号、风扇故障信号、水泵故障信号等。 开关量输入的电路示意图可参考本站《[RapidECU-F23控制器硬件参考手册](./f23.html)》中的章节《[高有效开关量输入](./f23.html#高有效开关量输入)》与《[低有效开关量输入](./f23.html#低有效开关量输入)》。 **5.频率量输入** FCU上常见的频率量输入信号有风扇PWM输入信号、水泵PWM反馈输入信号等。在设计频率量输入电路时,主要考虑信号的幅值与频率范围。通常情况下,频率量输入端口与开关量输入端口可以复用管脚。比如F23控制器中的频率量输入端口与开关量输入端口均复用管脚。 **6.低端功率驱动输出** FCU可通过低端功率开关驱动负载。负载一端接电瓶正极或者用于低端功率驱动负载的电源正极UBR,另一端接FCU低驱实现驱动负载工作。根据驱动负载能力需求,如400mA、1A、4A等,来选择不同的驱动芯片,同时芯片应具有过流、短路保护功能及故障判断功能。 低端功率驱动输出的电路示意图可参考本站《[RapidECU-F23控制器硬件参考手册](./f23.html)》中的章节《[低端功率驱动](./f23.html#低端功率驱动)》。 **7.高端功率驱动输出** FCU可通过高端功率开关驱动负载。负载一端接电瓶负极,另一端接FCU高驱实现驱动负载工作。根据驱动负载能力需求,如1.8A、2.2A等,来选择不同的驱动芯片,同时芯片应具有过流、短路保护功能及故障判断功能。 高端功率驱动输出的电路示意图可参考本站《[RapidECU-F23控制器硬件参考手册](./f23.html)》中的章节《[高端功率驱动](./f23.html#高端功率驱动)》。 **8.频率量输出** 频率量输出可变化的频率或占空比信号,调节负载工作状态,从而实现控制功能。例如冷却水泵PWM控制。通常情况下,频率量输出端口与功率驱动输出端口可以复用管脚。比如F23控制器中的频率量输出端口与功率驱动输出端口均复用管脚。 **9.H桥模块** H桥是一个典型的直流电机控制电路,因为它的电路形状酷似字母H,故得名“H桥”。设计H桥电路主要考虑直流电机的电压、功率与PWM频率。 H桥驱动的电路示意图可参考本站《[RapidECU-F23控制器硬件参考手册](./f23.html)》中的章节《[H桥驱动](./f23.html#H桥驱动)》。 **10.CAN通信模块** CAN通信模块能够实现FCU与其他电控单元的通信,波特率一般设定为250kbps或者500kbps(CAN FD数据域常用2Mbps),通信目标有DCF、电池管理系统BMS、充电机、仪表盘等。根据需求配置总线唤醒功能。 CAN协议已经由国际标准化组织(ISO)标准化,即ISO11898,有关CAN的详细内容,请查看本站《[CAN总线基础知识](./canbasic.html)》文档。 ![](images/VCU_CAN.png)
图2.2-4 CAN总线接口电路原理图
电阻R1和R2为终端电阻,阻值为62Ω,如果总线上已经有两个以上的电控单元接入了终端电阻,那么R1和R2可以拆除。 图中D1为TVS二极管,U1为共模滤波器(可选),U2为CAN收发器。 ### 2.3.PCB设计
PCB基本设计流程如下:准备→PCB结构设计→PCB布局→布线→铺铜和丝印→网络和DRC(设计规则检查)检查及结构检查→制板。 **1.准备** 首先需要准备原理图元件库和PCB元件库(封装),开始设计原理图。 元件库可以用EDA软件自带的库,但是最好根据实际所选的元件尺寸制作对应的元件库。通过原理图生成网络表文件,PCB设计环境使用网络表文件。 **2.PCB结构设计** 根据已经确定的电路板尺寸和机械定位,在PCB设计环境下绘制PCB板面,按定位要求放置所需的接插件、按键/开关、螺钉孔、装配孔等,并且考虑是否与布线区域冲突。 **3.PCB布局** 布局就是在电路板上放置元器件,布局是否合理,会影响后续PCB走线的可行性,根据原理图生成网络表,然后在PCB图上导入网络表。各引脚之间还有飞线提示连接。然后就可以对器件进行布局了。布局主要考虑电磁兼容性、生产过程可行性等方面的管控,下面给出一些具体规则: 1. 按电气性能合理分区,例如:供电、数字电路(既受干扰影响、又产生干扰)、模拟电路(受干扰影响)、功率驱动(干扰源)、通信。 2. 完成同一功能的电路,应尽量靠近放置,并调整各元器件以保证连线最为简洁。同时,调整各功能块间的相对位置,使功能块间的连线最简洁。 3. 对于质量大的元器件,应考虑安装位置和安装强度,发热元件尽量远离对温度敏感的元件,必要时还应考虑热对流措施。 4. I/O驱动模块尽量靠近印制电路板的边、靠近引出接插件,减少外部干扰信号进入电路板。 5. 晶振应尽量放置在主控芯片附近。 6. 在每个集成电路的电源输入管脚和地之间,需加一个去耦电容。 7. 布局要均衡,疏密有序。 **4.PCB布线** 布线是整个PCB设计中最重要的工序,直接影响着PCB性能的好坏。 1. FCU一般采用四层以上电路板,将电源层和地层分开各占一层,起到了很好的隔离作用,另外两层顶层和底层用于排布信号线。 2. 预先对要求比较严格的线(比如高频信号线)进行布线,输入端与输出端的边线应避免相邻平行,以免产生干扰。 3. 时钟布线应远离I/O电路,时钟振荡电路推荐使用地线保护。 4. 尽可能采用135°的折线布线,避免使用90°折线,以减小高频信号的辐射。 5. 任何信号线都不应形成环路,若不可避免,环路应尽量小。 6. 信号线的过孔要尽量少。 7. 电源线或者功率驱动的线尽量短而粗。 8. 关键信号应预留测试点,例如(5V,3.3V,Reset等),以方便生产和维修检测使用。 **5.铺铜和丝印** PCB布线之后就可以铺铜了。铺铜优先铺地线,多层板时还需要铺电源。 对于丝印,要注意不能被器件挡住或被过孔和焊盘去掉。底层的丝印需要做镜像处理,以免混淆层面。 **6.网络和DRC检查及结构检查** 将所生成的PCB网络文件与原理图网络文件进行物理连接关系的网络检查,并根据输出文件结果及时对设计进行修正,以保证布线连接关系的正确性。 网络检查正确通过后,对PCB设计进行DRC检查,并根据输出文件结果及时对设计进行修正。 最后需进一步对PCB的机械安装结构进行检查和确认。 **7.制板** 制板时需要根据需要规定制板要求,如PCB板的层数、材料、铜厚、板厚等。 ### 2.4.硬件功能测试
PCB制板与元器件焊接完成后,需要先进行硬件功能测试,再进行软件开发调试(总体顺序,实际的硬件测试与基础软件调试往往是交叉进行的)。 硬件测试设备有信号发生器、万用表、示波器、直流负载仪、手工检测台、制动灯、继电器等,针对CAN信号的测试,可以使用ZCANPRO、MeCa等CAN总线相关软件。 1. 电源测试。通过给FCU供电9~32V输入(以控制器参数为准),测试PCB各电源测试点5V、3.3V等。 2. 模拟量输入测试。 电阻式:使用滑动变阻器调节阻值,模拟传感器输入。 电压式:输入电压信号进行测试。 3. 开关量输入测试。 低电平有效:信号接地和悬空两种类型。 高电平有效:信号接电瓶正极和悬空两种类型。 4. 数字量输入测试(频率量)。使用信号发生器测试。 5. 低端/高端功率驱动模块测试。通过指示灯判断驱动的开启与关闭,通过设置功率负载,测试驱动负载的能力。 6. CAN信号测试。测量CANL与CANH之间的终端电阻,上升与下降沿时间测试,总线电压测试等。 7. 过压、反向电压、开路及短路测试。通过FCU电源供电反接、过压,FCU针脚短地、短电源进行测试。 ### 2.5.设计失效模式及后果分析
FMEA 潜在失效模式与后果分析(Failure Mode and Effects Analysis),在产品/过程/服务等策划设计阶段,对构成产品的各子系统、零部件,对构成过程,服务的各个程序逐一进行分析,找出潜在的失效模式,分析其可能的后果,评估其风险,从而预先采取措施,减少失效模式的严重程序,降低其可能发生的概率,以有效地提高质量与可靠性,确保顾客满意的系统化活动。经过这一系列的分析,评估出严重度、频度和探测度等级,三者的乘积即为风险顺序数RPN。 DFMEA的标准表头如图2.6-1所示。 ![](images/79860093cb8ca41201a3628d400081035faa91f9.png)
图2.6-1 DFMEA的标准表头
**1.寻找失效点** 对应表格中的项目/功能一栏。填入项目的设计意图,实现该功能的前提条件等。如果存在多个潜在失效模式功能,则需要将每一个功能单独列出。 **2.潜在失效模式** 潜在失效模式是指过程中可能不满足设计要求的状况或者出现功能故障。一个项目或者功能可能存在多个潜在失效模式,需要逐一列出。 **3.潜在失效后果** 可以理解成能够被预见的功能故障,由失效模式导致的功能错误。 **4.严重度S** 严重度是失效模式发生时,对失效后果影响程度的大小,在DFMEA中用S(Severity)表示,等级分为1~10级,1级最低,10级最高。严重度与失效后果相关,想要降低严重度级别数值,只能通过修改设计完成,减少潜在失效模式,降低失效后果的严重性。 **5.级别** 级别用来评价当前失效点的质量特性,一般划分为三种,即关键特性、重要特性和一般特性。凡是识别为特殊特性的项,需要以对应符号在此栏中标注。 1. 关键特性。例如,可能出现人身事故或者对环境产生严重污染的故障,在DFMEA中失效严重度S≥9或RPN≥100。安全类关键特性用“[AS]”表示,其他关键特性用“[A]”表示。 2. 重要特性。例如,可能影响产品性能或者降低产品使用寿命的故障,在DFMEA中严重度7≤S<9,用“[B]”表示。 3. 一般特性。例如,对产品的性能以及使用寿命不会产生太大影响的故障,在DFMEA中严重度S<7,不标注。 **6.潜在失效原因/机理** 潜在失效原因/机理表示可能引起失效模式的设计环节或者未考虑到的使用场景。分析途径通常有5wy法、失效树分析法(FTA)、头脑风暴、应用失效链分析法等。 **7.频度O** 频度用来描述当前失效原因/机理发生的可能性大小,在DFMEA中用O(Occurrence)表示,等级分为1~I0级,1级最低,10级最高。频度依附于失效原因。降低频度的唯一途径就是修改设计,消除或控制失效原因/机理。 **8.现行设计控制** 这一列主要列举当前已经采用的失效预防措施,如设计评审、尺寸链计算、样件试验等。现行设计控制的方法可以分成两种类型,即控制预防和控制探测。 控制预防是指预防原因/机理的发生,或失效模式/后果的出现,或降低频率。 控制探测是指查出原因/机理,并提出纠正措施。优先使用控制预防,而控制探测是在控制预防不起作用时的后期补救措施。 **9.探测度D** 探测度是指设计控制被探测出来的可能性。在DFMEA中用D(Detection)表示,等级分为1~10级,1级最低,表示几乎肯定探测到,10级最高,表示无发现的机会。可探测性随着数值的增加而降低。 **10.风险顺序数RPN** 风险顺序数是一项设计风险指标,它为严重度S、频度O和探测度D三者的乘积,取值在1~1000之间。RPN值为解决问题的优先顺序提供了参考。当RPN值接近,优先注意S大的失效模式及S和O都较大的失效模式,如果RPN值很高,设计人员必须采取纠正措施,无论RPN的值多大,只要S等级高,就需要引起特别注意。 **11.建议措施** 对消除失效原因/机理给出的建议措施,需要按照严重度、频度和探测度的顺序逐一降低它们的级别。可以从试验验证、设计修改、材料更换等的角度考虑措施。 ## 三.FCU结构的设计与开发
### 3.1.FCU的结构组成
根据整车工作环境要求,FCU需要满足在温度-40~+85℃,相对湿度10-90%的环境下工作的条件,防尘防水等级满足IP67要求。 FCU主要由透气阀、上壳体、PCB(含接插件)总成、下壳体、螺钉组合而成,如图3.1-1所示。 FCU接插件选择PCB 板端连接器标准件,例如,[F23控制器](./f23.html)使用了TE 2374035-1接插件。壳体材质为铝,上、下壳体缝隙间采用密封胶+螺钉的固定方式,可靠性高,再加上一颗透气阀,即可完成IP67的防尘防水要求。 透气阀是可以起到气压平衡防水防尘作用的器件。它允许气体的自由进出,阻止液态水、雾状水以及盐雾颗粒的通过。 ![](images/2023-08-10-15-04-26.png)
图3.1-1 FCU壳体
FCU使用透气阀的原因如下: 1. 长期承受内外压差,会导致密封材料和壳体的老化,压差过大会导致密封材料失效,从而失去对PCB的防护效果。通过透气阀解决FCU内外压差问题。可能导致内外压差的原因,例如:工作过程中元器件产生的热量使FCU内部气体热胀;车辆行驶在不同的海拔;夏季时,汽车在地表温度相对较高时行驶;突然下雨等。 2. 帮助FCU散热,气体可以通过透气阀自由进出,有助于FCU散热冷却。 3. 方便密封性检查。在实际生产过程中,不能对所有产品进行浸泡试验,如果出现密封问题,会导致PCB板与元器件损坏。通常采用气密检测的方式来检测FCU的密封性能。检测完成后,使用透气阀堵上透气孔。 透气阀具有耐温度变化,抗紫外线、跌落、盐雾及遇湿透气等特性。选用聚碳酸酯为主体材料,防水透气膜采用膨体聚四氟乙烯(e - PTFE),总体耐温范围为-40~+125℃。 ### 3.2.FCU在整车上的布局
整车环境不同,FCU在整车上的布局也会有所不同,FCU布置区域要求如下: 1. 拆装方便性。FCU布置要考虑拆装方便性,不受其他部件干涉,FCU接插件能够在不拆解其他零部件的情况下也能插拔。 2. 空气流通。FCU安装位置需要保证空气流通来满足必要的散热需求。一般要求,在环境温度>85℃时,空气流通速度>2m/s;环境温度≤85℃时,对空气流通速度没有特殊要求。 3. 避免潮湿环境。FCU不应布置在车上易进水的位置,例如底盘。安装方向推荐线束端向下,控制器垂直于地面安装。如果安装时线束受阻,允许水平安装或者倾斜安装,倾斜角度尽量≤45°,如图3.2-1所示。如此安装可以避免因接插件中积水而导致的硬件损坏。 4. 避免过热区域。FCU不能布置在过热的位置,推荐安装在驾驶室内和前舱内这类低温区域,环境温度为-40~+85℃。 5. 安装高度。FCU安装在驾驶室外时,一般要求安装位置高于地面500mm,以免泥浆、水等溅入FCU。 6. 避免强电磁干扰区域。FCU不能布置在电磁干扰大的区域。 7. 安装支架强度。一般要求FCU的安装支架牢固可靠即可,底部镂空,用于散热。 8. 避免强烈振动区域。FCU不能布置在容易遭受外力冲击或机械振动剧烈的位置,避免FCU在工作中与周边部件擦碰造成损伤,与周边固定零部件的间隙应≥10mm。 ![](images/2023-08-10-15-42-56.png)
图3.2-1 FCU安装角度
## 四.FCU基础软件的设计与开发
基础软件主要实现基于主控芯片和外围电路的驱动开发,以及Bootloader,实时操作系统/任务调度系统,存储管理,故障诊断,通信等基础功能。 ### 4.1.FCU基础软件开发工具链
尽管汽车行业有部分主机厂开始使用AUTOSAR工具链作为FCU基础软件开发工具链,但是由于AUTOSAR工具链过于昂贵,本文并不推荐用户使用AUTOSAR工具链。文本推荐的工具链是适用于全行业的具备较高性价比的软件开发工具链。 **1.集成开发环境IDE** 对于大部分单片机,芯片厂家一般都会提供集成开发环境IDE。IDE一般都带有编译与调试(Debug)功能,配合JTAG或者JLink仿真器使用,也支持变量查看、断点调试等功能。 以NXP的S32K344为例子,使用S32 Design Studio for S32 Platform 3.5作为IDE。 **2.静态代码评审工具** 静态代码分析是指在程序未运行的状态下,分析检查程序的语法、结构、过程、接口等来判断程序的正确性。主要检查代码和设计的一致性,代码逻辑表达的正确性,代码结构的合理性等。能够发现违背程序编写标准的问题,例如,参数不匹配、不适当的循环嵌套和分支嵌套、未使用过的变量、数据超范围、空指针引用等。在整个软件开发生命周期中,30%~70%的代码逻辑设计和编码缺陷是可以通过静态代码分析来发现和修复的。 市面上主流的C代码静态测试工具有HelixQAC(QAC/QAC++)、PC-lint等。 **3.单元测试工具** 单元测试(Unit Testing)是指对软件中的最小可测试单元进行检查和验证。通常而言,一个单元测试用于判断某个特定条件(或者场景)下某个特定函数的行为。单元测试是在软件开发过程中进行的最低级别的测试活动,在与程序的其他部分隔离的情况下进行测试。 单元测试的目的是发现各模块内部可能存在的各种错误,主要包括以下几个方面: 1. 验证代码是否与设计相符合。 2. 发现设计和需求中存在的错误。 3. 发现在编码过程中引入的错误。 单元测试主要是针对系统最基本的单元代码进行测试,测试时主要从接口测试、独立路径、出错处理、边界条件和局部数据结构五个方面进行测试,如图4.1-1所示。通过这五个方面来检查模块内部是否存在错误。 ![](images/2023-05-31-13-29-20.png)
图4.1-1 单元测试方法
常用的嵌入式软件单元测试工具有Tessy、IBM Rationl Test RealTime等。 ### 4.2.FCU基础软件的系统架构
在汽车行业,基础软件和应用软件的整体系统软件架构中,应用最广泛的是AUTOSAR系统架构。在AUTOSAR架构中,对于基础软件有很详细的设计,所以汽车行业中控制器的开发在基础软件架构设计上很多都参照或者参考AUTOSAR。 AUTOSAR,全称为Automotive Open System Architecture,即汽车开放系统架构。它是由整车厂、零配件供应商,以及软件、电子、半导体公司联合成立的一个组织,建立了一个开放的汽车控制器(ECU)标准软件架构。其核心思想在于“统一标准、分散实现、集中配置”。 1. 统一标准。是为了给各厂商提供一个开放的、通用的平台。 2. 分散实现。要求软件系统高度的层次化和模块化,同时还要降低应用软件与硬件平台之间的耦合。 3. 集中配置。不同公司开发完成的模块,统一进行配置管理,集成到一个系统中。 在汽车行业中,电子控制系统一直在高速发展,面临的挑战也越来越多,主要体现在以下几个方面: 1. 汽车的电气化电子(E/E)系统日益复杂,控制器数量增加,网络复杂度增加。 2. 硬件平台多样化,软件可复用性差。 3. 软件功能数量急剧增加,软件成本占比增加。 AUTOSAR框架使得不同结构的电子控制单元的接口特征标准化,应用软件具备更好的可扩展性及可移植性,能够实现对现有软件的复用,从而减少重复性工作,缩短开发周期。 AUTOSAR计划目标主要有三个: 1. 建立独立于硬件的分层软件架构。 2. 为实施应用提供方法论,包括制定无缝的软件架构堆叠流程并将应用软件整合至ECU。 3. 制定各种车辆应用接口规范,作为应用软件整合标准,以便软件组件在不同汽车平台复用。 AUTOSAR软件体系结构包含了应用软件(Application Software)和基础软件(Basic Software),并在两者中间设立了一个运行时环境(RTE),从而使两者分离,形成了一个分层体系架构。 基础软件架构设计能够让代码逻辑更加清晰,在编写功能逻辑时能够最大限度的复用代码,方便软件的移植,将硬件驱动与功能封装成一个个模块,能够快速拼装成实现不同功能的模型。 FCU基础软件架构的思路也是如此,即功能模块化设计、分层设计。将收集到的需求进行归类、总结和分析,将这些需求概括为一个个单独的功能,每个功能做成一个单独的功能模块。 基础软件主要用于提供基础软件服务,包括标准化的系统功能及功能接口,并且由一系列的基础服务软件组件构成,包括系统服务、存储服务、通信服务等。 基础软件层的组件及其功能如下所示: **微处理器驱动** 1. 初始化微处理器各部件(PLL、A/D、DIO、SPI等); 2. 响应硬件中断,调用相应的中断服务程序; 3. 产生任务调度的时钟。 **非易失性数据存储驱动** 1. 对内部FLASH的初始化、擦除、读写操作; 2. 对外部EEPROM、FRAM通过IIC或SPI接口进行读写操作。 **CAN驱动** 1. 初始化CAN各个通道; 2. CAN通道的接收中断服务; 3. 向各个CAN总线发送报文。 **I/O驱动** 1. 初始化微处理器的数字I/O端口; 2. 读取I/O输入端口的采样值; 3. 控制I/O输出端口; 4. 对A/D端口定时采样; 5. 读取PWM输入端口的频率和占空比采样值; 6. 控制PWM波输出端口的频率和占空比。 **硬件输入输出统一接口** 1. 映射硬件输入端口到逻辑上的输入。 2. 硬件与逻辑接口映射,只需要调整硬件接口与逻辑的输入输出的关系即可。 3. 对从硬件输入端口读取到的数据进行滤波处理,滤除硬件干扰。 **CAN标定协议(CCP)** 1. 支持CCP协议的在线标定功能,关于CCP可参考本站《[CCP标定协议](./ccp.html)》。 2. 数据采集(DAQ)功能。 **统一诊断服务(UDS)** 1. 支持基于IS015765和IS014229的UDS服务,关于UDS可参考本站《[UDS协议](./uds.html)》。 2. 将故障相关的信息保存到非易失存储器中,例如FLASH、EEPROM、FRAM等。 **Bootloader** 基于CAN总线的控制器Bootloader程序,满足了控制器不开盖即可进行应用程序升级的要求,具有较大的实用价值。关于Bootloader的详细信息,请参考本站《[Bootloader介绍](./bootloader.html)》。 ### 4.3.FCU基础软件的主要模块
**1.系统服务** 系统服务提供实时操作系统服务,包括中断管理、资源管理、任务管理、通信管理、ECU状态管理、看门狗管理、同步时钟管理、基本软件模式管理等服务,其中最基础的是实时任务调度系统服务。 中断管理是实时系统中一个很重要的部分。例如,程序在顺序运行时,接收到特定外部信号,需要执行特定的操作,此时需要中断当前任务,跳转至中断服务执行相应的操作,完成后再回到当前任务继续向下执行。一些实时性较强的操作需要系统通过中断服务及时处理,实时操作系统的功能一般要通过若干任务和中断服务程序共同完成。任务与任务、任务与中断、中断与中断的服务程序之间必须协调动作、互相配合。 任务管理决定了操作系统的实时性能。它通常包含优先级设置、多任务时间调度机制等。 任务调度是协调各个任务占用计算机资源的时间,直接影响系统的实时性能。通常任务调度机制分为基于优先级抢占式调度(中断管理)和时间片轮转调度(任务管理)。 系统采用优先级抢占方式进行调度,可以保证重要的突发事件及时得到处理。时间片轮转调度是让优先级相同的任务按照时间片使用CPU,以防止同优先级的某一任务长时间独占CPU。 一般情况下,系统采用基于优先级抢占式调度与时间片轮转调度相结合的调度机制,优先级高的任务先运行,相同优先级的任务按照轮转方式进行调度。 **2.存储服务** 单片机运行时的数据都存于RAM(随机存储器)中,在掉电后RAM中的数据是无法保留的,若需要在掉电后储存数据,则需要扩展对应的非易失性数据存储空间,即FLASH、EEPROM、FRAM存储器等。在传统的单片机系统中,一般是在片外扩展存储器,单片机与存储器之间通过I2C或SPI等接口来进行数据通信。 FLASH的存储功能按扇区操作,EEPROM则是按字节操作,若需要频繁地改写某些小量数据,EEPROM非常适合,FLASH更适合不需要频繁写入的数据。 FLASH一般为主芯片MCU的一块FLASH区域,以扇区为单位,写入前需要先擦除扇区,再写入数据,不同的MCU一次最少擦除的扇区大小也不同,所以在MCU中的FLASH结构适用于不需频繁改写的数据,一般会在硬件上没有配备EEPROM时,用这种方式模拟EEPROM。 根据整车技术规范及需求,存储服务模块应该提供如下功能: 1. 满足UDS功能需要读、写的DID数据。 2. 满足UDS功能需要存储的故障状态和冻结帧信息。 3. 满足UDS功能读取故障状态和冻结帧的接口。 4. 下电时在合适的时机存储应用层模块需要保存到NVM(非易失性存储器)的数据,保证数据的正确性。 5. 上电时读取应用层模块存储的数据(历史数据和续航数据),提供给应用层使用。 存储服务模块的性能需要满足如下需求: 1. 充分利用存储空间,减少NVM写入次数。 2. 充分考虑片内FLASH和片外EEPROM的读写时间限制,分页机制。 3. 保证存储数据的正确性。 4. 实现数据安全。 数据安全设计需要达到的目的是在读取UDS配置数据或者应用数据时,都能够检查出数据是否被损坏,并采取合理的处理措施对此,FCU分别对UDS配置数据和应用数据做一致性检查,检查不通过,则报相应故障警示以保证整车驾驶安全。 当前一种新型的存储器FRAM也逐渐应用到FCU上,不再需要下电写入,它在FCU运行过程中即可完成数据的写入工作,与EEPROM、FLASH相较而言,具有读写更快、寿命更长、低功耗、抗辐射等优点,但是制造成本偏高,储存的空间更小。 **3.通信服务** FCU提供的通信服务主要是基于CAN总线的通信服务。 有关CAN总线请查看本站《[CAN总线基础知识](./canbasic.html)》。 有关标定协议请查看本站《[CCP标定协议](./ccp.html)》、《[XCP协议](./xcp.html)》、《[A2L文件介绍](./a2l.html)》。 有关诊断协议请查看本站《[UDS协议](./uds.html)》、《[UDS快速参考手册](./udsreference.html)》。 有关通信服务的其它内容请查看本站《[DBC文件介绍](./dbc.html)》、《[CAN FD基础知识](./canfd.html)》、《[SAE J1939](./j1939.html)》、《[LIN](./lin.html)》。 ## 五.FCU应用软件的设计与开发
应用软件的英文是 Application Software,FCU应用软件在行业内也称为FCU控制算法。 ### 5.1.FCU应用软件开发工具链
FCU应用软件开发通常使用基于模型的设计MBD,具体的应用软件开发工具链MATLAB、Simulink、Stateflow与ECUCoder可参考本站《[基于模型的设计](./mbd.html)》与《[电控开发环境搭建手册](./build.html)》。 ### 5.2.FCU应用软件的主要模块
FCU 作为燃料电池系统的控制大脑直接决定了整个燃料电池系统的运行效率和工作稳定性。FCU的功能主要通过应用软件来实现,FCU应用软件总体示意图如图5.2-1所示。 ![](images/FCU_FunctionBlock.png)
图5.2-1 FCU应用软件示意图
**1.系统状态管理** 燃料电池系统在整个工作过程中划分了若干个子过程,在每个子过程中都可以对相应的子系统进行调用,来完成预定动作,子状态的划分没有统一规定,主要和系统架构设计相关。一般而言,系统状态管理可以划分为启动,开机吹扫,运行,降载,停机等几个过程: 1. 启动:在这个过程中FCU 需要自检,检测FCU 是否有功率请求指令,闭合相关高压接触器,与DCDC 进行信息交互,为系统待机运行做好准备,同时如果电堆对低温比较敏感,还需要考虑冷启动,冷启动过程需要对电堆进行升温,以保证电堆较快的进入高效率的工作范围内。 2. 开机吹扫:开机吹扫的主要目的是将阳极由于静止而渗透过来的空气排出,保证在电压建立之前阳极侧做好充分的准备,并且达到怠速的阶段,这个过程需需要完成氢气压力建立,空压机启动,循环泵启动,DCDC 运行,系统进入怠速阶段。 3. 运行:怠速完成后转速运行阶段,这个过程中需要根据电堆当前温度控制相应的功率输出,即热机控制,当温度达到热机阈值以后进入正常运行模式,为后续拉载做准备,整个拉载过程也在运行模式中完成。 4. 降载:当系统请求功率小于怠速功率,或者出现异常故障时进入降载模式,在降载模式下需要完成对系统的吹扫,主要目的是降低质子交换膜的湿度。 5. 停机:降载吹扫完成以后进入停机模式,在该状态下需要及时打开旁通阀并关闭截至阀,此时通过剩余的氢气将空气回路的氧气耗尽,当电推电压下降到设定阈值以后氢气断路,此时停止空压机和水路系统的,停机完成。系统再次回到初始化状体,为下一次启动做好准备。 燃料电池系统状态管理的整个过程可以使用下图概括。 ![](images/FCU_Mode.png)
图5.2-2 燃料电池系统状态管理过程
**2.氢气子系统管理** 氢气供应量大于氢气所需计量比时,会导致排放的废气中含大量氢气,造成多余氢气浪费。当氢气供应量不能满足电堆输出功率消耗氢气速率时,就会发生燃料缺乏,导致碳腐蚀(催化剂载体腐蚀),甚至发生反极的情况。因此,需要控制系统根据不同工况条件,计算反应物量和温度,进行实时控制。 氢气子系统中包含中压压力采集,低压压力采集,开关阀控制,比例阀控制,排水排气电磁阀控制,尾排加热控制,循环泵控制等。 1. 中压压力采集,采集氢瓶开关阀后的压力,用于系统压力监控。 2. 低压压力采集,采集电推入口的压力,用于压力闭环运算。 3. 开关阀控制,控制氢气进入系统。 4. 比例阀控制,控制进堆氢气压力的主要执行器,也可以使用喷氢阀,可通过PID闭环完成控制。 5. 排水排气电磁阀的控制,在系统反应过程中,阴极产生的水会有少量水汽渗透到阳极,经过氢气循环泵水汽被带到尾阀,在这里经过氢水分离器,水气被分离出来经过排水阀排出,质量大的氮气被排气阀排除,排水排气均会影响氢气系统压力,因此在排水排气过程需要进行压力补偿。 6. 尾排加热控制,主要是在寒冷天气使用,通过检测环境温度判读是否有结冰的可能,通过尾排加热短时间内将冰融化,配合循泵压力冲击,完成破冰吹扫。 7. 循环泵控制,循环泵主要是将没有反应完全的氢气回收并再次投送到电堆氢气入口进行二次利用,以增加氢气流量,在不同氢气压力下,循环泵转速不同。 **3.空气子系统管理** 燃料电池电堆的性能除了受氢气流量影响,还受空气的化学计量比影响。因为氧气分子要进入到催化层内部,需要借助浓差扩散,功率输出不同时需要消耗不同比例的氧气,所以需要根据功率输出不同,及时调整空气供应量。 空气子系统控制中包括进口空气压力/流量信息采集,空压机控制,背压阀控制,截止阀控制,旁通阀控制。 1. 空气压力/流量信息采集,采集电堆入口处的空气压力和空气流量,用于空压机和被压阀的闭环控制。 2. 空压机控制,提供系统反应所需要的空气,根据目标空气流量与实际空气流量进行转速的闭环控制。 3. 背压阀控制,提供系统反应所需要的压力,可以更具目标压力与实际压力进行被压阀的开度闭环控制。 4. 截止阀的控制,默认情况下截止阀关闭,系统启动以后截止阀打开。停机吹扫完成以后需要余氢放电,此时空气路需要处于断路状态,此时控制截至阀关闭禁止空气通入。 5. 旁通阀控制,余氢放电开始之前,空压机转速较高很难从高转速直接下拉到零转速,因此需要通过旁通阀把多余的控制器排除系统之外,默认情况旁通阀处于关闭状态,截至阀关闭以后旁通阀同时打开。 **4.水热子系统管理** 由于燃料电池产热量与输出电流大小成正比。热量损失过多会造成燃料电池电堆膜电极催化活性较低,从而输出性能较低差,散热量不够,电堆内部温度过高,则会造成密封部件失效或膜电极损坏。根据输出电流大小调节散热水泵转速节温器开度以及散热风扇占空比,可有效控制电堆温度变化;另外在低温启动过程中需要通过PTC 对水循环系统进行加热,从而加快电堆升温到合适的温度范围。 水热管理子系统需要采集电堆进水口水温及压力,电堆出水口的水温及压力,控制低压水泵,高压水泵,三通阀以及散热风扇,PTC 等执行器。 1. 电堆进水口水温采集及压力采集,用于监控电堆入水口的水温及压力。 2. 电堆出水口水温采集及压力采集,用于监控电堆出水口的水温及压力,通过目标水温与当前实际水温进行闭环控制,保持系统温度在一个合理的区间内,压力监控主要确保电推内部水仓与气藏之间的压力差,避免水路向气路泄漏。 3. 水泵控制,用于加速水循环系统中的流速,对系统进行加热和散热,低压水泵一版通过PWM占空比控制,高压水泵直接通过转速闭环控制。 4. 三通阀控制,三通阀主要为了分配流经电堆的冷水占比从而控制电堆温度,控制方法为通过出水口实际水温与目标水温做闭环计算,控制三通阀开度。 5. 散热风扇控制,加速冷凝器周围的空气流量及时带走高温,根据当前实际温度与目标温度进行闭环控制。 6. PTC 控制,在冷启动或者低温启动过程中,为了尽快将电堆加热到预定的温度下需要启动PTC 进行加热,同时需要配合内循环低压水泵进行系统温度加热。 **5.故障诊断** 在燃料电池运行过程中,任何零部件都有可能发生故障,从而导致器件损坏危及燃料电池系统甚至车辆安全,FCU 需要对系统各种可能出现的故障进行分析处理,保证系统以及汽车的行驶安全。 故障诊断管理负责对硬件(传感器、继电器等)输入和CAN信号的监控,确认是否有故障发生。如果确认故障发生,判断故障原因,及时做出相应的保护措施,提示司机车辆异常,储存故障代码,用于后续的诊断分析。如图5.2-3所示。 ![](images/VCU_Diag.png)
图5.2-3 故障诊断管理模块关系/架构图
FCU故障诊断DTC设计应符合ISO 15031 和ISO 14229 标准。FCU需要实时诊断自身的故障,并将故障信息通过CAN发送给整车控制器VCU,VCU会根据故障等级信息进行相应的操作,主要包括警告提醒,限制功率输出,停机等。 ### 5.3.FCU应用软件的MiL测试
模型在环仿真测试即MiL(Model in the Loop)测试的目的是对模型进行动态仿真,对预期结果和仿真结果进行比较,检测出模型中潜在的问题,验证控制模型的功能逻辑。 MiL测试首先应根据软件需求和功能建立MiL测试大纲,测试用例的输入主要是来源于软件的功能需求分析,测试用例需覆盖全部功能点。同时应考虑边界值、异常值等条件,以检测模型的鲁棒性。测试结束后对模型仿真结果进行确认,若测试未通过,需详细分析错误原因,修改模型后再进行回归测试。 ### 5.4.FCU的HiL硬件在环仿真测试
MiL测试只能对应用软件进行测试,HiL硬件在环仿真测试则可以对FCU硬件、基础软件与应用软件进行比较全面的功能测试,是FCU产品开发过程中不可或缺的重要环节。 关于HiL硬件在环仿真测试的基本原理、系统组成、主要特点等可以参考本站《[HiL硬件在环仿真测试](./hil.html)》。 HiL硬件在环仿真测试最主要的工作是开发测试用例,开发测试用例涉及的工作包括测试需求分析,测试用例设计方法,测试覆盖度统计,故障诊断测试等。 **1.测试需求分析** 测试需求是开发测试用例的依据,是衡量测试覆盖率的指标。测试需求有助于保证测试的质量与进度。 需求分析的过程如图5.4-1所示: 1. 需求采集。将软件开发需求中的具有可测试性的需求或者特性提取出来,形成原始测试需求。 2. 需求分析。对每一条需求进行细化,明确各个测试要点,是否需要与测试机柜交互,数值范围是否符合质量需求,需要实施的测试类型等。列出测试跟踪需求矩阵。 3. 需求评审。应保证所描述的内容能够得到相关方的一致理解,各项测试需之间没有矛盾和冲突。每一项测试需求都用作测试用例设计的依据。 ![](images/2023-08-08-14-56-36.png)
图5.4-1 测试需求分析过程
**2.测试设计方法** 测试用例是为了验证 FCU 功能,测试用例质量决定了测试执行的深度、广度与测试结果的质量,合适的测试用例能够提高测试效率和测试覆盖率,可有效验证FCU的功能,及时发现FCU的设计缺陷。 测试用例的设计方法可以分为等价类划分法、边界值法、因果关系法等。 **3.测试覆盖度统计** 测试覆盖度是度量测试完整性的一个指标,目标是保证测试可以覆盖每个功能需求,以保证软件产品的质量。HiL测试基于测试用例进行测试,实现对燃料电池控制系统的验证工作。在测试用例库编写完成后,需要由测试人员对其进行评审,确认测试用例能否完整地覆盖测试需求。在通过相关人员认可后,才能对测试用例库进行发布。 **4.故障诊断测试** 1.测试目的 确保在车辆发生故障时能够保障驾乘人员的人身安全及防止车辆产生进一步的损失,对车辆实施的一种强制处理措施。与驾驶人的主观驾驶意识不同,故障诊断属于车辆控制器通过一系列参数自主判断,自我保护的一种行为。 通常情况下,故障诊断主要涵盖了以下三个步骤: 1. 检测设备状态特征信号。 2. 在所检测的信号当中提取故障征兆。 3. 根据征兆及其他诊断信息对设备状态进行识别。 故障诊断功能在设计时,需要考虑以下两个方面: 1. 保证在系统出现异常时,FCU能准确及时地检测到发生了哪一种故障并且做出合理的动作,记录故障发生时的数据,以便进一步查找故障原因。 2. 防止车辆行驶中因为信号抖动超出某个安全阈值,导致控制器误报故障的行为,不能给驾驶人造成紧张或者恐慌,影响驾驶体验。 对于故障诊断相关功能的测试,就是为了检查以上两方面功能是否完全实现。 2.故障分类 为了区分不同的故障,控制器应该做出何种动作,便于测试数据的组织管理。从功能验证的维度方面,可以将故障诊断测试分为正向测试、反向测试、边界测试、滤波测试等。 1. 正向测试。在满足所有故障条件的前提下,将故障注入后FCU能够迅速动作,例如降功率、降车速及点亮故障灯等。是否能够在规定时间内得到故障代码,例如在仪表盘闪烁故障码。 2. 反向测试。主要为了防止误报。在条件不满足的情况下,不能误报故障,以免造成驾驶人员的恐慌。 3. 边界测试。验证在故障产生的边界条件下,是否会报故障。 4. 滤波测试。为了验证故障确认时间是否满足测试条件。 根据故障注入方式的不同可分为通信类故障、硬线信号故障与开路短路试验故障等。 1. 通信类故障。这类故障的特点是都与通信总线相关,例如FCU检测到某个零部件通信异常,或者某个部件通过总线上报故障等。例如,空压机上报IGBT故障、电机过温故障、ABS车速无效故障等。如果FCU连续若干个通信周期未收到空压机、DCF等的CAN报文,则认为通信异常故障。 2. 硬线信号故障。FCU的PIN脚通过线束与各类传感器执行器连接,与这些零部件的交互方式主要包括霍尔量信号、开关量信号、模拟量信号等。诊断过程中若检测到这些信号持续超出合理范围则判断出现了故障。 3. 开路短路试验故障。这类故障本质上也属于FCU的PIN脚故障,但是故障注入的方式与前面几种差别较大,为了便于管理也将其单独分离出来,主要包括低端功率驱动故障、高端功率驱动故障等。 3.测试用例设计 故障诊断服务通常是基于UDS(ISO 14229) 协议开发的,与其他功能的测试方法类似。 ### 5.5.FCU台架测试
FCU 作为燃料电池控制系统的大脑决定了整个系统的效率与安全,不能只在实验室中进行HiL 测试、DV/PV等测试,必须在台架系统以及实车环境中验证子系统的可行性,主要目的是在验证FCU 最常规的功能,对HiL测试台架无法模拟的工况进行补充测试和重复测试,以确保控制系统的安全。 台架测试分为常规测试和特殊功能验证。在软件发布前,所有的常规功能都需要在台架上测试通过,发布的功能中若包含无法在HiL台架上测试的部分,也需要在台架上确认。进行台架测试前,需要准备好待测软件、诊断仪、软件刷写工具、测量标定工具、示波器、万用表等。测试时要依据事先评审好的测试 用例,按从静态测试到动态测试的顺序进行行测试。 静态测试包括非常多的常规功能,例如低压上电测试,各传感器信号测试,通信测试,高压上电测试等。所有静态测试通过之后,燃料电池系统的各个子系统均未上报故障方可进行台架动态测试。 台架动态测试主要是燃料电池系统启动过程中的相关功能测试,例如:氢气子系统闭环,空气子系统闭环,水热管理子系统闭环,连续拉载测试等。 台架测试结束后需要对所有测试的数据进行细致的分析,有疑问的数据要及时和研发人员确认,做好记录,将数据留档。 ## 六.DV和PV测试
燃料电池系统控制器开发阶段需要通过DV(Design Verification)和PV(Product Verification)测试。DV是设计验证,用于验证的样件可以是手工(焊接)件也可以是模具(产线量产)件。PV是产品验证,被测样件必须是产线上生产的模具件。PV之后零件还需完成生产件批准程序 (PPAP) 审核。 测试要求是按照产品需求、用户的需求和运行环境定义的,同时也需要符合国家的法律法规。 ### 6.1.DV测试
DV 测试是为了保证电气元件在可能出现的外部环境下正常运行,而对样件进行的测试。按照环境类别分为,机械负载试验、气候负载试验、化学负载试验、电气负载试验、电磁兼容试验五大类。 **1.机械负载试验** 机械负载试验是对控制器在机械性能上的验证,主要涉及自由跌落试验、随机振动试验、机械冲击试验等。 **2.气候负载试验** 气候负载试验是为了检验整车使用环境中,FCU 能否抵抗高低温、湿度、气压变化,阻止粉尘、液体侵入,抵抗盐雾、盐水腐蚀等能力,以及对FCU的使用寿命进行验证。 主要涉及:低温存储、高温存储、低温工作、高温工作、温度循环试验、温度冲击试验、温度/湿度组合试验、稳态湿热试验、盐雾试验、防尘试验、防水试验等。 **3.化学负载试验** 化学负载试验是为了检验受试样品暴露在试剂污染环境中的耐受能力。化学试剂的型号和供应商可由零部件供应商及车辆制造厂双方协商。包含的测试项有耐化学试剂试验。 **4.电气负载试验** 可能由外部引发的过压、极性反接、短路、开路等特殊情况,测试FCU在恶劣的电气环境中是否仍能正常工作。 主要涉及:直流供电电压试验、长时间过电压试验、短时间过电压试验、叠加交流试验、电压缓降缓升试验、起动扰动电压试验、反向电压试验、单线开路试验、多线开路试验、信号电路短路保护试验、负载电路短路保护试验、对电压骤降的复位性能。 **5.电磁兼容试验** 电磁兼容性是指设备或系统在电磁环境中符合要求运行,并且不会产生影响其他设备工作的电磁干扰。 电磁兼容性包含两个方面: 1. 设备在正常运行过程中对所在环境产生的电磁干扰 (EMI)。 2. 设备对所在环境中存在的电磁干扰所具有的一定程度的抗干扰能力(EMS)。 与FCU相关的电磁兼容性试验项有辐射发射RE、传导发射CE、辐射抗扰BCI、电源线瞬态抗扰 CI、静电放电ESD等。 零部件和整车对电磁兼容性都有强制性法规要求。如果电磁兼容性不能满足相应法规要求,产品将不能上市。 ### 6.2.PV测试
PV测试是在DV测试后开展的。被测件必须是在生产线上量产的模具件。PV测试项可以与DV测试项相同,也可以减少测试项目,根据实际情况评估而定。通过PV测试之后的零件再完成PPAP审核,才具备量产供货资格。 ## 七.FCU标定
在对不同型号电堆不同功率的系统进行开发工作时,因电堆双极板,质子交换膜,催化剂等材料的影响,或者受到系统中执行部件自身性能的影响,最终都会影响燃料电池系统的运行效率与性能。因此开发工作中需要通过标定将系统的性能参数发挥到最佳。 燃料电池系统标定工作一般包含如下几个阶段: 1. 桌面标定。在HIL 测试工作前,对相关参数进行预设,例如,氢气子系统闭环控制中前馈量的预标定、P I 基本参数设置等,保证标定的系统具备基本功能及安全性。 2. HiL标定。在HiL 闭环调试过程中进行标定,使其尽可能的达到预计的指标。 3. 台架标定。目的是通过标定使燃料电池控制系统可以尽可能的达到电堆出厂时的工作性能,并在功能上满足个性化的需求;。 ### 7.1.标定工具链
标定过程中,需使用相应的标定工具,通常使用的工具如下: 1. 可移动计算机,通常使用笔记本电脑。 2. 信号转换设备,例如CAN卡。 3. [标定软件](./meca.html),例如CANape、INCA、MeCa等。 4. [刷写软件](./burner.html)。 5. 相应的连接线。 通过测量标定软件采集信号,在线调整参数,测试车辆性能,固化标定数据,通过刷写软件更新固化标定数据后的FCU软件。 在标定过程中,需根据采用的标定协议 (例如CCP或XCP)载入对应的A2L文件作为数据库,有关标定协议的内容请参考本站《[CCP标定协议](./ccp.html)》、《[XCP标定协议](./xcp.html)》。 ### 7.2.桌面标定
利用原始数据文件、经验数据,结合系统技术条件等信息,进行数据预设,以保证燃料电池系统的基本功能及安全。其中对于燃料电池控制系统,较为重要的几点包括: 1. 基本参数配置。针对不同系统进行相应的基本参数配置,例如电堆单体数量、不同目标功率下的目标电流,目标压力等。 2. 传感器与执行器参数配置。根据传感器、执行器自身特性,将电信号转化为可读的物理信号数值。例如,根据SENT信号解析空气流量信息,温度信号解析,比例阀的PWM控制百分比的输出等。 3. 燃料电池系统功率拉载时安全功能参数预标定。例如,功率上升及下降斜率,需要参考电推参数进行设置,并进行相应的标定。 ### 7.3.HiL标定
在进行台架试验之前,为了保证系统安全可以在HiL设备上进行初步的参数进行标定,HiL系统中的物理模型需要按照实际燃料电池系统进行配置,确保燃料电池的物理模型尽可能的贴近实际台架性能参数。标定工作主要包含以下内容: 1. 系统控制状态机跳转参数标定。 2. 氢气子系统闭环参数标定。 3. 空气子系统闭环参数标定。 4. 水热管理子系统目标参数标定。 5. 故障诊断中阈值参数的标定。 典型的燃料电池系统控制器HiL仿真测试系统如图7.3-1所示。 ![](images/FCU_HiL.jpg)
图7.3-1 HiL仿真测试系统
### 7.4.台架标定
由于HiL仿真测试中的物理模型是模拟实际电堆参数,二者之间存在一定的误差,因此台架标定时需要对HiL系统标定参数进行重复的标定,以校准误差,同时,在台架标定阶段还需要重点对排水排气导致的系统压力波动而进行的补偿参数进行标定,以确保系统压力波动范围在可接受的范围。 典型的燃料电池系统测试台架如图7.4-1所示。 ![](images/FCU_Bench.jpg)
图7.4-1 燃料电池系统测试台架
## 八. FCU小结
FCU设计开发涉及到硬件的设计开发,结构的设计开发,基础软件的设计开发,应用软件的设计开发,DV/PV测试,FCU标定等。从零开发FCU是一项复杂的工程,完全从零开发控制器成本高,周期长,因此完全从零开发并不常见,尤其对于主机厂很少完全从零开发控制器。大部分项目(包括样机项目与量产项目)都使用二次开发的方式,基于现成的控制器硬件与基础软件开发满足需求的应用软件。二次开发可以明显缩短开发周期(缩短80%以上),降低开发成本,因此是最常见的开发方式。RapidECU-F系列控制器是行业知名的燃料电池系统控制器产品,本站提供了《[RapidECU-F23控制器硬件参考手册](./f23.html)》给用户参考,用户可以基于F23控制器开发满足项目需求的FCU。