版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、精選優(yōu)質(zhì)文檔-傾情為你奉上 指導(dǎo)教師評(píng)定成績(jī): 審定成績(jī): 重 慶 郵 電 大 學(xué)自 動(dòng) 化 學(xué) 院計(jì)算機(jī)控制技術(shù)課程設(shè)計(jì)報(bào)告 設(shè)計(jì)題目:雙直流電機(jī)同步控制系統(tǒng)單位(二級(jí)學(xué)院): 自 動(dòng) 化 學(xué) 院 學(xué) 生 姓 名: 專 業(yè): 自 動(dòng) 化 班 級(jí): 學(xué) 號(hào): 指 導(dǎo) 教 師: 設(shè)計(jì)時(shí)間:2014 年5 月重慶郵電大學(xué)自動(dòng)化學(xué)院制專心-專注-專業(yè)目 錄 (5)電源模塊. 9 五、軟件的設(shè)計(jì)與實(shí)現(xiàn) 14(1)主程序 .14(2)PID控制算法與參數(shù)整定16(3)干擾的抑制17(4)采樣周期的選定18(5)PID調(diào)節(jié)18(6)測(cè)速子程序20(7)單片機(jī)資源配置.20七、參考文獻(xiàn)23一、 計(jì)算機(jī)控制技
2、術(shù)課程設(shè)計(jì)題目雙直流電機(jī)同步控制系統(tǒng) 課程設(shè)計(jì)要求(1)實(shí)現(xiàn)電機(jī)加速減速,正反轉(zhuǎn)。(2)通過顯示屏顯示運(yùn)行情況。(3)接受鍵盤輸入的控制信號(hào)。(4)產(chǎn)生PWM脈沖,對(duì)直流電機(jī)進(jìn)行調(diào)速。(5)接受脈沖測(cè)速電路測(cè)得的電機(jī)的轉(zhuǎn)速。課程設(shè)計(jì)說明本次課程設(shè)計(jì)實(shí)現(xiàn)了對(duì)直流電機(jī)的同步調(diào)速控制。利用PWM來實(shí)現(xiàn)直流電機(jī)和步進(jìn)電機(jī)的正轉(zhuǎn)、反轉(zhuǎn)、加速、減速、同步調(diào)速等操作,電動(dòng)機(jī)的調(diào)速在硬件上實(shí)現(xiàn)了直流電機(jī)轉(zhuǎn)速的調(diào)節(jié)以及正反轉(zhuǎn)的控制同時(shí)在LCD上實(shí)時(shí)顯示,整個(gè)硬件系統(tǒng)工作穩(wěn)定。摘要本文旨在建立兩臺(tái)直流電動(dòng)機(jī)同步控制系統(tǒng)(速度控制)的數(shù)學(xué)模型。首先根據(jù)題目,并通過查找資料對(duì)對(duì)象進(jìn)行分析,了解基本工作原理。
3、然后畫出系統(tǒng)運(yùn)行的方框圖并對(duì)系統(tǒng)過程進(jìn)行分析。其次就是建立數(shù)學(xué)模型、求出系統(tǒng)的傳遞函數(shù),然后進(jìn)行PID控制算法。在硬件方面,通過STC12C5A60S2單片機(jī),實(shí)現(xiàn)對(duì)兩部直流電動(dòng)機(jī)的啟動(dòng)、停止、加速、減速和轉(zhuǎn)向的控制,具體硬件部分由晶振電路、復(fù)位電路、顯示電路、鍵盤電路、電源電路、單片機(jī)、電機(jī)驅(qū)動(dòng)電路、測(cè)速電路等組成。最后再用C語言編程,實(shí)現(xiàn)兩臺(tái)電機(jī)的速度同步控制。關(guān)鍵詞:同步控制 PID控制算法 PWM AltiumDesigner 調(diào)速 正反轉(zhuǎn)二、 控制對(duì)象分析31系統(tǒng)運(yùn)行結(jié)構(gòu)圖與系統(tǒng)框圖圖1系統(tǒng)運(yùn)行結(jié)構(gòu)圖說明:輸入電壓Ui控制電機(jī)1,在控制器1以及驅(qū)動(dòng)電路1的作用下運(yùn)行,通過測(cè)速傳感器將
4、轉(zhuǎn)速轉(zhuǎn)為信號(hào)與電機(jī)2轉(zhuǎn)速比較后與電機(jī)2的反饋信號(hào)作為輸入信號(hào)控制電機(jī)2。電源電路DCmotor電機(jī)驅(qū)動(dòng)電路單片機(jī)晶振電路復(fù)位電路DCmotor顯示電路鍵盤電路測(cè)速電路圖2直流調(diào)速系統(tǒng)框圖3.2建立系統(tǒng)數(shù)學(xué)模型 3.2.1控制模塊本設(shè)計(jì)選用的是STC12C5A60S2,STC12C5A60S2/AD/PWM系列單片機(jī)是單時(shí)鐘/機(jī)器周期(1T)的單片機(jī),是高速/低功耗/超強(qiáng)抗干擾的新一代8051單片機(jī),指令代碼完全兼容傳統(tǒng)8051,但速度快8-12倍。內(nèi)部集成MAX810專用復(fù)位電路,2路PWM,8路高速10位A/D轉(zhuǎn)換(250K/S),針對(duì)電機(jī)控制,強(qiáng)干擾場(chǎng)合。其主要特性如下:1.增強(qiáng)型8051
5、 CPU,1T,單時(shí)鐘/機(jī)器周期,指令代碼完全兼容傳統(tǒng)80512.工作電壓:STC12C5A60S2系列工作電壓:5.5V- 3.3V(5V單片機(jī))3.工作頻率范圍:0 - 35MHz,相當(dāng)于普通8051的 0420MHz4.片上集成1280字節(jié)RAM5.通用I/O口(36/40/44個(gè)),復(fù)位后為:準(zhǔn)雙向口/弱上拉(普通8051傳統(tǒng)I/O口),可設(shè)置成四種模式:準(zhǔn)雙向口/弱上拉,推挽/強(qiáng)上拉,僅為輸入/高阻,開漏 。每個(gè)I/O口驅(qū)動(dòng)能力均可達(dá)到20mA,但整個(gè)芯片最大不要超過55mA6.有EEPROM功能(STC12C5A62S2/AD/PWM無內(nèi)部EEPROM)7. 看門狗8.內(nèi)部集成MA
6、X810專用復(fù)位電路(外部晶體12M以下時(shí),復(fù)位腳可直接1K電阻到地)9.共4個(gè)16位定時(shí)器 ,兩個(gè)與傳統(tǒng)8051兼容的定時(shí)器/計(jì)數(shù)器,16位定時(shí)器T0和T1,沒有定時(shí)器2,但有獨(dú)立波特率發(fā)生器, 做串行通訊的波特率發(fā)生器, 再加上2路PCA模塊可再實(shí)現(xiàn)2個(gè)16位定時(shí)器14. 2個(gè)時(shí)鐘輸出口,可由T0的溢出在P3.4/T0輸出時(shí)鐘,可由T1的溢出在P3.5/T1輸出時(shí)鐘15.外部中斷I/O口7路,傳統(tǒng)的下降沿中斷或低電平觸發(fā)中斷,并新增支持上升沿中斷的PCA模塊,Power Down模式可由外部中斷喚醒,INT0/P3.2, INT1/P3.3, T0/P3.4, T1/P3.5, RxD/P
7、3.0,CCP0/P1.3 (也可通過寄存器設(shè)置到P4.2 ), CCP1/P1.4 (也可通過寄存器設(shè)置到P4.3) 16. PWM(2路)/PCA(可編程計(jì)數(shù)器陣列,2路)。也可用來當(dāng)2路D/A使用 ,也可用來再實(shí)現(xiàn)2個(gè)定時(shí)器,也可用來再實(shí)現(xiàn)2個(gè)外部中斷(上升沿中斷/下降沿中斷均可分別或同時(shí)支持)17.A/D轉(zhuǎn)換, 10位精度ADC,共8路,轉(zhuǎn)換速度可達(dá)250K/S(每秒鐘25萬次)18.通用全雙工異步串行口(UART),由于STC12系列是高速的8051,可再用定時(shí)器或PCA軟件實(shí)現(xiàn)多串口19. STC12C5A60S2系列有雙串口,后綴有S2標(biāo)志的才有雙串口,RxD2/P1.2(可通過
8、寄存器設(shè)置到P4.2),TxD2/P1.3(可通過寄存器設(shè)置到P4.3)主電路控制模塊的硬件電路包含復(fù)位電路,時(shí)鐘電路和電源電路3部分,滿足單片機(jī)正常工作,具體硬件電路如下圖:圖3 STC12C5A60S2的最小系統(tǒng)圖3.2.2驅(qū)動(dòng)模塊 H橋驅(qū)動(dòng)電路是一種典型的直流電機(jī)控制電路。圖4所示,H橋驅(qū)動(dòng)電路由四個(gè)三極管組成H橋條橋臂,通過控制對(duì)角橋臂上的一組三極管,使電流以不同的方向流過電機(jī),從而控制電動(dòng)機(jī)的轉(zhuǎn)向。因電動(dòng)機(jī)是電感元件,當(dāng)電動(dòng)機(jī)在正反轉(zhuǎn)轉(zhuǎn)換過程中,二極管起釋放反電動(dòng)勢(shì)的作用。圖4 H橋驅(qū)動(dòng)電本設(shè)計(jì)中直流電機(jī)驅(qū)動(dòng)部分采用專用電機(jī)驅(qū)動(dòng)芯片L298對(duì)電機(jī)進(jìn)行驅(qū)動(dòng)。L298可同時(shí)驅(qū)動(dòng)兩個(gè)二相或
9、一個(gè)四相步進(jìn)電機(jī),內(nèi)含兩個(gè)全雙H橋驅(qū)動(dòng)器,接受標(biāo)準(zhǔn)TTL邏輯準(zhǔn)位信號(hào)。直流電機(jī)驅(qū)動(dòng)模塊的硬件實(shí)現(xiàn)如圖所示:圖5 電動(dòng)機(jī)驅(qū)動(dòng)模塊3.2.3顯示模塊3.2.3.1管腳: 1602共16個(gè)管腳。編程主要用到的三個(gè)管腳,分別是:RS(數(shù)據(jù)命令選擇端),R/W(讀寫選擇端),E(使能信號(hào))。RS 為寄存器選擇,高電平選擇數(shù)據(jù)寄存器,低電平選擇指令寄存器。R/W為讀寫選擇,高電平進(jìn)行讀操作,低電平進(jìn)行寫操作。E端為使能端,后面和時(shí)序聯(lián)系在一起。除此外,D0D7分別為八位雙向數(shù)據(jù)線。3.2.3.2操作時(shí)序:表 1RSR/W操作說明00寫入指令碼D0D701讀取輸出的D0D7狀態(tài)字10寫入數(shù)據(jù)D0D711從D
10、0D7讀取數(shù)據(jù)設(shè)計(jì)中顯示模塊采用的是1602LCD顯示。圖6 LCD顯示器3.2.4 PWM調(diào)速原理PWM(脈沖寬度調(diào)制)是通過控制固定電壓的直流電源開關(guān)頻率,改變負(fù)載兩端的電壓,從而達(dá)到控制要求的一種電壓調(diào)整方法。PWM可以應(yīng)用在許多方面,比如:電機(jī)調(diào)速、溫度控制、壓力控制等等。在PWM驅(qū)動(dòng)控制的調(diào)整系統(tǒng)中,按一個(gè)固定的頻率來接通和斷開電源,并且根據(jù)需要改變一個(gè)周期內(nèi)“接通”和“斷開”時(shí)間的長(zhǎng)短。通過改變直流電機(jī)電樞上電壓的“占空比”來達(dá)到改變平均電壓大小的目的,從而來控制電動(dòng)機(jī)的轉(zhuǎn)速。也正因?yàn)槿绱?,PWM又被稱為“開關(guān)驅(qū)動(dòng)裝置”,如圖所示:圖7 PWM信號(hào)的占空比在PWM調(diào)速時(shí),占空比是一
11、個(gè)重要參數(shù)。以下3種方法 都可以改變占空比的值。(1)定寬調(diào)頻法這種方法是保持t1不變,只改變t2,這樣使周期(或頻率)也隨之改變。(2)調(diào)頻調(diào)寬法這種方法是保持t2不變,只改變t1,這樣使周期(或頻率)也隨之改變。(3)定頻調(diào)寬法這種方法是使周期T(或頻率)保持不變,而同時(shí)改變t1和t2。本設(shè)計(jì)采用單片機(jī)內(nèi)定時(shí)器產(chǎn)生PWM脈沖,設(shè)計(jì)方法是調(diào)整一個(gè)周期內(nèi)高電平持續(xù)時(shí)間占一個(gè)周期時(shí)間的比例,及調(diào)整脈沖的占空比。將產(chǎn)生的脈沖輸入到L298的EN A端,通過控制H橋一路橋臂兩個(gè)晶閘管的導(dǎo)通時(shí)間來控制電機(jī)的轉(zhuǎn)速。3.2.5電源模塊單片機(jī)系統(tǒng)需要一個(gè)穩(wěn)定的工作電壓才能正常工作。圖8 穩(wěn)壓電路3.2.6轉(zhuǎn)
12、速檢測(cè)模塊本系統(tǒng)采用增量式光電旋轉(zhuǎn)編碼器測(cè)量電機(jī)的速度。將光電編碼器與電動(dòng)機(jī)相連,當(dāng)電動(dòng)機(jī)轉(zhuǎn)動(dòng)時(shí),帶動(dòng)碼盤旋轉(zhuǎn),便發(fā)出相應(yīng)的信號(hào)。光電編碼器由光源,光電轉(zhuǎn)盤,光敏元件和光電整形放大電路組成。光電轉(zhuǎn)盤與被測(cè)軸連接,光源通過光電轉(zhuǎn)盤的透光孔射到光敏元件上,當(dāng)轉(zhuǎn)盤轉(zhuǎn)動(dòng)時(shí),光敏元件便發(fā)出與轉(zhuǎn)速成正比的脈沖信號(hào),為了判別電機(jī)的轉(zhuǎn)向,光電編碼器輸出兩路相隔90度電脈沖角度的正交脈沖。利用光電編碼器進(jìn)行數(shù)字測(cè)速的常用方法有兩種:M法和T法。(1)M法測(cè)速:M法又叫定時(shí)計(jì)數(shù)法,是用計(jì)數(shù)器記取規(guī)定時(shí)間內(nèi)光電編碼器輸出的脈沖個(gè)數(shù)來反映轉(zhuǎn)速值,即在規(guī)定的時(shí)間間隔T內(nèi),測(cè)量編碼器光柵所產(chǎn)生的脈沖數(shù)來獲得被測(cè)的速度值。
13、設(shè)編碼器光柵每轉(zhuǎn)一圈發(fā)出的脈沖數(shù)為Z,且在規(guī)定的時(shí)間T內(nèi),測(cè)得的脈沖數(shù)為M,則電機(jī)每分鐘轉(zhuǎn)數(shù)為:n=60M/ZT (1)將轉(zhuǎn)速實(shí)際值和測(cè)量值之差與實(shí)際值之比定義為測(cè)量誤差率,反映了測(cè)速方法的準(zhǔn)確性,越小,準(zhǔn)確度越高。M法測(cè)速誤差率取決于編碼器的制造精度,以及編碼器輸出脈沖前沿和測(cè)速時(shí)間采樣脈沖前沿不齊所造成的誤差等,最多可以產(chǎn)生一個(gè)脈沖的誤差。因此,M法測(cè)速誤差率的最大值為: (2)由上式可知,誤差率與M成反比,即脈沖數(shù)越大,誤差越小,故M法測(cè)速適用于高速段。(2)T法測(cè)速:T法又叫定數(shù)計(jì)時(shí)法,是用定時(shí)器記取光電編碼器輸出脈沖一個(gè)周期內(nèi)的高頻時(shí)基個(gè)數(shù),然后取其倒數(shù)來反應(yīng)速度值,即測(cè)量相鄰兩個(gè)脈
14、沖的時(shí)間間隔來確定被測(cè)速度。設(shè)編碼器光柵每轉(zhuǎn)一圈發(fā)出的脈沖數(shù)為Z,定時(shí)器的時(shí)基是一已知頻率為F的高頻脈沖,定時(shí)器的起始和終止由編碼器光柵脈沖的兩個(gè)相鄰脈沖的起始沿控制。若定時(shí)器的讀數(shù)為M,則電機(jī)每分鐘的轉(zhuǎn)速為: (3)T法測(cè)速的誤差產(chǎn)生原因與M法相仿,定時(shí)器的計(jì)數(shù)M最多存在一個(gè)脈沖的誤差,因此,T法測(cè)速誤差率的最大值為: (4)低速時(shí),編碼器相鄰脈沖間隔時(shí)間長(zhǎng),測(cè)得的高頻脈沖個(gè)數(shù)多,誤差小,故T法適用于低速段。我們采用M法測(cè)速。所采用的光電編碼器光柵每轉(zhuǎn)一圈發(fā)出16個(gè)脈沖。機(jī)械頻率1MHZ,采樣頻率2MHZ。測(cè)速電路圖如下圖所示:圖9 轉(zhuǎn)速檢測(cè)模塊四、硬件電路PCB及實(shí)物圖的設(shè)計(jì)4.1電路板的
15、設(shè)計(jì)(1)、利用原理圖設(shè)計(jì)工具繪制原理圖,并且生成對(duì)應(yīng)的網(wǎng)絡(luò)表。當(dāng)然,有些特殊情況下,如電路板比較簡(jiǎn)單,已經(jīng)有了網(wǎng)絡(luò)表等情況下也可以不進(jìn)行原理圖的設(shè)計(jì),直接進(jìn)入PCB設(shè)計(jì)系統(tǒng),在PCB設(shè)計(jì)系統(tǒng)中,可以直接取用零件封裝,人工生成網(wǎng)絡(luò)表。(2)、手工更改網(wǎng)絡(luò)表 ,將一些元件的固定用腳等原理圖上沒有的焊盤定義到與它相通的網(wǎng)絡(luò)上,沒任何物理連接的可定義到地或保護(hù)地等。將一些原理圖和PCB封裝庫中引腳名稱不一致的器件引腳名稱改成和PCB封裝庫中的一致,特別是二、三極管等。(3)、畫出自己的封裝庫 將自己所畫的器件都放入一個(gè)自己建立的PCB 庫專用設(shè)計(jì)文件。(4)、PCB板的設(shè)計(jì) 進(jìn)入PCB系統(tǒng)后的第一步
16、就是設(shè)置PCB設(shè)計(jì)環(huán)境,包括設(shè)置格點(diǎn)大小和類型,光標(biāo)類型,板層參數(shù),布線參數(shù)等等。大多數(shù)參數(shù)都可以用系統(tǒng)默認(rèn)值,而且這些參數(shù)經(jīng)過設(shè)置之后,符合個(gè)人的習(xí)慣,以后無須再去修改。然后規(guī)劃電路板,主要是確定電路板的邊框,包括電路板的尺寸大小等等。在需要放置固定孔的地方放上適當(dāng)大小的焊盤。 注意:在繪制電路板地邊框前,一定要將當(dāng)前層設(shè)置成Keep Out層,即禁止布線層。(5)、導(dǎo)入網(wǎng)絡(luò)表文件和修改零件封裝 這一步是非常重要的一個(gè)環(huán)節(jié),網(wǎng)絡(luò)表是PCB自動(dòng)布線的靈魂,也是原理圖設(shè)計(jì)與印象電路板設(shè)計(jì)的接口,只有將網(wǎng)絡(luò)表裝入后,才能進(jìn)行電路板的布線。在原理圖設(shè)計(jì)的過程中,ERC檢查不會(huì)涉及到零件的封裝問題。因
17、此,原理圖設(shè)計(jì)時(shí),零件的封裝可能被遺忘,在引進(jìn)網(wǎng)絡(luò)表時(shí)可以根據(jù)設(shè)計(jì)情況來修改或補(bǔ)充零件的封裝。當(dāng)然,可以直接在PCB內(nèi)人工生成網(wǎng)絡(luò)表,并且指定零件封裝。(6)、設(shè)置布局采用手動(dòng)布局的形式。用鼠標(biāo)選中一個(gè)元件,按住鼠標(biāo)左鍵不放,拖住這個(gè)元件到達(dá)目的地,放開左鍵,將該元件固定。使用自動(dòng)選擇方式可以很快地收集相似封裝的元件,然后旋轉(zhuǎn)、展開和整理成組,就可以移動(dòng)到板上所需位置上了。當(dāng)簡(jiǎn)易的布局完成后,使用自動(dòng)對(duì)齊方式整齊地展開或縮緊一組封裝相似的元件。 (7)、根據(jù)情況再作適當(dāng)調(diào)整然后將全部器件鎖定 假如板上空間允許則可在板上放上一些類似于實(shí)驗(yàn)板的布線區(qū)。對(duì)于大板子,應(yīng)在中間多加固定螺絲孔。板上有重的
18、器件或較大的接插件等受力器件邊上也應(yīng)加固定螺絲孔,有需要的話可在適當(dāng)位置放上一些測(cè)試用焊盤,最好在原理圖中就加上。將過小的焊盤過孔改大,將所有固定螺絲孔焊盤的網(wǎng)絡(luò)定義到地或保護(hù)地等。圖10 硬件電路原理圖圖11 電路PCB板圖12 實(shí)物圖五、軟件的設(shè)計(jì)與實(shí)現(xiàn)5.1、主程序流程圖5.2、PID控制算法及參數(shù)整定 5.2.1數(shù)字式增量PID控制算法計(jì)算機(jī)控制是一種采樣控制,它只能根據(jù)采樣時(shí)刻的偏差值計(jì)算控制量。因此,連續(xù)PID控制算法不能直接使用,需要采用離散化方法,根據(jù)采樣時(shí)刻的偏差值計(jì)算控制量,離散化得: (5) 式中 k為采樣序號(hào),k=0,1,2,3 如果采樣周期足夠小,這種離散逼近相當(dāng)精確
19、。式中u(k)為全量輸出,它對(duì)應(yīng)于被控對(duì)象的執(zhí)行機(jī)構(gòu)第k次采樣時(shí)刻應(yīng)達(dá)到的位置。因此,上式稱為PID位置型控制算式??梢钥闯?,按PID位置型控制算式計(jì)算u(k)時(shí),輸出值與過去所有狀態(tài)有關(guān)。當(dāng)執(zhí)行機(jī)構(gòu)需要的不是控制量的絕對(duì)數(shù)值,而是其增量時(shí)(如步進(jìn)電機(jī)的驅(qū)動(dòng)),可導(dǎo)出下式: (2-3) 其中, 此式稱為增量型PID控制算式,增量型PID控制算式具有以下優(yōu)點(diǎn):1. 計(jì)算機(jī)只輸出控制增量,即執(zhí)行機(jī)構(gòu)位置的變化部分,因而誤動(dòng)作影響小。2. 在k時(shí)刻的輸出u(k),只需要用到此時(shí)刻的偏差,及前兩次的偏差和前一次的輸出值,這大大節(jié)約了內(nèi)存的計(jì)算時(shí)間。3. 在手動(dòng)-自動(dòng)切換時(shí),控制量沖擊小,能夠較平滑地過
20、渡。位置式控制算法可通過增量式控制算法推出遞推計(jì)算公式: (6)這就是目前在計(jì)算機(jī)控制中廣泛應(yīng)用的數(shù)字遞推PID控制算式。入口 讀入, 計(jì)算 計(jì)算計(jì)算 增量型輸出增量式否? Y計(jì)算 位置型輸出返回圖13 數(shù)字PID控制算法程序框圖5.3干擾的抑制PID控制算法的輸入量是偏差e,也就是給定值與系統(tǒng)輸出的差。在進(jìn)入正常調(diào)節(jié)后,由于輸出已接近給定,e的值不會(huì)太大。所以相對(duì)而言,干擾對(duì)調(diào)節(jié)有較大的影響,除了從系統(tǒng)硬件及環(huán)境方面采取措施外,在控制算法上也可采取一定的措施,以抑制干擾的影響。對(duì)于作用時(shí)間較為短暫的快速干擾,例如采樣器,A/D轉(zhuǎn)換器的偶然出錯(cuò)等,我們可以簡(jiǎn)單地采用連續(xù)多次采樣求平均值的辦法予
21、以濾除。例如圍繞著采樣時(shí)刻ti連續(xù)采樣N次,可得到ei1、ei2、 、eiN。由于快速干擾往往比較強(qiáng)烈,只要有一個(gè)采樣數(shù)據(jù)受到快速隨機(jī)干擾,即使對(duì)它們求平均值,干擾的影響也會(huì)反映出來。因此,應(yīng)剔除其中的最大最小值,對(duì)其余的N-2次采樣求平均值。由于在N次中連續(xù)偶然出錯(cuò)的可能很小,故這樣做已足以消除這類快速隨機(jī)干擾的影響。5.4、采樣周期的選定進(jìn)行數(shù)字PID控制器參數(shù)整定時(shí),首先應(yīng)該解決的一個(gè)問題是確定合理的采樣周期T。采樣周期T必須足夠短,才能保證有足夠的精度。但采樣周期短則會(huì)加重計(jì)算機(jī)的任務(wù),影響工作效率,因此應(yīng)合理選擇采樣周期。采樣周期T應(yīng)遠(yuǎn)遠(yuǎn)小于系統(tǒng)中其它的時(shí)間常數(shù),否則可能會(huì)由于采樣的
22、頻帶寬度不夠而無法反映系統(tǒng)的動(dòng)態(tài)過程。一般來說,采樣周期T的最大值受系統(tǒng)穩(wěn)定性條件和香農(nóng)采樣定理的限制而不能太大。T的最小值則受到計(jì)算機(jī)在一個(gè)采樣周期內(nèi)能完成的計(jì)算工作量的限制,實(shí)際中常選2PAI/T為系統(tǒng)有用信號(hào)最高頻率的410倍。5.5、PID調(diào)節(jié)器的參數(shù)整定采樣周期T通常遠(yuǎn)遠(yuǎn)小于系統(tǒng)的時(shí)間常數(shù),因此,PID參數(shù)的整定可以按模擬調(diào)節(jié)器的方法來進(jìn)行。參數(shù)整定通常有兩種:理論設(shè)計(jì)法和實(shí)驗(yàn)確定法。前者需要有被控對(duì)象的精確模型,然后采用最優(yōu)化的方法確定PID的各參數(shù)。被控對(duì)象的模型可通過物理建模或系統(tǒng)辨識(shí)方法得到,但這樣通常只能得到近似的模型。因此,通過實(shí)驗(yàn)確定法(如試湊法,工程整定法)來選擇PI
23、D參數(shù)是經(jīng)常采用又行之有效的方法。本方案采用了試湊法。試湊前先要知道PID各調(diào)節(jié)參數(shù)對(duì)系統(tǒng)響應(yīng)的影響。 試湊法是通過計(jì)算機(jī)仿真或?qū)嶋H運(yùn)行,觀察系統(tǒng)對(duì)典型輸入作用的響應(yīng)曲線,根據(jù)各調(diào)節(jié)參數(shù)(Kp,Ti,Td)對(duì)系統(tǒng)的影響,反復(fù)調(diào)節(jié)試湊,直到滿意為止,從而確定PID參數(shù)。增大比例系數(shù)Kp將加快系統(tǒng)響應(yīng)并減小系統(tǒng)穩(wěn)態(tài)誤差,但過大會(huì)產(chǎn)生較大的超調(diào)量,產(chǎn)生震蕩,破壞系統(tǒng)的穩(wěn)定性。增大積分時(shí)間常數(shù)Ti可使減小超調(diào),提高系統(tǒng)穩(wěn)定性,但系統(tǒng)誤差的消除將隨之變慢。增大微分時(shí)間常數(shù)Td可加速系統(tǒng)的響應(yīng),使超調(diào)量減小,增加系統(tǒng)的穩(wěn)定性,但系統(tǒng)抗干擾能力下降。試湊時(shí),可參考以上參數(shù)對(duì)控制系統(tǒng)性能的影響趨勢(shì),實(shí)行先比例
24、,后積分,再微分的反復(fù)調(diào)整。1、首先只調(diào)比例系數(shù),將Kp由小到大,使響應(yīng)曲線略有超調(diào)。此時(shí)系統(tǒng)若無穩(wěn)態(tài)誤差或穩(wěn)態(tài)誤差已小到允許范圍內(nèi),并且認(rèn)為響應(yīng)曲線已屬滿意,那么,只須用比例調(diào)節(jié)器即可。2、若在比例調(diào)節(jié)的基礎(chǔ)上,系統(tǒng)穩(wěn)態(tài)誤差太大,則必須加入積分環(huán)節(jié)。整定時(shí)先將第一步所整定的比例系數(shù)略為縮?。ㄈ?.8倍),再將積分時(shí)間常數(shù)Ti置為一較大值并連續(xù)減小,使得在保持良好動(dòng)態(tài)性能的前提下消除穩(wěn)態(tài)誤差。這一步可反復(fù)進(jìn)行。3、若使用PI調(diào)節(jié)器消除了穩(wěn)態(tài)誤差,但系統(tǒng)動(dòng)態(tài)響應(yīng)經(jīng)反復(fù)調(diào)整后仍不能令人滿意,則加入微分環(huán)節(jié),構(gòu)成PID控制器。在整定時(shí)先將微分時(shí)間常數(shù)Td設(shè)定為零,再逐步增加Td并同時(shí)進(jìn)行前面兩步的調(diào)
25、整,以獲得滿意的調(diào)節(jié)效果和控制參數(shù)。參數(shù)整定結(jié)果:5.6、測(cè)速子程序測(cè)速子程序是通過調(diào)用Timer1中斷來完成的。T1循環(huán)定時(shí),定時(shí)時(shí)間是50ms,作為速度采樣的基本周期。T1定時(shí)時(shí)間一到,程序就進(jìn)入中斷,分別讀取一次主從電機(jī)的脈沖。在T1中斷子程序中,變量i作為T1定時(shí)循環(huán)標(biāo)志,當(dāng)循環(huán)10次達(dá)到500ms,變量i被置0,變量i是主程序運(yùn)算標(biāo)志,當(dāng)i等于10時(shí),主程序進(jìn)入if語句進(jìn)行一次控制計(jì)算。因此,本程序的控制周期為500ms。碼盤是四位編碼器構(gòu)成。 (7)5.7、單片機(jī)資源配置表2 單片機(jī)內(nèi)部功能模塊使用情況說明表定時(shí)器Timer0:PWM定時(shí)/計(jì)數(shù)器時(shí)基Timer1:計(jì)主電機(jī)速度脈沖P
26、CA0PCA0:產(chǎn)生主電機(jī)PWM波PCA1:產(chǎn)生從電機(jī)PWM波表3 單片機(jī)I/O端口配置表資源分配P1.3:CEX0,PWM0輸出P1.4:CEX1,PWM1輸出P3.4:T0主電機(jī)速度脈沖輸入P3.2:INT0從電機(jī)速度脈沖輸入其中在8位PWM脈寬調(diào)制模式下的輸出波形頻率為PCA時(shí)鐘頻率的256分頻,8位PWM占空比公式為: (8)此時(shí),只要將PCA0開啟,為PCA配置一個(gè)時(shí)鐘源,將相應(yīng)模塊設(shè)在8為PWM模式下,并將PWM輸出開啟,再將該模塊配置到一個(gè)I/O口上,則不再需要處理器的干預(yù),PCA會(huì)自動(dòng)地向外端口輸出PWM波,只有當(dāng)需要改變占空比的時(shí)候,修改一下該模塊的捕捉比較寄存器的值即可。六
27、、設(shè)計(jì)心得經(jīng)過將近兩周的單片機(jī)課程設(shè)計(jì),終于完成了兩臺(tái)直流電機(jī)速度同步控制的設(shè)計(jì),基本達(dá)到設(shè)計(jì)要求,從心底里來說,還是很高興的,畢竟這次設(shè)計(jì)把實(shí)物都做了出來。但高興之余不得不深思呀!在本次設(shè)計(jì)的過程中,我發(fā)現(xiàn)很多的問題,雖然以前還做過這樣的設(shè)計(jì)但這次設(shè)計(jì)真的讓我長(zhǎng)進(jìn)了很多。對(duì)于單片機(jī)設(shè)計(jì),其硬件電路是比較簡(jiǎn)單的,主要是解決程序設(shè)計(jì)的問題,而程序設(shè)計(jì)是一個(gè)很靈活的東西,它反映了你解決問題的邏輯思維和創(chuàng)新能力,它才是一個(gè)設(shè)計(jì)的靈魂所在。因此在整個(gè)設(shè)計(jì)過程中大部分時(shí)間是用在程序上面的。很多子程序是可以借鑒書本上的,但怎樣銜接各個(gè)子程序才是關(guān)鍵的問題所在,這需要對(duì)單片機(jī)的結(jié)構(gòu)很熟悉。因此可以說單片機(jī)的
28、設(shè)計(jì)是軟件和硬件的結(jié)合,二者是密不可分的。要設(shè)計(jì)一個(gè)成功的電路,必須要有耐心,要有堅(jiān)持的毅力。在整個(gè)電路的設(shè)計(jì)過程中,花費(fèi)時(shí)間最多的是各個(gè)單元電路的連接及電路的細(xì)節(jié)設(shè)計(jì)上,如在多種方案的選擇中,我們仔細(xì)比較分析其原理以及可行的原因。這就要求我們對(duì)硬件系統(tǒng)中各組件部分有充分透徹的理解和研究,并能對(duì)之靈活應(yīng)用。完成這次設(shè)計(jì)后,我在書本理論知識(shí)的基礎(chǔ)上又有了更深層次的理解。同時(shí)在本次設(shè)計(jì)的過程中,我還學(xué)會(huì)了高效率的查閱資料、運(yùn)用工具書、利用網(wǎng)絡(luò)查找資料。我發(fā)現(xiàn),在我們所使用的書籍上有一些知識(shí)在實(shí)際應(yīng)用中其實(shí)并不是十分理想,各種參數(shù)都需要自己去調(diào)整。偶而還會(huì)遇到錯(cuò)誤的資料現(xiàn)象,這就要求我們應(yīng)更加注重實(shí)
29、踐環(huán)節(jié)。最后還要在此感謝各位畢業(yè)設(shè)計(jì)的指導(dǎo)老師們和我的組員們,他們?cè)谡麄€(gè)過程中都給予了我充分的幫助與支持。七、參考文獻(xiàn)1陳勇.電力拖動(dòng)與控制.北京:人民郵電出版社,20112 梅曉榕.自動(dòng)控制元件及線路.哈爾濱:哈爾濱工業(yè)大學(xué)出版社, 20013 胡壽松.自動(dòng)控制原理.北京:科學(xué)出版社,20074王平.計(jì)算機(jī)控制技術(shù)及應(yīng)用.北京:機(jī)械工業(yè)出版社,20105向敏.微控制器原理及應(yīng)用.北京:人民郵電出版社,2012八、附錄 #include "REG12C5A60S2.H" void system_check(void) P2M0 &= (1<<7); /*
30、將相應(yīng)位清0*/P2M1 &= (1<<7);P2M0 |= 1<<7; /*設(shè)置相應(yīng)IO口推挽輸出*/void timer_init( u8 fosc, u8 div, u8 number, u16 time, u8 pre)/工作方式1 u16 fosc_fre = 0; fosc_time = (u32)fosc * /(u32)div; fosc_time /= (u32)pre;fosc_fre = (u16)(fosc_time /1000 * (u32)time /1000);/*fosc_time <65536*/ if( TIM0 = n
31、umber ) time0 = ( 65536 - fosc_fre ); TMOD |= 0x01;/* the timer0 mode 1 */ TL0 = time0; TH0 = time0>>8; ET0 = 1;if( 1 = pre ) AUXR |= 0x80;/* the timer0 clk = fclk */elseAUXR &= 0x7f; /* the timer0 clk = fclk/12*/EA =1; void counter_init( u8 number ) if( TIM1 = number )TMOD |= 0x50; /* the
32、 counter1 mode 1 */ET1 =1; void exti_init( bit number ) if( 0 = number ) IT0 = 1;/* 下降沿*/ EX0 = 1; void lcd_init_1602( void ) /1602初始化#ifdef LCD_1602_parallel_8 lcdrw=0;lcden = 0;write_1602( 0x38, 0 ); /設(shè)至顯示模式write_1602( 0x0c, 0 ); /設(shè)置顯示和光標(biāo)write_1602( 0x06, 0 ); /設(shè)置光標(biāo)移動(dòng)write_1602( 0x01, 0 ); /清屏#end
33、if #ifdef LCD_1602_parallel_4u8 date_1602;lcdrw=0;lcdrs = 0;lcden = 1;delay_ms(2); /根據(jù)系統(tǒng)時(shí)鐘不同而不同date_1602 = (0x02 << LOW_BIT);I0_lcd1602 = (I0_lcd1602 & (0x0f<<LOW_BIT); /delay_ms(2); /根據(jù)系統(tǒng)時(shí)鐘不同而不同I0_lcd1602 = I0_lcd1602 | date_1602;lcden = 0; write_1602( 0x28, 0 );/設(shè)至顯示模式write_1602( 0
34、x0c, 0 ); /設(shè)置顯示和光標(biāo)write_1602( 0x06, 0 ); /設(shè)置光標(biāo)移動(dòng)write_1602( 0x01, 0 ); /清屏#endif/*END OF FUNCTION lcd_init_1602( void )*/*END OF THE FUNCTION void counter_init( u8 number )*/ void write_string1_1602( u8 addr_y, u8 addr_x, u8 *string ) /寫帶地址的字符串 write_addr_1602( addr_y, addr_x ); /寫地址write_string_160
35、2( string ); /寫字符串/*end of function write_string1_1602( uchar addr_y, uchar addr_x, uchar *string )*/void write_addr_1602( u8 addr_y, u8 addr_x )/寫地址 u8 addr_part_variate; /絕對(duì)地址 if( 1 = addr_y ) /第一行 addr_part_variate = 0x80; /相對(duì)地址/*END OF ( 1 = addr_y ) */else/第二行 addr_part_variate = 0xc0 ; /*END O
36、F ( 1 != addr_y ) */addr_part_variate += (addr_x - 1);/得到絕對(duì)地址 write_1602( addr_part_variate, 0 ); void write_1602( u8 date, bit com ) /寫1602操作lcdrs = com; /數(shù)據(jù)或命令I(lǐng)0_lcd1602 = date; /數(shù)據(jù)傳送delay_ms(2);lcden = 1; /LCD1602使能delay_ms(2);lcden = 0; /1602失能INPUT: number : PWM0/PWM1/PWvoid motor_dc_init(u8 fo
37、sc ,u8 div , u16 fren ,u8 mode ) motor_dc_io(); /*初始化電機(jī)IO模式*/ pwm_init(fosc,div); /*PWM輸出初始化*/pwm_fre(fren,mode); /*PWM頻率設(shè)定*/IN1 = 0; /*關(guān)閉電機(jī)輸出*/IN2 = 0;IN3 = 0;IN4 = 0;void PID_init( float kp, float ki, float kd, s16 max, s16 min, PID *Name ) /PID系數(shù)及邊界值初始化 Name->Kp = kp;/比例系數(shù)賦初值Name->Ki = ki;/
38、積分系數(shù)賦初值Name->Kd = kd;/微分系數(shù)賦初值Name->Pwm = 0;/控制量賦初值Name->Error = 0;/本次誤差賦初值Name->His_Error = 0;Name->His2_Error = 0;Name->Max = max;Name->Min = min;void init( void ) /*系統(tǒng)總初始化函數(shù)*/ CLK_DIV=0x00; /* 系統(tǒng)不分頻flck = 12MHZ*/ delay_time = (12 * 1.0 / 1 ) * 58+ 0.5; /計(jì)算延時(shí)毫秒系數(shù) /* 延時(shí)初始化delay
39、init*/ P2M0 &= (1<<7); /*將相應(yīng)位清0*/P2M1 &= (1<<7);P2M0 |= 1<<7; /*設(shè)置相應(yīng)IO口推挽輸出*/ /*LED初始化*/timer_init(12,1,TIM0,50000,12); /定時(shí)器初始化50mscounter_init(TIM1); /初始化計(jì)數(shù)器exti_init(0);lcd_init_1602();/初始化液晶顯示write_string1_1602(1,1,"Set_V:");/*LCD1602顯示字符串*/write_string1_1602(2
40、,1,"V1:");write_string1_1602(1,12,"r/m");write_string1_1602(2,9,"V2:");motor_dc_init(12,1,3903,12);/初始化電機(jī) 3.9Kmotor_dc_with(PWM1,1);/初始化PWM脈寬motor_dc_with(PWM0,1);/初始化PWM脈寬 PID_init(0.03,0.017,0,255,1,&PID1);/初始化PID參數(shù)PID_init(0.03,0.017,0,255,1,&PID2);/初始化PID參數(shù)
41、/*/ u8 key_Freedom( bit mode ) /適當(dāng)時(shí)候可通過設(shè)置標(biāo)記位來去除等待放手 static u8 xdata key_mode=1; /連續(xù)檢測(cè)標(biāo)志位 u8 key = 0; P3 |= 0x0f; if(key1=1&&key2=1&&key_mode=0) key_mode=1;return 255; /*按鍵彈起*/ if(mode)key_mode=1;if(key1=0|key2=0)&&key_mode)delay_ms(5); key_mode=0;if(key1=0|key2=0) if(key1=0)
42、key |= 1<<0;if(key2=0) key |= 1<<1;/if(key3=0) key |= 1<<2;/if(key4=0) key |= 1<<3; return key;/*END OF THE if(key1=0|key2=0|key3=0|key4=0)&&key_mode)*/*END OF THE if(key1=0|key2=0|key3=0|key4=0)&&key_mode)*/return 0; void delay_ms( u8 number ) /延時(shí)多少毫秒u16 idat
43、a time;while( number- )for( time=delay_time; time>0; time- ); /*仿真時(shí)不能用*/*END OF while(number-)*/ void timer_start( u8 number,bit mode )/* timer start */if(mode) if( number = TIM0 ) TMOD |= 0X08;else if( number = TIM1) TMOD |= 0x80;else if( number = TIM0 ) TMOD &= 0Xf7;else if( number = TIM1)
44、TMOD &= 0x7f; switch( number ) case TIM0: TR0 =1; break;case TIM1: TR1 =1; break;case PCA0: CCAPM0 = 0x49;/*PCAmodule-0 work in 16-bit timer mode*/ /*and enable PCA interrupt*/ CR =1; break;/*PCA timer satrt run*/case PCA1: CCAPM1 = 0x49;/*PCAmodule-1 work in 16-bit timer mode*/ /*and enable PCA
45、 interrupt*/ CR =1; break;/*PCA timer satrt run*/default : ; break;/*END OF THE switch( number )*/*END OF THE FUNCTION void timer_start( u8 number )*/void counter_start( u8 number,bit mode ) if(mode) if( number = TIM0 ) TMOD |= 0X08;else if( number = TIM1) TMOD |= 0x80;else if( number = TIM0 ) TMOD
46、&= 0Xf7;else if( number = TIM1) TMOD &= 0x7f; switch( number ) case TIM0: TR0 =1; break;case TIM1: TR1 =1; break;default : CR =1; break;/*PCA timer satrt run*/ /*END OF THE switch( number )*/ /*END OF THE FUNCTION void counter_start( u8 number )*/void motor_dc_start( u8 number, u8 mode ) pwm_start(number);switch(mode) case 0 : IN1 =1; IN2 = 0; break;case 1 : IN1 =0; IN2 = 1; break;case 2 : IN3 =1; IN4 = 0; break;case 3 : IN3 =0; IN4 = 1; break;void motor_dc_stop( u8 number, u8 mode ) pwm_stop(number);if(mode = 1) IN1 = 0;IN2 = 0;else
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 小學(xué)生畢業(yè)贈(zèng)言15篇
- 文藝晚會(huì)策劃方案范文錦集八篇
- 產(chǎn)品銷售合同六篇
- 團(tuán)隊(duì)精神演講稿(匯編15篇)
- 校本研修工作總結(jié)
- 企業(yè)員工工作計(jì)劃
- 我的拿手好戲作文500字10篇
- 數(shù)學(xué)學(xué)習(xí)計(jì)劃合集10篇
- 護(hù)士個(gè)人年終述職報(bào)告4篇
- 春季開學(xué)典禮校長(zhǎng)演講稿合集6篇
- 天翼云從業(yè)者認(rèn)證考試題庫及答案
- 2024國(guó)際海外銷售代理合同范本
- 上海市市轄區(qū)(2024年-2025年小學(xué)四年級(jí)語文)人教版期末考試(上學(xué)期)試卷及答案
- 期末檢測(cè)卷(試題)-2024-2025學(xué)年三年級(jí)上冊(cè)統(tǒng)編版語文
- 膝關(guān)節(jié)骨性關(guān)節(jié)炎階梯治療
- 2024-2030年中國(guó)工業(yè)真空系統(tǒng)行業(yè)市場(chǎng)發(fā)展趨勢(shì)與前景展望戰(zhàn)略分析報(bào)告
- 新疆第十三師新星經(jīng)濟(jì)技術(shù)開發(fā)區(qū)管委會(huì)招聘筆試題庫2024
- 2024-2030年中國(guó)毫米波行業(yè)市場(chǎng)發(fā)展趨勢(shì)與前景展望戰(zhàn)略分析報(bào)告
- 2024年全國(guó)初中數(shù)學(xué)競(jìng)賽試題含答案
- 軟裝公司運(yùn)營(yíng)計(jì)劃書
- 中醫(yī)臨床基礎(chǔ)研究設(shè)計(jì)方法與進(jìn)展智慧樹知到期末考試答案2024年
評(píng)論
0/150
提交評(píng)論