文章目录
0. 综述
Matlab对电路模拟仿真特别在原理性仿真中是很好用的。
本博文中涉及的所有电路图,可在https://download.csdn.net/download/weixin_43559366/37395285中免积分下载。
0.1 软件安装与常规使用
版本:Matlab R2018b
🔗:https://zhuanlan.zhihu.com/p/378349402
- Simulink Model界面放大缩小:鼠标滚轮,按空格即可回到原始尺寸
- 元器件参数修改:双击元器件即可
- 快速复制元器件:对元器件使用鼠标右键拖动
- 元器件的使用说明:右击元器件 - help
- 采样步长配置参考:8kHz下,一般选择1e-6的最大采样步长
- 示波器波形测量:
- 添加注释:空白处拖动,点击Creat Area
- 载波信号:使用重复序列实现
三角波设置方法例子如下
锯齿波设置方法例子如下
0.1.1 C/C++编译器安装
在matlab的命令行窗口中,随意输入指令行,当未安装编译器时,会提示安装,跳转到其提供的链接进行下载,也可以直接到MinGW官网下载。
进入到连接后,如下图查看Matlab建议的MinGW版本,这里是6.3版本。
到MinGW官网下载页面点击MingW-W64-builds
跳转到下载页面,选择File
拉到下面,没有6.3版本,那就下载6.4版本,然后根据电脑系统位数下载,比如64位系统下载第一个就可以
下载完成后解压,右击此电脑 - 属性 - 高级系统设置 - 环境变量
在用户变量中点击新建,分别填入内容如下,点确定:
- 变量名:
MW_MINGW64_LOC
- 变量值:minGW64解压的地方(路径不要有中文)
双击系统变量中的 path,新建一个路径:D:\mingw64\bin
(根据minGW64解压的路径而定)
完成上述配置后,重启matlab
在matlab 的命令行窗口中输入mex -setup
,显示如下图信息,即表示编译器安装成功
0.2 Simulink Model
-
新建Simulink Model:
-
器件库:如下图部件为Simulink的库,其中包含很多类型的库,关于电子电气的,一般只需要用到Simulink和Simscape中的Electrical中的器件即可,前者是弱电器件(信号模型),后者为强电器件(物理模型)。
wu
0.2.1 子系统 —— 电路封装
在库中添加一个子系统
双击子系统进入编辑窗口,绘制电路,添加输入输出口和连接口
最终子系统电路如下图
返回到电路图后,发现子电路被封装起来,只留下引脚,电路变得简单明了很多
另外一种快速添加子系统的方法,选择需要添加到子系统的电路,点击右下角的三个点,选择创建子系统,即可快速创建主系统电路
0.2.1.1 子系统参数设置
右击封装好的子系统,选择Create Mask,
在Parameters & Dialog 页面中添加Edit,然后按需编辑即可
回到子系统电路中,双击元器件编辑参数,在参数中填入之前Edit栏内设置的变量,即可将其关联上
如果设置变量时出现报错,可以先对已设置的变量设置一个初始值(见下一步),再回来关联变量
此后,双击封装好的子系统电路,即可快速编辑子系统电路中的元器件参数
1. 建模实验 —— 半波整流器(详细)
习题如下,使用Matlab进行电路仿真,并得出相应的结果。
如上所述,新建一个Simulink Model窗口,在库中拖一个powergui到Simulink Model窗口中,拖一个交流电压源、二极管、负载电阻等。
-
添加powergui
-
添加交流电压源
-
添加二极管
-
添加负载电阻
-
连接元器件
注意器件的端口若是方形的,那它只能与方形的端口链接。 -
修改元器件参数
-
添加测量仪表(电压表、电流表)
添加示波器
双击示波器,设置示波器的探头为2个
添加混合器
-
连接电路
-
设置仿真时间:50Hz下一个信号为0.02s,看5个波形就是0.1s
-
运行查看波形
分开波形窗口,这里布局设置为上下布局
可见此时的波形是比较粗糙的,不像理想的正弦波,这是因为仿真器的步长过大(采样周期过大)导致的,点击菜单栏中的设置,将最大步长设置为0.001s(50Hz信号下一个周期为0.02s,设置采样步长为0.001s)
再次运行仿真,波形变得平滑
那么基本电路就搭建成功,下面按照题目来放入相应的元器件并配置好相应参数。
波形图的放大缩小,对波形图使用滚轮或如下图按钮即可
- 使用一个晶闸管代替电路中二极管
修改电压源电压有效值为120V
增加电感负载并设置成0.048H,电阻阻值改为20Ω.
添加万用表并将之前的电压表、电流表删除
将电压源中的测量设置为电压测量,同理将电阻中的测量改为电压、电流测量,电感中的测量改为电压测量。
重命名元器件
双击万用表,将所有测量点添加到右边
添加一个4路信号分解器,并与万用表连接
添加一个3路信号混合器,最后连接结果如下图
添加脉冲发生器,给晶闸管触发信号
设置好信号周期和题目要求的延迟角。
再增加一个示波器去查看信号发生器的波形,最终电路如下图
12. 点击运行,查看两个示波器波形,其中示波器2中黄色为电源电压,蓝色为电阻电压,红色为电感电压,可见,由于电感的存在,负载的电压存在一个滞后状态,导致电源电压到零后,负载电压还未到零。
- 添加平均值、有效值的测量,再添加一个显示窗口
最终电路连接如下图
- 导出仿真数据:右击要导出的仿真数据,选择"log selected signal"
点击运行,再Matlab界面的工作区中,就保存了该信号的log文件,双击打开,有一个"value"文件,选中并选择上方菜单栏的绘图,选择plot,即可绘制该数据的图形
若要修改图形的一些参数,点击菜单栏中的鼠标,然后双击图形空白处即可
将图形修改成以下更加直观的图形之后,点击编辑 - 复制图窗,即可将图形复制
2. 建模实验 —— 单相全波整流电路(子系统封装)
如上所述,新建一个Simulink Model窗口,在库中拖一个powergui到Simulink Model窗口中,使用子系统搭建全桥电路
使用子系统搭建脉冲发生器,该脉冲发生器是用于给晶闸管导通的,其配置的参数如下,其中变量freq、alpha未子系统Mask参数(见0.2.1.1节)
添加负载电阻和电感,参数配置如下
最终外部电路如下
运行后波形图如下
3. 建模实验 —— 相控/斩控交交调压电路(FFT分析)
相控交交调压电路、斩控交交调压电路如下,现用Matlab进行电路仿真。
- 相控交交调压电路:当交流电源为正相时,晶闸管S1导通,反之S2导通
- 斩控交交调压电路:当交流电源为正相时,晶闸管S1导通,反之S2导通,其中S3、S4是感性负载的续流作用
相控交交调压电路如下:
参数如下:
以功率6000W来计算,负载电阻约为8.067ohm .
仿真时间为0.06秒即可
最大采样步长设置为0.0001秒
点击运行仿真,查看示波器波形:
可见负载电压相对电源电压正负半周期都是延迟了30°相位角才触发,其电压平均值于电源电压平均值一样,但RMS(有效值)比电源的RMS小很多,而且延迟角越大,RMS越小,从而实现降压功能
斩控交交调压电路如下
电源与负载参数与相控交交调压电路一样,如下
其中主电路子系统电路如下
其中Motset 的m脚接的是终端,作用只是防止编译警告
触发电路子系统电路如下
添加选择开关,其作用是当控制端口(输入2端口,即中间那个端口)满足所选标准时,信号通过输入1;否则,通过输入3。控制端口2的标准为u2>=阈值、u2>阈值或u2~=0可选。这里控制端口2的信号为交流电压源信号,即当电源电压为正时,信号通过输入1端口,反之通过输入2端口。
添加信号转换器,输出类型选择布尔型
添加逻辑信号操作器,配置为反相器
添加常数,常数设置为0,输出类型为布尔型
添加脉冲发生器,参数如下
点击运行,查看示波器波形
将信号放大后可见,输出信号并不平滑,此时分析它的总谐波畸变率(THD)(输出信号所有的谐波之和加基波之和占信号的百分比)
3.1 FFT分析
右击要分析的数据,选择"log selected signal",再次点击运行,生成数据
双击Power gui,选择FFT分析(傅里叶分析)
配置好FFT 分析参数,点击Display,即可显示FFT分析波形,从左到右依次为基波、三次谐波、五次谐波、七次谐波 … ,同时可见输出信号的THD为14.62%,总谐波失真非常大
同理查看斩控交交调压电路的THD,注意将最大频率改为40kHz,可见其THD达到99.88%
3.2 LC滤波电路
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部件查看其负载电压的有效值,再次点击电路运行,查看波形图
3.3 实际分析
回到最初的斩控交交调压电路,理想情况下Mosfet S1和S4互补导通(S2、S3同理),前面的电路触发也是如此设置,但实际电路中可能因为某些原因,存在Mosfet S1、S4都不导通的情况,若此时负载L中存在大电压,此电压得不到及时的泄放,会对负载形成较大的威胁。
回到触发电路子系统电路,将S4、S3配置为常触发状态,修改如下
再次运行并查看示波器,仿真下,结果与前面的分析并无差异。
再次查看FFT分析,发现THD降低到3.47%,满足电网THD<5%的要求。
使用一个示波器查看两个电路的负载电压,可见斩控交交调压电路比相控交交调压电路效果更佳。
4. 建模实验 —— buck变换器
主电路原理图如下,简述原理为:
- 当Mos管S打开时,电源电压通过电感给电容和负载供电
- 当Mos管S关闭时,电感上储蓄的能量通过二极管协防,继续给电容和负载供电
搭建电路与参数如下
注:
- 万用表观察的是负载R1的电压
- 采集时间为0.02s
点击仿真,查看示波器
可见负载上的电压并不是完全是20V,这是因为Mos管、二极管的导通压降和R、L、C的寄生参数引起的。
4.1 添加调制波与载波
添加调制波和载波信号,其中调制波使用参数1实现,载波使用20kHz的锯齿波信号实现,调制波就是目标波形的占空比,因为占空比是40%,所以这里常数值设置为0.4
添加加法器并修改参数
添加零比较器并修改为大于0时输出为真(1)
最后电路搭建如下
点击仿真,查看示波器,波形如下,与第一个电路的结果差不多
5. 建模实验 —— 单端反激变换器
电路原理、参数与运行原理如下。
搭建电路如下:
其中线性变压器:
其参数解释如下:
- 单位,pu为标幺值单位,SI为标准值单位
- 运行功率与频率
- 原边电压(重要)、电阻、漏电感值
- 副边电压(重要)、电阻、漏电感值
- 励磁电阻、励磁电感(重要)
电感原边、副边的匝数比,一般通过原边电压和副边电压体现,如下原边电压为24、副边电压为8,那么该变压器的匝数比就是24/8=3:1
DC-DC PWM脉冲发生器,开关频率设置为40kHz,占空比为38.5%
仿真时间设置为0.02s,点击仿真,查看示波器,可见负载电阻电压稳定后处于4V左右
将PWM发生器的占空比设置为50%后,再次仿真查看示波器,可见输出电压大概在7V左右
其原因在于:电路处于开环状态,二极管、Mosfet、变压器中的电阻等会导致压降存在
5.1 离散仿真
右击空白处,选择Sample Time Display(采样时间显示),选All,即显示所有采样时间
然后弹出一个框,其中:
- 连续量
- 固定最小步长量
- 离散量
- 常量
- 混合量
对应地,在电路中有对应颜色的标识,如参数0.43为常量,那么它就显示为常量的颜色
点击设置按钮
选择固定步长和无连续状态,固定步长设置为0.25e-6
双击Power GUI,同样设置为离散仿真
添加一个子系统,其电路如下
其中,添加离散型PID控制器,设置为PI控制器,设置好PI参数,固定饱和(相当于限幅)
返回到主电路并连接
运行仿真,查看示波器,可见,电压最后能稳定到5V左右。
最后,添加一个零阶保持器和滞后器到子系统电路
6. 建模实验 —— 隔离正激变换器
电路原理图与参数如下:
电路工作过程如下:
- 当Mos管S导通时:电源通过变压器N1到N2传递能量,同时给电感Lm充电。副边给电感L充电,给负载C、R供电。
- 当Mos管S关断时:电感Lm释放能量,通过绕组N1续流,电流从N1非同名端流出,若传递到N2,电流也应该从非同名端流出,但副边N2无电流回路,则N1的能量只能传递到N3,电流从N3非同名端流出,回馈到电源端。
Matlab中电路搭建与参数设置如下:
使用离散仿真模式
脉冲发生器
变压器
示波器查看负载电阻电压和绕组N3的电流
仿真时间设置为0.02秒,运行仿真,查看示波器波形图
7. 建模实验 —— DC/DC Cuk变换电路
DC/DC Cuk变换电路优点是输出电压纹波小,但缺点是要有足够大的电容;
实验参数:
- 输入12-24V
- 输出10-30V
- 负载电阻10Ω
原理图概览:
7.1 新建工程
- 新建一个新的Simulink Model;
- 新建一个新的实时脚本;
7.2 放置与连接元器件
在Simulink Model 中依次放入以下元器件(在页面内,直接输入目标元器件即可快速选择放置):
-
DC 电压源DC Voltage Source
-
电阻电容电感Series RLC Branch,依次为L1、L2、C1、C2、Rl,双击元件,将他配置成目标元件
-
晶体管Mosfet
-
二极管diode
-
电压测量仪Voltage Measurement
-
电流测试仪
-
电压电流显示仪display
-
信号发生器pulse generator
-
示波器Scope
-
powergui
放置完成后,根据上述原理图摆放连接;
- [理论]将二极管正向压降值从0.8V改为0,实际制造电路中,二极管的正向压降是不可避免的,它会导致输出电压偏低0.8V,解决方法是适当提高MOSFET 的栅极控制PWM 的占空比以作补偿
- [理论]将MOSFET 的导通电阻值从0.1ohm 改为0.00001ohm
7.3 编写实时脚本代码
- 在实时脚本中输入代码
- 运行代码,得到仿真结果值,把结果值复制粘贴到电路对应元器件参数中
7.4 运行仿真
-
Simulink 中点击运行,查看运行结果
-
双击示波器,点击设置,设置输入通道数为3,采样时间为0
-
View - Layout,修改示波器输入源的摆放,查看示波器结果,界面从上到下依次为输入信号1、2、3
-
根据偏好,设置示波器显示的样式
7.5 资料备份
百度网盘 - 知识资源 - 电子工程 - Matlab 工程 - cukMatlabFile.rar