溫控制系統(tǒng)設(shè)計計算機控制技術(shù)課程設(shè)計_第1頁
溫控制系統(tǒng)設(shè)計計算機控制技術(shù)課程設(shè)計_第2頁
溫控制系統(tǒng)設(shè)計計算機控制技術(shù)課程設(shè)計_第3頁
溫控制系統(tǒng)設(shè)計計算機控制技術(shù)課程設(shè)計_第4頁
溫控制系統(tǒng)設(shè)計計算機控制技術(shù)課程設(shè)計_第5頁
已閱讀5頁,還剩28頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、學(xué) 號: 計算機控制技術(shù)課程設(shè)計題 目溫度控制系統(tǒng)設(shè)計學(xué) 院專 業(yè)班 級姓 名指導(dǎo)教師2016年月日課程設(shè)計任務(wù)書學(xué)生姓名: _ 專業(yè)班級: _ 指導(dǎo)教師: 周申培 工作單位: _ 題 目: 溫度控制系統(tǒng)設(shè)計初始條件:被控對象為電爐,采用熱阻絲加熱,利用大功率可控硅控制器控制熱阻絲兩端所加的電壓大小,來改變流經(jīng)熱阻絲的電流,從而改變電爐爐內(nèi)的溫度??煽毓杩刂破鬏斎霝?5伏時對應(yīng)電爐溫度0300,溫度傳感器測量值對應(yīng)也為05伏,對象的特性為積分加慣性系統(tǒng),慣性時間常數(shù)為T140秒。要求完成的主要任務(wù): (包括課程設(shè)計工作量及其技術(shù)要求,以及說明書撰寫等具體要求)1設(shè)計溫度控制系統(tǒng)的計算機硬件系統(tǒng)

2、,畫出框圖;2編寫積分分離PID算法程序,從鍵盤接受Kp、Ti、Td、T及的值;3計算機仿真被控對象,編寫仿真程序;4通過數(shù)據(jù)分析Td改變時對系統(tǒng)超調(diào)量的影響。5. 撰寫設(shè)計說明書。課程設(shè)計說明書應(yīng)包括:設(shè)計任務(wù)及要求;方案比較及認(rèn)證;系統(tǒng)濾波原理、硬件原理,電路圖,采用器件的功能說明;軟件思想,流程,源程序;調(diào)試記錄及結(jié)果分析;參考資料;附錄:芯片資料,程序清單;總結(jié)。時間安排:2016年5月23日2016年6月3日摘要比例-積分-微分控制(簡稱PID控制),是控制系統(tǒng)中應(yīng)用最為廣泛的一種控制規(guī)律。實際運行的經(jīng)驗和理論的分析都表明,這種控制規(guī)律對許多工業(yè)過程進(jìn)行控制時,都能得到滿意的效果。利

3、用計算機可以很好地使用PID算法對控制對象進(jìn)行控制,具有較高的精度,并且可以很方便的改變PID參數(shù),以達(dá)到不同的控制效果。本設(shè)計的控制對象為電爐,控制量為電爐溫度,利用單片機對大功率可控硅導(dǎo)通角的控制,可以很方便地改變電熱絲兩端的電壓,從而起到調(diào)節(jié)溫度的作用。而熱電偶配合單片機編程,能夠較精確地得到爐溫,使單片機能夠?qū)崟r發(fā)出控制信號,快速將爐溫調(diào)節(jié)為給定值。當(dāng)外界出現(xiàn)干擾使?fàn)t溫發(fā)生變化時,單片機能夠通過PID算法快速使?fàn)t溫回到給定值。為了使PID控制更加穩(wěn)定可靠,本設(shè)計加入了積分分離的改進(jìn)措施,當(dāng)偏差較大時取消積分作用,利用PD控制快速使系統(tǒng)趨于穩(wěn)定;當(dāng)偏差小于某一個值時,加入積分作用,以消除

4、靜差。利用Matlab軟件,可以通過仿真得到Td改變對系統(tǒng)超調(diào)量的影響。關(guān)鍵詞:PID控制;Matlab;系統(tǒng)超調(diào)量目錄1 設(shè)計任務(wù)及要求11.1 設(shè)計任務(wù)要求11.2 任務(wù)要求分析12 方案比較及認(rèn)證22.1 方案設(shè)計22.2 方案認(rèn)證33 系統(tǒng)軟件設(shè)計43.1 PID控制算法43.2 積分分離的PID控制控制算法54 系統(tǒng)硬件設(shè)計64.1 系統(tǒng)濾波原理64.2 硬件設(shè)計原理65 系統(tǒng)仿真85.1 仿真程序及圖形85.2 仿真結(jié)果95.3 結(jié)果分析126 心得體會13參考文獻(xiàn)14附錄A 芯片資料15附A1 ADC0809芯片功能15附A2 DAC0832芯片功能16附A3 AT89C51單片

