Matlab —— 电路仿真

文章目录

  • 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_43559366/37395285中免积分下载。

0.1 软件安装与常规使用

版本:Matlab R2018b
:https://zhuanlan.zhihu.com/p/378349402

  • Simulink Model界面放大缩小:鼠标滚轮,按空格即可回到原始尺寸
  • 元器件参数修改:双击元器件即可
  • 快速复制元器件:对元器件使用鼠标右键拖动
  • 元器件的使用说明:右击元器件 - help
  • 采样步长配置参考:8kHz下,一般选择1e-6的最大采样步长
  • 示波器波形测量:
    Matlab —— 电路仿真_第1张图片
  • 添加注释:空白处拖动,点击Creat Area
    Matlab —— 电路仿真_第2张图片
  • 载波信号:使用重复序列实现
    Matlab —— 电路仿真_第3张图片
    三角波设置方法例子如下

Matlab —— 电路仿真_第4张图片
锯齿波设置方法例子如下
Matlab —— 电路仿真_第5张图片

0.1.1 C/C++编译器安装

在matlab的命令行窗口中,随意输入指令行,当未安装编译器时,会提示安装,跳转到其提供的链接进行下载,也可以直接到MinGW官网下载。
Matlab —— 电路仿真_第6张图片
进入到连接后,如下图查看Matlab建议的MinGW版本,这里是6.3版本。
Matlab —— 电路仿真_第7张图片
到MinGW官网下载页面点击MingW-W64-builds
Matlab —— 电路仿真_第8张图片
跳转到下载页面,选择File
Matlab —— 电路仿真_第9张图片
拉到下面,没有6.3版本,那就下载6.4版本,然后根据电脑系统位数下载,比如64位系统下载第一个就可以
在这里插入图片描述

下载完成后解压,右击此电脑 - 属性 - 高级系统设置 - 环境变量
Matlab —— 电路仿真_第10张图片
Matlab —— 电路仿真_第11张图片
在用户变量中点击新建,分别填入内容如下,点确定:

  1. 变量名:MW_MINGW64_LOC
  2. 变量值:minGW64解压的地方(路径不要有中文)
    Matlab —— 电路仿真_第12张图片
    双击系统变量中的 path,新建一个路径:D:\mingw64\bin(根据minGW64解压的路径而定)
    Matlab —— 电路仿真_第13张图片
    完成上述配置后,重启matlab

在matlab 的命令行窗口中输入mex -setup,显示如下图信息,即表示编译器安装成功
Matlab —— 电路仿真_第14张图片

0.2 Simulink Model

  • 新建Simulink Model:
    Matlab —— 电路仿真_第15张图片

  • 器件库:如下图部件为Simulink的库,其中包含很多类型的库,关于电子电气的,一般只需要用到Simulink和Simscape中的Electrical中的器件即可,前者是弱电器件(信号模型),后者为强电器件(物理模型)。
    wuMatlab —— 电路仿真_第16张图片
    Matlab —— 电路仿真_第17张图片

0.2.1 子系统 —— 电路封装

在库中添加一个子系统
Matlab —— 电路仿真_第18张图片
双击子系统进入编辑窗口,绘制电路,添加输入输出口和连接口
Matlab —— 电路仿真_第19张图片
Matlab —— 电路仿真_第20张图片

最终子系统电路如下图

Matlab —— 电路仿真_第21张图片
返回到电路图后,发现子电路被封装起来,只留下引脚,电路变得简单明了很多

Matlab —— 电路仿真_第22张图片


另外一种快速添加子系统的方法,选择需要添加到子系统的电路,点击右下角的三个点,选择创建子系统,即可快速创建主系统电路
Matlab —— 电路仿真_第23张图片

0.2.1.1 子系统参数设置

右击封装好的子系统,选择Create Mask,
Matlab —— 电路仿真_第24张图片
在Parameters & Dialog 页面中添加Edit,然后按需编辑即可
Matlab —— 电路仿真_第25张图片
回到子系统电路中,双击元器件编辑参数,在参数中填入之前Edit栏内设置的变量,即可将其关联上
Matlab —— 电路仿真_第26张图片

