基于PID電加熱爐溫度控制系統(tǒng)設計_第1頁
基于PID電加熱爐溫度控制系統(tǒng)設計_第2頁
基于PID電加熱爐溫度控制系統(tǒng)設計_第3頁
基于PID電加熱爐溫度控制系統(tǒng)設計_第4頁
基于PID電加熱爐溫度控制系統(tǒng)設計_第5頁
已閱讀5頁,還剩10頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、. z.基于PID電加熱爐溫度控制系統(tǒng)設計摘要電加熱爐隨著科學技術的開展和工業(yè)生產水平的提高,已經在冶金、化工、機械等各類工業(yè)控制中得到了廣泛應用,并且在國民經濟中占有舉足輕重的地位。對于這樣一個具有非線性、大滯后、大慣性、時變性、升溫單向性等特點的控制對象,很難用數學方法建立準確的數學模型,因此用傳統(tǒng)的控制理論和方法很難到達好的控制效果。單片機以其高可靠性、高性能價格比、控制方便簡單和靈活性大等優(yōu)點,在工業(yè)控制系統(tǒng)、智能化儀器儀表等諸多領域得到廣泛應用。采用單片機進展爐溫控制,可以提高控制質量和自動化水平。一、 緒論在本控制對象電阻加熱爐功率為8可W,由220V交流電供電,采用雙向可控硅進展

2、控制。本設計針對一個溫度區(qū)進展溫度控制,要求控制溫度*圍50350C,保溫階段溫度控制精度為正負1度。選擇適宜的傳感器,計算機輸出信號經轉換后通過雙向可控硅控制器控制加熱電阻兩端的電壓。其對象問溫控數學模型為:其中:時間常數Td=350秒,放大系數Kd=50,滯后時間=10秒,控制算法選用改PID控制實時溫度采樣實時溫度采樣顯示設定值單片機設定溫度電源控制電阻加熱爐圖1.1系統(tǒng)總體構造圖二、控制系統(tǒng)的建模和數字控制器設計輸入并采樣r(K)、c(K)開場輸入并采樣r(K)、c(K)開場計算偏差eK=r(K)-c(K)計算偏差eK=r(K)-c(K)計算計算 u(k)=qe(k)+qe(k-1)+

3、qe(k-2)存存u(k)以備輸出參數序號e(k-1)參數序號e(k-1)e(k-2)調整 e(k)e(k-1)返回返回圖2 PID算法流程圖數字PID控制算法 PID控制器是通過計算機PID控制算法程序實現的。計算機直接數字控制系統(tǒng)大多數是采樣-數據控制系統(tǒng)。進入計算機的連續(xù)-時間信號,必須經過采樣和整量化后,變成數字量,方能進入計算機的存貯器和存放器,而在數字計算機中的計算和處理,不管是積分還是微分,只能用數值計算去逼近。受控對象受控對象PID位置算法reuy+-圖2.1位置PID控制算法簡化示意圖 在數字計算機中,PID控制規(guī)律的實現,也必須用數值逼近的方法。當采樣周期相當短時,用求和代

4、替積分,用差商代替微商,使PID算法離散化,將描述連續(xù)時間PID算法的微分方程,變?yōu)槊枋鲭x散-時間PID算法的差分方程。 用矩形積分時,有 1 用差分代替微分2 由上式得 (3) 式中 u0控制量的基值,即k=0時的控制;u(k)第k個采樣時刻的控制;KP比例放大系數;KI積分放大系數;KD微分放大系數;TS采樣周期。 式3是數字PID算法的非遞推形式,稱全量算法。算法中,為了求和,必須將系統(tǒng)偏差的全部過去值e(j)j=1,2,3,. ,k都存儲起來。這種算法得出控制量的全量輸出u(k),是控制量的絕對數值。在控制系統(tǒng)中,這種控制量確定了執(zhí)行機構的位置。當執(zhí)行機構需要的不是控制量的絕對值,而是

