在日常工業(yè)生產當中,恒溫控制" title="恒溫控制">恒溫控制應用非常廣泛。模糊控制" title="模糊控制">模糊控制技術是通過模仿人的思維方法,運用不確定的模糊信息進行決策以實現(xiàn)最佳的控制效果。模糊控制所關心的是目標而不是精確的數(shù)學模型,即研究的是控制器的本身而不是被控對象。因此可以利用特殊的控制媒介,研究控制器本身。本系統(tǒng)以此作為出發(fā)點,以單片機" title="單片機">單片機為核心控制器,研究模糊控制算法,實現(xiàn)了精確的恒溫控制。并設計了單片機與上位機的通信軟件,實現(xiàn)了遠程溫度控制和溫度曲線可視化的功能。
1 系統(tǒng)功能和硬件設計
本系統(tǒng)以水溫作為測量媒介,以AT89C51單片機作為核心控制器,以AD590" title="AD590">AD590溫度傳感器作為采集器,實現(xiàn)溫度的采集、控制、傳輸、顯示的功能。系統(tǒng)采用模糊算法對電熱絲的加熱時間進行控制,從而達到對水溫的控制。同時通過上位機軟件可以進行實時控制和顯示溫度曲線圖等,系統(tǒng)框圖如圖1所示。
1.1 溫度采集模塊
溫度采集模塊實現(xiàn)溫度信號采集、信號調理、模/數(shù)轉換的功能。主要以集成溫度傳感器AD590M為采集主體,經過電壓跟隨器、差分式減法器、電壓放大器、反相器等電路作為信號調理,后輸入10位A/D轉換器TLC1549進行模/數(shù)轉換。電路圖如圖2所示。
AD590是電流型集成溫度傳感器,具有抗干擾能力強的特點,其輸出電流和溫度值成正比,且是以絕對溫度零度(-273℃)為基準,其線性電流輸出為1μA/K,利用10 kΩ的電阻可將電流信號轉換為電壓信號。本系統(tǒng)的測量范圍為0~100℃,因此輸出電壓范圍為2.73~3.73 V。為了增大后端電路的阻抗,減小對電流信號的分流,利用電壓跟隨器作為信號隔離。后輸入差分減法器減去2.73 V,并經過5倍電壓放大
后,對應的輸出電壓范圍為O~6 V。電壓信號輸入10位逐次比較型模數(shù)轉換器TLCl549。其參考電壓為5 V,則輸入電壓的分辨率(單位:mV)為:
從而本系統(tǒng)溫度采樣的理論分辨率為:
由于傳感器信號微弱,極易受到外界電磁環(huán)境影響,須使用雙絞線傳輸傳感器信號。
1.2 人機交互和遠程管理模塊
系統(tǒng)開發(fā)了豐富的人機交互接口,分為本地管理和遠程管理,最大程度上簡化了操作的復雜度和方便度。在本地端,設有三個功能按鍵,分別為:設定溫度加O.1℃、設定溫度減O.1℃、溫度控制開關。兩個三位七段數(shù)碼管,分別顯示:設定溫度和實時采集溫度。
系統(tǒng)通過串口轉換芯片MAX232,實現(xiàn)上位機和單片機的通信。上位機作為遠程管理端,實現(xiàn)了顯示溫度變化曲線、顯示當前溫度、顯示設定溫度、顯示最大正負誤差,放大或縮小曲線、保存曲線等功能。
1.3 溫度控制和超界報警模塊
系統(tǒng)利用單片機控制電熱絲在一個加熱周期內的加熱時間來實現(xiàn)對水溫的控制。單片機端口信號經過光耦隔離后,利用三級管驅動電磁繼電器的閉合與斷開,從而控制加熱時間。當溫度超過100℃或者實時溫度變化超過10℃時,單片機將驅動蜂鳴器進行長時間報警提示,當設置溫度變化超過10℃時,蜂鳴器進行短時間報警提示。
2 軟件系統(tǒng)設計
系統(tǒng)的控制思路為:根據模糊控制模型和實際應用情況推理出模糊查詢表,模糊查詢表表示對于不同狀態(tài)的加溫周期時間。單片機根據實時采樣溫度的變化查取模糊查詢表,對加溫周期做出調整,從而達到對溫度控制的目的。
2.1 主程序
主程序一直處于等待接收串口信號狀態(tài),同時判斷是否需要發(fā)送數(shù)據。定時中斷每秒對采樣溫度進行平均值濾波后,置串口發(fā)送標志,在主程序中發(fā)送。單片機接收到PC信號的第一個字節(jié)時,調用接收數(shù)據子程序,將剩余數(shù)據接收到緩沖區(qū)內,并判斷接收數(shù)據的類型,執(zhí)行相應操作。
為避免串口干擾信號,系統(tǒng)采用應答模式和單向傳輸混用的串口通信,以提高通信的穩(wěn)定性和系統(tǒng)的實時性。上位機下發(fā)命令采用應答模式,單片機實時溫度信息上傳采用單向通信模式。通信協(xié)議由包頭、命令、數(shù)據長度、數(shù)據包、校驗位組成。
2.2 1ms定時中斷程序
1ms定時中斷作為系統(tǒng)的總時鐘。每1 ms刷新一位數(shù)碼管,每10 ms掃描一次按鍵,每1 s的最后100 ms中,每隔10 ms采樣一次溫度值,將10次采樣值冒泡排序,去掉最大值和最小值后的平均值,作為本次實時采樣的最終值送入顯示緩沖區(qū)。若恒溫控制開關打開,則每1 s還要調用恒溫控制程序。若報警開關打開,則每1 s取反一次揚聲器輸出。定時中斷返回前將重置看門狗。
2.3 模糊控制模型建立
系統(tǒng)利用了雙輸入單輸出的模糊控制模式。2個輸入語言變量E,EC分別表示溫度誤差和溫度誤差的變化率,輸出語言變量U表示繼電器的閉合時間。語言變量E賦8個值,即正小(PS)、正零(PO)、負零(NO),負小(NS),負中(NM),負大(NL),負加大(NXL),負超大 (NXXL),考慮到系統(tǒng)中并未設置降溫措施,E的賦值并不對稱。EC賦7個值,即正大(PL)、正中(PM)、正小(PS)、零(PO)、負小 (NS)、負中(NM)、負大(N-L)。U賦4個值:零(O)、正小(PS)、正中(PM)、正大(PL)。為補償溫度控制無超調量,E的量化值為 -10~2,EC,U的量化值分別為-6~6,0~6。每個值采用三角形隸屬函數(shù)模型,如圖3~圖5所示。
依靠經驗來建立控制規(guī)則,但是得到的控制量并是一個模糊量,不能直接用來作為控制輸出,采用C語言進行解模糊處理,得到模糊查詢表,并在測試中反復調整,最終得到模糊查詢表如表1所示。
2.4 模糊控制程序
在單片機的程序中,設置了變量TOUT表示恒溫控制周期,TSET表示一個恒溫控制周期中韻加熱輸出時間,即表中的U。每隔TOUT的時間,將調用模糊推理程序,求出誤差E和誤差變化率EC。其中:
E=實時采樣溫度值-設定溫度值
EC=當前誤差-上次誤差
當誤差較大時,不必進行模糊控制,只需判斷是全速加熱或是停止加熱。當誤差進入預設的控制范圍時,量化E,EC,并由量化值查詢模糊查詢表,得出該周期應該輸出的加熱時間TSET。
在測試中發(fā)現(xiàn),采用單一的E,EC論域的效果并不讓人滿意,系統(tǒng)靈敏度較低??紤]加熱慣性和高溫散熱較快的影響,采用了兩級控制的方式。在第一級控制中,E和EC的論域范圍較大,可快速加熱到恒溫設定溫度附近;此后進入第二級控制,縮小E和EC的論域范圍,提高控制的靈敏度。經測試,采用此方式可在各溫度層次控制過程中將恒溫誤差穩(wěn)定在±0.3℃以內。
3 系統(tǒng)實驗和誤差分析
3.1 傳感器零點校準
系統(tǒng)采用電流型溫度傳感器AD590,同時使用單點調節(jié)電路。在理想情況下,在冰水混合物(O℃)中并聯(lián)10kΩ電阻,輸出電壓為2.73V,即為傳感器零點。同時為保證系統(tǒng)的精確性,使用單點調節(jié)電路進行進一步調節(jié)。
3.2 系統(tǒng)實驗
利用本系統(tǒng)對自來水進行重復性測試。由于本地氣壓和水中雜質的影響,當水到達沸點時仍無法到達100℃,因此系統(tǒng)的測試范圍設定為40~90℃。當系統(tǒng)達到溫度恒定且停止加溫后,隨機進行一次靜態(tài)數(shù)據測量;在此后100 min內,每隔5 min進行一次恒溫控制數(shù)據測量。靜態(tài)數(shù)據如表2所示,恒溫控制數(shù)據如表3所示,50℃恒溫控制上位機曲線如圖6所示。
由表3可知,系統(tǒng)的靜態(tài)誤差為±0.2℃。對表3中每組數(shù)據的后10個數(shù)據進行標準差計算,結果如表4所示,可知其平均誤差小于±0.3 ℃。
4 結語
該系統(tǒng)以模糊控制算法和單片機設計了一種恒溫控制系統(tǒng)。利用單片機作為核心控制器,開發(fā)了豐富的友好的人機交互環(huán)境:溫度變化曲線可視性、遠程可控性非常適合工業(yè)遠程管理要求。其成本低,可擴展性好,非常容易擴展為多路采集系統(tǒng);同時采用模糊查詢表的方式,提高了系統(tǒng)的移植性。實驗表明:本系統(tǒng)能夠將水溫恒定的控制在40~90℃范圍內,控制誤差小于0.5℃,靜態(tài)誤差小于0.2℃,可廣泛的推廣和移植到工業(yè)當中。