艾 紅
(北京信息科技大學(xué),北京 100192)
異步電機(jī)的物理模型是一個(gè)高階、非線(xiàn)性、強(qiáng)耦合的多變量系統(tǒng),需要用一組非線(xiàn)性方程組來(lái)描述。相比之下,直流電機(jī)的數(shù)學(xué)模型較為簡(jiǎn)單,從物理模型上看,直流電機(jī)分為空間相互垂直的勵(lì)磁繞組和電樞繞組,且兩者各自獨(dú)立,互不影響,通過(guò)控制兩種繞組中的電流就可以分別控制電機(jī)的氣隙磁通和電磁轉(zhuǎn)矩,獲得很好的控制效果。矢量控制的核心思想是模型變換,通過(guò)一系列坐標(biāo)變換,將原來(lái)非線(xiàn)性、強(qiáng)耦合、多變量的異步電機(jī)模型等效得到直流電機(jī)模型,通過(guò)控制等效的勵(lì)磁電流和轉(zhuǎn)矩電流,用直流電機(jī)控制的方法對(duì)異步電機(jī)進(jìn)行調(diào)速。數(shù)字信號(hào)處理器DSP集中了電動(dòng)機(jī)控制所必須的可增加死區(qū)和靈活多變的多路PWM信號(hào)發(fā)生器,具有高速高精度ADC以及用于電機(jī)速度和位置反饋的編碼器接口等電路,能夠?qū)崿F(xiàn)矢量控制這樣復(fù)雜的控制算法對(duì)異步電機(jī)的控制[1-2]。
異步電機(jī)變頻調(diào)速系統(tǒng)設(shè)計(jì)分為多個(gè)電路板設(shè)計(jì),其中包括電源板、驅(qū)動(dòng)板和主控板?;赥MS320F2812 DSP設(shè)計(jì)主控板。選用DSP和IPM等高性能器件,設(shè)計(jì)包括功率驅(qū)動(dòng)電路和控制電路在內(nèi)的整個(gè)硬件系統(tǒng)。實(shí)現(xiàn)功能有電機(jī)運(yùn)行狀態(tài)顯示,獲取速度、轉(zhuǎn)速信息,通過(guò)A/D檢測(cè)電壓電流,完成控制算法的計(jì)算等關(guān)鍵問(wèn)題。主控板由控制器模塊、PWM模塊、人機(jī)界面模塊、信號(hào)處理模塊組成;驅(qū)動(dòng)板由整流模塊、逆變模塊、信號(hào)采集模塊組成;電源板為驅(qū)動(dòng)板和主控板提供電源。采樣電路包括電流采樣和電壓采樣。采用電流霍爾元件分別對(duì)電機(jī)電流和母線(xiàn)側(cè)電壓進(jìn)行采樣,TMS320F2812芯片片內(nèi)集成了可以和光電編碼盤(pán)接口的正交編碼器脈沖QEP電路。在變頻調(diào)速系統(tǒng)中,為了完成速度閉環(huán),設(shè)計(jì)了具有隔離功能的光電編碼器接口電路。利用光電編碼器進(jìn)行轉(zhuǎn)速采樣。異步電機(jī)變頻調(diào)速系統(tǒng)設(shè)計(jì)框圖如圖1所示。
圖1 異步電機(jī)變頻調(diào)速系統(tǒng)設(shè)計(jì)框圖
考慮到設(shè)計(jì)中需要用到8路電源,選擇設(shè)計(jì)一個(gè)開(kāi)關(guān)電源。設(shè)計(jì)電源為主控板提供+24 V,+15 V,-15 V和+5 V共4路電源,為驅(qū)動(dòng)板提供4路+15 V電源。電源電路設(shè)計(jì)框圖如圖2所示。
圖2電源電路設(shè)計(jì)框圖
驅(qū)動(dòng)電路的設(shè)計(jì)思路是實(shí)現(xiàn)交直交變頻,輸出可控三相電驅(qū)動(dòng)電機(jī),如圖3所示。
圖3 驅(qū)動(dòng)板設(shè)計(jì)框圖
電機(jī)采用Y型接法,需要測(cè)量?jī)陕冯娏骺梢愿鶕?jù)ia+ib+ic=0,得到另外一路電流。檢測(cè)電路包括電流檢測(cè)和電壓檢測(cè)。其中電流檢測(cè)包括檢測(cè)直流母線(xiàn)電流、檢測(cè)逆變側(cè)輸出的電流;電壓檢測(cè)就只需要檢測(cè)整流側(cè)直流電壓。由于使用的傳感器輸出的都是電流,那么就需要將它轉(zhuǎn)換為電壓再輸入到A/D,經(jīng)過(guò)A/D采樣得到采集結(jié)果。對(duì)直流母線(xiàn)電壓、直流母線(xiàn)電流和兩路交流輸出采樣。圖4中TLV2254是低功耗運(yùn)算放大器,網(wǎng)絡(luò)標(biāo)號(hào)C1和C2的輸入經(jīng)過(guò)TLV2254放大,輸出端送至DSP的引腳ADCINA2和ADCINA3實(shí)現(xiàn)A/D采樣[3-4]。
圖4 A/D輸入信號(hào)放大電路
測(cè)速原理是將旋轉(zhuǎn)編碼器與電動(dòng)機(jī)同軸相連,當(dāng)電動(dòng)機(jī)轉(zhuǎn)動(dòng)時(shí),帶動(dòng)編碼器旋轉(zhuǎn)。增量式編碼器在碼盤(pán)上均勻地刻制一定數(shù)量的光柵,通過(guò)記錄編碼器在一定時(shí)間間隔內(nèi)發(fā)出的脈沖數(shù),可以推算出這段時(shí)間的轉(zhuǎn)速。從編碼器采樣的信號(hào)A1,B1,C1經(jīng)過(guò)光耦芯片TLP113得到A2,B2,Z2,再經(jīng)過(guò)芯片SN74HC04提高帶負(fù)載能力,最終得到3路捕獲信號(hào)CAP1~CAP3交由DSP處理。
為了整個(gè)設(shè)計(jì)電路的安全,需要設(shè)計(jì)相關(guān)邏輯保護(hù)電路,選用可編程邏輯器件CPLD進(jìn)行整個(gè)邏輯控制。CPLD中的程序邏輯如圖5所示。
圖5 CPLD模塊的邏輯圖
由IPM模塊輸出端檢測(cè)三相電流iA,iB,將三相到兩相進(jìn)行Clarke變換得到兩相靜止電流iα,iβ。由磁鏈觀(guān)測(cè)器計(jì)算出變換角度θ,結(jié)合變換角度θ,將兩相靜止電流進(jìn)行Park變換得到兩相旋轉(zhuǎn)電流id,iq,得到的電流值作為反饋值,反饋至電流PID輸入口,結(jié)合測(cè)速環(huán)節(jié)反饋回來(lái)的轉(zhuǎn)速信息得到兩相旋轉(zhuǎn)電壓Ud,Uq。經(jīng)由逆Park變換,計(jì)算得到兩相靜止電壓值Uα,Uβ,再由電壓空間矢量SVPWM計(jì)算,計(jì)算出PWM一定占空比的跳變時(shí)間,更新事件管理器中各個(gè)比較寄存器的數(shù)值,產(chǎn)生6路PWM波,接入到逆變環(huán)節(jié),最終得到理想頻率的三相交流電作用于異步電機(jī)控制電機(jī)速度的變化。這些坐標(biāo)變換是矢量控制系統(tǒng)模型變換的核心。矢量控制系統(tǒng)框圖如圖6所示。
圖6 矢量控制系統(tǒng)框圖
矢量控制程序主要由ADC輸入模塊、Clarke變換模塊、Park變換模塊、逆Park變換模塊、磁鏈角度計(jì)算模塊、PID模塊、捕獲模塊、測(cè)速模塊、斜坡模塊以及空間矢量計(jì)算模塊等組成。在定時(shí)器下溢中斷中實(shí)現(xiàn)矢量控制算法,流程圖如圖7所示。
圖7 矢量控制算法流程圖
由給定轉(zhuǎn)速與反饋轉(zhuǎn)速計(jì)算得到轉(zhuǎn)速PID輸出。結(jié)合兩相旋轉(zhuǎn)電流和反饋速度可以計(jì)算得到磁鏈角度,查表得到三角函數(shù)值,用于Park和逆Park變換中。由ADC通道輸入兩相電流值,計(jì)算得到第三相電流值再通過(guò)Clarke變換和Park變換得到兩相旋轉(zhuǎn)電流。結(jié)合速度PID輸出的轉(zhuǎn)矩電流和給定勵(lì)磁電流分別進(jìn)行電流PID控制,PID輸出結(jié)果為兩相旋轉(zhuǎn)電壓,通過(guò)逆Park變換得到兩相靜止電壓。之后進(jìn)入空間矢量計(jì)算環(huán)節(jié)。判斷矢量所在扇區(qū),計(jì)算PWM波形跳變時(shí)間的中間變量X,Y,Z,最終得到跳變時(shí)間Ta,Tb,Tc,經(jīng)過(guò)處理賦值給比較寄存器,事件管理器中定時(shí)計(jì)數(shù)器通過(guò)與比較寄存器比較產(chǎn)生PWM波形[5-6]。
捕獲模塊對(duì)電機(jī)旋轉(zhuǎn)信號(hào)進(jìn)行捕獲,得到時(shí)間戳信號(hào),用于計(jì)算電機(jī)轉(zhuǎn)速。程序初始化時(shí)設(shè)置捕獲控制寄存器CAPCONA的值為1010 0000 0101 0000B ,使能捕獲單元1和2,并檢測(cè)上升沿。設(shè)置定時(shí)器2控制寄存器T2CON的值為1001 0111 0100 0000B ,表示設(shè)置定時(shí)器為連續(xù)遞增計(jì)數(shù)模式,使用內(nèi)部時(shí)鐘的128分頻作為時(shí)間基準(zhǔn),使能定時(shí)器。定時(shí)器周期值設(shè)置為0x7FFF。設(shè)置GPIOA8,GPIOA9,GPIOA10引腳為外設(shè)功能,作為捕獲引腳使用。主要程序如下:
void F281X_EV1_CAP_Init(CAPTURE *p)
{
EvaRegs.CAPCONA.all = CAP_INIT_STATE; //初始化捕獲單元
EvaRegs.T2CON.all = TIMER_INIT_STATE; //初始化定時(shí)器單元
EvaRegs.T2PR = 0x7FFF; //設(shè)置定時(shí)器2周期值
EALLOW; //解除寄存器保護(hù)
GpioMuxRegs.GPAMUX.all |= 0x0700;
//設(shè)置GPIOA8~ GPIOA10引腳為外設(shè)功能
EDIS; //使能寄存器保護(hù)
}
捕獲模塊讀取程序中,判斷捕獲狀態(tài)寄存器的值,如果不為零,讀取信息并放入TimeStamp變量中,返回值為0,結(jié)束捕獲。
捕獲模塊讀取程序如下:
Uint16 F281X_EV1_CAP_Read(CAPTURE *p)
{
if((EvaRegs.CAPFIFOA.all&0x0100) != 0)
//檢查捕獲狀態(tài)寄存器的值
{
p->TimeStamp = EvaRegs.CAP1FIFO;
//獲取捕獲單元堆棧中的數(shù)值
return(0); //返回值為0,結(jié)束捕獲
}
else
{
return(1); //返回值為1
}
}
經(jīng)由捕獲模塊得到的時(shí)間戳信號(hào),要經(jīng)過(guò)速度計(jì)算模塊,轉(zhuǎn)換得到轉(zhuǎn)速信號(hào)。速度計(jì)算模塊如圖8所示。
圖8 速度計(jì)算模塊示意圖
速度計(jì)算模塊程序流程圖如圖9所示。
速度計(jì)算模塊主要思路是當(dāng)輸入選擇等于0時(shí),開(kāi)始改變時(shí)間戳,時(shí)間戳新老更替,NewTimeStamp是捕獲事件的新時(shí)間戳,OldTimeStamp是捕獲事件的舊時(shí)間戳。將當(dāng)前時(shí)間戳TimeStamp賦值給新時(shí)間戳,新時(shí)間戳-舊時(shí)間戳得到周期值。為了確保周期值為有效正值,做取正處理,當(dāng)EventPeriod <0時(shí),EventPeriod = EventPeriod +32 767 。再由速度定標(biāo)除以周期值,得到速度值Speed=SpeedScaler/EventPeriod。轉(zhuǎn)速SpeedRpm的實(shí)際數(shù)值可以由速度轉(zhuǎn)換基值BaseRpm乘以速度值Speed得到即轉(zhuǎn)速SpeedRpm=BaseRpm×Speed 。將轉(zhuǎn)速SpeedRpm值除以電機(jī)額定轉(zhuǎn)速將會(huì)得到實(shí)驗(yàn)曲線(xiàn)中的速度反饋值。
圖9 速度計(jì)算模塊流程圖
IQmath方法是一種采用定點(diǎn)運(yùn)算但具有浮點(diǎn)數(shù)據(jù)處理特性的計(jì)算方法??梢杂枚c(diǎn)運(yùn)算實(shí)現(xiàn)浮點(diǎn)運(yùn)算。IQ格式數(shù)表示法是當(dāng)小數(shù)點(diǎn)位于第0位的右側(cè)時(shí),定義為Q0。當(dāng)小數(shù)點(diǎn)位于第15位的右側(cè)時(shí),定義為Q15。例如Q10格式的小數(shù)點(diǎn)定標(biāo)在111 111.111 111 111 1,它的最低位變化一個(gè)單位表示精度為1/210=0.000 976 6。
6.1.1 調(diào)用IQmath函數(shù)的方法
(1)IQmathLib.h加入到頭文件,定義全局Q值 GLOBAL_Q。
#ifndef GLOBAL_Q
#define GLOBAL_Q15
#endif
(2)在項(xiàng)目的庫(kù)文件匯總增加IQmath的庫(kù)文件IQmath.lib;
(3)在CMD文件中,將"IQmath"輸出段正確放置在程序存儲(chǔ)區(qū)中;
6.1.2 IQmath函數(shù)說(shuō)明
全局GLOBAL_Q函數(shù)的輸入和輸出都是GLOBAL_Q格式的,在GLOBAL_Q值確定后,是一個(gè)確切的值,例如:
_IQsin(A) //GLOBAL_Q格式是數(shù)A的sin函數(shù)值
_IQcos(A) //GLOBAL_Q格式是數(shù)A的cos函數(shù)值
_IQmpy(A,B) //GLOBAL_Q格式是A和B兩數(shù)相乘,得到GLOBAL_Q格式的積
對(duì)產(chǎn)生PWM波形的比較寄存器賦值,用下面3條語(yǔ)句將Ta,Tb,Tc分別放入比較寄存器調(diào)整參數(shù)中去。
pwm1.Mfunc_c1 = (int)_IQtoIQ15(svgen_dq1.Ta);
//將Q值為GOLBAL_Q的IQ格式數(shù)svgen_dq1.Ta轉(zhuǎn)化為Q值為15的IQ格式數(shù)賦值給pwm1.Mfunc_c1。
pwm1.Mfunc_c2 = (int)_IQtoIQ15(svgen_dq1.Tb);
pwm1.Mfunc_c3 = (int)_IQtoIQ15(svgen_dq1.Tc);
定義一系列初始函數(shù)變量如下:
int m_period;
long tmp;
tmp = (long)p->n_period×(long)p->Mfunc_p;
m_period = (int)(tmp>>16) + (int)(p->n_period>>1);
EvaRegs.T1PR = m_period;
n_period為周期,Mfunc_p是周期調(diào)整參數(shù)(Q15格式),Mfunc_c1為比較器調(diào)整參數(shù)(Q15格式),m_period為新周期。周期值n_period 乘以周期調(diào)整參數(shù)Mfunc_p得到新周期。tmp = (long)p->n_period*(long)p->Mfunc_p; 即Q15 = Q0*Q15,但Mfunc_p的范圍是-1~1(Q15格式)。假設(shè)周期值1 000,則tmp的范圍是-1 000~1 000,為保證新周期為正整數(shù),將tmp除以2,范圍變成-500~500,再加上半個(gè)周期值500,得到新周期的范圍為正整數(shù)0~1 000。m_period = (int)(tmp>>16) + (int)(p->n_period>>1); 這條語(yǔ)句功能是Q0 = (Q15->Q0)/2 + (Q0/2),即tmp首先除于2,范圍變?yōu)?500~500,然后再偏移500(+ n_period >>1),此時(shí)范圍是0~1000,實(shí)現(xiàn)了上述轉(zhuǎn)換。
比較寄存器調(diào)整參數(shù)Mfunc_c1,Mfunc_c2和Mfunc_c3的范圍是-1~1,在得到比較寄存器的新值時(shí)做取正整數(shù)處理。
語(yǔ)句EvaRegs.CMPR1 = (int16)(Tmp>>16) + (int16)(MPeriod>>1); 的含義是 Q0 = (Q15->Q0)/2 + (Q0/2)。將Tmp值除以2,實(shí)現(xiàn)占空比由(-1,1)到(-0.5,0,5),然后右移15位也就是取整,將該數(shù)從Q15格式轉(zhuǎn)換成Q0格式,再加上0.5(對(duì)應(yīng)MPeriod>>1)的偏移,把占空比還原到(0,1),此時(shí)的結(jié)果就是比較寄存器的值。
矢量控制系統(tǒng)需要逐步構(gòu)建,程序調(diào)試分為5個(gè)級(jí)別進(jìn)行,分別是1級(jí)~5級(jí)。由簡(jiǎn)到繁,逐漸完成整個(gè)矢量控制程序。1級(jí)調(diào)試主要是斜坡變換模塊,磁鏈近似模塊、逆Park變換模塊、空間矢量計(jì)算模塊。對(duì)輸入信號(hào)進(jìn)行斜坡處理,進(jìn)行磁鏈近似計(jì)算,結(jié)合給定條件做逆Park變換,進(jìn)行空間矢量計(jì)算之后更新PWM,使能PWM輸出。2級(jí)調(diào)試是在1級(jí)的基礎(chǔ)上,加入ADC采樣模塊,采集兩相電流值,對(duì)采樣信號(hào)做Clarke變換和Park變換得到兩相旋轉(zhuǎn)電流,并不直接應(yīng)用,結(jié)合給定條件做逆Park變換,做同樣的PWM處理。最后還加入了速度計(jì)算模塊為下面的變化做準(zhǔn)備。1級(jí)和2級(jí)都是開(kāi)環(huán)控制系統(tǒng)。3級(jí)調(diào)試相對(duì)于2級(jí)又加入了電流PID模塊,對(duì)Park變換后得到的兩相旋轉(zhuǎn)電流分別做轉(zhuǎn)矩電流PID和勵(lì)磁電流PID控制計(jì)算,對(duì)2路PID輸出做逆Park變換,得到兩相靜止電壓信號(hào),用電壓信號(hào)進(jìn)行空間矢量計(jì)算得到跳變時(shí)間,更新PWM并使能PWM。4級(jí)調(diào)試是在3級(jí)的基礎(chǔ)上,增加了磁鏈角度計(jì)算模塊,為替代磁鏈近似模塊做準(zhǔn)備。3級(jí)和4級(jí)都是電流閉環(huán)控制系統(tǒng)。5級(jí)調(diào)試主要包括ADC采樣模塊、Clarke變換模塊、Park變換模塊、速度PID模塊、轉(zhuǎn)矩電流PID模塊、勵(lì)磁電流PID模塊、逆Park變換模塊、空間矢量計(jì)算模塊、速度計(jì)算模塊、磁鏈計(jì)算模塊,最后使能PWM。從1級(jí)到4級(jí)調(diào)試是在不斷地添加模塊,5級(jí)調(diào)試是應(yīng)用速度PID模塊取代斜坡模塊,對(duì)給定速度與反饋速度之間進(jìn)行PID控制。用磁鏈計(jì)算模塊取代磁鏈近似模塊,得到更好的磁鏈角度計(jì)算精度。5級(jí)調(diào)試是速度和電流雙閉環(huán)控制系統(tǒng),是實(shí)現(xiàn)矢量控制算法的完整的矢量控制程序。
經(jīng)過(guò)DSP程序運(yùn)行截取的第1扇區(qū)PWM輸出波形記錄圖,如圖10所示。
圖10 第1扇區(qū)三相波形圖(截圖)
當(dāng)給定值為0.5時(shí),電機(jī)速度控制實(shí)驗(yàn)結(jié)果如圖11所示。圖11中電機(jī)額定轉(zhuǎn)速為2 800 r/min,
圖11 給定值為0.5的速度測(cè)量曲線(xiàn)圖
速度給定值和反饋值都是轉(zhuǎn)速與額定轉(zhuǎn)速的比值,電機(jī)轉(zhuǎn)速最終穩(wěn)定在1 405 r/min。
交流變頻調(diào)速技術(shù)是強(qiáng)弱電混合、機(jī)電一體化的綜合技術(shù),既要處理巨大電能的轉(zhuǎn)換如整流和逆變,又要處理信息的收集、變換和傳輸,因此分成功率和控制2大部分。功率要解決與高壓大電流有關(guān)的技術(shù)問(wèn)題和新型電力電子器件的應(yīng)用技術(shù)問(wèn)題,控制要解決基于現(xiàn)代控制理論的控制策略和智能控制策略的軟硬件開(kāi)發(fā)問(wèn)題。以DSP為核心設(shè)計(jì)控制系統(tǒng)的變頻器,可以檢測(cè)電機(jī)的參數(shù),通過(guò)檢測(cè)電機(jī)的電壓和電流,對(duì)電機(jī)的狀態(tài)了如指掌。采用矢量控制實(shí)現(xiàn)了對(duì)異步電機(jī)的變頻調(diào)速功能[7]。
[1] 廖華平,程小華.基于DSP的SVPWM矢量控制變頻系統(tǒng)研究[J].微電機(jī),2006,39(9):70-72.
[2] 黃少瑞,郝潤(rùn)科,朱軍,等.基于DSP的異步電機(jī)SVPWM控制技術(shù)實(shí)現(xiàn)[J].電氣自動(dòng)化,2010,32(5):20-23.
[3] 汪浩洋,邱瑞昌,趙曉紅.基于DSP的異步電機(jī)無(wú)速度傳感器矢量控制[J].電力電子技術(shù),2010,44(4):51-53.
[4] 王春民,孫淑琴,安海忠等.基于DSP永磁同步電動(dòng)機(jī)矢量控制系統(tǒng)的設(shè)計(jì)[J].吉林大學(xué)學(xué)報(bào)(信息科學(xué)版),2008,26(4):343-346.
[5] 張家龍.基于DSP的模糊自適應(yīng)異步電機(jī)矢量控制的研究[J].采礦技術(shù),2013,13(4):87-89.
[6] KASAL G K,SINGH B.DSP-based voltage controller for an isolated asynchronous generator feeding induction motor loads[J].Electric Power Components and Systems,2009,37( 8):914-935.
[7] MONTANARIA M,PERESADAB S,TILLA A.A speed-sensorless indirect field-oriented control for induction motors based on high gain speed estimation[J].Automatica,2006(42):1637-1650.