何謙益, 左正興, 馮慧華, 李 龍, 郭宇耀
(北京理工大學(xué) 機械與車輛學(xué)院,北京 100081)
基于STM32的自由活塞內(nèi)燃發(fā)電機電控系統(tǒng)設(shè)計
何謙益, 左正興, 馮慧華, 李 龍, 郭宇耀
(北京理工大學(xué) 機械與車輛學(xué)院,北京 100081)
圍繞STM32F407設(shè)計了符合自由活塞內(nèi)燃發(fā)電機控制需求的電控系統(tǒng),并匹配設(shè)計了對應(yīng)軟件.從樣機結(jié)構(gòu)特點、運行特點入手,分析了控制系統(tǒng)具體功能與需求,提出STM32與FPGA聯(lián)合控制的總體方案,并介紹了處理器單元模塊、數(shù)據(jù)采集模塊、驅(qū)動模塊以及通信模塊的硬件設(shè)計.提出通過運行速度調(diào)整后續(xù)控制參數(shù)的控制策略并進行仿真,使用軟件分層設(shè)計思想以及前沿工具STM32CubeMX進行ECU軟件開發(fā).最后試驗驗證了ECU與PC之間串口通信的實現(xiàn).
自由活塞內(nèi)燃發(fā)電機;電控系統(tǒng);串口通信
自由活塞內(nèi)燃發(fā)電機(Free-piston Engine Generator,簡稱FPEG)是由自由活塞內(nèi)燃發(fā)動機與直線電機耦合而成的一種新型能量轉(zhuǎn)換裝置.得益于其結(jié)構(gòu)的特殊性,具有傳遞路徑短、結(jié)構(gòu)緊湊等優(yōu)點,應(yīng)用前景廣闊[1-3].但也因其唯一運動部件活塞組件不受機械限制,沒有固定的上下止點,給整機控制帶來了很大困難.機器運動規(guī)律完全取決于其受力狀態(tài),因此,在壓縮沖程中施加給活塞組件的能量要恰好使活塞完成壓縮沖程,能量過多將活塞位移過度,甚至損壞發(fā)動機,能量不足將導(dǎo)致發(fā)動機失火.所以控制問題是關(guān)乎自由活塞內(nèi)燃發(fā)電機穩(wěn)定運行的核心問題[4].
現(xiàn)階段對FPEG控制方面的研究成果大多停留在控制策略層面[5-8],雖然有少數(shù)研究人員對控制系統(tǒng)展開過研發(fā)[9],但因當(dāng)時控制芯片發(fā)展條件所限,所選用的微控制器(Micro Controller Unit,簡稱MCU)性能遠落后于當(dāng)前的主流芯片.本文針對自由活塞內(nèi)燃發(fā)電機的控制問題,提出STM32與FPGA聯(lián)合控制的方案,對FPEG電子控制系統(tǒng)的硬件進行設(shè)計,提出通過運行速度調(diào)整后續(xù)控制參數(shù)的控制策略,在軟件分層思想的指導(dǎo)下,運用前沿開發(fā)工具STM32CubeMX進行軟件開發(fā),并實現(xiàn)ECU與上位機之間的串口通信.
FPEG一種常見的結(jié)構(gòu)如圖1所示.兩個氣缸分布在左右兩側(cè),中間為直線電機,活塞連桿與電機中間的動子磁芯通過螺紋固連.FPEG工作時,控制系統(tǒng)需讀取左右兩側(cè)氣缸內(nèi)的壓力、活塞位置等信號,將這些數(shù)據(jù)傳給MCU,計算出噴油量、點火時機等信息,最后通過驅(qū)動電路來控制執(zhí)行器件工作.此外,電子控制單元(Electronic Control Unit,簡稱ECU)也需要與上位機或者傳感器之間進行通信.
圖1 FPEG樣機結(jié)構(gòu)圖
有研究者通過控制板卡或電機供應(yīng)商提供的控制平臺對自由活塞內(nèi)燃發(fā)電機進行控制[10],但這種方法不能及時將上一行程采集到的工作狀態(tài)參數(shù)經(jīng)過計算運用到下一行程控制當(dāng)中,極大地限制了控制策略實現(xiàn)的可能性.因此,重新設(shè)計獨立的FPEG控制系統(tǒng)有著重要意義.
通過以上分析可知FPEG對控制系統(tǒng)有如下需求:①較高的信號處理速度:FPEG沒有飛輪或液壓缸這類儲能機構(gòu),峰值運動速度和加速度明顯快于傳統(tǒng)內(nèi)燃機,需要對其輸入信號進行快速處理;②多個A/D轉(zhuǎn)換通道:控制系統(tǒng)工作時需要同時采集兩側(cè)缸內(nèi)壓力、兩側(cè)缸內(nèi)溫度、兩個進氣流量等多個模擬量信號;③強大的驅(qū)動能力:需要對噴油器、點火裝置、步進電機等進行驅(qū)動;④滿足多種通信協(xié)議:ECU需要與上位機和控制板卡之間進行通信,必須支持不同種類的通信協(xié)議例如RS-232、RS-485、CAN等.
2.1 硬件總體方案
根據(jù)上述需求,選取意法半導(dǎo)體公司推出的STM32F407控制芯片作為MCU.速度方面,STM32F407使用Cortex-M4內(nèi)核,頻率高達168 MHz,指令周期僅為5.9 ns,可完全滿足FPEG樣機25 Hz左右運行頻率的需求;模數(shù)轉(zhuǎn)換方面,該芯片擁有3個12位A/D轉(zhuǎn)換器,多達24個通道,滿足FPEG近10項的輸入信號通道需求;驅(qū)動方面,既可以驅(qū)動普通開關(guān)式控制器,又可以通過內(nèi)置DAC或定時器輸出PWM信號控制步進電機控制節(jié)氣門開度;通信方面,該芯片擁有多達15個接口,其中多個UART可為RS-232與RS-485協(xié)議下的通信提供硬件平臺,2個CAN接口為CAN總線通信提供資源.
從功能角度而言STM32芯片更側(cè)重于任務(wù)調(diào)度,相比之下現(xiàn)場可編程門陣列(Field-Programmable Gate Array,簡稱FPGA)具有更強的計算能力.所以選用二者聯(lián)合的方案,各取所長,運用STM32進行任務(wù)調(diào)度,運用FPGA進行主要計算或者對某些位移采集設(shè)備進行解碼.此外,STM32也能夠勝任對自由活塞內(nèi)燃發(fā)電機控制參數(shù)的計算,因此,預(yù)留了信號輸入電路,保證在FPGA出現(xiàn)異常的情況下,可以使STM32承擔(dān)起計算任務(wù).控制系統(tǒng)硬件架構(gòu)如圖2所示.
2.2 處理器單元模塊
為提高自由活塞內(nèi)燃發(fā)電機ECU對不同MCU的兼容性,本文采用ECU處理器單元與各功能模塊分離的方案.處理器單元位于核心板,主要用來布置MCU芯片的最小系統(tǒng)以及和底板的連接電路,底板上主要用來放置輸出信號處理電路、執(zhí)行器驅(qū)動電路、FPGA、連接器電路等功能型電路.
2.2.1 電源電路
ECU使用3.3 V電壓為STM32芯片供電,但同時也需要5 V電壓為其他器件進行供電,如測量活塞位移的SR27A型磁柵位移傳感器等.
設(shè)計中采用2級降壓的方式,先將外部電源提供的12 V直流電轉(zhuǎn)換為5 V,一方面作為ECU中一些元器件的驅(qū)動電源,另一方面作為輸入電壓,再經(jīng)過轉(zhuǎn)換輸出3.3 V電壓.若將12 V電壓直接轉(zhuǎn)化為3.3 V電壓,線性三端穩(wěn)壓器往往會產(chǎn)生巨大熱量,發(fā)生紋波控制問題,故選擇先將12 V轉(zhuǎn)為5 V,再轉(zhuǎn)為3.3 V的方案.選用直流降壓轉(zhuǎn)換芯片MP2359來進行第一級降壓得到5 V電源,正向低壓差穩(wěn)壓器AMS1117-3.3來進行第2級降壓得到3.3 V電源.
圖2 控制系統(tǒng)硬件架構(gòu)
2.2.2 時鐘電路
STM32F407內(nèi)部已經(jīng)包含了16 MHz的高速內(nèi)部振蕩電路和32 kHz,但是精度都不高.因為FPEG運行速度快,對點火時刻有著嚴格的要求,低精度時鐘會影響點火時刻的準(zhǔn)確性,所以在外部增加了高精度25 MHz和32.768 kHz的時鐘晶振電路,分別為系統(tǒng)的可靠工作提供時序基準(zhǔn),以及為看門狗和實時時鐘提供驅(qū)動.
2.3 數(shù)據(jù)采集模塊
測量缸內(nèi)溫度、缸內(nèi)壓力、進氣流量等絕大部分傳感器輸出信號為模擬量,需要進行穩(wěn)壓或模數(shù)轉(zhuǎn)換處理才能供控制芯片使用.模擬信號被分成2路:一路經(jīng)過穩(wěn)壓電路直接輸入給STM32F407芯片內(nèi)置ADC,另一路通過外置模數(shù)轉(zhuǎn)換電路處理后輸入給FPGA.
對模擬信號只需進行簡單的分壓與穩(wěn)壓處理,將輸出電壓穩(wěn)定在3.3 V左右,滿足STM32F407芯片輸入電壓條件即可直接輸入.通過2個分壓電阻和一個穩(wěn)壓二極管即可實現(xiàn)該功能.
在A/D轉(zhuǎn)換電路的設(shè)計過程中,將模擬量到數(shù)字量的轉(zhuǎn)換過程分為2步來進行,第1步是通過型號為LM2901D的電壓比較器來進行鑒幅,將連續(xù)的模擬量轉(zhuǎn)換成階躍式的數(shù)字量,第2步是在施密特觸發(fā)器中將信號整形成規(guī)則的矩形脈沖.
2.4 執(zhí)行器驅(qū)動模塊
FPEG的執(zhí)行器有3類: ①需要大功率來驅(qū)動,例如點火系統(tǒng);②普通開關(guān)類執(zhí)行器,例如噴油器、油泵驅(qū)動器等;③需要PWM信號來驅(qū)動,例如控制氣門開度的電機.
FPEG樣機使用商用點火系統(tǒng),由12 V直流電壓驅(qū)動,選用高速高電壓功率MOS管和IGBT驅(qū)動芯片IR2101S可滿足其需求.點火驅(qū)動電路原理圖如圖3所示, 大電容和穩(wěn)壓二極管的作用是與HO、LO后面的負載組成一個升壓電路,在VB口上產(chǎn)生一個12 V電壓,芯片會用VB口的電壓來驅(qū)動NMOS上管.由MCU發(fā)出邏輯信號,經(jīng)LIN或HIN口進入驅(qū)動芯片,后經(jīng)過低端推挽輸出極將功率進行放大后輸出12 V的電壓對后面的點火模塊進行驅(qū)動.
圖3 點火驅(qū)動電路原理圖
FPEG中的噴油器與燃油泵均可由12 V直流電壓驅(qū)動,與點火系統(tǒng)相比,對功率的要求較低,所以驅(qū)動信號可視為開關(guān)信號.因為對噴油器的控制本質(zhì)是對電磁閥的啟閉進行控制,故選用英飛凌公司為驅(qū)動感性負載推出的4通道低側(cè)開關(guān)TLE6228.在電路設(shè)計上,通過穩(wěn)壓二極管外接12 V直流電源,運用TLE6228的輸出信號控制穩(wěn)壓二極管通斷,進而控制12 V直流電源對噴油器或燃油泵進行驅(qū)動.
FPEG中控制節(jié)氣門開度的步進電機可由大小為5 V的PWM信號驅(qū)動.設(shè)計中,直接使用ECU發(fā)出PWM信號來控制作為開關(guān)的三極管,并在三極管集電極外接5 V直流電源以滿足步進電機的控制需求.
2.5 通信模塊
FPEG要求其ECU工作過程中與其他多個單位進行通信,其中包括:直線電機驅(qū)動控制卡、上位機、特定傳感器.
ECU不能驅(qū)動工作電壓高達380 V的直線電機,需要在ECU與驅(qū)動控制板卡建立通信,通過板卡使用外部電源對直線電機進行控制與驅(qū)動,這里通過CAN總線通信實現(xiàn).ECU也需要和作為上位機的PC進行通信,在PC上顯示FPEG的工作狀況以及實時參數(shù),通過串口通信或者CAN總線通信實現(xiàn),其中串口通信操作簡單但是對環(huán)境的要求相對嚴格,例如2個通訊端之間的距離不宜太長,適合在前期調(diào)試時使用.RS-485總線通信協(xié)議適用于大部分傳感器,主要為了滿足測量活塞組件位置的直線位移傳感器與FPGA的通信需求.自由活塞內(nèi)燃發(fā)電機ECU的通信模塊架構(gòu)如圖4所示.
圖4 ECU通信模塊架構(gòu)圖
3.1 軟件開發(fā)思想
在自由活塞內(nèi)燃發(fā)電機 ECU軟件開發(fā)過程中,運用了軟件分層設(shè)計的思想.分層思想將系統(tǒng)按不同職責(zé)組織成有序?qū)哟?,其中每一層僅提供若干服務(wù)供其相鄰的上層使用,僅調(diào)用其相鄰下層的服務(wù).根據(jù)中航工業(yè)洛陽電光設(shè)備研究所孫磊的觀點,分層架構(gòu)通常在邏輯上進行垂直層次劃分,在從下到上依次包括:驅(qū)動層、基礎(chǔ)層、中間層、應(yīng)用層[11].這種分層方式適用于手機這種功能十分齊全的嵌入式系統(tǒng),對于自由活塞內(nèi)燃發(fā)電機電子控制單元,暫不需要實現(xiàn)如此復(fù)雜的功能,所以在軟件分層上可以進行一定簡化,具體分為:驅(qū)動層、基礎(chǔ)層、應(yīng)用層.
3.2 驅(qū)動層軟件
STM32CubeMX是2016年以來被STM32開發(fā)者廣泛使用的一個新工具,由ST公司原創(chuàng),目的是減少開發(fā)工作時間和費用.從本質(zhì)上說STM32CubeMX是一個圖形化的C代碼自動生成環(huán)境.在編寫ECU底層驅(qū)動程序時,使用STM32CubeMX工具來進行輔助編程.
首先將外部25 MHz的晶振經(jīng)過倍頻與分頻得到多種頻率的時鐘脈沖,其中:168 MHz的時鐘提供給內(nèi)核與系統(tǒng)總線AHB,AHB在ECU與上位機串口通信時為直接內(nèi)存存取端口 (Direct Memory Access,簡稱DMA)與內(nèi)置存儲器提供總線通道;42 MHz的APB1時鐘,為FPEG電控單元與上位機、傳感器之間的通信提供時鐘脈沖;84 MHz的APB2時鐘,為所有傳感器的模數(shù)轉(zhuǎn)換、所有控制信號的輸出提供時鐘脈沖.
其次,根據(jù)FPEG的控制需求對各外部設(shè)備進行配置,例如根據(jù)各傳感器額定參數(shù),確定ADC的分辨率,其中大部分設(shè)置為10位;根據(jù)火花塞驅(qū)動電路,將相應(yīng)的GPIO設(shè)置為低速下拉輸出模式等.
3.3 控制軟件
控制程序在ECU軟件整體架構(gòu)中位于應(yīng)用層與基礎(chǔ)層,建立在驅(qū)動層之上,其核心是控制策略.本文采用通過速度調(diào)整后續(xù)點火時刻、噴油量的控制策略,旨在彌補某沖程循環(huán)變動導(dǎo)致的擾動,維持樣機穩(wěn)定運行.根據(jù)樣機運行過程中若受循環(huán)變動的影響,對本行程異側(cè)氣缸點火時機、下行程同側(cè)氣缸的噴油量與點火時機進行調(diào)整.當(dāng)檢測到樣機運行受影響時,異側(cè)氣缸內(nèi)已完成油氣混合,暫無法對異側(cè)氣缸噴油、進氣量進行修正.以左側(cè)氣缸發(fā)生循環(huán)變動為例,若左側(cè)氣缸運行速度慢于預(yù)期,則控制本行程右側(cè)點火時刻提前,下行程左側(cè)噴油量增加、點火時刻提前.其控制策略邏輯如圖5所示.對控制模型進行仿真結(jié)果見圖6.從圖中可以看出當(dāng)機器運行0.15 s后,由于循環(huán)變動導(dǎo)致左側(cè)缸內(nèi)燃燒不充分,能量不足,最大速度明顯低于前3個循環(huán),但通過提高噴油量等措施進行能量補償,使下一個循環(huán)機器工作恢復(fù)正常.
圖5 控制策略邏輯圖
圖6 控制模型仿真結(jié)果
3.4 串口通信
本ECU使用USART1與上位機進行通信.USART通信軟件需要初始化串口通信模塊,包括:串口時鐘的開啟、GPIO的設(shè)置、NVIC的設(shè)置、DMA的配置、奇偶校驗等的配置,最后使能串口中斷.當(dāng)數(shù)據(jù)接收或發(fā)送中斷請求發(fā)生時,ECU會進入中斷函數(shù)完成數(shù)據(jù)的接收和發(fā)送,之后清除中斷標(biāo)志位,等待下一輪中斷事件.
4.1 串口讀寫函數(shù)
上位機軟件的設(shè)計在LabView環(huán)境中進行.在上位機與下位機通信時,需要特定的通信協(xié)議來進行二者信息的對接,本控制系統(tǒng)規(guī)定串口每次發(fā)送12字節(jié)的字符串:其中首個字節(jié)為起始幀,數(shù)據(jù)上行時為0xFF,下行時為0xFE;第2與第3個字節(jié)為標(biāo)識區(qū);之后8個字節(jié)為數(shù)據(jù)位;最后一個為校驗字節(jié),即前面11個字節(jié)之和對256的余數(shù).
4.2 串口通信試驗驗證
用ECU向上位機按通信協(xié)議發(fā)送一串字符,得到結(jié)果如圖7所示,其中,左邊為上位機串口收發(fā)程序的前面板,右邊為串口調(diào)試助手,顯示PC串口實際接收到的數(shù)據(jù).從圖中可以看出,ECU發(fā)送的12字節(jié)十六進制字符串校被上位機成功接收.
圖7 串口通信PC接收正確數(shù)據(jù)驗證圖
再用ECU向上位機發(fā)送不符合通信協(xié)議的字符串,其中校驗位由72改為了88,其結(jié)果如圖8所示.可以看出已經(jīng)有一個由相應(yīng)的字符串進入PC串口,但是沒有通過和校驗函數(shù),上位機程序拒絕接收.通過對比證明了ECU與PC實現(xiàn)了串口通信.
圖8 串口通信PC接收錯誤數(shù)據(jù)驗證圖
1)提出MCU與計算模塊FPGA聯(lián)合的新方案,圍繞微控制器STM32F407,結(jié)合自由活塞內(nèi)燃發(fā)電機控制特點,對控制系統(tǒng)進行了硬件設(shè)計與制作.
2)提出通過速度調(diào)整后續(xù)點火時刻、噴油量
和進氣量的控制策略,并進行仿真驗證;運用分層思想進行ECU軟件設(shè)計,并在驅(qū)動程序的開發(fā)中使用新工具STM32CubeMX.
3)使用核心板與底板分離的方案,適應(yīng)能力強,能夠很好地應(yīng)對控制芯片領(lǐng)域快速的更新?lián)Q代,方便未來對FPEG控制系統(tǒng)的設(shè)計.
[1] Mikalsen R, Roskilly A P. Performance simulation of a spark ignited free-piston engine generator [J]. Applied Thermal Engineering, 2008, 28(15):1726-1733.
[2] Mao J, Zuo Z, Feng H. Parameters coupling designation of diesel free-piston engine with linear alternator [J]. Applied Energy, 2011, 88(12):4577-4589.
[3] Mao J, Zuo Z, Liu D. Numerical simulation of a park ignited two-stroke free-piston engine generator[J]. Journal of Beijing Institute of Technology, 2009, 1(3):283-297.
[4] 田春來. 直線電機式自由活塞發(fā)動機運動特性與控制策略研究[D]. 北京:北京理工大學(xué), 2012.
[5] Mikalsen R, Roskilly A P. An investigation into the free-piston engine concept and its potential for high efficiency and low emissions power generator [D]. Newcastle upon Tyne, UK: Newcastle University,2008.
[6] Mikalsen R, Roskilly A P. The control of a free-piston engine generator. Part 1: Fundamental analyses [J]. Applied Energy, 2010, 87(4):1273-1280.
[7] Mikalsen R, Roskilly A P. The control of a free-piston engine generator. Part 2: Engine dynamics and piston motion contro [J]. Applied Energy, 2010, 87(4):1281-1287.
[8] 唐玉梅. 內(nèi)燃—直線發(fā)電集成動力系統(tǒng)中自由活塞發(fā)動機空燃比與點火時刻的控制[D]. 江蘇:南京理工大學(xué), 2008.
[9] 閆紅力,徐 兵,楊華勇. 基于DSP的液壓自由活塞發(fā)動機控制器的設(shè)計[J]. 機床與液壓, 2006(4):115-116
[10]王夢秋. 點燃式FPEG啟動過程仿真與實驗研究[D]. 北京:北京理工大學(xué), 2014.
[11]孫 磊. 嵌入式軟件分層架構(gòu)設(shè)計與實現(xiàn)[J]. 軟件導(dǎo)刊,2014,13(6):14-15.
Electronic Control System Design of the Free-Piston EngineGenerator based on STM32
HE Qian-yi, ZUO Zheng-xing, FENG Hui-hua, LI Long, GUO Yu-yao
(School of Mechanical Engineering, Beijing Institute of Technology, Beijing 100081, China)
Based on the STM32F407, an electronic control unit (ECU) and its corresponding software were designed for its electronic control system of a Free-Piston Engine Generator (FPEG). According to the features of the prototype in its structure and operation modes, the specific functions and requirements of the system were analyzed and a general control scheme was proposed of combining the STM32 with the FPGA. The hardware design of such modules of the system was introduced as a processor, a data acquisition, a driver and a communication. The strategy of adjusting the subsequent control parameters was proposed based on the operation speed, and the simulation was conducted. By means of the layered structure design concept, the ECU software was developed with an advanced tool, STM32CubeMX. The feasibility and robustness of the serial communication is verified between the ECU and the principal computer.
free-piston engine generator; electronic control system; serial communication
1009-4687(2017)02-0001-06
2016-12-16
何謙益(1991-),男,碩士,研究方向為發(fā)動機電子控制.
TK441
A