




版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
.PAGE...WORD完美格式....專業(yè)知識編輯整理..基于TMS320F2812的無刷直流電機控制以前一個項目里有一部分是使用2812控制無刷直流電機,這里分享一下軟硬件設計和程序代碼:1.無刷直流電機的結構和換相原理無刷直流電機的本體在結構上與永磁同步電動機相似,但沒有籠型繞組和其他啟動裝置。其轉(zhuǎn)子采用永磁材料制成,而定子上有多相電樞繞組,繞組相數(shù)分為兩相、三相、四相和五相,但應用最多的是三相和四相。各相繞組分別與外部的電力電子開關電路中相應的功率開關器件連接,位置傳感器的跟蹤轉(zhuǎn)子與電動機轉(zhuǎn)軸相連接。當定子繞組的某一相通電時,該相電流與轉(zhuǎn)子永久磁鋼的磁極所產(chǎn)生的磁場相互作用產(chǎn)生轉(zhuǎn)矩,驅(qū)動轉(zhuǎn)子旋轉(zhuǎn),再由位置傳感器將轉(zhuǎn)子位置變換成電信號去控制電力電子開關電路,從而使定子各相繞組按一定次序?qū)?定子相電流隨轉(zhuǎn)子位置的變化而按一定的次序換相,這就是直流無刷電動機的換流原理。由于電力電子開關電路的導通次序是與轉(zhuǎn)子轉(zhuǎn)角同步的,因而起到了機械換相器的換相作用?;赥MS320F2812的無刷直流電機控制系統(tǒng)結構圖如圖1所示。圖1中,直流電源通過開關電路相電動機定子繞組供電,位置傳感器采用了霍爾傳感器,可不斷檢測轉(zhuǎn)子當前位置,DSP控制器根據(jù)當前位置信息來判斷哪一相繞組被接通,進而控制開關管的導通與截止,實現(xiàn)電機的換相。圖1直流無刷電動機控制系統(tǒng)結構圖圖2電子換相器的工作原理圖圖2給出了一個三相無刷直流電機電子換相原理圖。圖中符號H1、H2和H3表示三個霍爾位置傳感器,它們輸出電平信號。當電機的轉(zhuǎn)子運行到x-u平面的正半周〔圖中虛線標出的區(qū)間,則H1傳感器輸出高電平。同理,當電機的轉(zhuǎn)子分別運行到y(tǒng)-v和z-w,平面的正半周〔圖中虛線標出的區(qū)間,則對應的H2和H3分別輸出高電平。由圖可見,H1、H2和H3輸出高電平的區(qū)間是互有重疊的,如果將H1、H2和H3的輸出電平組合成一個向量[H1H2H3],則可以得到6種有效組合:[001]、[010]、[011]、[100]、[110]和[101],每種組合覆蓋整個圓周的1/6〔即60°??刂破鞲鶕?jù)這六個狀態(tài)組合來決定開關電路的哪一相被接通以維持電機的運行,當狀態(tài)發(fā)生變化時,就必須進行相位的切換。對于電機的三相繞組,A、B和C,采用ANC表示直流母線電壓施加到A-C繞組之間;CNA則表示直流母線電壓施加到C-A繞組之間,其他類似。注意ANC電流從A→C,而CAN電流從C→A,作為直流電機,繞組電流相反意味著受力是相反的,會導致電機反向轉(zhuǎn)動。圖3給出了6種狀態(tài)組合下對應的通電繞組的情況,例如在狀態(tài)[001]通電繞組是ANB。如果電機正轉(zhuǎn),則下一個組合狀態(tài)為[101],故應將通電繞組切換為ANC;同理,如果電機反轉(zhuǎn),則下一個組合狀態(tài)為[101],故通電繞組應該切換為CNB,以次類推。表1給出了電機正向旋轉(zhuǎn)時,轉(zhuǎn)子位置傳感器輸出的狀態(tài)組合[H1H2H3]與下一個導通繞組之間的對應關系。表2給出了電機反轉(zhuǎn)時的情況。圖3基于TMS320F2812無刷直流電動機控制系統(tǒng)原理圖表1無刷直流電機正轉(zhuǎn)相序表當前位置下一個導通相各開關管工作狀態(tài)H1H2H3V1V2V3V4V5V6101BNC000110100BNA100100110CNA100001010CNB001001011ANB011000001ANC010010表2無刷直流電機反轉(zhuǎn)相序表當前位置下一個導通相各開關管工作狀態(tài)H1H2H3V1V2V3V4V5V6101ANB011000100CNB001001110CNA100001010BNA100100011BNC000110001ANC0100102.三相無刷直流電機的DSP控制圖3給出了本設計中采用的基于TMS320F2812A和三相全橋開關電路構成的無刷直流電機控制器的原理圖。在無刷直流電機內(nèi)部空間間隔120°分布的三個霍爾傳感器H1、H2和H3的輸出信號經(jīng)整形隔離電路后分別與TMS320F2812時間管理器EVA的三個捕獲引腳CAP1/IOPA3,CAP2/IOPA4和CAP3/IOPA5相連,當[H1H2H3]狀態(tài)組合發(fā)生變化的時候,將觸發(fā)捕獲單元的中斷,在中斷服務程序內(nèi),DSP讀取當前[H1H2H3]的狀態(tài),根據(jù)表1和表2內(nèi)列出的導通相順序?qū)θ珮螂娐愤M行控制,從而實現(xiàn)換相。例如,當[H1H2H3]被讀取的當前狀態(tài)為101時,在正轉(zhuǎn)的情況下,應該選擇下一個導通相為BNC。這就意味著在圖3中,要控制開關V4、V5導通,這樣直流母線電壓就施加到B-C繞組之間〔直流電流從B繞組流向C繞組;如果控制反轉(zhuǎn),則應該選擇下一個導通相為ANB,這需要控制V2和V3導通。圖3中三相全橋主電路采用3片IR公司的MOSFET器件TRF7317來構成,TRF7317內(nèi)部有兩個MOSFET的開關,一個NMOS和一個PMOS,其中NMOS用于構成橋臂的下管,而PMOS則用于構成橋臂的上管,由于是12V的電機控制系統(tǒng),這種配置使得驅(qū)動電路比較簡單。三相全橋電路每個橋路的上下兩個開關是不能同時導通的,否則會引起直通短路。MOSFET的開關控制通過DSP的EVA單元的輸出PWM1-PWM6來實現(xiàn),圖3中給出了PWM1和PWM2同時發(fā)出高電平脈沖導致經(jīng)過幾級邏輯轉(zhuǎn)換變成互相反相的控制脈沖V1和V2,由于V1控制NMOS,而V2控制PMOS,故兩管都會導通引起直通短路??傊?PWM1-PWM6獨立控制三相全橋的6個MOSFET,并且高電平控制導通,而低電平控制截止,為了防止直流短路,不允許出現(xiàn)同一個橋臂上下兩管的控制脈沖同時為高電平的情況。3.PWM信號實現(xiàn)電機調(diào)速的原理無刷直流電機的轉(zhuǎn)速控制是通過控制施加到三相繞組上的直流電壓的大小來實現(xiàn)的,為了實現(xiàn)轉(zhuǎn)速的變化,就需要通過三相全橋開關電路產(chǎn)生可變的直流電壓,這將通過脈寬調(diào)制原理〔PWM來實現(xiàn)。PWM信號是一系列周期固定、脈寬可變的脈沖電壓,這些脈沖信號的平均值的大小取決于其占空比,這個固定周期稱為PWM的載波周期。將PWM脈沖信號施加到三相全橋電路,其輸出電壓作用于一個慣性設備〔如一個LC濾波器或者電機等,則控制作用只取決于平均電壓的大小〔慣性設備類似于一個低通濾波器,而此平均電壓正是由PWM信號的占空比來控制的。于是,不斷修改PWM信號的脈沖寬度即可控制平均電壓的大小,進而不斷控制直流電機的轉(zhuǎn)速。在直流無刷電動機控制中,兩個功率器件〔上級和下級被串聯(lián)放在一個功率轉(zhuǎn)換支路中,為了避免擊穿失效,兩個器件的打開周期必須不能重疊,這樣就經(jīng)常需要一對非重疊的PWM輸出來正確地開關這兩個器件。在一個三極管的關斷和另一個三極管導通之間插入一段死區(qū),這段時間延遲允許一個三極管在別的三極管導通之前完全關斷。這個所需的延遲時間由功率三極管的開關特性和特定應用中的負載特性來決定的。4.軟件設計軟件采用模塊化設計,主要有以下5個模塊組成:換相及轉(zhuǎn)向控制模塊、轉(zhuǎn)速控制模塊、轉(zhuǎn)速測量模塊、鍵盤控制模塊和液晶顯示模塊。實現(xiàn)了無刷直流電機的閉環(huán)PID控制,主程序流程圖如圖4所示。圖4閉環(huán)PID控制主程序流程圖4.1換相及轉(zhuǎn)向控制相控制是通過不斷檢測無刷直流電機的轉(zhuǎn)子位置,然后按照預先安排的相序表動態(tài)控制三相全橋開關的導通及關斷,從而使電機能夠連續(xù)運行。轉(zhuǎn)向控制則通過更換相序表來實現(xiàn)。程序設計步驟如下:配置系統(tǒng)時鐘和外設時鐘,初始化中斷向量表和中斷控制寄存器。配置GPIOA的多路轉(zhuǎn)換器寄存器GPAMUX,使PWM1~PWM6作為PWM控制引腳,CAP1~CAP3作為捕獲單元輸入引腳。初始化EVA的通用定時器T1,設置PWM載波周期〔通過T1PR和初始占空比〔通過比較寄存器CMP1、CMP2、CMP3設置初始占空比為50%,設置比較控制寄存器COMCONA使能全比較操作,但暫不啟動定時器T1。配置CAP1~CAP3的捕獲中斷為上下沿跳變觸發(fā)方式。檢測CAP1~CAP3引腳的當前狀態(tài),判斷當前電機轉(zhuǎn)子的空間位置,根據(jù)轉(zhuǎn)向要求選擇合適的初始控制相序并據(jù)此配置ACTRA寄存器,然后啟動定時器T1并開放中斷。主程序進入等待狀態(tài)。創(chuàng)建捕獲中斷的中斷服務程序,在中斷服務程序中實時檢測當前電機轉(zhuǎn)子的空間位置,然后根據(jù)轉(zhuǎn)向要求和預先安排的相序表選擇合適的開關控制時序,并動態(tài)控制ACTRA寄存器,使得電機能夠連續(xù)運行。流程圖如圖5所示:圖5換相及轉(zhuǎn)向控制流程圖4.2轉(zhuǎn)速測量轉(zhuǎn)速的測量可以通過在標準的定時時間間隔內(nèi)對換相控制的次數(shù)進行統(tǒng)計來實現(xiàn)。由于所用的電機轉(zhuǎn)一圈換相6次,故設置定時器T2定時0.1s,在此定時時間內(nèi)換相次數(shù)記為N,則轉(zhuǎn)速即為100N/min。流程圖如下圖6示:圖6轉(zhuǎn)速測量程序流程圖4.3鍵盤控制與液晶顯示圖7鍵盤程序流程圖鍵盤則用于設定給定轉(zhuǎn)速。其程序流程圖如圖7所示。液晶顯示主要分為兩部分:說明文字的顯示及參數(shù)值的顯示。無論是文字還是參數(shù)值的顯示,都需要生成16進制代碼,利用字模軟件zimo221生成,取字模時選擇"縱向取模,字節(jié)倒序"。然后調(diào)用相關函數(shù)即可將其顯示出來。程序設計步驟如下所示:〔1進行初始化,清屏〔2顯示"轉(zhuǎn)速:"〔3實時顯示參數(shù)值〔轉(zhuǎn)速、占空比流程圖如下圖8所示:圖8液晶顯示流程圖5.硬件設備本設計采用的主要設備包括:〔112W無刷直流電動機FL57BLS005-12V;〔2MOTOR-E背板,該背板包括驅(qū)動無刷直流電機的三相全橋開關電路、霍爾傳感器輸出信號的整形和隔離電路以及來自TMS320F2812的6個PWM控制信號〔PWM1~PWM6的隔離和驅(qū)動電路;〔3TMS320F2812開發(fā)板;〔4LPS-305型可調(diào)線型穩(wěn)壓電源,調(diào)試過程調(diào)節(jié)此電源輸出+12V,輸出限流值1.5A,用于為無刷直流電機供電。由于在調(diào)試中會頻繁出現(xiàn)短路情況,故采用帶輸出限流保護的電源,以限制短路時過流引起MOSFET損壞的問題。6.總結本設計以TMS320F2812DSP芯片為核心,來實現(xiàn)對無刷直流電機的PID控制,可以控制電機自動加減速,自動換向,測量轉(zhuǎn)速值并實時顯示在液晶屏上。本系統(tǒng)采用CCS編程,利用PWM信號實現(xiàn)電機調(diào)速,開關主電路同一相上下橋臂PWM波形如圖9所示。圖9同一相上下橋臂PWM波形圖調(diào)試中遇到了不少問題,主要如下:〔1電機不能自行啟動,需要用手撥一下才能轉(zhuǎn)起來。解決辦法:增大初始占空比,但不能過大,否則會導致過流?!?如何實時顯示轉(zhuǎn)速值?解決辦法:將0~9十個數(shù)字的字模放入一個10維的數(shù)組,分別求出測得轉(zhuǎn)速值的各位上的數(shù)字并分別調(diào)用顯示函數(shù),將各位數(shù)字分別顯示出來,即可實現(xiàn)轉(zhuǎn)速的實時顯示?!?實時檢測到的電機轉(zhuǎn)速精度不夠,只顯示到了百位。解決辦法:這是由于T1的計時周期設為了0.1s,更改了CPU時鐘周期,同時更改了與定時器時鐘有關的寄存器以后,可顯示到個位。..附:源程序代碼#include"DSP281x_Device.h" //DSP281xHeaderfileIncludeFile#include"DSP281x_Examples.h" //DSP281xExamplesIncludeFileinterruptvoidCAPINT_ISR<void>;interruptvoidT2_ISR<void>;voidInitEv<void>;voidHallDrv<void>;Uint16 hall_status=0x0000;Uint16 hall;Uint16 direction; //電動機轉(zhuǎn)動方向指示,0為正轉(zhuǎn),1為反轉(zhuǎn)Uint16 direc; //撥碼開關1,位置在上為0,在下為1Uint32 counter=0; //換相數(shù)Uint32 speed=0; //實際速度int16 givespeed=0; //給定速度int32 Espeed=0; //速度差值Uint16 null,keycode,key;int16 Duty;Uint16 watchduty=0; //占空比float Kp=0; //PID參數(shù)float Ki=0;float Kd=0;float Last=0; //傳遞上次變量float LLast=0; //傳遞上上次變量float PidResult=0; #defineDIPS<*<<unsignedint*>0xc0001>> //定義撥碼開關寄存器地址和類型#defineCTRKEY<*<<unsignedint*>0x108001>> //定義鍵盤數(shù)據(jù)回讀寄存器地址#definePeriod0x0753 //載波周期main<>{ InitSysCtrl<>; //初始化DSP運行時鐘 InitPieCtrl<>; //初始化pie寄存器 DINT; //關總中斷 IER=0x0000; //禁止所有的中斷 IFR=0x0000; //清除所有的CPU級中斷請求標志 InitPieVectTable<>; //初始化PIE中斷向量表 InitEv<>; //初始化EVA模塊 EALLOW; PieVectTable.CAPINT1=&CAPINT_ISR; //將捕獲單元的中斷服務程序入口地址填寫到PIE向量表中 PieVectTable.CAPINT2=&CAPINT_ISR; PieVectTable.CAPINT3=&CAPINT_ISR; PieVectTable.T2PINT=&T2_ISR; //將T2的中斷服務程序入口地址填寫到PIE向量表中 EDIS; EvaRegs.EVAIFRC.all=0xFFFF; //EVA中斷標志復位 EvaRegs.EVAIFRB.all=0xFFFF; EvaRegs.EVAIMRC.all=0x0007; //使能CAP1,2,3雙沿中斷<換向>,外設級 EvaRegs.EVAIMRB.all=0x0001; //使能T2周期匹配中斷,外設級 //使能PIE中組3的第1,5,6,7個中斷 PieCtrlRegs.PIEIER3.bit.INTx5=1; //CAPINT1 PieCtrlRegs.PIEIER3.bit.INTx6=1; //CAPINT2 PieCtrlRegs.PIEIER3.bit.INTx7=1; //CAPINT3 PieCtrlRegs.PIEIER3.bit.INTx1=1; //T2PINT direc=DIPS; direction=direc&0x0001; HallDrv<>; Kp=;Ki=;Kd=; //初始化PID參數(shù) givespeed=3000; IER|=M_INT3; //使能EVA對應的CPU級中斷請求INT3 EINT; //使能全局中斷 ERTM; EvaRegs.T1CON.bit.TENABLE=1; //啟動定時器T1 EvaRegs.T2CON.bit.TENABLE=1; //啟動定時器T2 PieCtrlRegs.PIEACK.all=PIEACK_GROUP3; //允許CPU對PIE中斷請求進行響應 Lcd_Init<>; //LCD初始化 LcdClear<>; //LCD清屏 LcdWrite<>; //LCD寫入 //等待中斷 while<1> { keycode=CTRKEY; //讀鍵盤碼 null=CTRLCDCR; //清鍵碼鎖存器 key=keycode&0x00FF; switch<key> { case1:givespeed++;break; //鍵盤按鍵1按下,則給定轉(zhuǎn)速增加1r/min case2:givespeed--;break; //鍵盤按鍵2按下,則給定轉(zhuǎn)速減小1r/min case3:givespeed+=10;break; //鍵盤按鍵3按下,則給定轉(zhuǎn)速增加10r/min case4:givespeed-=10;break; //鍵盤按鍵4按下,則給定轉(zhuǎn)速減小10r/min case5:givespeed+=100;break; //鍵盤按鍵5按下,則給定轉(zhuǎn)速增加100r/min case6:givespeed-=100;break; //鍵盤按鍵6按下,則給定轉(zhuǎn)速減小100r/min case7:givespeed+=1000;break; //鍵盤按鍵7按下,則給定轉(zhuǎn)速增加1000r/min case8:givespeed-=1000;break; //鍵盤按鍵8按下,則給定轉(zhuǎn)速減小1000r/min default:break; } if<givespeed<0>{givespeed=0;} if<givespeed>=10000>{givespeed=9999;} PutValue<72,17,givespeed>; //顯示給定速度 PutValue<72,33,speed>; //顯示實際速度 watchduty=<Uint16><<1-<float>Duty/Period>*100>; PutValue<72,49,watchduty>; //顯示占空比 }}voidInitEv<void>{ EALLOW; GpioMuxRegs.GPAMUX.all=0xFFFF; //設定EVA的引腳為外設 EDIS; EvaRegs.T1CON.all=0x0804; //連續(xù)增/減計數(shù)模式,暫不啟動定時器T1的運行 EvaRegs.T1PR=0x0753; //設置T1定時器的周期寄存器值 EvaRegs.T1CNT=0x0000; //清零T1定時器的計數(shù)寄存器 EvaRegs.ACTRA.all=0x0000; //PWM1~PWM6強制低,在換向程序中再更改 EvaRegs.ACTRA.all=0x0000; //pwm1~pwm6強制低;在換向程序中需再更改// EvaRegs.DBTCONA.all=0x0170; //死區(qū)設為1個CPU時鐘周期 EvaRegs.COMCONA.all=0xA6E0; //使能全比較單元,在周期和下溢時重載 EvaRegs.CMPR1=0x0521; //初始占空比30% EvaRegs.CMPR2=0x0521; //初始占空比30% EvaRegs.CMPR3=0x0521; //初始占空比30% EvaRegs.CAPCONA.all=0x36FC; //選定時器1,使能CAP1,2,3,檢測兩個邊沿 EvaRegs.CAPFIFOA.all=0x0000; //清空FIFO EvaRegs.T2CON.all=0x1704; //連續(xù)增計數(shù)模式,暫不啟動定時器T2 EvaRegs.T2PR=0xE4E2; //每100ms中斷一次 EvaRegs.T2CNT=0x0000; } voidHallDrv<void>{ hall=GpioDataRegs.GPADAT.all; hall_status=hall&0x0700; //檢測CAP1~CAP3引腳的當前狀態(tài) if<direction==0> //正轉(zhuǎn)換向 switch<hall_status> { case0x0500:EvaRegs.ACTRA.all=0x0038;break; //PWM2/PWM3101→ANB case0x0100:EvaRegs.ACTRA.all=0x0830;break; //PWM6/PWM3001→ANC case0x0300:EvaRegs.ACTRA.all=0x0803;break; //PWM6/PWM1011→CNA case0x0200:EvaRegs.ACTRA.all=0x0083;break; //PWM4/PWM1010→CNB case0x0600:EvaRegs.ACTRA.all=0x0380;break; //PWM4/PWM5110→BNC case0x0400:EvaRegs.ACTRA.all=0x0308;break; //PWM2/PWM5100→ANC default:break; } else //反轉(zhuǎn)換向 switch<hall_status> { case0x0100:EvaRegs.ACTRA.all=0x0380;break; //PWM4/PWM5001→ANC case0x0500:EvaRegs.ACTRA.all=0x0083;break; //PWM4/PWM1101→BNC case0x0400:EvaRegs.ACTRA.all=0x0803;break; //PWM
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025至2030年中國高溫合金輥環(huán)數(shù)據(jù)監(jiān)測研究報告
- 2025至2030年中國融雪劑數(shù)據(jù)監(jiān)測研究報告
- 2025至2030年中國板銼數(shù)據(jù)監(jiān)測研究報告
- 2025至2030年中國木紋平開上懸窗數(shù)據(jù)監(jiān)測研究報告
- 2025至2030年中國開路式激光氣體分析儀數(shù)據(jù)監(jiān)測研究報告
- 2025至2030年中國孕烯醇酮數(shù)據(jù)監(jiān)測研究報告
- 2025年中國稻保樂市場調(diào)查研究報告
- 無人機電力施工方案
- 2025年中國機械抓頭組件市場調(diào)查研究報告
- 2025年中國折疊腳經(jīng)濟餐爐市場調(diào)查研究報告
- 小學美術 四年級 人教版《造型?表現(xiàn)-色彩表現(xiàn)與創(chuàng)作》“色彩”單元美術作業(yè)設計《色彩的明與暗》《色彩的漸變》《色彩的情感》
- 2015年新版《中華人民共和國職業(yè)分類大典》
- 中國心臟重癥鎮(zhèn)靜鎮(zhèn)痛專家共識專家講座
- 企業(yè)生產(chǎn)制造部門預算編制模板
- 新概念英語第二冊單詞默寫表
- 教育心理學智慧樹知到答案章節(jié)測試2023年浙江師范大學
- 川教版七年級生命生態(tài)安全下冊第1課《森林草原火災的危害》教案
- 食品檢驗檢測機構能力建設計劃方案
- 護理人員心理健康
- 安全技術說明書粗苯
- 共板法蘭風管制作安裝
評論
0/150
提交評論