5、控制量的增量例如去驅動步進電動機時,需要用PID的增量算法。yyuerPID增量算法受控對象-+步進電機u由位置算法求出 再求出 兩式相減,得出控制量的增量算法 (4) 式(4)稱為增量式PID算法。對增量式PID算法4歸并后,得 (5) 從式5看出,數字增量式PID算法,只要貯存最近的三個誤差采樣值e(k),e(k-1),e(k-2)就足夠了。如果計算機系統(tǒng)采用恒定的采樣周期T,一旦確定q,q,q只要使用前后測量三次的偏差值,就可以由上式求出控制量。typedefstructPIDIntSetPoint;/設定目標DesiredValueLongSumError;/誤差累計doublepro

6、potion;/比例常數PropotionConstDoubleintegral;/積分常數IntegralConstDoublederivative;/微分常數DerivativeConstintLastError;/Error-1IntPrevError;/Error-2PID;ststicPIDsPID;/*InitializePIDStructurePID參數初始化*/voidIncPIDInit(void)sptr-SumError=0;sptr-LastError=0;/Error-1sptr-PrevError=0;/Error-2sptr-Propotion=0;/比例常數Pr

7、opotionalConstsptr-integral=0;/積分常數IntegralConstsptr-derivative=0;/微分常數DerivativeConstsptr-SetPoint=0;/*增量式PID計算局部*/intIncPIDCalc(intNe*tPoint)registerintierror,iIncpid;/當前誤差ierror=sptr-SetPoint-Ne*tPoint;/增量計算三硬件的設計和實現3.1AT89C51系列根本組成及特性AT89C51是一種帶4K字節(jié)FLASH存儲器FPEROMFlash Programmable and Erasable R

8、ead Only Memory的低電壓、高性能CMOS 8位微處理器,俗稱單片機。AT89C2051是一種帶2K字節(jié)閃存可編程可擦除只讀存儲器的單片機。圖3.1AT89C51管腳管腳說明:VCC:供電電壓。 GND:接地。P0口:P0口為一個8位漏級開路雙向I/O口,每腳可吸收8TTL門電流。當P0口的管腳第一次寫1時,被定義為高阻輸入。P0能夠用于外部程序數據存儲器,它可以被定義為數據/地址的低八位。在FIASH編程時,P0 口作為原碼輸入口,當FIASH進展校驗時,P0輸出原碼,此時P0外部必須接上拉電阻。 P1口:P1口是一個內部提供上拉電阻的8位雙向I/O口,P1口緩沖器能接收輸出4T

9、TL門電流。P1口管腳寫入1后,被內部上拉為高,可用作輸入,P1口被外部下拉為低電平時,將輸出電流,這是由于內部上拉的緣故。在FLASH編程和校驗時,P1口作為低八位地址接收。 P2口:P2口為一個內部上拉電阻的8位雙向I/O口,P2口緩沖器可接收,輸出4個TTL門電流,當P2口被寫1時,其管腳被內部上拉電阻拉高,且作為輸入。并因此作為輸入時,P2口的管腳被外部拉低,將輸出電流。這是由于內部上拉的緣故。P2口當用于外部程序存儲器或16位地址外部數據存儲器進展存取時,P2口輸出地址的高八位。在給出地址1時,它利用內部上拉優(yōu)勢,當對外部八位地址數據存儲器進展讀寫時,P2口輸出其特殊功能存放器的內容

10、。P2口在FLASH編程和校驗時接收高八位地址信號和控制信號。 P3口:P3口管腳是8個帶內部上拉電阻的雙向I/O口,可接收輸出4個TTL門電流。當P3口寫入1后,它們被內部上拉為高電平,并用作輸入。作為輸入,由于外部下拉為低電平,P3口將輸出電流ILL這是由于上拉的緣故。 P3口也可作為AT89C51的一些特殊功能口,如下表所示: 口管腳備選功能:P3.0 R*D串行輸入口 P3.1 T*D串行輸出口 P3.2 /INT0外部中斷0 P3.3 /INT1外部中斷1 P3.4 T0記時器0外部輸入 P3.5 T1記時器1外部輸入 P3.6 /WR外部數據存儲器寫選通 P3.7 /RD外部數據存