5、機18附錄B 程序清單20附B1 單片機程序代碼20附B2 仿真程序代碼27本科生課程設(shè)計成績評定表281 設(shè)計任務(wù)及要求 1.1 設(shè)計任務(wù)要求被控對象為電爐,采用熱阻絲加熱,利用大功率可控硅控制器控制熱阻絲兩端所加的電壓大小,來改變流經(jīng)熱阻絲的電流,從而改變電爐爐內(nèi)的溫度??煽毓杩刂破鬏斎霝?5伏時對應(yīng)電爐溫度0300,溫度傳感器測量值對應(yīng)也為05伏,對象的特性為積分加慣性系統(tǒng),慣性時間常數(shù)為T140秒。要求完成的主要任務(wù):1設(shè)計溫度控制系統(tǒng)的計算機硬件系統(tǒng),畫出框圖;2編寫積分分離PID算法程序,從鍵盤接受Kp、Ti、Td、T及的值;3計算機仿真被控對象,編寫仿真程序;4通過數(shù)據(jù)分析Td改

6、變時對系統(tǒng)超調(diào)量的影響。5. 撰寫設(shè)計說明書。1.2 任務(wù)要求分析本系統(tǒng)的控制對象為電爐,被控量為溫度,利用溫度傳感器實時檢測電爐溫度;將測得的數(shù)據(jù)經(jīng)過A/D轉(zhuǎn)換后送入計算機;計算機系統(tǒng)將檢測得到的溫度與爐溫給定值進(jìn)行比較,并計算偏差;按照預(yù)置的控制算法,對可控硅控制器的導(dǎo)通角進(jìn)行調(diào)節(jié),從而可以控制熱阻絲兩端的電壓,起到溫度調(diào)節(jié)的作用。為了實現(xiàn)數(shù)據(jù)采集、轉(zhuǎn)換、處理以及PID算法控制,并通過鍵盤對溫度設(shè)定值和PID控制參數(shù)進(jìn)行修正,因此可以使用單片機或PLC。由于本次控制對象為電爐,其時間常數(shù)較大,因此采用周期不宜過小,避免系統(tǒng)響應(yīng)過于頻繁,降低計算機系統(tǒng)的效率并使控制品質(zhì)變壞;但也不能太大,否

7、則會使誤差不能及時消除。2 方案比較及認(rèn)證2.1 方案設(shè)計用溫度傳感器來檢測爐的溫度,將爐溫轉(zhuǎn)變成毫伏級的電壓信號,經(jīng)溫度變送器放大并轉(zhuǎn)換成電流信號。由電阻網(wǎng)絡(luò)將電流信號變成電壓信號,送入A/D轉(zhuǎn)換器,通過采樣和模數(shù)轉(zhuǎn)換,所檢測到的電壓信號和爐溫給定值的電壓信號送入計算機程序中作比較,得出給定值與實際值之間的偏差,并與進(jìn)行比較,從而確定算法。計算得到的控制量輸出給可控硅控制器,改變可控硅的導(dǎo)通角,達(dá)到調(diào)壓的目的,是電阻絲兩端的電壓增大或較小,進(jìn)而實現(xiàn)對爐溫的控制。方案一:使用PLC直接對鐵塊溫度進(jìn)行PID調(diào)節(jié)。其基本思想為,觸摸屏要設(shè)定溫度給PLC,PLC控制光耦電路,然后對電阻絲進(jìn)行控制加熱

8、。具體流程為,由觸摸屏設(shè)定溫度給PLC,由PLC通過電路控制鐵塊的加熱或不加熱,熱電偶把溫度以電壓的方式經(jīng)過AD轉(zhuǎn)換反饋給PLC,PLC再經(jīng)過PID來控制溫度。其結(jié)構(gòu)框圖如圖2-1所示。圖2-1 方案一設(shè)計結(jié)構(gòu)圖方案二:單片機熱電偶溫度自動控制。主要的控制芯片采用AT89C51,要求傳感器測量的電壓范圍和可控硅控制器的電壓在0-5,所以A/D與D/A轉(zhuǎn)換芯片采用ADC0809和DAC0832。爐溫控制在0300內(nèi),因此采用鎳鉻-銅鎳熱電偶,同時選用運算放大器將信號放大。圖2-2 方案二設(shè)計結(jié)構(gòu)圖2.2 方案認(rèn)證根據(jù)設(shè)計要求,綜合考慮選擇方案二。在系統(tǒng)中,利用熱電偶測得電阻爐實際溫度并轉(zhuǎn)換成毫伏

9、級電壓信號。該電壓信號經(jīng)過溫度檢測電路轉(zhuǎn)換成與爐溫相對應(yīng)的數(shù)字信號進(jìn)入單片機,單片機進(jìn)行數(shù)據(jù)處理后,通過液晶顯示器顯示溫度,同時將溫度與設(shè)定溫度比較,根據(jù)設(shè)定計算出控制量,根據(jù)控制量通過控制繼電器的導(dǎo)通和關(guān)閉從而控制電阻絲的導(dǎo)通時間,以實現(xiàn)對爐溫的控制。程序流程圖如圖2-3所示。圖2-3 程序流程圖3 系統(tǒng)軟件設(shè)計3.1 PID控制算法模擬PID控制器的控制規(guī)律為(3-1)在PID調(diào)節(jié)中,比例控制能迅速反應(yīng)誤差,從而減小誤差,但比例控制不能消除穩(wěn)態(tài)誤差,KP的加大,會引起系統(tǒng)的不穩(wěn)定;積分控制的作用是:只要系統(tǒng)存在誤差,積分控制作用就不斷地積累,輸出控制量以消除誤差,因而,只要有足夠的時間,積

