基于模糊控制的恒溫控制系統設計
1.3 溫度控制和超界報警模塊
系統利用單片機控制電熱絲在一個(gè)加熱周期內的加熱時(shí)間來(lái)實(shí)現對水溫的控制。單片機端口信號經(jīng)過(guò)光耦隔離后,利用三級管驅動(dòng)電磁繼電器的閉合與斷開(kāi),從而控制加熱時(shí)間。當溫度超過(guò)100℃或者實(shí)時(shí)溫度變化超過(guò)10℃時(shí),單片機將驅動(dòng)蜂鳴器進(jìn)行長(cháng)時(shí)間報警提示,當設置溫度變化超過(guò)10℃時(shí),蜂鳴器進(jìn)行短時(shí)間報警提示。
2 軟件系統設計
系統的控制思路為:根據模糊控制模型和實(shí)際應用情況推理出模糊查詢(xún)表,模糊查詢(xún)表表示對于不同狀態(tài)的加溫周期時(shí)間。單片機根據實(shí)時(shí)采樣溫度的變化查取模糊查詢(xún)表,對加溫周期做出調整,從而達到對溫度控制的目的。
2.1 主程序
主程序一直處于等待接收串口信號狀態(tài),同時(shí)判斷是否需要發(fā)送數據。定時(shí)中斷每秒對采樣溫度進(jìn)行平均值濾波后,置串口發(fā)送標志,在主程序中發(fā)送。單片機接收到PC信號的第一個(gè)字節時(shí),調用接收數據子程序,將剩余數據接收到緩沖區內,并判斷接收數據的類(lèi)型,執行相應操作。
為避免串口干擾信號,系統采用應答模式和單向傳輸混用的串口通信,以提高通信的穩定性和系統的實(shí)時(shí)性。上位機下發(fā)命令采用應答模式,單片機實(shí)時(shí)溫度信息上傳采用單向通信模式。通信協(xié)議由包頭、命令、數據長(cháng)度、數據包、校驗位組成。
2.2 1ms定時(shí)中斷程序
1ms定時(shí)中斷作為系統的總時(shí)鐘。每1 ms刷新一位數碼管,每10 ms掃描一次按鍵,每1 s的最后100 ms中,每隔10 ms采樣一次溫度值,將10次采樣值冒泡排序,去掉最大值和最小值后的平均值,作為本次實(shí)時(shí)采樣的最終值送入顯示緩沖區。若恒溫控制開(kāi)關(guān)打開(kāi),則每1 s還要調用恒溫控制程序。若報警開(kāi)關(guān)打開(kāi),則每1 s取反一次揚聲器輸出。定時(shí)中斷返回前將重置看門(mén)狗。
2.3 模糊控制模型建立
系統利用了雙輸入單輸出的模糊控制模式。2個(gè)輸入語(yǔ)言變量E,EC分別表示溫度誤差和溫度誤差的變化率,輸出語(yǔ)言變量U表示繼電器的閉合時(shí)間。語(yǔ)言變量E賦8個(gè)值,即正小(PS)、正零(PO)、負零(NO),負小(NS),負中(NM),負大(NL),負加大(NXL),負超大 (NXXL),考慮到系統中并未設置降溫措施,E的賦值并不對稱(chēng)。EC賦7個(gè)值,即正大(PL)、正中(PM)、正小(PS)、零(PO)、負小 (NS)、負中(NM)、負大(N-L)。U賦4個(gè)值:零(O)、正小(PS)、正中(PM)、正大(PL)。為補償溫度控制無(wú)超調量,E的量化值為 -10~2,EC,U的量化值分別為-6~6,0~6。每個(gè)值采用三角形隸屬函數模型,如圖3~圖5所示。本文引用地址:http://dyxdggzs.com/article/162581.htm
依靠經(jīng)驗來(lái)建立控制規則,但是得到的控制量并是一個(gè)模糊量,不能直接用來(lái)作為控制輸出,采用C語(yǔ)言進(jìn)行解模糊處理,得到模糊查詢(xún)表,并在測試中反復調整,最終得到模糊查詢(xún)表如表1所示。
2.4 模糊控制程序
在單片機的程序中,設置了變量TOUT表示恒溫控制周期,TSET表示一個(gè)恒溫控制周期中韻加熱輸出時(shí)間,即表中的U。每隔TOUT的時(shí)間,將調用模糊推理程序,求出誤差E和誤差變化率EC。其中:
E=實(shí)時(shí)采樣溫度值-設定溫度值
EC=當前誤差-上次誤差
當誤差較大時(shí),不必進(jìn)行模糊控制,只需判斷是全速加熱或是停止加熱。當誤差進(jìn)入預設的控制范圍時(shí),量化E,EC,并由量化值查詢(xún)模糊查詢(xún)表,得出該周期應該輸出的加熱時(shí)間TSET。
在測試中發(fā)現,采用單一的E,EC論域的效果并不讓人滿(mǎn)意,系統靈敏度較低??紤]加熱慣性和高溫散熱較快的影響,采用了兩級控制的方式。在第一級控制中,E和EC的論域范圍較大,可快速加熱到恒溫設定溫度附近;此后進(jìn)入第二級控制,縮小E和EC的論域范圍,提高控制的靈敏度。經(jīng)測試,采用此方式可在各溫度層次控制過(guò)程中將恒溫誤差穩定在±0.3℃以?xún)取?br />
評論