余云飛,李中望,鄧旭輝,段爭光,沈 璐
(蕪湖職業技術學院 電氣與自動化學院,安徽 蕪湖 241006)
風洞是通過人工產生氣流的方法,觀測氣流或氣流與物體之間相互作用的管道形實驗裝置,常用在交通運輸、航天工程、船舶技術等各個領域。文獻[1]中所用的風洞主要用于模擬高超聲速下飛行器的來流狀況。由于進行實際的吹風實驗比較困難,加熱系統中的電磁閥控制難以實現精準的閉環控制。文獻[2]采用基于現場總線的控制系統來開展CTS實驗,當加載較大轉矩時,受傳動部件精度等因素制約,前饋控制算法不能完全滿足機構精度及系統響應速度要求。文獻[3]中的風洞采用落差法測量風速,通過PSD神經網絡算法來提高風速控制的精度。這些風洞設備成本高,尺寸龐大,操控復雜。為此,設計了常規風洞的簡化模型,主體系統能用于模擬真實的氣流環境。
從如何精確控制小球在風洞中所處的位置關鍵點著手,先用SolidWorks仿真進行風罩的選型,搭建風洞控制模型。提出基于STM32單片機和模糊PID控制方案,進行測試,同時在Simulink中建立模糊控制系統模型,并進行仿真。
本設計中的風洞控制系統主要由豎直有機玻璃圓管、風罩連接部、系統電路等構成,風洞示意圖如圖1所示。系統電路主要由STM32開發板、紅外測距模塊、TFT-LCD顯示模塊、BTN7971電機驅動模塊、雙路直流穩壓電源組成,如圖2所示。單片機產生PWM信號控制直流風機的轉速,紅外測距傳感器實時檢測小球在豎直圓管中所處的位置,通過模糊PID來實現小球在簡易風洞中的精確位置控制,由TFT液晶屏顯示相應的參數。

圖1 風洞示意圖
圖2系統電路結構
文獻[4]采用超聲波進行測距,由于被測物小球表面是球面,測量時小球在圓管內上下翻滾,測量數據易產生錯誤。文獻[5]采用在風洞管壁上安裝多個紅外對管的方法,對紅外對管陣列的輸出電平值進行編碼,測試出小球停留的位置。這種方式測距范圍受限,而且占用單片機多個I/O口。本系統設計采用夏普紅外測距傳感器GP2Y0A02YK0F[6]來檢測小球在圓管中所處的位置。紅外測距傳感器根據光學三角法測距的原理來確定被測物體的位移大小,具有較高分辨率。
紅外測距傳感器的工作電壓為5V,其數據線V0接STM32開發板的PA1口。測量中以紅外傳感器離工作臺面的距離減去紅外傳感器與圓管中小球的距離為運動過程中小球的實時高度。
采用L298N模塊作為電機驅動模塊,能有效預防電機運行時產生的大電流波動造成燒毀電路主板的情況[7-8]。
電機驅動模塊采用兩片半橋驅動芯片BTN7971B組成H橋驅動電路,電路圖如圖3所示。引腳2(IN1)接STM32開發板的PB5引腳,接線端子P2與直流電機的兩端相連。BTN7971B采用封裝為T0-263,輸出端的大面積表面貼裝可減輕芯片的散熱壓力;BTN7971B具有較高的開關頻率,調速范圍寬,可以滿足本系統的電機快速響應。模塊中還采用HCPL-263型高速光耦,對輸入輸出的電信號起到與開發板相隔離的作用。
系統中電機的轉速由PWM控制,通過調節STM32芯片輸出到IN1的PWM的占空比,來實現直流電機的轉速控制。

圖3BTN7971B的H橋直流電機驅動電路圖
系統設計采用2.8寸34引腳的TFT液晶屏作為顯示模塊。液晶屏采用自帶圖像寄存器的NT35510作為LCD驅動器,它以16位8080并口與STM32F的FSMC總線連接。16位數據中,數據線高5位負責驅動紅色像素,數據線低5位負責驅動藍色像素,中間的6位數據線負責驅動綠色像素[9]。23引腳的BL_CTR與STM32F的PB0連接,用于控制液晶屏的背光的亮度。
經過多次反復實驗,最終以兩個直流電機相互作用來產生風洞所需的氣流。直徑12cm的臺達FFC1212DE風扇水平置于風罩的正下方,設定風扇兩端的電壓,它所產生的氣流剛好能使小球穩定懸浮于圓管最底部。風罩下方的系統底座上固定有線性度較好的N60微型直流電機,通過PID算法綜合控制扇葉產生的氣流,以實現小球在圓管中精確位置的變動。
實驗初始階段風罩采用圓錐臺連接細軟管設計方案。在電機額定功率下,電機產生的風力衰減嚴重,遠遠達不到設計要求。經多次實驗結果比較,先用SolidWorks繪圖軟件仿真出風罩的3D模型,再用3D打印機做出風罩實物,如圖4所示。風罩前端的出風口與圓管底部旋緊接上,風罩的底座與臺達FFC1212DE風扇的固定框相連接。風罩中圓柱高度為8cm,圓柱上部特地添加了圓臺部分,這樣設計的組合體結構可大大延緩風力的衰減。兩個電機共同產生的風力能最大限度的送達上部的豎直圓管中。

