51單片機+PID算法水溫控制系統設計

2020-12-17 電子工程世界網

本系統設計採用基於PID算法的單片機控制來實現水溫的調控。單片機控制部分採用AT89C51單片機為核心,採用軟體編程,實現用PID算法來控制PWM波的產生,繼而控制電爐的加熱來實現溫度控制。通過編程對PID各參數的調整,來達到提高加溫速度,減小超調的目的。


設計任務和主要內容


一升水在1kw電爐下加熱,要求水溫在一定範圍內可由人工設定,並能在環境溫度降低時自動調節,以保證設定的溫度基本不變。

  •                       系統設計原理
     

該水溫控制系統主要由AT89S52單片機控制系統、溫度採樣轉換器、溫度控制電路。鍵盤顯示電路等四部分組成,總體框圖如上。

(一)總體方案論證

根據題目的要求,我們提出了以下三種方案:

    方案1:採用傳統的二位模擬控制方法,選用模擬電路,用電位器設定給定值,採用上下限比較電路將反饋的溫度值與給定的值比較後,決定加熱或者不加熱。由於採用的模擬控制方式,系統受環境影響較大,不能實現複雜的控制算法使控制精度做得較高,而且不能用於顯示和鍵盤設定。

    方案2:採用單片機AT89S52為核心。採用數字溫度傳感器DS18B20採集溫度變化信號,將其轉換成數位訊號並通過單片機處理後去控制溫度,使其達到穩定。使用單片機具有編程靈活,控制簡單的優點,使系統能簡單的實現溫度的控制及顯示,並且通過軟體編程能實現各種控制算法使系統還具有控制精度高的特點。

    比較上述兩種方案,方案2明顯改善了方案1的不足,具有控制簡單、控制溫度精度高的特點,因此本設計電路採用方案2。


(二)各部分電路方案論證

1、溫度採樣部分

    方案1:採用熱敏電阻,可滿足35℃--95℃的測量範圍,但熱敏電阻精度、重複性和可靠性都比較差,對於檢測精度小於1℃的溫度信號是不適用的。

    方案2:採用數字溫度傳感器DS18B20。DS18B20是支持一線總線接口的溫度傳感器,具有抗幹擾性強,體積小,靈活經濟的特點。它的測量溫度範圍為-55℃~+125℃,在-10℃~+85℃範圍內,精度為±0.5℃且有9~12位解析度可調,使用電壓為3~5V無需備用電源。此外DS18B20集合了64位光刻ROM、溫度傳感器、非揮發的溫度報警觸發器TH和TL、配置寄存器,可以直接實現溫度的測量和轉換,無需再另接外部電路。

    方案3:採用溫度傳感器AD590。AD590具有體積小、質量輕、線性度好、性能穩定等優點。其測量範圍在-50℃~+150℃,滿刻度範圍誤差為   ±0.3℃,當電源電壓在5~10之間,穩定度為1%時誤差只有±0.01℃,此外,AD590是溫度—電流傳感器,對於提高系統抗幹擾能力有很大幫助。

     從系統電路設計的複雜度,性價比等方面考慮,決定選用方案2。


2、控制電路部分

方案1:可以用邏輯電路搭建一個控制器,實現PID控制。但系統還要附加顯示、溫度設定等功能,要附加很多電路,總體的電路設計和製作比較繁瑣。

   方案2:採用8031晶片,其內部沒有程序存儲器,需要進行外部拓展,這給電路增加了複雜度。

   方案3:本方案的CPU模塊採用2051晶片,其內部有2KB單元的程序存儲器,不需要外部拓展程序存儲器,但由於系統用到較多的I/O口,因此此晶片的資源不夠用。

   方案4:採用AT89S52單片機,其內部有8KB單元的程序存儲器,不需要外部擴展程序存儲器,而且其I/O口達32個,完全滿足本次設計需要。

   比較這4種方案,綜合的考慮單片機各部分資源,本次設計選用方案4。


3、加熱方案和功率電路的選擇

方案1:加熱的裝置,根據題目,可以使用電熱爐進行加熱,控制電爐的功率豈可控制加熱速度。水溫過高時,一般只能關掉電爐,讓其自然冷卻。為求更好的控制效果,也可以裝置一個小風扇,電爐加熱時風扇關閉,水溫超高時關閉電爐開啟風扇加速散熱。

  方案2:可以採用可控矽控制加熱器的工作。通過單片機產生PWM信號來控制可控矽的導通和關斷,控制加熱器的加熱時間,從而控制加熱器的功率。

   

