世纪电源网社区logo
社区
Datasheet
标题
返回顶部
原创

利用matlab对boost pfc电流环进行参数设计

[复制链接]
查看: 1711 |回复: 4
1
flymaco
  • 积分:1359
  • |
  • 主题:2
  • |
  • 帖子:27
积分:1359
LV6
高级工程师
  • 2021-11-26 11:47:28
利用matlab对boost pfc电流环进行参数设计

注:所涉及模型基于matlab2017a环境,已添加附件。
1)求取电流环传递函数,查阅相关文献,已知boost pfc的电流环近似传函Gid(s)为以下形式:
        Gid(s) = Vo/s/L;
        其中Gid(s)为占空比到电流的传递函数,Vo为PFC输出电压,L为PFC电感量。假设Vo=370V,L=500uH,开关频率fs=22.5k

2)新建一个simulink模型,添加LTI SYSTEM,添加PID控制器,给定,负反馈,将电流环的传递函数输入到LTI SYSTEM中,见图1。

3)双击PID控制器,然后点击tune

4)在domain窗口下选择为Frequency,bandwidth设置为如1khz*2*pi(角频率),phase margin设置为60度,见图2。以及点击add plot下可选择画出此时的环路bode图

5)离散化pid数字实现
    前面得到的pid参数:
    按照给出的pid连续域传函使用c2d函数离散化其到离散域,m函数如下:
fs=22.5e3;
Ts=1/fs;
s=tf('s');
L=500e-6;
Vo=370;
Gid=Vo/s/L;
Kp=0.00872547507346268;
Ki=10.4868201325034;
Kd=-2.92650221870534e-07;
N=10809.8606070401;
Gpids=Kp+Ki/s+Kd*(N/(1+N/s));
Tc2=Gpids*Gid;
bode(Tc2);
Gpidz=c2d(Gpids,Ts,'tustin')
得到
Gpidz =
  0.006408 z^2 - 0.008879 z + 0.002652
  ------------------------------------
         z^2 - 1.613 z + 0.6126
         记输出为y(z),输入为x(z),Gpidz=y(z)/x(z)将其转换为差分方程:

        d*y(n)=-e*y(n-1)-f*y(n-2)+a*x(n)+b*x(n-1)+c*x(n-2);

        可在工作区得到Gpidz的更详细的系数。
        a=0.006407750061516;
        b=-0.008879053849337;
        c=0.002651855018351;
        d=1;
        e=-1.612618254571433;
        f=0.612618254571433;
6)在matlab环境下搭建boost pfc 仿真模型图3,进行仿真实验,结果见图4(设置powergui 步长1/5MHZ,pfc开关频率为60khz).    图5(设置powergui 步长1/22.5kHZ,pfc开关频率为22.5khz),实际中一开始波形很有可能是这样的...


        以上为利用matlab辅助设计PID参数的过程,仅供参考,参数设计实为各方面性能进行取舍的过程,以适宜应用场景为准。




图1

图1

图2

图2

图4(powergui设置为1/5MHZ)

图4(powergui设置为1/5MHZ)

图3

图3
_WA46Q4J6[1PJ599RN4(O87.png

matlabfiles.zip

43.65 KB, 下载次数: 44, 下载积分: 财富 -2

相关模型

ygtjcng1
  • 积分:1998
  • |
  • 主题:24
  • |
  • 帖子:123
积分:1998
LV6
高级工程师
  • 2021-11-28 00:42:06
  • 倒数4
 
下载看看,感谢分享
flymaco
  • 积分:1359
  • |
  • 主题:2
  • |
  • 帖子:27
积分:1359
LV6
高级工程师
  • 2021-11-28 17:45:10
  • 倒数3
 
二、继续添加离散域z下的参数设计(本部分主要为参考文献Digital Control For Power Factor Correction搬运)
      1)参考论文《Digital Control For Power Factor Correction》,式子eq3-42可知
        占空比到电流传函为

        Gidz=Vo*Ts/L/(z-1);

       本例中相关参数:Vo=400V,L=380uH,电流采样衰减比Ki=0.0725,fs=100khz,Ts=10us
       补偿器设计目标:穿越频率为8khz,相角裕度45度。

       2) 一零点补偿法
       注意其控制器形式为:Cz=Kp*(z-kk)/(z-1)  ,应该属于PI控制器。 (原论文中在画figure36时,所用Cz表达式可能是笔误,或者考虑了延时1/z)
       图1,图2,图3
       对应的matlab m文件

       L=380e-6;
Vout=400;
fs=100e3;
Ts=1/fs;
Ki=0.0725;
fc=8e3;
wc=2*pi*fc;
%计算kk
degreeA=atan(sin(wc*Ts)/(cos(wc*Ts)-1))*360/2/pi;
degreeB=wc*Ts*180/pi;
degreeC=-2*degreeA-degreeB;
degreeD=-180+45-degreeC;
TanValue=tan(degreeD*2*pi/360);
kk=cos(wc*Ts) - sin(wc*Ts)/TanValue

