基于pid的液位調節器設計方案_第1頁
基于pid的液位調節器設計方案_第2頁
基于pid的液位調節器設計方案_第3頁
基于pid的液位調節器設計方案_第4頁
基于pid的液位調節器設計方案_第5頁
已閱讀5頁,還剩53頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

1、目 錄1 緒論11.1研究的目的和意義11.2本設計的優點及其所要實現的功能21.3 本文的主要研究內容22 系統工作原理及其總體設計方案32.1 系統工作原理32.2 總體設計方案33 系統的硬件電路設計53.1核心控制模塊的設計53.1.1 ATmega16L單片機簡介53.1.2 ATmega16L單片機最小系統63.2 液位采集模塊的設計73.2.1 液位傳感器選擇73.2.2 采集電路的設計83.3 執行模塊的設計11水泵的選型及功能113.3.2 電機驅動電路的設計123.4 液位設定模塊的結構及功能143.5 顯示模塊的設計153.6 報警模塊的設計163.7 電源的設計174

2、系統的軟件設計184.1 單片機軟件開發環境184.2 主程序設計184.3 各功能模塊子程序的設計204.5.1 A/D轉換子程序結構設計214.5.2 液位處理程序結構設計224.5.3 液位顯示子程序結構設計224.5.4 液位設定子程序結構設計225 總體調試23總結24參考文獻25附錄1:程序27附錄2:電路圖32致謝33英文資料及中文翻譯11緒論1.1研究的目的和意義當今社會許多工業控制系統,自然科學研究會需要對水位的監測。比如海洋環境監測開始,它是獲取長期、連續的海洋環境資料的唯一途徑。能夠直接為沿海工程、港口建設、交通運輸、海洋生物資源開發、海洋環境監測、濕地保護及近岸海洋開發

3、提供研究、評價和作業必不可少的依據。又比如在工業鍋爐控制系統中對水位的監測要求也是很高的,現今大多數電廠都采用工業鍋爐采用微機控制,它可以直觀而集中的顯示鍋爐各運行參數。能快速計算出機組在正常運行和啟停過程中的有用數據,能在顯示器上同時顯示鍋爐運行的水位、壓力、爐膛負壓、煙氣含量、測點溫度、燃煤量等數十個運行參量的瞬時值、累計值及給定值,并能按需要在鍋爐的結構示意畫面的相應位置上顯示出參數值。因此,水位傳感器的研究對實際有很大的現實意義。基于對水位測量原理的研究和水位傳感器的分析,在本液位調節系統中采用了液位檢測電路和單片機智能系統實現對液位的測量和控制。目前工業自動化水平已成為衡量各行各業現

4、代化水平的一個重要標志。同時,控制理論的發展也經歷了古典控制理論、現代控制理論和智能控制理論三個階段。自動控制系統可分為開環控制系統和閉環控制系統。一個控制系統包括控制器、傳感器、變送器、執行機構、輸入輸出接口。控制器的輸出經過輸出接口、執行機構,加到被控系統上;控制系統的被控量,經過傳感器,變送器,通過輸入接口送到控制器。不同的控制系統,其傳感器、變送器、執行機構是不一樣的。比如壓力控制系統要采用壓力傳感器。電加熱控制系統采用的傳感器是溫度傳感器。目前,PID控制及其控制器或智能PID控制器(儀表)已經很多,產品已在工程實際中得到了廣泛的應用,有各種各樣的PID控制器產品,各大公司均開發了具

5、有PID參數自整定功能的智能調節器(intelligent regulator),其中PID控制器參數的自動調整是通過智能化調整或自校正、自適應算法來實現。通過本次畢業設計對掌握電路設計和ATmega16L程序設計的思路與方法,結合單片機與傳感器技術對液位進行檢測和控制以使系統的響應速度加快,超調量減少,過渡過程時間縮短,振蕩次數減少控制成為本系統研究的主要目的和意義。1.2本設計的優點及其所要實現的功能1.本設計的優點針對液位控制過程中存在大滯后、時變、非線性的特點,該數字PID控制器可以在線實現PID參數和程序的修改,使控制系統的響應速度加快,超調量減少,過渡過程時間縮短,振蕩次數減少等優

6、點。2.本設計可以實現的功能(1)完成基于PID的液位調節器設計;(2)實現液位的自動控制;(3)具有液位顯示功能;(4)具有鍵盤設定PID控制參數功能;(5)當液位超過報警范圍時,能通過聲光報警。1.3 本文的主要研究內容本文以ATmega16L單片機為核心,結合傳感器技術來實現PID液位調節器的設計。主要研究PID液位調節器的基本工作原理,硬件電路設計及軟件設計。其中,硬件部分包括核心控制模塊ATmega16L單片機及其外圍電路的設計;軟件部分包括系統程序控制流程圖以及主程序及各功能模塊程序的結構設計等內容。在本次畢業設計中,主要涉及到如下工作:(1)研究與分析PID控制理論的發展現狀,并

