新聞中心

        EEPW首頁 > EDA/PCB > 設計應用 > 基于FPGA的汽車油改氣電控系統的研究與設計

        基于FPGA的汽車油改氣電控系統的研究與設計

        作者: 時間:2010-08-18 來源:網絡 收藏

        2.2.2 AD1674轉換控制模塊
        AD1674是帶有內部采樣保持的完全12位逐次逼近(SAR)型模/數轉換器,支持單極性和雙極性輸入兩種工作方式,轉換時間為10 μs。根據實際工作需要,使用了雙極性輸入方式。AD1674在的時鐘信號clk、復位信號rst、狀態信號status及控制信號cs、k12x8、rc、a0的控制下采集數據。AD1674轉換器模塊是根據摩爾狀態機實現的,完成對實際轉速信號的采樣,計算出誤差和誤差變化率,然后查模糊控制表,最后將控制量變換到實際控制量上。根據實際工作需要,采用兩片AD1674,一片采集發動機實際轉速信號,另一片采集設定轉速信號。AD1674轉換模塊程序流程圖如圖4所示。

        本文引用地址:http://www.104case.com/article/191615.htm

        2.3 模糊控制模塊設計
        在怠速狀況下,盡量使穩定在最低轉速以節省資源并減少排放。設計了一種基于的汽車ECU的模糊控制器,只需在線修改模糊控制規則表就可以做成不同精度和不同控制規則的模糊控制器,具有通用性,控制規則實現簡單。模糊控制模塊由Verilog HDL語言實現,可以隨時對系統進行升級和移植,非常靈活和方便。模糊控制模塊包含運算模塊和模糊控制規則表模塊。
        運算模塊主要是將采集到的汽車設定轉速信號g與采集到的汽車發動機轉速傳感器反饋信號f進行處理,計算出汽車轉速誤差e和轉速誤差變化率de。圖5所示為運算模塊流程圖。

        模糊控制規則表模塊的功能是把輸入的精確量進行尺度變換,變換到相應的論域范圍;將已變換到論域范圍的輸入量進行模糊化處理,主要是計算各個輸入量的隸屬度,為了簡化處理,將輸入值進行均勻量化。確定模糊控制的原則是必須保證模糊控制器的輸出能夠使系統輸出響應的動靜態特性達到最佳,既要迅速消除誤差,保證響應的的快速性,又要防止產生超調和振蕩,保證系統的穩定性。例如,汽車轉速誤差為負大(NB)時,若誤差變化率為負中(NM),這時汽車轉速還有進一步增大的趨勢。為了盡快消除已有的負大誤差,并抑制誤差進一步變大,控制量的變化應取負大(NB),以盡快減小汽車的轉速。模糊控制規則表如表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分別對應一段輸入的誤差、誤差變化率的范圍。還可以對汽車轉速誤差和轉速誤差變化率論域進一步細分,得到更精確的結果,仿真結果如圖6所示。其中,out為輸出的控制量,可以看出變化規律與理論上模糊控制規則表一致。

        out對應的是步進電機的步數,用于后面生成脈沖信號。步進電機的正反轉是基于前端的模糊控制模塊輸出信號控制的,控制單元實時檢測汽車發動機的轉速并與設定的目標轉速進行比較。當轉速低于設定值時,控制步進電機正轉,開大旁通氣道截面,增加進氣量,缸內的可燃混合氣增多,轉速上升;反之,轉速高于設定轉速時,控制步進電機反轉,旁通氣閥關小,缸內混合氣減少,轉速下降,最終使汽車發動機的轉速穩定在目標轉速附近。步進電機的控制程序是基于狀態機設計的,程序流程圖如圖7所示。正轉st0->st1->st2->st3->st0,反轉st0->st3->st2->st1->st0。發動機轉速傳感器采集到實際轉速反饋信號,與設定轉速信號進行運算,得到誤差和誤差變化率,再去查模糊控制規則表,從而形成了一個閉環控制系統,可見該系統具有實時跟蹤的性能和自我校正的功能。

        為了驗證系統的效果,在MATLAB中搭建數學模型,進行模擬,結果如圖8所示。



        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 肃南| 鹤岗市| 米易县| 西乡县| 涟源市| 上杭县| 楚雄市| 承德市| 六安市| 淮滨县| 潜江市| 隆昌县| 宜宾县| 武城县| 进贤县| 洪泽县| 杭锦后旗| 梨树县| 东乌| 岚皋县| 明溪县| 克山县| 德昌县| 怀宁县| 曲周县| 田东县| 二手房| 福鼎市| 扎囊县| 伊宁市| 乳山市| 化州市| 绥江县| 万全县| 潜山县| 农安县| 浙江省| 临澧县| 通城县| 京山县| 湘乡市|