【基于PID算法的加熱溫控系統設計14000字(論文)】_第1頁
【基于PID算法的加熱溫控系統設計14000字(論文)】_第2頁
【基于PID算法的加熱溫控系統設計14000字(論文)】_第3頁
【基于PID算法的加熱溫控系統設計14000字(論文)】_第4頁
【基于PID算法的加熱溫控系統設計14000字(論文)】_第5頁
已閱讀5頁,還剩27頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

概述2.1PID控制原理概述PID算法是控制領域應用最廣泛、實現最簡單、且最能體現反饋思想的控制算法,對于行業內的研究人員來說,掌握和實現PID算法是最基本的要求。PID算法的控制執行流程是非常簡單的,即利用反饋信號來檢測偏差信號,并通過偏差信號來控制被控量。而控制器本身就是比例、積分、微分三個環節的加和,如圖2-1所示比例調節比例調節輸入輸出+輸入輸出+-執行端積分調節-執行端積分調節微微分調節檢測元件檢測元件圖2-1PID控制原理圖PID的比例、積分、微分調節:比例調節:將輸入的偏差輸入乘以系數,然后輸入,通過乘積的方式放大偏差的幅值;積分調節:由于比例積分的調節環節輸出會產生穩態誤差,所以要加入積分調節,用來對時間積分來消減穩態誤差;微分調節:微分調節反映的是偏差信號的變化趨勢,然后對變化趨勢進行預判,從而達到提前調節的效果。根據圖2-1在特定時間t,此時輸入為r(t),輸出為c(t),于是偏差就可計算為,于是PID的基本控制規律就可以表示為如下公式: (2.1)其中是KP比例帶,TI為積分時間,比例用于對偏差做出反應。只要有偏差,比例就會發揮作用。積分的主要功能是消除靜態誤差。所謂靜態誤差是指系統穩定后輸入與輸出之間的差值,積分用于通過偏差的累積來補償系統的靜態誤差。微分是響應偏差變化趨勢,根據偏差變化趨勢實現提前調整,提高反應速度。如果要想讓PID算法在計算機上實現,就必須要將PID算法離散化。假設采樣周期為T,在第k個采樣周期時,系統偏差ek=rk?uk,積分為e (2.2)比例系數為KP,積分系數KI= (2.3)式2.3所表示的是位置式PID算法的離散描述公式。位置式PID的特點:位置式PID需要將所有的誤差值累加起來,這樣做的話,相較于增量式PID誤差會比較大;位置式PID適用于控制沒有積分調節部分的對象,靜態誤差較小;位置式PID需要將每次的偏差累加起來,對于計算機系統來說,運算工作量相較于增量式PID較大,并且如果計算機出現故障,對于增量式PID來說,由于其只與前兩次的偏差有關,所以影響較小,但是位置式PID來說,直接對應控制對象的輸出,所以系統影響相較于增量式PID的系統較大[2][3]。本設計使用的是對于狀態記錄要求不高的增量式PID算法,增量式PID的表現形式,計算出來的增量只跟最近三次的偏差值有關。式2.3描述了第K個采樣周期的結果,那么K?1時刻的結果可以表示為: (2.4)則: (2.5)式2.5表示的只是增量,如果要計算U(k),則:U(k)=U(k?1)+?U(k)增量式PID的特點:(1)增量PID算法不需要累加,控制量增量的確定只與上次的偏差值有關,計算偏差的影響較弱;(2)增量PID算法獲得控制量的增量,對系統的影響相對較小;(3)使用增量PID算法可以輕松地從手動切換到自動,而不會造成干擾。2.2本設計方案思路本設計以利用PID算法實現溫度調控和無線數據傳輸、遠程控制為主要目的;以利用PID算法實現溫度調控,無線數據傳輸和遠程控制為主要設計內容。在PID算法方面采用增量式PID實現溫度調控;在執行和檢測端,低壓控制高壓,使用大功率加熱設備,保證其加熱速度;在無線傳輸及遠程調控方面,采用藍牙模塊進行無線數據傳輸,移動端APP實現遠程調控。本畢業設計主要涉及部分有執行端低壓控制高壓的設計、增量式PID控制器設計、移動端和STM32F103ZET6通信進行無線數據交互、移動端APP界面的設計制作。2.3研發方向和技術關鍵(1)低壓驅動高壓:繼電器,IGBT(絕緣柵雙極型晶體管)驅動,雙向可控硅驅動等;(2)PID算法研究;(3)藍牙無線傳輸及控制;(4)移動端APP用戶交互界面的設計。2.4主要技術指標(1)能夠檢測并顯示當前環境溫度和被控物體溫度(本畢業設計實現為水溫控制);

