標(biāo)題: 單片機(jī)PID算法水溫自動控制系統(tǒng)設(shè)計與調(diào)試 [打印本頁]

作者: dhp97    時間: 2020-7-1 14:08
標(biāo)題: 單片機(jī)PID算法水溫自動控制系統(tǒng)設(shè)計與調(diào)試
第1章              概述
第2章              方案論證與選擇
2.1              系統(tǒng)總體方案的選擇
2.2              加熱棒
2.3              顯示部分器件
2.4              無線通信部分
2.5              語音播放部分
2.6              輸入設(shè)備的選擇
第3章              系統(tǒng)結(jié)構(gòu)圖及硬件設(shè)計
3.1              系統(tǒng)總體結(jié)構(gòu)圖設(shè)計
3.2              主控端硬件設(shè)計
3.3              接收端硬件設(shè)計
第4章              系統(tǒng)軟件設(shè)計
4.1              主控端流程圖
4.2              接收端流程圖
4.3              上位機(jī)軟件功能圖
第5章              系統(tǒng)調(diào)試說明
第6章              創(chuàng)新點
附錄A 元件清單
附錄B 系統(tǒng)原理圖

隨著計算機(jī)技術(shù)、測量儀器和控制技術(shù)的高速發(fā)展,現(xiàn)代冶金、石油、化工及電力生產(chǎn)過程中,應(yīng)用了越來越多的先進(jìn)測量控制技術(shù)、設(shè)備和方法。在這些眾多的先進(jìn)測量控制技術(shù)中,如何對水溫進(jìn)行控制成為焦點課題之一。
溫度是極為重要而又普遍的熱工參數(shù)之一,在環(huán)境惡劣或溫度較高等場合下,為了保證生產(chǎn)過程正常安全的進(jìn)行,提高產(chǎn)品的質(zhì)量和數(shù)量,以及減輕工人的勞動強(qiáng)度和節(jié)約能源,及時準(zhǔn)確地得到溫度信息并對其進(jìn)行適時的控制。
由于本設(shè)計是一個典型的檢測、控制型應(yīng)用系統(tǒng),它要求系統(tǒng)完成從水溫檢測、信號處理、輸入、運算到輸出控制加熱棒加熱功率以實現(xiàn)水溫控制的全過程,因此,應(yīng)以單片微型計算機(jī)為核心組成一個專用計算機(jī)應(yīng)用系統(tǒng),以滿足檢測、控制應(yīng)用類型的功能要求。同時,配以上位機(jī),使該套應(yīng)用系統(tǒng)具有實時繪制圖表、語音播報、打印圖表、數(shù)據(jù)回放等功能。