7、提出本設計的最終方案。(2)選擇以單片機為核心的中央處理器。在設計的過程中,熟悉ATmega16L單片機C語言的設計流程和開發環境。同時,對各功能模塊進行軟硬件的設計與實現。(3)在學習單片機的基礎上,完成硬件電路各個功能模塊的設計和軟件程序的編寫,以及電路仿真和調試,最終實現液位顯示、自動調節的功能。2系統工作原理及其總體設計方案2.1 系統工作原理在工程實際中,應用最為廣泛的調節器控制規律為比例、積分、微分控制,簡稱PID控制,又稱PID調節。PID控制原理如圖2-1所示。圖2-1 PID控制原理圖PID調節器就是基于PID控制原理而實現自動控制的系統,其結構圖如圖2-2所示。圖2-2 P

8、ID液位調節器原理圖2.2 總體設計方案基于PID的液位調節器設計的目的是實現液位的自動調節,即建立PID控制,通過反饋作用比較實時液位與預設液位的大小以自動調節液位。本設計的基本系統構成主要包括單片機核心控制模塊、液位采集模塊、執行模塊、電機驅動模塊、報警模塊等。本系統先通過液位采集模塊對水位信號進行采樣,然后將采集到的信號送給ATmega16L單片機進行處理,最后控制由驅動電路驅動的水泵實現液位調節。另外,本設計還實現了當前液位值及超限液位報警等功能。總體方案如圖2-3所示。 單片機 ATmega16L液位傳感器水泵時間模塊液晶顯示模塊蜂鳴器、高亮發光二極管鍵盤輸入圖2-3 總體設計方案框

9、圖3系統的硬件電路設計3.1核心控制模塊的設計3.1.1 ATmega16L單片機簡介單片機(又稱微處理器)是在一片硅片上集成了中央處理器(CPU)、數據存儲器(RAM)、程序存儲器(ROM或者FLASH)、定時器/計數器以及多種I/O接口的單芯片型微型計算機。本設計所采用的單片機是ATmega16L單片機開發板。該單片機芯片由ATMEL公司于1997年推出的一款高端AVR單片機(ATmega系列)。它有內部接口豐富、功能齊全、性價比高、功耗低、生產技術高密度、擁有非易失性存儲等優點。1、 功能特性概述AVR RISC結構;數據和非易失性程序存儲器;工作電壓和時鐘:2.75V;08MHz.2、

10、引腳功能說明(1)VCC為數字電路的電源,GND為地。(2)端口A(PA7-PA0)作為A/D轉換器的模擬輸入端,是8位雙向I/O口,具有可編程的內部上拉電阻。其輸出緩沖器具有對稱的驅動特性,可以輸出和吸收大電流。作為輸入使用時,若內部上拉電阻使能,端口被外部拉低時將輸出電流。在復位過程中,即使系統時鐘還未起振,端口A處于高阻狀態。(3)端口B(PB7-PB0)為8位雙向I/O口,具有可編程的內部上拉電阻。其輸出緩沖器具有對稱的驅動特性,可以輸出和吸收大電流。作為輸入使用時,若內部上拉電阻使能,端口被外部電路拉低時將輸出電流。在復位過程中,即使系統始終還未起振,端口B處于高阻狀態。端口B也可以

11、用做其他不同的特殊功能。(4)端口C(PC7-PC0)為8位雙向I/O口,具有可編程的內部上拉電阻。其輸出緩沖器具有對稱的驅動特性,可以輸出和吸收大電流。作為輸入使用時,若內部上拉電阻使能,端口被外部電路拉低時將輸出電流。在復位過程中,即使系統始終還未起振,端口C處于高阻狀態。如果JTAG接口使能,即使復位出現引腳PC5(TD1)、PC3(TMS)與PC2(TCK)的上拉電阻被激活。端口C也可以用做其他不同的特殊功能。(5)端口D(PD7-PD0)為8位雙向I/O口,具有可編程的內部上拉電阻。其輸出緩沖器具有對稱的驅動特性,可以輸出和吸收大電流。作為輸入使用時,若內部上拉電阻使能,端口被外部電

12、路拉低時將輸出電流。在復位過程中,即使系統始終還未起振,端口D處于高阻狀態。端口D也可以用做其他不同的特殊功能。(6)RESET為復位輸入引腳,持續時間超過最小門限時間的低電平將引起復位。(7)XTAL1為晶振反相放大器的輸入端和內部時鐘操作電路的輸入端。(8)XTAL2為晶振反相放大器的輸出端。(9)AVCC是端口A與A/D轉換器的電源。不使用ADC時,該引腳應該直接與Vcc連接。使用ADC時應通過一個低通濾波器與Vcc連接。(10)AREF是A/D的模擬基準輸入引腳。3.1.2 ATmega16L單片機最小系統ATmega16L單片機內含有FLASH程序存儲器和SRAM數據存儲器,故在一般

