關(guān) 閉

新聞中心

EEPW首頁 > 工控自動(dòng)化 > 設(shè)計(jì)應(yīng)用 > 基于模糊控制的恒溫控制系統(tǒng)設(shè)計(jì)

基于模糊控制的恒溫控制系統(tǒng)設(shè)計(jì)

作者: 時(shí)間:2010-12-10 來源:網(wǎng)絡(luò) 收藏

1.3 溫度控制和超界報(bào)警模塊
系統(tǒng)利用控制電熱絲在一個(gè)加熱周期內(nèi)的加熱時(shí)間來實(shí)現(xiàn)對水溫的控制。端口信號經(jīng)過光耦隔離后,利用三級管驅(qū)動(dòng)電磁繼電器的閉合與斷開,從而控制加熱時(shí)間。當(dāng)溫度超過100℃或者實(shí)時(shí)溫度變化超過10℃時(shí),將驅(qū)動(dòng)蜂鳴器進(jìn)行長時(shí)間報(bào)警提示,當(dāng)設(shè)置溫度變化超過10℃時(shí),蜂鳴器進(jìn)行短時(shí)間報(bào)警提示。

2 軟件系統(tǒng)設(shè)計(jì)
系統(tǒng)的控制思路為:根據(jù)模糊控制模型和實(shí)際應(yīng)用情況推理出模糊查詢表,模糊查詢表表示對于不同狀態(tài)的加溫周期時(shí)間。單片機(jī)根據(jù)實(shí)時(shí)采樣溫度的變化查取模糊查詢表,對加溫周期做出調(diào)整,從而達(dá)到對溫度控制的目的。
2.1 主程序
主程序一直處于等待接收串口信號狀態(tài),同時(shí)判斷是否需要發(fā)送數(shù)據(jù)。定時(shí)中斷每秒對采樣溫度進(jìn)行平均值濾波后,置串口發(fā)送標(biāo)志,在主程序中發(fā)送。單片機(jī)接收到PC信號的第一個(gè)字節(jié)時(shí),調(diào)用接收數(shù)據(jù)子程序,將剩余數(shù)據(jù)接收到緩沖區(qū)內(nèi),并判斷接收數(shù)據(jù)的類型,執(zhí)行相應(yīng)操作。
為避免串口干擾信號,系統(tǒng)采用應(yīng)答模式和單向傳輸混用的串口通信,以提高通信的穩(wěn)定性和系統(tǒng)的實(shí)時(shí)性。上位機(jī)下發(fā)命令采用應(yīng)答模式,單片機(jī)實(shí)時(shí)溫度信息上傳采用單向通信模式。通信協(xié)議由包頭、命令、數(shù)據(jù)長度、數(shù)據(jù)包、校驗(yàn)位組成。
2.2 1ms定時(shí)中斷程序
1ms定時(shí)中斷作為系統(tǒng)的總時(shí)鐘。每1 ms刷新一位數(shù)碼管,每10 ms掃描一次按鍵,每1 s的最后100 ms中,每隔10 ms采樣一次溫度值,將10次采樣值冒泡排序,去掉最大值和最小值后的平均值,作為本次實(shí)時(shí)采樣的最終值送入顯示緩沖區(qū)。若恒溫控制開關(guān)打開,則每1 s還要調(diào)用恒溫控制程序。若報(bào)警開關(guān)打開,則每1 s取反一次揚(yáng)聲器輸出。定時(shí)中斷返回前將重置看門狗。
2.3 模糊控制模型建立
系統(tǒng)利用了雙輸入單輸出的模糊控制模式。2個(gè)輸入語言變量E,EC分別表示溫度誤差和溫度誤差的變化率,輸出語言變量U表示繼電器的閉合時(shí)間。語言變量E賦8個(gè)值,即正小(PS)、正零(PO)、負(fù)零(NO),負(fù)小(NS),負(fù)中(NM),負(fù)大(NL),負(fù)加大(NXL),負(fù)超大 (NXXL),考慮到系統(tǒng)中并未設(shè)置降溫措施,E的賦值并不對稱。EC賦7個(gè)值,即正大(PL)、正中(PM)、正小(PS)、零(PO)、負(fù)小 (NS)、負(fù)中(NM)、負(fù)大(N-L)。U賦4個(gè)值:零(O)、正小(PS)、正中(PM)、正大(PL)。為補(bǔ)償溫度控制無超調(diào)量,E的量化值為 -10~2,EC,U的量化值分別為-6~6,0~6。每個(gè)值采用三角形隸屬函數(shù)模型,如圖3~圖5所示。

本文引用地址:http://m.butianyuan.cn/article/162581.htm

f.JPG

g.JPG

依靠經(jīng)驗(yàn)來建立控制規(guī)則,但是得到的控制量并是一個(gè)模糊量,不能直接用來作為控制輸出,采用C語言進(jìn)行解模糊處理,得到模糊查詢表,并在測試中反復(fù)調(diào)整,最終得到模糊查詢表如表1所示。
2.4 模糊控制程序
在單片機(jī)的程序中,設(shè)置了變量TOUT表示恒溫控制周期,TSET表示一個(gè)恒溫控制周期中韻加熱輸出時(shí)間,即表中的U。每隔TOUT的時(shí)間,將調(diào)用模糊推理程序,求出誤差E和誤差變化率EC。其中:
E=實(shí)時(shí)采樣溫度值-設(shè)定溫度值
EC=當(dāng)前誤差-上次誤差
當(dāng)誤差較大時(shí),不必進(jìn)行模糊控制,只需判斷是全速加熱或是停止加熱。當(dāng)誤差進(jìn)入預(yù)設(shè)的控制范圍時(shí),量化E,EC,并由量化值查詢模糊查詢表,得出該周期應(yīng)該輸出的加熱時(shí)間TSET。
在測試中發(fā)現(xiàn),采用單一的E,EC論域的效果并不讓人滿意,系統(tǒng)靈敏度較低。考慮加熱慣性和高溫散熱較快的影響,采用了兩級控制的方式。在第一級控制中,E和EC的論域范圍較大,可快速加熱到恒溫設(shè)定溫度附近;此后進(jìn)入第二級控制,縮小E和EC的論域范圍,提高控制的靈敏度。經(jīng)測試,采用此方式可在各溫度層次控制過程中將恒溫誤差穩(wěn)定在±0.3℃以內(nèi)。



關(guān)鍵詞: 單片機(jī) 傳感器

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