10、分控制將能完全消除誤差,積分作用太強就會使系統(tǒng)超調(diào)增大,甚至使系統(tǒng)出現(xiàn)振蕩;微分控制可以減小超調(diào)量,克服振蕩,使系統(tǒng)的穩(wěn)定性提高,同時加快系統(tǒng)的動態(tài)響應(yīng)速度,減小調(diào)節(jié)時間,從而改善系統(tǒng)的動態(tài)性能。為了便于計算機實現(xiàn)PID控制算法,必須將式(3-1)變換成差分方程,以得到數(shù)字PID位置型控制算式(3-2)根據(jù)式(3-2)可寫出u(k-1)的表達(dá)式 (3-3)將式(3-2)與式(3-3)相減,可以得到數(shù)字PID增量型控制算式為(3-4)式中,Kp為比例增益;Ki=Kp*T/Ti為積分系數(shù);Kd=Kd*Td/T為微分系數(shù)。相對于位置型算法,增量型算法不需要做累加,計算誤差或計算精度對控制量的計算影響

11、較小,而位置型算法要用到過去的累加值,容易產(chǎn)生較大的累加誤差。位置型算法不僅要占用較多的內(nèi)存單元,而且不便于編寫程序,并且逐漸增大的累加誤差可能引起系統(tǒng)沖擊,嚴(yán)重影響系統(tǒng)的穩(wěn)定性。綜合考慮,應(yīng)該使用增量型數(shù)字PID控制算法來增加系統(tǒng)的穩(wěn)定性以及控制精度。3.2 積分分離的PID控制控制算法在一般的PID控制中,當(dāng)有較大的擾動或大幅度改變給定值時,由于此時有較大的偏 差,以及系統(tǒng)有慣性和滯后,故在積分項的作用下,往往會產(chǎn)生較大的超調(diào)和長時間的波動。特別對于溫度等變化緩慢的過程,這一現(xiàn)象更為嚴(yán)重,為此,可采用積分分離措施,即偏差e(k)較大時,取消積分作用;當(dāng)偏差較小時才將積分作用投入。亦即當(dāng)時,

12、采用PD控制;當(dāng)時,采用PID控制。積分分離閾值應(yīng)根據(jù)具體對象及控制要求。若值過大時,則達(dá)不到積分分離的目的;若值過小,則一旦被控量y(t)無法跳出個積分分離區(qū),只進(jìn)行PD控制,將會出現(xiàn)殘差,為了實現(xiàn)積分分離,編寫程序時必須從數(shù)字PID差分方程式中分離出積分項,進(jìn)行特殊處理。積分分離PID控制算法流程圖如圖3-1所示。圖3-1 積分分離PID控制算法流程圖4 系統(tǒng)硬件設(shè)計4.1 系統(tǒng)濾波原理一般微機應(yīng)用系統(tǒng)的模擬輸入信號中,均含有種種噪音和干擾,它們來自信號源本身、傳感器、外界干擾等。噪音有兩大類:一類為周期性的,另一類為不規(guī)則的。前者可采用雙積分A/D轉(zhuǎn)換器,有效地消除其影響。后者為隨機信號

13、,可用數(shù)字濾波方法予以消除。 算術(shù)平均值法式要按輸入的N個采樣為周期ix(i=1N),尋找這樣一個y,使y與各采樣值間的偏差的平方和為最小,使 由一元函數(shù)求值原理可得4.2 硬件設(shè)計原理該溫度控制硬件設(shè)計采用了單片機AT89C52,A/D轉(zhuǎn)換器ADC0809與D/A轉(zhuǎn)換器DAC0832。其設(shè)計思想為:用熱電偶來檢測爐的溫度,將爐溫轉(zhuǎn)變成毫伏級的電壓信號,經(jīng)溫度變送器放大并轉(zhuǎn)換成電流信號。由電阻網(wǎng)絡(luò)講電流信號變成電壓信號,送入A/D轉(zhuǎn)換器ADC0809,通過采樣和模數(shù)轉(zhuǎn)換,所檢測到的電壓信號和爐溫給定值的電壓信號都轉(zhuǎn)換成數(shù)字量送入單片機AT80C52進(jìn)行比較,其差值即為實際爐溫和給定爐溫的偏差,

14、以單片機為核心的數(shù)字PID控制器對偏差按照給定的方法運算,運算結(jié)果送入D/A轉(zhuǎn)換器DAC0832轉(zhuǎn)換成模擬電壓,經(jīng)功率放大器放大后送入晶閘管調(diào)壓器,觸發(fā)晶閘管并改變其導(dǎo)通角的大小,從而控制電阻爐的加溫電壓,起到爐溫調(diào)節(jié)的作用。其電路圖如圖4-1所示。圖4-1 硬件設(shè)計電路圖5 系統(tǒng)仿真5.1 仿真程序及圖形被控對象為采用simulink仿真,通過simulink模塊實現(xiàn)積分分離PID控制算法。 選擇合適的Kp,Ki,Kd是系統(tǒng)的仿真效果趨于理想狀態(tài)。MATLAB程序如下所示。clear all;close all;ts=2; %采樣時間2ssys=tf(1,40,1,0); %令sys為系統(tǒng)傳