13、情況下不需要擴展存儲器。在該單片機的XTAL1和XTAL2之間加上0-8MHz的晶振,并通過20pF左右的電容接地為單片機提供工作時鐘,在9引腳加上低電平復位的復位電路并為單片機加上4.0-6.0V電源后,ATmega16L單片機即可正常工作。以上三部分共同組成了ATmega16L單片機的最小系統如圖3-1。圖3-1 ATmega16L最小系統電路圖3.2 液位采集模塊的設計3.2.1 液位傳感器選擇傳感器是信號采集系統的首要部件,是實現現代化測量和自動控制的主要環節,是信息的源頭,又是信息社會賴以存在和發展的物質與技術基礎。本系統用到的是液位傳感器。在眾多可以探測液位信號傳感器中,我選用了超

14、聲波傳感器。以超聲波作為檢測手段,必須產生超聲波和接收超聲波。完成這種功能的裝置就是超聲波傳感器,習慣上稱為超聲換能器,或者超聲探頭。 超聲波探頭主要由壓電晶片組成,既可以發射超聲波,也可以接收超聲波。小功率超聲探頭多作探測作用。它有許多不同的結構,可分直探頭(縱波)、斜探頭(橫波)、表面波探頭(表面波)、蘭姆波探頭(蘭姆波)、雙探頭(一個探頭反射、一個探頭接收)等。 超聲探頭的核心是其塑料外套或者金屬外套中的一塊壓電晶片。超聲波傳感器是利用超聲波的特性研制而成的傳感器。超聲波是一種振動頻率高于聲波的機械波,由換能晶片在電壓的激勵下發生振動產生的,它具有頻率高、波長短、繞射現象小,特別是方向性

15、好、能夠成為射線而定向傳播等特點,因此本系統選用了超聲波傳感器。采集電路的設計AT mega16L單片機的ADC的結構及功能ATmega16L單片機集成了8通道10位逐次逼近型A/D轉換器。該ADC還包含了一個放大器。它由模擬電源AVCC和模擬地AGND供電。模擬地AGND與數字地GND相連。模擬電源AVCC與數字電源VCC的電壓差別不能超過0.3V。AREF為外部參考電壓輸入端,此電壓應該在AGND與AVCC之間。該單片機的A/D轉換器具有2LSB的精確度和0.5LSB的集成非線性度,轉換時間在65-260us間,比較快速。ATmega16L單片機的ADC具有兩種工作方式:單次轉換方式和自由

16、運行方式。在單次轉換方式下,由程序啟動每次轉換;而在自由運行方式下,ADC會連續采樣并更新ADC數據寄存器,以保持最近一次的采樣值。系統在ADC時鐘的上升沿啟動A/D轉換,第一次啟動A/D轉換,將引發一次啞轉換過程以初始化ADC而得不到采樣值。每一次A/D轉換需要13個時鐘周期。在進行第一次A/D轉換時需要耗費1.5個時鐘周期的采樣/保持時間,在第13個時鐘周期的結束啞轉換,從而開始真正的A/D轉換,在第25個時鐘周期時完成第一次A/D轉換,數據進入ADC的數據寄存器。當ADC工作在單次轉換方式時,每次的A/D轉換結束后需要一個額外的時鐘周期,以開始下一次的A/D轉換。而當ADC工作在自由轉換

17、模式時,第13個時鐘周期結束A/D轉換后即可立即開始下一次的A/D轉換。A/D轉換器的時鐘由系統時鐘經過一個7位的預分頻器得到。ADC的時鐘分頻器的機構。ATmega16L單片機的A/D轉換器的時鐘應該在50200KHz,過高的工作頻率將降低采樣精度。為了減小ATmega16L單片機的內外部數字電路產生的電磁干擾(EMI)對模擬測量精度的影響,在A/D轉換精度要求很高時,就可以采用如下方式剪下噪聲干擾:l 使模擬地線與數字地線單點相連;l 盡量縮短模擬信號通路并遠離高速數字通路;l 模擬電源端AVCC要通過一個RC網絡連接到數字電源VCC;l 如果PA口的一些引腳用作數字輸入口,則在ADC轉換

18、過程中盡量不要改變其狀態。 ATmega16L單片機與A/D轉換相關的寄存器l ADC多路選擇寄存器ADMUX($07)Bit7Bit6Bit5Bit4Bit3Bit2Bit1Bit0_MUX2MUX1MUX0ADC多路選擇寄存器ADMUX用于選擇A/D轉換的通道。ADMUX可讀可寫,初始值為0x00。位73:保留位。位20:MUX2-MUX0選擇A/D轉換的通道。如表3-1所示。表3-1 ADC通道選擇表MUX2MUX1MUX0通道選擇說明000通道0模擬信號從PA0(ADC0)輸入001通道1模擬信號從PA1(ADC1)輸入010通道2模擬信號從PA2(ADC2)輸入0 11通道3模擬信號

19、從PA3(ADC3)輸入100通道4模擬信號從PA4(ADC4)輸入101通道5模擬信號從PA5(ADC5)輸入110通道6模擬信號從PA6(ADC6)輸入111通道7模擬信號從PA7(ADC7)輸入l ADC控制和狀態寄存器ADCSR(0x06)Bit7Bit6Bit5Bit4Bit3Bit2Bit1Bit0ADENADSCADFRADIFADIEADPS2ADPS1ADPS0ADCSR用于設置A/D轉換器的工作方式和頻率。ADCSR可讀可寫,初始值為0x00。位7:ADEN位為ADC使能位。位6:ADSC位為ADC單次轉換方式選擇位。如果ADC使能,置位ADSC位將啟動一次A/D轉換。在轉