圖4風罩3D模型
風洞及控制系統具有非線性、時變性、耦合性等特點,用傳統的基于對象模型的控制方法難以進行有效的控制[10]。故采用模糊PID控制方式實現小球在風洞中的位置控制。
直流電機的速率公式為:n=(U-IaRa)/CEФ。因此通過改變電機端電壓可以改變電機的速率[11]。在線性端區域,電機端電壓增高,風扇的轉速越快,風力越大。
本系統通過設置STM32定時器3的通道2來輸出PWM。為防止調速過程中產生振蕩,采用PWM技術中的定頻調寬法來調節直流風機的速度[12]。當直流電機兩端的電樞電壓受“占空比”的變化而導致平均電壓的均值發生變化時,就實現了控制電機轉速的目的。
3.2.1 模糊PID控制的結構
PID中要調整的參數量很少,PID控制器設計的關鍵在于Kp、Ki、Kd三個參數的調試。
與常規PID控制器相比,模糊PID控制器,具有良好的性能。模糊PID控制原理如圖5所示。

圖5 模糊PID控制器結構圖
PID控制的過程參數整定表達式如下:
式中,Kp、Ki、Kd為PID控制的過程參數;Kp1、Ki1、Kd1為PID控制的初始整定值[13]。
本文將誤差e和誤差變化率ec輸入到模糊控制器中,對其模糊化、推理、清晰化處理后,以PID的三個參數增量ΔKp、ΔKi、ΔKd為模糊控制輸出量[14]。最后,將常規PID調節器與模糊控制相結合作用于被控對象以提高系統性能。
3.2.2 輸入輸出語言變量的確定
模糊控制器作為整個系統的核心,將設定的小球位置與紅外傳感器采集到的小球高度進行比較,計算誤差和誤差變化率。輸入語言變量選擇設定高度與紅外傳感器實時檢測高度之間誤差e和誤差變化率ec,輸出語言變量選擇控制電機轉速的PWM占空比u。
3.2.3 模糊控制規則的建立

圖6輸入輸出的隸屬度函數
誤差e和誤差變化率ec兩個輸入數據需轉換為合適的語言值。用語言變量論域定義為有限整數的離散論域[15]。設計的系統中,誤差e的基本論域為[-6,6],誤差變化率ec的基本論域為[-1,1],對應的模糊論域范圍為 [-3,3]。e和ec語言標簽為{負大,負中,負小,零,正小,正中,正大},即{NB,NM,NS,ZO,PS,PM,PB}。隸屬度函數選用形狀較尖的適用于單片機系統的三角形函數,如圖6所示。
建立模糊控制規則是模糊控制系統的重要設計內容,每一條控制規則都是建立在實際操作經驗上的。比如模糊條件語句可通過“ifeandecthenΔKp”來描述。表1、表2、表3分別為ΔKp、ΔKi、ΔKd的模糊控制(推理)規則表。隸屬度函數需要經清晰化處理,映射到有代表性的數值上。

表1 ΔKp模糊控制(推理)規則表
續表1

e c(t)ΔKPeNBNMNSZOPSPMPBPSPSPSPSNSNSNMNMPMPSPSZONMNMNMNBPBZOZOZONMNMNBNB

表2 ΔKi模糊控制(推理)規則表
表3ΔKd模糊控制(推理)規則表

e c(t)ΔKdeNBNMNSZOPSPMPBNBPSNSNBNBNBNMPSNMPSNSNBNMNMNSZONSZONSNMNMNSNSZOZOZONSNSNSNSNSZOPSZOZOZOZOZOZOZOPMPBNSPSPSPSPSPBPBPBPMPMPMPSPSPB
從上面三個表可以構建出49條模糊控制規則。

圖7系統模糊PID控制流程圖
風洞控制系統上電后,系統各個模塊完成初始化。通過按鍵進行模式選擇。紅外測距模塊實時檢測風洞中小球所處的位置。當小球高度與預設高度有偏差時,通過模糊控制模塊對PID參數進行優化,控制電機轉速,改善風力大小,使系統快速達到預設值。TFT顯示屏上顯示當前的工作模式、小球高度、占空比大小等參數。系統模糊PID控制流程圖如圖7所示。
在Simulink設計環境中,運用各種模塊搭建風洞系統仿真模型圖,如圖8所示。圖8中雙擊Fuzzy Controller模塊,彈出“Parameters”對話框,其中的“FIS name”需添加模糊控制規則生成的fis文件。
Simulink運行后,響應曲線結果如圖9所示。與常規PID控制進行對比,得到兩種PID響應對比圖。模糊PID控制達到穩定時所需的時間為2.34s,而傳統的PID控制達到穩定時所需的時間為4.02s。實驗的部分關鍵數據如表4所示。由數據分析可知,模糊PID的風洞控制系統相比較于常規PID,響應速度較快,能較快達到穩定狀態,超調量小,控制效果平穩。

圖8風洞控制系統仿真模型

圖9PID和模糊PID控制器的響應比較

表4 部分實驗數據
本文設計了一種能通過模糊PID算法實現自動控制的風洞系統。系統選用低功耗的STM32F103ZET6芯片作為系統的核心控制,根據小球高度與預設高度的偏差,通過模糊PID算法進行參數的優化,調節PWM控制電機轉速大小,改變風罩出風口的風力,實現小球位置的精確控制。實驗結果表明,該風洞系統達到了設計要求,同時實現了低功耗的自動、精準控制的目標,具有較大的實用意義。