11、儲器讀選通 P3口同時為閃爍編程和編程校驗接收一些控制信號。 RST:復位輸入。當振蕩器復位器件時,要保持RST腳兩個機器周期的高電平時間。 ALE/PROG:當訪問外部存儲器時,地址鎖存允許的輸出電平用于鎖存地址的低位字節(jié)。在FLASH編程期間,此引腳用于輸入編程脈沖。在平時,ALE端以不變的頻率周期輸出正脈沖信號,此頻率為振蕩器頻率的1/6。因此它可用作對外部輸出的脈沖或用于定時目的。然而要注意的是:每當用作外部數據存儲器時,將跳過一個ALE脈沖。如想制止ALE的輸出可在SFR8EH地址上置0。此時, ALE只有在執(zhí)行MOV*,MOVC指令是ALE才起作用。另外,該引腳被略微拉高。如果微處

12、理器在外部執(zhí)行狀態(tài)ALE制止,置位無效。 /PSEN:外部程序存儲器的選通信號。在由外部程序存儲器取指期間,每個機器周期兩次/PSEN有效。但在訪問外部數據存儲器時,這兩次有效的/PSEN信號將不出現。 /EA/VPP:當/EA保持低電平時,則在此期間外部程序存儲器0000H-FFFFH,不管是否有內部程序存儲器。注意加密方式1時,/EA將內部鎖定為RESET;當/EA端保持高電平時,此間內部程序存儲器。在FLASH編程期間,此引腳也用于施加12V編程電源VPP。 3.2鍵盤模塊在本次設計當中,輸入設備采用4*4矩陣鍵盤。當設定鍵按下時觸發(fā)鍵盤中斷效勞程序,由程序程控掃描法確定那個鍵按下并執(zhí)行

13、相應的動作。程控掃描的任務是:(1)首先判斷是否有鍵按下。方法:使所有的行輸出均為低電平,然后從端口A讀入列值。如果沒有鍵按下,則讀人值為FFH如果有鏈按下則不為FFH。(2)去除鍵抖動。方法:延時1020 ms,再一次判斷有無鍵按下,如果此時仍有鍵按下,則認為鍵盤上確實有鍵處于穩(wěn)定閉合期。(3)假設有鍵閉合,則求出閉合鍵的鍵值。方法:對鍵盤逐行掃描。程序中需等閉合鍵釋放后才對其進展處理。3.3設計輸入輸出通道輸入通道:因為所控的實際溫度在50 350,即35050300所以選用8位A/D轉換器,其分辨率約為1.5/字,再加放大器偏置措施實現。通過調整放大器的零點來實現偏置這里采用一般中速芯片

14、ADC0809。ADC0809是帶有8位A/D轉換器,8路多路開關以及微型計算機兼容的控制邏輯的CMOS組件,其轉換方法為逐次逼近型。8路的模擬開關由地址鎖存器和譯碼器控制,可以在8個通道中任意訪問一個通道的模擬信號。這種器件無需進展零位和滿量程調整。由于多路開關的地址輸入局部能夠進展鎖存和譯碼,而且其三態(tài)TTL輸出也可以鎖存,所以它易于與微型計算機接口。其具有較高的轉換速度和精度,受溫度影響較小,能較長時間保證精度,重現性好,功耗較低,故用于過程控制是比擬理想的器件。ADC0809應用接線圖輸出通道:據其實際情況,D/A轉換器的位數可低于A/D轉換器的位數,因為一般控制系統(tǒng)對輸出通道分辨率的