20、換過程中ADSC一直保持為高。在轉換過程結束后,轉換結果進入ADC數據寄存器之前一個ADC時鐘,ADSC變為低。位5:ADFR位為ADC自由轉換方式選擇位。如果ADC使能,置位ADFR,則ADC功能工作于自由轉換方式下。ADC將不斷對信號進行采樣并將最近一次的轉換數據存入ADC數據寄存器。ADC工作于自由轉換方式時,第一次轉換時也必須置位ADSC位啟動一次啞轉換,以初始化ADC。位4:ADIF位為ADC中斷標志位。在ADC轉換完成之后ADIF置位。如果全局中斷位I和ADC中斷使能位ADIF置位,則ADIF置位時將執行中斷服務程序。在中斷服務程序里,ADIF被硬件清零,對ADIF位寫1也可以對其

21、清零。位3:ADIE位為ADC中斷使能位。位20:ADPS2-ADPS0位用于選擇ADC時鐘。如表3-2所示表3-2 A/D轉換時鐘選擇ADPS2ADPS1ADPS0時鐘分頻系數ADC時鐘頻率 0002CLK/2 0012 CLK/2 0104 CLK/4 0118 CLK/8 1 0016 CLK/16 10132 CLK/32 11064 CLK/64 111128 CLK/128l ADC數據寄存器ADCH($05)、ADCL($04)Bit15Bit14Bit13Bit12Bit11Bit10Bit9Bit8 _ _ _ _ADC9ADC8Bit7Bit6Bit5Bit4Bit3Bit

22、2Bit1Bit0 ADC7 ADC6 ADC5 ADC4 ADC3ADC2 ADC1ADC0ADC通過逐次比較(successive approximation)方式,將輸入端的模擬電壓轉換成10位的數字量。模擬輸入通道和差分增益的選擇是通過ADMUX寄存器中的MUX位設定的。ADC有自己的中斷,當轉換完成時中斷將被觸發。ADC將10位的轉換結果放在ADC 數據寄存器中(ADCH和ADCL)。作為A/D轉換結果,ADCL必須被先讀,然后再讀取ADCH里面的數據。這樣,在ADCH寄存器被讀取以前即使新一次的采樣已完成,系統仍不會更新ADC數據寄存器,以保證對轉換數據的正確讀取。3.3 執行模塊

23、的設計本液位調節器的執行部分主要由家用小水泵(電機)和電機驅動電路組成。水泵的選型及功能本設計用到的是家用小水泵(電機)和水管等配件。(1)水泵的定義:通常把提升液體、輸送液體或使液體增加壓力 , 即把原動機的機械能變為液體能量從而達到抽送液體目的的機器統稱為泵。 (2)水泵泵的工作原理:容積式泵是利用工作腔容積周期變化來輸送液體;葉片泵是利用葉片和液體相互作用來輸送液體。 (3)水泵選型依據:不僅應根據工藝流程,給排水要求,從五個方面加以考慮,即液體輸送量(流量)、裝置揚程、液體性質、管路布置以及操作運轉條件等因素而且還遵循了如下水泵選型原則:使所選泵的型式和性能符合裝置的工藝參數的要求,

24、必須滿足介質特性的要求,機械方面可靠性高、噪聲低、振動小,經濟上要綜合考慮到設備費、運轉費、維修費和管理費的總成本最低等。本系統設計時參考原則選擇了葉片泵,它該泵需直流12V電源供電,揚程3米,具有體積小、性價比高、易驅動等優點。該泵體積大小高92毫米 外徑32毫米 進出口外徑12毫米,是同一個水泵在DC24V-DC3V之間都能使用(工作電壓可根據需要調節),功率從幾瓦到40多瓦,揚程最高到3米。DC24V時能連續通電時間20多分鐘。在DC12V1A時能連續通電12小時。DC6V以下能連續通電24小時。同時為了實驗現象明顯還配備了出水塑料導管。3.3.2 電機驅動電路的設計本設計為了能實現水泵

25、的抽水還要為其提供12V直流電源,這就用到了電機驅動電路。AVR單片機ATmega16L輸出的脈寬調制(PWM) 信號需經過功率放大才能驅動電機。在幾款型號中我根據性價比、工作條件等依據選擇了L298N電機驅動電路。L298N是SGS公司的產品,比較常見的是15腳Multiwatt封裝的L298N(還有PowerSO20封裝),內部包含4通道邏輯驅動電路。L298N的電源采用12V電壓輸出提供電機驅動電壓;輸出5V電壓提供單片機和探測系統電源。此外它還具有如下特點:電壓最高可達46V;總輸出電流可達4A;較低的飽和壓降;具有過熱保護;TTL輸出電平驅動,可直接連接CPU;具有輸出電流反饋,過載

