参考视频:06 单端反激(离散系统仿真)_哔哩哔哩_bilibili

本人使用的matlab版本:Matlab 2024b

电路图:

反激变换器原理:

搭建模型

1.打开MATLAB,点击新建,选择Simulink。

2.点击空白模型。

3.点击库浏览器

4.点击启动独立的库浏览器,这样比较好操作。

5.在Simulink库浏览器中,选中Simscape->Electrical->Specialized Power Systems,找到powergui,将其拖入到模型中。

6.下面依次将用到的器件拖入到模型中。

直流电源:Simscape/Electrical/Specialized Power Systems/Sources/DC Voltage Source

二极管:Simscape/Electrical/Specialized Power Systems/Power Electronics/Diode

Mos管:Simscape/Electrical/Specialized Power Systems/Power Electronics/Mosfet

RLC负载:Simscape/Electrical/Specialized Power Systems/Passives/Series RLC Branch

(可以把它复制分别设置为电感,电容和电阻)

线性变压器:Simscape/Electrical/Specialized Power Systems/Power GridElements/Linear Transformer

7. 根据电路图进行连线,并设置相关参数。

Vi=24V      Vo=5V       f=40kHz       N1/N2=3.0       R=50Ω      Lm=500uH    C=200uF

8.监测电阻支路的电压。

Measurements选中Branch voltage。

添加万用表模块

(Simscape/Electrical/Specialized Power Systems/Sensors and Measurements/Multimeter)

添加示波器模块(Simulink/Sinks/Scope)

双击万用表打开参数设置,选中Ub,点击Select,点击确定。

9. 添加脉冲信号,添加DC/DC信号发生器,开关频率设置为40KHz(位置:Simscape/Electrical/Specialized Power Sy stems/Power Electronics/Power Electronics Control/PWM Generator(DC-DC))。添加常数,设置为0.385作为占空比进行调节(位置:Simulink/Commonly Used Blocks/Constant)。

反激增益G=N2/N1*D/(1-D)=Vo/Vi推出的D=0.385

10.调整停止时间为0.02,点击运行,打开示波器可以看到波形如下:由于系统没有闭环控制,变压器、二极管、mos管都存在电阻,所以会影响压降。

把仿真全部变成离散

11.在空白地方,点击鼠标右键,选择采样时间显示-全部。

(如果没有颜色显示,再次勾选“全选”即可)

12.step1:把simulink环境离散化

选择建模,点击齿轮图标。

在配置参数中,求解器选择类型定步长,求解器选择离散(无连续状态)。定步长(基础采样时间):设置为0.25e-6。(对于相控一般设置为1e-4,对于斩波形式,10kHz,设置为1e-6或者更小,20kHz设置为0.5e-6,以这个大概的比例往后推即可。)

13.step2:powergui电气环境的离散化,双击打开powergui,Simulation type设置为Discrete,Sample tims(s)设置为0.25e-6(设置的数值要是开关频率的整数倍,不然会报错)。

14.step3:控制的离散化

现在添加离散的闭环反馈,添加一个子系统(位置:Simulink/Commonly Used Blocks/Subsystem),进入子系统,添加给定变量,反馈变量和比较,

再添加一个离散的PI调节器(位置:Simulink/Discrete/Discrete PID Controller)。并设置为开环+闭环的信号调节方式。

设置控制器为PI,设置比例积分系数。

进行限幅[-0.3 0.3],意思让占空比在正负0.3进行调节。

在子系统中,添加PWM调节装置

15.点击运行,可以看到波形逐渐靠近5V。

16.在 Simulink 仿真中,如果控制系统是离散控制 + 连续对象,通常会在采样位置加入 零阶保持器(Zero-Order Hold, ZOH),来模拟 ADC采样后到下一个采样周期之间信号保持不变 的真实情况。(位置:Simulink/Discrete/Zero-Order Hold)

17.此时模型中出现了三个离散时间,分析D2,发现是我们引入的PWM调制波没有设置采样时间,我们把采样时间设置为与系统最小时间一致0.25e-6。

18.再打开离散时间显示,就会看到系统中只有两个离散时间,一个是我们控制中的,另外一个是我们系统的最小仿真步长。

19.最后我们要注意,我们现在使用上一拍的采样结果来进行控制的,始终是滞后一拍的,所以我们最好加上延迟(位置:Simulink/Commonly Used Blocks/Delay)。

20.最终波形结果如下:

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