15、遞函數(shù) dsys=c2d(sys,ts,zoh); %將sys離散化并加零階保持器num,den=tfdata(dsys,v); %求sys多項式模型參數(shù)kp=1;ti=50;td=1;beta=0.1;ki=kp*ts/ti;kd=kp*td/ts;Simulink仿真圖如圖5-1所示。圖5-1 Simulink仿真圖5.2 仿真結(jié)果(1) 當(dāng)Td=0.1時,仿真波形圖如圖5-2所示。圖5-2 當(dāng)Td=0.1時的仿真波形圖(2) 當(dāng)Td=1時,仿真波形圖如圖5-3所示。圖5-3 當(dāng)Td=1時的仿真波形圖(3) 當(dāng)Td=10時,仿真波形圖如圖5-4所示。圖5-4 當(dāng)Td=10時的仿真波形圖(4

16、) 當(dāng)Td=15時,仿真波形圖如圖5-5所示。圖5-5 當(dāng)Td=15時的仿真波形圖(5) 當(dāng)Td=20時,仿真波形圖如圖5-6所示。圖5-6 當(dāng)Td=20時的仿真波形圖(6) 當(dāng)Td=30時,仿真波形圖如圖5-6所示。圖5-7 當(dāng)Td=30時的仿真波形圖(7) 當(dāng)Td=40時,仿真波形圖如圖5-8所示。此時系統(tǒng)出現(xiàn)振蕩,系統(tǒng)不穩(wěn)定。圖5-7 當(dāng)Td=40時的仿真波形圖5.3 結(jié)果分析增大微分時間Td,有利于加快系統(tǒng)響應(yīng),使超調(diào)量減小,穩(wěn)定性增加,但系統(tǒng)對擾動的抑制能力減弱,對擾動有較敏感的響應(yīng)。通過仿真可以看出,當(dāng)K,Td,T,取了合適的值后,改變Td既會改變系統(tǒng)的超調(diào)量,又會使系統(tǒng)的穩(wěn)定時間

17、發(fā)生較大的改變。在一定范圍內(nèi)Td增大,而相應(yīng)的系統(tǒng)超調(diào)量減小,說明此時微分作用會使系統(tǒng)超調(diào)量減小。但超過該范圍,隨Td增大超調(diào)量增大。仿真結(jié)果中,當(dāng)Td=40時,系統(tǒng)甚至出現(xiàn)不穩(wěn)定的情況。因此,積分時間常數(shù)Td必須取恰當(dāng)值,微分作用過強,會使系統(tǒng)超調(diào)過大,甚至不穩(wěn)定。因此,Td增大即微分作用的增強有助于增加系統(tǒng)的穩(wěn)定性,還可以改善系統(tǒng)的動態(tài)特性,如可以明顯減少超調(diào)量,縮短調(diào)節(jié)時間等,提高控制精度。但Td值偏大都會適得其反。6 心得體會通過本次溫度控制系統(tǒng)設(shè)計,個人有了很多獲得:一,了解了自身各種理論知識的不足之處,強化了自身知識水平;二,知道了理論必須與實踐結(jié)合,各種技術(shù)才能真正達(dá)到熟練運用的

18、程度;三,科學(xué)技術(shù)是嚴(yán)密謹(jǐn)慎的,不能有一絲馬虎,否則可能會出現(xiàn)較大誤差;四,通過本次溫度控制設(shè)計,進(jìn)一步學(xué)習(xí)了單片機設(shè)計與Matlab仿真設(shè)計。也學(xué)習(xí)了數(shù)字PID控制,比較了數(shù)字PID位置型控制算法與數(shù)字PID增量型控制算法。同時了解了數(shù)字PID控制器改進(jìn)的方法,如積分分離。為了實現(xiàn)積分分離,編寫程序時必須從數(shù)字PID差分方程式中分離出積分項,進(jìn)行特殊處理。參考文獻(xiàn)1 于海生. 計算機控制技術(shù)M. 北京:機械工業(yè)出版社,2014:101-111.2 張毅剛,彭喜元. 單片機原理及應(yīng)用M. 北京:高等教育出版社,2010:43-82.3 劉教瑜. PLC應(yīng)用技術(shù)M. 北京:人民郵電出版社,201

19、3:276-278.4 劉紅麗. 傳感與檢測技術(shù)M. 北京:國防工業(yè)出版社,2012:73-81.5 王孝武,方敏,葛鎖良. 自動控制理論M. 北京:機械工業(yè)出版社,2012:117-118.附錄A 芯片資料附A1 ADC0809芯片功能A/D轉(zhuǎn)換器是將模擬電壓或電流轉(zhuǎn)換成數(shù)字量的期間或裝置,它是一種模擬系統(tǒng)和計算機之間的接口,它在數(shù)據(jù)采集和控制系統(tǒng)中,得到了廣泛的應(yīng)用,常用的A/D轉(zhuǎn)換器有ADC0809. 它是一種帶有8通道模擬開關(guān)的8位逐次逼近式A/D轉(zhuǎn)換器,轉(zhuǎn)換時間為100us左右,線性誤差為1/2LSB,采用28腳雙立直插式封裝,ADC0809由8通道模擬開關(guān)、通道選擇邏輯、8位A/D