26、保護。圖3-2為L298N的引腳和外形圖。圖3-2 L298N的引腳圖L298N驅動模塊電路如圖3-3。圖3-3 L298N驅動模塊電路圖15腳Multiwatt封裝的L298N的引腳符號及功能如表3-4所示表3-3 L298N的引腳符號及功能MW.15封裝引腳功能1、5SEN1、SEN2分別為兩個H橋的電流反饋腳,不用時可以直接接地2、31Y1、1Y2輸出端,與對應輸入端(如1A1與1Y1)同邏輯4Vs驅動電壓,最小值需比輸入的低電平電壓高2.5V5、71A1、1A2輸入端,TTL電平兼容6、111EN、2EN時能端,低電平禁止輸出8GND地9Vss邏輯電源,4.5-7V10、122A1、2

27、A2輸入端,TTL電平兼容13、142Y1、2Y2輸出端NC無連接應用L298N時需要兩個電壓,一個為邏輯電路工作所需的5V電壓Vcc,另一個為功率電路所需的驅動電壓Vs。為保護電路,需加上續流二極管,二極管的選用要根據PWM的頻率和電機的電流來決定,二極管要有足夠迅速的恢復時間和足夠電流承受能力。驅動電路的輸入可直接與單片機或FPGA得引腳相連,但為了進一步提高電路的抗干擾能力,也可以使用光耦,對控制電路和驅動電路進行電氣隔離。根據控制信號的不同輸入方式,電路主要有以下幾種控制方法:(1)使能端輸入使能信號,控制輸入端A輸入PWM信號,控制輸出端B輸入方向信號。(2)使能端輸入使能信號,控制

28、輸入端A輸入PWM信號,控制輸入端B輸入PWM的反信號。(3)使能端輸入PWM信號,控制輸入端A和控制輸入端B輸入控制電機狀態的信號。電機狀態參見表3-4。本設計只采用控制一個電機的方式。使能端控制A 控制B電機狀態 高電平 高電平 低電平 正轉 低電平 高電平 反轉 同高或同低 剎車低電平 任意 任意 自然停轉表3-4 電機控制狀態3.4 液位設定模塊的結構及功能鍵盤在單片機應用系統中能實現向單片機輸入數據、傳送命令等功能,是人工干預單片機的主要手段。鍵盤實質上是一組按鍵開關集合,通常選用機械彈性開關,它們利用了機械觸點的閉合斷開作用。鍵的閉合與否,反映在輸出電壓上就是呈現低電平還是高電平,

29、通過對電平高低狀態的檢測,便可確認是否有按鍵按下。為了確保CPU對一次按鍵動作只確認一次,還必須消除抖動的影響,這樣才能使鍵盤在單片機系統中使用得更加穩定。本設計采用的是獨立式鍵盤電路。因為在本系統中要實時保存數據,所以在軟件設計時要用到的外部中斷比較多,但ATmega16L中只有兩個外部中斷,我們用外部中斷0做了中斷擴展。鍵盤可以用來進行人機交流。通過鍵盤輸入,可以調節液位上限、下限、斷電保存等功能。3.5 顯示模塊的設計本設計中采用了LCD12864作為顯示信息器件,與用戶進行友好交互。LCD12864是專門用于顯示漢字、字母、數字、符號的顯示模塊,具有功耗低、體積小、顯示內容豐富等諸多優

30、點,在低功耗應用系統中得到很廣泛。LCD12864,即像素為128*64的顯示液晶。其每一行最多可以顯示8個中文,16個半寬字體。表3-4為液晶顯示模塊管腳排列和功能,圖3-10是它與系統單片機連接的原理圖。引腳標號功能說明備注1Vss邏輯負電源輸入引腳,0V2Vdd邏輯正電源輸入引腳,5V3Vl偏壓信號引腳,可調節其對比度一般接0V4RS數據/指令寄存器選擇功能5R/W讀寫選擇引腳若只需要讀,則接地6EN讀寫使能引腳714D0D78位數據引腳線15CS1半屏控制引腳高電平時對應半屏可用16CS2半屏控制引腳表3-5 LCD12864管腳排列和功能表 圖3-4LCD12864連接電路原理圖3.

31、6報警模塊的設計 工業現場需要有對液位超限的檢測報警功能,并能通過聲、光發出報警警示,所以我們用到一個報警電路。本設計采用蜂鳴器和高亮發光二極管組成聲光報警電路。其中蜂鳴器采用的是壓電式。壓電式蜂鳴器主要由多諧振蕩器、壓電蜂鳴片、阻抗匹配器及共鳴箱、外殼等組成。報警器在整個系統中也起著非常重要的作用,它是高電平報警,一旦監測到液位值達到報警限時,就發出報警。該電路簡單、可靠。為了加大報警聲音的響度,還需在電路中加上一個三極管作驅動。另外還使用了高亮、大功率的發光二極管作光報警。采用的高亮發光二極管的優點表現在:尺寸小,體積小;不存在熱輻射;低電壓,低電流啟動,耗電少;反應速度快,可用于高頻場合

