第四章 燃料电池发动机控制策略研究及其软件流程设计
4.1 控制策略的研究。
FCEV动力性控制决策器则根据驾驶员解释器的输出信号及当前车况和各能源的状态进行转矩的限定输出,二者作为一个整体,其结构框图如图4.1所示,根据驾驶员踏板位置以及当前转速及镍氢电池SOC值(SOC=State Of Charge)得到电机的转矩输出值此输出值作为能量管理优化器的输入,能量管理优化器则根据车载二种能源的状态对能量进行合理分配,同时对电机扭矩进行二次限定,得出最终扭矩给电机控制器,从而驱动车轮行驶[39].
FCEV作为一种交通工具主要有起步、空挡、倒车、前进行驶和减速与制动五种不同的工作状态,其能量流控制策略也相应体现在这五个层面上。控制策略从模块上看主要可分为五个部分:起步策略,空挡策略,倒车策略,制动策略,前进行驶策略,其中行驶策略又根据驾驶挡位的不同分为三个部分:一挡、二档和三档。考虑到一般驾驶人员的行车习惯和本车的一些实际情况,编制的能量流控制策略MCU程序执行流程(不包括如紧急制动和故障异常处理程序)。
本燃料电池电动汽车燃料电池额定功率25kW,去除燃料电池辅助设备和车载其它电器用电外,约有20kW的电能可用于驱动系统,DC/DC变换器在288V本车规定的输出电压下可输出70A左右的电流供给驱动系统,镍氢电池包容量为12Ah,电压为288V,所蕴涵的电能理论上约为3.5kWh.
将其功率按驾驶员操作档位分为三档,即l0kW,15kW,20kW三档,而且考虑其缓变特性,在档位切换,功率提高时必须采用斜坡变换,5秒钟切换成功。
但功率下降时考虑安全因数,在100ms切换成功。这样,根据负荷状况就决定了镍氢电池NB(Ni-MHBattery)是输出电流还是吸收电流以及电流大小。
同时由于NB也存在安全方面的问题,也将其SOC值分为四档,即15%~40%,40%~70%,70%~85%,85%~100%,当SOC小于15%时,NB已经没有能力提供能量,必须停车给NB充电;当SOC大于85%时,NB已不允许吸收电流,这时可降低FC功率,让NB为主提供行车能量。
4.2 燃料电池各种工作状态分析。
根据以上燃料电池发动机在整车的不同的工作模式下的功能进行分析,制定出燃料电池在各种工作状态下的控制策略。
4.2.1 燃料电池工作状态的确定。
燃料电池控制策略执行的前题是在确定燃料电池工作状态的条件下,燃料电池发动机处于不同工作状态,就会执行不同的工作流程。所以各种动作执行的依据就是要判断燃料电池处于何种工作状态。在程序中主要通过判断当前的标志位来判断燃料电池电堆当前要执行的工作流程。
归纳起来燃料电池发动机共有四种流程,分别是扫气流程、启动流程、工作流程、关机流程。
以下框图是用来判断燃料电池电堆的工作状态流程图。
首先判断它是否关机状态,如果是就继续判断是紧急关机还是正常关机,如果是紧急关机则置紧急关机标志,即使上位机再发出开机命令,也不能让燃料电池电堆发电。
4.2.2 扫气流程。
燃料电池发动机控制器刚接收PC机或者是整车智能控制系统发来的开机命令后,执行的第一步就是扫气流程。扫气流程的主要目的是在燃料电池发动机控制系统在发生化学反应前,为了保证气路安全状态,一定要在气路中充满了氮气。
在扫氮气的过程中首先开尾气阀,便于排放气体,然后开氮气电磁阀充氮气,持续10秒后,整个氢气通路只有氮气存在,此时在关氮气电磁阀停止充氮气,关尾气阀,让气路中保持氮气的存在。一切过程结束之后,把扫气完毕的标志位置为1,表示扫气结束。
4.2.3 启动流程。
在扫气过程结束以后,电堆就已经处于一个安全的环境中了,此时要完成的任务就是把氢气和空气充入到电堆中,让它们发生化学反应,从而可以发电。
在上一个流程中,已经使整个气路中充满了氮气,在接下来的启动流程的第一步就是,先充氢气把刚才的氮气赶走。虽然看起来好象上一步的充氮气流程显得多此一举,但是这是从电堆的安全性来说是很有必要的。同时高压风机打开送空气,氮气扫完后就看各种供电的条件是否满足,如果没有满足则返回,该子程序会继续判断。如果各项条件满足,则把负载开关合上,充电开关断开,5S后DC345的电压己经和电堆两端的电压相等,再合上充电开关。此时电堆已经和负载相连了,可随负载的大小随时调整其输出功率。
4.2.4 工作流程。
工作流程是指负载己经加在燃料电池电堆两端后,为保证电堆正常工作而执行的一系列动作。
为了防止电堆中水的冷凝和反应生成的水堵塞,应及时排出到电堆外。所以尾气电磁阀要定期开一次以保证电堆中的气路通畅。
在PEMFC中,质子交换膜的润湿状况直接影响着电池内部电化学反应过程和电池组的运行工况[41].当质子膜润湿良好时电池内阻低,输出电压高,负载能力强;反之,当润湿状况变坏,膜过于干燥时,电池内阻增加,输出电压下降,负载能力降低。因此保持质子交换膜良好的润湿状态,不仅是确保PEMFC稳定运行的必要条件,而且对延长电池组工作寿命也有着重要影响[42].所以在电堆发生化学反应的过程中要保证电堆膜正常湿度,要及时调整空气的加湿,即汽油泵喷嘴开断的占空比。同时根据电堆输出的功率及时调整氢气和空气的流量。
4.2.5 安全信号检测模块。
燃料电池发动机控制系统是建立在安全的前提之上的,所以安全信号检测模块是保证电堆正常工作的一个很重要的部分。
检测各报警器信号主要是指各个报警信号是否已经超过其预定值,如果超过则置出报警信号。
循环水电堆出口温度主要是用来监测电堆里面质子交换膜的温度,膜的温度过高会使电堆效率降低,并使堆损坏。所以要保持出口温度在80℃左右。如果温度上升到85℃,则应该向上位机置报警信号,提示驾驶员减少加在燃料电池电堆的负载。
循环水流量报警:为保证燃料电池电堆正常的散热,以免造成危险,水的正常流动也是一个很重要的环节。所以在整个工作过程中,一定要保证水在流动。
一旦检测到水的流量为零,就立即向上位机报警,5s后如果上位机没有让电堆关机,则燃料电池控制器自已会自动紧急关机,让驾驶员检查是否水路堵塞或者出现什么意外。
氢气进堆压力报警:正常工作时,氢气的进堆压力应该保持在0.3~1.2bar之间,如果大于1.5bar,说明氢气罐的减压阀可能出现问题,需要检查。此时控制器向电堆发出报警信号,持续报警5s后进行紧急关机。氢气进堆压力如果持续5s小于0.3bar,说明氢气供给系统有问题,此时也应该报警,提示驾驶员进行检查气路是否畅通和气罐是否气不足或者是别的情况。
电压报警:燃料电池电堆在工作时,只要有氢气和氧气电堆就会有电压。由于电堆是一个软特性,电流越大,电压就越小。在额定功率以内,电压有个最低值,如果小于它说明电堆有问题。所以为了保护电堆,电压规定了一个最小值120V,如果持续5S电压低于120V,则电堆报警同时进行紧急自关机,提示驾驶员停车检查电堆的故障。
电流报警:燃料电池发动机最多能提供25kW的能量,如果电流过大,会急剧拉垮电堆的电压,使电堆处于一种不正常的状态下,这是应该避免的。所以当电流大于120A的时侯,就断开负载的开关,并向上位机发出报警信号,提示操作人员电流过大,10秒后自动合上负载开关。
空气湿度报警:空气进入电堆必须保持一定的湿度,如果长期空气加湿量不够会严重影响膜的寿命和发电效率,所以一旦检测到加湿量不正常,就应该向上位机置报警信号提示驾驶员停车检查加湿控制线路是否正常工作。
氢气泄露报警:出现氢气泄露是一件很危险的事情,涉及到生命和财产安全的问题,所以只要MCU检测到有氢气泄露的情况,控制器就立即进行紧急自关机,并向上位机发出报警信号,要求操作人员查出氢气泄露的源头。
水箱水位报警:燃料电池发动机水循环系统中,水的损耗主要是用来进行空气加湿和氢气加湿,如果水量不足会严重影响冷却和加湿的效果,所以在水箱中安置了一个水位报警器。只要水箱中的水低于它的位置,MCU就会检测到它的报警信号,提示操作人员加水。
氢气罐气量报警:氢气罐瓶口的压力传感器用来检测其罐内的氢气容量,如果氢气量不足而强行使电堆发电,会将电堆拉坏,所以只要气量小于我们规定的压力,就应向上位机报警,提示驾驶员更换氢气瓶。
4.3 燃料电池发动机控制系统软件总体设计。
燃料电池发动机控制系统的软件设计按照功能它主要划分为以下几个部分即:初始化模块、A/D 采样模块、控制策略模块、通信模块。
4.3.1 A/D 采样模块与数字滤波技术的应用。
因为采用的是MC9S12DG128B自带的A/D采样模块,所以在程序的编写上就比较方便,只需要按要求配置好将各个A/D模块的控制器,经过触发就可以从相应的结果寄存器中读出A/D的值。
(1)数字滤波技术概述。
在燃料电池发动机控制系统数字闭环控制系统中,测量值yk是通过系统的输出量进行采样而得到的。它与给定值r(t)之差形成偏差信号ek,所以,测量值yk是决定偏差大小的重要数据。测量值如果不能真实地反映系统的输出,那么这个控制系统就会失去它的作用。
再实际中,通过各种传感器测量出的量,如温度、湿度等测量值对系统输出的测量值常混有干扰燥声,它们来自于被测信号形成过程和传送过程。用混有干扰的测量值作为控制信号,将引起误动作,有时还会引起系统振荡,因此危害极大。
干扰信号可分为周期性和随机性两类。对周期性的工频或高频干扰,可以通过电路中加入RC低通滤波器硬件来加以抑制;但对于低频周期性干扰和随机性干扰,硬件就无能为力了。用数字滤波可以解决这些问题。所谓数字滤波,就是通过一定的软件计算或判断来减少干扰在有用信号中的比重,达到减弱或消除干扰的目的[43].它与模拟滤波相比有如下优点:
(a)数字滤波是用程序实现的,不需要增加硬件投入,因而成本低,可靠性高,稳定性好,不存在各种电气回路之间的阻抗匹配问题。
(b)可以对频率很低的信号实现滤波。
(c)在设计和调试数字滤波器的过程中,可以根据不同的干扰情况,随时修改滤波程序和滤波方法,具有很强的灵活性[44].
数字滤波器有以下几种:算术平均值法、移动平均滤波法、防脉冲干扰平坟法以及数字低通滤波法。
(2)数字滤波的设计。
在该系统设计中,采用了移动平均滤波法。移动平均滤波法每计算一次测量值,只需采样一次,所以大大加快了数据处理速度,非常适合于实时控制。它是将采样后的数据按采样时刻的先后顺序存放在RAM中,在每次计算前先顺序移动数据,将队列前的最先采样的数据移出,然后将最新采样的数据补充到队列的尾部,以保证数据缓冲区里总四有n个数据,并且数据仍按采样的先后顺序排列。
这时计算队列中个数据的算术平均值,这个算术平均值就是测量值yk,它实现了每采样一次,就计算一个yk.
4.3.2 输入捕捉模块与流量的处理。
在设计中,采用输入捕捉端口0作为各种流量测量的输入口,流程图如图4.11所示,初始化RTI和输入捕捉相关的寄存器,在初始化程序中,关闭RTI中断,并且关闭输入捕捉功能,然后打开输入捕捉,等待外部触发,当系统运行时,流量传感器输出脉冲信号,触发输入捕捉,输入捕捉中断产生,在输入捕捉中断子程序中,开启RTI中断,并且计算脉冲的变量flux_cnt加1,这样每产生一个脉冲,flux_cnt都加1,当RTI设置的时间一到,就会触发RTI中断,RTI中断服务子程序里读取变量flux_cnt的值,同时将flux_cnt的值清零,然后关闭RTI中断。再次进行新的循环,就可以得到变量flux_cnt的值。这个值与当前流量的大小成正比。
实际应用中,因为存在各种干扰因素,可能会导致测量值的实际值产社较大的偏差,为了消除或者降低干扰信号的影响,最后进行了数字滤波处理,这里采用移动平均滤波法。
4.3.3CAN 通讯模块设计。
燃料电池发动机控制系统还包括两个通讯模块,一个是与整车智能控制的CAN通讯模块,还有一个是为了方便调试和记录实验数据的通过RS232串口与PC机通讯的模块[45],下面将详细介绍CAN通讯模块内容。
1 报文设计。
燃料电池发动机控制系统相对整车来说,是一个相对比较独立的系统,对整个燃料电池电动汽车来说,它是一种分布式的控制系统,每个独立的子系统只分管自己的那一部分,通过CAN总线传送信息到整车控制单元,进行能量分配与命令传送等[46].
在通讯之前,要与整车控制单元制订好一个统一的协议。
2 通讯仿真。
CANoe是VectorInformatik完整的CAN分析开发的工具系列中最重要的工具之一。VectorInformatik公司是德国的一家专门从事现场总线特别是CAN总线的研究、开发和应用的高科技公司,它在Controller Area Networks(CAN)总线应用领域内提供了一系列、强有力的软硬件工具。在CAN总线网络节点以及整个系统的建模、仿真等开发过程的工业领域中VectorInformatik公司已经独领风骚数十年了,在美国、欧洲、日本有分公司且在全世界很多地区都有代理商,能为客户提供强大且完整的CAN总线网络开发分析仿真的系列工具。随着总线应用技术的不断发展,系统的开发总是因为缺乏合适的开发工具而难以实施。CANoe(CANopen environment)就是一个强大的开发工具。它能支持总线开发的整个过程:从最初的设计到最终产品的售后服务。
(1)燃料电池发动机与整车智能控制器通讯系统仿真。
采用CANoe实现系统的仿真设计、运行与分析。
首先,采用CANoe软件完成CAN系统仿真结构配置如下图4.7所示。向系统中添加燃料电池发动机与整车智能控制器CAN仿真节点模块,配置采用CAN通道1实现通讯。
其次,在CAN系统结构配置完成基础上,设计应用信息关系数据库。信息关系数据库的设计主要包括两部分工作:一部分是数据库元素CAN节点、报文及信号的定义;第二部分是建立节点、报文与信号之间的关联关系,并检查一致性。
数据库元素的定义主要在于具体报文ID的分配,这里参考基于CAN的应用层协议SAEJ1939来设置报文ID格式。上面已经详细地介绍了报文信息的具体内容,建立数据库信息。
再次,在配置窗里加载数据库,采用CAPL语言对节点功能进行具体编程,.
对于随机性信号采用事件驱动触发,对于周期性信号采用定时器驱动发送。在模拟最坏发送情况下,可以设置随机性信号安最小时间间隔发送。
(2)系统性能测试效果。
性能分析参数包括总线负载统计、峰值负载统计、发送率统计、发送总数统计、发送时间延时分析等;性能状态变化趋势包括:负载变化曲线、峰值负载变化曲线、发送率变化曲线、发送总数变化曲线。
(3)通信网络性能参数统计。
4.4 本章小结。
本章主要介绍了燃料电池发动机控制策略及软件设计。首先介绍了整车能量控制策略方面的研究工作,接下来具体介绍了燃料电池发动机每一个流程的工作细节。接下来介绍了此控制系统总体件设计问题,及结合实际的燃料电池发动机控制系统的软件总体设计。根据软件的功能将其划分为三个模块:A/D模块、输入捕捉模块、通讯模块,并对每个模块分别进行了描述。