20、轉(zhuǎn)換器及三態(tài)輸出鎖存緩沖器組成。(1)8通道模擬開關(guān)及通道選擇邏輯該部分的功能是實現(xiàn)8選1操作,通道選擇信號C、B、A與所選通道的關(guān)系如下:表A-1 ADC0809模擬開關(guān)及通道選擇邏輯 地址鎖存允許信號(ALE、正脈沖)用于通道選擇信號C、B、A的鎖存。加至C、B、A上的通道選擇信號在ALE的作用下送入通道選擇邏輯后,通道i上的模擬輸入被送至A/D轉(zhuǎn)換器轉(zhuǎn)換。(2)8位A/D轉(zhuǎn)換器圖A-1 ADC0809引腳圖如圖A-1所示。IN0IN7為模擬信號的8個輸入通道。VREF,VREF為基準(zhǔn)電壓的正極和負(fù)極。 ADDA 、ADDB和ADDC為模擬信號輸入通道的地址選擇線。ALE為地址鎖存信號,由

21、低電平到高電平正跳變時講地址選擇線的狀態(tài)鎖存,一選通相應(yīng)的輸入通道。 START為啟動信號,正脈沖的上升沿使內(nèi)部寄存器清零,從下降沿開始進(jìn)行A/D轉(zhuǎn)換。 OEC為轉(zhuǎn)換結(jié)束信號,在START信號之后變低,轉(zhuǎn)換結(jié)束為高電平,用來申請中斷。OE為輸出允許信號,有效時將輸出寄存器中的數(shù)據(jù)放到數(shù)據(jù)總線上。2-82-1為數(shù)碼輸出端,2-8為最低有效位,2-1為最高有效位。附A2 DAC0832芯片功能D/A轉(zhuǎn)換器的功能是把二進(jìn)制數(shù)字量電信號轉(zhuǎn)換為與其數(shù)值成正比的模擬量電信號。常用D/A轉(zhuǎn)換器為DAC0832芯片。DAC0832工作在單緩沖寄存器方式,即當(dāng)CS信號來時,D0D7數(shù)據(jù)線送來的數(shù)據(jù)直通進(jìn)行D/A

22、轉(zhuǎn)換,當(dāng)IOW變高時,則此數(shù)據(jù)便被鎖存在寄存器中,因此D/A轉(zhuǎn)換的輸出也保持不變。DAC0832講輸入的數(shù)字量轉(zhuǎn)換成差動的電流輸出(Iout1和Iout2),為了將其編程電壓輸出,須經(jīng)過運算放大器,使其輸出05V(Vref為-5V)或010V(Vref為-10V),若要形成負(fù)電壓輸出,則Vref需接正的基準(zhǔn)電壓。圖A-2 DAC0832引腳圖如圖A-2 所示,DAC0832是雙列直插式8位D/A轉(zhuǎn)換器。能完成數(shù)字量輸入到模擬量(電流)輸出的轉(zhuǎn)換。圖4為DAC0832的引腳圖。其主要參數(shù)如下:分辨率為8位,轉(zhuǎn)換時間為1s,滿量程誤差為1LSB,參考電壓為(+10/span-10)V,供電電源為(

23、+5+15)V,邏輯電平輸入與TTL兼容。在DAC0832中有兩級鎖存器,第一級鎖存器稱為輸入寄存器,它的允許鎖存信號為ILE,第二級鎖存器稱為DAC寄存器,它的鎖存信號也稱為通道控制信號XFER。當(dāng)ILE為高電平,片選信號 CS和寫信號 WR1為低電平時,輸入寄存器控制信號為1,這種情況下,輸入寄存器的輸出隨輸入而變化。此后,當(dāng)WR1由低電平變高時,控制信號成為低電平,此時,數(shù)據(jù)被鎖存到輸入寄存器中,這樣輸入寄存器的輸出端不再隨外部數(shù)據(jù)DB的變化而變化。對第二級鎖存來說,傳送控制信號XFER和寫信號WR2同時為低電平時,二級鎖存控制信號為高電平,8位的DAC寄存器的輸出隨輸入而變化,此后,當(dāng)

24、WR2由低電平變高時,控制信號變?yōu)榈碗娖?,于是將輸入寄存器的信息鎖存到DAC寄存器中。其余各引腳的功能定義如下: DI7DI0:8位的數(shù)據(jù)輸入端,DI7為最高位。IOUT1:模擬電流輸出端1,當(dāng)DAC寄存器中數(shù)據(jù)全為1時,輸出電流最大,當(dāng) DAC寄存器中數(shù)據(jù)全為0時,輸出電流為0。IOUT2:模擬電流輸出端2,IOUT2與IOUT1的和為一個常數(shù)。RFB:反饋電阻引出端,DAC0832內(nèi)部已有反饋電阻,所以 RFB端可以直接接到外部運算放大器的輸出端,相當(dāng)于將一個反饋電阻接在運算放大器的輸出端和輸入端之間。 VREF:參考電壓輸入端,此端可接一個正電壓,也可接一個負(fù)電壓,它決定0至255的數(shù)字