(2)當被控物體溫度超出設定報警閾值范圍時,系統能檢測并進行報警;

(3)利用PID算法實現溫度調控功能;

(4)具有無線數據傳輸功能,遠程主控系統能檢測和控制被控物體溫度(要實現主控端)。2.5總體設計本設計目的為設計工作性能優良的PID溫度控制系統,使得被測物體的溫度可以盡可能的穩定在遠程控制端的設定溫度值上。該系統的原理是在遠程控制端連接藍牙并打開系統開關發送設定溫度值后,加熱系統開始工作,DS18B20溫度傳感器以及DHT11溫濕度傳感器傳輸數據至STM32F103ZET6,STM32F103ZET6對數據進行處理,如果超過設定溫度,蜂鳴器工作,STM32F103ZET6通過藍牙模塊CC2541將實時溫度以及是否超溫傳輸至移動端APP顯示。PID溫度控制系統結構的組成框圖如圖2-2所示。該系統包括加熱與檢測模塊、計算機PID算法處理程序、數據處理和無線發送模塊、移動端APP用戶交互等四部分。USB–串口液體USB–串口液體PIDPC端電熱絲電熱絲冷卻裝置串口溫度傳感器DS18B201-wire藍牙模塊串口溫度傳感器DS18B201-wire藍牙模塊CC2541STM32F103微處理器移動端APP移動端APP電源樹圖2-2系統總體結構框圖3硬件設計3.1STM32F103ZET6單片機3.1.1STM32F103ZET6STM32F103ZET6的性能非常好,主要是因為它使用了內置的內核,型號是ARMCortex-M3,高速存儲操作系統,FLASH閃存高達512KB,另外還有64K的SRAM,充足的I/O接口以及連接到兩條APB總線的外圍設備。STM32F103ZET6包括三個12位ADC和四個通用ADC16位定時器和2個PWM定時器,包括標準和高級通信接口:2個I2C接口、3個SPI接口、2個I2S接口、1個SDIO接口、5個USART接口、1個USB接口和1個CAN接口[4]。STM32F103ZET6芯片正常工作的最低溫度為–40℃,最高溫度可以擴展到+105°C,電源電壓為2.0V到3.6V,一系列的節能模式可確保滿足低功耗應用的要求。在工業發展、電機驅動、醫用設備、便攜式設備、生物儀器設備、警報系統等領域都可以應用STM32F103xx系列的大容量微控制器,如此廣泛的應用都得益于其豐富的外設配置,由于不同的封裝方式,所以包括的外設配置也不同,其中STM32F103ZET6主要包括:供電方案:VDD為調壓器和通用I/O端口提供電源,值為2.0~3.6V。VDDA與VSSA為模擬電路以及ADC提供電源,值為2.0~3.6V。供電開關關上時,圖3-1供電方案啟動和時鐘:啟動時選擇系統時鐘。復位時,將8MHz的內部RC振蕩器選擇為默認處理器時鐘,之后可以選擇具有故障監視功能的外部8MHz時鐘;當檢測到外部時鐘故障時,它將被隔斷,并且系統將自動切換到內部RC振蕩器。如果啟用了中斷,則軟件可以接收相應的中斷。同樣,可以在需要時采用全面管理PLL時鐘中斷(例如,在間接使用的外部振蕩器發生故障的情況下);存儲器:512K字節的FLASH閃存和64K字節的SRAM,FLASH用于存放數據和程序,內置SRAM,處理器可以以0個等待周期訪問(讀/寫);DMA:12路靈活的通用DMA(DMA1是7通道,DMA2是5通道),無論是從存儲器到存儲器、從存儲器到設備還是從設備到存儲器的數據傳輸都可以由這12路DMA完成處理;還有兩個DMA控制器支持環形緩沖區管理,避免了控制器傳輸到緩沖區末端時的中斷。可以使用DMA的外設有:串行外設接口SPI、串行傳輸總線I2C串行傳輸總線I2C:STM32F103ZET6擁有兩個I串行外設接口SPI:STM32F103ZET6擁有三個SPI接口,全雙工,同步,在主/從模式下,最高速率可達18M-bit/s,支持DMA操作;通用快速輸入輸出端口GPIO:STM32F103ZET6擁有112個GPIO接口,接口資源豐富,程控使用方便,功耗低,成本小;定時器:4個PWM波計時器、兩個6通道16位三相PWM定時器、兩個看門狗計時器、兩個16位計數器;通用串行總線USB::STM32F103ZET6內部具有一個2.0的高速標準USB總線。STM32F103ZET6芯片的模塊功能圖如圖3-2所示。圖3-2STM32F103ZET6模塊功能框圖3.1.2時鐘電路為了提供更準確的時鐘信號,單片機使用外部時鐘電路,該電路主要由晶體振蕩器,電容器和電阻組成。單片機的內部振蕩器在外部晶體振蕩器和電容器的作用下產生自激振蕩,并為單片機提供8MHz的正弦波信號。時鐘電路等效于單片機的核心,其每個節拍都控制著單片機執行代碼的工作效率。當振蕩緩慢時,系統的運行速度變慢,振蕩快時,系統的運行速度就快。外部時鐘電路如圖3-3所示。圖3-3外部時鐘電路3.1.3復位電路復位電路由合適的電阻、電容器和一個按鍵組成,相對簡單。電容器的電壓是不能突然發生變化的,當系統上電時,STM32F103ZET6的RST腳將會出現一個持續的高電平,并且,這個高電平持續的時間由電路的電容值來決定。當STM32F103ZET6的RST腳檢測持續到持續到20us以上的高電平后,會對單片機進行復位操作。電路圖如圖3-4所示。圖3-4外部復位電路3.1.4CH34OCH340是一個可以實現USB轉串口功能的轉接芯片,可以用于計算機USB擴展,以及原有USB外設的升級,該芯片內部含有單獨的數據收發緩沖區,支持全部三種通信方式,在本設計中選為波特率115200通信。可以在-40攝氏度的環境溫度下正常工作,最高只能到85攝氏度。在3.3V和5V兩種電源電壓下均能正常工作,但是,在3.3V的工作電壓下,其他電路的工作電壓最高只能達到3.3V,不可超過3.3V。本設計中,使用該芯片通過添加電平轉換電路的方式,將USB口轉換為了輸出信號較弱的3線制(RXD、TXD、GND)RS232串口,電路圖如圖3-5所示。其中RXD、TXD為數據傳輸引腳,RXD為接收引腳,應與單片機的發送引腳連接,同樣,TXD應與單片機接收引腳相連,這樣才能做到收發從而進行通信。圖3-5USB轉RS232串口電路圖CH340的特點:在3.3V和5V兩種電源電壓下均能正常工作,具有USB2.0及以上的高速外設接口,如圖3-5所示,外部元件只有簡單的三極管和電阻電容,電路連接原理簡單,使用時安全系數高,具有SSOP-20和SOP-16兩種封裝方式;具有非常標準的仿真串口,可以用于計算機USB的拓展,以及對原有USB外設的升級的任務,可以通過在外部電路添加電平轉換裝置,將USB轉換成RS232、RS485、RS422等多種串口,本畢業設計選擇的是轉換成RS232串口,如圖3-5電路所示,轉換電路相對簡單;通信方式為全雙工通信,內部具有數據緩沖區,通信范圍廣,完全支持國際紅外數據協會的串行紅外通信協議,在PC端Windows操作系統進行調試時,與調試普通串口所使用的串口調試工具不會產生沖突現象,本次選用的串口調試工具是sscom串口調試工具,通訊波特率與普通串口設置一致,其他不需要任何修改,雖然該串口可以做到在應用方面和普通串口相一致,但是它本質上還是USB轉換成的串口,沒有辦法做到與普通串口完全相同。3.2電源電源部分中包含單片機為外設提供的5V電源,以及經過線性穩壓器得到的3.3V電源,還有給電熱絲供電的220V交流電。單片機直接利用USB獲取5V電源,只需用普通數據線將單片機與PC連接即可,然后單片機通過調壓電路得到3.3V電源,電路如圖3-6所示。圖3-63.3V電壓源該電路由CJA1117B穩壓器,一個保險絲以及幾個電容器組成,CJA1117B穩壓器的最大輸入電壓為15V,最大工作電源電流為120uA,輸出電流為固定的3.3V。該電路將單向交流電通過穩壓器轉換成穩定的直流電壓。該電路同時具有保護電路,VCC為USB輸入的電壓,當電路輸入電壓過高時,保險絲就會熔斷,不會對穩壓器和電源電路造成任何影響。大功率電熱絲加熱電源選擇的是日常生活中使用的220V交流電,通過PID算法輸出PWM波控制雙想可控硅驅動電路的通斷來控制電路。3.3CC2541藍牙模塊CC2541藍牙模塊有兩種工作模式,分別是透傳模式和直驅模式,模塊連通后,要想通過BLE協議進行監控,就必須通過手機端特點APP掃描并成功連接。在透傳模式下,STM32F103ZET6可以使用CC2541模塊的串口與手機端進行交互,也可以使用串口AT指令來影響通訊。數據含義由上層應用程序定義,手機端可以通過應用程序寫入數據,數據將通過串口發送到用戶的處理器。一旦模塊從用戶的處理器串口接收到數據包,它將自動將其發送到手機端,為了以這種方式進行開發,用戶應負責主處理器和手機端應用程序的代碼設計。CC2541藍牙模塊所有的I/O外擴,包括:6個雙向可編程I/O,兩個單向可編程輸出口,兩路14位ADC輸入,可以自由設置采樣周期,四路120Hz可編程PWM輸出。CC2541藍牙模塊的主要特點:高度集成的模塊,使用起來相對簡單,即使對沒有使用任何藍牙模塊使用經驗的開發者,通過簡單的學習,也可正常使用,沒有任何障礙;通信串口與單片機上通用串口設計相一致,通信方式是全雙工雙向通信,且通信的波特率最低為9600bps,最高為115200bps,在開發中可以使用該模塊默認的9600bps,也可自行設計,為滿足傳輸速率要求,本畢業設計設置的為115200bps;具有兩種工作模式,通用透傳模式,該模式需要與單片機串口通信,還有直接驅動模式,該模式下藍牙模塊不需要額外的單片機連接,只需給該模塊通電即可正常工作;在調試過程中,可以在串口調試助手中使用特定的AT指令,來完成相應的命令需求,比如AT+NAME=<Param>(設置模塊名稱)、AT+RESET(復位)、AT+BAUD=<Param>(設置串口波特率)、AT+PIN<Param>(設置配對碼),除了這些還有設置藍牙連接間隔、獲取藍牙連接狀態等等指令,可以非常清楚的將該藍牙模塊的參數等信息顯示并更改,使用起來也非常簡便;移動端使用特定的藍牙調試APP可以完成特定AT指令需要完成的指令需求,比如移動端藍牙調試APP設置模塊名稱,設置串口波特率,設置連接間隔,設置配對碼等等,并且可以遠程復位;該模塊內部含有一個8051微型處理器,具有256KBFLASH+8KBRAM,5通道DMA,3個通用定時器,以及一個8通道的12位ADC,2個UART,23個GPIO。CC2541藍牙模塊的功能框圖如圖3-7所示。圖3-7CC2541藍牙模塊功能框圖3.4DS18B20溫度傳感器本設計選用的DS18B20溫度傳感器為不銹鋼防水封裝外加一米1m傳感線,單總線1-wire連接,即能傳輸時鐘,又能雙向傳輸數據,節約資源,便于開發,DS18B20溫度傳感器在連接時必須要連接一個可以使用的上拉電阻,所以我選擇連接一個轉換器。DS18B20溫度傳感器內部部件主要有:(1)64位只讀存儲器,里面存儲有每個DSI8B20傳感器的序列號,前面8位是單線編碼,中間48位是特定的序列號,后面8位是CRC編碼;存儲器,存儲器第0位和第1位是用來存儲溫度數據的ROM,第2位和第3位是存儲TH和TL報警信號的EEPROM,第4位是用于配置位數的配置寄存器,剩下的幾位無法寫入;CRC字節作為DS18B2064位只讀存儲器的后8位存儲在存儲器中。CRC碼由ROM的前56位按位計算得出的,并包含在只讀存儲器字節中。CRC是根據存儲在存儲器中的數據計算得出的,因此,當存儲器中的數據更改時,CRC也會更改。總線控制器讀取DS18B20時,CRC可以執行數據驗證。檢查數據是否正確讀取,總線控制器應使用接收到的數據來計算CRC值和存儲在DS18B20中的64位ROM值(讀取只讀存儲器時)或DS18B20內部計算的8位CRC值(讀取存儲器時)進行比較。如果計算出的CRC值與讀取的CRC值相一致,則數據準確傳輸[5]。DS18B20具體的功能方框圖如圖3-8所示[6]。圖3-8DS18B20方框圖DS18B20溫度傳感器的特點:單總線接口,除了VCC與GND,只有一條數據線與單片機通信,簡化了傳感器在各個方面的使用,DS18B20溫度傳感器可以正常工作在3.0V至5.5V的電源電壓下,其最低可以測量-55℃的溫度數據,最高可測量+125℃的溫度數據,精度為±5℃在-10?+85℃范圍內[7];溫度傳感器可編程的測量位為9到12位,DS18B20通過單一數據接口發送或接收信息,因此除了VCC與GND,只有一條數據線與單片機通信,DS18B20可以直接從單根信號線獲取電源,而無需外部電源,如果將電源與接地接反的話,芯片不會燒掉,但是該傳感器會失去作用,并且讀數將會一直是85攝氏度[8];DS18B20在讀取溫度時一共讀取16位數據,前面五位數據位是符號位,如果這五位數據位為0的話,溫度為正數,反之,當這五位數據位為1時,溫度為負數。溫度為正時,需要將溫度數據16進制輸轉換為十進制,但是,當溫度為負數是,則需要將溫度數據16進制數取反,然后再加一,最后轉換成十進制[9];由于DS18B20單總線的特性,以及其內部只讀寄存器的作用,可以使的多個DS18B20作用于一條總線上,DS18B20可以應用于大多數溫控電路,由于其精確度很高,可以應用于高精度的溫度測量電路里,還有就是很多家用電器上,比如冰箱,空調等等[10]。DS18B20溫度傳感器的電路連接圖如圖3-9所示。圖3-9DS18B20電路連接圖圖中R4為4.7k的上拉電阻。3.5DHT11溫濕度傳感器本設計需要檢測環境溫濕度,所以選用溫濕度一體化的DHT11溫濕度傳感器,它由三部分組成一個電阻式感濕元件,一個負溫度系數感溫元件以及一個與兩個元件相連的8位單片機。和DS18B20一樣該傳感器也是單總線1-wire通信,所以它對資源的占用很少,數據傳輸很準確,功耗也很低,其在3.5V的電壓下可以正常工作,最高可擴展到5V,正常工作時電流為0.5毫安,采樣周期是1S,20到90%RH為電阻式感濕元件的測量范圍,而負溫度系數感溫元件的測量范圍從最低0到最高50攝氏度[11]。該模塊使用簡單,只需與單片機進行簡單的連接就能使用,如圖3-7所示,1引腳VCC接電源,4引腳GND接地,2引腳與單片機連接,3引腳不連接。如圖3-10所示。圖3-10DHT11連接電路圖圖中R5為4.7k的上拉電阻。DHT11溫濕度傳感器的特性:由于DHT11的內部結構,可以確保該傳感器有著很可靠的性能以及優秀的穩定性,響應速度快,抗干擾能力強。單總線通信方式也是使其獲得優越性能的原因之一,單總線使得傳感器集成相對簡單,由于DHT11為4針單插的封裝方式,除了電源與接地引腳外只有一個引腳與單片機相連,連接簡便,體積也相對較小,功耗也較低,但是在電路中需要連接一個上拉電阻來確保電路穩定性;DT11在讀取數據時,與DS18B20不同的是,該傳感器一次讀取5個字節數據,數據格式位一字節的濕度正數數據+一字節濕度小數數據+一字節的溫度正數數據+一字節濕度小數數據+一字節的校驗和數據,校驗和數據為前面四個字節的數據相加。后面得到的相對濕度數據為第一個字節加上第二個字節轉換為十進制,同理,溫度數據也可以算出,傳感器每次讀取的數據都是上一次的測量數據,要想獲得本次的數據,需要連續但間隔不應太短的讀取兩次數據[12];由于DHT11優秀的性能已集齊穩定性,在現實生活已經工業生產中被廣泛使用,尤其是比較苛刻的應用環境,比如在氣象站,家電,醫療設備等等方面。單片機讀取DHT11數據主要分為四個步驟:傳感器通電,檢測數據,保持DATA引腳為輸入模式,檢測外部輸入;單片機輸出低電平,后改為高電平,傳感器發送信號;傳感器檢測到單片機輸出低電平時,DATA引腳變為輸出模式,先輸出低電平信號,然后輸出高電平信號,提示單片機接收數據;傳感器輸出40位數據,單片機接收并進行后續處理。3.6電熱絲及其驅動電路電熱絲選用電源電壓為220V,額定輸入功率為2500w的大功率電熱絲,可以保證加熱速率,因為在PID算法控制過程中需要控制電熱絲的通斷,現實生活中所用到都是220V交流電,直接控制很難做到,而弱電工作電壓小,頻率高,功率小,所以,本設計選擇通過單片機的5V弱電來控制220V強電,在控制時為了控制控制加熱電路的通斷,需要用到繼電器或者雙向可控硅等驅動電路,本設計選擇的是光耦和雙向可控硅驅動電路,電路較為簡單,只需一個光耦,一個雙向可控硅以及一個74LS00與非門,電路圖如圖3-11所示。圖3-11光耦和雙向可控硅驅動電路該電路中,光耦選擇雙向可控光耦MOC3061,該光耦內部由紅外發光二極管和一個單片硅以及一個過0檢測器組成,封裝為6引腳直插式封裝,引腳1連接高電平,引腳2連接低電平,引腳3和引腳5不做連接,引腳4和引腳6為輸出引腳,具體原理圖如圖3-12所示。圖3-12MOC3061內部原理圖MOC3061可以與單片機直接相連,當電信號輸入進入時,砷化鎵紅外發光二極管在電流作用下發出紅外線,過零檢測器檢測電壓是否為0或接近為0,紅外線觸發輸出部分的雙向可控硅通斷。MOC3061可以在-40攝氏度到85攝氏度內正常工作,正向電流為60毫安,反向電壓為6V,功耗很小為120毫瓦,圖3-13為具體的數據參數,滿足電熱絲驅動電路的設計需求。圖3-13詳細參數電路另外一部分為雙向可控硅,我選擇的是MAC8DG雙向可控硅,MAC8DG器件結構圖3-14所示,從原路圖上看,MAC8DG可以看成是兩個普通可控硅的組合,但在其內部,具有7個晶體管以及很多電阻,引腳MT1,MT2為主端子,引腳G為柵極。圖3-14MAC8DG器件圖從圖3-10中可以看出,MAC8DG雙向可控硅的柵極與MOC3061的輸出端相連,當柵極(G極)接收到高電平信號時,可以在任何一個方向導通,主端子MT1,MT2不再有具體的陽極,陰極的劃分,而是判斷G極與主端子極相對于另外一個主端子極電壓的正負,如果為正,則前者為陽極,后者為陰極,反之,后者為陽極,前者為陽極。圖3-15為MAC8DG雙向可控硅的具體電路參數,400V類型,通態電流為8安培,可以滿足2500W電熱絲設計。圖3-15MAC8DG具體電路參數3.7蜂鳴器報警電路在本設計的主要設計指標中,需要達到超溫報警的要求,報警的方式有很多種,其中以聲音報警和光閃報警警示作用最為明顯,在這兩種報警方式中,本設計選擇聲音報警,其中較為簡單的是單音頻報警電路,即由三極管做驅動的壓電式蜂鳴器報警電路,電路圖如圖3-16所示。圖3-16報警電路蜂鳴器以直流電壓供電,可以直接連接在單片機5V電源上,且需要10毫安的驅動電流。本電路選用較為常見的NPN三極管S8050作為驅動,具體參數如圖3-17所示。集電極接VCC,發射極接蜂鳴器,基極接單片機,當單片機輸出高電平時,三極管導通為蜂鳴器通電,蜂鳴器報警,反之,當單片機輸出低電平時,三極管截止,蜂鳴器停止報警。圖3-17S8050具體電路參數4軟件設計4.1總體方案本課題是一種基于PID算法的加熱溫控系統設計,按照本設計的主要指標及研究方向,軟件部分主要涉及到以下幾個模塊:(1)主程序模塊;(2)DS18B20溫度采集程序模塊;(3)DHT11采集環境溫濕度程序模塊;(4)報警處理程序模塊;(5)增量式PID溫度算法模塊;(6)溫度控制模塊;(7)藍牙無線數據傳輸程序模塊。總體方案為首先移動端APP進行溫度閾值的設定和發送,開關打開,DS18B20讀取溫度數據,STM32F103ZETT6判定溫度是否大于溫度閾值,如果大于溫度閾值,單片機輸出高電平,觸發蜂鳴器報警。如果沒有超出溫度閾值,利用現有數據進行PID算法處理后,更改PWM值,控制電熱絲通斷,通過藍牙模塊實時傳輸加熱溫度。4.2程序流圖圖4-1系統總程序流圖4.3模塊說明4.3.1主程序模塊主程序模塊主要是對STM32F103ZET6單片機及其串口初始化,以及創建系統整體框架,初始化完成后,移動端設定溫度,完成后,檢測開關是否打開,系統開始運行,調用各個模塊,包括DS18B20溫度采集模塊、DHT11溫濕度采集模塊、超溫報警模塊、增量式PID控制器模塊、加熱模塊等。程序流程圖如4-2所示。圖4-2主程序流程圖4.3.2DS18B2O溫度采集模塊DS18B20溫度采集模塊主要負責溫度數據的采集,并且將溫度數據模擬信號轉換為電信號傳遞給STM32F103ZET6單片機,單片機將溫度數據與溫度閾值比較,判斷有沒有超溫,并將有無超溫狀態以及實時溫度數據,打包成數據包通過藍牙發給移動端顯示。圖4-3溫度采集模塊4.3.3DHT11溫濕度采集模塊DHT11溫度采集模塊主要負責環境溫濕度采集,與DS18B20相同,將溫度和濕度模擬信號,轉換為電信號傳遞給單片機,單片機將數據打包成數據包通過藍牙發送至移動端顯示。如圖4-4所示。圖4-4DHT11工作流圖4.3.4藍牙無線傳輸程序模塊藍牙模塊主要負責單片機與移動端之間的通信與數據收發,移動端APP將數據打包通過藍牙傳輸到CC2541模塊,CC2541再通過串口與單片機進行通信。在使用藍牙模塊時,要先將串口以及藍牙模塊都進行初始化,如果是第一次使用的話,要配置藍牙模塊的藍牙參數,波特率為115200bps,配置完成后,該藍牙模塊在周圍搜尋藍牙設備,嘗試建立連接,連接完成后,先進行復位,設置藍牙模塊波特率為115200bps,在完成以上步驟后,藍牙設備就可以通過藍牙與單片機進行無線通信,或者使用移動端上藍牙調試APP來實現遠程控制,藍牙調試APP通過數據包的方式與單片機進行數據的交互,具體的數據傳輸調試在下文會詳細解釋。圖4-5藍牙模塊流圖4.3.5增量式PID控制算法程序本設計選用的PID算法為增量式,這種控制方法本次的采樣輸入為控制器上一次的輸出,計算出兩次的偏差e(n)=r(n)-c(n),得到偏差后,利用已知的比例系數KP,積分系數KI=KPTTI,微分系數圖4.6增量式PID算法程序流圖PID控制器程序代碼如圖4-7所示。圖4-7PID控制器程序代碼從圖4-7可以看出,首先對PID控制器初始化,PID控制器通過調節PWM波的占空比來決定加熱的速率,當實際溫度比設定溫度低2攝氏度及以上時,PWM波占空比賦值為100,全速加熱,當實際溫度比設定溫度低在2攝氏度以內時,PWM波的占空比會隨著實際溫度與設定溫度的差值的減小而慢慢減小,控制加熱器不停通斷加熱,直到溫度數據穩定,PWM占空比為0,停止加熱。4.3.6報警處理程序當溫度傳感器讀取實際溫度后,將實際溫度與設定溫度進行比較,當實際溫度大于設定溫度時,單片機通過藍牙上傳超溫警告并輸出高電平,導通三極管,蜂鳴器報警,報警流程圖如圖4-8所示。圖4-8蜂鳴器流程圖5制作與調試5.1硬件電路制作5.1.1總體特點(1)原理比較簡單,但是由于STM32芯片體積有點小,且焊接引腳排布有點密集,自己焊接的話難度過大,所以選用STM32最小系統核心板,并且其他電路器件都是可以買到的集成模塊。(2)由于電路較為簡單,且考慮到設計成本以及個人能力方面,電路大部分器件都是已經集成的模塊,大部分電路都是與單片機用連線相連就可使用,不需要太多的焊接。5.1.2電路劃分電路主要劃分為單片機控制電路和加熱電路:控制電路主要是STM32F103ZET6單片機以及藍牙模塊,DS18B20傳感器,DHT11溫濕度傳感器,蜂鳴器等等其他外設;加熱電路主要包括大功率電熱絲以及其驅動電路;5.2使用工具5.2.1STM32CubeMXSTM32CubeMX是一個ST公司推出的配置工具,可以非常輕松配置STM32微處理器和微控制器,并且生成初始化C代碼。(1)需要新建工程,選擇所需的STM32微處理器或者控制器,以及后面需要用到的開發平臺,本畢業設計選擇的是STM32F103ZET6微處理器,后續開發平臺選用的是該公司的KeiluVision5。(2)為整個系統配置GPIO,為外圍設備分配引腳,包含有引腳沖突自動解決,功耗計算以及以及外圍電路實用程序等功能。具體引腳設置如圖6-1所示圖5-1STM32CubeMX引腳設置(3)配置時鐘,具有時鐘設置幫助器,具體使用內部晶振還是外部晶振,要看實際情況,外部晶振為8MHz,內部晶振同樣也為8MHz內部具體配置如圖5-2所示。圖5-2時鐘配置(4)經過上面的圖形配置,我們就可以點擊CREATECODE生成初始化代碼,生成工程后,找到main.c,打開就可以開始自己的功能設計。使用該配置工具可以節省一些需要我們查閱資料的時間,把更多的時間放在功能設計上,同時使用起來非常簡單,容易上手。5.2.2KeiluVision5KeiluVision5是由ARM公司推出的一款嵌入式開發軟件,專門為基于Cortex-M、Cortex-R4、ARM7、ARM9微型處理器設計,提供了一個完整的開發環境,功能強大,安全性較高,能夠滿足大多數的嵌入式應用設計使用。當STM32CubeMX完成配置后,在ProJectManager下找到Toolschain選擇MDK-ARM以及其系列版本,完成后就可以點擊CREATECODE生成工程文件,其中有初始化代碼。打開對應路徑上的文件夾,其中MDK-ARM文件中有剛剛生成的Keil文件,對工程進行必需的配置,以及添加自己所需的代碼。編譯與下載,編譯完成,如果沒有錯誤的話,就會生成.HEX文件,該文件就是我們要下載進單片機里的文件,最后通過專門的下載工具進行下載,我選擇的是FlyMcu下載器,下載完成后要進行復位,開發板才能正確使用。5.3調試為了防止電路調試過程太過繁雜,以至于無法發現并確認發生錯誤的地方,所以將電路各個模塊分開調試,主要有溫度讀取模塊調試,藍牙模塊調試,加熱模塊調試,移動端APP遙控器設計。5.3.1藍牙模塊調試由于所有數據都要通過藍牙傳輸至移動端APP顯示,所以在其他模塊調試之前進行調試。藍牙模塊調試,可以準確地確定藍牙模塊是否有問題,如果是第一次使用要對藍牙模塊的各項參數進行配置,比如波特率等等,藍牙模塊無法直接與PC端進行通信,在配置完成后通過USB轉串口芯片CH340,該芯片在本文3.1.4已詳細介紹,藍牙模塊可以與PC端通信,從而可以單獨對藍牙模塊進行調試。單片機與藍牙模塊調試在藍牙模塊配置完成后,可以讓藍牙模塊與單片機連接,通過單片機的串口USART1_TX與USART1_RX,兩個串口分別是發送和接收串口,USART1_RX接收藍牙模塊的數據,USART1_TX將數據發送至電腦,調試的時候,要使用PC端串口調試助手,通過收發數據,檢測兩個串口是否有問題,然后使用移動端連接藍牙模塊,使用移動端APP發送數據,觀察串口調試助手是否顯示正常。5.3.2溫度數據讀取模塊調試將DS18B20溫度傳感器與DHT11溫濕度傳感器分別與單片機正確連接,將DS18B20與DHT11分別放置在不同的測試環境讀取數據,溫度傳感器讀取被測液體數據,溫濕度傳感器讀取環境溫度,兩個傳感器將數據模擬信號轉換為電信號,傳送至單片機,由于藍牙模塊已調試完成,單片機程序將數據打包通過藍牙模塊發送至移動端APP顯示,觀察數據是否正常,有無太大的誤差。5.3.3加熱模塊調試以上部分調試完成后,開始對加熱系統進行調試,這部分調試主要是觀察加熱電路能否正常完成加熱任務,即經過PID算法控制后輸出的PWM波能否使電熱絲按照我所需要的加熱速率,加熱方式以及最后的穩定溫度所工作,由于沒有完成移動端APP控制程序,所以先將設定值指定,然后經過加熱,驗證PID算法和報警電路的完整性,觀察穩定后的溫度,更改PID參數,直到溫度誤差較小,具體數據如表5-1所示。表5-1實驗數據與誤差設定溫度/℃實際溫度/℃誤差/℃4039.630.375049.760.246059.550.457069.460.548079.850.155.4遠程遙控設計由于要實現遠程控制,需要在移動端進行調試,包括設定溫度值,系統開關等等,由于對Android得應用程序設計不太了解,所以選用以設計好的APP“藍牙調試器”進行遙控器界面設計,該APP在調試模式下采用了非常簡單的協議來確保傳輸的穩定性,即每次發送數據是都是要將要發送的數劇進行打包,在數據兩邊加入包頭、檢驗、包尾字節以避免傳輸過程中的混亂,數據包的結構以及數據類型如圖5-3所示。圖5-3數據包的結構以及數據類型本次設計所需的遠程遙控器界面設計如圖5-4所示。其中超溫、實溫、設溫、室溫、濕度均為接收數據,數據類型分別為bool、float、float、byte、byte,確認鍵是按鈕控件,數據類型為bool型發送數據,按下時數值為1,松開時為0,開關同樣是bool型發送數據,打開時數值為1,關閉時為0,設置時要確認已經在數據包,即“數據分配”界面中添加了這些變量。圖5-4遙控器界面6結論本設計方案達到了任務書的要求,實現了當前環

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論