TI中文支持网
TI专业的中文技术问题搜集分享网站

关于spraab3文档中差分方程输出与占空比的关系

您好,我在用F28335控制BUCK电源,按照spraab3中的方法生成了差分方程,我想知道U(n)的输出值是[0,1]之间的占空比吗?

我的差分方程是:U(n)=1.819U(n-1)-0.8187U(n-2)+4.638E(n)-9.076E(n-1)+4.439E(n-2)

我算出来的值很大啊,它与占空比之间是什么关系呢?

YUAN FU:

回复 秋之初:

谢谢您的提示,能否说的更具体一些呢,比如举个例子。下面是我的部分代码,因为我用的是F28335所以直接用浮点计算的。

#define U_k1         1.012

#define U_k2         -0.0123

#define E_k           145.6

#define E_k1          -286.9           

#define E_k2          141.4             //II型补偿TS=50us    

 

void BUCK_BC(void)

{

       extern Uint16 DC_BUS;

      

       BC_SET=Get_SetVol(0);                     //得到BUCK DC 设定值,范围0~2000

       BC_Input=(float32)BC_Feedback;        //反馈输入电压,范围0~2000

 

//——————————补偿网络  

       BC_Uout_2=BC_Uout_1;

       BC_Uout_1=BC_Uout;

      

       BC_Err_2=BC_Err_1;

       BC_Err_1=BC_Err;

       BC_Err=BC_SET-BC_Input;

      

       if(counter_buck<3)

              {//初始的3个周期用于计算ERR值

              counter_buck ++;

              }

       else

              {

              Err_Total=Bc_Gain*(E_k*BC_Err+E_k1*BC_Err_1+E_k2*BC_Err_2);

              U_Total=U_k1*BC_Uout_1+U_k2*BC_Uout_2;

      

              BC_Uout=Err_Total+U_Total;

              }

 

//——————————-占空比输出

       if(BC_Uout>=1.0)

              {

              BC_Uout=1.0;

              }

       else if(BC_Uout<0)

              {

              BC_Uout=0;

              }    

    WR_FPGA_Buck((Uint16)(BC_Uout*2000));      //2000为FPGA内部PWM锯齿波的峰值

       }

说明:DSP的定时器每50us调用一次补偿网络计算程序,该程序执行以下操作

1、启动AD转换并等待完成,时间1.1us

2、执行差分方程计算,时间1.5us

3、输出占空比到FPGA

FPGA内部的PWM的计数幅度为2000,周期为50us。

 

目前数字环的问题:

1、如果完全按差分方程输出,环路不能正常工作,电网电压波动,输出也一同波动。也不能调节输出电压。

2、去掉E(n-1)项后,环路勉强能工作,可以调节输出电压,电网电压波动时可以稳定输出。但是响应很慢,当母线电压为100V时,设定输出为30V时候,从0~30V输出,接近0.5秒。且随设定增加,时间增加。这种情况下,电抗器噪音比较大。

3、在第二中情况下,观察驱动波形占空比,驱动波形要么是最大占空比,要么是最小占空比,比如说输出电压10V时,驱动波形仍然为最大占空比,只是每个驱动脉冲之间间隔200ms,随着输出电压增高,驱动脉冲之间间隔逐渐减小,但占空比还是最大。

您好,我在用F28335控制BUCK电源,按照spraab3中的方法生成了差分方程,我想知道U(n)的输出值是[0,1]之间的占空比吗?

我的差分方程是:U(n)=1.819U(n-1)-0.8187U(n-2)+4.638E(n)-9.076E(n-1)+4.439E(n-2)

我算出来的值很大啊,它与占空比之间是什么关系呢?

秋之初:

回复 YUAN FU:

你好!

有没有单独测试过下面这个函数?

WR_FPGA_Buck((Uint16)(BC_Uout*2000));      //2000为FPGA内部PWM锯齿波的峰值

即 BC_Uout 从 0 至 1变化, FPGA 输出 PWM 占空比 也是相应变化 ?

您好,我在用F28335控制BUCK电源,按照spraab3中的方法生成了差分方程,我想知道U(n)的输出值是[0,1]之间的占空比吗?

我的差分方程是:U(n)=1.819U(n-1)-0.8187U(n-2)+4.638E(n)-9.076E(n-1)+4.439E(n-2)

我算出来的值很大啊,它与占空比之间是什么关系呢?

YUAN FU:

回复 秋之初:

你好,WR_FPGA_Buck()函数已经测试过,没有问题。我又用数字PI试了一下,效果要好一些,我发现不能用“微分环节”,否则与上面的补偿网络的情况类似。我猜想E(n-1)是否与“微分环节”相似呢?另外使用数字PI后,电源的输出对输入的响应也是很慢,长达2~3秒。有谁能告诉我是什么回事啊,谢谢!

您好,我在用F28335控制BUCK电源,按照spraab3中的方法生成了差分方程,我想知道U(n)的输出值是[0,1]之间的占空比吗?

我的差分方程是:U(n)=1.819U(n-1)-0.8187U(n-2)+4.638E(n)-9.076E(n-1)+4.439E(n-2)

我算出来的值很大啊,它与占空比之间是什么关系呢?

秋之初:

回复 YUAN FU:

1、从你的描述看,应该是反馈回路的传递函数设计有问题。

2、你提供的程序的差分方程系数与你前面提供的差分方程系数不一致?

3、你的测试环路的方法,以及提到的调整过程的输入、输出电压、输出电流波形波形能否提供?

您好,我在用F28335控制BUCK电源,按照spraab3中的方法生成了差分方程,我想知道U(n)的输出值是[0,1]之间的占空比吗?

我的差分方程是:U(n)=1.819U(n-1)-0.8187U(n-2)+4.638E(n)-9.076E(n-1)+4.439E(n-2)

我算出来的值很大啊,它与占空比之间是什么关系呢?

YUAN FU:

回复 秋之初:

您好,谢谢您的答复,目前问题还没有解决,我把问题整理了一下放在附件中,你帮忙看看。其中的BODE图是用MATLAB画的。

1、关于差分方程的系数,后来进行了调整,以第二次以后的系数为准。

2、我手头也没有什么好的测试环路的仪器,不止您有没有什么建议。我主要是通过示波器观察输出电压的波形,去掉E(N-1)项后,输出

      电压可以调节,但设定一个输出值后,输出电压回缓慢的斜坡上升至设定值,设定值越大,上升时间约长,可能达到数秒。上升过程未发现

       过冲的现象。

3、有一点我想说明:目前我的FPGA在上电后就连续产生20KHZ锯齿波,DSP每50us将代表占空比的比较值发给FPGA产生脉冲输出。也就是说

     我这里并没能像TI的文档中每次在锯齿波的0起点装载比较值,或者说比较值与锯齿波计数器之间并不是同步的,不知这会有多大影响?

谢谢!

您好,我在用F28335控制BUCK电源,按照spraab3中的方法生成了差分方程,我想知道U(n)的输出值是[0,1]之间的占空比吗?

我的差分方程是:U(n)=1.819U(n-1)-0.8187U(n-2)+4.638E(n)-9.076E(n-1)+4.439E(n-2)

我算出来的值很大啊,它与占空比之间是什么关系呢?

wang maolin:

回复 YUAN FU:

你好,

我用MATLAB做了伯德图,和你做的不一样,不知道为什么,我邮箱:349679275@qq.com

赞(0)
未经允许不得转载:TI中文支持网 » 关于spraab3文档中差分方程输出与占空比的关系
分享到: 更多 (0)