国外关于燃料电池驱动机器人已经有一些成功的样例。美国Sandia国家实验室机器人中心研制了燃料电池驱动的RATLER,用于执行边界巡视或是化学物资源的定位。采用PC104结构的嵌人式PC作为微控制器,通过无线射频收发和基站PC及其他车辆进行通信。西属英格兰大学的智能自主系统实验室研制了由微型燃料电池(MFC)驱动的小型机器人。MFC电堆的开路电压是5.4 V,实际运行的电压在1.93-2.83V之间。美国加州一高校实验室也于2003年10月装配了一台由燃料电池驱动的小型机器人样机。
对燃料电池驱动的自主机器人系统来说,不仅要求对燃料电池及辅助动力单元(氢气、空气流量等)进行控制,还需要对电机传动系统、机器人本体、故障诊断(安全性)等进行控制。由于控制参数的增加,使整个系统变得更加复杂,因此需要对采样输人、数据处理、控制逻辑与决策、控制信号的输出、工作状态参数进行有效的管理和控制。控制器模块应具有以下的特点:
①运算速度快。支持高级语言编译,以适应复杂算法和功能的增加。
②接口能力强。控制系统增多,因此与定时有关的输入、输出接口能力应加强。
③总的体系结构扩展方便。软件和硬件均采用模块嵌人式结构。
④集成度高。节省体积,减少故障点。
⑤功耗低。
目前国内还没有针对燃料电池驱动机器人的控制系统进行研究。本设计实现了一个以32位微控制器为核心的PEMFC驱动自主机器人系统。
1 系统构成介绍
对燃料电池驱动的机器人来说,系统可以分为供电系统和机器人本体系统,其中机器人本体包括机械结构部分和电机及驱动部分。供电系统包括燃料电池单元、辅助动力单元、DC/DC转换单元、控制单元等。
初步设定机器人在实际运行中需要的输入功率为80~100W,考虑机械结构损耗、电路损耗以及燃料电池运行中的效率问题,最终选用300W的质子交换膜燃料电池,电堆设计值为输出电压24V,最大输出电流12A。由于电堆的输出电压与负载大小、空气流量等有关系,所以要求控制器实时检测电堆输出电压、电流。调节空气流量和燃料气流量来完成对期望功率的响应。考虑到燃料电池系统在负载突然增大时可能会出现电压的剧降,所以在系统中增加了辅助动力模块。辅助动力根据燃料电池单元输出的电压在不同运行模式下进行切换。
控制系统应包含以下模块:
①PEMFC系统的自调整模块,根据所需功率调整电堆进量;
②机器人自身状态调整模块,校正姿态和方位,此模块包括微控制器部分和电机驱动部分;
③机器人系统和远方PC主机的通信模块,人为远程干预的接口。
控制系统的整体示意图如图1所示。
其中,PEMFC系统控制模块和机器人控制器的连接示意图如图2所示。
2 总体方案
系统从功能需求上分为两个模块:
(1)功率调整模块。
该模块首先和机器人系统中的功率需求模块进行实时协商,根据路况信息和PEMFC电堆状况确定可行的需求功率。然后把根据可行的需求功率进行调整。输出电压可以通过控制电压转换单元来稳定在设定值(如12V)。通过调节燃料气体或空气的流量来改变功率的实际输出。
(2)机器人本体控制模块。
不仅应实时对机器人位置姿态进行调整,还要从能量优化的角度进行考虑,对系统整体规划进行补偿。一旦检测到电压下降,能够通过调整规划和动作,如放慢电机转速进行补偿。电压过低或是运行出现故障时,机器人向远端发出报警信号请求人为千预。
因此,对于基于微控制器的机器人控制模块,应满足如下需求:
①提供LCD接口,实时的机器人本体状态及能量参数显示;
②提供电机驱动模块;
③较高的实时性;
④软件设计支持高级语言编程,同时支持实时多任务;
⑤系统具有通用性,功能模块覆盖的全面性,为以后的功能引入和校正提供接口。
为此,系统采用Samsung的32位ARM内核芯片S3 C44B0及相应开发板进行开发。考虑系统的实时性和软件实现,采用μC/OS-Ⅱ操作系统。
3 硬件设计
硬件系统采用模块嵌入式设计,分为4部分:MCU单元、传感器及信号处理电路、执行器及驱动电路、通信接口电路。
与工业控制计算机相比,嵌入式微控制器具有体积小、重量轻、成本低、可靠性高的优点,但是在电路板上必须包括ROM、RAM、总线接口、各种外设等器件。就微控制器而言,主要有386EX、PowerPC、MIPS、ARM系列、PC104等。从开发成本上,采用ARM芯片比采用PC104成本低,适合做小型嵌人式系统开发。而且相比51单片机来说,ARM开发不需要专门的编程器,可以自己制作硬件仿真工具。而且开发手段、编写代码比51方便,同时可以用操作系统加快开发进程。
根据设计目标,选择Samsung公司的S3 C44 BO微控制器。S3 C44 BOX提供以下配置:2.5 V ARM7TDMI,内核带有8K cache,内部SRAM,LCD控制器,2通道串口,外部存储器控制器,5通道的PWM定时器和1个内部定时器,看门狗定时器,71通用I/O端口,8通道外部中断源,8通道的10位ADC。系统采用在线编程(ISP)。
系统的通信功能包括远端的人为干预和运行信息输出。人为干预主要用于遥控启动以及运行过程中的紧急停止,同时可以事先设定运行参数。运行信息输出主要用于记录机器人本体和PEMFC的运行状况,以文件形式存在Nand Flash中,在机器人停止工作时用于后期分析。
硬件结构的连接示意图如图3所示。
4 软件设计
软件采用32位嵌人式实时操作系统在ARM架构上的移植。采用操作系统可以使机器人系统的应用程序和硬件的板级支持相分离。考虑到机器人对实时性要求比较高,同时考虑实现的简易性,操作系统选用了μC/OS。μC/OS是公开源码的操作系统,但它只是一个内核,所以需要在其上移植UCGUI, TCP/IP网络协议栈。
考虑到实际运行系统的代码大小,最终采用在PC/OS系统上移植LWIP协议栈。LWIP是一种轻型的TCP/IP协议,控制系统基于此和PC机进行网络通信。LWIP协议栈和其他模块的接口图如图4所示。
系统的软件设计需要完成以下几个功能:机器人的路径规划,驱动电机用的PWM输出,状态参数的LCD显示,PEMFC控制。从程序实现上,应该包括:外部中断子程序、PEMFC启动控制模块、避障及导航程序、A/D采样处理程序、通信模块、功率管理模块、LCD显示程序、报警程序等。
软件的设计框图如图5所示。
5 结束语
以32位微控制器为核心,建立了一个PEMFC驱动的自主机器人系统。利用微控制器和嵌人式实时操作系统对机器人进行控制,增加了系统的稳定性及实时性。该系统能够自主导航、避障,而且可以人为进行远端干预,并对PEMFC电量状态、车体状态等进行监测显示。同时将运行数据以文件形式保存在控制板上的Flash里,以便传送给上位机做运行分析。目前该系统调试情况良好。