如果设置变量时出现报错,可以先对已设置的变量设置一个初始值(见下一步),再回来关联变量

此后,双击封装好的子系统电路,即可快速编辑子系统电路中的元器件参数
Matlab —— 电路仿真_第27张图片

1. 建模实验 —— 半波整流器(详细)

习题如下,使用Matlab进行电路仿真,并得出相应的结果。
Matlab —— 电路仿真_第28张图片
Matlab —— 电路仿真_第29张图片


如上所述,新建一个Simulink Model窗口,在库中拖一个powergui到Simulink Model窗口中,拖一个交流电压源、二极管、负载电阻等。

  1. 添加powergui
    Matlab —— 电路仿真_第30张图片

  2. 添加交流电压源
    Matlab —— 电路仿真_第31张图片

  3. 添加二极管
    Matlab —— 电路仿真_第32张图片

  4. 添加负载电阻
    Matlab —— 电路仿真_第33张图片

  5. 连接元器件
    注意器件的端口若是方形的,那它只能与方形的端口链接。

  6. 修改元器件参数
    Matlab —— 电路仿真_第34张图片
    Matlab —— 电路仿真_第35张图片

  7. 添加测量仪表(电压表、电流表)
    Matlab —— 电路仿真_第36张图片
    添加示波器
    Matlab —— 电路仿真_第37张图片
    双击示波器,设置示波器的探头为2个
    Matlab —— 电路仿真_第38张图片
    添加混合器
    Matlab —— 电路仿真_第39张图片

  8. 连接电路
    Matlab —— 电路仿真_第40张图片

  9. 设置仿真时间:50Hz下一个信号为0.02s,看5个波形就是0.1s
    Matlab —— 电路仿真_第41张图片

  10. 运行查看波形
    Matlab —— 电路仿真_第42张图片
    分开波形窗口,这里布局设置为上下布局
    Matlab —— 电路仿真_第43张图片
    可见此时的波形是比较粗糙的,不像理想的正弦波,这是因为仿真器的步长过大(采样周期过大)导致的,点击菜单栏中的设置,将最大步长设置为0.001s(50Hz信号下一个周期为0.02s,设置采样步长为0.001s)
    Matlab —— 电路仿真_第44张图片
    Matlab —— 电路仿真_第45张图片

再次运行仿真,波形变得平滑
Matlab —— 电路仿真_第46张图片
那么基本电路就搭建成功,下面按照题目来放入相应的元器件并配置好相应参数。

波形图的放大缩小,对波形图使用滚轮或如下图按钮即可
Matlab —— 电路仿真_第47张图片

  1. 使用一个晶闸管代替电路中二极管
    Matlab —— 电路仿真_第48张图片
    修改电压源电压有效值为120V
    Matlab —— 电路仿真_第49张图片
    增加电感负载并设置成0.048H,电阻阻值改为20Ω.
    Matlab —— 电路仿真_第50张图片
    添加万用表并将之前的电压表、电流表删除
    Matlab —— 电路仿真_第51张图片
    将电压源中的测量设置为电压测量,同理将电阻中的测量改为电压、电流测量,电感中的测量改为电压测量。
    Matlab —— 电路仿真_第52张图片Matlab —— 电路仿真_第53张图片
    重命名元器件
    Matlab —— 电路仿真_第54张图片
    双击万用表,将所有测量点添加到右边
    Matlab —— 电路仿真_第55张图片

添加一个4路信号分解器,并与万用表连接
Matlab —— 电路仿真_第56张图片
添加一个3路信号混合器,最后连接结果如下图
Matlab —— 电路仿真_第57张图片
添加脉冲发生器,给晶闸管触发信号
Matlab —— 电路仿真_第58张图片
设置好信号周期和题目要求的延迟角。
Matlab —— 电路仿真_第59张图片
再增加一个示波器去查看信号发生器的波形,最终电路如下图
Matlab —— 电路仿真_第60张图片
12. 点击运行,查看两个示波器波形,其中示波器2中黄色为电源电压,蓝色为电阻电压,红色为电感电压,可见,由于电感的存在,负载的电压存在一个滞后状态,导致电源电压到零后,负载电压还未到零。
Matlab —— 电路仿真_第61张图片

  1. 添加平均值、有效值的测量,再添加一个显示窗口
    Matlab —— 电路仿真_第62张图片
    Matlab —— 电路仿真_第63张图片
    最终电路连接如下图
    Matlab —— 电路仿真_第64张图片
  2. 导出仿真数据:右击要导出的仿真数据,选择"log selected signal"
    Matlab —— 电路仿真_第65张图片
    点击运行,再Matlab界面的工作区中,就保存了该信号的log文件,双击打开,有一个"value"文件,选中并选择上方菜单栏的绘图,选择plot,即可绘制该数据的图形
    Matlab —— 电路仿真_第66张图片
    Matlab —— 电路仿真_第67张图片

