版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1緒論現(xiàn)代計算機技術(shù)和信息技術(shù)的迅猛發(fā)展,沖擊著國民經(jīng)濟的各個領(lǐng)域,也引起了測量儀器和測試技術(shù)的巨大變革。人們曾為測量儀器從模擬化、數(shù)字化到智能化的進步而欣喜,也為自動測試技術(shù)的日新月異的發(fā)展所鼓舞,當(dāng)今虛擬儀器技術(shù)的出現(xiàn)又使得測量儀器進步入了高科技的殿堂.與傳統(tǒng)的儀器不同,虛擬儀器(virtualinstrument)是基于計算機和標(biāo)準總線技術(shù)的模塊化系統(tǒng),通常它是由控制模塊、儀器模塊和軟件組成,在虛擬儀器中軟件是至關(guān)重要的,儀器的功能都要通過它來實現(xiàn),因此軟件是虛擬儀器的核心,“軟件就是儀器",從本質(zhì)上反映了虛擬儀器的特征。從構(gòu)成方式上講,虛擬儀器可分為四大類:GPIB體系結(jié)構(gòu)、PC—DAQ體系結(jié)構(gòu)、VXI體系結(jié)構(gòu)和PXI體系結(jié)構(gòu)。GPIB體系結(jié)構(gòu)是通過GPIB總線將具有GPIB接口的計算機和儀器集成的測試系統(tǒng)。組建方便靈活、操作簡單。VXI體系結(jié)構(gòu)綜合了.pib和vem總線的優(yōu)點,它集成的系統(tǒng)硬件集成度高、數(shù)據(jù)傳輸率快、便攜性好,是當(dāng)今倍受業(yè)界關(guān)注的體系結(jié)構(gòu).PXI體系結(jié)構(gòu)是以PCI總線為基礎(chǔ)的體系結(jié)構(gòu),由于其總線吞吐率高、硬件的價格較低被業(yè)內(nèi)人士認為是符合國情的一種體系結(jié)構(gòu)。虛擬儀器應(yīng)用程序的開發(fā)環(huán)境主要有兩種.一種是基于傳統(tǒng)的文本語言的軟件開發(fā)環(huán)境,常用的有l(wèi)abwindows/cvi、。visualbasidc=vc++等:一種是基于圖形化語言的軟件開發(fā)環(huán)境,常用的有LabVIEW和hpvee。其中圖形化軟件開發(fā)系統(tǒng)是用工程人員所熟悉的術(shù)語和圖形化符號代替常規(guī)的文本語言編程,界面友好,操作簡便,可大大縮短系統(tǒng)開發(fā)周期,深受專業(yè)人員的青睞.1。1課題背景隨著世界經(jīng)濟的發(fā)展,工業(yè)的迅速擴張,政府和企業(yè)家們花在設(shè)備上的投入越來越多,這筆巨大的開銷,極大地限制了企業(yè)的資金,從而制約著企業(yè)的發(fā)展.而虛擬儀器技術(shù)憑借著其開發(fā)容易、開發(fā)成本低、開發(fā)周期短等明顯的優(yōu)點,漸漸地在工業(yè)測控領(lǐng)域嶄露頭角。它的出現(xiàn)使企業(yè)家們看到了降低成本的希望。本設(shè)計將就虛擬儀器怎樣用在工業(yè)測控中進行一番簡單的探討.1.2虛擬儀器簡介隨著微電子技術(shù)、計算機技術(shù)、軟件技術(shù)、網(wǎng)絡(luò)技術(shù)和現(xiàn)代測量技術(shù)的迅速發(fā)展,一種新型的先進儀器——虛擬儀器成為當(dāng)前系統(tǒng)研究的熱點。虛擬儀器通過軟件開發(fā)平臺將計算機硬件資源與儀器硬件有機地融為一體,把計算機強大的數(shù)據(jù)處理能力和儀器硬件的測量、控制能力結(jié)合在一起,通過軟件實現(xiàn)對數(shù)據(jù)的顯示、存儲及分析處理。在對大規(guī)模、集成化、智能化及數(shù)字電子儀器需求愈加迫切的形勢下,計算機技術(shù)、儀器技術(shù)和通信技術(shù)相結(jié)合,產(chǎn)生了具有里程碑意義的新一代儀器-—虛擬儀器.虛擬儀器的出現(xiàn)開辟了儀器技術(shù)的新紀元,它是多門技術(shù)與計算機技術(shù)結(jié)合的產(chǎn)物,其基本思想逐步代替儀器完成某些功能,如數(shù)據(jù)的采集、分析、顯示和存儲等,最終達到取代傳統(tǒng)電子儀器的目的。虛擬儀器是計算機硬件資源、儀器硬件、數(shù)據(jù)分析處理、軟件、通信軟件極圖形用戶界面的又效結(jié)合,具有傳統(tǒng)儀器所具備的信號采集、信號處理分析、信號輸出等功能.其基本構(gòu)成包括計算機、虛擬儀器軟件、硬件接口和測試儀器等。虛擬儀器以透明的方式把計算與傳統(tǒng)儀器一樣。虛擬儀器同樣劃分為數(shù)據(jù)采集與控制、數(shù)據(jù)分析與處理、結(jié)果表達三大功機資源和儀器硬件的測試能力結(jié)合起來,實現(xiàn)了儀器功能的運作。虛擬儀器的功能模塊如圖1—1所示.圖1-1虛擬儀器的功能模塊虛擬儀器用各種圖標(biāo)或控件來虛擬傳統(tǒng)儀器面板上的各種器件。由各種開關(guān)圖標(biāo)實現(xiàn)儀器電源的通斷;由各種按鈕圖標(biāo)來設(shè)置被測信號的“放大倍數(shù)"、“通道"等參數(shù);由各種顯示控件以數(shù)值或波形的方式顯示測量或分析結(jié)果;由計算機的鼠標(biāo)和鍵盤操作來模擬傳統(tǒng)儀器面板上的實際操作;以對圖形化軟件流程圖的編程來實現(xiàn)各種信號測量和數(shù)據(jù)分析功能.如下是虛擬儀器與傳統(tǒng)儀器的比較表,直觀的反應(yīng)了傳統(tǒng)儀器和虛擬儀器各自的性能特點。傳統(tǒng)儀器和虛擬儀器的比較傳統(tǒng)儀器虛擬儀器儀器廠商定義用戶自己定義硬件是關(guān)鍵軟件是關(guān)鍵儀器的功能、規(guī)模均已固定系統(tǒng)功能和規(guī)??赏ㄟ^軟件修改和增減封閉的系統(tǒng),與其它設(shè)備連接受限制基于計算機的開放系統(tǒng),可方便地同外設(shè)、網(wǎng)絡(luò)及其它相應(yīng)設(shè)備連接價格昂貴價格低,可重復(fù)利用技術(shù)更新慢技術(shù)更新快開發(fā)和維護費用高軟件結(jié)構(gòu)可大大節(jié)省開發(fā)和維護費用多為實驗室擁有個人可擁有一個實驗室1。3圖形化編程語言LabVIEW的簡介LabVIEW(laboratoryvirtualinstrumentengineeringworkbench)是一種圖形化的編程語言和開發(fā)環(huán)境,它廣泛地被工業(yè)界、學(xué)術(shù)界和研究實驗室所接收,被公認為是標(biāo)準的數(shù)據(jù)采集和儀器控制軟件.LabVIEW不僅提供了與遵從GPIB,VXI,RS—232和RS—485協(xié)議的硬件及數(shù)據(jù)采集卡通信的全部功能,還布置了支持TCP/IP,ActiveX等軟件標(biāo)準的庫函數(shù),而且圖形化的編程界面使編程過程變得生動有趣。LabVIEW是一個功能強大且靈活的軟件,利用他可以方便的建立自己的虛擬儀器.以LabVIEW為代表的圖形化編程語言,又稱為“G”語言。使用這種語編程時,基本上不需要編寫程序代碼,而是“繪制”程序流程圖。LabVIEW盡可能利用工程技術(shù)人員所熟悉的術(shù)語、圖標(biāo)和概念,因而它是一種面向最終用戶的開發(fā)工具,可以增強工程人員構(gòu)建自己的科學(xué)和工程系統(tǒng)的能力,提供了實現(xiàn)儀器編程和數(shù)據(jù)采集系統(tǒng)的便捷途徑。使用它進行原理研究、設(shè)計、測試并實現(xiàn)儀器系統(tǒng)時,可以大大提高工作效率。利用LabVIEW,可產(chǎn)生獨立運行的可執(zhí)行文件。LabVIEW是真正的32位編譯器。像其他軟件一樣,LabVIEW提供了Windows,UNIX,Linux和Macintosh等多種版本。1。4本論文任務(wù)(1)設(shè)計一個由微控制器控制的溫度采集裝置,使其能夠準確地采集環(huán)境溫度。(2)通過某種通信協(xié)議,將采集到的溫度送往上位機進行顯示和處理。(3)用LabVIEW編寫上位機的程序,使其能夠接受下位機發(fā)送來的溫度信息數(shù)據(jù),并作出處理想,同時顯示在PC屏幕上.(4)使用LabVIEW編寫PID控制程序,能實現(xiàn)對溫度的比較準確的控制.(5)使用LabVIEW編寫模糊控制程序,能實現(xiàn)對溫度的控制.圖1。2上位機界面圖1。2硬件實物圖2溫度控制設(shè)計方案本設(shè)計采用LabVIEW和AVR單片機組成系統(tǒng)的主要模塊。由下位機把單線式溫度傳感器DS18B20測量到的溫度,通過串口發(fā)送到的由LabVIEW構(gòu)建的上位機去。然后在上位機中進行處理和顯示,通過PID或者模糊算法,計算出要輸出的控制量,再由串口將數(shù)據(jù)發(fā)送到下位機,交由下位機處理。下位機根據(jù)一定的關(guān)系,輸出一定的信號來控制固態(tài)繼電器的通斷。固態(tài)繼電器的交流端就會因為通斷而控制水泥電阻工作與否,以此達到控制溫度的目的。2。1硬件及軟件的選擇2。1.1硬件的選擇系統(tǒng)的硬件設(shè)計主要分為四個部分:主控部分、DS18B20測溫部分、通信部分、程序下載部分.在下位機控制器上,由于需要采用PWM技術(shù)對加熱裝置進行控制,而傳統(tǒng)的51系列單片由于其內(nèi)部并不具有專門的PWM模塊,當(dāng)從上位機發(fā)送控制數(shù)據(jù)時,就必須采取中斷才能執(zhí)行這個過程.由于AVR系列單片機內(nèi)部均有現(xiàn)成的PWM模塊,可以在進行采集溫度的同時,進行PWM控制。所以,本設(shè)計選擇Atmel公司生產(chǎn)的ATMega16八位高性能微處理器。AVR單片機是1997年由ATMEL公司研發(fā)出的增強型內(nèi)置Flash的RISC(ReducedInstructionSetCPU)精簡指令集高速8位單片機。AVR的單片機可以廣泛應(yīng)用于計算機外部設(shè)備、工業(yè)實時控制、儀器儀表、通訊設(shè)備、家用電器等各個領(lǐng)域,它與51單片機、PIC單片機相比具有一系列的優(yōu)點:(1)在相同的系統(tǒng)時鐘下AVR運行速度最快;(2)芯片內(nèi)部的Flsah、EEPROM、SRAM容量較大;(3)所有型號的Flash、EEPROM都可以反復(fù)燒寫、全部支持在線編程燒寫(ISP);(4)多種頻率的內(nèi)部RC振蕩器、上電自動復(fù)位、看門狗、啟動延時等功能,零外圍電路也可以工作;(5)每個IO口都可以以推換驅(qū)動的方式輸出高、低電平,驅(qū)動能力強;(6)內(nèi)部資源豐富,一般都集成AD、DA模數(shù)器、PWM、SPI、USART、TWI、I2C通信口、豐富的中斷源等.目前支持AVR單片機編譯器的語言主要有匯編語言、C語言、BASIC語言等.其中C編譯器主要有CodeVisionAVR、AVRGCC、IAR、ICCAVR等,C語言編譯器由于它具有功能強大、運用靈活、代碼小、運行速度快等先天性的優(yōu)點,使得它在專業(yè)程序設(shè)計上具有不可代替的地位。測溫部分,本設(shè)計采用美國DALLAS公司生產(chǎn)的一線式溫度傳感器DS18B20(如圖2—1)。數(shù)字式溫度傳感器DS18B20是美國DALLAS公司推出的一種可組網(wǎng)數(shù)字式溫度傳感器,采用1—wire總線接口,測溫范圍為-55℃—+125℃,精度可達0.0675℃,最大轉(zhuǎn)換時間為200ms.DS18B20能夠直接讀取被測物體的溫度值,體積小,電壓適用范圍寬(3V~5V),用戶還可以通過編程實現(xiàn)9—-12位的溫度讀數(shù),即具有可調(diào)的溫度分辨率。DS18B20與單片機的接口簡單,只需將信號線與單片機的一位雙向端口相連即可.系統(tǒng)中DS18B20采用外接電源方式,VDD端用3V~5.5V電源供電。由于其測溫分辨率較高(12位),因此對時序及電特性參數(shù)要求較高,必須嚴格按照時序要求操作。其數(shù)據(jù)的讀寫是由主機讀寫特定時間片來完成的,包括初始化、讀時間片和寫時間片。DS18B20的主要特征:·全數(shù)字溫度轉(zhuǎn)換及輸出?!は冗M的單總線數(shù)據(jù)通信.·最高12位分辨率,精度可達土0.5攝氏度?!?2位分辨率時的最大工作周期為750毫秒?!た蛇x擇寄生工作方式?!z測溫度范圍為–55°C~+125°C·內(nèi)置EEPROM,限溫報警功能.DS18B20引腳功能:·GND電壓地·DQ單數(shù)據(jù)總線·VDD電源電壓圖2—1DS18B20功率控制部分,本設(shè)計采用無錫天豪公司生產(chǎn)的GTJ24-2A固態(tài)繼電器。電氣參數(shù)為:輸入控制電壓3-14VDC(自動限流),關(guān)斷電壓1.2VDC,開啟電流5mA,控制電流<25mA,工作電壓24—240VAC.該固態(tài)繼電器為過零型繼電器,在電流過零時導(dǎo)通,過零時關(guān)斷。相對于隨機型的固態(tài)繼電器,使用過零型的固態(tài)繼電器可以使本設(shè)計比較方便地控制固態(tài)繼電器中雙向晶閘管的導(dǎo)通周期數(shù),從而控制加熱元件的工作時間.通信部分,由于溫度變化并不是一個很快的過程,所以并不需要很高的數(shù)據(jù)采集和發(fā)送速度。而且,計算機的各種通信方式中,尤以串口通信方式最為簡單,因此本設(shè)計采用傳統(tǒng)的RS—232串口通信.由于單片機的工作電平TTL電平,它要與計算機上的串口進行通信,就必須轉(zhuǎn)換成相應(yīng)的計算機串口電平,也就是RS-232電平。在本設(shè)計中采用美國MAXIM公司生產(chǎn)的MAX232進行電平轉(zhuǎn)換。2.1。2軟件的選擇軟件選擇包括下位機程序的編譯軟件和上位機的編程軟件。下位機的編譯軟件,通常有ICCAVR、WinAVR(也就是通常所說的GCC)、IARAVR、CodeVisionAVR、ATmanAVR,在這里使用ICCAVR和AVRStudio的組合。這是因為市面上(大陸)的教科書使用ICCAVR作為例程的較多,集成代碼生成向?qū)Вm然它的各方面性能均不是特別突出,但使用較為方便;而AVRStudio集軟硬件仿真、調(diào)試、下載編程于一體,有效彌補了ICCAVR仿真能力的不足,同時還可以有效地對程序進行調(diào)試.上位機方面,本設(shè)計采用目前NI最新的LabVIEW8.6進行編程。結(jié)合上NI為工業(yè)控制而開發(fā)的PID和模糊邏輯控制包,可以輕松地實現(xiàn)PID或模糊控制.2.2硬件及軟件設(shè)計方案2.2。1硬件設(shè)計方案下圖給出系統(tǒng)硬件組成框圖,由計算機、單片機、測溫電路及溫度控制電路組成。該系統(tǒng)集計算機、強大的圖形化編程軟件和模塊化硬件于一體,建立靈活且以計算機為基礎(chǔ)的測量及控制方案,構(gòu)建出滿足需要的系統(tǒng)。利用傳感器獲取溫度信號,再由單片機組成的小系統(tǒng)對溫度信號進行采集、處理和轉(zhuǎn)換,然后通過RS—232串口將數(shù)據(jù)送給計算機.并通過計算機運行的LabVIEW程序來分析處理輸入數(shù)據(jù).最終由計算機顯示結(jié)果.同時,通過計算機串口采樣輸入信號,利用LabVIEW中的PID控制算法,求出系統(tǒng)輸出信號的大小,再由串口將輸出信號傳輸至外部溫度控制電路,以實現(xiàn)溫度控制。(如圖2—2)圖2-2系統(tǒng)組成框圖2.2.2軟件設(shè)計方案(1)PID控制PID(ProportionalIntegralDerivative比例微分積分)控制是控制工程中技術(shù)成熟,應(yīng)用廣泛的一種控制策略,它經(jīng)過長期工程實踐,已形成了一套完整的控制方法和典型的結(jié)構(gòu).PID控制器結(jié)構(gòu)簡單、穩(wěn)定性好、工作可靠、調(diào)整方便(如圖2—3)。當(dāng)被控對象的結(jié)構(gòu)和參數(shù)不能完全被掌握,或得不到精確的數(shù)學(xué)模型時,控制理論的其它技術(shù)難以采用,系統(tǒng)控制器的結(jié)構(gòu)和參數(shù)必須依靠經(jīng)驗和現(xiàn)場調(diào)試來確定,這時應(yīng)用PID控制技術(shù)最為方便.因此當(dāng)不能完全了解一個系統(tǒng)和被控對象,或不能通過有效的測量手段來獲得系統(tǒng)參數(shù)時,就是PID的用武之地。圖2—3PID控制系統(tǒng)PID顧名思義,就是根據(jù)系統(tǒng)誤差利用比例,微分,積分計算出控制量進行控制.比例,積分,微分這三個環(huán)節(jié)又相互獨立,有各自不同的作用,在現(xiàn)場也可以根據(jù)實際情況來選擇使用.P控制(比例控制)如果控制器的輸出僅僅與誤差成正比關(guān)系,即u(t)=Kpε(t),便構(gòu)成了一個比例控制器(如圖2—4),可見比例控制器實際上是一個增益可調(diào)的放大器.比例控制器通過改變比例放大系數(shù)Kp調(diào)節(jié)輸出,對誤差的反應(yīng)很快,但是其輸出與期望值之間總是存在一個穩(wěn)態(tài)誤差,必須使用手動復(fù)位來消除,在實際運用中很不方便。提高Kp值可以增加系統(tǒng)的開環(huán)增益,使穩(wěn)態(tài)誤差減小,還能夠增加系統(tǒng)的快速性;但容易使系統(tǒng)的穩(wěn)定程度變差,振蕩變多。而當(dāng)Kp值小時,又會使系統(tǒng)動作變得緩慢,所以校正系統(tǒng)很少單獨使用P控制.圖2—4比例控制I控制(積分控制)由于P控制存在穩(wěn)態(tài)誤差需要手動復(fù)位,人們發(fā)現(xiàn)可以通過引入一個積分項來消除穩(wěn)態(tài)誤差。積分控制器的輸出與誤差信號的積分成正比,即,所以PI控制器的輸出有:積分項對誤差進行積分,隨著時間的增加積分項增大,只要誤差還存在,就會不斷輸出。這樣,即便誤差很小,積分項也會隨著時間的增加而加大,推動控制器的輸出增大使穩(wěn)態(tài)誤差進一步減小,直到等于零,以達到消除穩(wěn)態(tài)誤差的目的.因此,PI控制器,可以使系統(tǒng)在進入穩(wěn)態(tài)后無穩(wěn)態(tài)誤差。但是對時間的積分必將影響系統(tǒng)的快速動態(tài)性能,對于一些系統(tǒng)會出現(xiàn)超調(diào)過大的現(xiàn)象,嚴重的甚至引起系統(tǒng)崩潰.D控制(微分控制)積分控制的動態(tài)性能不好,而微分項恰好可以彌補這點。微分控制器的輸出和誤差信號的微分成正比,即,所以PD控制器的輸出有:微分作用反映的是誤差信號的變化率,所以對系統(tǒng)控制具有預(yù)見性,能預(yù)見誤差的變化趨勢,因此能產(chǎn)生超前的控制作用。甚至在誤差形成之前,可能已被微分調(diào)節(jié)作用消除.所以如果微分時間選擇合適,可以減少超調(diào)和系統(tǒng)調(diào)節(jié)時間,使系統(tǒng)的動態(tài)性能大大提高。微分控制在實際運用中經(jīng)常用來抵消積分控制產(chǎn)生的不穩(wěn)定趨勢,但因其反應(yīng)的是誤差的變化率,所以僅對動態(tài)過程作用,通常不單獨使用。而且微分控制對噪聲干擾有放大作用,過強地調(diào)節(jié)微分項對系統(tǒng)抗干擾能力不利。PID控制PID控制即比例控制、積分控制、微分控制的組合,綜合了3種控制器的優(yōu)點。實際運用中,有時也不需要用到全部的三個部分,只有比例控制單元是必不可少的.對于PID控制器,輸出為:PID控制實際就是根據(jù)經(jīng)驗,對Kp,Ti,Td這3個參數(shù)進行整定,以得到合適的輸出值對系統(tǒng)進行控制。具體如何整定,根據(jù)不同的現(xiàn)場有所不同.目前PID不僅應(yīng)用廣泛,發(fā)展也很快,已研究出很多對這3個參數(shù)進行自整定的智能控制器。在和計算機這樣的數(shù)字控制器結(jié)合后,還出現(xiàn)了數(shù)字PID的設(shè)計方法,不過具體原理還是遵循于傳統(tǒng).(2)模糊控制模糊控制是以模糊集合論、模糊語言變量和模糊邏輯推理為基礎(chǔ)的一種計算機數(shù)字控制。通常是一類缺乏精確數(shù)學(xué)模型的被控過程,采用模糊集合的理論,總結(jié)人們對系統(tǒng)的操作和控制經(jīng)驗.用模糊條件語句寫出控制規(guī)律,再用算法語言來編寫程序,按此程序?qū)ιa(chǎn)過程進行自動控制。模糊控制同常規(guī)的控制方案相比,主要特點有:模糊控制只要求掌握現(xiàn)場操作人員或有關(guān)專家的經(jīng)驗、知識或操作數(shù)據(jù),不需要建立過程的數(shù)學(xué)模型,所以適用于不易獲得精確數(shù)學(xué)模型的被控過程,或其結(jié)構(gòu)參數(shù)不很清楚等場合.模糊控制是一種語言變量控制器,其控制規(guī)律只用語言變量的形式定性地表達,不用傳遞函數(shù)與狀態(tài)方程,只要對人們的控制經(jīng)驗加以總結(jié),進而從中提煉出規(guī)則,直接給出語言變量,再應(yīng)用推理方程進行觀察與控制.系統(tǒng)的魯棒性強,尤其適用于時變、非線性、時延系統(tǒng)的控制。從不同的觀點出發(fā),可以設(shè)計不同的目標(biāo)函數(shù),其語言控制規(guī)則分別是獨立的,但是整個系統(tǒng)的設(shè)計可得到總體的協(xié)調(diào)控制.模糊控制的理論基礎(chǔ)是模糊集合理論,模糊集合是一種介于嚴格變量與定性間的數(shù)學(xué)表達形式,例如變量的數(shù)值分為正大(PL)、正中(PM)、正小(PS)、零(O)、負?。∟S)、負中(NM)、負大(NB)等。其中P=Posive,B=Big,M=Medium,S=Small,O=Zero,N=Negative。模糊集合理論的核心是對復(fù)雜的系統(tǒng)或過程建立一種語言分析的數(shù)學(xué)模式,提供一個嚴格的數(shù)學(xué)框架,使日常生活中的自然語言能直接轉(zhuǎn)化為計算機所能接受的算法語言.模糊集合理論的一個基本概念是函數(shù)或稱隸屬度。表示某一個元素與模糊子集的關(guān)系(即隸屬度),并用或表示。所有隸屬度均滿足下列要求,即,表示隸屬于;,則表示不屬于.模糊子集可表示成其中的U為論域(指被考慮過程的所有元素的全體)。式中的“+”號表示列舉,并不是加號;作用每項中的分式也不表示相除,分母表示元素名稱,分子表示該元素的隸屬度。模糊子集不僅可用隸屬度來描述,也可用模糊向量(即隸屬度向量)來表示,即下圖2—5為模糊控制系統(tǒng)原理框圖。圖2-5模糊控制系統(tǒng)3LabVIEW開發(fā)環(huán)境以及PID和模糊控制模塊簡介使用LabVIEW開發(fā)平臺編制的程序稱為虛擬儀器程序,簡稱為VI。設(shè)計程序主要是在以下兩個窗口中進行的:前面板設(shè)計窗口:它是與用戶直接接觸的圖形用戶界面,即VI的虛擬儀器面板。后面板編輯窗口:它是用戶為完成特定功能而編寫的程序,即VI的圖形化源代碼。3.1LabVIEW前臺顯示面板與后臺控制面板3。1。1LabVIEW前臺顯示面板程序前面板是圖形用戶界面,這一界面上有用戶輸入控制和輸出顯示兩類對象,用于模擬真實儀表的前面板??刂坪惋@示是用各種各樣的圖標(biāo)形式出現(xiàn)在前面板,具體表現(xiàn)為旋鈕、開關(guān)、圖形、圖標(biāo)以及其他的控制(Control)和顯示(Indicator)對象等,這使得用戶界面更加直觀易懂.3.1。2LabVIEW后臺控制面板后面板即是程序編輯窗口。流程圖提供VI的圖形化源程序,可以理解為傳統(tǒng)程序的源代碼.在流程圖中隊VI進行編程,以實現(xiàn)程序的輸入和輸出功能流程圖由端口、節(jié)點、圖框和連線構(gòu)成.LabVIEW有三類端口:前面板對象端口、全局變量與局部變量端口和常量端口.對象端口被用來與程序前面板上的控制件或顯示件傳遞數(shù)據(jù);常量端口只能在程序中作為數(shù)據(jù)流起點;全局變量和局部變量端口是LabVIEW用力啊傳遞數(shù)據(jù)的工具。節(jié)點類似于文本語言的函數(shù)或子程序,LabVIEW有兩種節(jié)點類型:功能函數(shù)節(jié)點或子VI節(jié)點,二者的區(qū)別在于功能函數(shù)節(jié)點是LabVIEW本身提供給用戶使用的,不可以對它進行修改;子VI則是用戶可以進入并根據(jù)實際需要對其加以修改。圖框被用來實現(xiàn)結(jié)構(gòu)化控制命令,例如循環(huán)控制、順序控制以及條件分支等;此外還有MATLAB腳本、HiQ腳本以及調(diào)用C語言編程的CIN節(jié)點等。連線用于代表程序執(zhí)行過程中的數(shù)據(jù)流,它類似于文本程序的變量,數(shù)據(jù)是單向流動的。這些都是編程必須有的東西。3。2LabVIEW程序執(zhí)行流程宏觀上講,LabVIEW的運行機制已經(jīng)不是傳統(tǒng)上的馮·諾依曼式計算機體系結(jié)構(gòu)的執(zhí)行方式了。傳統(tǒng)計算機語言(如C語言)中的順序執(zhí)行結(jié)構(gòu)在LabVIEW中被并行機制所代替.而且,對于那些數(shù)學(xué)和邏輯運算過程較復(fù)雜的程序,用花可以選擇使用VC或者Matlab等開發(fā)工具將數(shù)學(xué)分析和處理過程編寫為專用的動態(tài)鏈接庫,LabVIEW提供了專門的接口函數(shù)可以調(diào)用之.這樣,可以結(jié)合圖形語言和文本語言各自優(yōu)點,更為靈活、高效、易用.3.3LabVIEW中的儀器控制和驅(qū)動虛擬儀器是儀器的未來,但在工作臺上還有很多非虛擬儀器,毫無疑問需要用LabVIEW控制他們。對儀器的驅(qū)動是虛擬儀器實現(xiàn)對真實物理信號采集的基礎(chǔ),當(dāng)儀器驅(qū)動后,才能由軟件進行數(shù)據(jù)的分析處理進而實現(xiàn)某種測溫功能,并求取測量結(jié)果。并且,有時使用外部儀器也是可以的。3.3。1常用的儀器通信方式GPIB:通用接口總線(GeneralPurposeInterfaceBus)。有時候成為HP—IB(Hewlett—PackardInterfaceBus)和IEEE488。2總線(InstituteofElectronicEngineerstandard488。2),它幾乎是任何儀器與計算機通信的世界標(biāo)準。IVI:可交換虛擬儀器(InterchangeableVirtualInstrument)。可以與許多不同的儀器協(xié)調(diào)工作的儀器驅(qū)動程序(用來控制外部儀器的軟件)標(biāo)準。LXI:LAN在儀器領(lǐng)域的擴展(LANeXtensionforInstrumentation).LXI協(xié)會給予工業(yè)標(biāo)準以太網(wǎng)技術(shù),為小型和中型系統(tǒng)提供模塊化、靈活性和性能的儀器平臺建議標(biāo)準。RS—232:232號推薦標(biāo)準(RecommendedStandard#232)。美國儀器協(xié)會為串行通信提出的建議標(biāo)準.可以與術(shù)語“串行通信”互換使用,盡管串行通信一般指的是一次傳輸一位。也許還會看到其他一些標(biāo)準如RS—485、RS—422和RS—432.SCPI:可編程儀器標(biāo)準命令(StandardCommandsforProgrammableInstrumentation)。SCPI協(xié)會的一個建議標(biāo)準,該標(biāo)準使用簡單、直觀的ASCII命令為儀器通信制定了結(jié)構(gòu)和語法.USB:通用串行總線(UniversalSerialBus),大多數(shù)PC與外部設(shè)備互聯(lián)的標(biāo)準總線.VISA:虛擬儀器標(biāo)準體系結(jié)構(gòu)(VirtualInstrumentStandardArchitecture),NI公司研發(fā)的一種驅(qū)動軟件體系結(jié)構(gòu)。其目的是盡量統(tǒng)一一起軟件標(biāo)準,不論儀器使用GPIB、PXI、VXI,還是串行接口(RS-232/422/485).3。3。2LabVIEW支持的GPIB、VXI、標(biāo)準串口I/O儀器的驅(qū)動通常LabVIEW有兩張安裝光盤,其中一張就是設(shè)備驅(qū)動盤,它包含了一個儀器驅(qū)動庫,該庫為NI生產(chǎn)的各種程控儀器(GPIB儀器、VXI儀器和串行儀器等)提供儀器驅(qū)動程序,例如HP34401A數(shù)字萬用表的儀器驅(qū)動程序.儀器驅(qū)動程序在功能模塊~InstrumentI/O—InstrumentDrivers子模板中。對于非NI公司生產(chǎn)的上述I/O接口儀器設(shè)備,可用InstrumentI/O子模板上提供的VISA圖標(biāo)來進行驅(qū)動。利用這些儀器驅(qū)動器,用戶可以很容易地控制各種儀器,并將主要精力放在儀器功能的實現(xiàn)上,而不必關(guān)心具體的編程細節(jié),這一點是LabVIEW強大功能的體現(xiàn)。3。3。3VISA簡介VISA是NI公司發(fā)布的為統(tǒng)一軟件標(biāo)準的驅(qū)動軟件體系結(jié)構(gòu)。它是與驅(qū)動軟件通信的LabVIEW儀器驅(qū)動VI中的底層函數(shù).VISA本身不提供儀器編程功能.VISA是一個調(diào)用低層驅(qū)動程序的高層API。VISA能夠控制VXI、GPIB、串口或者基于計算機的儀器,并能根據(jù)所用儀器的類型來調(diào)用合適的驅(qū)動程序。下表給出了本系統(tǒng)用到的幾個通信模塊的基本屬性的描述。
VI名稱
VI功能
VISAConfigureSerialPort
初始化VISAresourcename指定的串口通訊參數(shù)
VISAWrite
將輸出緩沖區(qū)中的數(shù)據(jù)發(fā)送到VISAresourcename指定的串口
VISARead
將VISAresourcename指定的串口接收緩沖區(qū)中的數(shù)據(jù)讀取指定字節(jié)數(shù)的數(shù)據(jù)到計算機內(nèi)存中
VISASerialBreak
向VISAresourcename指定的串口發(fā)送一個暫停信號
VISABytesatSerialPort
查詢VISAresourcename指定的串口接收緩沖區(qū)中的數(shù)據(jù)字節(jié)數(shù)
VISAClose
結(jié)束與VISAresourcename指定的串口資源之間的會話
VISASetI/OBufferSize
設(shè)置VISAresourcename指定的串口的輸入輸出緩沖區(qū)大小
VISAFlushI/OBuffer
清空VISAresourcename指定的串口的輸入輸出緩沖區(qū)3。4PID控制模塊簡介NI提供了在LabVIEW中使用的PID控制工具包,可幫助工程師結(jié)合NI數(shù)據(jù)采集設(shè)備快速有效地搭建一個數(shù)字PID控制器,精確可靠地完成系統(tǒng)需求。安裝NI光盤TookitSoftware中的LabVIEWPIDControlTookit,即可在LabVIEW中生成該工具包。安裝完成后打開一個新的VI,右擊程序框圖,在“函數(shù)”面板上選擇“控制設(shè)計與仿真”,即可看到PID工具包,該工具包由10個VI組成(如圖3—1)。圖3—1PID工具包利用PID。vi即可搭建一個簡單的PID控制器,在該vi的輸入端給入PID的3個參數(shù)值(PIDgains),系統(tǒng)反饋值(processvariable),實際期望值(setpoint)以及微分時間(dt),便能得到需要的輸出值(output)。該vi還能控制輸出值的范圍(如圖3—2)。圖3—2PID的使用范例PIDAdvanced.vi是為專家PID設(shè)計的vi,增加了一些高級的功能,如可以設(shè)定期望值的范圍(setpointrange),手動控制(manualcontrol),線性化(linearity)等功能。PIDAutotuning。vi(如圖3-3)是為需要自整定的PID系統(tǒng)設(shè)計的,在給出一些基本要求后,具有自整定的功能。圖3-3PIDAutotuning。viPIDLead/Lag。vi可以對PID控制器(如圖3—4)前端由系統(tǒng)反饋來的輸入信號做動態(tài)補償.PIDSetpointProfile。vi可以在期望值間斷性變化時使其變得平滑。PIDControlInputFilter。vi是一個五階的低通濾波器,放在PID控制器的processvariable前端,可以濾去小于采樣率十分之一的輸入值。PIDGainSchedule.vi可以寫入幾組增益參數(shù),并給出條件,執(zhí)行時當(dāng)輸入信號達到條件,便使用對應(yīng)的一組參數(shù)給入到PID控制器的PIDGains上.PIDOutputLimiter。vi對PID控制器輸出信號的變化速率進行控制,以保證外部接受控制信號部件的安全。PIDEGUto%.vi和PID%toEGU。vi負責(zé)對實際數(shù)值和其在設(shè)定工程單元范圍內(nèi)占的百分比進行轉(zhuǎn)換。圖3—4構(gòu)建PID控制系統(tǒng)3。5模糊控制模塊簡介安裝NI光盤TookitSoftware中的LabVIEWPIDControlTookit,即可在LabVIEW中生成該工具包。安裝完成后打開一個新的VI,右擊程序框圖,在FunctionsPalette上選擇ControlDesign&Simulation,即可看到FuzzyLogic工具包,該工具包由3個VI組成(圖3-5).安裝工具包后,可以使用LabVIEW創(chuàng)建.fc格式的文件。.fc文件是NI自定義的一種文件格式,用于仿真模糊控制器推理機中的知識庫。圖3—5FuzzyLogic工具包創(chuàng)建一個。fc文件步驟如下:打開一個新的VI,在任務(wù)欄依次點擊Tools——ControlDesignandSimulation--FuzzyLogicControllerDesign…,接著在彈出的FuzzyLogicControllerDesign(如圖3—6)對話框的狀態(tài)欄上點擊File——New,即打開了一個新的。fc文件。圖3—6FuzzyLogicControllerDesign接著彈出一個FuzzySetEditor對話框,這是仿真模糊推理器中的數(shù)據(jù)庫.工程師可根據(jù)專家經(jīng)驗繪制出輸入和輸出量的隸屬函數(shù)圖,繪制完成后點擊Quit;接著彈出RulebaseEditor對話框(圖3—7),這是仿真模糊推理器的規(guī)則庫.工程師根據(jù)實際情況將制定好的規(guī)則寫入,完成后點擊Quit;最后點擊File—-Save,給出保存位置和文件名,一個.fc文件就創(chuàng)建完成了.圖3—7FuzzySetEditor圖3—8RulebaseEditor.fc文件使用工具包FuzzyLogic中的LoadFuzzyController。vi加載,該VI加載后將數(shù)據(jù)傳送到FuzzyController.vi中.FuzzyController。vi接收輸入信號(最多可接受4維輸入),根據(jù)。fc文件進行模糊推理,并計算出合適的輸出信號值(圖3-8).工具包中的另一個VI是TestFuzzyController.vi,它可以通過手動輸入算出輸出響應(yīng)值,已到達調(diào)試。fc文件中規(guī)則和隸屬度函數(shù)的目的。4以單片機為核心的下位機的設(shè)計4。1下位機設(shè)計方案下位機上,本設(shè)計采用Atmega16控制DS18B20采集溫度,并將采集到的溫度通過串口發(fā)送到上位機,以便處理。在上位機發(fā)回控制信息后,單片機將收到的信息按照一定的規(guī)則處理后,將其送入功率控制設(shè)備.此功率設(shè)備為過零型固態(tài)繼電器,在電流過零處導(dǎo)通或關(guān)斷,易于實現(xiàn)PWM的控制。4.2下位機的硬件設(shè)計硬件部分分為四個部分:主控部分、DS18B20測溫部分、通信部分、程序下載部分.4。2。1主控部分由于需要進行串口通信,所以單片機的晶體振蕩器我們選擇用的比較多的7。3728MHz的外部晶振(如圖4-1)。圖4—1主控部分4。2。2DS18B20測溫部分本來在DS18B20的數(shù)據(jù)腳上應(yīng)該接一個4。7K的上拉電阻(如圖4-2),可是由于Atmega16中的數(shù)據(jù)腳上已經(jīng)有了內(nèi)部的上拉電阻,我們就不需要在外部再加.這樣不僅降低了成本,最大程度利用了Atmega16的強大功能,而且降低了電路的復(fù)雜性,使布線更加方便.圖4—2測溫部分4。2.3通信部分硬件電路如圖4—3圖4-3串口通信部分4。2。4程序下載部分硬件電路如圖4—4圖4—4程序下載部分4。3下位機的軟件設(shè)計系統(tǒng)模型如下圖4-5。圖4—5下位機系統(tǒng)模型4。3。1DS18B20工作原理及應(yīng)用DS18B20的溫度檢測與數(shù)字數(shù)據(jù)輸出全集成于一個芯片之上,從而抗干擾力更強。其一個工作周期可分為兩個部分,即溫度檢測和數(shù)據(jù)處理.在講解其工作流程之前有必要了解DS18B20的內(nèi)部存儲器資源.DS18B20共有三種形態(tài)的存儲器資源,它們分別是:ROM只讀存儲器,用于存放DS18B20ID編碼,其前8是單線系列編碼(DS18B20的編碼是19H),后面48位是芯片唯一的序列號,最后8位是以上56的位的CRC碼(冗余校驗)。數(shù)據(jù)在出產(chǎn)時設(shè)置不由用戶更改.DS18B20共64位ROM。RAM數(shù)據(jù)暫存器,用于內(nèi)部計算和數(shù)據(jù)存取,數(shù)據(jù)在掉電后丟失,DS18B20共9個字節(jié)RAM,每個字節(jié)為8位。第1、2個字節(jié)是溫度轉(zhuǎn)換后的數(shù)據(jù)值信息,第3、4個字節(jié)是用戶EEPROM(常用于溫度報警值儲存)的鏡像。在上電復(fù)位時其值將被刷新。第5個字節(jié)則是用戶第3個EEPROM的鏡像.第6、7、8個字節(jié)為計數(shù)寄存器,是為了讓用戶得到更高的溫度分辨率而設(shè)計的,同樣也是內(nèi)部溫度轉(zhuǎn)換、計算的暫存單元。第9個字節(jié)為前8個字節(jié)的CRC碼.EEPROM非易失性記憶體,用于存放長期需要保存的數(shù)據(jù),上下限溫度報警值和校驗數(shù)據(jù),DS18B20共3位EEPROM,并在RAM都存在鏡像,以方便用戶操作??刂破鲗?8B20操作流程:(1)復(fù)位:首先必須對DS18B20芯片進行復(fù)位,復(fù)位就是由控制器(單片機)給DS18B20單總線至少480uS的低電平信號。當(dāng)18B20接到此復(fù)位信號后則會在15~60uS后回發(fā)一個芯片的存在脈沖.(2)存在脈沖:在復(fù)位電平結(jié)束之后,控制器應(yīng)該將數(shù)據(jù)單總線拉高,以便于在15~60uS后接收存在脈沖,存在脈沖為一個60~240uS的低電平信號。至此,通信雙方已經(jīng)達成了基本的協(xié)議,接下來將會是控制器與DS18B20間的數(shù)據(jù)通信.如果復(fù)位低電平的時間不足或是單總線的電路斷路都不會接到存在脈沖,在設(shè)計時要注意意外情況的處理。(3)控制器發(fā)送ROM指令:雙方打完了招呼之后最要將進行交流了,ROM指令共有5條,每一個工作周期只能發(fā)一條,ROM指令分別是讀ROM數(shù)據(jù)、指定匹配芯片、跳躍ROM、芯片搜索、報警芯片搜索。ROM指令為8位長度,功能是對片內(nèi)的64位光刻ROM進行操作。其主要目的是為了分辨一條總線上掛接的多個器件并作處理。誠然,單總線上可以同時掛接多個器件,并通過每個器件上所獨有的ID號來區(qū)別,一般只掛接單個18B20芯片時可以跳過ROM指令(注意:此處指的跳過ROM指令并非不發(fā)送ROM指令,而是用特有的一條“跳過指令”)。(4)控制器發(fā)送存儲器操作指令:在ROM指令發(fā)送給18B20之后,緊接著(不間斷)就是發(fā)送存儲器操作指令了。操作指令同樣為8位,共6條,存儲器操作指令分別是寫RAM數(shù)據(jù)、讀RAM數(shù)據(jù)、將RAM數(shù)據(jù)復(fù)制到EEPROM、溫度轉(zhuǎn)換、將EEPROM中的報警值復(fù)制到RAM、工作方式切換。存儲器操作指令的功能是命令18B20作什么樣的工作,是芯片控制的關(guān)鍵。(5)執(zhí)行或數(shù)據(jù)讀寫:一個存儲器操作指令結(jié)束后則將進行指令執(zhí)行或數(shù)據(jù)的讀寫,這個操作要視存儲器操作指令而定。如執(zhí)行溫度轉(zhuǎn)換指令則控制器(單片機)必須等待18B20執(zhí)行其指令,一般轉(zhuǎn)換時間為500uS.如執(zhí)行數(shù)據(jù)讀寫指令則需要嚴格遵循18B20的讀寫時序來操作。若要讀出當(dāng)前的溫度數(shù)據(jù)需要執(zhí)行兩次工作周期,第一個周期為復(fù)位、跳過ROM指令、執(zhí)行溫度轉(zhuǎn)換存儲器操作指令、等待500uS溫度轉(zhuǎn)換時間.緊接著執(zhí)行第二個周期為復(fù)位、跳過ROM指令、執(zhí)行讀RAM的存儲器操作指令、讀數(shù)據(jù)(最多為9個字節(jié),中途可停止,只讀簡單溫度值則讀前2個字節(jié)即可)。如圖4-6為DS18B20相關(guān)程序設(shè)計流程.4。3。2單片機串口通信部分串口通信首先要對串口進行初始化設(shè)置.初始化內(nèi)容包括首先選擇同步發(fā)送還是異步發(fā)送,如果是異步發(fā)送的話,選擇是正常發(fā)送模式還是倍速發(fā)送模式,在本設(shè)計中采用異步正常模式發(fā)送。然后設(shè)置開啟發(fā)送和接收中斷使能,并且設(shè)置幀格式,通常選擇8位數(shù)據(jù)位,1位停止位。初始化的最后一步是設(shè)置通信的波特率。波特率我們選擇計算機串口通信用的比較多的9600bps,根據(jù)異步正常模式的波特率計算公式,可以算出UBRR=47,所以在設(shè)置波特率寄存器的時候,設(shè)置UBRRH=0x00,UBRRL=0x2F。在串口初始化函數(shù)完成之后,即可編寫發(fā)送和接受函數(shù)。串口發(fā)送和接受函數(shù)比較簡單,本設(shè)計不再贅述。圖4—7為串口通信流程圖:4。3.3單片機PWM功率控制部分Atmega16有16種PWM模式,在本設(shè)計中我們選用模式15-—快速PWM。PWM的初始化比較簡單,在這里我們不予贅述。比較重要的是PID控制器輸出的控制量與PWM占空比的關(guān)系。此關(guān)系的測量需要進行硬件調(diào)試才可以達到較為理想的值。圖4—6DS18B20操作流程圖4—7串口通信流程圖5基于PC的上位機編程設(shè)計對于上位機的設(shè)計,本設(shè)計選擇和下位機一樣,采取分模塊設(shè)計的思想.這樣有助于的編程和介紹。5.1方案設(shè)計與選擇上位機的串口通信流程圖如下:圖5—1上位機串口通信流程圖5.2上位機各模塊設(shè)計5。2。1串口通信模塊設(shè)計如圖圖5—2基本的串口通信流程5。2.2數(shù)據(jù)處理部分設(shè)計由于串口發(fā)送和接受的數(shù)據(jù)都是字符串的形式。而LabVIEW中顯示控件支持的數(shù)據(jù)類型只有數(shù)值型數(shù)據(jù)。所以在將采集到的數(shù)據(jù)送往顯示控件之前,必須將串口發(fā)送上來的采集數(shù)據(jù)轉(zhuǎn)換成顯示控件可以接受的數(shù)值型數(shù)據(jù)。要做到這點在其他的編程語言中可能可能會比較麻煩,但在LabVIEW中確實一件相當(dāng)輕松且有趣的事情。只要在LabVIEW中后面板的“編程”下面的“字符串”子面板中找到“十進制字符串至數(shù)值轉(zhuǎn)換”這個子VI就完全可以輕松地實現(xiàn)這個功能。這個子VI及說明如圖所示。圖5—3十進制數(shù)字符串至數(shù)值轉(zhuǎn)換子VI在上位機往下位機發(fā)送數(shù)據(jù)時,則需將PID控制算法或者模糊控制算法計算得的數(shù)值型數(shù)據(jù)轉(zhuǎn)換成串口通信中的字符串。和前面一樣,這個轉(zhuǎn)換在LabVIEW中的實現(xiàn)也是相當(dāng)簡單。方法如前,在相應(yīng)的路徑下找到“數(shù)值至十進制字符串轉(zhuǎn)換”,放在程序中相應(yīng)的位置即可。此子VI及說明如圖所示。圖5-4數(shù)值至十進制數(shù)字符串轉(zhuǎn)換5。2。3PID控制部分設(shè)計針對于本系統(tǒng)設(shè)計,本設(shè)計使用最簡單的PID。VI即可搭建一個簡單的PID控制器,在該VI的輸入端給入PID的3個參數(shù)值(PIDgains),系統(tǒng)反饋值(processvariable),實際期望值(setpoint)以及微分時間(dt),便能得到需要的輸出值(output)。圖5—5PID模塊6總結(jié)在明白了以上的設(shè)計任務(wù)、要求和方案之后,確定設(shè)計方案之后,寫好程序并在仿真軟件Proteus中仿真,達到設(shè)計要求時,就需要開始著手系統(tǒng)硬件的制作和調(diào)試了。在本次設(shè)計的過程中,我發(fā)現(xiàn)很多的問題,看似很簡單的電路,要動手把它給設(shè)計出來,也是一件不太簡單事,主要原因是我們沒有經(jīng)常動手設(shè)計過電路,還有資料的查找也是一大難題,因為手頭的資源有限,這就要求我們在以后的學(xué)習(xí)中,應(yīng)該注意到這一點,更重要的是我們要學(xué)會把從書本中學(xué)到的知識和實際的電路聯(lián)系起來,這不論是對我們以后的就業(yè)還是學(xué)習(xí),都會起到很大的促進和幫助,我相信,通過這次的設(shè)計,在以后的工作和學(xué)習(xí)中我會更加努力。同時,通過本次設(shè)計,鞏固了我們學(xué)習(xí)過的專業(yè)知識,也使我們把理論與實踐從真正意義上相結(jié)合了起來;考驗了我們借助互聯(lián)網(wǎng)絡(luò)搜集、查閱相關(guān)文獻資料,和組織材料的綜合能力;從中可以自我測驗,認識到自己哪方面有欠缺、不足,以便于在日后的學(xué)習(xí)中得以改進、提高;效率.由于本人的知識有限,文中有錯誤和疏漏的地方,敬請各位老師指正!本設(shè)計主要成果如下:(1)實現(xiàn)了用AVR通過DS18B20測量周圍環(huán)境的溫度并將其通過串口發(fā)送到上位機。(2)學(xué)會了LabVIEW的初級使用方法.(3)用LabVIEW編寫了一串口通信程序,并可以將上位機發(fā)送上來的溫度數(shù)據(jù)送往顯示控件顯示。(4)使用NI提供的用于LabVIEW的PID控制模塊,編寫PID控制程序,用于控制下位機加熱裝置的溫度。(5)設(shè)計了下位機的功率控制方案.參考文獻[1]王磊,陶梅.精通LabVIEW8.0[M]。北京:電子工業(yè)出版社2007。1[2]JeffreyTravis,JimKring。LabVIEW大學(xué)實用教程(第三版)[M]。北京:電子工業(yè)出版社2008。6[3]RobertH。Bishop。LabVIEW8實用教程[M]。北京:電子工業(yè)出版社2008。4[4]程學(xué)慶,房曉溪等.LabVIEW圖形化編程與實例應(yīng)用[M].北京:中國鐵道出版社2005。3[5]吳雙力,崔劍等。AVR-GCC與AVR單片機C語言開發(fā)[M]。北京:北京航空航天學(xué)出版社2004[6]杜樹春。單片機C語言和匯編語言混合編程實踐[M].北京:北京航空航天大學(xué)出版社2008[7]張軍,宋濤。AVR單片機C語言程序設(shè)計實例精粹[M]。北京:電子工業(yè)出版社2009[8]朱飛,楊平.AVR單片機C語言開發(fā)入門與典型實例[M]。北京:人民郵電出版社2009[9]沈文等。AVR單片機C語言開發(fā)入門指導(dǎo)[M]。北京:清華大學(xué)出版社2003[10]海濤等。ATmega系列單片機原理及應(yīng)用:C語言教程[M]。北京:機械工業(yè)出版社2008[11]張偉,劉紅麗?;贚abVIEW的溫度測控系統(tǒng)設(shè)計[J]。西安:國外電子元器件2009[12]胡壽松.自動控制原理[M]。北京:科學(xué)出版社2001[13]邵玉森.過程控制與儀表[M]。上海:上海交通大學(xué)出版社1995.7[14]董景新等??刂乒こ袒A(chǔ)[M].北京:清華大學(xué)出版社2003.8[15]謝瑞和。串行技術(shù)大全[M].北京:清華大學(xué)出版社2003[16]董方武。微機接口技術(shù)[M]。北京:中國水利水電出版社2001[17]李恩林陳斌生。微機接口技術(shù)300例[M]。北京:機械工業(yè)出版社2003[18]康華光。電子技術(shù)基礎(chǔ)[M].北京:高等教育出版社2006。1[19]黃賢武鄭筱霞.傳感器原理與應(yīng)用[M].北京:高等教育出版社2004。3[20]A。V。Oppenheim,A.S。Willsky.SignalandSystem[M]。Printice—Hall,Inc。1983[21]DWHart。Foundationandapplicationofmicrocontroller[M].beijing:HigherEducationPress,2004。[22]Intel。MCS—51FamilyofSingleChipMicrocomputerUser’sManual,1990。謝辭本研究及學(xué)位論文是在指導(dǎo)老師的親切關(guān)懷和悉心指導(dǎo)下完成的。他嚴肅的科學(xué)態(tài)度,嚴謹?shù)闹螌W(xué)精神,精益求精的工作作風(fēng),深深地感染和激勵著我。從課題的選擇到項目的最終完成,老師都始終給予我細心的指導(dǎo)和不懈的支持。兩年多來,老師不僅在學(xué)業(yè)上給我們以精心指導(dǎo),同時還在思想、生活上給我們以無微不至的關(guān)懷,在此謹向老師致以誠摯的謝意和崇高的敬意。幾個月的查資料、整理材料、論文寫作、制作樣機,今天終于順利的完成論文。思考了許久,寫下這一段謝詞.時光匆匆飛逝,四年多的努力與付出,隨著畢業(yè)設(shè)計的完成,給我的大學(xué)四年劃下一個完美的句號。
畢業(yè)設(shè)計的順利完成,離不開其它各位老師、同學(xué)的關(guān)心和幫助.在整個的設(shè)計中,各位老師、同學(xué)積極的幫助我查資料和提供有利于論文寫作的建議和意見。另外,要感謝在大學(xué)期間所有傳授我知識的老師,是你們的悉心教導(dǎo)使我有了良好的專業(yè)課知識,這也是論文得以完成的基礎(chǔ)。最后要感謝的就是我的父母、朋友,對于他們我更是有千言萬語,還是匯聚成一句話:感謝你們一直都伴隨著我。
現(xiàn)在即將揮別我的學(xué)校、老師、同學(xué),還有我四年的大學(xué)生活,雖然依依不舍,但是對未來的路,我充滿了信心。最后,感謝在大學(xué)期間認識我和我認識的所有人,有你們伴隨,才有我大學(xué)生活的豐富多彩,絢麗多姿!喬建玉2014年5月于河南師范大學(xué)附錄附錄一電路原理圖附錄二PCB圖附錄三元器件清單名稱型號備注數(shù)量在原理圖上的標(biāo)號AVR單片機Atmega161固態(tài)繼電器GTJ24-2A1溫度傳感器DS18B201晶體振蕩器7.3728MHz1瓷片電容30pF2電解電容25V/10uF4排插2x52排插底座2x51插針底座1x31排線1x31插針1x21音頻頭1接線柱1x22銅柱8排線1排6根1串口頭DB9公頭1水泥電阻8W2K23銅板萬用板1附錄四單片機程序下位機程序主程序#include〈iom16v。h〉/*包含相關(guān)頭文件*/#include<macros。h>#include〈math。h>#include”ds18b20。h"#include"delay。h"#include”pwm_init。h"#include”port_init。h”#defineOCROCR1A//全局變量聲明unsignedcharTemp_H,Temp_L;//溫度高位,低位,復(fù)位成功標(biāo)志//主函數(shù)voidmain(void){floattemp,a,b,c=0;intmiddle,j,k,l;unsignedcharf_to_p;unsignedinti;//用于暫存讀回的16位溫度值unsignedchart[6];//用于存溫度數(shù)值及單位unsignedchar*p;unsignedchartmp=0;Temp_H=0;Temp_L=0;port_init();//端口初始化pwm_init();//pwm初始化OCR=0;port_1820();//DS18B20對應(yīng)單片機端口初始化Uart_Init();//波特率9600初始化串口while(1){for(k=0;k<=9;k++){ds1820_reset();//復(fù)位D18B20ds1820_start();//啟動一次轉(zhuǎn)換longdelay();//等待轉(zhuǎn)換結(jié)束longdelay();i=ds1820_read_temp();//讀取溫度數(shù)值,讀得的溫度值為16位//用于調(diào)試的原始溫度數(shù)據(jù)//i=0x07d0;//當(dāng)溫度為125oC時的i值//i=0xff5e;//負10.125度//i=0xfebe;//負20。125度//i=0x0191;//正25。0625度//i=0x0550;//正85度if(i&0x8000)//判斷溫度正負{/溫度為負時//一個字長的溫度值轉(zhuǎn)換成兩個字節(jié),分別放在Temp_L,Temp_H中Temp_L=(char)(i&0x00ff);//取i中的低8位Temp_H=(char)((i&0xff00)>〉8);//取i中的高8位Temp_H=~Temp_H;//負溫度.取反加1Temp_L=~Temp_L;asm(”clc”);//清零進位位標(biāo)志Temp_L++;//溫度低字節(jié)加1if((SREG&0x01)!=0x01)//有進位嗎?{Temp_H++;//有進位,則溫度高字節(jié)加1}i=Temp_H;//高8位放回i中i=(i<〈8)|Temp_L;//低8位放回i中temp=(float)(i*0。0625);middle=(int)(temp*100);//取整數(shù)帶小數(shù)點后兩位t[0]=middle/10000+0x30;t[1]=(middle%10000)/1000+0x30;t[2]=(middle%1000)/100+0x30;t[3]=0x2e;//value_1[3]為小數(shù)點存放單元t[4]=(middle%100)/10+0x30;t[5]=(middle%10)+0x30;Uart_Transmit(0x2d);for(j=0;j〈=5;j++){Uart_Transmit(t[j]);}Uart_Transmit(0x0d);}else{//溫度為正temp=(float)(i*0。0625);middle=(int)(temp*100);//取整數(shù)帶小數(shù)點后兩位t[0]=middle/10000+0x30;t[1]=(middle%10000)/1000+0x30;t[2]=(middle%1000)/100+0x30;t[3]=0x2e;//value_1[3]為小數(shù)點存放單元t[4]=(middle%100)/10+0x30;t[5]=(middle%10)+0x30;Uart_Transmit(0x2b);for(j=0;j〈=5;j++){Uart_Transmit(t[j]);}Uart_Transmit(0x0d);}}Uart_Transmit(0x24);//和上位機握手for(l=0;l〈=4;l++){Uart_Receive();a=UDR-0x30;b=a*pow(10,l—2);c+=b;}OCR=(20*c);//根據(jù)PID輸出的控制調(diào)節(jié)占空比}}DS18B20函數(shù)#include〈iom16v。h〉#include〈macros。h>#defineDQ_INDDRA&=~(1〈〈PA7)/*設(shè)置輸入*/#defineDQ_OUTDDRA|=(1<〈PA7)/*設(shè)置輸出*/#defineDQ_CLRPORTA&=~(1<〈PA7)/*置低電平*/#defineDQ_SETPORTA|=(1〈〈PA7)/*置高電平*/#defineDQ_RPINA&(1〈<PA7)/*讀了電平*/unsignedcharflag;/*中斷標(biāo)志緩存*//*DS18B20復(fù)位函數(shù)*/unsignedchards1820_reset(void){unsignedchari;flag=SREG;/*中斷保護*/CLI();/*關(guān)中斷*/DQ_OUT;DQ_CLR;delayUs(255);/*延時500uS(480-960)*/delayUs(255);delayUs(128);DQ_SET;DQ_IN;delayUs(100);/*延時80uS*/i=DQ_R;delayUs(255);/*延時500uS(保持〉480uS)*/delayUs(255);delayUs(128);if(flag&0x80){/*恢復(fù)中斷狀態(tài)*/SEI();}if(i){return0x00;}else{return0x01;}}/*DS18B20字節(jié)讀取函數(shù)*/unsignedchards1820_read_byte(void){unsignedchari;unsignedcharvalue=0;flag=SREG;/*中斷保護*/CLI();/*關(guān)中斷*/for(i=8;i!=0;i--){value>〉=1;DQ_OUT;DQ_CLR;delayUs(2);/*延時4uS*/NOP();NOP();NOP();NO
溫馨提示
- 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)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 腦死亡判定標(biāo)準解析
- 達利記憶的永恒解析
- 《GBT 33776.602-2017 林業(yè)物聯(lián)網(wǎng) 第 602 部分:傳感器數(shù)據(jù)接口規(guī)范》專題研究報告
- 《GBT 32278-2015 碳化硅單晶片平整度測試方法》專題研究報告
- 《GB-T 19428-2014地震災(zāi)害預(yù)測及其信息管理系統(tǒng)技術(shù)規(guī)范》專題研究報告
- 《AQ 7027-2025玻璃纖維生產(chǎn)安全規(guī)范》專題研究報告
- 2026年資陽環(huán)境科技職業(yè)學(xué)院單招職業(yè)傾向性考試題庫及參考答案詳解1套
- 生鮮電商采購貨款支付擔(dān)保協(xié)議
- 智能制造解決方案工程師崗位招聘考試試卷及答案
- 珠寶行業(yè)珠寶直播運營專員崗位招聘考試試卷及答案
- 新產(chǎn)品開發(fā)項目進度計劃表
- 2024年湖南石油化工職業(yè)技術(shù)學(xué)院單招職業(yè)技能測試題庫及答案
- 2020年科學(xué)通史章節(jié)檢測答案
- 長期臥床患者健康宣教
- 穿刺的并發(fā)癥護理
- 設(shè)計公司生產(chǎn)管理辦法
- 企業(yè)管理綠色管理制度
- 2025年人工智能訓(xùn)練師(三級)職業(yè)技能鑒定理論考試題庫(含答案)
- 2025北京八年級(上)期末語文匯編:名著閱讀
- 小學(xué)美術(shù)教育活動設(shè)計
- 蜜雪冰城轉(zhuǎn)讓店協(xié)議合同
評論
0/150
提交評論