本水溫自動控制系統(tǒng)分為主控部分、顯示部分、接收部分、無線部分、上位機(jī)部分共五大部分,其中主控部分和上位機(jī)部分是本次設(shè)計的重點。
方案一:采用普通溫度傳感器對溫度進(jìn)行采集,采用普通加熱棒加熱,溫度到達(dá)時停止加熱,采用電機(jī)攪拌。
方案二:采用防水溫度傳感器對溫度進(jìn)行采集,采用PID算法控制加熱棒加熱,采用氣泵使水運動起來。
方案對比:普通溫度傳感器只能在容器的外部對溫度進(jìn)行采集,不能很準(zhǔn)確的反應(yīng)實時的變化量。由于加熱棒停止加熱一段時間內(nèi)仍然有加熱的功效,所以如果溫度到達(dá)時才停止加熱,溫度一定會超出目標(biāo)溫度很多,所以采用PID算法可以較為準(zhǔn)確的控制水溫的變化情況。因為水有惰性,如果不進(jìn)行攪拌那么一個燒杯中的水上層和下層甚至可能會差十?dāng)z氏度,所以需要讓水運動起來。由于容器較小,使用電機(jī)攪拌空間不足,所以采用氣泵方式。綜合比較,本設(shè)計采用方案二。
根據(jù)要求,要將1000ml也就是1kg的水從常溫(20℃)加熱到50℃,所需熱量為Q=cmΔT=4.2×103×1kg×(50℃-20℃)=1.26×105J,兩分鐘內(nèi)完成則需要至少(Q=W=1.26×105J)P=W/t=1.26×105J/120s=1050w的加熱棒,考慮到熱能的損耗和運用PID控制算法不能100%工作的情況,采用了兩個800w的加熱棒進(jìn)行加熱控制。
方案一:通過分時輪流控制各個LED數(shù)碼管的COM端,就使各個數(shù)碼管輪流受控顯示。在輪流顯示過程中,每個數(shù)碼管的點亮?xí)r間為1~2ms,由于人的視覺暫留現(xiàn)象及發(fā)光二極管的余輝效應(yīng),盡管實際上各位數(shù)碼管并非同時點亮,但只要掃描的速度恰當(dāng),就會顯示相應(yīng)的數(shù)據(jù)。
方案二:LCD12864液晶顯示器件由于具有顯示信息豐富、功耗小、體積小、質(zhì)量小、無輻射等優(yōu)點而得到了廣泛的使用,特別是內(nèi)部含有控制/驅(qū)動器及中文字庫的圖形點陣液晶顯示模塊有很好的控制顯示功能,能方便的和微處理器、單片機(jī)接口,并提供并行與串行接口方式。
方案對比:液晶顯示較LED顯示有無法比擬的優(yōu)點,所以采用了液晶顯示的方案。
無線選用頻率是2.4GHz的NRF24L01無線模塊。主要特點是支持雙工,并且速度快,耗電量較低,支持多頻段多地址的功能,在設(shè)計中使用了2個無線進(jìn)行數(shù)據(jù)傳輸,其中無線地址使用了地址段,通信過程中使用了變址傳輸?shù)姆绞胶蛦栐兎绞,來避免通信信道的擁擠造成的信息丟失。
方案一:ISD4004語音芯片是美國Winbond公司產(chǎn)品,芯片設(shè)計是基于所有操作必須由微控制器控制,操作命令可通過串行通信接口送入。芯片采用多電平直接模擬量存儲技術(shù), 每個采樣值直接存貯在片內(nèi)閃爍存貯器中,因此能夠非常真實、自然地再現(xiàn)語音、音樂、音調(diào)和效果聲。
方案二:采用上位機(jī)語音播報,上位機(jī)語音播報設(shè)計是采用多線程語音播報,在語音播報時不會影響到數(shù)據(jù)接收和數(shù)據(jù)顯示。語音播報調(diào)用了微軟的自動發(fā)音語音支持,可以任意使用多國語言進(jìn)行語音播報,在重新修改的時候方便、快速,減少了重新設(shè)計時工程量。
方案對比:因為本套系統(tǒng)已經(jīng)使用上位機(jī),所以在上位機(jī)基礎(chǔ)上增加語音播報功能比較簡單,不但節(jié)約單獨硬件模塊的成本,且上位機(jī)語音播報的效果好于硬件模塊的播報效果,所以采用方案二。
方案一:采用陣列式鍵盤。使用較少的I/O讀取較多的鍵盤信息,主要通過動態(tài)掃描的方式進(jìn)行的工作,當(dāng)矩陣的某行通上低電平,若有按鍵按下,相應(yīng)的列就會輸出低電平,通過這樣的方式可以讀出按鍵狀態(tài),而且不浪費I/O,但是此方式只使用與按鍵數(shù)量加大的時候,若一個或者兩個按鍵則不適用。
方案二:采用獨立式按鍵。每個I/O獨立連接單片機(jī)MCU的端口,特點是使用比較方便,開發(fā)比較迅速,相應(yīng)相對較快,但是此種方案浪費系統(tǒng)資源,設(shè)計時可以根據(jù)設(shè)計內(nèi)容進(jìn)行考慮,因為不同的設(shè)計對資源的使用是不同,故還需看時間情況,通過查詢資料得知在個別單片機(jī)中獨立按鍵需要連接上拉電阻使其保持穩(wěn)定。
方案對比:由于系統(tǒng)設(shè)計使用的按鍵較少,只用到了四個按鍵,所以采用方案二。