25、量轉(zhuǎn)化出來的模擬量電壓值的幅度,VREF范圍為+10。VREF端與D/A內(nèi)部T形電阻網(wǎng)絡(luò)相連。VCC:芯片供電電壓,范圍為5V15V。GND :模擬量地/數(shù)字量地,即模擬/數(shù)字電路接地端。附A3 AT89C51單片機 AT89C51提供以下的功能標(biāo)準(zhǔn):4K字節(jié)閃爍存儲器,128字節(jié)隨機存儲器,32個I/O口,2個16位定時/計數(shù)器,1個5向量兩級中斷結(jié)構(gòu),1個串行通信口,片內(nèi)震蕩器和時鐘電路。另外,AT89C51還可以進(jìn)行0HZ的靜態(tài)邏輯操作,并支持兩種軟件的節(jié)電模式。8051單片機的內(nèi)部結(jié)構(gòu)十分復(fù)雜,但封裝之后,只有引腳是面向用戶的,所以使用者需要熟悉各引腳的用途。常用的8051芯片是用雙列

26、直插40腳封裝。如圖A-3所示。圖A-3 AT89C51引腳圖其各引腳功能如下所示:VCC:供電電壓。 GND:接地。 P0口:P0口為一個8位漏級開路雙向I/O口,每腳可吸收8TTL門電流。當(dāng)P0口的管腳第一次寫1時,被定義為高阻輸入。P0能夠用于外部程序數(shù)據(jù)存儲器,它可以被定義為數(shù)據(jù)/地址的第八位。在FIASH編程時,P0口作為原碼輸入口,當(dāng)FIASH進(jìn)行校驗時,P0輸出原碼,此時P0口外部必須被拉高。P1口:P1口是一個內(nèi)部提供上拉電阻的8位雙向I/O口,P1口緩沖器能接收輸出4TTL門電流。P1口管腳寫入1后,被內(nèi)部上拉為高,可用作輸入,P1口被外部下拉為低電平時,將輸出電流,這是由于

27、內(nèi)部上拉的緣故。在FLASH編程和校驗時,P1口作為第八位地址接收。P2口:P2口為一個內(nèi)部上拉電阻的8位雙向I/O口,P2口緩沖器可接收,輸出4個TTL門電流,當(dāng)P2口被寫“1”時,其管腳被內(nèi)部上拉電阻拉高,且作為輸入。并作為輸入時,P2口的管腳被外部拉低,將輸出電流,這是由于內(nèi)部上拉的緣故。P2口當(dāng)用于外部程序存儲器或16位地址外部數(shù)據(jù)存儲器進(jìn)行存取時,P2口輸出地址的高八位。在給出地址“1”時,利用內(nèi)部上拉優(yōu)勢,當(dāng)對外部八位地址數(shù)據(jù)存儲器進(jìn)行讀寫時,P2口輸出其特殊功能寄存器的內(nèi)容。P2口在FLASH編程和校驗時接收高八位地址信號和控制信號。P3口:P3口管腳是8個帶內(nèi)部上拉電阻的雙向I

28、/O口,可接收輸出4個TTL門電流。當(dāng)P3口寫入“1”后,它們被內(nèi)部上拉為高電平,并用作輸入。P3口也可作為AT89C51的一些特殊功能口,P3口同時為閃爍編程和編程校驗接收一些控制信號。RST:復(fù)位輸入。當(dāng)振蕩器復(fù)位器件時,要保持RST腳兩個機器周期的高電平時間。ALE/PROG:當(dāng)訪問外部存儲器時,地址鎖存允許的輸出電平用于鎖存地址的地位字節(jié)。在FLASH編程期間,此引腳用于輸入編程脈沖。在平時,ALE端以不變的頻率周期輸出正脈沖信號,此頻率為振蕩器頻率的1/6,可用作對外部輸出的脈沖或用于定時目的。 :外部程序存儲器的選通信號。在由外部程序存儲器取指期間,每個機器周期兩次PSEN有效。但

29、在訪問外部數(shù)據(jù)存儲器時,這兩次有效的信號將不出現(xiàn)。 /VPP:當(dāng)保持低電平時,則在此期間外部程序存儲器(0000H-FFFFH),不管是否有內(nèi)部程序存儲器。注意加密方式1時,將內(nèi)部鎖定為RESET;當(dāng)端保持高電平時,此間內(nèi)部程序存儲器。在FLASH編程期間,此引腳也用于施加12V編程電源(VPP)。XTAL1:反向振蕩放大器的輸入及內(nèi)部時鐘工作電路的輸入。XTAL2:來自反向振蕩器的輸出。附錄B 程序清單附B1 單片機程序代碼單片機程序代碼如下所示:積分分離PID控制算法子程序:START:MOV 68H,KP ;分別將KP ,TI ,TD, T,送入指定的存儲單元MOV 54H,TI MOV

