|
采用空間矢量脈寬調(diào)制(SVPWM)的控制 VVVF調(diào)速系統(tǒng)的綜合 一、實(shí)驗(yàn)?zāi)康?/strong>1、理解電壓空間矢量脈寬調(diào)制(SVPWM)控制的基本原理。2、熟悉MCKV電機(jī)控制系統(tǒng)的CPU模塊、IPM模塊和機(jī)組各部分硬件模塊,并確認(rèn)工作正常。3、了解SVPWM變頻器運(yùn)行參數(shù)和特性。
二、實(shí)驗(yàn)內(nèi)容:1、熟悉CCS編程環(huán)境,并在CCS下編譯、下載、運(yùn)行DSP軟件工程。2、觀察并記錄定子磁鏈周期和頻率,并分析他們之間的關(guān)系。3、觀測并記錄啟動時(shí)電機(jī)定子電流和電機(jī)速度波形 與 ;
三、實(shí)驗(yàn)預(yù)習(xí)要求1、閱讀并掌握三相交流異步電機(jī)VVVF調(diào)速系統(tǒng)工作原理。2、了解電壓空間矢量脈寬調(diào)制(SVPWM)控制的基本原理。3、閱讀本次實(shí)驗(yàn)指導(dǎo)書和實(shí)驗(yàn)程序,寫好實(shí)驗(yàn)預(yù)習(xí)文檔。4、在MATLAB/Simulinlk 環(huán)境中搭好仿真模型,結(jié)合本程序LEVEL1功能框圖,完成電流速度雙閉環(huán)系統(tǒng)交流異步電機(jī)矢量控制仿真。四、實(shí)驗(yàn)原理當(dāng)用三相平衡的正弦電壓向交流電動機(jī)供電時(shí),電動機(jī)的定子磁鏈空間矢量幅值恒定,并以恒速旋轉(zhuǎn),磁鏈?zhǔn)噶康倪\(yùn)動軌跡形成圓形的空間旋轉(zhuǎn)矢量(磁鏈圓)。SVPWM就是著眼于使形成的磁鏈軌跡跟蹤由理想三相平衡正弦波電壓源供電時(shí)所形成的基準(zhǔn)磁鏈圓,使逆變電路能向交流電動機(jī)提供可變頻電源,實(shí)現(xiàn)交流電動機(jī)的變頻調(diào)速。現(xiàn)在以實(shí)驗(yàn)系統(tǒng)中用的電壓源型逆變器為例說明SVPWM的工作原理。三相逆變器由直流電源和6個(gè)開關(guān)元件( MOSFET) 組成。圖1是電壓源型逆變器的示意圖。圖1 電壓源型逆變器示意圖 對于每個(gè)橋臂而言,它的上下開關(guān)元件不能同時(shí)打開,否則會因短路而燒毀元器件。其中A、B、C代表3 個(gè)橋臂的開關(guān)狀態(tài),當(dāng)上橋臂開關(guān)元件為開而下橋臂開關(guān)元件為關(guān)時(shí)定義其狀態(tài)為1 ,當(dāng)下橋臂開關(guān)元件為開而上橋臂開關(guān)元件為關(guān)時(shí)定義其狀態(tài)為0。這樣A 、B、C有000 、001 、010 、011 、100 、101 、110、111共 8種狀態(tài)。逆變器每種開關(guān)狀態(tài)對應(yīng)不同的電壓矢量,根據(jù)相位角不同分別命名為U0(000)、U1(100)、U2(110)、U3(010)、U4(011)、U5(001)、U6(101)、U7(111)如圖2所示。圖2 基本電壓空間矢量 其中U0(000)和U7(111)稱為零矢量,位于坐標(biāo)的原點(diǎn),其他的稱為非零矢量,它們幅值相等,相鄰的矢量之間相隔60°。如果按照一定順序選擇這六個(gè)非零矢量的電壓空間矢量進(jìn)行輸出,會形成正六邊形的定子磁鏈,距離要求的圓形磁鏈還有很大差距,只有選擇更多的非零矢量才會使磁鏈更接近圓形。SVPWM的關(guān)鍵在于用8個(gè)基本電壓空間矢量的不同時(shí)間組合來逼近所給定的參考空間電壓矢量。在圖3中對于給定的輸出電壓U,用它所在扇區(qū)的一對相鄰基本電壓 和 來等效。此外當(dāng)逆變器單獨(dú)輸出零矢量時(shí),電動機(jī)的定子磁鏈?zhǔn)噶渴遣粍拥摹8鶕?jù)這個(gè)特點(diǎn),可以在載波周期內(nèi)插入零矢量,調(diào)整角頻率,從而達(dá)到變頻目的。圖3 電壓空間的線性組合 根據(jù)正弦定理可以得到: 又有 得到 式中 為載波周期; 的幅值可以由 曲線確定; 和 的幅值相同且恒為直流母線電壓 ; 可以由輸出正弦電壓角頻率 和 的乘積確定。因此,當(dāng)已知兩相鄰的基本電壓空間矢量 和 后,就可以根據(jù)上式確定 、 、 。 五、實(shí)驗(yàn)流程圖圖1-1-1給出了實(shí)驗(yàn)程序功能框圖:
圖1-1-1 以下給出實(shí)驗(yàn)一中的控制參數(shù)及其調(diào)節(jié)范圍EnableFlag: 0、1 啟動控制位SpeedRef: -0.9~0.9 速度給定值六、實(shí)驗(yàn)設(shè)備
1、DSPCPU組合板:Techv-28335+MCKV-INF2+MCKV-INF32、DSP仿真器及usb線3、MCKV DSP電機(jī)控制器4、三相交流異步電機(jī)機(jī)組5、PC機(jī)及電源電纜
七、實(shí)驗(yàn)步驟在做該實(shí)驗(yàn)之前,請確保已經(jīng)按照系統(tǒng)測試步驟和方法進(jìn)行各步驟的運(yùn)行,該實(shí)驗(yàn)具體調(diào)試操作步驟如下:
1. 將頭文件“build.h”中的編譯指令BUILDLEVEL設(shè)為“LEVEL1”,然后用“Project--Build”命令重新編譯連接程序。在“build.h”文件中第29行:#define BUILDLEVEL LEVEL1-------修改此處。
2. 用“File--Load Program”菜單命令加載“ACI_2833X.out”文件到目標(biāo)板,此時(shí)注意觀察加載的文件“ACI_2833X.out”是否您剛才編譯鏈接生成的文件,看一下文件的生成時(shí)間就知道了,如果所有源文件都沒有修改,此時(shí)“ACI_2833X.out”的生成時(shí)間不會變化;如果想證實(shí)源文件編譯是否執(zhí)行,可以在主程序中隨便修改一點(diǎn)注釋內(nèi)容,那么編譯的時(shí)候就肯定會生成新時(shí)間的輸出文件。
3. 點(diǎn)擊“Debug--Real time Mode”選擇實(shí)時(shí)模式,此時(shí)出現(xiàn)一個(gè)對話框,選擇“是(Y)”,再點(diǎn)擊“Debug--Run” 或者點(diǎn)擊左側(cè)運(yùn)行圖標(biāo)運(yùn)行程序,此時(shí)程序在實(shí)時(shí)運(yùn)行模式下運(yùn)行。
4. 在“Watch window”窗口中左鍵點(diǎn)擊“Build1”標(biāo)簽并在空白處點(diǎn)擊右鍵,選擇連續(xù)刷新模式“Continuous Refresh” ,此時(shí)應(yīng)能觀察到“BackTicker”變量在不斷變化,說明主程序已經(jīng)運(yùn)行,
5. 在控制器面板上進(jìn)行電機(jī)選擇,選擇三相交流異步電機(jī)顯示“正確”后,在主菜單下按兩次向下鍵并確認(rèn)后進(jìn)入狀態(tài)頁面,打開主電源(按鈕:電源)。因?yàn)橹麟娐分杏?/strong>3300uf的大電容,所以需要較長的充電時(shí)間,為了避免過大的充電電流,主電路中有NTC負(fù)溫度系數(shù)的熱敏電阻,所以一定要等控制器的液晶上顯示“電源:開啟”,才能進(jìn)行下一步的操作,并且每次打開主電源距離上次關(guān)閉主電源需要有5分鐘以上的間隔時(shí)間。
6. 在“Watch window”窗口中雙擊變量“EnableFlag”右側(cè)的“Value“值并修改為1后回車,此時(shí)應(yīng)能觀察到變量“IsrTicker”也在不斷變化,說明主中斷服務(wù)程序已經(jīng)正常運(yùn)行。而此時(shí)電機(jī)應(yīng)該轉(zhuǎn)動,并穩(wěn)定在740轉(zhuǎn)/分左右的速度上,說明控制系統(tǒng)PWM輸出部分和IPM逆變部分硬件以及機(jī)組和連線都是正確的,如果電機(jī)不轉(zhuǎn),請檢查INF2電路板上的LED2指示燈是否熄滅,如果熄滅說明產(chǎn)生了功率保護(hù)中斷,可以更換DSPCPU板測試,也可更換機(jī)組測試,如果現(xiàn)象依舊則需要返修。如果電機(jī)運(yùn)轉(zhuǎn)了,但是控制器上沒有速度顯示,請檢查DSPCPU電路板下面那塊INF2電路板上的JP1撥碼開關(guān)是否撥向左邊。7. 分別右鍵點(diǎn)擊圖形顯示窗口“Channel1&2”、“Channel3&4”,選擇連續(xù)刷新模式“Continuous Refresh” ,觀察rg1.Out、Ta、Tb以及Tc的波形,如圖1-1-3和圖1-1-4所示。rg1.Out是給定磁鏈斜坡函數(shù)的輸出,它是以360度為PU基值的Q15格式數(shù)據(jù)表示的,將豎線光標(biāo)移至第一個(gè)圖形的零點(diǎn)處,注意觀察圖形窗口“Channel1&2”左下角的第一個(gè)坐標(biāo)值的第一個(gè)值是時(shí)間,單位為ms,我們可以看到給定的磁鏈周期為40ms,這樣可以計(jì)算出給定磁鏈的頻率為25Hz,這和我們設(shè)定的SpeedRef=0.5是對應(yīng)的,設(shè)定為1時(shí),對應(yīng)頻率為50Hz,周期應(yīng)為20ms。Ta、Tb、Tc表示的是三組PWM控制信號在每個(gè)調(diào)制周期中的占空比,也是Q15格式的數(shù)據(jù)。將光標(biāo)移至Channel2的第一個(gè)馬鞍波的波峰中點(diǎn),讀出時(shí)間坐標(biāo)為14.8ms,將光標(biāo)移至Channel3的第一個(gè)馬鞍波的波峰中點(diǎn),讀出時(shí)間坐標(biāo)為28.2ms,那么得出結(jié)論:Ta相位超前Tb=(28.2-14.8)/40*360=120度。如圖1-1-5和圖1-1-6所示。設(shè)定speedref為不同值,完成表1-1-1。表1-1-1:Speedref | 0.1 | 0.3 | 0.5 | -0.5 | Ta峰值時(shí)間ms |
|
|
|
| Tb峰值時(shí)間ms |
|
|
|
| Ta超前Tb相位度 |
|
|
|
| 8. 改變SpeedRef的值,觀察波形的周期值是否和設(shè)定值對應(yīng)。同時(shí)VdTesting、VqTesting的值也跟著變化,此時(shí)可以觀測圖形顯示窗口波形幅值的變化。變量VdTesting、VqTesting相當(dāng)于IPARK逆變換的輸入值,在程序中做了一個(gè)函數(shù),隨著SpeedRef的值變化而變化,所以不能修改。根據(jù)speedref的值完成表1-1-2。表1-1-2:Speedref | 0.1 | 0.3 | 0.5 | -0.5 | 給定磁鏈周期 |
|
|
|
| 給定磁鏈頻率 |
|
|
|
| 電機(jī)轉(zhuǎn)速 |
|
|
|
| 9. 分別右鍵點(diǎn)擊圖形顯示窗口“Channel1&2”、“Channel3&4”,取消連續(xù)刷新模式“Continuous Refresh”,點(diǎn)擊“Debug--Halt” ,再點(diǎn)擊“Debug--Real time Mode” ,最后點(diǎn)擊“Debug--Reset CPU” ,“Debug—Restart ”,退出實(shí)時(shí)運(yùn)行模式,并停止程序運(yùn)行。10. 如果繼續(xù)實(shí)驗(yàn),請轉(zhuǎn)實(shí)驗(yàn)二。否則請關(guān)閉控制器的功率部分主電源(按下電源鍵),然后關(guān)閉CCS軟件退出程序,關(guān)閉控制電源。 
圖1-1-3 rg1.out和Ta波形 圖1-1-4 Tb和Tc波形 
圖1-1-5 rg1.out和Ta波形 圖1-1-6 Tb和Tc波形 實(shí)驗(yàn)文檔: 1、 分析實(shí)驗(yàn)結(jié)果,并根據(jù)表1-1-1的測試結(jié)果,解釋電機(jī)速度設(shè)定參考值和電機(jī)實(shí)際運(yùn)行速度之間的差異是怎么產(chǎn)生的。 2、 閱讀實(shí)驗(yàn)程序,理解IPARK和SVPWM軟件模塊的工作原理。繪制出IPARK和SVPWM模塊的詳細(xì)軟件流程圖。 3、 讀懂LEVEL1實(shí)驗(yàn)程序,并給出LEVEL1程序流程圖。 4、 總結(jié)實(shí)驗(yàn)經(jīng)驗(yàn),回答本實(shí)驗(yàn)中提出的問題,并整理實(shí)驗(yàn)文檔。
附錄:
/*=====================================================================================
File name: IPARK.C (IQ version)
Originator: Digital Control Systems Group
Texas Instruments
Dsscription: Inverse Park Transformation
=====================================================================================
History:
-------------------------------------------------------------------------------------
04-15-2005 Version 3.20
-------------------------------------------------------------------------------------*/
#include "IQmathLib.h" // Include header for IQmath library
// Don't forget to set a proper GLOBAL_Q in "IQmathLib.h" file
#include "dmctype.h"
#include "ipark.h"
void ipark_calc(IPARK *v)
{
_iq Cosine,Sine;
// Using look-up IQ sine table
Sine = _IQsinPU(v->Angle);
Cosine = _IQcosPU(v->Angle);
v->Alpha = _IQmpy(v->Ds,Cosine) - _IQmpy(v->Qs,Sine);
v->Beta = _IQmpy(v->Qs,Cosine) + _IQmpy(v->Ds,Sine);
}
/*=====================================================================================
File name: SVGEN_DQ.C (IQ version)
Originator: Digital Control Systems Group
Texas Instruments
Description: Space-vector PWM generation based on d-q components
=====================================================================================
History:
-------------------------------------------------------------------------------------
04-15-2005 Version 3.20
-------------------------------------------------------------------------------------*/
#include "IQmathLib.h" // Include header for IQmath library
// Don't forget to set a proper GLOBAL_Q in "IQmathLib.h" file
#include "dmctype.h"
#include "svgen_dq.h"
float f_t1,f_t2;
void svgendq_calc(SVGENDQ *v)
{
_iq Va,Vb,Vc,t1,t2;
Uint32 Sector = 0; // Sector is treated as Q0 - independently with global Q
// Inverse clarke transformation
Va = v->Ubeta;
Vb = _IQmpy(_IQ(-0.5),v->Ubeta) + _IQmpy(_IQ(0.8660254),v->Ualpha); // 0.8660254 = sqrt(3)/2
Vc = _IQmpy(_IQ(-0.5),v->Ubeta) - _IQmpy(_IQ(0.8660254),v->Ualpha); // 0.8660254 = sqrt(3)/2
// 60 degree Sector determination
if (Va>_IQ(0))
Sector = 1;
if (Vb>_IQ(0))
Sector = Sector + 2;
if (Vc>_IQ(0))
Sector = Sector + 4;
// X,Y,Z (Va,Vb,Vc) calculations
Va = v->Ubeta; // X = Va
Vb = _IQmpy(_IQ(0.5),v->Ubeta) + _IQmpy(_IQ(0.8660254),v->Ualpha); // Y = Vb
Vc = _IQmpy(_IQ(0.5),v->Ubeta) - _IQmpy(_IQ(0.8660254),v->Ualpha); // Z = Vc
if (Sector==0) // Sector 0: this is special case for (Ualpha,Ubeta) = (0,0)
{
v->Ta = _IQ(0.5);
v->Tb = _IQ(0.5);
v->Tc = _IQ(0.5);
}
if (Sector==1) // Sector 1: t1=Z and t2=Y (abc ---> Tb,Ta,Tc)
{
t1 = Vc;
t2 = Vb;
v->Tb = _IQmpy(_IQ(0.5),(_IQ(1)-t1-t2)); // tbon = (1-t1-t2)/2
v->Ta = v->Tb+t1; // taon = tbon+t1
v->Tc = v->Ta+t2; // tcon = taon+t2
}
else if (Sector==2) // Sector 2: t1=Y and t2=-X (abc ---> Ta,Tc,Tb)
{
t1 = Vb;
t2 = -Va;
v->Ta = _IQmpy(_IQ(0.5),(_IQ(1)-t1-t2)); // taon = (1-t1-t2)/2
v->Tc = v->Ta+t1; // tcon = taon+t1
v->Tb = v->Tc+t2; // tbon = tcon+t2
}
else if (Sector==3) // Sector 3: t1=-Z and t2=X (abc ---> Ta,Tb,Tc)
{
t1 = -Vc;
t2 = Va;
v->Ta = _IQmpy(_IQ(0.5),(_IQ(1)-t1-t2)); // taon = (1-t1-t2)/2
v->Tb = v->Ta+t1; // tbon = taon+t1
v->Tc = v->Tb+t2; // tcon = tbon+t2
}
else if (Sector==4) // Sector 4: t1=-X and t2=Z (abc ---> Tc,Tb,Ta)
{
t1 = -Va;
t2 = Vc;
v->Tc = _IQmpy(_IQ(0.5),(_IQ(1)-t1-t2)); // tcon = (1-t1-t2)/2
v->Tb = v->Tc+t1; // tbon = tcon+t1
v->Ta = v->Tb+t2; // taon = tbon+t2
}
else if (Sector==5) // Sector 5: t1=X and t2=-Y (abc ---> Tb,Tc,Ta)
{
t1 = Va;
t2 = -Vb;
v->Tb = _IQmpy(_IQ(0.5),(_IQ(1)-t1-t2)); // tbon = (1-t1-t2)/2
v->Tc = v->Tb+t1; // tcon = tbon+t1
v->Ta = v->Tc+t2; // taon = tcon+t2
}
else if (Sector==6) // Sector 6: t1=-Y and t2=-Z (abc ---> Tc,Ta,Tb)
{
t1 = -Vb;
t2 = -Vc;
v->Tc = _IQmpy(_IQ(0.5),(_IQ(1)-t1-t2)); // tcon = (1-t1-t2)/2
v->Ta = v->Tc+t1; // taon = tcon+t1
v->Tb = v->Ta+t2; // tbon = taon+t2
}
// Convert the unsigned GLOBAL_Q format (ranged (0,1)) -> signed GLOBAL_Q format (ranged (-1,1))
// v->Ta = _IQmpy(_IQ(2.0),(v->Ta-_IQ(0.5)));
// v->Tb = _IQmpy(_IQ(2.0),(v->Tb-_IQ(0.5)));
// v->Tc = _IQmpy(_IQ(2.0),(v->Tc-_IQ(0.5)));
}
程序:無
原理圖:無
仿真工程:無
以上圖文的Word格式文檔下載(內(nèi)容和本網(wǎng)頁上的一模一樣,方便大家保存):
空間矢量脈寬調(diào)制(SVPWM)實(shí)驗(yàn)-案例.doc
(345 KB, 下載次數(shù): 8)
2024-1-8 13:21 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
|
評分
-
查看全部評分
|