溫度控制系統(tǒng)設(shè)計(計算機控制技術(shù)課程設(shè)計).doc
《溫度控制系統(tǒng)設(shè)計(計算機控制技術(shù)課程設(shè)計).doc》由會員分享,可在線閱讀,更多相關(guān)《溫度控制系統(tǒng)設(shè)計(計算機控制技術(shù)課程設(shè)計).doc(33頁珍藏版)》請在裝配圖網(wǎng)上搜索。
學(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)電爐溫度0-300℃,溫度傳感器測量值對應(yīng)也為0~5伏,對象的特性為積分加慣性系統(tǒng),慣性時間常數(shù)為T1=40秒。 要求完成的主要任務(wù): (包括課程設(shè)計工作量及其技術(shù)要求,以及說明書撰寫等具體要求) 1.設(shè)計溫度控制系統(tǒng)的計算機硬件系統(tǒng),畫出框圖; 2.編寫積分分離PID算法程序,從鍵盤接受Kp、Ti、Td、T及β的值; 3.計算機仿真被控對象,編寫仿真程序; 4.通過數(shù)據(jù)分析Td改變時對系統(tǒng)超調(diào)量的影響。 5. 撰寫設(shè)計說明書。課程設(shè)計說明書應(yīng)包括:設(shè)計任務(wù)及要求;方案比較及認證;系統(tǒng)濾波原理、硬件原理,電路圖,采用器件的功能說明;軟件思想,流程,源程序;調(diào)試記錄及結(jié)果分析;參考資料;附錄:芯片資料,程序清單;總結(jié)。 時間安排: 2016年5月23日—2016年6月3日 摘要 比例-積分-微分控制(簡稱PID控制),是控制系統(tǒng)中應(yīng)用最為廣泛的一種控制規(guī)律。實際運行的經(jīng)驗和理論的分析都表明,這種控制規(guī)律對許多工業(yè)過程進行控制時,都能得到滿意的效果。利用計算機可以很好地使用PID算法對控制對象進行控制,具有較高的精度,并且可以很方便的改變PID參數(shù),以達到不同的控制效果。 本設(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è)計加入了積分分離的改進措施,當(dāng)偏差較大時取消積分作用,利用PD控制快速使系統(tǒng)趨于穩(wěn)定;當(dāng)偏差小于某一個值時,加入積分作用,以消除靜差。利用Matlab軟件,可以通過仿真得到Td改變對系統(tǒng)超調(diào)量的影響。 關(guān)鍵詞:PID控制;Matlab;系統(tǒng)超調(diào)量 目錄 1 設(shè)計任務(wù)及要求 1 1.1 設(shè)計任務(wù)要求 1 1.2 任務(wù)要求分析 1 2 方案比較及認證 2 2.1 方案設(shè)計 2 2.2 方案認證 3 3 系統(tǒng)軟件設(shè)計 4 3.1 PID控制算法 4 3.2 積分分離的PID控制控制算法 5 4 系統(tǒng)硬件設(shè)計 6 4.1 系統(tǒng)濾波原理 6 4.2 硬件設(shè)計原理 6 5 系統(tǒng)仿真 8 5.1 仿真程序及圖形 8 5.2 仿真結(jié)果 9 5.3 結(jié)果分析 12 6 心得體會 13 參考文獻 14 附錄A 芯片資料 15 附A1 ADC0809芯片功能 15 附A2 DAC0832芯片功能 16 附A3 AT89C51單片機 18 附錄B 程序清單 20 附B1 單片機程序代碼 20 附B2 仿真程序代碼 27 本科生課程設(shè)計成績評定表 28 1 設(shè)計任務(wù)及要求 1.1 設(shè)計任務(wù)要求 被控對象為電爐,采用熱阻絲加熱,利用大功率可控硅控制器控制熱阻絲兩端所加的電壓大小,來改變流經(jīng)熱阻絲的電流,從而改變電爐爐內(nèi)的溫度??煽毓杩刂破鬏斎霝?~5伏時對應(yīng)電爐溫度0-300℃,溫度傳感器測量值對應(yīng)也為0~5伏,對象的特性為積分加慣性系統(tǒng),慣性時間常數(shù)為T1=40秒。 要求完成的主要任務(wù): 1.設(shè)計溫度控制系統(tǒng)的計算機硬件系統(tǒng),畫出框圖; 2.編寫積分分離PID算法程序,從鍵盤接受Kp、Ti、Td、T及β的值; 3.計算機仿真被控對象,編寫仿真程序; 4.通過數(shù)據(jù)分析Td改變時對系統(tǒng)超調(diào)量的影響。 5. 撰寫設(shè)計說明書。 1.2 任務(wù)要求分析 本系統(tǒng)的控制對象為電爐,被控量為溫度,利用溫度傳感器實時檢測電爐溫度;將測得的數(shù)據(jù)經(jīng)過A/D轉(zhuǎn)換后送入計算機;計算機系統(tǒng)將檢測得到的溫度與爐溫給定值進行比較,并計算偏差;按照預(yù)置的控制算法,對可控硅控制器的導(dǎo)通角進行調(diào)節(jié),從而可以控制熱阻絲兩端的電壓,起到溫度調(diào)節(jié)的作用。 為了實現(xiàn)數(shù)據(jù)采集、轉(zhuǎn)換、處理以及PID算法控制,并通過鍵盤對溫度設(shè)定值和PID控制參數(shù)進行修正,因此可以使用單片機或PLC。由于本次控制對象為電爐,其時間常數(shù)較大,因此采用周期不宜過小,避免系統(tǒng)響應(yīng)過于頻繁,降低計算機系統(tǒng)的效率并使控制品質(zhì)變壞;但也不能太大,否則會使誤差不能及時消除。 2 方案比較及認證 2.1 方案設(shè)計 用溫度傳感器來檢測爐的溫度,將爐溫轉(zhuǎn)變成毫伏級的電壓信號,經(jīng)溫度變送器放大并轉(zhuǎn)換成電流信號。由電阻網(wǎng)絡(luò)將電流信號變成電壓信號,送入A/D轉(zhuǎn)換器,通過采樣和模數(shù)轉(zhuǎn)換,所檢測到的電壓信號和爐溫給定值的電壓信號送入計算機程序中作比較,得出給定值與實際值之間的偏差,并與β進行比較,從而確定算法。計算得到的控制量輸出給可控硅控制器,改變可控硅的導(dǎo)通角,達到調(diào)壓的目的,是電阻絲兩端的電壓增大或較小,進而實現(xiàn)對爐溫的控制。 方案一:使用PLC直接對鐵塊溫度進行PID調(diào)節(jié)。其基本思想為,觸摸屏要設(shè)定溫度給PLC,PLC控制光耦電路,然后對電阻絲進行控制加熱。具體流程為,由觸摸屏設(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。爐溫控制在0-300℃內(nèi),因此采用鎳鉻-銅鎳熱電偶,同時選用運算放大器將信號放大。 圖2-2 方案二設(shè)計結(jié)構(gòu)圖 2.2 方案認證 根據(jù)設(shè)計要求,綜合考慮選擇方案二。在系統(tǒng)中,利用熱電偶測得電阻爐實際溫度并轉(zhuǎn)換成毫伏級電壓信號。該電壓信號經(jīng)過溫度檢測電路轉(zhuǎn)換成與爐溫相對應(yīng)的數(shù)字信號進入單片機,單片機進行數(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)存在誤差,積分控制作用就不斷地積累,輸出控制量以消除誤差,因而,只要有足夠的時間,積分控制將能完全消除誤差,積分作用太強就會使系統(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)的表達式 (3-3) 將式(3-2)與式(3-3)相減,可以得到數(shù)字PID增量型控制算式為 (3-4) 式中,Kp為比例增益;Ki=Kp*T/Ti為積分系數(shù);Kd=Kd*Td/T為微分系數(shù)。 相對于位置型算法,增量型算法不需要做累加,計算誤差或計算精度對控制量的計算影響較小,而位置型算法要用到過去的累加值,容易產(chǎn)生較大的累加誤差。位置型算法不僅要占用較多的內(nèi)存單元,而且不便于編寫程序,并且逐漸增大的累加誤差可能引起系統(tǒng)沖擊,嚴重影響系統(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)象更為嚴重,為此,可采用積分分離措施,即偏差e(k)較大時,取消積分作用;當(dāng)偏差較小時才將積分作用投入。亦即 當(dāng)時,采用PD控制; 當(dāng)時,采用PID控制。 積分分離閾值β應(yīng)根據(jù)具體對象及控制要求。若β值過大時,則達不到積分分離的目的;若β值過小,則一旦被控量y(t)無法跳出個積分分離區(qū),只進行PD控制,將會出現(xiàn)殘差,為了實現(xiàn)積分分離,編寫程序時必須從數(shù)字PID差分方程式中分離出積分項,進行特殊處理。積分分離PID控制算法流程圖如圖3-1所示。 圖3-1 積分分離PID控制算法流程圖 4 系統(tǒng)硬件設(shè)計 4.1 系統(tǒng)濾波原理 一般微機應(yīng)用系統(tǒng)的模擬輸入信號中,均含有種種噪音和干擾,它們來自信號源本身、傳感器、外界干擾等。噪音有兩大類:一類為周期性的,另一類為不規(guī)則的。前者可采用雙積分A/D轉(zhuǎn)換器,有效地消除其影響。后者為隨機信號,可用數(shù)字濾波方法予以消除。 算術(shù)平均值法式要按輸入的N個采樣為周期ix(i=1~N),尋找這樣一個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進行比較,其差值即為實際爐溫和給定爐溫的偏差,以單片機為核心的數(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; %采樣時間2s sys=tf([1],[40,1,0]); %令sys為系統(tǒng)傳遞函數(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) 當(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)定時間發(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ù)才能真正達到熟練運用的程度; 三,科學(xué)技術(shù)是嚴密謹慎的,不能有一絲馬虎,否則可能會出現(xiàn)較大誤差; 四,通過本次溫度控制設(shè)計,進一步學(xué)習(xí)了單片機設(shè)計與Matlab仿真設(shè)計。也學(xué)習(xí)了數(shù)字PID控制,比較了數(shù)字PID位置型控制算法與數(shù)字PID增量型控制算法。同時了解了數(shù)字PID控制器改進的方法,如積分分離。為了實現(xiàn)積分分離,編寫程序時必須從數(shù)字PID差分方程式中分離出積分項,進行特殊處理。 參考文獻 [1] 于海生. 計算機控制技術(shù)[M]. 北京:機械工業(yè)出版社,2014:101-111. [2] 張毅剛,彭喜元. 單片機原理及應(yīng)用[M]. 北京:高等教育出版社,2010:43-82. [3] 劉教瑜. PLC應(yīng)用技術(shù)[M]. 北京:人民郵電出版社,2013: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轉(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所示。IN0~IN7為模擬信號的8個輸入通道。VREF,VREF為基準電壓的正極和負極。 ADDA 、ADDB和ADDC為模擬信號輸入通道的地址選擇線。ALE為地址鎖存信號,由低電平到高電平正跳變時講地址選擇線的狀態(tài)鎖存,一選通相應(yīng)的輸入通道。 START為啟動信號,正脈沖的上升沿使內(nèi)部寄存器清零,從下降沿開始進行A/D轉(zhuǎn)換。 OEC為轉(zhuǎn)換結(jié)束信號,在START信號之后變低,轉(zhuǎn)換結(jié)束為高電平,用來申請中斷。OE為輸出允許信號,有效時將輸出寄存器中的數(shù)據(jù)放到數(shù)據(jù)總線上。2-8~2-1為數(shù)碼輸出端,2-8為最低有效位,2-1為最高有效位。 附A2 DAC0832芯片功能 D/A轉(zhuǎn)換器的功能是把二進制數(shù)字量電信號轉(zhuǎn)換為與其數(shù)值成正比的模擬量電信號。常用D/A轉(zhuǎn)換器為DAC0832芯片。DAC0832工作在單緩沖寄存器方式,即當(dāng)CS信號來時,D0~D7數(shù)據(jù)線送來的數(shù)據(jù)直通進行D/A轉(zhuǎn)換,當(dāng)IOW變高時,則此數(shù)據(jù)便被鎖存在寄存器中,因此D/A轉(zhuǎn)換的輸出也保持不變。DAC0832講輸入的數(shù)字量轉(zhuǎn)換成差動的電流輸出(Iout1和Iout2),為了將其編程電壓輸出,須經(jīng)過運算放大器,使其輸出0~5V(Vref為-5V)或0~10V(Vref為-10V),若要形成負電壓輸出,則Vref需接正的基準電壓。 圖A-2 DAC0832引腳圖 如圖A-2 所示,DAC0832是雙列直插式8位D/A轉(zhuǎn)換器。能完成數(shù)字量輸入到模擬量(電流)輸出的轉(zhuǎn)換。圖4為DAC0832的引腳圖。其主要參數(shù)如下:分辨率為8位,轉(zhuǎn)換時間為1μs,滿量程誤差為1LSB,參考電壓為(+10/span>-10)V,供電電源為(+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)WR2由低電平變高時,控制信號變?yōu)榈碗娖?,于是將輸入寄存器的信息鎖存到DAC寄存器中。 其余各引腳的功能定義如下: DI7~DI0: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:參考電壓輸入端,此端可接一個正電壓,也可接一個負電壓,它決定0至255的數(shù)字量轉(zhuǎn)化出來的模擬量電壓值的幅度,VREF范圍為+10。VREF端與D/A內(nèi)部T形電阻網(wǎng)絡(luò)相連。 VCC:芯片供電電壓,范圍為5V~15V。 GND :模擬量地/數(shù)字量地,即模擬/數(shù)字電路接地端。 附A3 AT89C51單片機 AT89C51提供以下的功能標準:4K字節(jié)閃爍存儲器,128字節(jié)隨機存儲器,32個I/O口,2個16位定時/計數(shù)器,1個5向量兩級中斷結(jié)構(gòu),1個串行通信口,片內(nèi)震蕩器和時鐘電路。另外,AT89C51還可以進行0HZ的靜態(tài)邏輯操作,并支持兩種軟件的節(jié)電模式。8051單片機的內(nèi)部結(jié)構(gòu)十分復(fù)雜,但封裝之后,只有引腳是面向用戶的,所以使用者需要熟悉各引腳的用途。常用的8051芯片是用雙列直插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進行校驗時,P0輸出原碼,此時P0口外部必須被拉高。 P1口:P1口是一個內(nèi)部提供上拉電阻的8位雙向I/O口,P1口緩沖器能接收輸出4TTL門電流。P1口管腳寫入1后,被內(nèi)部上拉為高,可用作輸入,P1口被外部下拉為低電平時,將輸出電流,這是由于內(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ù)存儲器進行存取時,P2口輸出地址的高八位。在給出地址“1”時,利用內(nèi)部上拉優(yōu)勢,當(dāng)對外部八位地址數(shù)據(jù)存儲器進行讀寫時,P2口輸出其特殊功能寄存器的內(nèi)容。P2口在FLASH編程和校驗時接收高八位地址信號和控制信號。 P3口:P3口管腳是8個帶內(nèi)部上拉電阻的雙向I/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有效。但在訪問外部數(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 55H,TD MOV 56H,T MOV 57H,β MOV A,68H;計算KI=KP*T/TI MOV B,56H MUL AB MOV B,54H DIV AB MOV 69H,A MOV A,68H;計算KD=KP*TD/T MOV B,55H MUL AB MOV B,56H DIV AB MOV 6AH,A LOOP0: 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 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 C SUBB A,50H ;溫度給定值-采樣值 JNC AA0;判斷e(i)的正負,如果為正,跳至AA0 CPL A;e(i)為負,下兩條指令求補 ADD A,#01H AA0 MOV R0,57H SUBB A,57H;|e(i)|-β JNC AA1;|e(i)|>β跳至AA1 SJMP AA2;|e(i)|<β跳至AA2 AA1: LCALL PD;調(diào)用PD算法 AA2: LCALL PID;調(diào)用PID算法 MOV A,7CH;將△Ui通過DAC0832輸出 MOV DPTR,#7FF2H MOVX @DPTR,A INC DPTR MOVX @DPTR,A LCALL DELAY;調(diào)用延時子程序,等待下一次采樣計算 SJMP LOOP0;進入下一次控制計算 DELAY PROC NEAR DL0: MOV R6,#FFH DL1: MOV R7,#FFH DL2: MOV R5,#FFH DLS: DJNZ R5,DLS DJNZ R7,DL2 DJNZ R6 DL1 RET DELAY ENDP PID PROC NEAR PID:MOV A,5CH;計算e(i),先取溫度給定值 CLR C SUBB A,50H;溫度給定值-溫度檢測值 JNC PID1;判斷e(i)正負,如果為正,跳至PID1 CPL A;e(i)為負,下兩條指令求補 ADD A,#01H SETB 30H;e(i)為負,符號位置1 SJMP PID2 PID1:CLR 30H;e(i)為正,符號位置0 PID2:MOV 6BH,A;e(i)值存放在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,先將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;將差值(ei-ei-1)-(ei-1-ei-2)的符號位值送 35H位 MOV 35H,C MOV 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)值送B MUL AB;兩數(shù)相乘 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,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,76H MOV C,35H;將KD*[(ei-ei-1)-(ei-1-ei-2)]的符號位送23H 位 MOV 24H,C LCALL SJF;調(diào)用雙字節(jié)帶符號加法子程序 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é)果是否為負 MOV 7BH,#00H;如果是負數(shù),則輸出電壓為0 MOV 7CH,#00H SJMP PID4 PID3: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 ENDP PD PROC NEAR PD:MOV A,5CH;計算ei,先取溫度給定值 CLR C SUBB A,50H;溫度給定值-溫度檢測值 JNC PD1;判斷ei正負,如果為正,跳至PID1 CPL A;ei為負,下兩條指令求補 ADD A,#01H SETB 30H;ei為負,符號位置1 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,先將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;將差值(ei-ei-1)-(ei-1-ei-2)的符號位值送 35H位 MOV 35H,C MOV 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,6AH;計算KD*[(ei-ei-1)-(ei-1-ei-2)],將KD送A MOV B,70H;將(ei-ei-1)-(ei-1-ei-2)值送B MUL AB;兩數(shù)相乘 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,75H;將KD*[(ei-ei-1)-(ei-1-ei-2)]值送R3,R4 MOV R4,76H MOV C,35H;將KD*[(ei-ei-1)-(ei-1-ei-2)]值的符號位送 24H位 MOV 24H,C LCALL SJF;調(diào)用雙字節(jié)帶符號加法子程序 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,PD3;判斷計算結(jié)果是否為負 MOV 7BH,#00H;如果是負數(shù),則輸出電壓為0 MOV 7CH,#00H SJMP PID4 PD3:MOV 7BH,R5;否則,將計算得到的Ui值置7BH,7CH MOV 7CH,R6 PD4: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 PD ENDP 附B2 仿真程序代碼 仿真程序代碼如下所示: clear all; close all; ts=2;%采樣時間2s sys=tf([1],[40,1,0]);%令sys為系統(tǒng)傳遞函數(shù) dsys=c2d(sys,ts,zoh); %將sys離散化并加零階保持器 [num,den]=tfdata(dsys,v); %求sys多項式模型參數(shù) kp=1; ti=50; td=10; beta=0.1; ki=kp*ts/ti; kd=kp*td/ts;%設(shè)定PID及β的值 本科生課程設(shè)計成績評定表 姓 名 性 別 專業(yè)、班級 課程設(shè)計題目: 課程設(shè)計答辯或質(zhì)疑記錄: 成績評定依據(jù): 序 號 1 選題合理,目的明確(10分) 2 設(shè)計方案正確,具有可行性、創(chuàng)新性(20分) 3 設(shè)計結(jié)果(例如:硬件成果、軟件程序)(25分) 4 態(tài)度認真、學(xué)習(xí)刻苦、遵守紀律(15分) 5 設(shè)計報告的規(guī)范化、參考文獻充分(不少于5篇)(10分) 6 答辯(20分) 總 分 最終評定成績(以優(yōu)、良、中、及格、不及格評定) 指導(dǎo)教師簽字: 年 月 日- 1.請仔細閱讀文檔,確保文檔完整性,對于不預(yù)覽、不比對內(nèi)容而直接下載帶來的問題本站不予受理。
- 2.下載的文檔,不會出現(xiàn)我們的網(wǎng)址水印。
- 3、該文檔所得收入(下載+內(nèi)容+預(yù)覽)歸上傳者、原創(chuàng)作者;如果您是本文檔原作者,請點此認領(lǐng)!既往收益都歸您。
下載文檔到電腦,查找使用更方便
9.9 積分
下載 |
- 配套講稿:
如PPT文件的首頁顯示word圖標,表示該PPT已包含配套word講稿。雙擊word圖標可打開word文檔。
- 特殊限制:
部分文檔作品中含有的國旗、國徽等圖片,僅作為作品整體效果示例展示,禁止商用。設(shè)計者僅對作品中獨創(chuàng)性部分享有著作權(quán)。
- 關(guān) 鍵 詞:
- 溫度 控制系統(tǒng) 設(shè)計 計算機控制 技術(shù) 課程設(shè)計
鏈接地址:http://kudomayuko.com/p-7869254.html