32、;使用壽命長;有利于環保;容易開發成輕薄短小產品。其具體電路圖如圖3-5所示:圖3-5聲光報警電路3.7 電源的設計本設計用到兩個電壓 +5v 和+12v,可以分別用7805和7812穩壓芯片提供。另外用三個7號電池為DS1302作備用供電電源。主電源電路圖如圖3-6所示圖3-6電源設計電路4系統的軟件設計本設計軟件所要實現的功能:實時控制小水泵(電機);實時檢測是否超出上下限;實時顯示檢測的數據、時間、上下限數值;實時監控鍵盤輸入;報警控制。4.1 單片機軟件開發環境AVR系列單片機的集成開發環境有ImageCraft公司的ICCAVR和Atmel公司的AVR_Studio等。其中,ICCA

33、VR因支持標準C語言對AVR系列單片機的編程而得到了廣泛的應用。本系統軟件設計程序使用C語言編寫。軟件的主要任務是完成芯片的初始化等工作,如數據采集、處理、顯示,延時、中斷等。4.2主程序設計本設計的重中之重是PID控制算法的實現。在一個控制系統中至少由被控對象、測量變送器、控制器及執行器等部分組成。由于外界的各種擾動不斷產生,被控對象在各種擾動作用下,使得被控信號偏離給定值SV,要想達到被控信號的恒定值,首先由變送器對被測值進行檢測,感受被控信號的變化并將它轉換成電流信號,然后控制器將變送器送來的測量信號與設定值信號進行比較得出偏差(en);根據偏差的大小及變化趨勢,按一定的控制規律進行運算

34、后,將運算結果用標準的電流信號送給執行器,最后執行器自動地根據控制器送來的信號值相應地改變流入(或流出)被控對象的水量,克服擾動的影響,最終實現PID控制要求。由此可見,控制器在控制系統中起著非常重要的作用,是整個控制系統的核心和靈魂。PID控制也就是比例積分微分控制(本系統只使用比例和積分兩個參數進行控制),它是控制器控制規律中的一種。把變送器送來的信號與給定值進行比較,得到偏差信號,并以預先設定的參數(比例系數、積分時間)進行運算。且將運算結果送至執行器,本設計中的執行器是小水泵(電機),測量變送器為超聲波采集。本系統的PID程序采用的是增量型算法如圖4-1所示。采用增量型算法的原因是增量

35、型算法具有很多優點:(1)由于計算機輸出增量,所以誤動作影響小,必要時可用邏輯判斷的方法去掉;開始計算e(n)計算e(n)計算e(n-1)計算e(n)+e(n-1)計算e(n-1)計算u(n)更新e(n-1),e(n-2)返回圖4-1 增量型PID算法的程序流程圖(2)在位置型控制算法中,由手動到自動切換時,必須首先使計算機的輸出值等于閥門的原始開度,才能保證手動/自動無擾動切換,這將給程序設計帶來困難。而增量設計只與本次的偏差值有關,與閥門原來的位置無關,因而增量算法易于實現手動/自動無擾動切換;(3)不產生積分失控,所以容易獲得較好的調節效果。這些特點已經得到了廣泛的應用。但是,這種控制也

36、有不足之處:積分截斷效應大,有靜態誤差;溢出的影響大。所以,本設計結合位置型PID控制算法和增量型控制算法二者的優點,將二者結合起來,相互補充其不足。利用增量型算法其算法簡單,使用的數據少,只要采集連續三次的數據偏差,就可以算出輸出量,再結合位置型算法使輸出值等于上次的輸出值加上這次采樣的偏差值。輸出的信號給到電動調節閥上,就是這次采樣后,實際要輸出的值。模擬PID調節器,其控制規律如公式4-1所示= KP e(t)+TD (4-1)式中,KP為比例系數,TI為積分時間常數,TD為微分時間常數。還有一種是數字PID調節器,其算法是利用偏差增量,比位置型算法一直累加歷史偏差要簡單的多。增量型算法

37、只需知道連續三個采樣值的偏差值就能計算增量輸出。增量輸出入公式4-2所示= u(n)-u(n-1)= KPe(n)-e(n-1)+KIe(n)+KDe(n)-2e(n-1)+e(n-2) (4-2)本設計單片機程序控制原理描述如下:本程序通過IO口第40腳。啟動電機后就進行液面探測。鍵盤控制要求反應及時,因此本程序的鍵盤控制放在中斷程序中處理。4.3 各功能模塊子程序的設計本設計在軟件方面采用了模塊化的設計思想,主程序主要調用了4個子程序,分別是A/D轉換程序、液位處理程序、液位顯示程序、液位設定程序。此外,還有報警電路子程序。各主要模塊功能如下:1.A/D轉換程序:讀取ADC送入單片機的模擬

38、量電壓信號,并換算為相對應的液位信號。2.液位處理程序:將換算后的液位信號經單片機換算后送去顯示模塊顯示。3.液位顯示程序:向LCD送數據顯示,控制系統的顯示部分。4.液位設定程序:實現按鍵輸入預設液位值。主程序軟件流程圖如圖4-2所示開始初始化進入數據并顯示當前液位值設置液位值輸入液位,計算偏差液位有偏差計算控制量,PID調節輸出控制圖4-2 主程序流程圖本系統各功能模塊子程序主要包括:A/D轉換子程序、液位顯示子程序、液位處理子程序以及液位設定子程序。4.5.1 A/D轉換子程序結構設計A/D轉換子程序的作用是將開發板的A/D進行初始化,然后將從傳感器采集的模擬電信號轉換為數字電信號送入單

