




已閱讀5頁,還剩45頁未讀, 繼續(xù)免費閱讀
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
智能儀器綜合設計用紙目 錄第一章 引言11.1 課題的研究意義1第二章 總體設計方案22.1設計思路與原理22.2系統(tǒng)總體設計框圖32.3系統(tǒng)主要參數設計原理4第三章 硬件設計53.1使用設備53.2 AT89S52單片機簡介:73.3 PWM信號發(fā)生電路設計103.4 顯示與鍵盤模塊113.5 ZigBee無線收發(fā)模塊113.6 轉動源模塊13第四章 系統(tǒng)的軟件設計與實現144.1 系統(tǒng)軟件簡介144.2 編程語言簡介144.3程序設計15第五章 上位機設計235.1 函數介紹235.2 前面板設計255.3 程序框圖設計26第六章 運行與調試27個人小結31參考文獻41附錄142第一章 引言1.1 課題的研究意義直流電機具有良好的起動、制動性能,宜于在大范圍內平滑調速,在許多需要調速或快速正反向的電力拖動系統(tǒng)中得到了廣泛的應用。近年來,交流調速系統(tǒng)發(fā)展很快,然而直流拖動系統(tǒng)無論是在理論上還是在實踐上都比較成熟,并且從反饋閉環(huán)控制的角度來看,它又是交流拖動控制系統(tǒng)的基礎,所以直流調速系統(tǒng)在生活中有著舉足輕重的作用。雖然隨著電力技術的發(fā)展,特別是在大功率電力電子器件問世以后,直流電機拖動將有逐步被交流電機拖動所取代的趨勢,但在中、小功率場合,常采用永磁直流電動機。早期的直流電動機的控制均以模擬電路為基礎,采用運算放大器、非線性集成電路以及少量的數字電路組成,控制自通的硬件部分非常復雜,功能單一,而且系統(tǒng)非常不靈活,調試困難。隨著單片機技術的不斷進步,使得許多控制功能及算法可以采用軟件技術來完成,為直流電動機的控制提供了更大的靈活性,并使系統(tǒng)能夠達到更高的穩(wěn)定性能,同時還具有軟特性好,過載能力強,可進行PID調節(jié),調速穩(wěn)定等優(yōu)勢。因此,本課題的研究具有很好的實際意義。本次設計主要研究的是PID控制技術在運動控制領域中的應用,縱所周知運動控制系統(tǒng)最主要的控制對象是電機,在不同的生產過程中,電機的運行狀態(tài)要滿足生產要求,其中電機速度的控制在占有至關重要的作用,因此本次設計主要是利用PID控制技術對直流電機轉速的控制。其設計思路為:以AT89S52單片機為控制核心,產生占空比受PID算法控制的PWM脈沖實現對直流電機轉速的控制。同時利用光電傳感器將電機速度轉換成脈沖頻率反饋到單片機中,構成轉速閉環(huán)控制系統(tǒng),達到轉速無靜差調節(jié)的目的。因此該系統(tǒng)在硬件方面包括:電源模塊、電機驅動模塊、控制模塊、速度檢測模塊、人機交互模塊。軟件部分采用C語言進行程序設計,其優(yōu)點為:可移植性強、算法容易實現、修改及調試方便、易讀等。第二章 總體設計方案2.1設計思路與原理本文主要研究了利用AT89S52單片機控制PWM信號從而實現對直流電機轉速進行控制的方法。而中間利用了大家都比較熟悉的數字PID算法,以前大家用的比較多的是模擬PID算法,但是由于現場的系統(tǒng)參數、溫度等條件發(fā)生變化,使系統(tǒng)很難達到最佳的控制效果,因此采用模擬PID控制器難以獲得滿意的控制效果。數字PID不僅能夠實現模擬PID所完成的控制任務,而且具備控制算法靈活、可靠性高等優(yōu)點,應用面越來越廣。本實驗還利用了Labview設計上位機來對直流電機的轉速進行測量,并在Labview的前面板顯示出轉速,再通過Labview的串口通信反饋給單片機,然后利用數字PID算法調節(jié)轉速,通過Labview實時檢測轉速大小。單片機直流電機調速簡介:單片機直流調速系統(tǒng)可實現對直流電動機的平滑調速。PWM是通過控制固定電壓的直流電源開關頻率,從而改變負載兩端的電壓,進而達到控制要求的一種電壓調整方法。在PWM驅動控制的調整系統(tǒng)中,按一個固定的頻率來接通和斷開電源,并根據需要改變一個周期內“接通”和“斷開”時間的長短。通過改變直流電機電樞上電壓的“占空比”來改變平均電壓的大小,從而控制電動機的轉速。因此,PWM又被稱為“開關驅動裝置”。本系統(tǒng)以AT89S52單片機為核心,通過單片機控制,C語言編程實現對直流電機的平滑調速。本實驗主要運用的是脈沖觸發(fā)(也就是上升沿觸發(fā)中斷)系統(tǒng)控制方案的分析:本直流電機調速系統(tǒng)以單片機系統(tǒng)為依托,根據PWM調速的基本原理,以直流電機電樞上電壓的占空比來改變平均電壓的大小,從而控制電動機的轉速為依據,實現對直流電動機的平滑調速,并通過單片機控制速度的變化。轉速監(jiān)測與反饋系統(tǒng)的分析:以往我們會使用測速發(fā)電機來進行轉速的測量與分析,把輸入的機械轉速變換為電壓信號輸出,并要求輸出的電壓信號與轉速成正比,分為直流與交流兩種。而運用Labview(G語言)設計轉速測量系統(tǒng)是種大膽的嘗試,用Labview設計起來方便,操作簡單,只要用Labview的串口通信就可以與單片機相連接,編入C代碼就能實現監(jiān)測功能。2.2系統(tǒng)總體設計框圖上位機監(jiān)控光電對管轉動源轉速顯示MCUINTOP1.7模擬PWMPID調整由于上位機和單片機都具有串口,因此經常使用串口完成兩者之間的數據交換,這就需要在上位端設計相應的串口通信程序。完成了與單片機的數據交換后,就能在Labview的前面板實時監(jiān)測轉速,用上位機監(jiān)測到的數據反饋給MCU,用P1.7模擬PWM,進而通過位置型PID進行調整,將數據傳輸給轉動源,實現調整轉速的功能。PWM信號的產生與放大就是在PWM驅動控制的調整系統(tǒng)中,按一個固定的頻率來接通和斷開電源,并且根據需要改變一個周期內“接通”和“斷開”時間的長短。通過改變直流電機電樞上電壓的“占空比”來達到改變平均電壓大小的目的,從而來控制電動機的轉速。也正因為如此,PWM又被稱為“開關驅動裝置”。N給定PID驅動電機+2.3系統(tǒng)主要參數設計原理模擬PID就是在現場安裝的利用DDZII或者DDZIII型表再加上其他氣動儀表的模塊,對現場控制變量的模擬信號利用旋鈕或撥盤對PID的三個值進行設定對或者手動控制輸出的系統(tǒng),其信號均為模擬信號。 數字PID就是把現場的控制變量的模擬信號和對現場受控變量的輸出信號均轉換成了數字信號,PID的實現也是通過數字信號的設定來完成的。現在大多在DCS、PLC系統(tǒng)內完成的。 數字PID有兩種模式:位置型PID算式,增量型PID算式。增量型PID不需要做累加,控制量增量的確定僅與最近幾次誤差采樣值有關,計算誤差或計算精度問題對控制量的計算影響較小,而位置型算法要用到過去的誤差累加值,容易產生大的累加誤差。增量型算法得出的是控制量的增量,例如閥門控制中,只輸出閥門開度的變化部分,誤動作影響小,必要時通過邏輯判斷限制或禁止本次輸出,不會嚴重影響系統(tǒng)的工作。采用增量型算法,易實現手動到自動的無沖擊切第三章 硬件設計3.1使用設備ZYMCU02主機模塊、顯示與鍵盤模塊、ZigBee無線收發(fā)實驗模塊、轉動源實驗模塊、電腦一臺(已裝KEIL和STC下載軟件)、導線。 實驗連線表: 表3-1主臺體ZigBee無線收發(fā)模塊轉動源ZYMCU02主機模塊顯示與鍵盤模塊+24V+24VGNDGNDVout+24VGNDGND+5V+5VGNDGND頻率/轉速表“+”FoutP3.2頻率/轉速表“-”GNDP1.0KEY1(設置)P1.1KEY2(加)P1.2KEY3(減)P1.3Q7(用于指示“設置”按鍵的動作狀態(tài))P7.7與GND之間未標示的插針P1.7P00.7LED4-H.AP20.7LED4-8.0 圖3.1 ZYMCU02主機模塊3.2 AT89S52單片機簡介:AT89S52為 ATMEL 所生產的一種低功耗、高性能CMOS8位微控制器,具有8K在系統(tǒng)可編程Flsah存儲器。(一)、AT89S52主要功能列舉如下:1、擁有靈巧的8位CPU和在系統(tǒng)可編程Flash2、晶片內部具時鐘振蕩器(傳統(tǒng)最高工作頻率可至 12MHz)3、內部程序存儲器(ROM)為 8KB4、內部數據存儲器(RAM)為 256字節(jié)5、32 個可編程I/O 口線6、8 個中斷向量源7、三個 16 位定時器/計數器8、三級加密程序存儲器9、全雙工UART串行通道(二)、AT89S52各引腳功能介紹:圖3.2VCC:AT89S52電源正端輸入,接+5V。VSS:電源地端。XTAL1:單芯片系統(tǒng)時鐘的反相放大器輸入端。XTAL2:系統(tǒng)時鐘的反相放大器輸出端,一般在設計上只要在 XTAL1 和 XTAL2 上接上一只石英振蕩晶體系統(tǒng)就可以動作了,此外可以在兩引腳與地之間加入一 20PF 的小電容,可以使系統(tǒng)更穩(wěn)定,避免噪聲干擾而死機。RESET:AT89S52的重置引腳,高電平動作,當要對晶片重置時,只要對此引腳電平提升至高電平并保持兩個機器周期以上的時間,AT89S51便能完成系統(tǒng)重置的各項動作,使得內部特殊功能寄存器之內容均被設成已知狀態(tài),并且至地址0000H處開始讀入程序代碼而執(zhí)行程序。EA/Vpp:EA為英文External Access的縮寫,表示存取外部程序代碼之意,低電平動作,也就是說當此引腳接低電平后,系統(tǒng)會取用外部的程序代碼(存于外部EPROM中)來執(zhí)行程序。因此在8031及8032中,EA引腳必須接低電平,因為其內部無程序存儲器空間。如果是使用 8751 內部程序空間時,此引腳要接成高電平。此外,在將程序代碼燒錄至8751內部EPROM時,可以利用此引腳來輸入21V的燒錄高壓(Vpp)。ALE/PROG:ALE是英文Address Latch Enable的縮寫,表示地址鎖存器啟用信號。AT89S52可以利用這支引腳來觸發(fā)外部的8位鎖存器(如74LS373),將端口0的地址總線(A0A7)鎖進鎖存器中,因為AT89S52是以多工的方式送出地址及數據。平時在程序執(zhí)行時ALE引腳的輸出頻率約是系統(tǒng)工作頻率的1/6,因此可以用來驅動其他周邊晶片的時基輸入。此外在燒錄8751程序代碼時,此引腳會被當成程序規(guī)劃的特殊功能來使用。PSEN:此為Program Store Enable的縮寫,其意為程序儲存啟用,當8051被設成為讀取外部程序代碼工作模式時(EA=0),會送出此信號以便取得程序代碼,通常這支腳是接到EPROM的OE腳。AT89S52可以利用PSEN及RD引腳分別啟用存在外部的RAM與EPROM,使得數據存儲器與程序存儲器可以合并在一起而共用64K的定址范圍。PORT0(P0.0P0.7):端口0是一個8位寬的開路汲極(Open Drain)雙向輸出入端口,共有8個位,P0.0表示位0,P0.1表示位1,依此類推。其他三個I/O端口(P1、P2、P3)則不具有此電路組態(tài),而是內部有一提升電路,P0在當做I/O用時可以推動8個LS的TTL負載。如果當EA引腳為低電平時(即取用外部程序代碼或數據存儲器),P0就以多工方式提供地址總線(A0A7)及數據總線(D0D7)。設計者必須外加一鎖存器將端口0送出的地址栓鎖住成為A0A7,再配合端口2所送出的A8A15合成一完整的16位地址總線,而定址到64K的外部存儲器空間。PORT2(P2.0P2.7):端口2是具有內部提升電路的雙向I/O端口,每一個引腳可以推動4個LS的TTL負載,若將端口2的輸出設為高電平時,此端口便能當成輸入端口來使用。P2除了當做一般I/O端口使用外,若是在AT89S52擴充外接程序存儲器或數據存儲器時,也提供地址總線的高字節(jié)A8A15,這個時候P2便不能當做I/O來使用了。PORT1(P1.0P1.7):端口1也是具有內部提升電路的雙向I/O端口,其輸出緩沖器可以推動4個LS TTL負載,同樣地若將端口1的輸出設為高電平,便是由此端口來輸入數據。如果是使用8052或是8032的話,P1.0又當做定時器2的外部脈沖輸入腳,而P1.1可以有T2EX功能,可以做外部中斷輸入的觸發(fā)腳位。PORT3(P3.0P3.7):端口3也具有內部提升電路的雙向I/O端口,其輸出緩沖器可以推動4個TTL負載,同時還多工具有其他的額外特殊功能,包括串行通信、外部中斷控制、計時計數控制及外部數據存儲器內容的讀取或寫入控制等功能。其引腳分配如下:P3.0:RXD,串行通信輸入。P3.1:TXD,串行通信輸出。P3.2:INT0,外部中斷0輸入。P3.3:INT1,外部中斷1輸入。P3.4:T0,計時計數器0輸入。P3.5:T1,計時計數器1輸入。P3.6:WR:外部數據存儲器的寫入信號。P3.7:RD,外部數據存儲器的讀取信號。RST:復位輸入。當振蕩器復位器件時,要保持RST腳兩個機器周期的高電平時間。ALE/PROG:當訪問外部存儲器時,地址鎖存允許的輸出電平用于鎖存地址的地位字節(jié)。在FLASH編程期間,此引腳用于輸入編程脈沖。在平時,ALE端以不變的頻率周期輸出正脈沖信號,此頻率為振蕩器頻率的1/6。因此它可用作對外部輸出的脈沖或用于定時目的。然而要注意的是:每當用作外部數據存儲器時,將跳過一個ALE脈沖。如想禁止ALE的輸出可在SFR8EH地址上置0。此時, ALE只有在執(zhí)行MOVX,MOVC指令是ALE才起作用。另外,該引腳被略微拉高。如果微處理器在外部執(zhí)行狀態(tài)ALE禁止,置位無效。/PSEN:外部程序存儲器的選通信號。在由外部程序存儲器取指期間,每個機器周期兩次/PSEN有效。但在訪問外部數據存儲器時,這兩次有效的/PSEN信號將不出現。/EA/VPP:當/EA保持低電平時,則在此期間外部程序存儲器(0000H-FFFFH),不管是否有內部程序存儲器。注意加密方式1時,/EA將內部鎖定為RESET;當/EA端保持高電平時,此間內部程序存儲器。在FLASH編程期間,此引腳也用于施加12V編程電源(VPP)。XTAL1:反向振蕩放大器的輸入及內部時鐘工作電路的輸入。 XTAL2:來自反向振蕩器的輸出。3.3 PWM信號發(fā)生電路設計PWM(Pulse Width Modulation)脈寬調制。PWM的基本原理:PWM是通過控制固定電壓的直流電源開關頻率,改變負載兩端的電壓,從而達到控制要求的一種電壓調整方法。PWM可以應用在許多方面,比如:電機調速、溫度控制、壓力控制等等。在PWM驅動控制的調整系統(tǒng)中,通過一個頻率來接通和斷開電源,就可以改變一個周期內“接通”和“斷開”時間的長短,就可改變直流電機電樞上電壓的“占空比”來達到改變平均電壓大小的目的,平均電壓是通過等效直流電流實現的,由沖量相等而形狀不同的窄脈沖加在具有慣性的環(huán)節(jié)上時,其效果基本相同,沖量即指窄脈沖的面積,從而來控制電動機的轉速。也正因為如此,PWM又被稱為“開關驅動裝置”。如圖3.3所示:圖3.3 PWM方波設電機始終接通電源時,電機轉速最大為Vmax,設占空比為D= t1 / T,則電機的平均速度為Va = Vmax * D,其中Va指的是電機的平均速度;Vmax 是指電機在全通電時的最大速度;D = t1 / T是指占空比。由上面的公式可見,當我們改變占空比D = t1 / T時,就可以得到不同的電機平均速度Vd,從而達到調速的目的。嚴格來說,平均速度Vd 與占空比D并非嚴格的線性關系,但是在一般的應用中,我們可以將其近似地看成是線性關系。 圖3.4 顯示與鍵盤模塊3.4 顯示與鍵盤模塊LED動態(tài)掃描方式:動態(tài)掃描顯示接口是單片機中應用最為廣泛的一種顯示方式之一。其接口電路是把所有顯示器的8個筆劃段a-h同名端連在一起,而每一個顯示器的公共極COM是各自獨立地受I/O線控制。鍵盤是由一組按壓式或觸摸式開關構成的陣列。智能儀表鍵盤的設置應由該儀表具體的功能來決定,因此,智能儀表往往采用專用的功能鍵盤。矩陣式鍵盤適用于按鍵數量較多的場合,它由行線和列線組成,按鍵位于行、列的交叉點上。在按鍵數量較多的場合,矩陣式鍵盤比獨立式鍵盤要節(jié)省很多的I/O口。 3.5 ZigBee無線收發(fā)模塊Zigbee是一個由可多到65000個無線數傳模塊組成的一個無線數傳網絡平臺,十分類似現有的移動通信的CDMA網或GSM網,每一個Zigbee網絡數傳模塊類似移動網絡的一個基站,在整個網絡范圍內,它們之間可以進行相互通信;每個網絡節(jié)點間的距離可以從標準的75米,到擴展后的幾百米,甚至幾公里;另外整個Zigbee網絡還可以與現有的其它的各種網絡連接。圖3.5 ZigBee無線收發(fā)模塊運用Zigbee的優(yōu)點: 1 無網絡使用費:使用移動網需要長期支付網絡使用費,而且是按節(jié)點終端的數量計算的,而Zigbee沒有這筆費用; 2 設備投入低:使用移動網需要購買移動終端設備,每個終端的價格在人民幣1000元上下,而使用Zigbee 網絡,不僅Zigbee網絡節(jié)點模塊(相當于基站)費用每只人民幣不到1000元,而且,主要使用的網絡子節(jié)點(相當于手機)的價格還要低得多; 3 通信更可靠:由于現有移動網主要是為手機通信而設計的,盡管CDMA-1X和GPRS可以進行數據通信,但實踐發(fā)現,不僅通信數率比設計速率低很多,而且數據通信的可靠信也存在一定的問題。而Zigbee網絡則是專門為控制數據的傳輸而設計的,因而控制數據的傳輸具有相當的保證。 4 高度的靈活性和低成本:首先,通過使用覆蓋距離不同,功能不同的Zigbee網絡節(jié)點,以及其它非Zigbee系統(tǒng)的低成本的無線收發(fā)模塊,建立起一個Zigbee局部自動化控制網,(這個網絡可以是星型,樹狀,網狀及其共同組成的復合網結構)再通過互聯(lián)網或移動網與遠端的計算機相連,從而實現低成本,高效率的工業(yè)自動化遙測遙控;3.6 轉動源模塊圖3.6 轉動源模塊霍爾效應是磁電效應的一種,利用霍爾效應在電機上安裝磁片,而將霍爾集成片安裝在固定軸上,通過對脈沖的計數進行電機速度的檢測,表達式為UHKHIB,當被測圓盤上裝上N只磁性體時,轉盤每轉一周磁場變化N次,每轉一周霍爾電勢就同頻率相應變化,輸出電勢通過放大、整形和計數電路就可以測出被測旋轉物的轉速。第四章 系統(tǒng)的軟件設計與實現4.1 系統(tǒng)軟件簡介本設計使用的軟件是Keil編程軟件。Keil軟件是目前最流行的開發(fā)單片機的軟件,Keil提供了包括編譯器、宏匯編、連接器、庫管理和一個功能強大的仿真調試器等在內的完整開發(fā)方案,通過一個集成開發(fā)環(huán)境(Vision)將這些部分組合在一起。使用Keil Software工具時的項目開發(fā)流程和其他軟件開發(fā)項目的流程極其相似:創(chuàng)建一個項目,從器件庫中選擇目標器件,配置工具設置。用C語言或匯編語言創(chuàng)建源程序。用項目管理器生成應用。修改源程序中的錯誤。測試連接應用。4.2 編程語言簡介本設計采用C語言進行編程。雖然匯編語言在控制底層硬件方面有著良好的性能且執(zhí)行效率高,但是編程效率低,可移植性和可讀性差,維護極其不便,從而導致整個系統(tǒng)的可靠性也較差。C語言與匯編語言相較而言有以下優(yōu)勢:可以大幅加快開發(fā)進度,特別是開發(fā)一些復雜的系統(tǒng),程序量越大,用C語言就越有優(yōu)勢??梢詫崿F軟件的結構化編程,C語言使得軟件的邏輯結構變得清晰、有條理。省去了人工分配單片機資源(包括寄存器、RAM等)的工作。在匯編語言中要每一個子程序分配單片機的資源,而在C語言中,只要在代碼中聲明一下變量的類型,編譯器就會自動分配相關資源,從而有效地避免了人工分配單片機資源可能帶來的差錯。當寫好一個算法后,需要移植到不同的MCU上時,在匯編語言中只有重新編寫代碼,因而匯編語言的可移植性很差;而用C語言開發(fā)時,符合ANSI C標準的程序基本不必修改,只要將一些與硬件相關的代碼做適度的修改,就可以移植到其他種類的單片機上。C語言提供data、idata、pdata、xdata、和code等存儲器類型,針對單片機的內部數據存儲空間、外部數據存儲空間和程序空間自動為變量合理地分配空間,而且C語言提供復雜的數據類型,如指針、數組、結構體等,極大地增強了程序的處理能力和靈活性。C語言較匯編語言的不足之處就是使用C語言寫出來的代碼會比用匯編語言占用的空間大5%20%,所以執(zhí)行起來效率就不及匯編語言。4.3程序設計主程序主程序是一個循環(huán)程序,其主要思路是,先設定好速度初始值,這個初始值與測速電路送來的值相比較得到一個誤差值,然后用PID算法輸出控制系數給PWM發(fā)生電路改變波形的占空比,進而控制電機的轉速。其程序流程圖如圖所示。軟件由1個主程序、1個中斷子程序、1個PID控制算法子程序、1個定時器子程序、3個延時子程序和2個顯示子程序組成。主程序主程序是一個循環(huán)程序,其主要思路是由單片機P1.7口生數據送到PWM信號發(fā)生電路,然后用PID算法輸出控制系數給PWM發(fā)生電路改變波形的占空比進而控制電機的轉速。主程序流程圖如圖3-1所示: 圖3-11.主程序設計:void main() P1=0x00; SCON=0x40; PCON=0x80; TMOD=0x21; TL1=0xfa;TH1=0xfa;TH0=0XFE;TL0=0X33; ES=0;ET0=1;EX0=1; TR1=1;TR0=1;EA=1; while(1) while (key1=0|key2=0|key3=0|a=0) if(key1=0&key2=1&key3=1) while(key1=0);state_flag=state_flag;if(state_flag=1)EX0=1;TR0=1;en =0;en_1 =0;en_2 =0;un =0; wide=150;a=1; /wide = set_count; if(state_flag=0) PWM = 0;EA=0;TR0=0;run_count=0;stop_count=0;time=0;t1=0;t2=0;display_num4(set_count);a=0; if(key1=1&key2=0&key3=1&state_flag=0) while(key2=0); delay1(20);set_count+=1;if(set_count300) set_count=100;if(key1=1&key2=1&key3=0&state_flag=0) while(key3=0); delay1(20);if(set_count100) set_count-=1;if(set_count=100) set_count=300;else display_num4(stop_count); while(key1=1&key2=1&key3=1&a=1) if(time=400) time=0;stop_count=run_count/2;run_count=0;pid(); 主程序主程序是一個循環(huán)程序,其主要思路是,首先判斷系統(tǒng)的運行模式,如果KEY1鍵按下,且state_flag為1則系統(tǒng)處于運行模式,如果state_flag為0則為設置模式。如果系統(tǒng)處于設置模式,則關閉定時器中斷和外部中斷,同時初始化部分變量,KEY2為按鍵加,KEY3為按鍵減。如果系統(tǒng)處于運行模式,xcount開始計時,當xcount=82時,即為1s時,調用串口中斷子程序,單片機開始發(fā)送數據,模擬I/O口輸出PWM,此時PWM波的頻率為81.43Hz,周期為12.82ms,然后調用PID函數,計算出PWM波輸出的占空比,最后上位機顯示轉速。2. PID控制算法子程序設計:void pid(void) /PID 計算輸出量 en=set_count-stop_count;un=a0*en-a1*en_1+a2*en_2;/計算輸出量 if(un 400)un = 400;else if(un 900)wide=900; /防止超限,確保計算餓wide值有效else if(wide10)wide=10; 位置式PID控制:增量式PID控制:從表達式我們可以得出以下結論:(1) 位置式PID控制的輸出與整個過去的狀態(tài)有關,用到了誤差的累加值;而增量式PID的輸出只與當前拍和前兩拍的誤差有關,因此位置式PID控制的累積誤差相對更大;(2) 增量式PID控制輸出的是控制量增量,并無積分作用,因此該方法適用于執(zhí)行機構帶積分部件的對象,如步進電機等,而位置式PID適用于執(zhí)行機構不帶積分部件的對象,如電液伺服閥。(3) 由于增量式PID輸出的是控制量增量,如果計算機出現故障,誤動作影響較小,而執(zhí)行機構本身有記憶功能,可仍保持原位,不會嚴重影響系統(tǒng)的工作,而位置式的輸出直接對應對象的輸出,因此對系統(tǒng)影響較大。(4) PID調節(jié)器的參數整定方法有很多,但可歸結為理論計算法和試測法兩種。用理論計算法設計調節(jié)器的前提是能獲得被控對象準確的數學模型,這在工業(yè)過程中一般較難做到。因此,實際用得較多的還是試測法。這種方法最大優(yōu)點就是整定參數時不依賴對象的數學模型,簡單易行。當然,這是一種近似的方法,有時可能略嫌粗糙,但相當適用,可解決一般實際問題。本文使用試測法。3.延時子程序:void delay(uint time) uint i; for(i=0;itime&key1=1;i+) display_num4(stop_count);void delay1_ms(uint time) /1ms延時函數uint i,j;for(i=0;itime;i+)for(j=0;j123;j+);void delay1(uint num) uint i; for(i=0;inum;i+) display_num4(set_count);4. 顯示子程序:void display_num1(uint dat,uchar num1) /指定的位上顯示 指定的一位數據P0=xianshidat;/段顯switch(num1)case 1:P2=0x01;break;case 2:P2=0x02;break;case 3:P2=0x04;break;case 4:P2=0x08;break;default: break;delay1_ms(2);void display_num4(uint num)/四位數據顯示函數uint qian,bai,shi,ge; qian=num/1000;if(qian=0)qian=11;display_num1(qian,4);bai=(num%1000)/100;if(qian=11&bai=0)bai=11;display_num1(bai,3);shi=(num%100)/10;if(qian=11&bai=11&shi=0)shi=11;display_num1(shi,2);ge=num%10;display_num1(ge,1);5. 外中斷子程序:void int0() interrupt 0 /外部中斷0用于電機轉速測量EX0=0;run_count+;EX0=1;6. 定關中斷開啟計數器T1工作計數器清零調用子程序dis_num()將TL1中的十六進制數轉換成十進制數將TL1中的計數值賦給count開啟定時器T0工作定時器T0賦初值計時值+0832輸入值減小/PWM占空比減小8032輸入值增大/PWM占空比增大0832數據口賦初值TL1計數值的十進制數賦值給out計時1s到?輸出值Serialadvance 下,也可以在VISA 資源線上右鍵創(chuàng)建 屬性節(jié)點串口設置Bytes at Port, Bytes at Port 這個屬性節(jié)點讀取當前串口緩沖區(qū)有多少字節(jié)數,然后將它的輸出連接到VISA 讀取的讀取字節(jié)數這個輸入端上即可,這樣當前緩沖區(qū)中有多少個字節(jié)就讀回多少個,不會有任何等待。另外,我們需要用兩個開關按鈕指示是否打開串口和接收數據,實現以上要求,需要兩個條件結構的嵌套。4.搜索/拆分字符串 主要作用:使一個字符串拆分為兩個子串。可在特定字符或子字符串上拆分字符串。在字符串中搜索/拆分搜索字符串/字符中指定的字符串或字符。該函數拆分字符串,通過匹配之前的子字符串和匹配剩余字符串返回剩余的兩個字符串。如該函數沒有找到搜索字符串,匹配偏移量可返回-1,匹配之前的子字符串返回整個原始字符串,匹配剩余字符串返回空字符串。 這個函數節(jié)點可以幫助我們以字符串形式保存所要接收的數據。在搜索字符串/字符輸入端接入字符串常量F即可。5. 分數/指數字符串至數值轉換 從偏移量位置開始,使字符串中的下列字符:0-9、加號、減號、e、E、小數點(通常是句點)解析為工程、科學或分數格式的浮點數,通過數字返回。波形圖表并不能將字符串轉化為圖表形式,所以需要借助這個函數節(jié)點令上面接收德字符串形式數據轉化為波形圖表可以接受的數值型數據。5.2 前面板設計圖5.1 前面板5.3 程序框圖設計圖5.2 程序框圖第六章 運行與調試在最后的調試階段還是出現不少的問題。剛開始遇到串口線不能使用的問題,所以我們只能接一根串口轉USB線。后來因為設置轉速改變的原因,導致波形圖不能顯示的問題,后來通過更改Y標尺幅值的大小得到解決。還有顯示圖的比列不協(xié)調等問題,都一一通過自動調節(jié)標尺和自動調整圖例大小的設置得到解決。下面的圖片是最后調試出來的結果:圖6.1 轉速為1000的監(jiān)控圖像圖6.2 轉速為2000的監(jiān)控圖像圖6.3 轉速為2500的監(jiān)控圖像圖6.4 轉速為3000的監(jiān)控圖像圖6.5 轉速為3400的監(jiān)控圖像個人小結張錦亮: 這次實驗的課題相對而言比較大,做起來相對困難,不過4個人一組,大家齊心協(xié)力,團體的智慧是非常強大的。我們組的課題直流電機轉速測量與控制系統(tǒng)設計與實現。 經過3個星期的課程設計,留給我印象最深的是要設計一個成功的電路,必須要有要有扎實的理論基礎,還要有堅持不懈的精神。 通過本次設計,加強了我對單片機應用知識的掌握,同時了解了目前工業(yè)生產中數字化系統(tǒng)的重要性,使我對使用單片機實現自動化控制的設計過程有了全面地了解。通過學習控制系統(tǒng)工作原理以及如何利用單片機實現各種功能,我查閱了大量相關資料,學會了許多知識,培養(yǎng)了我獨立解決問題的能力。同時在對硬件電路設計的過程中,鞏固了我的專業(yè)課知識,使自己受益匪淺。 本次的課程設計直流電機轉速測量與控制系統(tǒng)的設計中,是分組分工進行。對于運用LabVIEW進行上位機對轉動源的監(jiān)控,大家需要合作完成。我在小組中擔任下位機的模塊選擇以及連線等問題。主要就是ZYMCU02主機模塊、顯示與鍵盤模塊、ZigBee無線收發(fā)實驗模塊和轉動源實驗模塊的運用異界連接。實驗中連線基本按圖連接,需要注意連線是否有損壞的而不能導通,以及多位連線的順序。對于無線收發(fā)模塊和信號調理模塊(轉動源模塊)了解還不夠透徹,主機模塊中的AT89S52是本次設計的核心。在硬件連線中,發(fā)現有些無法直接連接,需要運用模塊上的端口進行連接。并且為了能夠不出錯,對于各個導線都要進行測試是否導通。課題最終的完成依賴與大家的努力,上位機和串口難度相當之大也是課題的難點。實驗過程中,大家在一起交流學習,共同為一個課題而努力,這是平時很難得的機會。增進了友誼,促進了學習。很希望大學期間可以多有一些這樣的課程設計。陳有淦:在本次課程設計中,我主要負責的部分是上位機。因為上位機需要實時監(jiān)控電機的轉速,所以在與下位機的串口通信中選擇了LabVIEW作為上位機。串行通信由于其本身成本低、接線少以及易實現的特點,在數據采集和控制系統(tǒng)中得到了廣泛的應用,利用LabVIEW和串行通訊相結合開發(fā)的虛擬儀器通信系統(tǒng)更具有強大的功能和方便用戶使用的特點,并且用戶可以隨時進行維護和功能擴展,打破了傳統(tǒng)儀器的一些限制。所以在這次的課程設計中選擇作為上位機。上位機部分需要用到的主要函數有:4. VISA配置串口 此函數主要的作用是使VISA資源名稱指定的串口按特定設置初始化。在下位機的主函數中設置SCON=0x40及PCON=0x80,所以串行口工作于方式1且波特率倍增位SMOD=1,為波特率可變的8位異步通信接口。傳送一幀信息總共10位,即1位起始位(0),8位數據位(低位在前)和1位停止位(1)。波特率可變,取決于定時器T1或2的溢出率。波特率2SMOD/32T1溢出率。T1工作于模式2,此時為初值自動加載的定時方式。如果計數器的初始值為X,則每過256X個機器周期T1就產生溢出,溢出的周期為(256X)*12/fosc。據此可計算溢出率和波特率。下位機中T1設置的計數初值分別是TL1=0xfa和TH1=0xfa。使用11.0592MHz的晶振,最后得出的波特率為9600bit/s,在函數波特率選擇端口可以加上條件結構予以選擇,當然在這里我們要選擇9600bit/s.因為串口的選擇不一樣,所以也需要使用條件結構,這里我們用的是COM1口。數據位端口是輸入數據的位數, 數據位的值介于5和8之間,默認值為8,我們選擇的也是8.奇偶端口指定要傳輸或接收的每一幀使用的奇偶校驗,本次課程設計中只需要從單片機向PC傳輸數據,選擇方式1,所以奇偶端口選擇None.停止位端口選擇1.0.5. VISA清空I/O緩沖區(qū) 運用此函數來清除發(fā)送和接收的I/O接口的緩沖區(qū)。6. VISA讀取 這個函數的作用是從VISA資源名稱指定的設備或接口中讀取指定數量的字節(jié),并使數據返回至讀取緩沖區(qū)。其中字節(jié)總數端口,我們接收8位數據自然輸入一個常量4.本次課程設計所要使用的是異步通信,在異步通信中,數據通常以字符或字節(jié)為單位組成字符幀傳送。字符幀由發(fā)送端一幀一幀地發(fā)送。發(fā)送端和接收端可以由各自的時鐘來控制數據的發(fā)送和接收,兩個時鐘源彼此獨立,互不同步。異步通信通過規(guī)定字符幀格式來協(xié)調發(fā)送端和接收端的數據發(fā)送和接收。正常情況下,發(fā)送線為高電平,每當接收端檢測到傳輸線上檢測到發(fā)送過來的低電平就知道發(fā)送端已經開始發(fā)送數據;當接收端接收到字符幀中的停止位時,就確定發(fā)送完畢。所以在讀取緩沖區(qū)端口輸出的是字符串。在串口通信中,如果指定讀取100個串口緩沖區(qū)的字節(jié)數,如果當前緩沖區(qū)的數據量不足100個時,程序會一直停在VISA 讀取這個節(jié)點上,如果在超時的時間(默認是10 秒)內還沒有湊足100個數據的話,程序就會報Time out的錯誤,如果超時時間設置得太長,有可能導致程序很長時間停止在VISA 讀取這個節(jié)點上。解決的辦法是使用Bytes at Port這個串口的屬性節(jié)點,在VISASerialadvance 下,也可以在VISA 資源線上右鍵創(chuàng)建 屬性節(jié)點串口設置Bytes at Port, Bytes at Port 這個屬性節(jié)點讀取當前串口緩沖區(qū)有多少字節(jié)數,然后將它的輸出連接到VISA 讀取的讀取字節(jié)數這個輸入端上即可,這樣當前緩沖區(qū)中有多少個字節(jié)就讀回多少個,不會有任何等待。另外,我們需要用兩個開關按鈕指示是否打開串口和接收數據,實現以上要求,需要兩個條件結構的嵌套。4.搜索/拆分字符串 主要作用:使一個字符串拆分為兩個子串。可在特定字符或子字符串上拆分字符串。在字符串中搜索/拆分搜索字符串/字符中指定的字符串或字符。該函數拆分字符串,通過匹配之前的子字符串和匹配剩余字符串返回剩余的兩個字符串。如該函數沒有找到搜索字符串,匹配偏移量可返回-1,匹配之前的子字符串返回整個原始字符串,匹配剩余字符串返回空字符串。 這個函數節(jié)點可以幫助我們以字符串形式保存所要接收的數據。在搜索字符串/字符輸入端接入字符串常量F即可。6. 分數/指數字符串至數值轉換 從偏移量位置開始,使字符串中的下列字符:0-9、加號、減號、e、E、小數點(通常是句點)解析為工程、科學或分數格式的浮點數,通過數字返回。波形圖表并不能將字符串轉化為圖表形式,所以需要借助這個函數節(jié)點令上面接收德字符串形式數據轉化為波形圖表可以接受的數值型數據??傮w的設計方案如圖1和圖2:圖1 前面板圖2 程序框圖在最后的調試階段還是出現不少的問題。剛開始遇到串口線不能使用的問題,
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 紡織廠租賃廠房安全生產責任協(xié)議
- 高原草場承包與生態(tài)保護協(xié)議
- 電動汽車抵押貸款反擔保合同規(guī)范
- 《共享單車行業(yè)誠信經營與服務規(guī)范協(xié)議》
- 事業(yè)單位員工創(chuàng)業(yè)支持與離崗創(chuàng)業(yè)合同
- 和倍數學問題課件
- 城市夜游場地推廣與燈光秀合作協(xié)議
- 安全生產型餐館司爐員聘用責任書
- 儲藏室租賃及倉儲貨物倉儲與維護合同
- 智能停車系統(tǒng)車位租賃服務與管理合同范本
- “嚴而有度愛而不寵”班主任經驗分享稿
- 第4章我們生活的大地知識點清單-2024-2025學年浙教版七年級下冊科學
- 大學美育知到智慧樹章節(jié)測試課后答案2024年秋德州學院
- 醫(yī)院培訓課件:《多發(fā)性骨髓瘤》
- 西湖寫景作文600字
- 建筑項目招投標外文翻譯外文文獻英文文獻
- 企業(yè)食品安全知識培訓課件
- 【MOOC】中國近現代史綱要-浙江大學 中國大學慕課MOOC答案
- 2021年中等職業(yè)學校學生學業(yè)水平考試考務工作細則(考務手冊)
- 中醫(yī)體質養(yǎng)生 期末考試試題及答案
- 【課件】第七單元能源的合理利用與開發(fā)新版教材單元分析-九年級化學人教版(2024)上冊
評論
0/150
提交評論