朱家裕 申大山 張文強



摘要:作者設計和實現了一種基于Arduino單片機的簡單、高效燃料電池充電控制系統,該系統可以提供9種充電功率選擇,具有智能化、零排放和高效率的特點?;贏rduino燃料電池充電控制系統的設計與實現,有利于教師和學生深入了解新能源氫燃料電池系統的技術原理,將現代信息技術的教學與新能源產業科技前沿實踐緊密結合,提高學生的理論知識水平和動手能力。
關鍵詞:信息技術教育;燃料電池;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)。