文章目录
- 0. 综述
-
- 0.1 软件安装及常规使用
-
- 0.1.1 C/C 编译器安装
- 0.2 Simulink Model
-
- 0.2.1 子系统 —— 电路封装
-
- 0.2.1.1 设置子系统参数
- 1. 建模实验 —— 半波整流器(详细)
- 2. 建模实验 —— 单相全波整流电路(子系统封装)
- 3. 建模实验 —— 相控/斩控交调压电路(FFT分析)
-
- 3.1 FFT分析
- 3.2 LC滤波电路
- 3.3 实际分析
- 4. 建模实验 —— buck变换器
-
- 4.1 添加调制波和载波
- 5. 建模实验 —— 单端反激变换器
-
- 5.1 离散仿真
- 6. 建模实验 —— 隔离正激变换器
0. 综述
Matlab特别是在原理模拟中,电路模拟非常有用。
本博文涉及的所有电路图都可以在https://download.csdn.net/download/weixin_4359366/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
-
增加交流电压源
-
添加二极管
-
增加负载电阻
-
连接元器件 注意,如果设备的端口是方形的,则只能与方形端口连接。
-
修改组件参数
-
添加测量仪表(电压表、电流表) 添加示波器 双击示波器,两个设置示波器的探头 添加混合器
-
连接电路
-
设置模拟时间:50Hz下一个信号是0.02s,看个波形是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秒,运行仿真,查看示波器波形图