%计算kp
a=sqrt((sin(wc*Ts))^2+(cos(wc*Ts)-kk)^2);
b=sqrt((sin(wc*Ts))^2+(cos(wc*Ts)-1)^2);
Kp=1*L*b*b/Vout/Ts/a/Ki

        至此,可以得到一零点补偿器。以及经该补偿器补偿后的环路bode图7。
       3)两零点补偿法
        注意其控制器形式为:Cz=Kp*(z-kk)^2/z/(z-1),应该属于PID控制器

  图4,图5,图6
对应的matlab m文件
L=380e-6;
Vout=400;
fs=100e3;
Ts=1/fs;
Ki=0.0725;
Tdelay = Ts;
z=tf('z',Ts);
fc=8e3;
wc=2*pi*fc;
%计算kk
degreeA=atan(sin(wc*Ts)/(cos(wc*Ts)-1))*360/2/pi;
degreeB=wc*Ts*180/pi;
degreeC=-2*degreeA-2*degreeB;
degreeD=(-180+45-degreeC)/2;
TanValue=tan(degreeD*2*pi/360);
kk=cos(wc*Ts) - sin(wc*Ts)/TanValue
%计算kp
a=sqrt((sin(wc*Ts))^2+(cos(wc*Ts)-kk)^2);
b=sqrt((sin(wc*Ts))^2+(cos(wc*Ts)-1)^2);
Kp=1*L*b*b/Vout/Ts/a/a/Ki

            至此,可以得到两零点补偿器。以及经该补偿器补偿后的环路bode图8。相关离散域下参数设计m文件以及参考文件见附件。
      


图1

图1

图2

图2

图3

图3

图4

图4

图5

图5

图6

图6

图7

图7
图8.png

ZzoneFiles.zip

1.14 MB, 下载次数: 25, 下载积分: 财富 -2

m文件以及参考文献

flymaco
  • 积分:1359
  • |
  • 主题:2
  • |
  • 帖子:27
积分:1359
LV6
高级工程师
最新回复
  • 2022-1-17 09:49:27
  • 倒数1
 
继续补充一种PI算法实现过程,
                      (1)已知PI控制器,s域表达式为  Gpi(s)=kp+ki/s;

                      (2)离散z域(   使用后向欧拉s=(z-1)/(Ts*z)  )Gpi (z)=kp+ki*Ts*z/(z-1)。

       其中Ts为采样周期,kp为比例系数,ki为积分系数,记k(idsp)=ki*Ts,注意k(idsp)为最终程序中所写的积分系数。
                     (3)数字化实现
     积分项差分方程(数字化实现):
Uiout (n)=Uiout (n-1)+k(idsp)*E(n);

    比例项:Upout (n)=kp*E(n)
    PI 总输出:Upi (n)=Upout (n)+Uiout (n);
    其中积分项以及总pi输出会添加适当的限幅,防止饱和。此PI写法属于位置式PI算法,离散化方法就是前面提及的后向欧拉。

                      (4)具体步骤:1类似于前面介绍的设计方法,将控制对象的传递函数写入LTI,SYSTEM模块。双击打开pid控制器,设置如图所示,离散,后向欧拉。当前例子为对PID进行参数设计(PI类似),控制设计目标暂定穿越频率为1KHZ,相位裕度45度,如图1所示,得到控制参数kp=0.0067921,ki=35.0287

                       (5)通过m文件可以进一步分析其对应参数对控制性能的影响。







图1

图1

PI_Design.zip

418 Bytes, 下载次数: 6, 下载积分: 财富 -2

PI_Currloop_plant_control.zip

17.11 KB, 下载次数: 3, 下载积分: 财富 -2

yutian378
  • 积分:483
  • |
  • 主题:9
  • |
  • 帖子:81
积分:483
LV6
高级工程师
  • 2021-12-1 15:31:01
  • 倒数2
 
好难啊  楼主用心了
热门技术、经典电源设计资源推荐

世纪电源网总部

地 址:天津市南开区黄河道大通大厦8层

电 话:400-022-5587

传 真:(022)27690960

邮 编:300110

E-mail:21dy#21dianyuan.com(#换成@)

世纪电源网分部

广 东:(0755)28285637 /(13823562357)

北 京:(010)69525295 /(15901552591)

上 海:(021)24200688 /(13585599008)

香 港:HK(852)92121212

China(86)15220029145

网站简介 | 网站帮助 | 意见反馈 | 联系我们 | 广告服务 | 法律声明 | 友情链接 | 清除Cookie | 小黑屋 | 不良信息举报 | 网站举报

Copyright 2008-2022 21dianyuan.com All Rights Reserved    备案许可证号为:津ICP备10002348