從加熱的響應速度考慮,採用方案2。因為加熱的功率較大,故電源採用市電220伏。                                                

設計電路圖如圖2所示                                          




                                                          DS18B20

                                    

ISP下載口


AT89S52主控電路      MOC3041功率電路            LCD液晶顯示


  

PCB圖如下:


功率電路

主控電路


  本設計總體包括四個部分:主機控制部分、溫度採樣轉換部分、溫度控制部分、鍵盤顯示部分。

  • 溫度採樣轉換電路

   系統的溫度採樣轉換由DS18B20集成晶片來實現。電路圖如右

  DS18B20性能描述

    測量範圍在-55℃~+125℃,在-10℃~+85℃範圍內,精度為±0.5℃且有9~12位解析度可調,使用電壓為3~5V,無需備用電源。

DS18B20採用單總線通信技術,通信穩定可靠,且線路簡單,容易實現。

其基本的通信過程如下:

主機拉低單總線產生至少480us的Tx復位脈衝;

然後由主機釋放總線,進入Rx接收模式,主機釋放總線時會產生一個由低電平變為高電平的上升沿;

單總線器件檢測到該上升沿後,延時15~60us;  

單總線器件通過拉低總線60~240us來產生應答脈衝;

主機接收到從機的應答信號後,說明有單總線器件在線,然後主機就可以開始對從機進行ROM命令和功能命令操作。


DS18B20直接輸出數字量,可直接與單片機進行通信,讀取測溫數據,電路非常簡單。使用它,主要工作量集中在了單片機編程上。

此部分電路主要由光電耦合器MOC3041和雙向可控矽BTA16組成。以脈寬調製輸出控制電爐與電源的接通和斷開比例,以通斷控制調壓法控制電爐的輸入功率。MOC3041的內部集成了發光二極體、過零檢測電路和一個小功率雙向可控矽。當單片機PWM輸出為1,MOC3041中的發光二極體發光,用於過零檢測電路的同步作用,內部的雙向可控矽在過零後馬上導通,從而使觸發雙向可控矽BTA16導通,負載中有電流通過,反之當單片機PWM輸出為0,雙向可控矽截止,負載中沒有電流通過。光電耦合的耐壓值為400v,它的輸出級由過零觸發的雙向可控矽構成,它控制著主電路雙向可控矽的導通和關閉。


3、單片機控制部分

此部分是該系統的核心,系統的控制採用了單片機AT89S52。單片機AT89S52內部有8KB字節的可編程FLASH存儲器和256位元組的數據存儲器。故系統不必外拓存儲器,這樣大大減少了系統的硬體電路。電路原理圖如下:






4、按鍵及顯示部分

系統僅採用五個按鍵來進行溫度的控制。

在顯示方面,我們採用了LCD1602的液晶顯示模塊,通過軟體編程,可以實現所需要的顯示。此外,液晶模塊的使用也比較簡單,只要連接數據總線,選通埠和命令/數據埠即可。


系統的硬體設計儘量簡單,故工作任務主要在程序的設計上。
 

PID算法控制PWM輸出:
程圖如下