39、片機的過程。首先選一個PD口的一個通道,讀入的電壓值是與液位具有線性關系的數據,該值送入該口,經線性運算后得出液位數據,延時后,A/D轉換子程序結束。4.5.2 液位處理程序結構設計將A/D轉換后的數據同設定值比較,然后判斷是否需要調用PID調節模塊,若需要調節則進入該模塊,調整PID控制的相關參數,直至輸出與設定值接近返回。4.5.3 液位顯示子程序結構設計本設計采用的是液晶12864來顯示相關參數,其流程圖如圖4-3所示開始初始化延時設置每行顯示位置顯示對應行內容返回圖4-3 液晶顯示流程圖4.5.4 液位設定子程序結構設計鍵盤掃描程序的作用是讀得用戶自行設定的液位值,即取得預設液位值。本

40、設計使用的鍵盤為獨立式式,該鍵盤的特點是各鍵相互獨立,每個按鍵的“接地端”均接地,每個按鍵的“測試端各接一根輸入線,一根輸入線上的工作狀態不會影響其他輸入線上的工作狀態。本設計中鍵盤的按鍵直接與單片機相連,包括按鍵查詢、鍵功能程序轉移,作用是切換液晶顯示界面,設定或更改控制參數。5總體調試系統的硬件電路連接和軟件的編程都設計完成后,接下來的主要任務就是調試環節,最終的目的就是實現任務書的要求。在ICCAVR編譯環境下,將程序通過ISP下載線下載到到單片機中。 首先對顯示的穩定性進行調試,如果發現有問題,一般都是由于元件的焊接引起的,可以通過檢查各線路是否導通來調整。其次是按鍵部分,通過按下按鍵

41、看顯示屏幕是否顯示相關內容,如果出現問題,需要查看程序是否是設置的問題。 最后就是要看水泵開度是否隨PID控制規律而正常工作,從而達到自動調節要求。總結本設計以ATmega16L單片機為控制核心,利用其強大的處理能力和豐富的外圍接口,合理選用了超聲波傳感器,電機驅動電路,以及12864液晶LCD顯示,較好的完成了液位調節系統的液位采集電路、液位處理電路、液位顯示電路、報警電路等功能模塊,進而完成了PID液位調節器的設計。整個系統控制程序采用C語言進行編程。PID控制器參數整定的方法很多,概括起來有兩大類:一是理論計算整定法。它主要是依據系統的數學模型,經過理論計算確定控制器參數。這種方法所得到

42、的計算數據不一定可以直接用,還必須通過工程實際進行調整和修改。二是工程整定方法,它主要依賴工程經驗,直接在控制系統的試驗中進行,且方法簡單、易于掌握,在工程實際中被廣泛采用。本系統采用工程整定的方法,由于現場整定經驗不足,調節的效果不太理想。PID控制還有待于進一步的改進,以后還有很多工作要做:把PID控制器制作成智能PID控制器或自適應PID控制器。本設計的實質是基于工業過程物理模擬對象,參考自動化儀表技術、傳感器技術、計算機技術、通信技術、自動控制技術等,涉及流量、液位、壓力等熱工參數來運用自動控制理論,利用單片機及其接口技術及C語言等實習工業模擬控制。參考文獻1李廣弟,朱月秀,冷祖祁單片

43、機基礎M.北京:北京航空航天大學出版社,2007.2李朝青單片機原理及接口技術M.北京:北京航空航天大學出版社,1998.3李勛等單片機實用教程M.北京:北京航空航天大學出版社,2000.4胡漢才單片機原理及系統設計M.北京:清華大學出版社,2002.5睢丙東,魏澤鼎等單片機應用技術與實例M.北京:電子工業出版社,2005.6陳杰,黃鴻傳感器與檢測技術M.北京:高等教育出版社,2002.7王紹純自動檢測技術M.北京:冶金工業出版社,1985.8徐愛鈞單片機高級語言 C51 應用程序設計M.北京:電子工業出版社,2002.9何立民單片機應用系統設計系統配置與接口技術M.北京:北京航空航天大學出版

44、社,1990.10李科杰傳感技術M.北京:北京理工大學出版社,1989.11沙占友,王彥朋,孟志永等單片機外圍電路設計M.北京:電子工業出版社,2003.12湯競南,沈國琴51單片機C語言開發與實例M.北京:人民郵電出版社,2008.13倪德良,俞善慶,杜云慶家用熱水器的能效、應用及發展對策J.能源技術,2004年第04期.14張建學走近家用熱水器J.質量跟蹤,2001年第10期.15徐鴻浩,谷剛太陽能熱水器輔助電加熱系統的設計J.自動化技術與應用,2008年第27期.16吳秀清微型計算機與接口技術M,第一版,中國科技大學出版社,1999.217童詩白模擬電子技術基礎M,第二版,.北京.高等教

