基于LPC2124的直流電機調(diào)速系統(tǒng)Proteus仿真_第1頁
基于LPC2124的直流電機調(diào)速系統(tǒng)Proteus仿真_第2頁
基于LPC2124的直流電機調(diào)速系統(tǒng)Proteus仿真_第3頁
基于LPC2124的直流電機調(diào)速系統(tǒng)Proteus仿真_第4頁
基于LPC2124的直流電機調(diào)速系統(tǒng)Proteus仿真_第5頁
已閱讀5頁,還剩17頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、基于LPC2124的直流電機調(diào)速系統(tǒng)Proteus仿真1 直流電機、減速器及傳感器選型設(shè)計要求驅(qū)動輪式機器人,兩輪的直徑相同為0.1m,驅(qū)動電機選用直流電機,為了滿足加速度需求,每個電機配備了減速裝置,且兩輪為獨立驅(qū)動。小車運行過程中自帶電池,電池的供電電壓為+24VDC,為滿足機器人比賽需要,經(jīng)需求分析可得該機器人運動控制系統(tǒng)的最大速度為:5.0m/s,最大加速度為:20m/s2,控制方案采用閉環(huán)控制方案。通過計算可知,在沒有減速器的情況下,電機應(yīng)達到955r/min才能實現(xiàn)最大轉(zhuǎn)速5.0m/s,啟動時間應(yīng)該小于0.25s才能達到最大加速度20m/s2的要求。所以,可以選擇額定電壓24V,空

2、載轉(zhuǎn)速2500r/min的直流電機,采用調(diào)速比2.5的減速器,加速度要求通過軟件實現(xiàn)。系統(tǒng)要求采用閉環(huán)控制方案,本設(shè)計采用轉(zhuǎn)速單閉環(huán)控制,選用旋轉(zhuǎn)編碼器作為測速傳感器。旋轉(zhuǎn)編碼器不僅精度高,而且安全穩(wěn)定、維護方便,在Proteus庫里有配套旋轉(zhuǎn)編碼器的直流電機,方便仿真。理論上旋轉(zhuǎn)編碼器的光柵數(shù)越大,測速越精確,但是光柵數(shù)的增大會增加制作難度和成本,本設(shè)計只是用于輪式機器人的測速,采用光柵數(shù)1024的旋轉(zhuǎn)編碼器足以,同時可以采用四倍頻電路提高轉(zhuǎn)速分辨率。在基于Proteus仿真的直流電機調(diào)速系統(tǒng)中,由于各種限制,設(shè)計并不能達到系統(tǒng)的具體要求,但是可以作為一個可供參考的調(diào)速模型。2 直流電機調(diào)速

3、系統(tǒng)硬件設(shè)計2.1硬件系統(tǒng)結(jié)構(gòu)圖直流電機轉(zhuǎn)速單閉環(huán)調(diào)速系統(tǒng)硬件結(jié)構(gòu)圖如圖1 所示圖1 直流電機轉(zhuǎn)速單閉環(huán)調(diào)速系統(tǒng)硬件結(jié)構(gòu)圖2.2 LPC2124簡介LPC2124是基于一個支持實時仿真和跟蹤的16/32位ARM7TDMI-S CPU的微控制器,并帶有256KB嵌入的高速Flash存儲器。128位寬度的存儲器接口和獨特的加速結(jié)構(gòu)使32位代碼能夠在最大時鐘速率下運行,且可使用16位Thumb模式。LPC2124支持多種通信接口,包括UART, 和SPI等串行接口以及PWM輸出接口,外圍接口部分設(shè)計極為方便、靈活。2.3 電機驅(qū)動芯片L298介紹L298N是ST公司生產(chǎn)的一種高電壓、大電流電機驅(qū)動芯

4、片。該芯片采用15腳封裝。主要特點是:工作電壓高,最高工作電壓可達46V;輸出電流大,瞬間峰值電流可達3A,持續(xù)工作電流為2A;額定功率25W。內(nèi)含兩個H橋的高電壓大電流全橋式驅(qū)動器,可以用來驅(qū)動直流電動機和步進電動機、繼電器線圈等感性負載;采用標準邏輯電平信號控制;具有兩個使能控制端,在不受輸入信號影響的情況下允許或禁止器件工作有一個邏輯電源輸入端,使內(nèi)部邏輯電路部分在低電壓下工作;可以外接檢測電阻,將變化量反饋給控制電路。使用L298N芯片驅(qū)動電機,該芯片可以驅(qū)動一臺兩相步進電機或四相步進電機,也可以驅(qū)動兩臺直流電機。芯片內(nèi)部結(jié)構(gòu)圖如圖2所示。圖2 L298芯片的內(nèi)部結(jié)構(gòu)圖L298驅(qū)動直流

