![電機(jī)的DSP控制課程設(shè)計(jì)報(bào)告_第1頁](http://file3.renrendoc.com/fileroot_temp3/2022-1/7/344f6b6a-6047-4aba-9225-587135ecdd83/344f6b6a-6047-4aba-9225-587135ecdd831.gif)
![電機(jī)的DSP控制課程設(shè)計(jì)報(bào)告_第2頁](http://file3.renrendoc.com/fileroot_temp3/2022-1/7/344f6b6a-6047-4aba-9225-587135ecdd83/344f6b6a-6047-4aba-9225-587135ecdd832.gif)
![電機(jī)的DSP控制課程設(shè)計(jì)報(bào)告_第3頁](http://file3.renrendoc.com/fileroot_temp3/2022-1/7/344f6b6a-6047-4aba-9225-587135ecdd83/344f6b6a-6047-4aba-9225-587135ecdd833.gif)
![電機(jī)的DSP控制課程設(shè)計(jì)報(bào)告_第4頁](http://file3.renrendoc.com/fileroot_temp3/2022-1/7/344f6b6a-6047-4aba-9225-587135ecdd83/344f6b6a-6047-4aba-9225-587135ecdd834.gif)
![電機(jī)的DSP控制課程設(shè)計(jì)報(bào)告_第5頁](http://file3.renrendoc.com/fileroot_temp3/2022-1/7/344f6b6a-6047-4aba-9225-587135ecdd83/344f6b6a-6047-4aba-9225-587135ecdd835.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、 課程名稱:電機(jī)的DSP控制課程設(shè)計(jì)院 系: 電子信息與電氣工程學(xué)院專 業(yè): 電氣工程與自動(dòng)化班 級: 學(xué) 號: 姓 名: 上 海 交 通 大 學(xué)目錄1. 電機(jī)控制的DSP芯片32.軟件設(shè)計(jì)要求32.1學(xué)會(huì)DSP開發(fā)環(huán)境的使用,能編寫C語言程序;32.2編寫數(shù)碼管顯示程序、鍵盤掃描程序;32.3 編寫AD采樣程序;32.4編寫6路PWM正弦波程序(變頻器逆變需6路);33. 軟件實(shí)現(xiàn)33.1數(shù)碼管顯示程序、鍵盤掃描程序33.1.1程序設(shè)計(jì)思路33.1.2程序模塊43.2 AD采樣程序63.2.1程序設(shè)計(jì)思路63.2.2 程序模塊63.3 6路PWM正弦波程序73.3.1 程序設(shè)計(jì)思路73.3.
2、2 程序模塊83.3.3程序設(shè)計(jì)結(jié)果104. 課程總結(jié)141. 電機(jī)控制的DSP芯片本課程設(shè)計(jì)用的芯片為TMS320F28027;本課程設(shè)計(jì)中主要用到的一些電路模塊:顯示和鍵盤電路、BC7281、A/D采樣電路、PWM輸出電路。2.軟件設(shè)計(jì)要求2.1學(xué)會(huì)DSP開發(fā)環(huán)境的使用,能編寫C語言程序;2.2編寫數(shù)碼管顯示程序、鍵盤掃描程序; 程序運(yùn)行后,初始值為0,通過1個(gè)鍵,按一下加1,通過另一個(gè) 鍵,按1下減1;(按著不放,超過1秒,不斷加1或減1,時(shí)間 超過5秒,不斷加10,或減10)。2.3 編寫AD采樣程序; 根據(jù)輸入的電壓值,把AD的結(jié)果顯示出來,當(dāng)輸入電壓變化時(shí), 顯示值也變化。2.4編
3、寫6路PWM正弦波程序(變頻器逆變需6路); PWM的開關(guān)頻率為10KHz,其輸出的正弦波頻率為0100Hz, 根據(jù)AD的值變化,50Hz時(shí)輸出100%電壓,050Hz按V/f等于 常數(shù)輸出,死區(qū)時(shí)間取2us。頻率值顯示在數(shù)碼管上。 3. 軟件實(shí)現(xiàn)3.1數(shù)碼管顯示程序、鍵盤掃描程序3.1.1程序設(shè)計(jì)思路此程序關(guān)鍵是如何去計(jì)時(shí),最初考慮是用計(jì)時(shí)器中斷去設(shè)計(jì)程序,但此方法需要在中斷中執(zhí)行判斷按鍵是否持續(xù),以及更改和現(xiàn)實(shí)數(shù)字,中斷中操作過多,經(jīng)常出錯(cuò)。故后來改為用延時(shí)環(huán)節(jié)計(jì)時(shí),此方法的優(yōu)點(diǎn)是不需要用中斷,但計(jì)時(shí)不夠精確。3.1.2程序模塊for(;) time=0; /計(jì)時(shí)變量time初始值為0;
4、if(KEY=0) key_number=Read_7281(0x13);/讀取按鍵值 switch(key_number) case 0x00: keynumber+; if(keynumber>9999)keynumber=0; write(); delay(2); break; case 0x01: keynumber-; if(keynumber<0)keynumber=9999; write(); delay(2); break; /switch /if while(KEY=0) /如果按鍵沒有松開,則開始計(jì)時(shí); if(time<=5) /延時(shí)環(huán)節(jié),延時(shí)為1秒; f
5、or(cnt1=0;cnt1<270;cnt1+) for(cnt2=0;cnt2<10000;cnt2+) if(KEY!=0) break; if(KEY!=0)break; /如果按鍵松開,則跳出循環(huán),重新開始計(jì)時(shí); if(KEY!=0)break; time+; /如果1秒內(nèi)按鍵未松開,則計(jì)時(shí)變量time加1; cnt1=cnt2=0;if(time>=1&&time<=5) /按著不放超過1秒,則不斷加1或減1; switch(key_number) case 0x00: keynumber+; if(keynumber>9999)key
6、number=0; write(); break; case 0x01: keynumber-; If(keynumber<0)keynumber=9999; write(); break; default : break; if(time>5) /按著不放超過5秒,則不斷加10或減10; switch(key_number) case 0x00: keynumber+=10; if(keynumber>9999)keynumber=0; write(); delay(15); break; case 0x01: keynumber-=10; if(keynumber<
7、0)keynumber=9999; write(); delay(15); break; default : break; /for3.2 AD采樣程序3.2.1程序設(shè)計(jì)思路此程序相對簡單,只需要用ADC中斷獲取通道的采樣值,再將采樣值在數(shù)碼管上顯示即可。3.2.2 程序模塊/ADC中斷,獲取通道采樣值;interrupt void adc_isr(void) Voltage00 = AdcResult.ADCRESULT0;/ 模數(shù)轉(zhuǎn)換結(jié)果由 ADCINA0 通道采樣產(chǎn)生 Voltage01 = AdcResult.ADCRESULT1;/ 模數(shù)轉(zhuǎn)換結(jié)果由 ADCINA1 通道采樣產(chǎn)生 Vo
8、ltage02 = AdcResult.ADCRESULT2;/ 模數(shù)轉(zhuǎn)換結(jié)果由 ADCINA2 通道采樣產(chǎn)生 Voltage03 = AdcResult.ADCRESULT3;/ 模數(shù)轉(zhuǎn)換結(jié)果由 ADCINA3 通道采樣產(chǎn)生 Voltage04 = AdcResult.ADCRESULT4;/ 模數(shù)轉(zhuǎn)換結(jié)果由 ADCINA4 通道采樣產(chǎn)生/ 28027 缺 ADCINA5 ADCRESULT5 Voltage05 = AdcResult.ADCRESULT6;/ 模數(shù)轉(zhuǎn)換結(jié)果由 ADCINA6 通道采樣產(chǎn)生 Voltage06 = AdcResult.ADCRESULT7;/ 模數(shù)轉(zhuǎn)換結(jié)果由
9、 ADCINA7 通道采樣產(chǎn)生/ 28027 缺 ADCINB0 ADCRESULT8 Voltage07 = AdcResult.ADCRESULT9;/ 模數(shù)轉(zhuǎn)換結(jié)果由 ADCINB1 通道采樣產(chǎn)生 Voltage08 = AdcResult.ADCRESULT10;/ 模數(shù)轉(zhuǎn)換結(jié)果由 ADCINB2 通道采樣產(chǎn)生 Voltage09 = AdcResult.ADCRESULT11;/ 模數(shù)轉(zhuǎn)換結(jié)果由 ADCINB3 通道采樣產(chǎn)生 Voltage010 = AdcResult.ADCRESULT12;/ 模數(shù)轉(zhuǎn)換結(jié)果由 ADCINB4 通道采樣產(chǎn)生/ 28027 缺 ADCINB5 ADC
10、RESULT13 Voltage011 = AdcResult.ADCRESULT14;/ 模數(shù)轉(zhuǎn)換結(jié)果由 ADCINB6 通道采樣產(chǎn)生 Voltage012 = AdcResult.ADCRESULT15;/ 模數(shù)轉(zhuǎn)換結(jié)果由 ADCINB7 通道采樣產(chǎn)生 AdcRegs.ADCINTFLGCLR.bit.ADCINT1 = 1;/Clear ADCINT1 flag reinitialize for next SOC PieCtrlRegs.PIEACK.all = PIEACK_GROUP1; / Acknowledge interrupt to PIE return;/for循環(huán) for
11、(;) /計(jì)算每一位的數(shù)值,并顯示; qw = Voltage00/1000;bw = (Voltage00 - 1000*qw)/100;sw = (Voltage00 - 1000*qw - 100*bw)/10;gw = Voltage00 - 1000*qw - 100*bw - 10*sw;qw1 = Voltage01/1000;bw1 = (Voltage01 - 1000*qw1)/100;sw1 = (Voltage01 - 1000*qw1 - 100*bw1)/10;gw1 = Voltage01 - 1000*qw1 - 100*bw1 - 10*sw1; Write_
12、7281(0x15,(0x70+qw); / 向最右邊算起第8位寫0 Write_7281(0x15,(0x60+bw);/ 向最右邊算起第7位寫0 Write_7281(0x15,(0x50+sw);/ 向最右邊算起第6位寫0 Write_7281(0x15,(0x40+gw); / 向最右邊算起第5位寫0 Write_7281(0x15,(0x30+qw1); / 向最右邊算起第4位寫0 Write_7281(0x15,(0x20+bw1);/ 向最右邊算起第3位寫0 Write_7281(0x15,(0x10+sw1);/ 向最右邊算起第2位寫0 Write_7281(0x15,(0x0
13、0+gw1);/ 向最右邊算起第1位寫0delay(3); 3.3 6路PWM正弦波程序3.3.1 程序設(shè)計(jì)思路PWM開關(guān)頻率和死區(qū)的設(shè)置,可以在InitEPwm1Example(),這個(gè)函數(shù)中通過對周期寄存器賦值來控制開關(guān)頻率,死區(qū)則通過對Raising Edge Delay 和Failing Edge Delay 賦值來設(shè)置。程序要求開關(guān)頻率為10KHZ,而28027主頻為60MHZ,由于60M/3000/2=10K,故周期寄存器賦值3000;程序要求死區(qū)為2us,故只需將上升沿延遲和下降沿延遲均設(shè)定為1us即可。輸出波形為正弦波,即要求占空比按正弦變化,本組通過查表(表中數(shù)據(jù)按正弦變化)
14、,來進(jìn)行脈寬調(diào)制。對于頻率的控制,首先按50HZ為基準(zhǔn),要求每次步長為1 查表,將表中數(shù)據(jù)查完一遍,輸出的波形即為50HZ。則由于開關(guān)頻率為10KHZ,10K/50=200,所以正弦表中應(yīng)含有200個(gè)數(shù)值,且數(shù)值大小按正弦變化。當(dāng)頻率小于50HZ時(shí),按F/50這一比例系數(shù)為步長進(jìn)行查表,由于F<50,故查表較慢,即輸出波形的頻率變小。當(dāng)頻率大于50HZ時(shí),也按F/50這一比例系數(shù)為步長進(jìn)行查表,由于此時(shí)F>50,故查表較快,即輸出波形頻率變大。對與V/f為常數(shù),則可通過簡單的運(yùn)算即可實(shí)現(xiàn)。3.3.2 程序模塊/正弦表/Sin table , Max Value 4096 , Min
15、 Value 0unsigned short sin_table200=2073,2138,2202,2266,2330,2393,2456,2519,2582,2643,2705,2765,2825,2884,2942,3000,3056,3112,3166,3220,3272,3323,3372,3421,3468,3513,3558,3600,3641,3681,3719,3755,3790,3823,3854,3883,3911,3937,3961,3983,4003,4021,4037,4051,4063,4074,4082,4088,4092,4095,4095,4093,4089
16、,4083,4075,4066,4054,4040,4024,4006,3987,3965,3942,3916,3889,3860,3829,3797,3762,3726,3689,3649,3609,3566,3522,3477,3430,3382,3333,3282,3230,3177,3123,3068,3011,2954,2896,2837,2777,2717,2656,2594,2532,2469,2406,2342,2279,2215,2150,2086,2022,1957,1893,1829,1765,1702,1639,1576,1513,1452,1390,1330,1270
17、,1211,1153,1095,1039,983,929,875,823,772,723,674,627,582,537,495,454,414,376,340,305,272,241,212,184,158,134,112,92,74,58,44,32,21,13,7,3,0,0,2,6,12,20,29,41,55,71,89,108,130,153,179,206,235,266,298,333,369,406,446,486,529,573,618,665,713,762,813,865,918,972,1027,1084,1141,1199,1258,1318,1378,1439,1
18、501,1563,1626,1689,1753,1816,1880,1945,2009;/此即為正弦表,此表中數(shù)據(jù)按正弦規(guī)律變化,通過查表可以控制占空比,即控制電壓大小,通過改變查表的快慢即可控制輸出波形的頻率。/EPWM1配置/10KHz : 60M / 3000 / 2 = 10K center-aligned#define EPWM1_TIMER_TBPRD 3000 / Period register 周期寄存器賦值3000#define EPWM2_TIMER_TBPRD 3000 / Period register#define EPWM3_TIMER_TBPRD 3000 / P
19、eriod registervoid InitEPwm1Example() / Setup TBCLK EPwm1Regs.TBPRD = EPWM1_TIMER_TBPRD; / Set timer period 801 TBCLKs / 周期寄存器值為3000,60M/3000/2=10K ; 即開關(guān)頻率設(shè)置為10KHZ; EPwm1Regs.TBPHS.half.TBPHS = 0x0000; / Phase is 0 EPwm1Regs.TBCTR = 0x0000; / Clear counter EPwm1Regs.DBCTL.bit.OUT_MODE = DB_FULL_ENAB
20、LE; EPwm1Regs.DBCTL.bit.POLSEL = DB_ACTV_HIC;/Toggle EPWM1B only EPwm1Regs.DBCTL.bit.IN_MODE = DBA_ALL;/Delay on Raising and Faling EPwm1Regs.DBRED = 120;/1us deadband EPwm1Regs.DBFED = 120; /死區(qū)配置,RED和FED均設(shè)置為1us,即死區(qū)時(shí)間為2us; /for循環(huán) for(;) FreqFloat = ADCResults0/38; /頻率與通道采樣值乘正比,除以38是為了控制頻率調(diào)節(jié)范圍為0100HZ
21、; FreqInt = (unsigned int) FreqFloat; th = (FreqInt%100)/10; /將頻率輸出在數(shù)碼管上; Write_7281(0x15,(0x50+th); th = FreqInt%10; Write_7281(0x15,(0x40+th); Delay(2); asm(" NOP"); /EPWM中斷函數(shù)interrupt void epwm1_isr(void) / Update the CMPA and CMPB values / update_compare(&epwm1_info); unsigned int
22、PhaseAPosition; unsigned short i,j,k; InterruptedTimes+; PWMStep = FreqFloat/50.0; /設(shè)置查表的步長,以50HZ為基準(zhǔn); PhaseAPositionHistory += PWMStep; /按步長依次查表; if( PhaseAPositionHistory > 200) PhaseAPositionHistory -= 200; /若超過200,則循環(huán) PhaseAPosition = (unsigned int)PhaseAPositionHistory; if(FreqInt > 50) i
23、= (unsigned short) (float) sin_tablePhaseAPosition % 200 / 1.37f); j = (unsigned short) (float) sin_table(PhaseAPosition + 133) % 200 / 1.37f); k = (unsigned short) (float) sin_table(PhaseAPosition + 67 ) % 200 / 1.37f); / /頻率大于50HZ時(shí)的變換式,輸出電壓為100%幅值; else i = (unsigned short) (float) FreqInt * 2 * sin_tablePhaseAPosition % 200 / 137.0f); j = (unsigned short) (float) FreqInt * 2 * sin_table(PhaseAPosition + 133) % 200 / 137.0f); k = (unsigned short) (float) FreqInt * 2 * sin_table
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(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ǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 農(nóng)林產(chǎn)品經(jīng)濟(jì)運(yùn)行分析報(bào)告怎么寫
- 辦公桌椅合同范本
- 專家工程咨詢合同范本
- 公司家具拍賣合同范本
- 環(huán)保理念在醫(yī)院建筑設(shè)計(jì)中的體現(xiàn)與應(yīng)用
- 賣房合同范本模板
- 鋼筋供應(yīng)與安裝一體化合同
- 中國活動(dòng)鉛筆行業(yè)運(yùn)行態(tài)勢及市場發(fā)展?jié)摿︻A(yù)測報(bào)告
- 超市改造補(bǔ)貼協(xié)議書
- 刮大白合同范本
- 贏在團(tuán)隊(duì)執(zhí)行力課件
- 慢性胰腺炎課件
- 北京理工大學(xué)應(yīng)用光學(xué)課件第四章
- 陰道鏡幻燈課件
- 2022年山東司法警官職業(yè)學(xué)院單招語文試題及答案解析
- PCB行業(yè)安全生產(chǎn)常見隱患及防范措施課件
- DB32∕T 186-2015 建筑消防設(shè)施檢測技術(shù)規(guī)程
- 2022年福建泉州中考英語真題【含答案】
- 汽車座椅骨架的焊接夾具畢業(yè)設(shè)計(jì)說明書(共23頁)
- 露天礦山職業(yè)危害預(yù)先危險(xiǎn)分析表
- 淺談固定資產(chǎn)的審計(jì)
評論
0/150
提交評論