久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1743|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

離散系統(tǒng)的數(shù)字PID控制仿真 采用空間矢量脈寬調(diào)制(SVPWM)的控制 VVVF調(diào)速系統(tǒng)

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:1108495 發(fā)表于 2024-1-8 13:21 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
采用空間矢量脈寬調(diào)制(SVPWM)的控制
VVVF調(diào)速系統(tǒng)的綜合
一、實驗?zāi)康?/strong>1、理解電壓空間矢量脈寬調(diào)制(SVPWM)控制的基本原理。2、熟悉MCKV電機控制系統(tǒng)的CPU模塊、IPM模塊和機組各部分硬件模塊,并確認工作正常。3、了解SVPWM變頻器運行參數(shù)和特性。
二、實驗內(nèi)容:
1、熟悉CCS編程環(huán)境,并在CCS下編譯、下載、運行DSP軟件工程。2、觀察并記錄定子磁鏈周期和頻率,并分析他們之間的關(guān)系。3、觀測并記錄啟動時電機定子電流和電機速度波形
三、實驗預(yù)習(xí)要求1、閱讀并掌握三相交流異步電機VVVF調(diào)速系統(tǒng)工作原理。2、了解電壓空間矢量脈寬調(diào)制(SVPWM)控制的基本原理。3、閱讀本次實驗指導(dǎo)書和實驗程序,寫好實驗預(yù)習(xí)文檔。4、在MATLAB/Simulinlk 環(huán)境中搭好仿真模型,結(jié)合本程序LEVEL1功能框圖,完成電流速度雙閉環(huán)系統(tǒng)交流異步電機矢量控制仿真。四、實驗原理當(dāng)用三相平衡的正弦電壓向交流電動機供電時,電動機的定子磁鏈空間矢量幅值恒定,并以恒速旋轉(zhuǎn),磁鏈?zhǔn)噶康倪\動軌跡形成圓形的空間旋轉(zhuǎn)矢量(磁鏈圓)。SVPWM就是著眼于使形成的磁鏈軌跡跟蹤由理想三相平衡正弦波電壓源供電時所形成的基準(zhǔn)磁鏈圓,使逆變電路能向交流電動機提供可變頻電源,實現(xiàn)交流電動機的變頻調(diào)速。現(xiàn)在以實驗系統(tǒng)中用的電壓源型逆變器為例說明SVPWM的工作原理。三相逆變器由直流電源和6個開關(guān)元件( MOSFET) 組成。圖1是電壓源型逆變器的示意圖。
圖1 電壓源型逆變器示意圖
對于每個橋臂而言,它的上下開關(guān)元件不能同時打開,否則會因短路而燒毀元器件。其中A、B、C代表3 個橋臂的開關(guān)狀態(tài),當(dāng)上橋臂開關(guān)元件為開而下橋臂開關(guān)元件為關(guān)時定義其狀態(tài)為1 ,當(dāng)下橋臂開關(guān)元件為開而上橋臂開關(guān)元件為關(guān)時定義其狀態(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)的原點,其他的稱為非零矢量,它們幅值相等,相鄰的矢量之間相隔60°。如果按照一定順序選擇這六個非零矢量的電壓空間矢量進行輸出,會形成正六邊形的定子磁鏈,距離要求的圓形磁鏈還有很大差距,只有選擇更多的非零矢量才會使磁鏈更接近圓形。SVPWM的關(guān)鍵在于用8個基本電壓空間矢量的不同時間組合來逼近所給定的參考空間電壓矢量。在圖3中對于給定的輸出電壓U,用它所在扇區(qū)的一對相鄰基本電壓來等效。此外當(dāng)逆變器單獨輸出零矢量時,電動機的定子磁鏈?zhǔn)噶渴遣粍拥摹8鶕?jù)這個特點,可以在載波周期內(nèi)插入零矢量,調(diào)整角頻率,從而達到變頻目的。
圖3 電壓空間的線性組合
根據(jù)正弦定理可以得到:又有得到式中為載波周期; 的幅值可以由曲線確定;的幅值相同且恒為直流母線電壓可以由輸出正弦電壓角頻率的乘積確定。因此,當(dāng)已知兩相鄰的基本電壓空間矢量后,就可以根據(jù)上式確定五、實驗流程圖圖1-1-1給出了實驗程序功能框圖:

圖1-1-1

以下給出實驗一中的控制參數(shù)及其調(diào)節(jié)范圍EnableFlag: 0、1               啟動控制位SpeedRef:   -0.9~0.9          速度給定值實驗設(shè)備
1、DSPCPU組合板:Techv-28335+MCKV-INF2+MCKV-INF32、DSP仿真器及usb線3、MCKV DSP電機控制器4、三相交流異步電機機組5、PC機及電源電纜