若要修改图形的一些参数,点击菜单栏中的鼠标,然后双击图形空白处即可
Matlab —— 电路仿真_第68张图片
将图形修改成以下更加直观的图形之后,点击编辑 - 复制图窗,即可将图形复制
Matlab —— 电路仿真_第69张图片

Matlab —— 电路仿真_第70张图片

2. 建模实验 —— 单相全波整流电路(子系统封装)

如上所述,新建一个Simulink Model窗口,在库中拖一个powergui到Simulink Model窗口中,使用子系统搭建全桥电路

在这里插入图片描述

使用子系统搭建脉冲发生器,该脉冲发生器是用于给晶闸管导通的,其配置的参数如下,其中变量freq、alpha未子系统Mask参数(见0.2.1.1节)
Matlab —— 电路仿真_第71张图片
Matlab —— 电路仿真_第72张图片
添加负载电阻和电感,参数配置如下
Matlab —— 电路仿真_第73张图片

最终外部电路如下

Matlab —— 电路仿真_第74张图片

运行后波形图如下
Matlab —— 电路仿真_第75张图片

3. 建模实验 —— 相控/斩控交交调压电路(FFT分析)

相控交交调压电路、斩控交交调压电路如下,现用Matlab进行电路仿真。

  • 相控交交调压电路:当交流电源为正相时,晶闸管S1导通,反之S2导通
  • 斩控交交调压电路:当交流电源为正相时,晶闸管S1导通,反之S2导通,其中S3、S4是感性负载的续流作用

在这里插入图片描述


相控交交调压电路如下:
Matlab —— 电路仿真_第76张图片

参数如下:
Matlab —— 电路仿真_第77张图片
在这里插入图片描述

以功率6000W来计算,负载电阻约为8.067ohm .

Matlab —— 电路仿真_第78张图片

Matlab —— 电路仿真_第79张图片

仿真时间为0.06秒即可
Matlab —— 电路仿真_第80张图片

最大采样步长设置为0.0001秒
Matlab —— 电路仿真_第81张图片

点击运行仿真,查看示波器波形:

可见负载电压相对电源电压正负半周期都是延迟了30°相位角才触发,其电压平均值于电源电压平均值一样,但RMS(有效值)比电源的RMS小很多,而且延迟角越大,RMS越小,从而实现降压功能
Matlab —— 电路仿真_第82张图片


斩控交交调压电路如下
Matlab —— 电路仿真_第83张图片

电源与负载参数与相控交交调压电路一样,如下
Matlab —— 电路仿真_第84张图片
Matlab —— 电路仿真_第85张图片


其中主电路子系统电路如下
Matlab —— 电路仿真_第86张图片

其中Motset 的m脚接的是终端,作用只是防止编译警告

Matlab —— 电路仿真_第87张图片


触发电路子系统电路如下

Matlab —— 电路仿真_第88张图片

添加选择开关,其作用是当控制端口(输入2端口,即中间那个端口)满足所选标准时,信号通过输入1;否则,通过输入3。控制端口2的标准为u2>=阈值、u2>阈值或u2~=0可选。这里控制端口2的信号为交流电压源信号,即当电源电压为正时,信号通过输入1端口,反之通过输入2端口。
Matlab —— 电路仿真_第89张图片
添加信号转换器,输出类型选择布尔型
Matlab —— 电路仿真_第90张图片
Matlab —— 电路仿真_第91张图片

添加逻辑信号操作器,配置为反相器
在这里插入图片描述
Matlab —— 电路仿真_第92张图片