45、育出版社,199818吳金戎,沈慶陽,郭庭吉8051單片機實踐與應用M,第二版,清華大學出版社,2002.919 Brian W.Kernighan & Dennis M.Rirchie.The C Programming Language,1997,P3-8720 Sha zhanyou,WangXiaojun.An Guochen,Sui Bingdong.Optimize Design of Multiple Channel Dustlike Object Temperature Measure and Control Syetem,MCGM2003,2003.8 ISTP21

46、Boait Peter,Co ntroling embedded generators using SMS,IEE PowerEngineer,2003,Volumel7,P31-33附錄1:程序/ PID運算 /void pid_ctrl(void) Ek = ref - feb; /差值運算 if( fabs(Ek) < Emin ) /誤差的閥值(死區控制?) pwm_var = 0; else Uo = Kpp*Ek + Ki*Ei + Kd*Ed;/PID計算 Ed = Ei; Ei = Ek; pwm_var = (int)Uo;/強制轉化調整量,PWM為整數if(pwm_v

47、ar >= Umax)pwm_var = Umax; /調整值限幅,防止積分飽和if(pwm_var <= Umin)pwm_var = Umin;/調整值限幅,防止積分飽和 PWM_out=PWM_out+pwm_var; /調整PWM輸出if(PWM_out > Pmax)PWM_out = Pmax; /輸出值限幅 if(PWM_out < Pmin)PWM_out = Pmin; /輸出值限幅OCR0= PWM_out;/輸出給寄存器,改變PWM占空比void adc_init(void)/AD初始化ADCSRA= 0x00;/禁止AD轉換 ADMUX= 0x4

48、0; SFIOR |= 0x00; ACSR= 0x80; /禁止模擬比較器 ADCSRA= 0xCE;void ADC_led(void)/讀取轉換數據 unsigned char i=0,f=0; unsigned int V=0; /轉換值V=ADCL; /讀取值 V=(ADCH<<8)+V; V=(unsigned int)(V*VREF*1000/1024); /轉換數值return V;#pragma interrupt_handler adc_isr:15 /AD轉換完成中斷void adc_isr(void)ADC_led(); ADCSRA|=(1<<

49、ADSC); /再次啟動AD void jianpan(void) /鍵盤 if(PINC&0X02)=0) delay_ms(60); if(PINC&0X02)=0) if(key=0) set+; shedin8=set/100+0x30; shedin9=(set/10)%10+0x30; shedin10=set%10+0x30; if(key=1) KP+; if(key=2) TI+; if(key=3) TD+; if(key!=0) shuju(); if(PINC&0X01)=0) delay_ms(60); if(PINC&0X01)=0)

50、 if(key=0) set-; shedin8=set/100+0x30; shedin9=(set/10)%10+0x30; shedin10=set%10+0x30; if(key=1) KP-; if(key=2) TI-; if(key=3) TD-; if(key!=0) shuju(); if(PINC&0X04)=0) CLI(); key+; OCR0= 0x00; shuju(); if(key=4) key=0; lat_disp (0x00,0x00); clrram(); js=0; SEI(); while(PINC&0X04)=0); void s

51、huju() /數據處理+顯示 PID_data15=key+0x30; KP_data11=KP/100+0x30; KP_data12=(KP/10)%10+0x30; KP_data14=KP%10+0x30; TI_data11=TI/100+0x30; TI_data12=(TI/10)%10+0x30; TI_data14=TI%10+0x30; TD_data11=TD/100+0x30; TD_data12=(TD/10)%10+0x30; TD_data14=TD%10+0x30; chn_disp(0,0,PID_data); chn_disp(1,0,KP_data);

52、chn_disp(2,0,TI_data); chn_disp(3,0,TD_data);附錄2:電路圖致 謝本次畢業設計從課題的確定到最后的完成,自始至終得到了指導教師耿麗清老師的悉心指導和親切關懷。在整個研究學習階段,耿老師不斷向我們傳授分析問題和解決問題的辦法,并指出了正確的努力方向,使我在畢設完成過程中少走了很多彎路。她嚴謹務實的工作作風、精益求精的治學態度、循循善誘的悉心教導給我以深刻的印象和極大的影響,她豐富的經驗使我受益匪淺,讓我十分敬佩。在此謹向耿老師致以誠摯的謝意!在畢業設計的進行過程中,劉延一同學、余穎同學、高磊同學給了我大量的幫助和支持,在此同樣表示深切的謝意!另外,院領

53、導和老師也給了我們必要的指導,為我們畢設的完成提供了很大的幫助。謹向所有指導過、幫助過我的老師和同學們表示最真摯的感謝!英文資料及中文翻譯PID controllerA proportionalintegralderivative controller (PID controller) is a generic control loopfeedback mechanism widely used in industrial control systems. A PID controller attempts to correct the error between a measured process variable and a desired setpoint by calculating and then outputting a corrective acti

溫馨提示

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

評論

0/150

提交評論