15、要求比輸入通道的低,所以這里采用常用的DAC0832芯片。DAC0832是8位D/A轉換器,與微處理器完全兼容。期間采用先進的CMOS工藝,因此功耗低,輸出漏電流誤差較小。它的內部具有兩級輸入數據緩沖器和一個R-2RT型電阻網絡,因DAC0832電流輸出型D/A轉換芯片,為了取得電壓輸出,需在電流輸出端接運算放大器,Rf為為運算放大器的反應電阻端。雙極性電壓輸出的D/A轉換電路通常采用偏移二進制碼、補碼二進制碼和符號一數值編碼。只要在單極性電壓輸出的根底上再加一級電壓放大器,并配以相關電阻網絡就可以構成雙極性電壓輸出。在上圖中,運算放大器A2的作用是把運算放大器A1的單向輸出電壓轉變?yōu)殡p向輸出

16、。3.4電源局部本系統(tǒng)所需電源有220V交流市電、直流5V電壓和低壓交流電,故需要變壓器、整流裝置和穩(wěn)壓芯片等組成電源電路。電源變壓器是將交流電網220V的電壓變?yōu)樗枰碾妷褐?,然后通過整流電路將交流電壓變?yōu)槊}動的直流電壓。由于此脈動的直流電壓還含有較大的紋波,必須通過濾波電路加以濾除,從而得到平滑的直流電壓。但這樣的電壓還隨電網電壓波動一般有+-10%左右的波動、負載和溫度的變化而變化。因而在整流、濾波電路之后,還需要接穩(wěn)壓電路。穩(wěn)壓電路的作用是當電網電壓波動、負載和溫度變化時,維持輸出直流電壓穩(wěn)定。整流裝置采用二極管橋式整流,穩(wěn)壓芯片采用78L05,配合電容將電壓穩(wěn)定在5V,供控制電路、

17、測量電路和驅動執(zhí)行電路中弱電局部使用。除此之外,220V交流市電還是加熱電阻兩端的電壓,通過控制雙向可控硅的導通與截止來控制加熱電阻的功率。低壓交流電即變壓器二次側的電壓,通過過零檢測電路檢測交流電的過零點,送入單片機后,由控制程序決定雙向可控硅的導通角,以到達控制加熱電阻功率的目的。四、軟件設計4.1系統(tǒng)主程序本系統(tǒng)的應用程序主要由主程序、中斷效勞程序和子程序組成。主程序的任務是對系統(tǒng)進展初始化,實現參數輸入,并控制電加熱爐的正常運行。主程序主要由系統(tǒng)初始化、數據采集及處理、智能推理等局部組成。系統(tǒng)初始化包括設置棧底、工作存放器組、控制量的初始值、采樣周期、中斷方式和狀態(tài)、定時器的工作方式以

18、及8255的初始化、MA*1232的初始化等。數據采集及處理主要包括實時采集電加熱爐的爐溫信號,計算出實際爐溫與理想值的差值以及溫差的變化率,并對爐溫信號進展濾波和限幅處理。開場開場系統(tǒng)的初始化溫度數據采集及處理溫度值顯示計算溫差ek和溫差變化率智能控制算法程序控制輸出求出輸出控制量完畢NY圖4.1系統(tǒng)主程序 4.2模數轉換模塊ADC0809是一個典型的逐次逼近型8位A/D轉換器。它由8路模擬開關、8位A/D轉換器、三態(tài)輸出鎖存器及地址鎖存譯碼器等組成。它允許8路模擬量分時輸入,轉換后的數字量輸出是三態(tài)的總線型輸出,可以直接與單片機數據總線連接。ADC0809采用+5V電源供電,外接工作時鐘。

