朱家裕 申大山 张文强
摘要:作者设计和实现了一种基于Arduino单片机的简单、高效燃料电池充电控制系统,该系统可以提供9种充电功率选择,具有智能化、零排放和高效率的特点。基于Arduino燃料电池充电控制系统的设计与实现,有利于教师和学生深入了解新能源氢燃料电池系统的技术原理,将现代信息技术的教学与新能源产业科技前沿实践紧密结合,提高学生的理论知识水平和动手能力。
关键词:信息技术教育;燃料电池;Arduino;新能源汽车
中图分类号:TP273,TP368.1 文献标识码:A 论文编号:1674-2117(2023)15-0068-05
引言
信息技术的发展正在推动时代变革,也对我国的信息技术教育提出了越来越高的要求。教育部提出,要推动教师主动适应信息化、人工智能等新技术变革,积极有效开展教育教学,并构建以校为本、基于课堂、应用驱动、注重创新的教师信息素养发展新机制,全面促进信息技术与教育教学融合创新发展。[1]因此,实现信息技术学习和教学工作与社会实践需求的结合,鼓励教师和学生瞄准科技发展前沿,用讲授和学到的信息技术解决我国科技创新前沿领域问题,是理论联系实际、培养学生掌握科学方法和提高动手能力的重要途径。
燃料电池是中学电化学课程要求的重要基础电化学学习内容,虽然在课堂教学中目前已经安排了用燃料电池反向运行电解水的实验,但学生对其运行原理和实际工作模式的了解往往还停留在表面。[2]而Arduino单片机是一个基于软件与硬件开发的开源平台,具有操作指令少、编程方法简单、易于输入和教学资源丰富等特点,很多城市的高中通用技术课程中均有涉及。[3-4]如果能将两者结合,将有利于教师和学生深入了解新能源氢燃料电池的运行操作和Arduino控制原理和技术,提高学生的实践能力。
本研究旨在设计基于Arduino的燃料电池充电控制系统,开发一种新型的利用燃料电池产生的“绿电”为锂离子电池提供充电服务的智能控制系统。该模拟系统主要包括燃料电池模块、燃料电池控制模块、电动汽车充电模块和编程控制系统,具有可移动、智能化、零排放和高效率的特点。Arduino的燃料电池充电控制系统的设计与实现,有利于教师和学生将信息技术的教学与社会实践紧密结合,提高学生的理论知识水平和动手能力。
系统整体设计
燃料电池充电控制系统可以实现以下三个功能:第一,根据用户的充电功率需求,实现9级充电功率选择,自动控制氢气流量,保证系统的高效运行;第二,充电电量采用实现现场采集,非理论估算值,系统自动计量,保证用户的利益;第三,燃料电池运行和动力电池充电过程自动控制和危险警告反馈,如氢气压力过低或燃料电池温度过高情况发生时,能够进行正确反馈,保护系统和周边用户安全。
根据燃料电池充电控制系统的功能需求,对充电站的各个模块进行设计,系统主要包括Arduino核心、氢气产生、流量控制、燃料电池、充电控制和动力电池模块等。为保证系统的安全运行,充电站还包括了氢气压力报警和温度过高报警保障功能模块,总体设计框图如图1所示。各个模块的主要功能:氢气产生模块为充电站提供燃料;燃料电池模块将燃料气高效转化为电能,并输出供给動力电池储存起来;Arduino模块作为充电站控制系统的核心部分,对流量控制、充电控制、氢气压力报警、温度过高报警和电池异常报警等模块起着控制作用,压力传感器和温度传感器检测氢气压力和燃料电池温度,并将收集到的信息反馈给主控芯片,主控芯片对信息进行处理,然后将处理结果发送给驱动流量控制、充电控制,从而控制燃料电池充电站的运行状态。
燃料电池理论计算
燃料电池充电站的充电功率与氢气流量的关系主要基于热力学第一定律进行计算和实时控制。[5-6]在标准状态下,氢气与氧气反应生成水的燃烧焓(?fHl)为:
H2+1/2 O2=H2O
?fHl=-285.85kJ/mol (l)
氢气的摩尔体积为22.4L/mol,则氢气的体积能量密度:
WV=285.85/22.4=12.76kJ/L (2)
设氢燃料电池的工作电压和能量转化效率分别为0.7V和85%,则系统总效率:
η=0.7/1.48×85%=40% (3)
设用户设定的充电功率是p(W),系统所需的氢气过量系数为1.1,则所需的氢气流量v(L/min)为:
v=p×60×1.1/(12760×40%)
=0.013p(L/min) (4)
为简化系统设计,若充电功率是10W,则标准状态下,对应的氢气流量为0.13L/min。如果动力电池的容量为10Wh,充电时间约为60min。在运行过程中,实际的充电时间由Arduino控制的充电系统按照实际电量来控制。
燃料电池充电控制系统的硬件设计和实现
根据燃料电池充电控制系统的总体设计,需要为充电站设计和选择合适的硬件设备。充电站的硬件设计主要包括Arduino主控器、氢气产生源、燃料电池、动力电池、流量控制模块、充电控制模块、压力传感器、温度传感器、电量控制模块和通信模块等的选择。通信模块主要用来接收用户的输入信息,并可远程启动和关闭燃料电池充电系统。燃料电池充电控制系统的整体接线图如下页图2所示。
鉴于系统模拟的便利性,本研究选择Arduino UNO R3版本,其处理器核心是ATmega328。燃料电池选择10W功率,充电电池选择18650锂电池。充电模块选择TP4056,截止电压4.2V,安全使用温度-20~60℃。氢气产生模块可以采用氢气瓶(带限压装置)或氢气发生装置(如启普发生器)等,保证气体流量大于130mL/min。
流量控制由PWM气泵和气阀构成,由Arduino系统控制PWM气泵实现设定的充电电流和对应的氢气流量。PWM气泵需要通过L298N模块驱动,如下页图3(a)所示。Arduino产生逻辑控制信号给L298N的ENA和ENB引脚,控制电机的速度,达到控制气泵流量的目的。PWM是一种脉冲宽度调制技术,如图3(b)所示,通过调整进入电机的电压的平均值,通过高电平和低电平的持续时间来控制电机的运动速度。
充电电量的测量采用Arduino编程采集实时电流和电压,以计算燃料电池为锂电池提供的实际电量。Arduino功率计电路主要由测量单位单元包括一个测量电压的电阻、LM7805电压调节器、一个带有非反相运算放大器LM358和稳定电容构成。由于锂电池所需充电电压为0~4.2V、电流范围为0~2A。Arduino可以直接测量0~5V的电压,所以不需要进行电压映射,可以直接反馈到Arduino模拟引脚。充电电流的测量,由于微控制器只能读取模拟电压,因此需要通过一个0.22欧姆的小电阻将电流值转换为电压。当最大2A电流通过负载时,电压降约为0.44V。这个电压比较低,测量误差较大。所以,设计中采用LM358放大11倍后,便于准确Arduino读取。
氢气的温度和压强测量采用AHT20+BMP280湿温度气压模块。通过温度和气压传感器,反馈给Arduino系统,确定氢气供给正常。当气体温度太高(>80度)或压力太低时(<0.8atm),会导致燃料电池工作异常和损坏,需关闭气阀和燃料电池充电继电器,以保证安全。锂电池温度测量和报警子程序主要通过热敏电阻LM35实现,LM35连接到Arduino的A2模拟口,当LM35测定的电池温度超过80℃时,关闭氢气气阀和气泵。
燃料电池充电站的启动、关闭和功率选择采用红外通信模块实现。红外通信是一种无线、非接触控制技术,具有抗干扰能力强、信息传输可靠、功耗低、成本低、易实现等显著优点。红外通信模块采用IRM3638T载波信号红外发射器和接收头。充电控制系统关键信息的显示采用0.91寸OLED(128*64)显示屏,内部驱动为SSD1306,采用I2C数据连接模式,便于接线和控制使用。
燃料电池充电控制系统的硬件设计构架
根据燃料电池充电控制系统的功能需求,对充电站的各个模块进行设计,系统主要包括Arduino核心、氢气产生、流量控制、燃料电池、充电控制和动力电池模块等。为保证系统的安全运行,编写高效无误的程序是必不可少的。首先需要建立一个项目并编写程序,要定义IO引脚并对其初始化,定义燃料电池充电站的一系列动作,主程序框图如图4所示。
当Arduino接收到用户的输入命令(“ON”或“OFF”)及流量级别选择(1~9),在检查气阀是否打开的条件下,通过输出到L298N的ENA,IN1和IN2的引脚,以控制PWM气泵的转速。其中ENA接受调制好的脉冲宽度控制转速,IN1和IN2用来控制气泵的排气或抽气。在软件功能实现方面,要注意当PWM<60时,气泵不能驱动,所以Arduino应将输入的流量值0~9,通过map()函数映射到60~255的PWM信号值,即PWM信号从60%到100%的占空比。然后使用analogWrite()函数,发送PWM信号到L298N板的ENA端,从而驱动电机以设定的速度转动。
氢气的温度和压强测量需要加载Adafruit的AHTX0和BMP280函数库,以保证AHT20+BMP280湿温度气压模块的正常运行。该模块可以与Arduino通过SCL和SDA实现I2C数据交互。程序设计每秒对气体的温度、湿度和压强进行取样一次,并通过OLED显示屏输出数据。OLED显示模块的功能实现需要调用U8glib函数库。系统的红外通信模块子程序需要调用IRremote函数库。
燃料电池充电控制系统运行测试
按照图2进行燃料电池充电站接线,并根据图4Arduino程序输入和编译。当程序上载成功后,打开Arduino电源,OLED屏显示气体流量为0mL/min,氢气压强为102580 Pa,充电电量为0.0w·s。屏幕下方的滚动条代表系统正在工作。
1.充电功率选择的测试和验证
通过红外输入不同的数字,可以观察到气泵的转动速度发生明显变化,同时OLED屏显示实时的气体流量、氢气压强和累计充电电量如下页图5所示。
从图5可以看出,当选择不同充电级别时,氢气流量实现了明显分级。当按下2键时,流量约为28mL/min,充电功率较低,速度较慢。当按下9键时,氢气流量增加到126mL,充电功率明显加大。
2.氢气压力测量的测试和验证
为验证氢气压强的实时测量,在不停止气泵的情况下,停止氢气源的供应。从下页图6可以看出,开始时氢气压强为101.9kPa,气泵流量为70mL/min时,氢气压强很快降到98.3kPa;继续抽气,氢气压强会降到95.5kPa。气体压强的实时测量和反馈功能正常。
3.锂电池温度测量的测试和验证
为验证动力电池温度的实时测量,进行如下测试。首先在室温下,显示电池的温度为20.0℃,当用手贴近测温传感器LM35时,测量和显示的温度开始上升,并最后稳定在36.6℃,表明动力电池温度的实时测量功能正常。当用电烙铁靠近LM35时,温度快速直接升到80℃以上,系统自动关闭气泵和继电器。电池温度的测量和报警功能对保证系统稳定运行起到了非常重要的作用。
结语
本研究设计和实现了基于Arduino的燃料电池充电控制系统,以及9种充电功率的可控选择和安全运行,可满足各类电动车辆的充电要求。
设计中包含了硬件设备的使用和软件的开发,根据系统整体的功能流量控制、充电控制、氢气压力报警、温度过高报警和电池异常报警等进行结构设计,各模块协同作用完成系统功能。在选用Arduino温度、压强传感器时,以便利性和高性能为主要选择标准。除此之外,在器件选择过程中,笔者考虑到Arduino板的引脚数目有限,尽量采用I2C实现模块功能,而不占用过多引脚接口,实现了单块Arduino板有效控制多个模块的功能,大大提高了系统的可操作性和性价比。
基于Arduino的燃料电池充电控制系统的设计和实现,同时兼顾了学生对电化学和信息技术课程学习和实验要求,有利于教师和学生深入了解新能源氢燃料电池的运行操作和Arduino控制原理和技术,提高学生的实践能力。
参考文献:
[1]中华人民共和国教育部.教育部关于印发《中小学信息技术课程指导纲要(试行)》的通知[DB/OL].http://www.moe.gov.cn/s78/A06/jcys_left/zc_jyzb/201001/t20100128_82087.html.
[2]岳鑫.新能源技术快速发展下的《电化学基础》课程教学改革探索[J].广东化工,2021,48(12):278-279.
[3]王婭娟.浅析基于项目学习的高中信息技术教学[J].试题与研究,2023,1129(10):72-74.
[4]李玉兰.高中信息技术教学中合作学习的开展[J].当代家庭教育,2023,180(06):134-136.
[5]农宝廉.燃料电池—原理·技术·应用[M].北京:化学工业出版社,2004.
[6]王晓红.燃料电池基础[M].北京:电子工业出版社,2007.
作者简介:张文强,通讯作者,清华大学副教授。
基金项目:清华附中能源高研实验室项目,国家自然科学基金(No.51202123)。