5、電機參考表1表1 L298驅(qū)動直流電機參考表電機旋轉(zhuǎn)方式控制端IN1控制端IN2控制端IN3控制端IN4輸入PWM信號改變脈寬可調(diào)速調(diào)速端A調(diào)速端BM1正轉(zhuǎn)高低/高/反轉(zhuǎn)低高/高/停止低低/高/M2正轉(zhuǎn)/高低/高反轉(zhuǎn)/低高/高停止低低/高2.4 直流電機調(diào)速系統(tǒng)Proteus仿真電路 Proteus的元件庫中提供許多種類型的電機元件,從簡單的直流電機到步進電機、伺服電機都有,我們選取一個帶編碼器的電機MOTOR-ENCODER來仿真,之所以用帶編碼器的,是因為我們需要用到編碼器的輸出信號來測量電機的轉(zhuǎn)速。MOTOR-ENCODER的編碼輸出與本系統(tǒng)所要求的增量式旋轉(zhuǎn)編碼具有同等功能,可提供兩路

6、路具有90相位差的編碼脈沖,利用其中任何一個可實現(xiàn)對轉(zhuǎn)速的檢測。在MOTOR-ENCODER的屬性中可設(shè)置其參數(shù),本系統(tǒng)對MOTOR-ENCODER的參數(shù)設(shè)置如表2所示。表2 Motor-Encoder參數(shù)表參數(shù)名參數(shù)值 額定電壓24 V線圈電阻12 線圈電感100 mH空載轉(zhuǎn)速1000 rpm負載率10 %每轉(zhuǎn)脈沖數(shù)60直流電機調(diào)速系統(tǒng)Proteus仿真電路如圖2所示。圖2 直流電機調(diào)速系統(tǒng)Proteus仿真電路 系統(tǒng)采用24MHz晶振提供外部時鐘,LPC2124的P0.6,P0.7輸出高低電平控制電機轉(zhuǎn)速方向;四個二極管作為續(xù)流二極管,起保護作用;四個按鍵通過上拉電阻與LPC通用端口相連,

7、按鍵按下,低電平有效,另外通過一個四輸入與門與外部中斷EINT0相連,通過外部中斷方式判斷是否有按鍵按下,四個按鍵分別實現(xiàn)電機加速、減速、反轉(zhuǎn)、制動的功能。3 直流電機調(diào)速系統(tǒng)軟件設(shè)計3.1 直流電機調(diào)速系統(tǒng)軟件設(shè)計流程圖直流電機調(diào)速系統(tǒng)軟件設(shè)計流程圖如圖3所示,中斷程序如圖4、圖5所示。 圖3 調(diào)速系統(tǒng)軟件 圖4 按鍵中斷 圖5 測速中斷設(shè)流程圖 程序流程圖 程序流程圖3.2 PWM模塊系統(tǒng)采用PWM方法調(diào)整電動機的速度,首先應(yīng)確定合理的脈沖頻率。脈沖寬度一定時,頻率對電機運行的平穩(wěn)性有較大影響,脈沖頻率高電動機運行的連續(xù)性好,但帶負載能力差;脈沖頻率低則反之。調(diào)脈寬的方式有三種:定頻調(diào)寬、

8、定寬調(diào)頻和調(diào)寬調(diào)頻。我們采用了定頻調(diào)寬方式,因為采用這種方式,電動機在運轉(zhuǎn)時比較穩(wěn)定;并且在采用LPC2124產(chǎn)生PWM脈沖的軟件實現(xiàn)上比較方便。PWM輸出頻率采用系統(tǒng)時鐘頻率,通過轉(zhuǎn)速調(diào)節(jié)器調(diào)節(jié)PWM占空比,實現(xiàn)直流電機的調(diào)速驅(qū)動。PWM初始化子程序流程如圖6所示。圖6 PWM初始化流程圖3.3測速模塊本系統(tǒng)采用T法測速,旋轉(zhuǎn)編碼器輸出的脈沖由LPC2124的P0.28捕獲,電機每轉(zhuǎn)一圈旋轉(zhuǎn)編碼器輸出60個脈沖,每捕獲一個編碼器輸出脈沖,則進入中斷讀取定時器的值,計算測速時間,通過公式(1-2)計算轉(zhuǎn)速 (1-1)T法測速原理如圖7所示。圖7 T法測速原理圖定時器0初始化流程圖如圖8所示。圖

