新聞中心

        EEPW首頁 > 電源與新能源 > 設計應用 > 基于DSP的三相SPWM變頻電源的設計

        基于DSP的三相SPWM變頻電源的設計

        作者: 時間:2009-04-28 來源:網絡 收藏

        A/D采樣子程序

        主要完成線電流采樣和線電壓采樣。為確保電壓與電流信號間沒有相對相移,本部分利用TMS320F28335片上ADC的同步采樣方式。為提高采樣精度,在A/D中斷子程序中采用均值濾波的方法。

        對A相電壓和電流A/D的同步采樣部分代碼如下:

        interrupt void adc_isr(void)

        {

        if(counter==0)

        {

        receive_a0_data[i++] = AdcRegs.ADCRESULT0>>4; //右移四位

        receive_b0_data[j++] = AdcRegs.ADCRESULT1>>4; //右移四位

        }

        if(counter>=1)

        { // 對結果取平均,平滑濾波

        receive_a0_data[i++] = (receive_a0_data[i0++]+(AdcRegs.ADCRESULT0>>4))/2;

        receive_b0_data[j++] = (receive_b0_data[j0++]+(AdcRegs.ADCRESULT1>>4))/2;

        }

        if(i==512) {i=0;i0=0;}

        if(j==512) {j=0;j0=0; counter++;}

        AdcRegs.ADCTRL2.bit.RST_SEQ1 = 1; // 復位排序器

        AdcRegs.ADCST.bit.INT_SEQ1_CLR = 1; // 清中斷標志位

        PieCtrlRegs.PIEACK.all = PIEACK_GROUP1;// 開中斷應答

        }

        數據處理算法

        本系統主要用到以下算法:(1)SVPWM算法(2)PID調節算法(3)頻率檢測算法

        SVPWM算法

        的核心就是SVPWM波的產生,波是以正弦波作為基準波(調制波),用一列等幅的三角波(載波)與基準正弦波相比較產生PWM波的控制方式。當基準正弦波高于三角波時,使相應的開關器件導通;當基準正弦波低于三角波時,使相應的開關器件截止。由此,逆變器的輸出電壓波形為脈沖列,其特點是:半個周期中各脈沖等距等幅不等寬,總是中間寬,兩邊窄,各脈沖面積與該區間正弦波下的面積成比例。這種脈沖波經過低通濾波后可得到與調制波同頻率的正弦波,正弦波幅值和頻率由調制波的幅值和頻率決定。

        本文采用不對稱規則采樣法,即在三角波的頂點位置與低點位置對正弦波進行采樣,它形成的階梯波更接近正弦波。不規則采樣法生成波原理如圖7所示。圖中,Tc是載波周期,M是調制度,N為載波比,Ton為導通時間。

        由圖7得:


        當k為偶數時代表頂點采樣,k為奇數時代表底點采樣。

        SVPWM算法實現過程:

        利用F28335內部的事件管理器模塊的3個全比較單元、通用定時器1、死區發生單元及輸出邏輯可以很方便地生成六路波形。實際應用時在程序的初始化部分建立一個正弦表,設置通用定時器的計數方式為連續增計數方式,在中斷程序中調用表中的值即可產生相應的按正弦規律變化的SPWM波。SPWM波的頻率由定時時間與正弦表的點數決定。

        SVPWM算法的部分代碼如下:

        void InitEv(void)

        {

        EALLOW;

        GpioMuxRegs.GPAMUX.all=0x00FF;

        EDIS;

        EvaRegs.EVAIFRA.all = 0xFFFF; // 清除中斷標志

        EvaRegs.T1PR= 2500; //定時器1周期值,定時0.4us*2500=1ms

        EvaRegs.T1CMPR = XPWM; //比較值初始化

        EvaRegs.T1CNT = 0; EvaRegs.T1CON.all = 0xF54E; //增模式, TPS系數80M/32=2.5M,T1使能,

        EvaRegs.ACTR.all = 0x0006; //PWM1,2低有效

        EvaRegs.DBTCONA.all = 0x0534; //使能死區定時器1,分頻80M/32=2.5M,死區時

        //間5*0.4us=2us

        EvaRegs.COMCONA.all = 0xA600; //比較控制寄存器

        EvaRegs.EVAIMRA.all = 0x0080;

        }



        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 且末县| 景东| 大荔县| 于都县| 化德县| 永和县| 福泉市| 柳河县| 洪江市| 福清市| 绿春县| 保山市| 邢台县| 云霄县| 龙南县| 焦作市| 温州市| 尚志市| 灌云县| 武清区| 法库县| 澜沧| 万宁市| 佛冈县| 镇平县| 托克托县| 嘉峪关市| 息烽县| 无为县| 横山县| 泌阳县| 明星| 汕尾市| 灵石县| 乐业县| 中宁县| 榆树市| 井冈山市| 澄江县| 定西市| 海淀区|