30、 55H,TDMOV 56H,TMOV 57H,MOV A,68H;計算KI=KP*T/TI MOV B,56HMUL ABMOV B,54HDIV ABMOV 69H,AMOV A,68H;計算KD=KP*TD/TMOV B,55HMUL ABMOV B,56HDIV ABMOV 6AH,ALOOP0: MOV DPTR #7FF0H;讀取預(yù)定溫度值,送入ADC0809的IN0口地址 MOV DPTR,A ;啟動A/D轉(zhuǎn)換LOOP1 JB P3.3,LOOP1;等待轉(zhuǎn)換數(shù)據(jù)MOVX A,DPTR;讀取ADC0809的IN0口轉(zhuǎn)換后的數(shù)據(jù)MOV 5CH,A;將預(yù)定值數(shù)據(jù)放入指定的存儲單元MOV

31、 DPTR,#7FF1H;讀取采樣溫度值,送ADC0809的IN1口地址MOVX DPTR,A;啟動A/D轉(zhuǎn)換LOOP2: JB P3.3,LOOP2;等待轉(zhuǎn)換數(shù)據(jù) MOVX A,DPTR;讀取ADC0809的IN1口轉(zhuǎn)換后的數(shù)據(jù)MOV 49H,A ;將采樣值數(shù)據(jù)放入指定的存儲單元MOV A,5CH ;計算e(i),先取溫度給定值CLR CSUBB A,50H ;溫度給定值-采樣值JNC AA0;判斷e(i)的正負(fù),如果為正,跳至AA0CPL A;e(i)為負(fù),下兩條指令求補ADD A,#01H AA0MOV R0,57HSUBB A,57H;|e(i)|-JNC AA1;|e(i)|跳至AA

32、1SJMP AA2;|e(i)|跳至AA2 AA1: LCALL PD;調(diào)用PD算法 AA2: LCALL PID;調(diào)用PID算法MOV A,7CH;將Ui通過DAC0832輸出MOV DPTR,#7FF2HMOVX DPTR,AINC DPTRMOVX DPTR,ALCALL DELAY;調(diào)用延時子程序,等待下一次采樣計算SJMP LOOP0;進(jìn)入下一次控制計算DELAY PROC NEARDL0: MOV R6,#FFHDL1: MOV R7,#FFHDL2: MOV R5,#FFHDLS: DJNZ R5,DLSDJNZ R7,DL2DJNZ R6 DL1RETDELAY ENDPPID

33、 PROC NEARPID:MOV A,5CH;計算e(i),先取溫度給定值CLR CSUBB A,50H;溫度給定值-溫度檢測值JNC PID1;判斷e(i)正負(fù),如果為正,跳至PID1CPL A;e(i)為負(fù),下兩條指令求補ADD A,#01H SETB 30H;e(i)為負(fù),符號位置1SJMP PID2PID1:CLR 30H;e(i)為正,符號位置0PID2:MOV 6BH,A;e(i)值存放在6BH單位元中MOV R1,6BH;計算ei-ei-1,先將ei值,送R1 MOV C,30H;將ei的符號位值送20H位MOV 20H,CMOV R2,6CH;將ei-1值送R2MOV C,3

34、1H;將 ei-1的符號位值送21H位MOV 21H,C LCALL DJF;調(diào)用單字節(jié)帶符號的減法子程序MOV 6EH,R3;將差值ei-ei-1送6EH單元MOV C,22H;將差值ei-ei-1的符號位送33H位MOV 33H,CMOV R1,6CH;計算ei-1-ei-2,先將ei-1值送R1 MOV C,31H;將ei-1符號位送20H位MOV 20H,CMOV R2,6DH;將ei-2的值送R2MOV C,32H;將 ei-2的符號位值送21H位MOV 21H,CLCALL DJF;調(diào)用單字節(jié)帶符號的減法子程序MOV 6FH,R3;將差值ei-1-ei-2送6FH單元 MOV C,

35、22H;將差值ei-1-ei-2的符號位送34H位 MOV 34H,C MOV R1,6EH ;計算(ei-ei-1)-(ei-1-ei-2),將ei-ei-1值送R1 MOV C,33H;將ei-ei-1符號位送20H位 MOV 20H,C MOV R2,6FH;將ei-1-ei-2值送R2 MOV C,34H;將ei-1-ei-2符號位送21H位 MOV 21H,C LCALL DJF;調(diào)用單字節(jié)帶符號的減法子程序 MOV 70H,R3;將差值(ei-ei-1)-(ei-1-ei-2)送70H單元 MOV C,22H;將差值(ei-ei-1)-(ei-1-ei-2)的符號位值送 35H位

36、MOV 35H,CMOV A,68H;計算Kp*(ei-ei-1),將Kp值送A MOV B,6EH;將ei-ei-1值送B MUL AB;兩數(shù)相乘 MOV 71H,B;Kp*(ei-ei-1)值存71H,72H單元 MOV 72H.A MOV A,69H;計算KI*ei,將KI值送A MOV B,6BH;將ei值送B MUL AB;兩數(shù)相乘 MOV 73H,B;KI*ei值存73H,74H單元 MOV 74H,A MOV A,6AH;計算KD*(ei-ei-1)-(ei-1-ei-2),將KD送 A MOV B,70H;將(ei-ei-1)-(ei-1-ei-2)值送BMUL AB;兩數(shù)相乘