9、8 定時器0初始化流程圖3.4 數(shù)字PI調(diào)節(jié)器模塊在微機數(shù)字控制系統(tǒng)中,當(dāng)采樣頻率足夠高時,可以先按模擬系統(tǒng)的設(shè)計方法設(shè)計調(diào)節(jié)器,然后再離散化,就可以得到數(shù)字控制器的算法,這就是模擬調(diào)節(jié)器的數(shù)字化。當(dāng)輸入時誤差函數(shù)e(t)、輸出函數(shù)是u(t)時,PI調(diào)節(jié)器的傳遞函數(shù)如下:(1-2)式中:Kpi為PI調(diào)節(jié)器比例部分的放大系數(shù);t為PI調(diào)節(jié)器的積分時間常數(shù)。式子(1-2)的時域表達式可寫成:(1-3)其中,KP=Kpi為比例系數(shù),KI=1/t為積分系數(shù)。將上式離散化成差分方程,其第k拍輸出為: (1-4)其中,Tsam為采樣周期。式(1-4)表述的差分方程為位置式算法,u(k)為第k拍的輸出值。由

10、式子看出,比例部分只與當(dāng)前的偏差有關(guān),而積分部分則是系統(tǒng)過去所有偏差的累積。位置式PI調(diào)節(jié)器的結(jié)構(gòu)清晰,P和I兩部分作用分明,參數(shù)調(diào)整簡單明了。為了安全起見,常須對調(diào)節(jié)器的輸出實行限幅。在數(shù)字控制算法中,要對u限幅,只須在程序內(nèi)設(shè)置限幅值um,當(dāng)u(k)um時,便以限幅值um作為輸出。而位置式算法必須要同時設(shè)積分限幅和輸出限幅。帶有積分限幅和輸出限幅的位置式數(shù)字PI調(diào)節(jié)程序框圖如圖9所示。圖9位置式數(shù)字PI調(diào)節(jié)流程圖本系統(tǒng)只采用了P調(diào)節(jié)器,即令PI參數(shù)為零,經(jīng)過仿真發(fā)現(xiàn)系統(tǒng)可以較穩(wěn)定地運行。3.5 直流電機制動直流電機要達到快速制動,必須采用反壓制動方式,所以制動過程采用另外獨立的程序設(shè)計。因

11、為原先采用統(tǒng)一的調(diào)速程序發(fā)現(xiàn),制動過程反轉(zhuǎn)超調(diào)后就向反方向加速,導(dǎo)致系統(tǒng)不穩(wěn)定。采用獨立的程序設(shè)計實現(xiàn)電機逐級制動,隨轉(zhuǎn)速降低減小PI參數(shù),最后置高P0.6、P0.7,保證超調(diào)也不會反轉(zhuǎn)加速。4 直流電機調(diào)速系統(tǒng)Proteus仿真結(jié)果本系統(tǒng)采用簡單的按鍵操作,實現(xiàn)電機的加速、減速、制動、反轉(zhuǎn)功能,由于時間倉促,在判斷按鍵過程,我們只考慮了只有一個按鍵按下的情況。本系統(tǒng)各按鍵的共能如下 加速鍵用于電機加速,每按一次電機轉(zhuǎn)速增加10r/min。 減速鍵用于電機減速,每按一次電機轉(zhuǎn)速減小10r/min。 制動鍵用于電機制動,停止電機旋轉(zhuǎn)。 反轉(zhuǎn)鍵用于電機反轉(zhuǎn),每按一次電機反轉(zhuǎn)。按鍵仿真圖如圖10所示