添加常数,常数设置为0,输出类型为布尔型
Matlab —— 电路仿真_第93张图片
Matlab —— 电路仿真_第94张图片

Matlab —— 电路仿真_第95张图片
添加脉冲发生器,参数如下
Matlab —— 电路仿真_第96张图片


点击运行,查看示波器波形
Matlab —— 电路仿真_第97张图片
将信号放大后可见,输出信号并不平滑,此时分析它的总谐波畸变率(THD)(输出信号所有的谐波之和加基波之和占信号的百分比)

Matlab —— 电路仿真_第98张图片

3.1 FFT分析

右击要分析的数据,选择"log selected signal",再次点击运行,生成数据
Matlab —— 电路仿真_第99张图片
双击Power gui,选择FFT分析(傅里叶分析)
Matlab —— 电路仿真_第100张图片
配置好FFT 分析参数,点击Display,即可显示FFT分析波形,从左到右依次为基波、三次谐波、五次谐波、七次谐波 … ,同时可见输出信号的THD为14.62%,总谐波失真非常大
Matlab —— 电路仿真_第101张图片

同理查看斩控交交调压电路的THD,注意将最大频率改为40kHz,可见其THD达到99.88%
Matlab —— 电路仿真_第102张图片

3.2 LC滤波电路

Matlab —— 电路仿真_第103张图片
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部件查看其负载电压的有效值,再次点击电路运行,查看波形图
Matlab —— 电路仿真_第104张图片

Matlab —— 电路仿真_第105张图片

3.3 实际分析

回到最初的斩控交交调压电路,理想情况下Mosfet S1和S4互补导通(S2、S3同理),前面的电路触发也是如此设置,但实际电路中可能因为某些原因,存在Mosfet S1、S4都不导通的情况,若此时负载L中存在大电压,此电压得不到及时的泄放,会对负载形成较大的威胁。
Matlab —— 电路仿真_第106张图片

回到触发电路子系统电路,将S4、S3配置为常触发状态,修改如下
Matlab —— 电路仿真_第107张图片
再次运行并查看示波器,仿真下,结果与前面的分析并无差异。

再次查看FFT分析,发现THD降低到3.47%,满足电网THD<5%的要求。
Matlab —— 电路仿真_第108张图片

使用一个示波器查看两个电路的负载电压,可见斩控交交调压电路比相控交交调压电路效果更佳。
Matlab —— 电路仿真_第109张图片
Matlab —— 电路仿真_第110张图片

4. 建模实验 —— buck变换器

主电路原理图如下,简述原理为:

  1. 当Mos管S打开时,电源电压通过电感给电容和负载供电
  2. 当Mos管S关闭时,电感上储蓄的能量通过二极管协防,继续给电容和负载供电
    在这里插入图片描述
    搭建电路与参数如下
    Matlab —— 电路仿真_第111张图片Matlab —— 电路仿真_第112张图片
    Matlab —— 电路仿真_第113张图片

注:

  1. 万用表观察的是负载R1的电压
  2. 采集时间为0.02s

点击仿真,查看示波器
Matlab —— 电路仿真_第114张图片可见负载上的电压并不是完全是20V,这是因为Mos管、二极管的导通压降和R、L、C的寄生参数引起的。

4.1 添加调制波与载波

添加调制波和载波信号,其中调制波使用参数1实现,载波使用20kHz的锯齿波信号实现,调制波就是目标波形的占空比,因为占空比是40%,所以这里常数值设置为0.4
Matlab —— 电路仿真_第115张图片
Matlab —— 电路仿真_第116张图片

添加加法器并修改参数
Matlab —— 电路仿真_第117张图片
Matlab —— 电路仿真_第118张图片

添加零比较器并修改为大于0时输出为真(1)
Matlab —— 电路仿真_第119张图片
Matlab —— 电路仿真_第120张图片


最后电路搭建如下
Matlab —— 电路仿真_第121张图片
点击仿真,查看示波器,波形如下,与第一个电路的结果差不多
Matlab —— 电路仿真_第122张图片

5. 建模实验 —— 单端反激变换器