void timer0() interrupt 1 

   { 

uchar flag;

TH0=0xd8 ;                                   有

TL0=0xf0 ;

TR1=1 ;                                 無

P24=1 ;     //啟動輸出

CJ++;   

if(stemp>Wtemperature)       flag=0

{

ei=stemp-Wtemperature;                    flag=1

E=E+ei;

ex=ej-ei;

ej=ei;

if(ei<6)

{Ui=U0-Kp*(ei+Ti*E-Td*ex);}

else Ui=U0-Kp*ei;

flag=Ui/100;

switch(flag)

{

case 9:{TH1=0xdc;TL1=0xd8;}break;

case 8:{TH1=0xe2;TL1=0xb4;}break;

case 7:{TH1=0xe8;TL1=0x90;}break;

case 6:{TH1=0xec;TL1=0x78;}break;

case 5:{TH1=0xf0;TL1=0x60;}break;

case 4:{TH1=0xf2;TL1=0x54;}break;

case 3:{TH1=0xf4;TL1=0x48;}break;

case 2:{TH1=0xf8;TL1=0x30;}break;

case 1:{TH1=0xfc;TL1=0x18;}break;

case 0:{T

[

1

] [

2

] [

3

] [

4

]

關鍵字:51單片機  PID算法  水溫控制系統 編輯:什麼魚 引用地址:http://news.eeworld.com.cn/mcu/ic481354.html

推薦閱讀

51單片機霍爾自行車碼錶測速裡程表

#include <reg52.h>                 //調用單片機頭文件#define uchar unsigned char  //無符號字符型 宏定義        變量範圍0~255#define uint  unsigned int         //無符號整型 宏定義        變量範圍0~65535sbit clk = P1^3;&nbsp

發表於 2020-12-03

STC51單片機流水燈+外部中斷蜂鳴器

閒暇之餘做了一個簡單的流水燈,設計思路先將LED燈從0-7逐個顯示,然後再從7-0逐個顯示。如果產生外部中斷(即按鈕按下),則8個LED燈全亮,之後又恢復流水燈狀態。#include <reg52.h>#include <intrins.h>#define uchar unsigned char#define uint unsigned intsbit K=P3^2;//啟動按鈕,外部中斷uchar led;void delay(uint x)               {       

發表於 2020-12-03

51單片機8*8LED點陣翻頁 閃爍 靜止 平移顯示

基於單片機的LED點陣設計基本要求:利用單片機AT89C51設計LED點陣,顯示器能顯示不同的字符、圖形,能夠用獨立鍵控制不同字符的切換效果。創新:顯示效果可以是閃爍;靜止;平移等。任務區分:A——每隔1s閃爍1次B——循環平移,速度自定.單片機源程序如下:#include <reg52.h>sbit ADDR0 = P1^0;sbit ADDR1 = P1^1;sbit ADDR2 = P1^2;sbit ADDR3 = P1^3;sbit KEY   = P3^5;unsigned int cnt,m,stage,sec=1000;unsigned char code image

發表於 2020-12-03

8位數模轉換器DAC0832介紹及51單片機驅動程序

為(+10~-10)V。VREF端與D/A內部T形電阻網絡相連。(6)、Vcc :晶片供電電壓,範圍為(+5~ 15)V。(7)、AGND :模擬量地,即模擬電路接地端。(8)、DGND :數字量地。下面是單片機驅動程序:#include <reg51.h>#include <intrins.h>#define uchar unsigned char#define uint unsigned intsbit CS = P1^0;sbit CLK = P1^1;sbit DI = P1^2;sbit DO = P1^2;uchar code Tab[]={0x3F,0x06

發表於 2020-12-01

C51單片機全自動洗衣

源程序:#include<reg51.h>                                  //定義頭文件#define uint unsigned int                  //定義字符uint#define uchar unsigned char          &nbsp

發表於 2020-12-01

51單片機LCD12864顯示屏圖片中文英文顯示

顯示結果:圖片及字體取模單片機源程序如下:#include<reg51.h>#include<intrins.h>#include<stdlib.h>#define uchar unsigned char#define uint unsigned int//定義埠sbit A0=P2^0;  //定義埠是傳輸命令還是數據,sbit RW=P2^1;//定義埠是讀取還是寫入,sbit LCDEN=P2^2;//晶片使能啟動sbit RST=P2^3;//復位鍵uchar code dis1[]={/*--  文字:  我  --*//*--&nbsp

發表於 2020-12-01

相關焦點

  • 51單片機PID算法程序(三)增量式PID控制算法
    (2-5)將(2-4)與(2-5)相減並整理,就可以得到增量式PID控制算法公式為:        由(2-6)可以看出,如果計算機控制系統採用恆定的採樣周期增量式PID控制算法與位置式PID算法(2-4)相比,計算量小得多,因此在實際中得到廣泛的應用。位置式PID控制算法也可以通過增量式控制算法推出遞推計算公式:
  • 基於ARM與PID算法的開關電源控制系統
    電源行業也開始採用內部集成資源豐富的嵌入式控制器來構成大型開關電源的控制系統。將SAMSUNC公司的嵌入式ARM處理器S3C4480晶片,應用到開關電源的控制系統的設計中,採用C語言和少量彙編語言,就可以實現一種以嵌入式ARM處理器為核心、具有智能PID控制器以及觸控螢幕、液晶顯示器等功能的開關電源控制系統。
  • 基於PID算法的速熱式飲水機控制器設計
    針對目前市場上的速熱式飲水機存在的溫度控制問題和幹燒現象,設計基於STC1 5F204單片機的溫控系統,以水箱水溫、出水水溫、電源電壓和水流量為反饋量的PID控制,結合外圍控制電路,實現對飲用水的快速加熱和水溫的控制。重點介紹了控制器硬體電路的設計和工作原理以及程序的結構和實現。
  • 13個基於PID控制器的設計實例
    本文引用地址:http://www.eepw.com.cn/article/270117.htm  PID控制的原理及常用口訣總結  基於AT89S51單片機的PID溫度控制系統設計  本文對系統進行硬體和軟體的設計,在建立溫度控制系統數學模型的基礎之上,通過對PID控制的分析設計了系統控制器
  • 基於單片機技術的自動定量水溫控制器的設計方案
    1.2 溫度傳感器的選擇  DS18B20是把溫度信號直接轉化成串行的數位訊號的一種傳感器,並且它的電源和數據線可以直接與單片機的電源及單片機的I/O口相連,使用方便,並且成本比較低。  1.3 水泵與電磁閥比較與選擇  對於水泵的選擇,由於裝置容積較小,要求精度較高,所以採用功率相對較低,既可進行變壓變速調節,又可以實現微調的直流水泵。
  • 基於單片機的模糊控制系統
    採用傳統控制理論,不管是用經典控制理論還是用現代控制理論來設計一個控制系 統,都需要事先知道被控對象的精確數學模型。然而,在許多情況下被控對象(或生產過程)的精確數學模型很難建立;像建材工業生產中的水泥窯、玻璃窯,化學 生產中的化學反應過程,食品生產中的發酵過程,還有眾多爐類的熱處理過程。
  • 基於PID控制算法的氣味循跡車設計
    本文介紹了一種基於 STC12C5A60S2單片機設計的簡便智能氣味循跡小車。採用兩個氣味傳感器,根據濃度差判斷氣味流向,並通過PID算法控制舵機打出偏角,使小車循著氣味行走。整個硬體模塊的設計結構簡單靈活,通過實驗仿真,在室內時變氣流場的環境下,該小車能達到氣味循跡要求。
  • 單片機模糊PID自整定控制算法的實現及仿真
    此外,本文還嘗試將控制系統通過單片機的數位化處理,並在電液伺服實驗臺上進行了測試,測試證明:該方法能使系統的結構簡單化,操作靈活化,並可增強可靠性和適應性,提高控制精度和魯棒性,特別容易實現非線性化控制。  1 模糊PID自整定控制器的設計  本控制系統主要完成數據採集、速度顯示和速度控制等功能。
  • 新型PID算法--大林控制算法原理
    算法,即大林算法。該算法的最大特點是將期望的閉環響應設計成一階慣性加純延遲,然後反過來得到能滿足這種閉環響應的控制器。本文引用地址:http://www.eepw.com.cn/article/161107.htm對於如下圖所示的單迴路控制系統,Gc(z)為數字控制器,Gp(z)為被控對象,則閉環系統傳遞函數為
  • 數字PID控制算法在溫控系統中的應用
    本文主要採用數字PID控制,通過單片機PID控制算法的程序實現。1 數字式定時溫控系統 本文研製的數字式定時溫控系統主要完成數據採集,溫度、定時的顯示,溫度控制,溫度定時的設定以及報警等功能。核心控制器由單片機完成,採用數字PID控制算法進行過程控制。
  • 基於Fuzzy-PID的陀螺儀溫度控制系統設計
    控制部分採用Fuzzy-PID的複合控制使單片機輸出PWM脈衝,進而控制執行機構輸出到陀螺加熱器的電流量,實現陀螺加熱器的溫度自動調節控制。由於採用了模糊自適應PID控制算法,系統就可以在沒有操作者幹預的情況下根據控制系統的實際響應情況,自動實現對PID參數的最佳調整,改變PWM輸出波形的佔空比,合理地控制輸出,使陀螺加熱器的工作溫度保持恆定,實現自動控制,這也是設計該溫控制系統的關鍵所在。
  • pid算法控制溫度中變壓器的發熱及冷卻原理
    pid算法控制溫度中變壓器的發熱及冷卻原理   pid算法控制溫度,找無錫冠亞,pid算法控制溫度可以適應負荷變化,寬溫度範圍,-120℃~350℃。蒸汽專用的控制閥,換熱器等,運行可靠,壽命長。
  • 利用Fuzzy-PID的參數進行半導體雷射器恆溫控制系統的設計實現
    溫控系統本身為一個大滯後系統,純滯後可引起系統不穩定,且半導體雷射器的閾值電流對溫度變化相當靈敏,因此對其溫度控制系統的精度要求較高。設計中採用的Fuzzy-PID複合控制方式極大的彌補了單純採用PID算法的不足,既具有模糊控制魯棒性強、動態響應好、上升時間快、超調小的特點,又具有PID控制器的動態跟蹤品質和穩態精度。
  • 電子類-單片機類畢業設計論文創新選題
    >基於51單片機的多點溫度採集控制系統基於STC89C52的智能人性化鬧鐘基於風阻的機翼俯仰角模擬控制研究基於STC89C52的智能尋跡避障小車的設計基於STM32和SIM900A的煤氣洩漏報警器設計基於
  • 《電子發燒友網51單片機設計方案TOP10》
    主機硬體系統由AT89C51單片機、數碼顯示、RS 232數據通信等電路組成。其主機系統電路原理圖如圖2所示。這裡的顯示電路為2位,如果呼叫方大於100個,可進行擴展,顯示方式採用軟體控制。   對目前所有兼容lntel 8031指令系統的單片機,統l稱為51單片機。Intel的8031單片機是51單片機的始祖。8031單片機是目前應用最廣泛的8位單片機之一。
  • 51單片機整數二一十進位轉換的快速算法
    提出的快速算法思路是,首先求出整數中包含的1000的個數,方法是採用二進位整數的高6位作為其預估,再通過2次校正得到準確值。算法的關鍵是充分利用89C51單片機的兩條特殊指令――單字節乘和單字節除。其耗費時間不及使用sprintf()函數的1/10。
  • 基於ATmega8的直流電機PWM調速控制系統設計與實現
    三、控制系統硬體設計本調速控制系統,主要由ATmega8單片機、驅動電路、轉速檢測電路和通信接口電路等部分組成,如圖2所示。1.單片機通過比較預設速度與實測速度的偏差,經PID算法得出控制量,根據控制量改變PWM信號的輸出脈寬,經驅動電路功率放大後實現對電機速度的控制,然後循環進入下一個控制周期。3.驅動電路原理直流電機常要求工作在正反轉的場合中,就需要合用可逆PWM系統,可逆PWM系統可分為雙極性驅動可逆PWM系統和單極性驅動可逆PWM系統。
  • pid溫度控制系統優劣綜合對比分析
    pid溫度控制系統優劣綜合對比分析 ,「12vugqe」   pid溫度控制系統,找無錫冠亞,pid溫度控制系統可以適應負荷變化,寬溫度範圍,-120℃~350℃。蒸汽專用的控制閥,換熱器等,運行可靠,壽命長。
  • PID控制算法之精華
    PID是閉環控制算法  因此要實現PID算法,必須在硬體上具有閉環控制,就是得有反饋。比如控制一個電機的轉速,就得有一個測量轉速的傳感器,並將結果反饋到控制路線上,下面也將以轉速控制為例。  2.PID是比例(P)、積分(I)、微分(D)控制算法  但並不是必須同時具備這三種算法,也可以是PD,PI,甚至只有P算法控制。我以前對於閉環控制的一個最樸素的想法就只有P控制,將當前結果反饋回來,再與目標相減,為正的話,就減速,為負的話就加速。現在知道這只是最簡單的閉環控制算法。
  • 基於模糊控制技術的恆溫控制系統的設計
    本系統以此作為出發點,以單片機為核心控制器,研究模糊控制算法,實現了精確的恆溫控制。並設計了單片機與上位機的通信軟體,實現了遠程溫度控制和溫度曲線可視化的功能。  1 系統功能和硬體設計  本系統以水溫作為測量媒介,以AT89C51單片機作為核心控制器,以AD590溫度傳感器作為採集器,實現溫度的採集、控制、傳輸、顯示的功能。系統採用模糊算法對電熱絲的加熱時間進行控制,從而達到對水溫的控制。