12、。圖10 按鍵仿真圖當(dāng)連接好仿真圖和載入LPC2124的執(zhí)行文件后,單擊Proteus的仿真啟動按鈕,則開始對本系統(tǒng)的仿真。其運行流程如下:(1) 按20次加速鍵讓電機啟動正轉(zhuǎn),達到200r/min,所需時間大致在1.3s 左右,如圖11所示。圖11 加速正轉(zhuǎn) (2) 按一次減速鍵,電機轉(zhuǎn)速減小10r/min,到達190r/min,如圖12所示。圖12 減速 (3) 按一次反轉(zhuǎn)按鍵,電機反轉(zhuǎn),到達-190r/min,如圖13所示。圖13 反轉(zhuǎn) (4) 按一次制動鍵,電機制動,轉(zhuǎn)速較大時,電機可以快速制動到接近零,之后緩慢減速,如圖14所示。圖14 制動 經(jīng)過仿真調(diào)試,發(fā)現(xiàn)系統(tǒng)可以實現(xiàn)基本的調(diào)速

13、功能,并且可以較快速地啟動,系統(tǒng)具有較好的穩(wěn)定性,誤差范圍在鹵1r/min。5 結(jié)束語本設(shè)計采用ARM7 LPC2124及外部擴展設(shè)備實現(xiàn)對直流電機的轉(zhuǎn)速監(jiān)控,在硬件上采用了基于PWM技術(shù)的H型橋式驅(qū)動電路,解決了電機驅(qū)動的效率問題,在軟件上也采用較為合理的系統(tǒng)結(jié)構(gòu)及算法,提高了ARM的使用效率。以往的數(shù)字化直流調(diào)速系統(tǒng)中轉(zhuǎn)速常用測速發(fā)電機來檢測,這種測速方法的精度不夠高,在低速時更為嚴重,很難保障生產(chǎn)的高效、安全運行,所以在本次設(shè)計中測速采用了目前較先進的旋轉(zhuǎn)編碼器測速,即數(shù)字測速。數(shù)字測速不僅精度高,而且安全穩(wěn)定、維護方便。本系統(tǒng)的直流調(diào)速系統(tǒng)采用單閉環(huán)P調(diào)節(jié)器控制。用軟件編程完成轉(zhuǎn)速驅(qū)動

14、,轉(zhuǎn)速檢測,實現(xiàn)了對轉(zhuǎn)速的最優(yōu)化調(diào)節(jié)。同時還實現(xiàn)了轉(zhuǎn)速的按鍵輸入控制。通過本次設(shè)計,加強了我對ARM應(yīng)用知識的掌握,同時了解了目前工業(yè)生產(chǎn)中數(shù)字化系統(tǒng)的重要性,使我對使用ARM實現(xiàn)自動化控制的設(shè)計過程有了全面地了解。通過學(xué)習(xí)控制系統(tǒng)工作原理以及如何利用ARM實現(xiàn)各種功能,我查閱了大量相關(guān)資料,學(xué)會了許多知識,培養(yǎng)了我獨立解決問題的能力。同時在對硬件電路設(shè)計的過程中,鞏固了我的專業(yè)課知識,使自己受益匪淺。當(dāng)然在本次設(shè)計中還有需要完善的地方,比如可以增加一個顯示模塊,顯示系統(tǒng)運行的狀態(tài),還可以改善調(diào)節(jié)器,采用PID調(diào)節(jié)器使轉(zhuǎn)速穩(wěn)定無超調(diào),另外還可以改善按鍵輸入為數(shù)字鍵盤輸入,這樣可以給定具體的轉(zhuǎn)速

15、??傊?,通過本次設(shè)計不僅進一步強化了專業(yè)知識,還掌握了設(shè)計系統(tǒng)的方法、步驟等,為今后的工作和學(xué)習(xí)打下了堅實的基礎(chǔ)。由于時間倉促,本論文中或多或少會存在一些缺點,所設(shè)計的軟件難免存在一些不足,懇請老師批評和指正。附錄 基于LPC2124的直流電機調(diào)速系統(tǒng)源代碼/*File: Main.c*功能: 使用PWM6輸出PWM信號,通過KEY1,KEY2,KEY3控制電機轉(zhuǎn)速,KEY1按一次加速10r/min,KEY2按一下減速10r/min,KEY3按一下制動,KEY4按一下反轉(zhuǎn)*/#include LPC21xx.htypedef unsigned int uint32;typedef int in

