版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、摘 要本設(shè)計(jì)是一種溫度控制系統(tǒng),溫度控制在工業(yè)生產(chǎn)和科學(xué)研究中具有重要意義。其控制系統(tǒng)屬于一階純滯后環(huán)節(jié),具有大慣性、純滯后、非線(xiàn)性等特點(diǎn),導(dǎo)致傳統(tǒng)控制方式超調(diào)大、調(diào)節(jié)時(shí)間長(zhǎng)、控制精度低。采用單片機(jī)進(jìn)行爐溫控制,具有電路設(shè)計(jì)簡(jiǎn)單、精度高、控制效果好等優(yōu)點(diǎn),對(duì)提高生產(chǎn)效率、促進(jìn)科技進(jìn)步等具有重要的現(xiàn)實(shí)意義。pid控制法最為常見(jiàn),控制輸出采用pwm波觸發(fā)可控硅來(lái)控制加熱通斷。使系統(tǒng)具有較高的測(cè)量精度和控制精度。單片機(jī)控制部分采用at89s51單片機(jī)為核心,采用keil軟件進(jìn)行編程,同時(shí)采用分塊的模式,對(duì)整個(gè)系統(tǒng)的硬件設(shè)計(jì)進(jìn)行分析,分別給出了系統(tǒng)的總體框圖、溫度檢測(cè)調(diào)理電路、a/d轉(zhuǎn)換接口電路,按鍵
2、輸入電路以及顯示電路,并對(duì)相應(yīng)電路進(jìn)行相關(guān)的闡述軟件采用pid算法進(jìn)行了建模和編程,在proteus環(huán)境中進(jìn)行了仿真。關(guān)鍵詞:pid;單片機(jī);溫度控制;keil;proteus abstract this design is a kind of temperature control system,the temperature control in industrial production and scientific research is of great significance.belongs to pure first-order lag link, the control sy
3、stem has the characteristics of big inertia, pure lag and nonlinear, the traditional control overshoot and adjustment time is long, low control precision.by single chip microcomputer temperature control, has simple circuit design, high accuracy and good control effect, to improve the production effi
4、ciency, promote the progress of science and technology has important practical significance.pid control is the most common, the control output pwm wave triggering thyristor is used to control the heating on and off.make the system has high accuracy of measurement and control precision.single-chip mi
5、crocomputer control part adopts single chip microcomputer at89s51 as the core,using keil software programming,using block pattern at the same time, analyzes the hardware design of the whole system, respectively, of the overall system block diagram is given, the temperature detection circuit, a/d con
6、version interface circuit, key input circuit and display circuit, and the corresponding circuit are related in this paper, the software, the pid algorithm is used for modeling and programming in the proteus simulation environment.key words:pid;single chip microcomputer;the temperature control;keil;p
7、roteus目 錄 1緒論12設(shè)計(jì)方案23系統(tǒng)硬件仿真電路33.1 溫度測(cè)量調(diào)理電路33.2 a/d轉(zhuǎn)換電路43.3 按鍵輸入電路53.4 數(shù)碼管顯示電路63.5 溫度控制電路74 程序設(shè)計(jì)94.1 程序整體設(shè)計(jì)94.2 子程序設(shè)計(jì)114.3 源程序設(shè)計(jì)195 軟件調(diào)試與運(yùn)行結(jié)果41結(jié)論42致謝43參考文獻(xiàn)44 1緒論 現(xiàn)代工業(yè)生產(chǎn)過(guò)程中,用于熱處理的加熱爐,需要消耗大量的電能,而且溫度控制是純滯后的一階大慣性環(huán)節(jié)。現(xiàn)有企業(yè)多采用常規(guī)儀表加接觸器的斷續(xù)控制,隨著科技進(jìn)步和生產(chǎn)的發(fā)展,這類(lèi)設(shè)備對(duì)溫度的控制要求越來(lái)越高,除控溫精度外,對(duì)溫度上升速度及下降速度也提出了可控要求,顯而易見(jiàn)常規(guī)控制難于滿(mǎn)
8、足這些工藝要求。隨著微電子技術(shù)的發(fā)展,采用功能強(qiáng)、體積小、價(jià)格低的智能化溫度控制裝置控制加熱爐已成為現(xiàn)實(shí)。 采用單片機(jī)來(lái)對(duì)溫度進(jìn)行控制不僅具有控制方便、簡(jiǎn)單靈活性等優(yōu)點(diǎn),而且可以大幅度提高被控溫度的技術(shù)指標(biāo),從而能夠大大提高產(chǎn)品的質(zhì)量和數(shù)量,比過(guò)去單純采用電子線(xiàn)路進(jìn)行pid調(diào)節(jié)的控制效果要好的多。 微機(jī)控制系統(tǒng)的快速計(jì)算、靈活多樣的邏輯判斷和高效的信息加工能力使自動(dòng)控制進(jìn)入了更高一級(jí)的領(lǐng)域,提高了生產(chǎn)過(guò)程的自動(dòng)化程度,減少了人工干預(yù),并不斷地完善和滿(mǎn)足工農(nóng)業(yè)生產(chǎn)和國(guó)防科技日益增長(zhǎng)的需要。微機(jī)控制系統(tǒng)由于具有成本低、體積小、功耗小、可靠性高和使用靈活等特點(diǎn),因而廣泛的應(yīng)用于工農(nóng)業(yè)生產(chǎn)、交通運(yùn)輸、
9、國(guó)防建設(shè)和空間技術(shù)等各個(gè)領(lǐng)域。其控制對(duì)象已從單一的工廠(chǎng)流程擴(kuò)展到企業(yè)生產(chǎn)過(guò)程的管理和控制。隨著微機(jī)和單片機(jī)的推廣使用,實(shí)現(xiàn)信息自動(dòng)化與過(guò)程控制相結(jié)合的分級(jí)分布式計(jì)算機(jī)控制,使計(jì)算機(jī)控制技術(shù)的水平發(fā)展到一個(gè)嶄新的階段。 現(xiàn)在,許多常規(guī)的控制儀表和調(diào)節(jié)器已經(jīng)為計(jì)算機(jī)所取代。計(jì)算機(jī)不斷地監(jiān)視整個(gè)生產(chǎn)過(guò)程,對(duì)生產(chǎn)中的各個(gè)參數(shù)進(jìn)行采樣,迅速進(jìn)行復(fù)雜的數(shù)據(jù)處理,打印和顯示工藝過(guò)程的統(tǒng)計(jì)數(shù)字和參數(shù),并發(fā)出各種控制命令。 溫度控制是工業(yè)生產(chǎn)過(guò)程中經(jīng)常遇到的過(guò)程控制,有些工藝過(guò)程對(duì)其溫度的控制效果直接影響著產(chǎn)品的質(zhì)量,因而設(shè)計(jì)一種較為理想的溫度控制系統(tǒng)是非常有價(jià)值的。2設(shè)計(jì)方案 在溫度測(cè)量控制系統(tǒng)中,實(shí)際溫度值
10、由pt100恒流工作調(diào)理電路進(jìn)行測(cè)量。為了克服pt100線(xiàn)性度不好的缺點(diǎn),在信號(hào)調(diào)理電路中加入負(fù)反饋非線(xiàn)性校正網(wǎng)絡(luò);調(diào)理電路的輸出電壓經(jīng)adc0808轉(zhuǎn)換后送入單片機(jī)at89s51;對(duì)采樣數(shù)據(jù)進(jìn)行濾波及標(biāo)定處理后,由3位7段數(shù)碼管顯示。輸入的設(shè)定值由4位獨(dú)立按鍵電路進(jìn)行設(shè)定,可分別對(duì)設(shè)定值的十位和個(gè)位進(jìn)行加1、減1操作。設(shè)定值送入單片機(jī)后,由另外一組3位7段數(shù)碼管顯示。數(shù)碼管的段碼由74hc05驅(qū)動(dòng),位碼由三極管2n2222a驅(qū)動(dòng)。為了使兩組數(shù)碼管實(shí)時(shí)顯示,對(duì)兩組數(shù)碼管進(jìn)行動(dòng)態(tài)掃描。整體的電路原理框圖如圖1-1所示。圖1-1整體電路原理框圖系統(tǒng)采用pid閉環(huán)控制方案。如圖1-2所示,將預(yù)置初值
11、與溫度傳感器反饋信號(hào)比較得到偏差(e)進(jìn)行pid運(yùn)算處理得到控制量(u),通過(guò)此量來(lái)控制加熱器的加熱時(shí)間,從而控制加熱功率。由于水本身具有很大的熱慣性,所以必須對(duì)水溫的變化趨勢(shì)作出預(yù)測(cè),并且根據(jù)需要及時(shí)反方向抑制,以防止出現(xiàn)較大的超調(diào)量的波動(dòng)。在pid控制中,積分環(huán)節(jié)(i)具有很強(qiáng)的滯后效應(yīng),而微分環(huán)節(jié)(d)具有預(yù)見(jiàn)性,所以該方案最終采用pd算法,能夠很好的控制超調(diào),并且穩(wěn)態(tài)誤差也很小。圖1-2 系統(tǒng)控制方案 3系統(tǒng)硬件仿真電路3.1 溫度測(cè)量調(diào)理電路圖3-1溫度測(cè)量調(diào)理電路本系統(tǒng)采用恒流工作調(diào)理電路,鉑電阻選用標(biāo)稱(chēng)值為100的pt100作為溫度傳感器。a1、a2、a3采用低漂移運(yùn)放op07c
12、,由于有電流經(jīng)pt100傳感器,所以當(dāng)溫度為0時(shí),在pt100傳感器上有電壓降,這個(gè)電壓為pt100傳感器的偏置電壓,是運(yùn)放a1輸出電壓的一部分,使恒流工作調(diào)理電路的輸出實(shí)際不為零。所以需要對(duì)這個(gè)偏置電壓調(diào)零,r3為調(diào)零電阻,其作用為當(dāng)溫度為0時(shí),將恒流工作調(diào)理電路的輸出調(diào)到零。又因?yàn)閜t100的電阻特性為非線(xiàn)性,pt100在0到100變化范圍內(nèi)非線(xiàn)性誤差為0.4%(0.4),由于本系統(tǒng)無(wú)小數(shù)顯示,0.4的誤差本身不會(huì)對(duì)a/d量化和數(shù)碼管顯示造成影響,但由于軟件編制中,對(duì)標(biāo)度變化程序中的變換系數(shù)做了近似處理,使得非線(xiàn)性誤差接近0.79%(0.79),就有可能對(duì)a/d量化和數(shù)碼管顯示造成影響,所
13、以加進(jìn)了線(xiàn)性化電路,運(yùn)放a3及電阻r1、r4和r6一同構(gòu)成了負(fù)反饋非線(xiàn)性校正網(wǎng)絡(luò)。r5用于調(diào)整運(yùn)放a2的增益。電路的調(diào)整方法如下(用普通電阻代替pt100進(jìn)行調(diào)整):(1) 接入相當(dāng)于0的100的電阻,用于r3調(diào)零。(2) 接入相當(dāng)于50的119.70的電阻,用于r5調(diào)整增益。(3) 接入相當(dāng)于100的139.10的電阻,用于r1或r4調(diào)整線(xiàn)性。 反復(fù)調(diào)整多次,在0到100溫度范圍內(nèi)適宜為止。以溫度值為橫坐標(biāo),電壓值為縱坐標(biāo),由表3-1分析非線(xiàn)性誤差可知:在50時(shí),存在最大偏差為0.005,故非線(xiàn)性校正后非線(xiàn)性誤差變?yōu)?.1%(0.1),a/d量化及數(shù)碼管顯示不會(huì)產(chǎn)生誤操作。表3-1 顯示對(duì)照
14、表理想溫度值0102030405060708090100對(duì)應(yīng)電阻值100103.9107.9111.8115.7119.7123.9127.4131.3135.2139.1實(shí)際輸出電壓0.0020.5021.0041.5022.0042.5053.0013.5024.0014.4984.996顯示溫度值0102030405060708090100注釋1;溫度單位/;電阻值單位/;電壓?jiǎn)挝?v。3.2 a/d轉(zhuǎn)換電路本系統(tǒng)采用5v的電壓源,用pt100電阻傳感器組成的信號(hào)調(diào)理電路作為信號(hào)的輸入裝置,當(dāng)pt100傳感器置于溫度場(chǎng)時(shí),調(diào)理電路將根據(jù)pt100的阻值輸出相應(yīng)的電壓值。將該輸出電壓送到a
15、dc0808的模擬量輸入通道in0,經(jīng)adc0808進(jìn)行模數(shù)轉(zhuǎn)換,將標(biāo)準(zhǔn)的模擬信號(hào)轉(zhuǎn)換為等價(jià)的數(shù)字信號(hào)。本設(shè)計(jì)選用in0作為模擬量輸入通道,則將adc0808的a、b、c三條地址線(xiàn)均置為低電平。轉(zhuǎn)換啟動(dòng)信號(hào)start接到at89s51的p2.0口,轉(zhuǎn)換結(jié)束狀態(tài)信號(hào)eoc接p3.7口,輸出允許信號(hào)oe接p3.6口,地址鎖存允許信號(hào)ale接p3.3口,由于adc0808內(nèi)部沒(méi)有時(shí)鐘電路,所以用at89s51的ale經(jīng)二分頻接adc0808的clk端,vref-接地,vref+接+5v電壓。adc0808的轉(zhuǎn)換結(jié)果輸出到at89s51的p0.0到p0.7口,作為at89s51的輸入信號(hào)。a/d轉(zhuǎn)換接
16、口電路如圖3-2所示。 圖3-2 a/d轉(zhuǎn)換接口電路3.3 按鍵輸入電路 本系統(tǒng)采用4個(gè)按鍵搭建鍵盤(pán)電路,如圖3-3所示。第一個(gè)按鍵用來(lái)判斷是轉(zhuǎn)入控制處理程序運(yùn)行,還是轉(zhuǎn)入鍵盤(pán)處理子程序運(yùn)行;若未按下則轉(zhuǎn)入控制處理子程序運(yùn)行,按下則轉(zhuǎn)入鍵盤(pán)處理子程序運(yùn)行;若第一個(gè)按鍵按下,則第二個(gè)按鍵開(kāi)始起作用,用第二個(gè)按鍵來(lái)判斷是十位進(jìn)行加減操作。若第二個(gè)按鍵未按下,轉(zhuǎn)十位進(jìn)行加減操作,否則轉(zhuǎn)個(gè)位進(jìn)行加減操作;第三個(gè)按鍵為減一操作,第四個(gè)按鍵為加一操作。為了方便按鍵操作,將個(gè)位和十位的設(shè)定值均設(shè)置為5,如果加一操作結(jié)果等于11,給加一單元重新賦值5,如果減一操作結(jié)果等于0ffh,給減一單元重新賦值5。這樣考
17、慮最壞情況,即用鍵盤(pán)設(shè)置離初始設(shè)定值最遠(yuǎn)的值,第三個(gè)按鍵最多按5次,第四個(gè)按鍵最多按5次。從而大大減少了按鍵次數(shù),且更方便地給出設(shè)定值。第一個(gè)鍵和第二個(gè)鍵的加入,也充分考慮了總程序的整體調(diào)度。圖3-3 按鍵輸入電路3.4 數(shù)碼管顯示電路顯示電路采用兩個(gè)4位led顯示數(shù)碼管,共陰極接法。第一個(gè)數(shù)碼管顯示a/d轉(zhuǎn)換數(shù)據(jù)采集的采樣值,選用3位顯示采樣值,顯示范圍為0到100;第二個(gè)數(shù)碼管顯示由鍵盤(pán)輸入的設(shè)定值,用于顯示對(duì)系統(tǒng)的溫度設(shè)定,也選用3位顯示設(shè)定值,顯示范圍為0到100。由于led顯示電路較多選用動(dòng)態(tài)掃描方式,為了實(shí)現(xiàn)led顯示器的動(dòng)態(tài)掃描,除了要給顯示器提供段的輸入外,還要對(duì)顯示器的位進(jìn)行
18、控制,即段控和位控。所以需要用p1口輸出8條段控線(xiàn);位控線(xiàn)由挑選的p2.1、p2.2、p2.3、p3.0、p3.1和p3.2輸出,其中p2.1、p2.2和p2.3用于驅(qū)動(dòng)鍵盤(pán)輸入的設(shè)定值和數(shù)碼管位控線(xiàn),其余用于驅(qū)動(dòng)顯示a/d轉(zhuǎn)換數(shù)碼管的數(shù)據(jù)碼位控線(xiàn),位控線(xiàn)的數(shù)目等于數(shù)碼管顯示的位數(shù)。p1接口最多可連接8個(gè)led顯示器。為提高顯示亮度,通常加74hc05進(jìn)行段控輸出驅(qū)動(dòng),與7段數(shù)碼管的段碼驅(qū)動(dòng)輸入端相連,由于位控的驅(qū)動(dòng)電流較大,8段全亮需40到60ma,所以用三極管9012提高驅(qū)動(dòng)能力,其集電極接到7段數(shù)碼管的位碼驅(qū)動(dòng)輸入端,三極管的發(fā)射極接地,將at89s51的p3.0、p3.1、p3.2分別
19、與一個(gè)2k的電阻連接到三極管的基極,用于驅(qū)動(dòng)采樣值顯示數(shù)碼管,將at89s51的p2.0、p2.1和p2.2口分別與一個(gè)2k的電阻連接到三極管的基極,用于驅(qū)動(dòng)設(shè)定值顯示數(shù)碼管。顯示電路如圖3-4所示。圖3-4 顯示電路3.5 溫度控制電路系統(tǒng)的電阻絲和風(fēng)扇均采用如圖3-5所示的電路形式。此電路采用晶體管驅(qū)動(dòng)固態(tài)繼電器。當(dāng)p3.4為低電平,繼電器rl1吸合;當(dāng)p3.4或p3.5為高電平時(shí),繼電器rl1釋放。采用這種控制邏輯可以使繼電器在上電復(fù)位或單片機(jī)復(fù)位時(shí)不吸合。繼電器由晶體管2n2222a驅(qū)動(dòng),它可以提供所需的驅(qū)動(dòng)電流。圖3-5 繼電器控制電路 pt100溫度測(cè)控系統(tǒng)的完整電路如圖3-6所示
20、。圖3-6 溫度測(cè)控系統(tǒng)電路圖4 程序設(shè)計(jì)4.1 程序整體設(shè)計(jì)程序的控制思想:設(shè)置目標(biāo)溫度后,系統(tǒng)采樣水溫,并通過(guò)預(yù)設(shè)溫度、當(dāng)前溫度、歷史偏差等進(jìn)行pid運(yùn)算產(chǎn)生fout輸出參數(shù),通過(guò)該參數(shù)控制加熱時(shí)間,從而調(diào)節(jié)加熱器的平均功率,實(shí)現(xiàn)系統(tǒng)的pid控制。整體功能通過(guò)主程序和中斷服務(wù)程序配合實(shí)現(xiàn)。主程序流程:系統(tǒng)首先初始化i/o、定時(shí)器,之后進(jìn)入主循環(huán),進(jìn)行溫度采樣和相關(guān)處理。在系統(tǒng)運(yùn)行過(guò)程中通過(guò)按鍵重新設(shè)置目標(biāo)溫度值。pt100溫度測(cè)控系統(tǒng)的主程序流程圖如圖4-1所示。圖4-1 溫度測(cè)控系統(tǒng)主程序4.2 子程序設(shè)計(jì) 1.pid控制的實(shí)現(xiàn) (1)pid簡(jiǎn)介。pid(proportional int
21、egral derivative)控制是控制工程中技術(shù)成熟、應(yīng)用廣泛的一種控制策略,經(jīng)過(guò)長(zhǎng)期的工程實(shí)踐,已形成了一套完整的控制算法和典型的結(jié)構(gòu)。它不僅適用于數(shù)學(xué)模型已知的控制系統(tǒng),而且對(duì)于大多數(shù)數(shù)學(xué)模型難以確定的工業(yè)過(guò)程也可以應(yīng)用,在眾多工業(yè)過(guò)程控制中取得了滿(mǎn)意的應(yīng)用效果。 (2)pid工作原理。由于來(lái)自外界的各種擾動(dòng)不斷產(chǎn)生,要想達(dá)到現(xiàn)場(chǎng)控制對(duì)象值保持恒定的目的控制作用就必須不斷地進(jìn)行。若擾動(dòng)出現(xiàn)使得現(xiàn)場(chǎng)控制對(duì)象(以下簡(jiǎn)稱(chēng)被控參數(shù))發(fā)生變化,現(xiàn)場(chǎng)檢測(cè)元件就會(huì)將這種變化采集后經(jīng)變送器送到pid控制器的輸入端,并與其給定值(以下簡(jiǎn)稱(chēng)sp值)進(jìn)行比較得到偏差值(以下簡(jiǎn)稱(chēng)e值),調(diào)節(jié)器按此偏差并以預(yù)
22、先設(shè)定的整定參數(shù)控制規(guī)律發(fā)出控制信號(hào),去改變調(diào)節(jié)器的開(kāi)度,使調(diào)節(jié)器的開(kāi)度增加或減小,從而使現(xiàn)場(chǎng)控制對(duì)象值發(fā)生改變,并趨向于給定值(sp值),以達(dá)到控制的目的,如圖4-2所示。其實(shí)pid的實(shí)質(zhì)就是對(duì)偏差(e)值進(jìn)行比例、積分、微分運(yùn)算,根據(jù)運(yùn)算結(jié)果控制執(zhí)行部件的過(guò)程。圖4-2 模擬pid控制系統(tǒng)原理圖 pid控制器的控制規(guī)律可以描述為: (4-1)比例(p)控制能迅速反應(yīng)誤差,從而減小穩(wěn)態(tài)誤差。但是,比例控制不能消除穩(wěn)態(tài)誤差。比例放大系數(shù)的放大,會(huì)引起系統(tǒng)的不穩(wěn)定。積分(i)控制的作用是:只要系統(tǒng)有誤差存在,積分控制器就不斷的積累,輸出控制量,以消除誤差。因而,只要有足夠的時(shí)間,積分控制就能完全
23、消除誤差,使系統(tǒng)誤差為零,從而消除穩(wěn)態(tài)誤差。積分作用太強(qiáng)會(huì)使系統(tǒng)超調(diào)加大,甚至使系統(tǒng)出現(xiàn)震蕩。微分(d)控制可以減小超調(diào)量,克服振蕩,使系統(tǒng)的穩(wěn)定性提高,同時(shí)加快系統(tǒng)的動(dòng)態(tài)響應(yīng)速度,減小調(diào)整時(shí)間,從而改善系統(tǒng)的動(dòng)態(tài)性能。根據(jù)不同被控對(duì)象的控制特性,又可以分為p、pi、pd、pid等不同的控制模型。 (3)數(shù)字pid的實(shí)現(xiàn)。在連續(xù)時(shí)間控制系統(tǒng)(模擬pid控制系統(tǒng))中,pid控制器的應(yīng)用非常廣泛。其設(shè)計(jì)技術(shù)成熟,長(zhǎng)期以來(lái)形成了典型的結(jié)構(gòu),參數(shù)整定方便,結(jié)構(gòu)更改靈活,能滿(mǎn)足一般的控制要求。隨著計(jì)算機(jī)的快速發(fā)展,人們將計(jì)算機(jī)引入到pid控制領(lǐng)域,也就出現(xiàn)了數(shù)字式pid控制。由于計(jì)算機(jī)基于采樣控制理論,
24、計(jì)算方法也不能沿襲傳統(tǒng)的模擬pid控制算法,所以必須將控制模型離散化。離散化的方法為:以t為采樣周期,k為采樣序號(hào),用求和的形式代替積分,用增量的形式(求差)代替微分,這樣就可以將連續(xù)的pid計(jì)算公式離散: (4-2) 式中(4-1)就可以離散為: (4-3)或者: (4-4) 這樣就可以讓計(jì)算機(jī)或單片機(jī)通過(guò)采樣的方式實(shí)現(xiàn)pid控制。具體的pid控制又分為位置式pid控制和增量式pid控制,(4-4)給出了控制量的全部大小,所以稱(chēng)為全量式或位置式控制。如果計(jì)算機(jī)只對(duì)相鄰的兩次做計(jì)算,只考慮在前一次基礎(chǔ)上計(jì)算機(jī)輸出量的大小變化,而不是全部輸出信息的計(jì)算,這種控制叫做增量式pid控制算法,其實(shí)質(zhì)就
25、是求的大小。而,所示將式(4-4)作自減變換有: (4-5) 式中: 2.溫度控制pid算法設(shè)計(jì) 本系統(tǒng)利用上面所介紹的位置式pid算法,將溫度傳感器采樣輸入作為當(dāng)前輸入,與設(shè)定值進(jìn)行相減得到偏差ek,然后再對(duì)其進(jìn)行pid運(yùn)算產(chǎn)生輸出結(jié)果fout,最后讓fout控制繼電器的時(shí)間進(jìn)而控制加熱器。為了方便pid運(yùn)算,首先建立一個(gè)pid的結(jié)構(gòu)體數(shù)據(jù)類(lèi)型。該數(shù)據(jù)類(lèi)型用于保護(hù)pid運(yùn)算所需要的p、i、d系數(shù),以及設(shè)定值、歷史誤差的累加和等信息。typedef struct pid float setpoint; float proportion; float integral; float deriva
26、tive; int lasterror; int sumerror;pid;pidstpid; 下面是pid運(yùn)算的算法程序,通過(guò)pid運(yùn)算返回fout,fout的值決定是否加熱、加熱時(shí)間是多少。pid運(yùn)算的實(shí)現(xiàn)代碼如下:float pidcalc(pid *pp,int nextpoint) int derror,error; error=pp-setpoint*10-nextpoint; pp-sumerror + =error; derror =error - pp -lasterror; pp-preverror =pp-lasterror; pp-lasterror = error;
27、return(pp-proportion*error +pp-integral*pp-sumerror -pp-derivative*derror);在實(shí)際運(yùn)算時(shí),由于水具有很大的熱慣性,而且pid運(yùn)算中的1(積分項(xiàng))具有非常明顯的延遲效應(yīng),不能保留,所以必須把積分項(xiàng)去掉。相反,d(微分項(xiàng))有很強(qiáng)的預(yù)見(jiàn)性,能夠加快反應(yīng)速度,抑制超調(diào)量,因此微分作用應(yīng)該適當(dāng)加強(qiáng)才能達(dá)到較佳的控制效果,系統(tǒng)最終選擇pd控制方案。下面是pd控制的實(shí)現(xiàn)過(guò)程:float pidcalc(pid*pp,int nextpoint) int derror,error; error=pp-setpoint*10-nextpo
28、int; derror=error-pp-lasterror; pp-preverror=pp-lasterror; pp-lasterror=error return(pp-proportion*error -pp-derivative*derror );3.溫度控制的實(shí)現(xiàn) 通過(guò)溫度的pid運(yùn)算,產(chǎn)生結(jié)果fmin,該參數(shù)決定是否加熱。加熱時(shí)間多長(zhǎng)。 stpid.proportion=2; stpid.integral=0; stpid.derivative=5; fout=pidcalc(&stpid,(int)(ft*10); if(fout=0) *p_ioa_buffer&=0ff7f
29、; else *p_ioa_buffer=00080;加熱時(shí)間由主函數(shù)計(jì)算。主程序中通過(guò)pidcalc函數(shù)得到fmin參數(shù)。若該參數(shù)大于零,則開(kāi)啟加熱器。如果pidcalc計(jì)算結(jié)果比較大說(shuō)明離目標(biāo)溫度相差較大,則加熱時(shí)間比較長(zhǎng);如果計(jì)算結(jié)果比較小,說(shuō)明離目標(biāo)溫度相差較小,加熱時(shí)間相對(duì)較短。 4.pid參數(shù)的整定 由pid控制原理知:比例(p)控制能迅速反映誤差,減小穩(wěn)態(tài)誤差;比例作用的加大會(huì)引起系統(tǒng)的穩(wěn)定。積分(1)控制的作用,只要系統(tǒng)有偏差存在,積分作用就不斷地積累,輸出控制量以消除誤差;積分作用太強(qiáng)會(huì)使系統(tǒng)超調(diào)加大,甚至使系統(tǒng)出現(xiàn)震蕩。微分(d)控制可以減小超調(diào)量,克服震蕩,使系統(tǒng)的穩(wěn)定性
30、提高。同時(shí)加快系統(tǒng)的動(dòng)態(tài)響應(yīng)速度,減小調(diào)整時(shí)間,從而改善系統(tǒng)的動(dòng)態(tài)性能??刂频哪繕?biāo)就是:反應(yīng)速度盡可能快,超調(diào)量盡可能小,穩(wěn)態(tài)誤差趨近于零。5.a/d轉(zhuǎn)換子程序 先送地址鎖存允許信號(hào)ale一個(gè)上升沿,是a.b.c地址狀態(tài)送入地址鎖存器中,然后送start一個(gè)上升沿是內(nèi)部寄存器清0,再給其一個(gè)下降沿,開(kāi)始進(jìn)行a/d轉(zhuǎn)換。之后判斷轉(zhuǎn)換結(jié)束狀態(tài)信號(hào)eoc是否為1,為0則繼續(xù)等待轉(zhuǎn)換,為1則將轉(zhuǎn)換好的數(shù)字量經(jīng)adc0808的8個(gè)數(shù)據(jù)輸出端d0d7送到at89s51的p0口。轉(zhuǎn)換流程圖如圖4-3所示。 圖4-3 a/d轉(zhuǎn)換子程序流程圖6.鍵盤(pán)處理子程序 按鍵處理子程序流程圖如圖4-4所示。7.溫度標(biāo)定轉(zhuǎn)
31、換模塊 控制系統(tǒng)在讀入被測(cè)模擬信號(hào)并轉(zhuǎn)換成數(shù)字量后,需要轉(zhuǎn)換成人們所熟悉的物理量,這種轉(zhuǎn)換就是標(biāo)度變換。線(xiàn)性標(biāo)度變換公式為: y=(ymax-ymin)(x-nmin)/(nmax-nmin)+ymin式中,y為參數(shù)測(cè)量值;ymax為測(cè)量范圍最大值;ymin為測(cè)量范圍最小值;nmin為對(duì)應(yīng)的a/d轉(zhuǎn)換值;nmin為ymin對(duì)應(yīng)的a/d轉(zhuǎn)換值;x為測(cè)量值y對(duì)應(yīng)的a/d轉(zhuǎn)換值。 本系統(tǒng)中,ymin=0,ymax=100,nmin=0,nmax=255,則 y=(100-0)(x-0)/(255-0)+0=a1x+a0式中,a1=0.39,a0=0。由于x的系數(shù)為小數(shù),在單片機(jī)中編制像0.39這樣的
32、小數(shù)的乘法程序很難實(shí)現(xiàn),如果將其取近似值0.4,則乘以最大a/d轉(zhuǎn)換值后,會(huì)產(chǎn)生0.01255=2.55的誤差。所以設(shè)線(xiàn)性系數(shù)為a1,最終轉(zhuǎn)化的結(jié)果為100,通過(guò)a1=100256/255=100.39可確定系數(shù)。是四舍五入取100時(shí),顯示最高只能顯示99,所以選用101。 8.顯示子程序 顯示模塊的功能為:使第1個(gè)數(shù)碼管顯示a/d轉(zhuǎn)換數(shù)據(jù)采集的采樣值,而第2個(gè)數(shù)碼管顯示由按鍵輸入的設(shè)定值,用于顯示對(duì)系統(tǒng)的溫度設(shè)定,在整個(gè)系統(tǒng)進(jìn)行測(cè)控的過(guò)程中,兩個(gè)數(shù)碼管同時(shí)顯示,顯示程序中采樣值顯示采用了常規(guī)的顯示程序,不再贅述。這里只談編寫(xiě)顯示程序中鍵盤(pán)顯示時(shí)主要注意的一點(diǎn)。由于最后生成的設(shè)定值是有十位或個(gè)
33、位的加一和十位或個(gè)位的減一鍵輸入,須嚴(yán)格區(qū)分才可以編制其顯示程序,此處采用的方法是將個(gè)位的加一、減一鍵輸入的值存放在28h,而十位的加一、減一鍵輸入的值存放在34h,然后驅(qū)動(dòng)不同的位碼即可正常顯示。流程圖如圖4-5所示。圖4-4 按鍵處理子程序流程圖圖4-5 顯示處理子程序流程圖 4.3 源程序設(shè)計(jì) org 0000hjmp startorg 0040hstart:lcall zhuanhuan setb p3.0 setb p3.1 setb p3.2 setb p2.0 setb p2.1 setb p2.2 lcall delay1 mov 34h,#05 mov 35h,#05 mov
34、 28h,#05 mov 29h,#05lll:lcall zhuanhuan mov 31h,a lcall delay4 lcall zhuanhuan mov 32h,a lcall delay4 lcall zhuanhuan mov 33h,a lcall filter lcall chnter lcall show jb p2.4,kongzhi1key0: jb p2.4,lll lcall delay4 lcall zhuanhuan lcall chnter lcall show lcall delay4key1: jb p2.5,key51 lcall delay4 lca
35、ll zhuanhuan lcall chnter lcall show lcall delay4key2: jb p2.7,key3 lcall delay4 lcall zhuanhuan lcall chnter lcall show lcall show lcall show lcall show lcall show lcall show lcall delay4 lcall zhuanhuan lcall chnter lcall show lcall delay4 lcall zhuanhuan lcall chnter lcall show dec 34h mov a,34h
36、mov 35h,34h cjne a,#0ffh,key22 mov 34h,#05h lcall zhuanhuan lcall chnter lcall show lcall delay4key22: lcall zhuanhuan lcall chnter lcall show ajmp key2kongzhi1: ljmp kongzhikey51: ljmp key5key3: jb p2.6,key02 lcall delay4 lcall zhuanhuan lcall chnter lcall show lcall show lcall show lcall show lcal
37、l show lcall show lcall delay4 lcall zhuanhuan lcall chnter lcall show lcall delay4 inc 35h mov a,35h mov 34h,35h lcall delay4 cjne a,#0ah,key33 lcall zhuanhuan lcall chnter lcall show lcall delay4 mov 35h,#04 lcall delay4key33: lcall zhuanhuan lcall chnter lcall show ajmp key3key02: ljmp key0key5:
38、jb p2.7,key6 lcall delay4 lcall zhuanhuan lcall chnter lcall show lcall show lcall show lcall show lcall show lcall show lcall delay4 lcall zhuanhuan lcall chnter lcall show lcall delay4 lcall zhuanhuan lcall chnter lcall show dec 28h mov a,28h mov 29h,28h cjne a,#0ffh,key55 mov 28h,#05 lcall zhuanh
39、uan lcall chnter lcall show lcall delay4key55: lcall zhuanhuan lcall chnter lcall show ajmp key5key6: jb p2.6,key01 lcall delay4 lcall zhuanhuan lcall chnter lcall show lcall show lcall show lcall show lcall show lcall show lcall delay4 lcall zhuanhuan lcall chnter lcall show lcall delay4 lcall zhua
40、nhuan lcall chnter lcall show lcall delay4 inc 29h mov a,29h mov 28h,29h lcall delay4 cjne a,#9,key66 mov 29h,#04 lcall zhuanhuan lcall chnter lcall show lcall delay4 lcall zhuanhuan lcall chnter lcall show lcall delay4 key66: lcall zhuanhuan lcall chnter lcall show ajmp key6 key01: ljmp key0 kongzh
41、i: lcall zhuanhuan lcall chnter lcall wucha mov a,2eh mov 39h,a lcall mult1 lcall delay1 lcall delay1 lcall show lcall delay1 lcall delay1 lcall zhuanhuan lcall filter lcall chnter lcall wucha mov 3ah,a mov a,39h mov b,3ah clr c subb a,b mov 3bh,a lcall mult2 zzp:mov a,37h xrl a,#00h jb acc.7,zzp1 l
42、jmp zzp2zzp1:mov a,37h cjne a,#0ffh,zzp3 ljmp zzp4zzp2:mov a,37h cjne a,#03h,zzp5 ljmp zzp6zzp3:jc zzp7 ljmp zzp37zzp4:mov a,36h xrl a,#00h jb acc.7,zzp8ljmp zzp9zzp5:jc zzp10 ljmp zzpp5zzpp5:mov a,36h xrl a,#00h jb acc.7,zzpp51 ljmp wu5zzpp51:mov a,36h cjne a,#0feh,zzpp52 ljmp wu5zzpp52:jc zzpp521l
43、jmp wu5zzpp521:ljmp wu0zzp6:mov a,36hxrl a,#00hjb acc.7,zzp11ljmp wu5zzp7:mov a,37h cjne a,#0feh,zzp12 ljmp zzp13zzp8:mov a,36h cjne a,#0fbh,zzp14 ljmp wu4zzp9:mov a,36h cjne a,#00h,zzp15 ljmp wu1zzp10:mov a,37h cjne a,#02h,zzp16 ljmp zzp17zzp11:mov a,36h cjne a,#0f8h,zzp18 ljmp wu1zzp12:jc zzp19 lj
44、mp zzp4zzp13:mov a,36h xrl a,#00h jb acc.7,zzp20ljmp zzp21zzp14:jc zzp141 ljmp zzp22zzp141:ljmp wu4zzp15:jc zzp151 ljmp wu0zzp151:ljmp wu1zzp16:jc zzp23 ljmp zzp17zzp17:mov a,36h xrl a,#00h jb acc.7,zzp24 ljmp zzpp17zzpp17:mov a,36h cjne a,#01h,zzpp171 ljmp wu5zzpp171:jc zzpp1711ljmp wu5zzpp1711:ljmp wu0zzp18:jc zzp181 ljmp wu0zzp181:ljmp wu1zzp19:mov a,37h cjne a,#0fdh,zzp25 ljmp zzp26zzp20:mov a,36h cjne a,#0fbh,zzp27 ljmp wu4zzp21:mov a,36h cjne a,#00h,zzp28 ljmp wu2zzp22:mov a,36h cjne a,#0ffh,zzp29 ljmp wu2zzp23:mov a,37h cjne a,#01h,zzp30 ljmp
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年潘彭茅艷離婚后同居合同
- 礦山工程監(jiān)控勞務(wù)施工合同范本
- 市政路燈改造工程勞務(wù)合同
- 化妝品公司配電房安裝合同
- 乳制品公司銷(xiāo)售員招聘合同
- 學(xué)校就業(yè)合同考古學(xué)與博物館學(xué)
- 高爾夫球場(chǎng)建設(shè)合同
- 道路橋梁養(yǎng)護(hù)全站儀租賃協(xié)議
- 編程教育機(jī)構(gòu)導(dǎo)師聘用合同
- 港口國(guó)際合作服務(wù)合同
- 統(tǒng)編版六年級(jí)下冊(cè)語(yǔ)文詞句段運(yùn)用及仿寫(xiě)
- GB/T 18103-2022實(shí)木復(fù)合地板
- 地下礦山掘進(jìn)施工現(xiàn)場(chǎng)應(yīng)急處置方案
- 插花藝術(shù)形考大作業(yè)1119
- 2023年吉大考博英語(yǔ)真題
- GB/T 29240-2012信息安全技術(shù)終端計(jì)算機(jī)通用安全技術(shù)要求與測(cè)試評(píng)價(jià)方法
- GB/T 10360-2008油料餅粕扦樣
- 保險(xiǎn)公司柜面服務(wù)規(guī)范與服務(wù)技巧
- 2022高中學(xué)業(yè)水平考試信息技術(shù)會(huì)考知識(shí)點(diǎn)歸納總結(jié)(復(fù)習(xí)必背)
- PEP-3心理教育量表-評(píng)估報(bào)告
- 國(guó)開(kāi)電大財(cái)務(wù)管理學(xué)習(xí)活動(dòng)第4章 騰訊公司融資案例分析參考答案
評(píng)論
0/150
提交評(píng)論