19、當典型工作時鐘為500KHz時,轉換時間約為128us.時鐘信號:由于ADC0809無片選端,因此電路增加了或非門74LS02,以便對ADC0809進展讀/寫控制。單片機采用6MHz/s的晶振,ALE輸出66MHz/s時鐘信號,經74LS74觸發(fā)器2分頻,得到500KHz的時鐘信號,與ADC0809的時鐘端CLK相連。通道選擇:三位通道選擇端ADDA、ADDB、ADDC與數據線P1口的低三位P1.0、P1.1、P1.2相連,用數據線進展通道選擇,由P1.0、P1.1、P1.2三位決定選擇那一通道。ADC0809啟動:ADC0809的啟動端START、地址所存端ALE均為高電平有效。將START

20、和ALE連在一起,與74LS02的輸出端相連?;蚍情T74LS02的兩個輸入端/WR和P3.5均為低電平時,其輸出為高電平,執(zhí)行外部I/O口的寫操。開場開場將PSW壓棧調顯示程序讀A/D結果置位狀態(tài)位F0置位狀態(tài)位F0關閉報警F0是否等于零調PID控制算法程序報警子程序PSW出棧并返回輸出控制量啟動定時器T1溢出標志TF1是否為零設定值與AD結果比擬交流電是否過零結果=0結果or設定值的20%-20%結果20%F0=0F0=0NYNY 圖A/D轉換完畢中斷效勞程序流程圖按鍵檢測與處理流程圖如圖所示是否有按鍵N是否有按鍵Y延時延時10-20ms是否有按鍵是否有按鍵N按鍵已釋放按鍵已釋放NY獲得鍵值

21、,鍵處獲得鍵值,鍵處完畢完畢圖按鍵檢測與處理流程圖編寫D/A轉換控制程序:DAC0832實現D/A轉換,可以采用下面程序段。設定要轉換的數據放在1000H單元中。MOVB*,1000HMOVAL,B*取轉換資料MOVD*,PORTAPORTA為D/A轉換端口地址OUTD*,AL4.3LED顯示模塊圖4.3顯示子程序4.4數字控制算法子程序流程圖4.5報警模塊根據設計要求,在保溫階段,溫度控制精度為正負1度,故當溫度下降或上升2度時為故障狀態(tài),需要報警提醒。所以在電路設計上應用了蜂鳴器和發(fā)光二極管,系統(tǒng)正常運行時綠色發(fā)光二極管點亮,當出現故障時紅色發(fā)光二極管點亮并且蜂鳴器鳴叫,提醒操作人員注意。

22、報警狀態(tài)可通過按鍵復位和系統(tǒng)恢復正常后自動復位開場開場置報警位P3.4子程序返回去除報警狀態(tài)位F0圖4.4報警子程序4.6程序清單 主程序ORG 0000HAJMP MAINORG 0003HAJMP KEYSORG 000BHAJMP PIT0ORG 001BHAJMP PIT1 ;中斷入口及優(yōu)先級MAIN: MOV SP,#00H CLR 5FH :清上下限越限標志 MOV A,#00HMOV R7,#09HMOV R0,#28HLP1:MOV R0,AINC R0 DJNZ R7,LP1MOV R7,#06HMOV R0,#39HLP2:MOV R0,AINC R0DJNZ R7,LP2

23、MOV R7,#06HMOV RO,#50HLP3:MOV R0,AINC R0DINZ R7,LP3 ;清顯示緩沖區(qū)MOV 33H,#00HMOV 34H,#00H ;賦KP上下字節(jié)MOV 35H,#00HMOV 36H,#00H ; 賦KI上下字節(jié)MOV 37H,#00H MOV 38H,#00H ; 賦KD上下字節(jié)MOV 42H,#00HMOV 43H,#00H ;賦K上下字節(jié)MOV TMOD,#56H ;T0方式2,T1方式1計數MOV TLO,#06HMOV THO,#06H MOV 25H,#163H ;設定值默認值350SETB TR0 ;鍵盤高優(yōu)先級SETB ET0SETBE*

