采用空間矢量脈寬調制(SVPWM)的控制 VVVF調速系統的綜合 一、實驗目的1、理解電壓空間矢量脈寬調制(SVPWM)控制的基本原理。2、熟悉MCKV電機控制系統的CPU模塊、IPM模塊和機組各部分硬件模塊,并確認工作正常。3、了解SVPWM變頻器運行參數和特性。
二、實驗內容:1、熟悉CCS編程環境,并在CCS下編譯、下載、運行DSP軟件工程。2、觀察并記錄定子磁鏈周期和頻率,并分析他們之間的關系。3、觀測并記錄啟動時電機定子電流和電機速度波形 與 ;
三、實驗預習要求1、閱讀并掌握三相交流異步電機VVVF調速系統工作原理。2、了解電壓空間矢量脈寬調制(SVPWM)控制的基本原理。3、閱讀本次實驗指導書和實驗程序,寫好實驗預習文檔。4、在MATLAB/Simulinlk 環境中搭好仿真模型,結合本程序LEVEL1功能框圖,完成電流速度雙閉環系統交流異步電機矢量控制仿真。四、實驗原理當用三相平衡的正弦電壓向交流電動機供電時,電動機的定子磁鏈空間矢量幅值恒定,并以恒速旋轉,磁鏈矢量的運動軌跡形成圓形的空間旋轉矢量(磁鏈圓)。SVPWM就是著眼于使形成的磁鏈軌跡跟蹤由理想三相平衡正弦波電壓源供電時所形成的基準磁鏈圓,使逆變電路能向交流電動機提供可變頻電源,實現交流電動機的變頻調速。現在以實驗系統中用的電壓源型逆變器為例說明SVPWM的工作原理。三相逆變器由直流電源和6個開關元件( MOSFET) 組成。圖1是電壓源型逆變器的示意圖。圖1 電壓源型逆變器示意圖 對于每個橋臂而言,它的上下開關元件不能同時打開,否則會因短路而燒毀元器件。其中A、B、C代表3 個橋臂的開關狀態,當上橋臂開關元件為開而下橋臂開關元件為關時定義其狀態為1 ,當下橋臂開關元件為開而上橋臂開關元件為關時定義其狀態為0。這樣A 、B、C有000 、001 、010 、011 、100 、101 、110、111共 8種狀態。逆變器每種開關狀態對應不同的電壓矢量,根據相位角不同分別命名為U0(000)、U1(100)、U2(110)、U3(010)、U4(011)、U5(001)、U6(101)、U7(111)如圖2所示。圖2 基本電壓空間矢量 其中U0(000)和U7(111)稱為零矢量,位于坐標的原點,其他的稱為非零矢量,它們幅值相等,相鄰的矢量之間相隔60°。如果按照一定順序選擇這六個非零矢量的電壓空間矢量進行輸出,會形成正六邊形的定子磁鏈,距離要求的圓形磁鏈還有很大差距,只有選擇更多的非零矢量才會使磁鏈更接近圓形。SVPWM的關鍵在于用8個基本電壓空間矢量的不同時間組合來逼近所給定的參考空間電壓矢量。在圖3中對于給定的輸出電壓U,用它所在扇區的一對相鄰基本電壓 和 來等效。此外當逆變器單獨輸出零矢量時,電動機的定子磁鏈矢量是不動的。根據這個特點,可以在載波周期內插入零矢量,調整角頻率,從而達到變頻目的。圖3 電壓空間的線性組合 根據正弦定理可以得到: 又有 得到 式中 為載波周期; 的幅值可以由 曲線確定; 和 的幅值相同且恒為直流母線電壓 ; 可以由輸出正弦電壓角頻率 和 的乘積確定。因此,當已知兩相鄰的基本電壓空間矢量 和 后,就可以根據上式確定 、 、 。 五、實驗流程圖圖1-1-1給出了實驗程序功能框圖:
圖1-1-1 以下給出實驗一中的控制參數及其調節范圍EnableFlag: 0、1 啟動控制位SpeedRef: -0.9~0.9 速度給定值六、實驗設備
1、DSPCPU組合板:Techv-28335+MCKV-INF2+MCKV-INF32、DSP仿真器及usb線3、MCKV DSP電機控制器4、三相交流異步電機機組5、PC機及電源電纜
七、實驗步驟在做該實驗之前,請確保已經按照系統測試步驟和方法進行各步驟的運行,該實驗具體調試操作步驟如下:
1. 將頭文件“build.h”中的編譯指令BUILDLEVEL設為“LEVEL1”,然后用“Project--Build”命令重新編譯連接程序。在“build.h”文件中第29行:#define BUILDLEVEL LEVEL1-------修改此處。
2. 用“File--Load Program”菜單命令加載“ACI_2833X.out”文件到目標板,此時注意觀察加載的文件“ACI_2833X.out”是否您剛才編譯鏈接生成的文件,看一下文件的生成時間就知道了,如果所有源文件都沒有修改,此時“ACI_2833X.out”的生成時間不會變化;如果想證實源文件編譯是否執行,可以在主程序中隨便修改一點注釋內容,那么編譯的時候就肯定會生成新時間的輸出文件。
3. 點擊“Debug--Real time Mode”選擇實時模式,此時出現一個對話框,選擇“是(Y)”,再點擊“Debug--Run” 或者點擊左側運行圖標運行程序,此時程序在實時運行模式下運行。
4. 在“Watch window”窗口中左鍵點擊“Build1”標簽并在空白處點擊右鍵,選擇連續刷新模式“Continuous Refresh” ,此時應能觀察到“BackTicker”變量在不斷變化,說明主程序已經運行,
5. 在控制器面板上進行電機選擇,選擇三相交流異步電機顯示“正確”后,在主菜單下按兩次向下鍵并確認后進入狀態頁面,打開主電源(按鈕:電源)。因為主電路中有3300uf的大電容,所以需要較長的充電時間,為了避免過大的充電電流,主電路中有NTC負溫度系數的熱敏電阻,所以一定要等控制器的液晶上顯示“電源:開啟”,才能進行下一步的操作,并且每次打開主電源距離上次關閉主電源需要有5分鐘以上的間隔時間。
6. 在“Watch window”窗口中雙擊變量“EnableFlag”右側的“Value“值并修改為1后回車,此時應能觀察到變量“IsrTicker”也在不斷變化,說明主中斷服務程序已經正常運行。而此時電機應該轉動,并穩定在740轉/分左右的速度上,說明控制系統PWM輸出部分和IPM逆變部分硬件以及機組和連線都是正確的,如果電機不轉,請檢查INF2電路板上的LED2指示燈是否熄滅,如果熄滅說明產生了功率保護中斷,可以更換DSPCPU板測試,也可更換機組測試,如果現象依舊則需要返修。如果電機運轉了,但是控制器上沒有速度顯示,請檢查DSPCPU電路板下面那塊INF2電路板上的JP1撥碼開關是否撥向左邊。7. 分別右鍵點擊圖形顯示窗口“Channel1&2”、“Channel3&4”,選擇連續刷新模式“Continuous Refresh” ,觀察rg1.Out、Ta、Tb以及Tc的波形,如圖1-1-3和圖1-1-4所示。rg1.Out是給定磁鏈斜坡函數的輸出,它是以360度為PU基值的Q15格式數據表示的,將豎線光標移至第一個圖形的零點處,注意觀察圖形窗口“Channel1&2”左下角的第一個坐標值的第一個值是時間,單位為ms,我們可以看到給定的磁鏈周期為40ms,這樣可以計算出給定磁鏈的頻率為25Hz,這和我們設定的SpeedRef=0.5是對應的,設定為1時,對應頻率為50Hz,周期應為20ms。Ta、Tb、Tc表示的是三組PWM控制信號在每個調制周期中的占空比,也是Q15格式的數據。將光標移至Channel2的第一個馬鞍波的波峰中點,讀出時間坐標為14.8ms,將光標移至Channel3的第一個馬鞍波的波峰中點,讀出時間坐標為28.2ms,那么得出結論:Ta相位超前Tb=(28.2-14.8)/40*360=120度。如圖1-1-5和圖1-1-6所示。設定speedref為不同值,完成表1-1-1。表1-1-1:Speedref | 0.1 | 0.3 | 0.5 | -0.5 | Ta峰值時間ms |
|
|
|
| Tb峰值時間ms |
|
|
|
| Ta超前Tb相位度 |
|
|
|
| 8. 改變SpeedRef的值,觀察波形的周期值是否和設定值對應。同時VdTesting、VqTesting的值也跟著變化,此時可以觀測圖形顯示窗口波形幅值的變化。變量VdTesting、VqTesting相當于IPARK逆變換的輸入值,在程序中做了一個函數,隨著SpeedRef的值變化而變化,所以不能修改。根據speedref的值完成表1-1-2。表1-1-2:Speedref | 0.1 | 0.3 | 0.5 | -0.5 | 給定磁鏈周期 |
|
|
|
| 給定磁鏈頻率 |
|
|
|
| 電機轉速 |
|
|
|
| 9. 分別右鍵點擊圖形顯示窗口“Channel1&2”、“Channel3&4”,取消連續刷新模式“Continuous Refresh”,點擊“Debug--Halt” ,再點擊“Debug--Real time Mode” ,最后點擊“Debug--Reset CPU” ,“Debug—Restart ”,退出實時運行模式,并停止程序運行。10. 如果繼續實驗,請轉實驗二。否則請關閉控制器的功率部分主電源(按下電源鍵),然后關閉CCS軟件退出程序,關閉控制電源。 
圖1-1-3 rg1.out和Ta波形 圖1-1-4 Tb和Tc波形 
圖1-1-5 rg1.out和Ta波形 圖1-1-6 Tb和Tc波形 實驗文檔: 1、 分析實驗結果,并根據表1-1-1的測試結果,解釋電機速度設定參考值和電機實際運行速度之間的差異是怎么產生的。 2、 閱讀實驗程序,理解IPARK和SVPWM軟件模塊的工作原理。繪制出IPARK和SVPWM模塊的詳細軟件流程圖。 3、 讀懂LEVEL1實驗程序,并給出LEVEL1程序流程圖。 4、 總結實驗經驗,回答本實驗中提出的問題,并整理實驗文檔。
附錄:
/*=====================================================================================
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格式文檔下載(內容和本網頁上的一模一樣,方便大家保存):
空間矢量脈寬調制(SVPWM)實驗-案例.doc
(345 KB, 下載次數: 8)
2024-1-8 13:21 上傳
點擊文件名下載附件
|