版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、東南大學自動化學院實 驗 報 告課程名稱: DSP原理及C程序開發(fā) 實驗名稱: 直流無刷電機控制綜合實驗 院 (系): 自動化學院 專 業(yè): 自動化 姓 名: 楊明亮 學 號: 08009117 實 驗 室: 實驗組別: 同組人員: 實驗時間:2012 年 5 月 20 日評定成績: 審閱教師: 直流無刷電機綜合控制實驗一、實驗?zāi)康睦肍28335核心板與ICETEK-MOTOR-E運動控制板,實現(xiàn)直流無刷電機的驅(qū)動與轉(zhuǎn)速控制,利用小鍵盤或電位器對直流無刷電機進行轉(zhuǎn)速調(diào)節(jié),并利用液晶屏顯示轉(zhuǎn)速等狀態(tài)信息。二、實驗要求1. 基本功能掌握F28335核心板與ICETEK-MOTOR-E運動控制板的
2、使用方法,接線正確,能捕獲并證實霍爾傳感器狀態(tài)變化規(guī)律(表1);能正確總結(jié)出正/反轉(zhuǎn)控制表(表2),從而控制電機正轉(zhuǎn)/反轉(zhuǎn);能通過修改占空比,用示波器觀察pwm口輸出波形的變化。2. 提高功能能通過閱讀學習“ICETEK-Motor-E使用說明書.pdf”,發(fā)現(xiàn)ICETEK-MOTOR-E運動控制板中的電位器信號,編制程序從DSP相應(yīng)的ADC輸入端口采集該電位器信號,能用CCS圖形顯示AD變換結(jié)果曲線;能編制程序,利用AD變換結(jié)果調(diào)節(jié)PWM占空比,從而對直流無刷電機進行調(diào)速;能設(shè)計基本的人機接口軟件,即編制程序,利用小鍵盤進行正轉(zhuǎn)、反轉(zhuǎn)、停止功能選擇,利用液晶屏顯示(示意)正轉(zhuǎn)、反轉(zhuǎn)、停止等狀
3、態(tài)信息,并可自行擴展其它輔助功能。三、實驗原理1直流無刷電動機 ICETEK-F2812-BCM實驗箱采用的直流無刷電機是三相方波控制型直流無刷電機(BLDCM),如果按照一定順序給電機的各相通入方波即可使電機轉(zhuǎn)動,轉(zhuǎn)動的速度及力矩與通入電機定子繞組的電壓、電流成正比關(guān)系。2. 電機驅(qū)動與控制通過ICETEK-F2812-BCM實驗箱,ICETEK-F2812-A板與電機驅(qū)動板及直流無刷電機連接,通過編程,TMS320F2812輸出的控制信號能夠控制電機轉(zhuǎn)動。具體控制信號連接如下所示:電機驅(qū)動模塊的內(nèi)部結(jié)構(gòu)如下所示: 各PWM管腳按如下順序完成信號的輸出可使電機轉(zhuǎn)動: 其中,PWM代表輸出一定
4、占空比的PWM波,0常關(guān)或強制低,1常開或強制高。PhaseA、PhaseB和PhaseC的相應(yīng)輸出為: PWM1-6控制:如果要電機轉(zhuǎn)動則連接電機的PhaseA、PhaseB和PhaseC的輸出需要滿足上面圖2-2給出的波形,每相電壓在±24V之間變動并滿足上述時序關(guān)系。而要實現(xiàn)這一輸出,需要在PWM1-6管腳上輸出滿足上面圖描述的波形和時序關(guān)系。3. D4、D5、D6的變化順序決定電機正反轉(zhuǎn)。D6 D5 D4 正轉(zhuǎn)(俯視電機主軸,順時針轉(zhuǎn)動)1 0 01 0 10 0 10 1 10 1 01 1 0D6 D5 D4 反轉(zhuǎn)(俯視電機主軸,逆時針轉(zhuǎn)動)1 0 01 1 00 1 0
5、0 1 10 0 11 0 1轉(zhuǎn)速控制:如上所述,電機轉(zhuǎn)動需要安裝一定頻率送狀態(tài)0-5控制字,而送電機控制信號的速度(頻率)則在一定程度上決定了電機轉(zhuǎn)速,0-5各狀態(tài)切換得快,則電機可以快些運行。但還有一個因素,即送電機輸出的電流,送給電機定子的三相繞組的電流直接決定了電機轉(zhuǎn)子能產(chǎn)生多大的轉(zhuǎn)矩。當控制狀態(tài)由一種切換到下一種時,電流發(fā)生的力矩是否能讓轉(zhuǎn)子轉(zhuǎn)動到位,這決定了電機在下一個狀態(tài)電流到來時是否能順利轉(zhuǎn)動下去。如果電流弱,不足以使轉(zhuǎn)子轉(zhuǎn)動到位,電機將“失步”或根本無法轉(zhuǎn)動;如果電流過大,在下一個狀態(tài)到來前早就到位,電機轉(zhuǎn)子將在當前電流控制下在此位置“剎車”,如果在慣性的驅(qū)動下稍微轉(zhuǎn)動過位時
6、,就會反向轉(zhuǎn)回來,導致電機轉(zhuǎn)子在運行時會產(chǎn)生不同程度的震動,甚至電機繞組發(fā)熱。由此,我們需要選擇好電機狀態(tài)切換的頻率,也要控制好送電機驅(qū)動信號的電流大小,亦即控制好切換PWM控制字的頻率。四、實驗內(nèi)容及結(jié)果1、插好電機驅(qū)動板,連接好霍爾傳感器接頭,先不連接驅(qū)動電源和電機的abc三項電源,給dsp試驗板上電,則霍爾傳感器即可工作。手動轉(zhuǎn)動電機,電機不加電,觀察正轉(zhuǎn)和反轉(zhuǎn)時指示燈D4、D5、D6等的變化順序。(1) 先進行霍爾傳感器的狀態(tài)讀入測試,在工程管理器的include下面找到build.h文件,將編譯開關(guān)#define BUILDLEVEL LEVEL? 的設(shè)置設(shè)為LEVEL0,然后編譯程
7、序、運行程序測試。注意在中斷服務(wù)程序的LEVEL0處理分支下,使用變量nNowStatus給pwm指針賦值。程序生成PWM的原理參見“準備實驗2”: pwm1.CmtnPointer = nNowStatus;/0-5 pwm1.DutyFunc = (int16)rmp2.Out; pwm1.update(&pwm1);在變量觀察窗口中改變nNowStatus的值(0-5之間),在變量觀察窗口里觀察變量hallcap的變化。觀察指示燈的狀態(tài)和hallcap的數(shù)值的變化對應(yīng)關(guān)系,總結(jié)出指示燈和霍爾傳感器讀入的狀態(tài)的對應(yīng)關(guān)系,然后總結(jié)出正轉(zhuǎn)hallcap的變化順序,和反轉(zhuǎn)時的變化順序。D
8、6 D5 D4 正轉(zhuǎn)(俯視電機主軸,順時針轉(zhuǎn)動)1 0 01 0 10 0 10 1 10 1 01 1 0D6 D5 D4 反轉(zhuǎn)(俯視電機主軸,逆時針轉(zhuǎn)動)1 0 01 1 00 1 00 1 10 0 11 0 1(2) 總結(jié)對應(yīng)關(guān)系填寫下表, :俯視電機主軸,順時針轉(zhuǎn)動. (D6D4燈亮為1,滅為0)表1 正轉(zhuǎn)關(guān)系nNowStatusHallcap對應(yīng)捕獲端口數(shù)據(jù)D6D5D40410015101210013301142010561102. 根據(jù)捕獲狀態(tài)驅(qū)動電機運轉(zhuǎn)(1)目的:在程序中添加內(nèi)容完成使電機正/反方向轉(zhuǎn)動。(2)分析:根據(jù)實驗原理,我們只需要控制送給PWM波形發(fā)生模塊pwm1的
9、狀態(tài)輸入順序即可改變電機轉(zhuǎn)動方向。根據(jù)準備實驗1中總結(jié)出的正反轉(zhuǎn)順序可知,如果當前電機鎖定狀態(tài)為5狀態(tài),欲正轉(zhuǎn),則電機須鎖定到1狀態(tài),所以pwm.Cmtnpointer賦值為2,若想反轉(zhuǎn),則電機須鎖定到4狀態(tài),所以pwm指針賦值為0。因此得出正反轉(zhuǎn)數(shù)組下標(下標為當前霍爾傳感器讀入狀態(tài),數(shù)組值為向下一狀態(tài)轉(zhuǎn)動pwm所賦數(shù)值),與pwm指針對應(yīng)數(shù)組為:表2 正/反轉(zhuǎn)控制表轉(zhuǎn)向正反正反正反正反正反正反霍爾狀態(tài)123456Pwm指針410352253014(3)修改程序: 以上表為參考修改BLDCMControl.c程序中的相關(guān)變量定義:Uint16 fanzhuan6=1,3,2,5,0,4; U
10、int16 zhengzhuan6=4,0,5,2,3,1; /注意BLDCMControl.c中的代碼,并嘗試讓電機反轉(zhuǎn)。 nISRWork1=(int16)hall1.HallGpio; bISRWork=( nISRWork1>0 && nISRWork1<7 )?(1):(0); if ( bISRWork ) nNowStatus=zhengzhuannISRWork1-1;/正轉(zhuǎn)nNowStatus=fanzhuannISRWork1-1;/反轉(zhuǎn) /補充代碼,以nISRWork1為索引,查找表zhengzhuan或fanzhuan,并將值賦給nNowSt
11、atus 3. 能通過修改PWM的周期,即改變pwm1.DutyFunc的值來調(diào)速,并用示波器觀察pwm口輸出波形的變化。4. 能通過閱讀學習“ICETEK-Motor-E使用說明書.pdf”,發(fā)現(xiàn)ICETEK-MOTOR-E運動控制板中的電位器信號,編制程序從DSP相應(yīng)的ADC輸入端口采集該電位器信號,能用CCS圖形顯示AD變換結(jié)果曲線;5. 能編制程序,利用AD變換結(jié)果調(diào)節(jié)PWM占空比,從而對直流無刷電機進行調(diào)速;6. 設(shè)計基本的人機接口軟件,即編制程序,利用小鍵盤進行正轉(zhuǎn)、反轉(zhuǎn)、停止功能選擇,利用液晶屏顯示(示意)正轉(zhuǎn)、反轉(zhuǎn)、停止等狀態(tài)信息,并可自行擴展其它輔助功能。按“1”電機正轉(zhuǎn),第
12、一行顯示速度值,第二行顯示狀態(tài),“1”表示正轉(zhuǎn)按“2”電機正轉(zhuǎn),第一行顯示速度值,第二行顯示狀態(tài),“2”表示反轉(zhuǎn)按“3”電機停轉(zhuǎn),第一行顯示速度值為,第二行顯示狀態(tài),“0”表示停轉(zhuǎn)五、實驗程序主要代碼:1.main函數(shù)void main(void)/*#if (DSP_TARGET=F28335)InitSysCtrl(); InitXintf16Gpio(); EALLOW; SysCtrlRegs.PCLKCR0.bit.TBCLKSYNC = 1; EDIS; EALLOW; / This is needed to write to EALLOW protected registers
13、SysCtrlRegs.HISPCP.all = 0x0000; / SYSCLKOUT/1 EDIS; / This is needed to disable write to EALLOW protected registers / Disable and clear all CPU interrupts:DINT;IER = 0x0000;IFR = 0x0000;nISRWork1=0;InitPieCtrl();InitPieVectTable(); InitCpuTimers(); ConfigCpuTimer(&CpuTimer0, 100, SYSTEM_FREQUEN
14、CY*10/ISR_FREQUENCY); StartCpuTimer0();EALLOW;/ This is needed to write to EALLOW protected registersPieVectTable.TINT0 = &MainISR;EDIS; / This is needed to disable write to EALLOW protected registers PieCtrlRegs.PIEIER1.all = M_INT7;IER |= M_INT1;#endif/*/ Initialize PWM module pwm1.PeriodMax =
15、 (SYSTEM_FREQUENCY/PWM_FREQUENCY)*1000; / Asymmetric PWM pwm1.DutyFunc = DFuncDesired; / DutyFunc = Q15 pwm1.init(&pwm1); / Initialize DATALOG module dlog.iptr1 = &DlogCh1; dlog.iptr2 = &DlogCh2; dlog.iptr3 = &DlogCh3; dlog.iptr4 = &DlogCh4; dlog.trig_value = 0x01; dlog.size = 0x
16、400; dlog.prescalar = 1; dlog.init(&dlog);/ Initialize ADC module adc1.ChSelect = 0x7777;/6543; / for DMC1500 and eZdsp2812/eZdsp2808 boardsadc1.init(&adc1);/ Initialize enable drive module / drv1.init(&drv1);/ Initialize the SPEED_PR module (150 MHz, N = 1 event period/rev) speed1.Input
17、Select = 0; speed1.BaseRpm = 120*(BASE_FREQ/P); speed1.SpeedScaler = (Uint32)(ISR_FREQUENCY/(1*BASE_FREQ*0.001);/ Initialize RMPCNTL module rc1.RampDelayMax = 20; rc1.RampLowLimit = _IQ(0); rc1.RampHighLimit = _IQ(1);/ Initialize Hall module hall1.DebounceAmount = 5; hall1.Revolutions = -10; hall1.i
18、nit(&hall1);/ Initialize RMP2 modulermp2.Out = (int32)DFuncDesired;rmp2.Ramp2Delay = 0x00000050; rmp2.Ramp2Max = 0x00007FFF; rmp2.Ramp2Min = 0x0000000F;EINT; / Enable Global interrupt INTMERTM;/ Enable Global realtime interrupt DBGM/*CTRGR=0x80;/ 初始化ICETEK-CTRCTRGR=0x0;CTRGR=0x80;CTRLR=0;/ 關(guān)閉東西方
19、向的交通燈CTRLR=0x40;/ 關(guān)閉南北方向的交通燈CTRLR=0xc1;uPort8000=CTRLCDCR;/ 清鍵盤緩沖區(qū)TurnOnLCD();/ 打開顯示LCDCLS();/ 清除顯示內(nèi)存for ( nCount=0;nCount<8;nCount+ )ledbufnCount=0x0ff;/ 顯示為空白ledxnCount=(nCount<<4);/ 生成顯示列控制字control=0;nSpeed=0;direction=0;DFuncDesired=0;h=0;RefreshLEDArray();nCount=nCursorCount=0;CTRLCDCM
20、DR=LCDCMDPAGE;/ 設(shè)置操作頁=0Delay(LCDDELAY);CTRLCDCR=0;Delay(LCDDELAY);CTRLCDCMDR=LCDCMDVERADDRESS;/ 起始列=0Delay(LCDDELAY);CTRLCDCR=0;Delay(LCDDELAY);cKey=0;cOldKey=0;/*for (;)nScanCode=CTRLCDCMDR;nScanCode&=0x0ff;uPort8000=CTRLCDCR;if ( nScanCode!=0 ) cKey=nScanCode;/*在此編程*/if(cKey!=cOldKey)/readKey=
21、ConvertScanToChar(nScanCode);switch ( cKey )case 1:direction=1; break;case 2:direction=2;break;case 3:direction=0; break;CTRLCDCMDR=LCDCMDPAGE;/ 設(shè)置操作頁=0Delay(LCDDELAY);CTRLCDCR=0;Delay(LCDDELAY);CTRLCDCMDR=LCDCMDVERADDRESS;/ 起始列=0Delay(LCDDELAY);CTRLCDCR=0;Delay(LCDDELAY);if(direction!=0)tempSpeed=l
22、nADCValues;elsetempSpeed=0;sx0=tempSpeed/1000%10;sx1=tempSpeed/100%10;sx2=tempSpeed/10%10;sx3=tempSpeed%10;for (i=0;i<8;i+ )CTRLCDLCR=ledkeysx0i;Delay(LCDDELAY);CTRLCDCR=0;Delay(LCDDELAY);for (i=0;i<8;i+ )CTRLCDLCR=ledkeysx1i;Delay(LCDDELAY);CTRLCDCR=0;Delay(LCDDELAY);for (i=0;i<8;i+ )CTRLC
23、DLCR=ledkeysx2i;Delay(LCDDELAY);CTRLCDCR=0;Delay(LCDDELAY);for (i=0;i<8;i+ )CTRLCDLCR=ledkeysx3i;Delay(LCDDELAY);CTRLCDCR=0;Delay(LCDDELAY);CTRLCDCMDR=LCDCMDPAGE+1;/ 設(shè)置操作頁=0 顯示電機轉(zhuǎn)的方向Delay(LCDDELAY);CTRLCDCR=0;Delay(LCDDELAY);CTRLCDCMDR=LCDCMDVERADDRESS;/ 起始列=0Delay(LCDDELAY);CTRLCDCR=0;Delay(LCDD
24、ELAY);for (i=0;i<8;i+ )CTRLCDLCR=ledkeydirectioni;Delay(LCDDELAY);CTRLCDCR=0;Delay(LCDDELAY); 2.定時中斷interrupt void MainISR(void)#if (BUILDLEVEL=LEVEL0) rmp2.DesiredInput = (int32)DFuncDesired; rmp2.calc(&rmp2);hall1.read(&hall1);hallcap=hall1.HallGpio;i=0; pwm1.CmtnPointer =nNowStatus;/0-
25、5 pwm1.DutyFunc = (int16)rmp2.Out; pwm1.update(&pwm1);#endif / (BUILDLEVEL=LEVEL0)/*#if (BUILDLEVEL=LEVEL1)#endif / (BUILDLEVEL=LEVEL1)/*#if (BUILDLEVEL=LEVEL2) adc1.read(&adc1); lnADCValues=adc1.Ch1Out; lnADCValues+=adc1.Ch2Out; lnADCValues+=adc1.Ch3Out; lnADCValues+=adc1.Ch4Out; lnADCValue
26、s/=4; SampleTablearray_index+= lnADCValues;if(array_index=1024) array_index=0; lnADCValues=(lnADCValues-2150)*10; if ( lnADCValues<100 )lnADCValues=0;hall1.HallMapPointer = (int16)mod1.Counter; hall1.read(&hall1); mod1.TrigInput =(int32)hall1.CmtnTrigHall; mod1.Counter = (int32)hall1.HallMapP
27、ointer; mod1.calc(&mod1); rmp2.DesiredInput = (int32)DFuncDesired; rmp2.calc(&rmp2); nISRWork1=(int16)hall1.HallGpio; bISRWork=( nISRWork1>0 && nISRWork1<7 )?(1):(0); if ( bISRWork ) if(direction=1) nNowStatus=zhengzhuannISRWork1-1; else if(direction=2) nNowStatus=fanzhuannISRW
28、ork1-1; if ( bISRWork ) pwm1.CmtnPointer = nNowStatus; if(direction=0) pwm1.DutyFunc = 0; else pwm1.DutyFunc = lnADCValues+600; pwm1.update(&pwm1); nISRWork1=(int16)rmp2.Out;#endif / (BUILDLEVEL=LEVEL2)/*VirtualTimer+;VirtualTimer &= 0x00007FFF; dlog.update(&dlog);mmexit:/*#if (DSP_TARGE
29、T=F28335)/ Acknowledge interrupt to recieve more interrupts from PIE group 1PieCtrlRegs.PIEACK.all = PIEACK_GROUP1;#endif/*#if (DSP_TARGET=F2812)EvaRegs.EVAIMRB.bit.T2PINT = 1; EvaRegs.EVAIFRB.all = BIT0;#endif/*六、實驗總結(jié)1. 在本次實驗中我們實現(xiàn)了基本功能和提高功能的所有要求, 實現(xiàn)了滿足了用CCS圖形顯示AD變換結(jié)果曲線,利用電位器對直流無刷電機進行轉(zhuǎn)速調(diào)節(jié),用鍵盤控制電機的正反轉(zhuǎn)和停轉(zhuǎn),并利用液晶屏
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 投資合作經(jīng)營幼兒園合同書
- 提前預定租約協(xié)議
- 入伍誓言獻身國防為民族復興努力
- 燈飾安裝工程勞務(wù)分包
- 債務(wù)重組協(xié)議書格式要求
- 未寫英語作業(yè)的誠懇保證書
- 科技服務(wù)合同范本
- 供應(yīng)商入圍招標文件的制作技巧
- 招標文件制作軟件使用解析
- 批發(fā)市場肉品采購合約
- GB/T 10560-2017礦用焊接圓環(huán)鏈用鋼
- GB/T 10325-2012定形耐火制品驗收抽樣檢驗規(guī)則
- FZ/T 91019-1998染整機械導布輥制造工藝規(guī)范
- FZ/T 52025-2012再生有色滌綸短纖維
- SHSG0522003 石油化工裝置工藝設(shè)計包(成套技術(shù))內(nèi)容規(guī)定
- FMEA-培訓教材-汽車fmea培訓課件
- 制造部年終總結(jié)報告課件
- 粵科版高中通用技術(shù)選修1:電子控制技術(shù)全套課件
- 知識產(chǎn)權(quán)法(英文) Intellectual Property Right Law課件
- 熱力管道焊接技術(shù)交底記錄大全
- 接地裝置安裝試驗記錄
評論
0/150
提交評論