基于模糊控制技術(shù)的恒溫控制系統(tǒng)的設(shè)計(jì)
在日常工業(yè)生產(chǎn)當(dāng)中,恒溫控制應(yīng)用非常廣泛。模糊控制技術(shù)是通過模仿人的思維方法,運(yùn)用不確定的模糊信息進(jìn)行決策以實(shí)現(xiàn)最佳的控制效果。模糊控制所關(guān)心的是目標(biāo)而不是精確的數(shù)學(xué)模型,即研究的是控制器的本身而不是被控對(duì)象。因此可以利用特殊的控制媒介,研究控制器本身。本系統(tǒng)以此作為出發(fā)點(diǎn),以單片機(jī)為核心控制器,研究模糊控制算法,實(shí)現(xiàn)了精確的恒溫控制。并設(shè)計(jì)了單片機(jī)與上位機(jī)的通信軟件,實(shí)現(xiàn)了遠(yuǎn)程溫度控制和溫度曲線可視化的功能。
1 系統(tǒng)功能和硬件設(shè)計(jì)
本系統(tǒng)以水溫作為測量媒介,以AT89C51單片機(jī)作為核心控制器,以AD590溫度傳感器作為采集器,實(shí)現(xiàn)溫度的采集、控制、傳輸、顯示的功能。系統(tǒng)采用模糊算法對(duì)電熱絲的加熱時(shí)間進(jìn)行控制,從而達(dá)到對(duì)水溫的控制。同時(shí)通過上位機(jī)軟件可以進(jìn)行實(shí)時(shí)控制和顯示溫度曲線圖等,系統(tǒng)框圖如圖1所示。
1.1 溫度采集模塊
溫度采集模塊實(shí)現(xiàn)溫度信號(hào)采集、信號(hào)調(diào)理、模/數(shù)轉(zhuǎn)換的功能。主要以集成溫度傳感器AD590M為采集主體,經(jīng)過電壓跟隨器、差分式減法器、電壓放大器、反相器等電路作為信號(hào)調(diào)理,后輸入10位A/D轉(zhuǎn)換器TLC1549進(jìn)行模/數(shù)轉(zhuǎn)換。電路圖如圖2所示。
AD590是電流型集成溫度傳感器,具有抗干擾能力強(qiáng)的特點(diǎn),其輸出電流和溫度值成正比,且是以絕對(duì)溫度零度(-273℃)為基準(zhǔn),其線性電流輸出為 1μA/K,利用10 kΩ的電阻可將電流信號(hào)轉(zhuǎn)換為電壓信號(hào)。本系統(tǒng)的測量范圍為0~100℃,因此輸出電壓范圍為2.73~3.73 V。為了增大后端電路的阻抗,減小對(duì)電流信號(hào)的分流,利用電壓跟隨器作為信號(hào)隔離。后輸入差分減法器減去2.73 V,并經(jīng)過5倍電壓放大后,對(duì)應(yīng)的輸出電壓范圍為O~6 V。電壓信號(hào)輸入10位逐次比較型模數(shù)轉(zhuǎn)換器TLCl549。其參考電壓為5 V,則輸入電壓的分辨率(單位:mV)為:
從而本系統(tǒng)溫度采樣的理論分辨率為:
由于傳感器信號(hào)微弱,極易受到外界電磁環(huán)境影響,須使用雙絞線傳輸傳感器信號(hào)。
1.2 人機(jī)交互和遠(yuǎn)程管理模塊
系統(tǒng)開發(fā)了豐富的人機(jī)交互接口,分為本地管理和遠(yuǎn)程管理,最大程度上簡化了操作的復(fù)雜度和方便度。在本地端,設(shè)有三個(gè)功能按鍵,分別為:設(shè)定溫度加O.1℃、設(shè)定溫度減O.1℃、溫度控制開關(guān)。兩個(gè)三位七段數(shù)碼管,分別顯示:設(shè)定溫度和實(shí)時(shí)采集溫度。
系統(tǒng)通過串口轉(zhuǎn)換芯片MAX232,實(shí)現(xiàn)上位機(jī)和單片機(jī)的通信。上位機(jī)作為遠(yuǎn)程管理端,實(shí)現(xiàn)了顯示溫度變化曲線、顯示當(dāng)前溫度、顯示設(shè)定溫度、顯示最大正負(fù)誤差,放大或縮小曲線、保存曲線等功能。
1.3 溫度控制和超界報(bào)警模塊
系統(tǒng)利用單片機(jī)控制電熱絲在一個(gè)加熱周期內(nèi)的加熱時(shí)間來實(shí)現(xiàn)對(duì)水溫的控制。單片機(jī)端口信號(hào)經(jīng)過光耦隔離后,利用三級(jí)管驅(qū)動(dòng)電磁繼電器的閉合與斷開,從而控制加熱時(shí)間。當(dāng)溫度超過100℃或者實(shí)時(shí)溫度變化超過10℃時(shí),單片機(jī)將驅(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)用情況推理出模糊查詢表,模糊查詢表表示對(duì)于不同狀態(tài)的加溫周期時(shí)間。單片機(jī)根據(jù)實(shí)時(shí)采樣溫度的變化查取模糊查詢表,對(duì)加溫周期做出調(diào)整,從而達(dá)到對(duì)溫度控制的目的。
2.1 主程序
主程序一直處于等待接收串口信號(hào)狀態(tài),同時(shí)判斷是否需要發(fā)送數(shù)據(jù)。定時(shí)中斷每秒對(duì)采樣溫度進(jìn)行平均值濾波后,置串口發(fā)送標(biāo)志,在主程序中發(fā)送。單片機(jī)接收到PC信號(hào)的第一個(gè)字節(jié)時(shí),調(diào)用接收數(shù)據(jù)子程序,將剩余數(shù)據(jù)接收到緩沖區(qū)內(nèi),并判斷接收數(shù)據(jù)的類型,執(zhí)行相應(yīng)操作。
為避免串口干擾信號(hào),系統(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的賦值并不對(duì)稱。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所示。
依靠經(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)靈敏度較低??紤]加熱慣性和高溫散熱較快的影響,采用了兩級(jí)控制的方式。在第一級(jí)控制中,E和EC的論域范圍較大,可快速加熱到恒溫設(shè)定溫度附近;此后進(jìn)入第二級(jí)控制,縮小E和EC的論域范圍,提高控制的靈敏度。經(jīng)測試,采用此方式可在各溫度層次控制過程中將恒溫誤差穩(wěn)定在±0.3℃以內(nèi)。
3 系統(tǒng)實(shí)驗(yàn)和誤差分析
3.1 傳感器零點(diǎn)校準(zhǔn)
系統(tǒng)采用電流型溫度傳感器AD590,同時(shí)使用單點(diǎn)調(diào)節(jié)電路。在理想情況下,在冰水混合物(O℃)中并聯(lián)10kΩ電阻,輸出電壓為2.73V,即為傳感器零點(diǎn)。同時(shí)為保證系統(tǒng)的精確性,使用單點(diǎn)調(diào)節(jié)電路進(jìn)行進(jìn)一步調(diào)節(jié)。
3.2 系統(tǒng)實(shí)驗(yàn)
利用本系統(tǒng)對(duì)自來水進(jìn)行重復(fù)性測試。由于本地氣壓和水中雜質(zhì)的影響,當(dāng)水到達(dá)沸點(diǎn)時(shí)仍無法到達(dá)100℃,因此系統(tǒng)的測試范圍設(shè)定為40~90℃。當(dāng)系統(tǒng)達(dá)到溫度恒定且停止加溫后,隨機(jī)進(jìn)行一次靜態(tài)數(shù)據(jù)測量;在此后100 min內(nèi),每隔5 min進(jìn)行一次恒溫控制數(shù)據(jù)測量。靜態(tài)數(shù)據(jù)如表2所示,恒溫控制數(shù)據(jù)如表3所示,50℃恒溫控制上位機(jī)曲線如圖6所示。
由表3可知,系統(tǒng)的靜態(tài)誤差為±0.2℃。對(duì)表3中每組數(shù)據(jù)的后10個(gè)數(shù)據(jù)進(jìn)行標(biāo)準(zhǔn)差計(jì)算,結(jié)果如表4所示,可知其平均誤差小于±0.3 ℃。
4 結(jié)語
該系統(tǒng)以模糊控制算法和單片機(jī)設(shè)計(jì)了一種恒溫控制系統(tǒng)。利用單片機(jī)作為核心控制器,開發(fā)了豐富的友好的人機(jī)交互環(huán)境:溫度變化曲線可視性、遠(yuǎn)程可控性非常適合工業(yè)遠(yuǎn)程管理要求。其成本低,可擴(kuò)展性好,非常容易擴(kuò)展為多路采集系統(tǒng);同時(shí)采用模糊查詢表的方式,提高了系統(tǒng)的移植性。實(shí)驗(yàn)表明:本系統(tǒng)能夠?qū)⑺疁睾愣ǖ目刂圃?0~90℃范圍內(nèi),控制誤差小于0.5℃,靜態(tài)誤差小于0.2℃,可廣泛的推廣和移植到工業(yè)當(dāng)中。
評(píng)論