24、0SETB EA ;開鍵盤T0。T1中斷LOOP:MOV R0,#56H MOV R1,#55H LCALLSCACOV ;標度轉化 MOV R0,#53H LCALLDIR NOP LCALLDLY10MS NOP LCALLDLY10MS AJMP LOOP;等中斷 鍵盤子程序KEYS:CLR E*0 CLR EA PUSH PSW PUSH ACC ;關中斷 LCALLDLY10MS ;消抖CC: P3.2 AASETB 5DH ;置顯示設定值溫度值標志MOV A,25H ;取運算位的值MOV B,#10H ;BCD碼轉化DIV A BMOV 52H,AMOV A, BMOV 51H,

25、AMOV R0,#50HLCALL DIR ;顯示設定溫度NOPLCALLDLY10MSNOPLCALL DLY10MS P1.7 ,BBMOV R1,#25HLCALL DAAD1NOP LCALL DLY10MS AJMP CCBB: P1.6 CCMOV R1,#25HLCALL DEEC1NOPLCALL DLY10MSAJMP CCAA: POP ACCPOP PSWSETB E*0SETB EA ;出棧RETI 顯示子程序DIR: MOV SCON ,#00H ;置串行口移位存放器狀態(tài)SETB P1.4 ;開顯示 5DH,DL1 ;顯示設定溫度DL2: MOV DPTR,#SEGT

26、DL0: MOV A,R0MOVC A,A+DPTRMOV SBUF ,ALOOP1: JNB TI, LOOP1 CLR TIINC R0MOV A,R0MOVC A,A+DPTRANL A, #7FH ;使數帶小數點MOV SBUF ,ALOOP2: JNB TI,LOOP2CLR TIINC R0MOV A,R0MOVC A,A+DPTRMOV SBUF,ALOOP3: JNB TI,LOOP3CLR TICLR P1.4CLR 5DHRETDL1: MOV 50H,#0AH ;小數位黑屏 AJMP DL2SEGT: DB 0C0H ,0F9H,0A4H,0B0H,99H,92H,82H

27、,0F8H,80H,90H,0FFH T0中斷子程序PTT0: CLR EAPUSH ACCPUSH PSWPUAH DPLPUSH DPHSETB EA ;壓棧后開中斷響應鍵盤PPP: LCALLSMAP ;采樣數據LCALL FILTER ;數字濾波MOV A,2AH ;取采樣值CJNE A,#07H,AAA ;下限48比擬AJMP BBBAAA: JC CCC ;小于48度轉CJNEA,#0FEH ,DDD ;上限355比擬AJMP BBB ;轉至48355正常*圍處理DDD: JC BBCLR P1.2 ;大于355黃燈亮SETB 5EHCLR P1.1 ;置標志 啟動風扇AJMP P

28、PPCCC: CLR P1.3 ;小于48紅燈亮SETB 5FHBBB: CLR P1.0 ;置標志啟動電爐AJMPPPPSETB P1.0SETB P1.1SETB P1.2SETB P1.3CLR 5EHCLR 5FH ;50350之間正常LCALL PIDJNB 20H,EEF ;設定溫度小于實際值轉到風扇MOV A,29HLCALLFFFCLR P1.0LOOP10: MOV R0,#56H ;存放相乘結果的首址MOV R1,#55H ;賦顯示緩沖區(qū)最高位地址LCALL SCACOV ;標度轉化 MOV R0,#53H;;賦顯示首址 CLR DIR D5H,LOOP10 ;等待T1中斷 CLR EA POP DPH POP DPL POP PSWSETB EAPOP ACCRETIEEE: MOV A,28H ;風扇處理 LCALL FFF CLR P1.1AJMP LOOP10FFF: CRL A ;根據PID結果計算T1初值 INC A MOV TL1,A MOV TH1,#0FFHSETB PI1 SETB TR1 SETB ET1 RET采樣子程序SWAP: MOV R0,#20H MOV R1,#03HSAW1: MOV DPTR,#7FF8H MOV* D

溫馨提示

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

評論

0/150

提交評論