七、實驗步驟
在做該實驗之前,請確保已經(jīng)按照系統(tǒng)測試步驟和方法進行各步驟的運行,該實驗具體調(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)板,此時注意觀察加載的文件“ACI_2833X.out”是否您剛才編譯鏈接生成的文件,看一下文件的生成時間就知道了,如果所有源文件都沒有修改,此時“ACI_2833X.out”的生成時間不會變化;如果想證實源文件編譯是否執(zhí)行,可以在主程序中隨便修改一點注釋內(nèi)容,那么編譯的時候就肯定會生成新時間的輸出文件。
3.   點擊“Debug--Real time Mode”選擇實時模式,此時出現(xiàn)一個對話框,選擇“是(Y)”,再點擊“Debug--Run” 或者點擊左側(cè)運行圖標(biāo)運行程序,此時程序在實時運行模式下運行。
4.   在“Watch window”窗口中左鍵點擊“Build1”標(biāo)簽并在空白處點擊右鍵,選擇連續(xù)刷新模式“Continuous Refresh” ,此時應(yīng)能觀察到“BackTicker”變量在不斷變化,說明主程序已經(jīng)運行,
5.   在控制器面板上進行電機選擇,選擇三相交流異步電機顯示“正確”后,在主菜單下按兩次向下鍵并確認后進入狀態(tài)頁面,打開主電源(按鈕:電源)。因為主電路中有3300uf的大電容,所以需要較長的充電時間,為了避免過大的充電電流,主電路中有NTC負溫度系數(shù)的熱敏電阻,所以一定要等控制器的液晶上顯示“電源:開啟”,才能進行下一步的操作,并且每次打開主電源距離上次關(guān)閉主電源需要有5分鐘以上的間隔時間
6.   在“Watch window”窗口中雙擊變量“EnableFlag”右側(cè)的“Value“值并修改為1后回車,此時應(yīng)能觀察到變量“IsrTicker”也在不斷變化,說明主中斷服務(wù)程序已經(jīng)正常運行。而此時電機應(yīng)該轉(zhuǎn)動,并穩(wěn)定在740轉(zhuǎn)/分左右的速度上,說明控制系統(tǒng)PWM輸出部分和IPM逆變部分硬件以及機組和連線都是正確的,如果電機不轉(zhuǎn),請檢查INF2電路板上的LED2指示燈是否熄滅,如果熄滅說明產(chǎn)生了功率保護中斷,可以更換DSPCPU板測試,也可更換機組測試,如果現(xiàn)象依舊則需要返修。如果電機運轉(zhuǎn)了,但是控制器上沒有速度顯示,請檢查DSPCPU電路板下面那塊INF2電路板上的JP1撥碼開關(guān)是否撥向左邊。7.   分別右鍵點擊圖形顯示窗口“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)移至第一個圖形的零點處,注意觀察圖形窗口“Channel1&2”左下角的第一個坐標(biāo)值的第一個值是時間,單位為ms,我們可以看到給定的磁鏈周期為40ms,這樣可以計算出給定磁鏈的頻率為25Hz,這和我們設(shè)定的SpeedRef=0.5是對應(yīng)的,設(shè)定為1時,對應(yīng)頻率為50Hz,周期應(yīng)為20ms。Ta、Tb、Tc表示的是三組PWM控制信號在每個調(diào)制周期中的占空比,也是Q15格式的數(shù)據(jù)。將光標(biāo)移至Channel2的第一個馬鞍波的波峰中點,讀出時間坐標(biāo)為14.8ms,將光標(biāo)移至Channel3的第一個馬鞍波的波峰中點,讀出時間坐標(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峰值時間ms




Tb峰值時間ms




Ta超前Tb相位度




8.   改變SpeedRef的值,觀察波形的周期值是否和設(shè)定值對應(yīng)。同時VdTesting、VqTesting的值也跟著變化,此時可以觀測圖形顯示窗口波形幅值的變化。變量VdTesting、VqTesting相當(dāng)于IPARK逆變換的輸入值,在程序中做了一個函數(shù),隨著SpeedRef的值變化而變化,所以不能修改。根據(jù)speedref的值完成表1-1-2。表1-1-2:
Speedref
0.1
0.3
0.5
-0.5
給定磁鏈周期




給定磁鏈頻率




電機轉(zhuǎn)速




9.   分別右鍵點擊圖形顯示窗口“Channel1&2”、“Channel3&4”,取消連續(xù)刷新模式“Continuous Refresh”,點擊“Debug--Halt” ,再點擊“Debug--Real time Mode” ,最后點擊“Debug--Reset CPU” ,“Debug—Restart ”,退出實時運行模式,并停止程序運行。10. 如果繼續(xù)實驗,請轉(zhuǎ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波形

實驗文檔:

1、  分析實驗結(jié)果,并根據(jù)表1-1-1的測試結(jié)果,解釋電機速度設(shè)定參考值和電機實際運行速度之間的差異是怎么產(chǎn)生的。

2、  閱讀實驗程序,理解IPARK和SVPWM軟件模塊的工作原理。繪制出IPARK和SVPWM模塊的詳細軟件流程圖。

3、  讀懂LEVEL1實驗程序,并給出LEVEL1程序流程圖。

4、  總結(jié)實驗經(jīng)驗,回答本實驗中提出的問題,并整理實驗文檔。



附錄:
/*=====================================================================================
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)實驗-案例.doc (345 KB, 下載次數(shù): 8)

評分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏2 分享淘帖 頂 踩
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 亚洲精品91| www久久久| 成人网av | av片毛片 | 人人色视频 | 羞羞的视频免费在线观看 | 国产在线色 | 色综合一区二区三区 | 国产午夜一级 | 成人天堂 | 国产亚洲一区二区三区在线观看 | 亚洲成人一级 | 免费成人毛片 | 一级毛片免费 | 中文字幕视频一区 | 一级黄色短片 | 久操av在线 | av一级在线观看 | 在线精品一区 | 国产日韩一区二区三区 | 欧美性受xxxx白人性爽 | 久久久久国产 | 精品国产免费一区二区三区演员表 | 久久人操 | 国产免国产免费 | 99re在线 | 久久婷婷国产香蕉 | 羞羞的视频网站 | 欧美一区二区三区在线观看 | 日韩精品一区二区三区中文字幕 | 亚洲精品国产电影 | 视频在线h | 国产精品日女人 | 国产精品久久久久久 | 国产成人一区二区三区 | 成人av鲁丝片一区二区小说 | 亚洲精品九九 | 91精品久久久久久久久 | 国产欧美在线播放 | 亚洲精品成人 | 奇米在线 |