性无码一区二区三区在线观看,少妇被爽到高潮在线观看,午夜精品一区二区三区,无码中文字幕人妻在线一区二区三区,无码精品国产一区二区三区免费

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

關(guān)于純正正弦波的算法,有請鐘工,老壽先生進來以及各位大俠高手來討論

關(guān)于正弦波的修正算法,你們都是用什么方法去修正的?還有用SPWM做的話過零點需要注意什么。
全部回復(fù)(6)
正序查看
倒序查看
2010-07-22 23:15
基本上按等面積法。死區(qū)補償可以按過零補償最多波峰或波谷補償最少。
0
回復(fù)
jackcai02
LV.2
3
2010-07-23 09:03
@xzszrs
基本上按等面積法。死區(qū)補償可以按過零補償最多波峰或波谷補償最少。
那如果PI算出來的值是負的話,怎么轉(zhuǎn)換成給PWM的DUTY,DUTY是個無符合寄存器呢。
0
回復(fù)
jackcai02
LV.2
4
2010-07-23 11:03
@jackcai02
那如果PI算出來的值是負的話,怎么轉(zhuǎn)換成給PWM的DUTY,DUTY是個無符合寄存器呢。
//180~360 degree close loop algorithmn
VoltageError = -SineTable_50Hz[PwmTabIndex] + InverterOutPutVoltageTmp;
         VoltageErrorSum = VoltageErrorSum + Voltage_kCoeffs[1]*VoltageError;
         Temp1 = Voltage_kCoeffs[0]*VoltageError;
         Temp1 = Temp1+VoltageErrorSum;
         if(Temp1 > 32767)
           Temp1 = 32767;
         if(Temp1 < -32767)
           Temp1 = -32767;
         Temp1 = abs(Temp1);
         PWM_Mutiply_Data = ((__builtin_muluu((int)Temp1,(int)INVERTER_PERIOD_VALUE))>>15);
         if(PWM_Mutiply_Data > INVERTER_PERIOD_VALUE)
           PWM_Mutiply_Data = INVERTER_PERIOD_VALUE;
0
回復(fù)
jackcai02
LV.2
5
2010-07-23 11:04
@jackcai02
//180~360degreecloseloopalgorithmnVoltageError=-SineTable_50Hz[PwmTabIndex]+InverterOutPutVoltageTmp;     VoltageErrorSum=VoltageErrorSum+Voltage_kCoeffs[1]*VoltageError;     Temp1=Voltage_kCoeffs[0]*VoltageError;     Temp1=Temp1+VoltageErrorSum;     if(Temp1>32767)      Temp1=32767;     if(Temp1<-32767)      Temp1=-32767;     Temp1=abs(Temp1);     PWM_Mutiply_Data=((__builtin_muluu((int)Temp1,(int)INVERTER_PERIOD_VALUE))>>15);     if(PWM_Mutiply_Data>INVERTER_PERIOD_VALUE)      PWM_Mutiply_Data=INVERTER_PERIOD_VALUE;
//0~180 degree close loop algorithmn 其中在180°,360°的時候把VoltageErrorSum  = 0

VoltageError = SineTable_50Hz[PwmTabIndex] - InverterOutPutVoltageTmp;
         VoltageErrorSum = VoltageErrorSum + 5*VoltageError;
         Temp1 = 22*VoltageError;
         Temp1 = Temp1 +VoltageErrorSum;
         if(Temp1 > 32767)
           Temp1 = 32767;
         if(Temp1 < -32767)
           Temp1 = -32767;
         Temp1 = abs(Temp1);      
         PWM_Mutiply_Data = ((__builtin_muluu((int)Temp1,(int)INVERTER_PERIOD_VALUE))>>15);
         if(PWM_Mutiply_Data > INVERTER_PERIOD_VALUE)
           PWM_Mutiply_Data = INVERTER_PERIOD_VALUE;  
0
回復(fù)
jackcai02
LV.2
6
2011-09-09 13:51
@jackcai02
//0~180degreecloseloopalgorithmn其中在180°,360°的時候把VoltageErrorSum =0VoltageError=SineTable_50Hz[PwmTabIndex]-InverterOutPutVoltageTmp;     VoltageErrorSum=VoltageErrorSum+5*VoltageError;     Temp1=22*VoltageError;     Temp1=Temp1+VoltageErrorSum;     if(Temp1>32767)      Temp1=32767;     if(Temp1<-32767)      Temp1=-32767;     Temp1=abs(Temp1);        PWM_Mutiply_Data=((__builtin_muluu((int)Temp1,(int)INVERTER_PERIOD_VALUE))>>15);     if(PWM_Mutiply_Data>INVERTER_PERIOD_VALUE)      PWM_Mutiply_Data=INVERTER_PERIOD_VALUE; 
現(xiàn)在回想起來,這個問題很簡單,做穩(wěn)壓太簡單了。哈哈。。。
0
回復(fù)
syrobots
LV.2
7
2012-06-27 12:15
@jackcai02
現(xiàn)在回想起來,這個問題很簡單,做穩(wěn)壓太簡單了。哈哈。。。
jackcai02您好!可不可以向你請您請教?方便留下郵箱或QQ嗎?我的QQ:114513500
0
回復(fù)
發(fā)