摘 要:介紹了一種基于FPGA的汽車(chē)油改氣電控系統(tǒng)的研究與設(shè)計(jì),采用自頂向下模塊化設(shè)計(jì), 依據(jù)功能將FPGA劃分成幾個(gè)模塊,詳細(xì)論述了各模塊的設(shè)計(jì)方法和控制流程,給出核心模塊的狀態(tài)流程圖及時(shí)序仿真波形。經(jīng)在MATLAB和Quartus II環(huán)境下仿真和實(shí)際電路驗(yàn)證,系統(tǒng)可以達(dá)到預(yù)期效果。
關(guān)鍵詞: FPGA;ECU;數(shù)據(jù)采集;通信;Visual C++
隨著全球資源短缺、環(huán)境污染和生態(tài)環(huán)境的惡化,汽車(chē)與環(huán)境的相容性研究已經(jīng)成為汽車(chē)發(fā)展研究的主題。天然氣汽車(chē)具有排放污染顯著降低、燃料經(jīng)濟(jì)性好、安全性高、發(fā)動(dòng)機(jī)壽命長(zhǎng)等優(yōu)點(diǎn),因此被認(rèn)為是未來(lái)最有前途的一種汽車(chē)燃料。在這種強(qiáng)大的市場(chǎng)需求驅(qū)動(dòng)下,油改氣方案勢(shì)在必行,可以根據(jù)汽車(chē)外部采集的數(shù)據(jù)對(duì)其進(jìn)行分析、研究與設(shè)計(jì)。
1 系統(tǒng)總體結(jié)構(gòu)
本系統(tǒng)以FPGA為中心,主要包括以下部分:(1)信號(hào)采集部分:包括一系列的汽車(chē)傳感器,實(shí)時(shí)獲取發(fā)動(dòng)機(jī)各項(xiàng)參數(shù);(2)ECU模塊:系統(tǒng)的控制核心;(3)執(zhí)行機(jī)構(gòu):實(shí)時(shí)執(zhí)行ECU的控制指令,使發(fā)動(dòng)機(jī)正常工作;(4)人機(jī)交互界面設(shè)計(jì):完成上下位機(jī)之間異步串行通信,實(shí)時(shí)觀(guān)測(cè)系統(tǒng)運(yùn)行狀況。圖1為系統(tǒng)總體結(jié)構(gòu)圖。
2 FPGA主要模塊實(shí)現(xiàn)
根據(jù)汽車(chē)電控單元的需求,設(shè)計(jì)選用的FPGA是ACTEL公司基于非易失性Flash技術(shù)的A3P250器件(100-VQFP)。器件采用了精細(xì)顆粒架構(gòu)VersaTile,具有250K系統(tǒng)門(mén)結(jié)構(gòu),采用了130 nm的工藝技術(shù),內(nèi)核電壓1.5 V,時(shí)鐘頻率48 MHz。A3P250是反熔絲的,抗輻射、耐高低溫、功耗低、速度快,應(yīng)用較廣。FPGA功能模塊描述語(yǔ)言主要包括時(shí)鐘邏輯模塊、A/D采樣控制模塊、模糊控制模塊、步進(jìn)電機(jī)控制模塊、PWM產(chǎn)生模塊、UART通信模塊等。系統(tǒng)設(shè)計(jì)模塊如圖2所示。
2.1 時(shí)鐘邏輯模塊
該設(shè)計(jì)中,外部輸入的時(shí)鐘為48 MHz,由于設(shè)計(jì)中需要多種不同的時(shí)鐘信號(hào), 所以必須設(shè)計(jì)一個(gè)可根據(jù)采集需要任意分頻的時(shí)鐘邏輯模塊,且必須準(zhǔn)確,才能保證整個(gè)系統(tǒng)的正常工作。同時(shí)采用同步時(shí)序電路,它是基于時(shí)鐘觸發(fā)沿設(shè)計(jì),對(duì)時(shí)鐘的周期、占空比、延時(shí)、抖動(dòng)提出了更高的要求。分頻器是FPGA設(shè)計(jì)中使用頻率非常高的基本單元之一。通過(guò)自主設(shè)計(jì)進(jìn)行時(shí)鐘分頻的實(shí)現(xiàn)方法靈活性好,節(jié)省系統(tǒng)硬件資源,而且這種方式只消耗不多的邏輯單元就可以實(shí)現(xiàn)對(duì)時(shí)鐘操作的目的。
2.2 采樣控制模塊
ADC0809轉(zhuǎn)換模塊程序流程圖如圖3所示。數(shù)據(jù)采集系統(tǒng)的輸入信號(hào)多數(shù)都來(lái)源于現(xiàn)場(chǎng)傳感器的輸出信號(hào),傳感器種類(lèi)不一,致使信號(hào)特性也不同。各通道信號(hào)的幅度與頻率范圍有很大的不同,高精度的、大動(dòng)態(tài)范圍的A/D轉(zhuǎn)換芯片使設(shè)計(jì)更能滿(mǎn)足測(cè)量的需要, 特別是對(duì)寬頻帶弱信號(hào)的采集顯得尤其必要。本設(shè)計(jì)中A/D轉(zhuǎn)換模塊選用了ADC0809和AD1674芯片,ADC0809主要用于節(jié)氣門(mén)信號(hào)采集,兩片AD1674芯片主要用于實(shí)際轉(zhuǎn)速信號(hào)和設(shè)定轉(zhuǎn)速信號(hào)的采集。
2.2.1 ADC0809轉(zhuǎn)換控制模塊
當(dāng)FPGA啟動(dòng)數(shù)據(jù)采集時(shí),掃描時(shí)鐘便開(kāi)始工作,同時(shí)掃描周期計(jì)時(shí)器和采樣周期計(jì)時(shí)器開(kāi)始計(jì)時(shí)。48 MHz時(shí)鐘經(jīng)過(guò)FPGA分頻得到500 kHz的CLK作為ADC0809的驅(qū)動(dòng)時(shí)鐘,利用狀態(tài)機(jī)實(shí)現(xiàn)對(duì)A/D的控制,采集過(guò)程完全按照A/D的工作時(shí)序。當(dāng)單次A/D采集完成,便立即更新地址寄存器和數(shù)據(jù)寄存器。轉(zhuǎn)換完后將按照此次任務(wù)規(guī)定的采集參數(shù)進(jìn)入A/D芯片前的采集模擬電路建起,等待下次采樣周期到來(lái)。
2.2.2 AD1674轉(zhuǎn)換控制模塊
AD1674是帶有內(nèi)部采樣保持的完全12位逐次逼近(SAR)型模/數(shù)轉(zhuǎn)換器,支持單極性和雙極性輸入兩種工作方式,轉(zhuǎn)換時(shí)間為10 μs。根據(jù)實(shí)際工作需要,使用了雙極性輸入方式。AD1674在FPGA的時(shí)鐘信號(hào)clk、復(fù)位信號(hào)rst、狀態(tài)信號(hào)status及控制信號(hào)cs、k12x8、rc、a0的控制下采集數(shù)據(jù)。AD1674轉(zhuǎn)換器模塊是根據(jù)摩爾狀態(tài)機(jī)實(shí)現(xiàn)的,完成對(duì)實(shí)際轉(zhuǎn)速信號(hào)的采樣,F(xiàn)PGA計(jì)算出誤差和誤差變化率,然后查模糊控制表,最后將控制量變換到實(shí)際控制量上。根據(jù)實(shí)際工作需要,采用兩片AD1674,一片采集汽車(chē)發(fā)動(dòng)機(jī)實(shí)際轉(zhuǎn)速信號(hào),另一片采集汽車(chē)設(shè)定轉(zhuǎn)速信號(hào)。AD1674轉(zhuǎn)換模塊程序流程圖如圖4所示。
2.3 模糊控制模塊設(shè)計(jì)
在怠速狀況下,盡量使汽車(chē)穩(wěn)定在最低轉(zhuǎn)速以節(jié)省資源并減少排放。設(shè)計(jì)了一種基于FPGA的汽車(chē)ECU的模糊控制器,只需在線(xiàn)修改模糊控制規(guī)則表就可以做成不同精度和不同控制規(guī)則的模糊控制器,具有通用性,控制規(guī)則實(shí)現(xiàn)簡(jiǎn)單。模糊控制模塊由Verilog HDL語(yǔ)言實(shí)現(xiàn),可以隨時(shí)對(duì)系統(tǒng)進(jìn)行升級(jí)和移植,非常靈活和方便。模糊控制模塊包含運(yùn)算模塊和模糊控制規(guī)則表模塊。
運(yùn)算模塊主要是將采集到的汽車(chē)設(shè)定轉(zhuǎn)速信號(hào)g與采集到的汽車(chē)發(fā)動(dòng)機(jī)轉(zhuǎn)速傳感器反饋信號(hào)f進(jìn)行處理,計(jì)算出汽車(chē)轉(zhuǎn)速誤差e和轉(zhuǎn)速誤差變化率de。圖5所示為運(yùn)算模塊流程圖。
模糊控制規(guī)則表模塊的功能是把輸入的精確量進(jìn)行尺度變換,變換到相應(yīng)的論域范圍;將已變換到論域范圍的輸入量進(jìn)行模糊化處理,主要是計(jì)算各個(gè)輸入量的隸屬度,為了簡(jiǎn)化處理,將輸入值進(jìn)行均勻量化。確定模糊控制的原則是必須保證模糊控制器的輸出能夠使系統(tǒng)輸出響應(yīng)的動(dòng)靜態(tài)特性達(dá)到最佳,既要迅速消除誤差,保證響應(yīng)的的快速性,又要防止產(chǎn)生超調(diào)和振蕩,保證系統(tǒng)的穩(wěn)定性。例如,汽車(chē)轉(zhuǎn)速誤差為負(fù)大(NB)時(shí),若誤差變化率為負(fù)中(NM),這時(shí)汽車(chē)轉(zhuǎn)速還有進(jìn)一步增大的趨勢(shì)。為了盡快消除已有的負(fù)大誤差,并抑制誤差進(jìn)一步變大,控制量的變化應(yīng)取負(fù)大(NB),以盡快減小汽車(chē)的轉(zhuǎn)速。模糊控制規(guī)則表如表1所示。
根據(jù)表1,模糊控制規(guī)則表用Verilog HDL描述如下:
if ((e==NB)&&(de==NB)) u<=NB;
else if((e==Z)&&(de==Z)) u<=ZE;
……
總共49條控制規(guī)則,其中NB、NM、NS、Z、PS、PM、PB分別對(duì)應(yīng)一段輸入的誤差、誤差變化率的范圍。還可以對(duì)汽車(chē)轉(zhuǎn)速誤差和轉(zhuǎn)速誤差變化率論域進(jìn)一步細(xì)分,得到更精確的結(jié)果,仿真結(jié)果如圖6所示。其中,out為輸出的控制量,可以看出變化規(guī)律與理論上模糊控制規(guī)則表一致。
out對(duì)應(yīng)的是步進(jìn)電機(jī)的步數(shù),用于后面生成脈沖信號(hào)。步進(jìn)電機(jī)的正反轉(zhuǎn)是基于前端的模糊控制模塊輸出信號(hào)控制的,控制單元實(shí)時(shí)檢測(cè)汽車(chē)發(fā)動(dòng)機(jī)的轉(zhuǎn)速并與設(shè)定的目標(biāo)轉(zhuǎn)速進(jìn)行比較。當(dāng)轉(zhuǎn)速低于設(shè)定值時(shí),控制步進(jìn)電機(jī)正轉(zhuǎn),開(kāi)大旁通氣道截面,增加進(jìn)氣量,缸內(nèi)的可燃混合氣增多,轉(zhuǎn)速上升;反之,轉(zhuǎn)速高于設(shè)定轉(zhuǎn)速時(shí),控制步進(jìn)電機(jī)反轉(zhuǎn),旁通氣閥關(guān)小,缸內(nèi)混合氣減少,轉(zhuǎn)速下降,最終使汽車(chē)發(fā)動(dòng)機(jī)的轉(zhuǎn)速穩(wěn)定在目標(biāo)轉(zhuǎn)速附近。步進(jìn)電機(jī)的控制程序是基于狀態(tài)機(jī)設(shè)計(jì)的,程序流程圖如圖7所示。正轉(zhuǎn)st0->st1->st2->st3->st0,反轉(zhuǎn)st0->st3->st2->st1->st0。發(fā)動(dòng)機(jī)轉(zhuǎn)速傳感器采集到實(shí)際轉(zhuǎn)速反饋信號(hào),與設(shè)定轉(zhuǎn)速信號(hào)進(jìn)行運(yùn)算,得到誤差和誤差變化率,再去查模糊控制規(guī)則表,從而形成了一個(gè)閉環(huán)控制系統(tǒng),可見(jiàn)該系統(tǒng)具有實(shí)時(shí)跟蹤的性能和自我校正的功能。
為了驗(yàn)證系統(tǒng)的效果,在MATLAB中搭建數(shù)學(xué)模型,進(jìn)行模擬,結(jié)果如圖8所示。
由圖8可知,一般情況下工作比較穩(wěn)定,當(dāng)系統(tǒng)設(shè)定速度的給定值在650 r/min到750 r/min之間,根據(jù)無(wú)負(fù)荷自動(dòng)變換,系統(tǒng)可以快速跟蹤其變化。當(dāng)有干擾時(shí),加入階躍分別在100和155,可以看出經(jīng)過(guò)干擾以后,由于負(fù)荷的變化,轉(zhuǎn)速突然下降20 r/min,系統(tǒng)經(jīng)過(guò)一段時(shí)間調(diào)節(jié)后,很快就上升到原來(lái)的穩(wěn)定值。仿真結(jié)果表明:采用模糊控制方法不僅有效,而且降低轉(zhuǎn)速的波動(dòng)幅度,進(jìn)一步提高了運(yùn)行的穩(wěn)定性,初步顯示了模糊控制的良好效果;同時(shí),系統(tǒng)具有很強(qiáng)的抗干擾能力,為下一步實(shí)際應(yīng)用,改善汽車(chē)的排放性,提高燃?xì)饫寐蚀蛳铝肆己玫幕A(chǔ)。該系統(tǒng)能夠?qū)崟r(shí)地進(jìn)行現(xiàn)場(chǎng)控制,具有很強(qiáng)的實(shí)用價(jià)值。
2.4 PWM產(chǎn)生模塊設(shè)計(jì)
噴氣PWM波脈寬產(chǎn)生是根據(jù)查表法實(shí)現(xiàn)的。FPGA采集的轉(zhuǎn)速信號(hào)和節(jié)氣門(mén)開(kāi)度信號(hào)經(jīng)過(guò)計(jì)算求出某時(shí)刻對(duì)應(yīng)的噴氣脈寬對(duì)應(yīng)的地址,輸出相應(yīng)的PWM波。
為了適應(yīng)各種不同的噴氣設(shè)備,ECU出來(lái)的四路PWM波設(shè)計(jì)為根據(jù)實(shí)際情況可以隨時(shí)調(diào)整。特點(diǎn)為:(1)四個(gè)缸的工作頻率及占空比是一樣的,經(jīng)實(shí)際測(cè)量,在汽車(chē)運(yùn)行狀態(tài)下T0為10~35 ms。(2)頻率會(huì)根據(jù)油門(mén)的開(kāi)閉大小變化,不固定。(3)脈沖為-12 V電平。(4)特殊情況,在汽車(chē)轉(zhuǎn)速達(dá)到4 000轉(zhuǎn)時(shí),波形發(fā)生變化,脈沖有交錯(cuò)。根據(jù)燃?xì)獾氖褂眯Чl(fā)現(xiàn)只要把原先的脈寬T1適當(dāng)縮短,縮短的時(shí)間可調(diào),就能達(dá)到最佳的效果。不過(guò),脈沖的起始時(shí)間不能變;頻率是根據(jù)氣門(mén)的變化而變化的。在油改氣的時(shí)候,頻率不能變。
PWM測(cè)量和減短仿真圖如圖9所示,圖中虛線(xiàn)豎條的時(shí)間間隔為1.310 75 ms,為了明顯起見(jiàn),在圖中固定減去了1.5 ms輸出,在實(shí)際應(yīng)用過(guò)程中,這個(gè)值可以根據(jù)需要,通過(guò)電位器將電壓輸入至FPGA器件,根據(jù)需要進(jìn)行調(diào)整。
2.5 通信模塊以及仿真結(jié)果
根據(jù)RS232異步串行通信的幀格式,在FPGA發(fā)送模塊中采用的每一幀格式為:1位開(kāi)始位+8位數(shù)據(jù)位+1位停止位,波特率為9 600 b/s。由設(shè)置的波特率可以算出分頻系數(shù),具體算法為分頻系數(shù)X=CLK/(BOUND×2)。串行數(shù)據(jù)通信仿真圖如圖10所示。
該系統(tǒng)不但實(shí)現(xiàn)了數(shù)據(jù)采集,通過(guò)模糊控制為噴氣裝置產(chǎn)生了包含點(diǎn)火時(shí)間以及噴氣脈寬的PWM波,實(shí)現(xiàn)了系統(tǒng)的穩(wěn)定性和實(shí)時(shí)性,同時(shí)能夠?qū)崟r(shí)采集轉(zhuǎn)速信號(hào)和節(jié)氣門(mén)開(kāi)度信號(hào)并通過(guò)UART傳送到上位機(jī),實(shí)時(shí)地進(jìn)行監(jiān)測(cè)和控制。
參考文獻(xiàn)
[1] Ko W L, GONG L, QUINN R D. Reentry Thermal analysis of Generic Crew Exploration Vehicle Structure. NASA/TM-2007-214607. 1-10.
[2] CHEN G. Convent ional and fuzzy P ID controllers: an overview[J]. Int J of Intelligent Control System s, 1996(1):1-3.
[3] 邱春玲,張廣明,吳振翔.基于DSP和FPGA的電梯智能數(shù)據(jù)采集系統(tǒng)的設(shè)計(jì)[J].計(jì)算機(jī)工程與設(shè)計(jì),2009(7):1577-1579.
[4] 祝長(zhǎng)鋒,肖鐵軍.基于FPGA的視頻圖像采集系統(tǒng)的設(shè)計(jì)[J].計(jì)算機(jī)工程與設(shè)計(jì),2008(17):4404-4407.
[5] 范華,譚玉山.兩通道高速數(shù)據(jù)采集系統(tǒng)[J].電子測(cè)量與儀器學(xué)報(bào),1996,25(1):40-43.
[6] 徐海軍,葉衛(wèi)東.FPGA在高性能數(shù)據(jù)采集系統(tǒng)中的應(yīng)用[J].計(jì)測(cè)技術(shù),2005,25(1):40-43.
[7] 歐陽(yáng)黎明.MA TLAB控制系統(tǒng)設(shè)計(jì)[M].北京:國(guó)防工業(yè)出版社,2001.
[8] 孫亮,楊鵬.自動(dòng)控制原理[M].北京:北京工業(yè)大學(xué)出版社,1999.