按照系統(tǒng)功能要求,系統(tǒng)主控端、接收端和上位機(jī)三個模塊,根據(jù)這個要求,設(shè)計的“水溫自動控制系統(tǒng)”框圖如圖3.1所示。
圖3.1 系統(tǒng)總體框圖
主控端對水溫進(jìn)行實時監(jiān)測和控制,并通過無線將溫度數(shù)據(jù)發(fā)送給接收端,接收端接收到數(shù)據(jù)后立即通過串口發(fā)送給上位機(jī),上位機(jī)將接收到的數(shù)據(jù)繪制成圖表并存入到數(shù)據(jù)庫中,上位機(jī)同時具有實時語音播報溫度、打印圖表的功能。
主控端包括復(fù)位電路、溫度采集電路、加熱控制電路、制冷控制電路、LCD顯示電路、按鍵控制電路、無線傳輸電路組成,系統(tǒng)的主控端框圖如圖3.2所示。
圖3.2 主控端框圖
接收端包括無線傳輸電路和串口通信電路組成,“水溫自動控制系統(tǒng)”接收端框圖如圖3.3所示。
圖3.3接收端框圖
主控端作為系統(tǒng)的核心,集成了很多功能模塊和數(shù)據(jù)處理算法在上面,為了達(dá)到每個模塊處理時間的均衡與系統(tǒng)運行時間的最短,得到比較優(yōu)化的主控制程序流程圖如圖4.1所示。
圖4.1 主控端流程圖
當(dāng)主控端上電后,系統(tǒng)對溫度采集模塊、加熱控制模塊、制冷控制模塊、LCD顯示模塊、按鍵控制模塊、無線傳輸模塊進(jìn)行初始化。初始化完成后,讀取無線數(shù)據(jù)的接收緩沖區(qū),判斷是否接收到數(shù)據(jù),如果收到命令則判斷其命令類型并執(zhí)行。檢測按鍵是否被按下,如果被按下則處理相應(yīng)的按鍵事件。獲取當(dāng)前溫度,在LCD上顯示,并通過無線將溫度數(shù)據(jù)發(fā)送給接收端,把當(dāng)前溫度值傳入PID算法中進(jìn)行運算,得出脈沖寬度,再通過脈沖控制加熱棒加熱或制冷器制冷。
接收端作為系統(tǒng)的主要組成部分,負(fù)責(zé)接收主控端通過無線傳來的數(shù)據(jù),并將數(shù)據(jù)及時的通過串口發(fā)送給上位機(jī),接收端的程序流程圖如圖4.2所示。
當(dāng)接收端上電后,初始化串口模塊和無線傳輸模塊。初始化結(jié)束后,一直等待接收主控端傳來數(shù)據(jù),如果接收到數(shù)據(jù),立即將數(shù)據(jù)通過串口發(fā)送給上位機(jī),并向主控端返回校驗數(shù)據(jù),然后繼續(xù)等待接收主控端傳來的數(shù)據(jù)。

圖4.2 接收端流程圖
上位機(jī)作為系統(tǒng)的重要組成部分,有端口選擇、接收數(shù)據(jù)、繪制圖表、語音播報、打印圖表、數(shù)據(jù)回放等功能。上位機(jī)軟件框圖如圖4.3所示。
圖4.3上位機(jī)軟件功能圖
當(dāng)上位機(jī)數(shù)據(jù)采集處理系統(tǒng)啟動后,程序首先檢查自身配置文件,并顯示在系統(tǒng)狀態(tài)框上對使用者進(jìn)行提醒。若檢查通過,用戶則開始設(shè)定自定義配置。設(shè)置完成后,系統(tǒng)等待用戶操作。用戶選擇相應(yīng)模塊功能后,進(jìn)入模塊菜單,模塊菜單開始讀取配置文件開始初始化,根據(jù)用戶的選擇和相應(yīng)功能的實現(xiàn),模塊會根據(jù)選擇對自身控件或者功能線程進(jìn)行激活。
在調(diào)試和制作過程中遇到了很多問題,如在語音播報和打印的時候程序會卡死,無法永久保留用戶設(shè)置,PID算法計算不準(zhǔn)確等,但經(jīng)過認(rèn)真考慮和查詢對問題都進(jìn)行了解決,調(diào)試結(jié)果如下:
整個系統(tǒng)達(dá)到了題目的技術(shù)指標(biāo)要求。
在制作過程中根據(jù)具體情況,結(jié)合所學(xué)的知識,對本系統(tǒng)添加了一些新的功能,創(chuàng)新點如下:

附錄A 元件清單


名稱
個數(shù)
單價(元)
總價(元)
STC12C5A60S2
2
20
40
加熱棒800W
2
15
30
電源12V/10A
1
100
100
電源5V/3A
1
40
40
無線模塊
2
20
40
12864液晶屏
1
60
60
DS18B20水溫模塊
1
20
20
按鍵KD3-1
5
7
35
封裝殼
1
25
25
固態(tài)繼電器
2
50
100
插排
3
40
120
氣泵
1
20
20
制冷板
1
150
150
電子溫度計
1
40
40
硅膠
10
2
20
小風(fēng)扇
1
10
10
合計


850




附錄B 系統(tǒng)原理圖
附錄B1接收端電路圖
附錄B2主控端電路圖

全部資料51hei下載地址:
http://www.torrancerestoration.com/bbs/dpj-191729-1.html






歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1