Matlab对电路模拟仿真特别在原理性仿真中是很好用的。
本博文中涉及的所有电路图,可在https://download.csdn.net/download/weixin_43559366/37395285中免积分下载。
版本:Matlab R2018b
:https://zhuanlan.zhihu.com/p/378349402
在matlab的命令行窗口中,随意输入指令行,当未安装编译器时,会提示安装,跳转到其提供的链接进行下载,也可以直接到MinGW官网下载。
进入到连接后,如下图查看Matlab建议的MinGW版本,这里是6.3版本。
到MinGW官网下载页面点击MingW-W64-builds
跳转到下载页面,选择File
拉到下面,没有6.3版本,那就下载6.4版本,然后根据电脑系统位数下载,比如64位系统下载第一个就可以
下载完成后解压,右击此电脑 - 属性 - 高级系统设置 - 环境变量
在用户变量中点击新建,分别填入内容如下,点确定:
MW_MINGW64_LOC
D:\mingw64\bin
(根据minGW64解压的路径而定)在matlab 的命令行窗口中输入mex -setup
,显示如下图信息,即表示编译器安装成功
器件库:如下图部件为Simulink的库,其中包含很多类型的库,关于电子电气的,一般只需要用到Simulink和Simscape中的Electrical中的器件即可,前者是弱电器件(信号模型),后者为强电器件(物理模型)。
wu
在库中添加一个子系统
双击子系统进入编辑窗口,绘制电路,添加输入输出口和连接口
最终子系统电路如下图
返回到电路图后,发现子电路被封装起来,只留下引脚,电路变得简单明了很多
另外一种快速添加子系统的方法,选择需要添加到子系统的电路,点击右下角的三个点,选择创建子系统,即可快速创建主系统电路
右击封装好的子系统,选择Create Mask,
在Parameters & Dialog 页面中添加Edit,然后按需编辑即可
回到子系统电路中,双击元器件编辑参数,在参数中填入之前Edit栏内设置的变量,即可将其关联上
如果设置变量时出现报错,可以先对已设置的变量设置一个初始值(见下一步),再回来关联变量
此后,双击封装好的子系统电路,即可快速编辑子系统电路中的元器件参数
如上所述,新建一个Simulink Model窗口,在库中拖一个powergui到Simulink Model窗口中,拖一个交流电压源、二极管、负载电阻等。
连接元器件
注意器件的端口若是方形的,那它只能与方形的端口链接。
运行查看波形
分开波形窗口,这里布局设置为上下布局
可见此时的波形是比较粗糙的,不像理想的正弦波,这是因为仿真器的步长过大(采样周期过大)导致的,点击菜单栏中的设置,将最大步长设置为0.001s(50Hz信号下一个周期为0.02s,设置采样步长为0.001s)
再次运行仿真,波形变得平滑
那么基本电路就搭建成功,下面按照题目来放入相应的元器件并配置好相应参数。
添加一个4路信号分解器,并与万用表连接
添加一个3路信号混合器,最后连接结果如下图
添加脉冲发生器,给晶闸管触发信号
设置好信号周期和题目要求的延迟角。
再增加一个示波器去查看信号发生器的波形,最终电路如下图
12. 点击运行,查看两个示波器波形,其中示波器2中黄色为电源电压,蓝色为电阻电压,红色为电感电压,可见,由于电感的存在,负载的电压存在一个滞后状态,导致电源电压到零后,负载电压还未到零。
若要修改图形的一些参数,点击菜单栏中的鼠标,然后双击图形空白处即可
将图形修改成以下更加直观的图形之后,点击编辑 - 复制图窗,即可将图形复制
如上所述,新建一个Simulink Model窗口,在库中拖一个powergui到Simulink Model窗口中,使用子系统搭建全桥电路
使用子系统搭建脉冲发生器,该脉冲发生器是用于给晶闸管导通的,其配置的参数如下,其中变量freq、alpha未子系统Mask参数(见0.2.1.1节)
添加负载电阻和电感,参数配置如下
最终外部电路如下
相控交交调压电路、斩控交交调压电路如下,现用Matlab进行电路仿真。
以功率6000W来计算,负载电阻约为8.067ohm .
点击运行仿真,查看示波器波形:
可见负载电压相对电源电压正负半周期都是延迟了30°相位角才触发,其电压平均值于电源电压平均值一样,但RMS(有效值)比电源的RMS小很多,而且延迟角越大,RMS越小,从而实现降压功能
其中Motset 的m脚接的是终端,作用只是防止编译警告
触发电路子系统电路如下
添加选择开关,其作用是当控制端口(输入2端口,即中间那个端口)满足所选标准时,信号通过输入1;否则,通过输入3。控制端口2的标准为u2>=阈值、u2>阈值或u2~=0可选。这里控制端口2的信号为交流电压源信号,即当电源电压为正时,信号通过输入1端口,反之通过输入2端口。
添加信号转换器,输出类型选择布尔型
点击运行,查看示波器波形
将信号放大后可见,输出信号并不平滑,此时分析它的总谐波畸变率(THD)(输出信号所有的谐波之和加基波之和占信号的百分比)
右击要分析的数据,选择"log selected signal",再次点击运行,生成数据
双击Power gui,选择FFT分析(傅里叶分析)
配置好FFT 分析参数,点击Display,即可显示FFT分析波形,从左到右依次为基波、三次谐波、五次谐波、七次谐波 … ,同时可见输出信号的THD为14.62%,总谐波失真非常大
同理查看斩控交交调压电路的THD,注意将最大频率改为40kHz,可见其THD达到99.88%
L1计算:
已知电路功率为6000W,电压值为220V,则计算得输出电流约为27.273A
已知电感的感抗为ωL,电感上的电压为0.05V=ωL * I,已知V=220V、I=27.273A、ω=314,则计算得出L约为0.00128H
C1计算:
电容值通过LC滤波电路的谐振频率公式来计算,谐振频率取5kHz,计算得C约为0.8μF
天机RMS和Display部件查看其负载电压的有效值,再次点击电路运行,查看波形图
回到最初的斩控交交调压电路,理想情况下Mosfet S1和S4互补导通(S2、S3同理),前面的电路触发也是如此设置,但实际电路中可能因为某些原因,存在Mosfet S1、S4都不导通的情况,若此时负载L中存在大电压,此电压得不到及时的泄放,会对负载形成较大的威胁。
回到触发电路子系统电路,将S4、S3配置为常触发状态,修改如下
再次运行并查看示波器,仿真下,结果与前面的分析并无差异。
再次查看FFT分析,发现THD降低到3.47%,满足电网THD<5%的要求。
使用一个示波器查看两个电路的负载电压,可见斩控交交调压电路比相控交交调压电路效果更佳。
主电路原理图如下,简述原理为:
注:
- 万用表观察的是负载R1的电压
- 采集时间为0.02s
点击仿真,查看示波器
可见负载上的电压并不是完全是20V,这是因为Mos管、二极管的导通压降和R、L、C的寄生参数引起的。
添加调制波和载波信号,其中调制波使用参数1实现,载波使用20kHz的锯齿波信号实现,调制波就是目标波形的占空比,因为占空比是40%,所以这里常数值设置为0.4
最后电路搭建如下
点击仿真,查看示波器,波形如下,与第一个电路的结果差不多
电感原边、副边的匝数比,一般通过原边电压和副边电压体现,如下原边电压为24、副边电压为8,那么该变压器的匝数比就是24/8=3:1
DC-DC PWM脉冲发生器,开关频率设置为40kHz,占空比为38.5%
仿真时间设置为0.02s,点击仿真,查看示波器,可见负载电阻电压稳定后处于4V左右
将PWM发生器的占空比设置为50%后,再次仿真查看示波器,可见输出电压大概在7V左右
其原因在于:电路处于开环状态,二极管、Mosfet、变压器中的电阻等会导致压降存在
右击空白处,选择Sample Time Display(采样时间显示),选All,即显示所有采样时间
对应地,在电路中有对应颜色的标识,如参数0.43为常量,那么它就显示为常量的颜色
点击设置按钮
选择固定步长和无连续状态,固定步长设置为0.25e-6
其中,添加离散型PID控制器,设置为PI控制器,设置好PI参数,固定饱和(相当于限幅)
电路工作过程如下: