日韩在线不卡免费视频一区,日韩欧美精品一区二区三区经典,日产精品码2码三码四码区,人妻无码一区二区三区免费,日本feerbbwdh少妇丰满

  • 回復(fù)
  • 收藏
  • 點(diǎn)贊
  • 分享
  • 發(fā)新帖

正弦波過零畸變求助!

現(xiàn)在使用F28027做單相逆變器,使用PI控制器,詳細(xì)程序見下面!
現(xiàn)在遇到逆變輸出的正弦波過零附近出現(xiàn)畸變,電壓和電流波形見附圖

 

 

 

// -----------------------------------------------------------
// PIE Group 1 - MUXed into CPU INT1
// -----------------------------------------------------------
// INT1.1  Can also be ISR for INT10.1 when enabled
interrupt void ADCINT1_ISR(void)  
{
 signed int Width_Pulse=0;
 signed int temp=0;
 if(++sym_clock==400)
   {
    sym_clock=0;
    Vol_Peak_Shadow=Vol_Peak;
    Width_Compensate=-Width_Sum/400;
    if((sym_state==0)&&((Width_Compensate>300)||(Width_Compensate<-300)))
      {
       EALLOW;
       //GpioDataRegs.GPACLEAR.bit.GPIO5  = 1;
       sym_state=3;
       EDIS;
       }
    }
   
 
 if(sym_clock>=200)
   {
    Vol_Ref=-SinTable[sym_clock-200]*Vol_Peak_Shadow;
    }
 else  
   {
    Vol_Ref=SinTable[sym_clock]*Vol_Peak_Shadow;
    }
 temp=AdcResult.ADCRESULT3>>2;  
 Vol_Feed=(float)(temp-517)*SCALE_VOLTAGE;
 //Vol_Feed=(float)(temp-Offset_Adcb3)*SCALE_VOLTAGE;
 //Vol_Feed=(float)(660-Offset_Adcb3)*SCALE_VOLTAGE;
   
 Vol_Err    =Vol_Ref-Vol_Feed;    
 Vol_Out    =Vol_Err*0.12365;//-Vol_Err_Last*0.012365*0.7334+Vol_Out;

 
 
 Vol_Err_Last=Vol_Err;
 
 Width_Pulse=(int)(Vol_Out/330*1500);
 
 Width_Pulse=Width_Pulse+Width_Compensate;  
 
 if(Width_Pulse>3)
   {
    if(Width_Pulse>=1472)
      {
       Width_Sum=Width_Sum+1500;
       Width_Pulse=0;
       }
    else
      {
       Width_Sum=Width_Sum+Width_Pulse;
       Width_Pulse=1475-Width_Pulse;
       }
    EALLOW;
    EPwm1Regs.CMPA.half.CMPA      =Width_Pulse;
    EPwm2Regs.CMPA.half.CMPA      =1600;
    EDIS;
    }
 else
   {
    if(Width_Pulse<-3)
      {
       Width_Pulse=-Width_Pulse;
       if(Width_Pulse>=1472)
         {
          Width_Sum=Width_Sum-1500; 
          Width_Pulse=0;
          }
       else
         {
          Width_Sum=Width_Sum-Width_Pulse;
          Width_Pulse=1475-Width_Pulse;
          }
       EALLOW; 
       EPwm1Regs.CMPA.half.CMPA      =1600;
       EPwm2Regs.CMPA.half.CMPA      =Width_Pulse;
       EDIS;
       }
    else
      {
       EALLOW;
       EPwm1Regs.CMPA.half.CMPA      =1600;
       EPwm2Regs.CMPA.half.CMPA      =1600;
       EDIS;
       }
    }
 sym_tick=1;

 Vol_Square_Sum=Vol_Square_Sum+Vol_Feed*Vol_Feed;
 if(sym_clock==200)
 {
  Vol_Sqr_Sum_Shw=Vol_Square_Sum;
  Vol_Square_Sum=0;
  sym_RMS=1;
  }
 
 EALLOW;
 AdcRegs.ADCINTFLGCLR.bit.ADCINT1 = 1;       //Clear ADCINT1 flag reinitialize for next SOC
 AdcRegs.ADCINTOVFCLR.bit.ADCINT1 = 1;
 PieCtrlRegs.PIEACK.bit.ACK10     = 1;        //Acknowledge interrupt to PIE
 EDIS;
}

全部回復(fù)(6)
正序查看
倒序查看
holyfaith
LV.8
2
2010-09-07 11:39

在計(jì)算的時(shí)候加有死區(qū)吧,這是由那個(gè)引起的

0
回復(fù)
2010-09-08 21:27
@holyfaith
在計(jì)算的時(shí)候加有死區(qū)吧,這是由那個(gè)引起的

現(xiàn)在更郁悶!

整個(gè)控制只能用P控制,加入I控制,波形立馬偏到一邊,然后過流保護(hù)!

是我的算法問題?還是其它?

算法如下:

Vol_Out=Vol_Err*0.12365-Vol_Err_1*0.12365+Vol_Err_2*0.12365+Vol_Out_1*1.02-Vol_Out_2*0.5(幾個(gè)系數(shù)不是實(shí)際值)

Vol_Err_2=Vol_Err_1;

Vol_Err_1=Vol_Err;

Vol_Out_2=Vol_Out_1;

Vol_Out_1=Vol_Out;

0
回復(fù)
holyfaith
LV.8
4
2010-09-09 12:03
@gnaijnaoul
現(xiàn)在更郁悶!整個(gè)控制只能用P控制,加入I控制,波形立馬偏到一邊,然后過流保護(hù)!是我的算法問題?還是其它?算法如下:Vol_Out=Vol_Err*0.12365-Vol_Err_1*0.12365+Vol_Err_2*0.12365+Vol_Out_1*1.02-Vol_Out_2*0.5(幾個(gè)系數(shù)不是實(shí)際值)Vol_Err_2=Vol_Err_1;Vol_Err_1=Vol_Err;Vol_Out_2=Vol_Out_1;Vol_Out_1=Vol_Out;
加個(gè)防飽和
0
回復(fù)
2010-09-09 18:30
@holyfaith
加個(gè)防飽和

這幾個(gè)變量全部使用單精度浮點(diǎn)數(shù),應(yīng)該不存在溢出問題!

很多資料、論文上都使用PI補(bǔ)償,可我的就是不行!

以前也試過加一個(gè)正負(fù)脈寬平衡(將從啟動(dòng)開始的正負(fù)脈寬進(jìn)行累加,每周期做一次平均,將平均值取負(fù)疊加在每個(gè)輸出脈沖上),只是可以正常工作的時(shí)間稍微變長了!

Implementing 

三相逆變器DSP控制技術(shù)的研究 

0
回復(fù)
songxium
LV.7
6
2010-09-09 19:50
可以增加過零點(diǎn)補(bǔ)償。
0
回復(fù)
holyfaith
LV.8
7
2010-09-12 19:43
@gnaijnaoul
這幾個(gè)變量全部使用單精度浮點(diǎn)數(shù),應(yīng)該不存在溢出問題!很多資料、論文上都使用PI補(bǔ)償,可我的就是不行!以前也試過加一個(gè)正負(fù)脈寬平衡(將從啟動(dòng)開始的正負(fù)脈寬進(jìn)行累加,每周期做一次平均,將平均值取負(fù)疊加在每個(gè)輸出脈沖上),只是可以正常工作的時(shí)間稍微變長了![圖片]Implementing [圖片]三相逆變器DSP控制技術(shù)的研究 

我的意思不是數(shù)字格式的溢出,我的意思是因?yàn)橐恢庇袀€(gè)I的作用,在跟定是變化的時(shí)候,這個(gè)可能導(dǎo)致積分的結(jié)果很大,導(dǎo)致反映很慢,設(shè)定一個(gè)值,就是給PI的結(jié)果限定一個(gè)區(qū)間,不讓其偏差過大

0
回復(fù)
發(fā)