Quantcast
Channel: C2000™︎ 微控制器论坛 - 最近的话题
Viewing all articles
Browse latest Browse all 12291

28035软启动问题

$
0
0

您好 我想问您个F28035的程序问题,一个程序来实现移相全桥变换器的软启动功能,软起动程序写在了EPWM中断里,软起动程序是这样的:让移相全桥超前管与滞后管共同导通时间一点点增加的过程中,让PI调节也同时参与运算,由于刚开始时PI的输出大于软启动的输出,这个时候软启动起作用,当PI输出小与软启动输出后,PI开始进行调节输出电压,使输出电压问题。

interrupt void epwm3_isr(void)
{

if(ss_flag == 1)
{
if(ss_count<=25600)
{

Ue2=0;

ss_count++;
temp1=(long)((ss_count)>>7);

U1= AdcResult.ADCRESULT7; //U1电压, A7通道采U1
//pi程序
Ureal=_IQ(U1);
Uref=_IQ(U_Ref); //140v缩放为1.07,对应数字量为1335
Ue1=Uref-Ureal;
Ue2+=Ue1; //两者的误差
Up=_IQmpy(UKp,Ue1);
Ui=_IQmpy(UKi,Ue2);
Uo1=Up+Ui;
temp3=(long)((Uo1)>>16); //调制波得到数据

if(temp1>=temp3)
{
temp1=temp3;
ss_count=25602;
}

EPwm6Regs.CMPA.half.CMPA =300-temp1;
EPwm6Regs.CMPB=temp1;

}

我想问一下为什么每进一次都让误差累加值设为零呢?这样的方式模拟了UCC3895的软起动了吗


Viewing all articles
Browse latest Browse all 12291

Latest Images

Trending Articles

<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>