文献标识码: A
随着清洁能源需求的增加,燃料电池发动机及其在汽车动力系统中的应用越来越重要。燃料电池按电化学原理直接将等温的化学能转化为电能。由于不受热机卡诺循环的限制,目前各类燃料电池实际的能量转化率均可达40%~60%;燃料电池环境友好、工作安静、噪声很低。燃料电池发动机由空气系统、氢气系统、水热管理系统、增湿系统和电堆等几部分组成,其结构如图1所示。
1 分布式燃料电池发动机控制系统
针对燃料电池发动机的上述要求,清华大学和大连化学物理研究所合作,研制了分布式燃料电池控制系统。整个系统以燃料电池发动机主控制器为核心,包括了2个发动机的独立控制子系统,每个发动机控制系统包括电堆控制器节点、增湿控制器节点、风机控制器节点以及4个单片电压测量节点等。加上燃料电池发动机的主控制器,整个控制系统共包括15个控制器节点。这些控制器以主控制器为核心,形成了整车动力系统时间触发控制器局域网络(TTCAN)通信协议。
2 基于ARM+MPC561双单片机的主控制器设计
2.1 控制器硬件框架
控制器的硬件框架如图2所示。该控制器采用MPC56x和AT91SAM9261S单片机双核处理器的模式,其中底层IO驱动采用MPC56x单片机[1],而控制算法采用ARM9单片机[2]。采用ARM9单片机进行控制算法的优点是:
(1)ARM的主频高、运算速度快,最高主频可以达到190 MHz,运算速度可达210 MIPS,大大高于MPC56x的56 MHz;
(2)可以配套的内存大,拥有丰富的内存扩展接口,不但能实现与MPC56x相同的SRAM扩展,还拥有专门的SDRAM管理模块,能进行SDRAM扩展,其容量可以轻易达到100 MB以上;
(3)外设接口丰富,USB2.0全速主机双端口及设备端口,可以实现与上位机的高速数据传输,保证上传和下载数据的高效和可靠;
(4)价格低廉,AT91SAM9261S零售价只需63元,小批量价格仅为6美元,而MPC561零售价格高达40美元,在价格上具有很强的竞争力。
MPC56x的优点是:带有丰富的外围周边模块,例如TPU3、QADC、QSM、CAN、MIOS和SPI接口等,能够直接接口底层的各种信号。因此将MPC56x和ARM结合起来,可以保证控制器既具有强大的控制算法(浮点运算能力),又有强大的底层实时驱动能力。
2.2 基于ARM的控制算法开发方法
燃料电池发动机的控制算法框架如图3所示。整个上层控制算法可以分解为2层:输入输出信号接口和控制算法逻辑本身。其中输入输出信号接口(底层驱动信号)在MPC56x中运行,而控制算法逻辑直接在ARM中运行,两者通过CAN总线实现信息交互。
上层控制算法可直接利用MATLAB/SIMULINK中的Real Time Workshop工具箱进行开发。MATLAB是Mathwork公司开发、支持ARM9算法仿真调试及自动代码生成的算法开发工具,是学术界/工业界广泛认可使用的工程算法开发平台。其下的Simulink组件具有强大的算法仿真调试功能;Stateflow模块提供直观可靠的逻辑分析/状态机;Real-time Workshop模块支持自动代码生成[3],能将仿真测试后的框图模型自动生成支持ARM9数字核心的C代码。
2.3 控制器测试
对于AT91SAM9261S+MPC561的双数字核心燃料电池主控制器,现阶段在实验室中利用Vector公司的CAN Case网络通信硬件工具以及CANalyzer软件模拟整车TTCAN网络和燃料电池控制系统的底层控制器,并采集实验数据对双数字核心燃料电池主控制器进行仿真测试,控制器测试照片如图4所示。
通过实际测试,验证了采用MPC+ARM的双数字核心架构的燃料电池主控制器在运行同样的控制算法时,要比采用单个MPC561数字核心的控制器快得多。在MPC和ARM之间的CAN通信方面不存在任何问题,可以应用于实车运行中。这种叠加式的控制器的优点是在当算法比较复杂时,可以直接采用双核控制器;而控制算法比较简单时,采用单个MPC56x就可以满足控制系统的要求。
(1)为了满足复杂的燃料电池发动机或者新能源汽车动力系统的控制算法,本论文提出了采用ARM9加MPC56x单片机的双核控制器设计的思路。由计算性能更好的ARM9负责控制算法,而驱动能量较好的MPC56x负责输入输出驱动。
(2)ARM9的控制算法可以实现在MATLAB/SIMULINK中的图形化编程,然后利用控制代码自动生成技术实现上层控制算法的高效开发。
(3)在本例中,由于ARM9和MPC56x的数字核心的安装接口完全一致,因此可以根据实际应用的复杂程度决定是只用一个数字核心MPC56x,还是ARM9+MPC56x的双数核心。其为教学和科研提供了一个模块化的科研平台,为兼容各种简单和复杂控制算法的应用系统提供了一个统一的硬件平台。
参考文献
[1] Freescale. MPC561 Reference Manual.2005,8.
[2] Atmel.AT91SAM9261S Preliminary.2007,9.
[3] Mathworks.Matlab R2007a Help.2007,1.