16、t32;#define pwmdata /*PWM周期*/#define f0 /*計數(shù)器頻率*/#define Z 60 /*電機每轉(zhuǎn)一圈產(chǎn)生Z個脈沖*/#define kp 0.1 /*PI調(diào)節(jié)器比例系數(shù)*/#define ki 0 /*PI調(diào)節(jié)器積分系數(shù)*/#define KEY 0x0b /*P0.23,P0.24,P0.25,P0.27引腳連有按鍵*/#define KEY1 0x /*P0.23引腳連接KEY1*/#define KEY2 0x /*P0.24引腳連接KEY2*/#define KEY3 0x /*P0.25引腳連接KEY3*/#define KEY4 0x /*P

17、0.27引腳連接KEY4*/uint32 t1=0,t2=0,i=0;uint32 flag=0; /*制動標志,flag=1轉(zhuǎn)速接近0*/uint32 fv=0; /*正反轉(zhuǎn)標志,fv=0正轉(zhuǎn),fv=1反轉(zhuǎn)*/ int32 nu=0,n=0; /*nu給定轉(zhuǎn)速,n檢測轉(zhuǎn)速*/_irq void IRQ_T0(void) t2=T0CR2; /讀取捕獲寄存器 T0CR2=0; /捕獲寄存器清零 if(t1t2) n=1.236*60*f0/(Z*(t2-t1+f0); /1.236為修正系數(shù) t1=t2; T0IR=0x40; /清除捕捉0中斷標志(向6位寫1) VICVectAddr=0x0

18、0; /中斷結(jié)束_irq void IRQ_EINT0(void) uint32 i; IOCLR0=0x; for(i=0;i=0) nu+=10; else nu-=10; else if(IOPIN0&KEY2)=0) /KEY2按鍵按下,減速 if(nu10) nu-=10; else if(nu-10) nu+=10; else nu=0; else if(IOPIN0&KEY3)=0) nu=0;/KEY3按鍵按下,制動 else if(IOPIN0&KEY4)=0) /KEY4按鍵按下,反轉(zhuǎn) if(fv=0) fv=1; else fv=0; nu=-nu; while(IOPI

19、N0&KEY)!=KEY); /等待按鍵放開 EXTINT=0x01; /清楚EINT0中斷標志 VICVectAddr=0x00; /中斷結(jié)束void TargetInit(void) /*管腳配置初始化*/ PINSEL0=0x; /設(shè)置PWM6連接到P0.9引腳 PINSEL1=0x; /P0.28捕捉 IODIR0=0xc0; /P0.6,P0.7,P0.9輸出 /*PWM初始化*/ PWMPR=0x00; /不分頻,計數(shù)頻率為Fpclk PWMMCR=0x02; /設(shè)置PWMMR0匹配時復(fù)位PWMTC PWMMR0=pwmdata; /設(shè)置PWM周期 PWMMR6=; /設(shè)置PWM占

20、空比 PWMLER=0x40; /PWMMR6鎖存 PWMPCR=0x4000; /允許PWM6輸出,單邊PWM PWMTCR=0x09; /啟動定時器,PWM使能 /*EINT0中斷初始化*/ PINSEL1=(PINSEL1&0xfffffffc)|0x01; /選擇P0.16為EINT0 EXTMODE=EXTMODE&0x0e; /電平觸發(fā) EXTPOLAR=EXTPOLAR&0x0e; /低電平中斷 /*定時器0初始化*/ T0TC=0; /清除 T0計數(shù)值 T0PR=23; /24分頻(24MHZ分頻后變成1MHZ) T0MR0=; /計數(shù)匹配值 T0CCR=0x0140;/第七位

21、寫1進入捕捉模式 (上升沿捕捉,進入中斷) T0MCR=0x; /匹配后復(fù)位T0(不停止) T0TCR=0x; /復(fù)位計數(shù)器 T0TCR=0x; /計數(shù)器使能 /*中斷向量初始化*/ VICIntSelect=0x; /中斷向量寄存器選擇0,IRQ中斷 VICVectCntl0=0x20|4; /定時器0中斷分配為向量IRQ通道0 VICVectAddr0=(uint32)IRQ_T0; /向量IRQ通道0的中斷服務(wù)程序地址為IRQ_T0 VICVectCntl1=0x20|14; /EINT0中斷分配為向量IRQ通道1 VICVectAddr1=(uint32)IRQ_EINT0; /向量IRQ通道1的中斷服務(wù)程序地址為IRQ_EINT0 VICIntEnable=(14)|(150) PI=-0.8; else if(n20) PI=-0.5; else if(n10) PI=-0.3; else if

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論