37、 MOV 75H,B;KD*(ei-ei-1)-(ei-1-ei-2)值存75H,76H 單元 MOV 76H,A MOV R1,71H;計算Kp*(ei-ei-1)+KI*ei,將Kp*(ei-ei-1) 值送R1,R2 MOV R2,72H MOV C,33H;將Kp*(ei-ei-1)的符號位值送23H位 MOV 23H,C MOV R3,73H;將KI*ei值送R3,R4 MOV R4,74H MOV C,30H;將KI*ei值的符號位懂24H位 MOV 24H,C LCALL SJF;調(diào)用雙字節(jié)帶符號加法子程序 MOV 77H,R5;將Kp*(ei-ei-1)+KI*ei值送77H,

38、78H MOV 78H,R6 MOV C,25H;將Kp*(ei-ei-1)+KI*ei值的符號位送36H位 MOV 36H,C MOV R1,77H;計算Ui,將將Kp*(ei-ei-1)+KI*ei值送R1, R2 MOV R2,78H MOV C,36H;將Kp*(ei-ei-1)+KI*ei值的符號位送23H位 MOV 23H,C MOV R3,75H;將KD*(ei-ei-1)-(ei-1-ei-2)的值送R3,R4 MOV R4,76HMOV C,35H;將KD*(ei-ei-1)-(ei-1-ei-2)的符號位送23H 位MOV 24H,C LCALL SJF;調(diào)用雙字節(jié)帶符號加

39、法子程序MOV 79H,R5;將Ui值送79H,7AH MOV 7AH,R6 MOV C,25H;將Ui值的符號位送37H MOV 37H,C MOV R1,7DH;計算Ui,將Ui-1值送R1,R2 MOV R2,7EH CLR 23H;Ui-1值的符號位值恒為0 MOV R3,79H;將Ui值送R3,R4 MOV R4,7AH MOV C,37H;將Ui值的符號位送24H MOV 24H,C LCALL SJF;調(diào)用雙字節(jié)帶符號加法子程序 JNB 25H,PID3;判斷計算結(jié)果是否為負(fù) MOV 7BH,#00H;如果是負(fù)數(shù),則輸出電壓為0 MOV 7CH,#00H SJMP PID4 PI

40、D3:MOV 7BH,R5;否則,將計算得到的Ui值置7BH,7CH MOV 7CH,R6 PID4:MOV 6DH,6CH ;數(shù)據(jù)迭代,ei-1值送ei-2存儲單元MOV 6CH,6BH;ei值送ei-1存儲單元 MOV 7DH,7BH;Ui值送Ui-1存儲單元 MOV 7EH,7CH RET PID ENDPPD PROC NEARPD:MOV A,5CH;計算ei,先取溫度給定值CLR C SUBB A,50H;溫度給定值-溫度檢測值 JNC PD1;判斷ei正負(fù),如果為正,跳至PID1 CPL A;ei為負(fù),下兩條指令求補 ADD A,#01H SETB 30H;ei為負(fù),符號位置1

41、SJMP PD2 PD1:CLR 30H;ei為正,符號位置0 PD2:MOV 6BH,A;ei值存放在6BH單位元中 MOV R1,6BH;計算ei-ei-1,先將ei值,送R1 MOV C,30H;將ei的符號位值送20H位 MOV 20H,C; MOV R2,6CH;將ei-1值送R2 MOV C,31H;將 ei-1的符號位值送21H位 MOV 21H,C LCALL DJF;調(diào)用單字節(jié)帶符號的減法子程序 MOV 6EH,R3;將差值ei-ei-1送6EH單元 MOV C,22H;將差值ei-ei-1的符號位送33H位 MOV 33H,C MOV R1,6CH;計算ei-1-ei-2,

42、先將ei-1值送R1 MOV C,31H;將ei-1符號位送20H位 MOV 20H,C MOV R2,6DH;將ei-2的值送R2 MOV C,32H;將 ei-2的符號位值送21H位 MOV 21H,C LCALL DJF;調(diào)用單字節(jié)帶符號的減法子程序 MOV 6FH,R3;將差值ei-1-ei-2送6FH單元 MOV C,22H;將差值ei-1-ei-2的符號位送34H位 MOV 34H,C MOV R1,6EH ;計算(ei-ei-1)-(ei-1-ei-2),將ei-ei-1值送R1 MOV C,33H;將ei-ei-1符號位送20H位MOV 20H,C MOV R2,6FH;將ei-1-ei-2值送R2 MOV C,34H;將ei-1-ei-2符號位送21H位 MOV 21H,C LCALL DJF;調(diào)用單字節(jié)帶符號的減法子程序 MOV 70H,R3;將差值(ei-ei-1)-(ei-1-ei-2)送70H單元 MOV C,22H;將差值(

溫馨提示

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

評論

0/150

提交評論