Simulink设计同步Buck电路

前言:笔者最近在做的项目中,要自制大功率数字Buck电源,但是笔者并不是专业做电源,所以!笔者今天就要试试用Simulink来建模、仿真、设计一个同步数字Buck

建立模型

先展示一下建好的模型

wholeModule

Buck的一些经验公式、关系公式可见上一篇文章DC-DC

以及模型建立好之后的工作效果

output

显然在什么工作都不做的情况下,这个电路的工作效果是很差的。纹波大、还震荡、阶跃响应慢…

该模型已经上传至笔者的Github仓库:simulinkModel

参数设定

首先,将实际物理元件的参数写入模型,这才是使仿真有意义的一步!🎈当然在此之前你得有一定的基础知识,知道各个参数分别起什么作用

MOSfet参数

MOS

对于大功率MOS开关管子,重要的决定性参数:

  1. 导通电阻(Drain-Source on resistance)
  2. 工作电流(Drain current)
  3. 开启电压(Gate-source voltage)
  4. 阈值电压(Gate-source threshold voltage)
  5. 结电容(Junction Capacitance)
    1. 输入电容(input capacitance)
    2. 反向转移电容(reverse transfer capacitance)
    3. 输出电容(output capacitance)

JunctionCap

各个参数的大小按照挑选购买的MOS数据手册上的抄就行

LC滤波

电感参数调整

  1. 电感量(inductance)
  2. 等效串联电阻(ESR,series resistance)

Inductor

电容参数调整

  1. 电容量(Capacitance)
  2. 等效串联电阻(ESR,series resistance)

Capacity

友情提示:对于滤波电容电感,理论上来说越大越好,但是要注意考虑无源元件是有储能的噢!而且ESR参数是很致命的,一般来说电容一般都采用阵列并联形式来减小ESR!

半桥驱动器

半桥驱动器需要调整的参数注意要和MOS相互匹配👁‍🗨当然在实际设计中,选择半桥驱动芯片也确实是要和MOS相匹配的

  1. 输出驱动电压

    Output

    该参数和MOS的开启电压有关,也可以理解为实际驱动器芯片的供电电压

  2. 死区定时

    timing

    该参数对驱动器来说是非常重要的!🚀所有的半桥开关都必然存在死区时间,也就是开关管的开关边沿,设想上管关闭还没完成,下管就开始开启,那么两个MOS直接等效成阻性负载接在电源上!☢⚡PANG!建议死区时间将电路搭建出来实际测量

PWM发生器

笔者自制的数字电源必须要强势啊!🌋这边使用了1M的驱动频率

PWM

注意,采样时间(sample time)这个参数将会影响仿真的时间粒度,笔者在此设计为周期的100倍,这样相当于PWM只有100个可调等级。读者若电脑性能Nice建议调整1000~10000个周期的时间粒度以达到更好的效果

实际中设计数字控制器时,比如采用STM32作为主控芯片,PWM发生器可以直接按照实际配置的发生器参数调整

PID参数整定

由于该系统是一个复杂条件系统(非线性系统),所有PID自动整定无法使用。主要是因为没办法做线性模型建模(当然,你打开PID TUNER系统也会告诉你这个错误),毕竟PID控制器是基于线性模型分析诞生的

首先,打开PID TUNER(双击”PID”模块,往下拉,在”Automated tuning”区点击”Tune…”按钮)

PIDtuner

显然这个系统不能自动整定😱好在官方提供了几个在线性化模型失效时使用的解决方案。在此,使用“Identify New Plant”

identifyNewPlant

在“Plant Identification”面板下,选择“Get I/O Data”下的“Simulate Data”

simulateData

工作原理:将PID控制器取下,将指定信号作为原PID控制器的输出注入到相应信号端口,再测量原PID输入端的信号;再由得到的输入、输出信号,拟合出(近似)线性系统,然后再做PID参数整定

所以,要对输入的测试信号进行参数设定(假设使用的是阶跃信号)

  • 采样时间(仿真时间粒度)Sample Time
  • 偏置Offset
  • 阶跃延迟Onset Lag
  • 仿真结束时间Stop Time
  • 阶跃幅度Amplitude(这个要双击边上的设置键弹出)

pulseSet

接着把“VIEW”栏中的“show input response”、”show offset response”和“show identification data”都选上,然后点击“Run simulation”开启仿真和数据采集(电脑的风扇开始哗啦啦转~🌀建议出去看看远景吹吹风relax myself,笔者的i5-Laptop跑了8分钟)

run

tips:开启matlab的“Parral pool”可以大幅度提高电脑资源利用率,当然,matlab会吞下电脑能用的所有资源,所以这时候会超级卡!但是计算会(并行)加速

这个功能就在Matlab主面板的左下角,读者有兴趣可以自己玩玩

接着点击“Apply”然后点击“Close”,回到“Plant Identification”页面,此时,图像上已经有了可视化的阶跃响应数据

plant

由响应曲线的形式,需要更改拟合函数为:二阶复数对极点系统

2pole

再使用自动参数拟合计算

autoEstimate

显然,二阶复数极点系统的拟合效果和matlab仿真得到的曲线可以完美贴合。点击“Apply”,将拟合出来的系统传递给PID Tuner。调整鲁棒性和响应时间参数,就能调整PID控制效果了

Tuner

再回到模型中,对系统仿真

resault

上电瞬间,输出电压超调峰值达到了16.4V;静态电压纹波小于0.1V;相对来说还是不错吧👌等实际制作的时候再调整具体参数,开局过充可以考虑用钳位管解决

参考文献

Matlab官方文档:PID控制器非线性整定

Donate
  • Copyright: Copyright is owned by the author. For commercial reprints, please contact the author for authorization. For non-commercial reprints, please indicate the source.
  • Copyrights © 2022-2024 RY.J
  • Visitors: | Views:

请我喝杯咖啡吧~

支付宝
微信