您好,我在用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