基于FPGA的汽車(chē)油改氣電控系統的研究與設計
2.2.2 AD1674轉換控制模塊
AD1674是帶有內部采樣保持的完全12位逐次逼近(SAR)型模/數轉換器,支持單極性和雙極性輸入兩種工作方式,轉換時(shí)間為10 μs。根據實(shí)際工作需要,使用了雙極性輸入方式。AD1674在FPGA的時(shí)鐘信號clk、復位信號rst、狀態(tài)信號status及控制信號cs、k12x8、rc、a0的控制下采集數據。AD1674轉換器模塊是根據摩爾狀態(tài)機實(shí)現的,完成對實(shí)際轉速信號的采樣,FPGA計算出誤差和誤差變化率,然后查模糊控制表,最后將控制量變換到實(shí)際控制量上。根據實(shí)際工作需要,采用兩片AD1674,一片采集汽車(chē)發(fā)動(dòng)機實(shí)際轉速信號,另一片采集汽車(chē)設定轉速信號。AD1674轉換模塊程序流程圖如圖4所示。本文引用地址:http://dyxdggzs.com/article/191615.htm
2.3 模糊控制模塊設計
在怠速狀況下,盡量使汽車(chē)穩定在最低轉速以節省資源并減少排放。設計了一種基于FPGA的汽車(chē)ECU的模糊控制器,只需在線(xiàn)修改模糊控制規則表就可以做成不同精度和不同控制規則的模糊控制器,具有通用性,控制規則實(shí)現簡(jiǎn)單。模糊控制模塊由Verilog HDL語(yǔ)言實(shí)現,可以隨時(shí)對系統進(jìn)行升級和移植,非常靈活和方便。模糊控制模塊包含運算模塊和模糊控制規則表模塊。
運算模塊主要是將采集到的汽車(chē)設定轉速信號g與采集到的汽車(chē)發(fā)動(dòng)機轉速傳感器反饋信號f進(jìn)行處理,計算出汽車(chē)轉速誤差e和轉速誤差變化率de。圖5所示為運算模塊流程圖。
模糊控制規則表模塊的功能是把輸入的精確量進(jìn)行尺度變換,變換到相應的論域范圍;將已變換到論域范圍的輸入量進(jìn)行模糊化處理,主要是計算各個(gè)輸入量的隸屬度,為了簡(jiǎn)化處理,將輸入值進(jìn)行均勻量化。確定模糊控制的原則是必須保證模糊控制器的輸出能夠使系統輸出響應的動(dòng)靜態(tài)特性達到最佳,既要迅速消除誤差,保證響應的的快速性,又要防止產(chǎn)生超調和振蕩,保證系統的穩定性。例如,汽車(chē)轉速誤差為負大(NB)時(shí),若誤差變化率為負中(NM),這時(shí)汽車(chē)轉速還有進(jìn)一步增大的趨勢。為了盡快消除已有的負大誤差,并抑制誤差進(jìn)一步變大,控制量的變化應取負大(NB),以盡快減小汽車(chē)的轉速。模糊控制規則表如表1所示。
根據表1,模糊控制規則表用Verilog HDL描述如下:
if ((e==NB)(de==NB)) u=NB;
else if((e==Z)(de==Z)) u=ZE;
……
總共49條控制規則,其中NB、NM、NS、Z、PS、PM、PB分別對應一段輸入的誤差、誤差變化率的范圍。還可以對汽車(chē)轉速誤差和轉速誤差變化率論域進(jìn)一步細分,得到更精確的結果,仿真結果如圖6所示。其中,out為輸出的控制量,可以看出變化規律與理論上模糊控制規則表一致。
out對應的是步進(jìn)電機的步數,用于后面生成脈沖信號。步進(jìn)電機的正反轉是基于前端的模糊控制模塊輸出信號控制的,控制單元實(shí)時(shí)檢測汽車(chē)發(fā)動(dòng)機的轉速并與設定的目標轉速進(jìn)行比較。當轉速低于設定值時(shí),控制步進(jìn)電機正轉,開(kāi)大旁通氣道截面,增加進(jìn)氣量,缸內的可燃混合氣增多,轉速上升;反之,轉速高于設定轉速時(shí),控制步進(jìn)電機反轉,旁通氣閥關(guān)小,缸內混合氣減少,轉速下降,最終使汽車(chē)發(fā)動(dòng)機的轉速穩定在目標轉速附近。步進(jìn)電機的控制程序是基于狀態(tài)機設計的,程序流程圖如圖7所示。正轉st0->st1->st2->st3->st0,反轉st0->st3->st2->st1->st0。發(fā)動(dòng)機轉速傳感器采集到實(shí)際轉速反饋信號,與設定轉速信號進(jìn)行運算,得到誤差和誤差變化率,再去查模糊控制規則表,從而形成了一個(gè)閉環(huán)控制系統,可見(jiàn)該系統具有實(shí)時(shí)跟蹤的性能和自我校正的功能。
為了驗證系統的效果,在MATLAB中搭建數學(xué)模型,進(jìn)行模擬,結果如圖8所示。
評論