电路原理、参数与运行原理如下。
Matlab —— 电路仿真_第123张图片

Matlab —— 电路仿真_第124张图片


搭建电路如下:
Matlab —— 电路仿真_第125张图片

其中线性变压器:
Matlab —— 电路仿真_第126张图片
其参数解释如下:

  1. 单位,pu为标幺值单位,SI为标准值单位
  2. 运行功率与频率
  3. 原边电压(重要)、电阻、漏电感值
  4. 副边电压(重要)、电阻、漏电感值
  5. 励磁电阻、励磁电感(重要)

电感原边、副边的匝数比,一般通过原边电压和副边电压体现,如下原边电压为24、副边电压为8,那么该变压器的匝数比就是24/8=3:1

Matlab —— 电路仿真_第127张图片

DC-DC PWM脉冲发生器,开关频率设置为40kHz,占空比为38.5%
Matlab —— 电路仿真_第128张图片
Matlab —— 电路仿真_第129张图片


仿真时间设置为0.02s,点击仿真,查看示波器,可见负载电阻电压稳定后处于4V左右

Matlab —— 电路仿真_第130张图片

将PWM发生器的占空比设置为50%后,再次仿真查看示波器,可见输出电压大概在7V左右
Matlab —— 电路仿真_第131张图片

其原因在于:电路处于开环状态,二极管、Mosfet、变压器中的电阻等会导致压降存在

5.1 离散仿真

右击空白处,选择Sample Time Display(采样时间显示),选All,即显示所有采样时间

Matlab —— 电路仿真_第132张图片
然后弹出一个框,其中:

  1. 连续量
  2. 固定最小步长量
  3. 离散量
  4. 常量
  5. 混合量

对应地,在电路中有对应颜色的标识,如参数0.43为常量,那么它就显示为常量的颜色

Matlab —— 电路仿真_第133张图片

点击设置按钮
Matlab —— 电路仿真_第134张图片
选择固定步长和无连续状态,固定步长设置为0.25e-6
Matlab —— 电路仿真_第135张图片

双击Power GUI,同样设置为离散仿真
Matlab —— 电路仿真_第136张图片


添加一个子系统,其电路如下
Matlab —— 电路仿真_第137张图片

其中,添加离散型PID控制器,设置为PI控制器,设置好PI参数,固定饱和(相当于限幅)
Matlab —— 电路仿真_第138张图片
Matlab —— 电路仿真_第139张图片
Matlab —— 电路仿真_第140张图片

返回到主电路并连接
Matlab —— 电路仿真_第141张图片

运行仿真,查看示波器,可见,电压最后能稳定到5V左右。
Matlab —— 电路仿真_第142张图片

最后,添加一个零阶保持器和滞后器到子系统电路
Matlab —— 电路仿真_第143张图片
Matlab —— 电路仿真_第144张图片

6. 建模实验 —— 隔离正激变换器

电路原理图与参数如下:
Matlab —— 电路仿真_第145张图片
Matlab —— 电路仿真_第146张图片


电路工作过程如下:

  1. 当Mos管S导通时:电源通过变压器N1到N2传递能量,同时给电感Lm充电。副边给电感L充电,给负载C、R供电。
    Matlab —— 电路仿真_第147张图片
  2. 当Mos管S关断时:电感Lm释放能量,通过绕组N1续流,电流从N1非同名端流出,若传递到N2,电流也应该从非同名端流出,但副边N2无电流回路,则N1的能量只能传递到N3,电流从N3非同名端流出,回馈到电源端。
    Matlab —— 电路仿真_第148张图片

Matlab中电路搭建与参数设置如下:
Matlab —— 电路仿真_第149张图片
使用离散仿真模式
Matlab —— 电路仿真_第150张图片
Matlab —— 电路仿真_第151张图片

脉冲发生器
Matlab —— 电路仿真_第152张图片
变压器
Matlab —— 电路仿真_第153张图片
示波器查看负载电阻电压和绕组N3的电流
Matlab —— 电路仿真_第154张图片
仿真时间设置为0.02秒,运行仿真,查看示波器波形图
Matlab —— 电路仿真_第155张图片

你可能感兴趣的:(Electronic,matlab,电路仿真)