燃料电池(fuel cell)是一种新型绿色能源技术,是把燃料和氧化剂中的化学能直接转化成电能的装置。燃料电池与一般干电池的不同点是:只要保持燃料供应,电池就会不断提供电能,而且电池反应的最终产物是水,不会对环境造成任何污染,以碳氢化合物作燃料时,反应产物仅增加少量二氧化碳[1]。
燃料电池电堆的温度分布对燃料电池的安全与寿命有重要影响,尤其是在采用质子交换膜的车用燃料电池中,温度不仅影响到催化剂的活性,而且还直接影响到质子交换膜的含水性,因此对其温度的控制有很高的要求。为了在研究过程中对其温度变化进行实时监控,本文基于ARM/Linux构建了一个燃料电池温度监控系统。
1 系统结构
本监控系统整体结构如图1所示。
温控系统采用ARM微处理器S3C2410作为嵌入式微处理器。将经过编译的嵌入式Linux2.6内核及Qt/E库移植到ARM上,温控系统的GUI控制界面运行于LCD上。
温控器以freescale公司MC9S12DG128B单片机为控制核心,采用热电阻作为温度传感器,将温度信号转化为模拟量的电信号,再经过放大电路及压频变换(V/F变换)后,变为数字量的电信号输入控制器,实现控制算法。控制器输出的PWM信号经过光电隔离后直接控制固态继电器,从而控制热风嘴加热器对控制对象进行加热操作,实现温度控制。
Web Server单元采用移植基于Linux的Boa服务器,通过CGI(公共网关接口)实现远程用户与系统间的交互。
数据库单元采用SQLite数据库,Qt为数据库访问提供的QtSql模块实现了数据库与Qt应用程序的无缝链接,同时为开发人员提供了一套与具体所用数据库无关的调用接口。
GUI控制界面采用Qt Designer设计系统的控制界面,利用Qt的信号/槽(signals/slots)机制实现界面对下位机的控制。
2 各部分设计方法
本文重点研究监控系统GUI界面、数据库及远程监控的设计与开发,主要详细了介绍GUI界面、数据库以及Web Server的设计,对于温控器的设计本文不作重点介绍。
2.1 GUI界面及Qt程序设计
2.1.1 Qt的移植
本系统的构建是通过编译Qt4的库到开发板来实现的,首先应对源码进行配置编译,使库添加对底层驱动的支持。设置环境变量如下[2]:
Export PATH= /usr/local/arm/3.3.2/bin:$PATH
Export QTDIR=$PWD
Export QTEDIR=$QTDIR
Export LD_LIBRARY_PATH=$QTDIR/lib:$ LD_LIBRARY_PATH
配置Qt使其支持数据库、网络、触摸屏等驱动,将编译后的Qt目录下的lib文件夹下的库文件加入根文件系统。
为了方便用户操作,本系统应支持中文字体显示。为此,一方面将编译后的Qt/Embedeed的/lib/font目录下的字体库文件添加到根文件系统中,为了节省资源,可以只选择比较常用的一两种字体库;另一方面由于程序中默认的字体不支持中文,故在程序中需指定一种中文字体,方法是在程序的main函数中添加如下语句:
QTextCodec::setCodecForTr(QTextcodec::codecForName(‘gb18030’));
2.1.2 程序界面开发
根据功能需求分析,设计构建了监控系统的层次化GUI界面结构图[3],如图2所示。
从图2中可以看出,子菜单主要分成两部分:一部分是温控界面的主要控制菜单,其中主要包括温度的设定、工作模式的设定、通信控制按钮、和温度显示部分;另一部分主要完成历史数据的显示,通过选择特定的通道和时间区间,可以在显示区显示温度的变化曲线,为此需要在程序中构建一个数据库文件用来存放历史数据,这部分会在后面详细介绍。
首先使用设计器创建界面的对话框,在对话框中添加组件,如:添加按钮以调用其他类来实现界面的控制,添加LCDNumber控件来模拟显示温度,添加下拉菜单来进行不同通道的选择等。连接组件的SIGNAL/SLOT以响应事件,修改控件属性,合理调整布局。保存GUI界面为Temperature.ui,根据设计器保存的界面文件(ui文件)使用uic命令生成.h头文件。
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