matlab在电路仿真
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
注意:在多于2条支路的节点处连接时,需要按 住Ctrl键,或将光标移动至连线的拐点处,等光标变 为十字交叉形再释放鼠标。
8
同时还需要调用Measurements模块中的Voltage Measurement和Simulink模块中Sinks下的虚拟示波 器Scope。最后添加上交互界面工具powergui。连 接好的电路仿真图模型如下图所示。
B=[1;0;0;0]; X=A\B*is; display('i1和i2的值是'); i1=X(3),i2=X(4) (3) 程序运行结果。 i1和i2的值是 i1 =
1 i2 =
1
22
方法二,利用MATLAB中的电力系统模块集和 虚拟仪器搭建仿真电路。
搭建好的仿真电路如图13所示,以文件名 mdlExam9_3存盘。根据图12知道电路需要4 个Elements模块下的 Series RLC Branch,2个 受控源是Electrical Sources下的Controlled Current Source和Controlled Voltage Source。 由于受控源分别受2条支路的电流控制,所以需 要2个Measurements模块下的电流测量模块 (Current Measurement)来引出这2条支路的电流 。
24
25
3 动态电路的时域分析
1. 一阶动态电路的时域分析 【例4】如图14所示的是由正弦激励的一阶 电路,已知R=2Ω,C=0.5F,电容初始电压 uc(0+)=5V,激励的正弦电压,um=10V,。当t=0, 开关闭合,求电容电压的全响应、暂态响应与稳 态响应,并画出波形。
26
方法二,利用MATLAB中的电力系统模块集和虚拟 仪器搭建仿真电路
这个电路比较简单,只有1个交流电压源和2个 电阻,首先要搭建这个电路图。
5
选择菜单命令File→New→Model,出现如图所示 的模型编辑窗口。
然后在MATLAB命令窗口输入powerlib,把 powerlib模块集调出来,双击打开Electrical Sources ,选中AC Voltage Source拖动到如图6所示的窗口; 同理选中Elements里面的Series RLC Branch并拖动 到该窗口,由于有2个电阻,可以拖动2次,也可以通 过复制的方式来完成。
a31=0;a32=-R4;a33=R4+R5+R6;
14
b1=1;b2=0;b3=0;
A=[a11,a12,a13; a21,a22,a23; a31,a32,a33]; % 列出系数矩阵A和B
B=[b1;b2;b3];
I=A\B*us;
I=[ia;ib;ic]
ia=I(1);ib=I(2);ic=I(3); display('i4和u6的值为'); i4=ib-ic, u6=R6*ic (3) 程序运行结果。
20
(2) MATLAB程序mExam9_3.m。
clear
R1=4;R2=4;R3=4;R4=2;
%给元件赋值
is=2;k1=0.5;k2=4;
%给电源及控制系数赋值
%按照A*X=B*is列写电路的矩阵方程,其中X=[ua;ub;i1;i2]
a11=1/R1+1/R2;a12=-1/R2;a13=0;a14=-k1;
% 求出问题的解
i4 =
0.2625
u6 =
1.0499
ຫໍສະໝຸດ Baidu
15
方法二,利用MATLAB中的电力系统模块集和 虚拟仪器搭建仿真电路。
根据图10知道电路需要1个Electrical Sources模 块下的DC Voltage Source,6个Elements模块下 的 Series RLC Branch。由于要测量电流和电压 ,所以还需要Measurements模块下的电流测量模 块(Current Measurement)和电压测量模块 (Voltage Measurement),另需要2个Sinks模块下 的Display。然后根据题目给出的条件对各元件进 行赋值,搭建出如图11所示的仿真电路,以文件 名为mdlExam9_2存盘。最后进行仿真,2个 Display中显示的值即为所要求的电流值和电压值
① 如图16连接好仿真电路,然后对各元件 设置参数。交流电压源AC的参数为:Peak amplitude(V)为10;Phase值可这样求得:在
28
方法一中激励源设为余弦函数 cost ,而交流
电压源激励默认为正弦函数 sint1,所以需要
求出 1 的值,由诱导公式:
costcos(t90oarctanR 1C )cos( 2tarctanR 1C ) sin(tarctanR 1C )sin( tarctanR 1C )sin(( t)1)
6
双击上图中的AC Voltage Source,就会出现
如下图所示的参数设置对话框。在对话框中可以 对交流电压源的幅值(Peak amplitude)、相位 (Phase)、频率(Frequence)、采样时间(Sample time)等进行设置。本例题中幅值设为10V、频率 设为60Hz。
同理对Series RLC Branch和Series RLC Branch 1支路中的电阻值分别设置。还可以对这些元器件的 位置、方向和标注进行调整,具体方法读者在实验 时自己摸索。然后进行连线,把光标移动到需要连 线的元器件的连接端子,按住鼠标左键拖动到另一 个元器件的连接端子,释放鼠标即完成连线。
1 R2
1 R2
0
k1
1
R2
1
R2
111
R2 R3 R4 1 R2
k2 R3 1
k1 0
ua
ub
i1 i2
1
0 0
is
0
0
1
0 1
R4
已知is=2A,由上式可解得i1和i2。
R 12ua R 12R 13R 14 ubk1i2k R 2i3 1
由图12知控制变量i1、i2与节点电压ua、ub
的关系为
i1
ua ub R2
i2
ub R4
19
上述4个公式中,只有is是已知的,把其他未知量
全部移至等号左端,写成矩阵形式如下。
1
R
1
搭建好的仿真电路如下图所示,以文件名 mdlExam9_4存盘。该电路比较简单,只有1个交流 电压源,1个电阻,1个电容组成。但仿真过程需要 改变这几个元件的有些参数,需要一定技巧和近似 处理。
27
为了把电容上的三种电压波形画在一张图内, 并便于和图15比较,这里选用Voltage Measurement模块取出电容两端的电压,并送给 Sinks下的out模块,这样在仿真时会在MATLAB 工作空间中产生2个默认变量,时间变量tout和数 据变量yout。仿真时间设为10S,步长和方法一 保持一致,设为0.1S。仿真过程由以下几个步骤 完成:
10
如果仿真时出错,会有出错信息的提示,读者 可以根据这些提示来改正电路中出现的错误。后 面一些复杂的电路仿真过程也和这个例题大致步 骤相同,在以后的例题中只给出搭建好的仿真电 路模型和参数设置说明,不再详述仿真电路的搭 建过程。
11
2 电阻电路
1. 一般电阻电路
【例2】 如图10所示的电路,已知:us=10V, R1=6、R2=8、R3=2、R4=12、R5=10、R6=5。 求i4和u6。
23
控制常数则由2个simulink库下Math Operations 中的 Gain来完成。分别双击各元件,在弹出的 对话框中对各电阻及各控制元件根据题目给出 的条件赋值。
MATLAB中没有直流电流源,所以这里用了一个 小技巧,用受控电流源来完成。由于powerlib中有 直流电压源,所以选用一个直流电压源来控制受控 电流源,还需要1个Measurements模块下的电流测 量模块(Voltage Measurement)。电路图中电流源 的电流为2A,所以直流电压源的电压设为2V。
所以设初始相位 1 的值为
arctan 1 =0.4636(rad)=26.89(deg);
RC Frequency(Hz)的值由角频率
2rad/s可算得大
约为0.318Hz。开关Breaker的Initial state设为0
29
Switching times(s)设为0.01。电阻R阻值为2, 电容C的Capacitance(F)设为0.5,capacitor initial voltage(V)设为5。参数设置完毕进行仿真,仿真 结束后在MATLAB工作空间产生tout和yout,在工 作空间中修改yout为yout1(如图17所示), yout1为电容电压的全响应。
16
17
2 含受控源的电阻电路
【例3】 如图12所示的是一个含受控源的电阻电路,设 R1=R2=R3=4、R4=2,控制常数k1=0.5、k2=4,is=2A 。求i1和i2。
18
解:方法一,M文件法。 (1) 建模。按图12列出节点方程为
1 1 1 R1R2ua R2ubis k1i2
%设置系数A
a21=-1/R2;a22=1/R2+1/R3+1/R4;a23=k2/R3;a24=k1;
a31=1/R2;a32=-1/R2;a33=-1;a34=0;
a41=0;a42=1/R4;a43=0;a44=-1;
21
A=[a11,a12,a13,a14;a21,a22,a23,a24;a31,a32,a3 3,a34;a41,a42,a43,a44];
12
解:方法一,M文件法。 (1) 建模。用网孔法,按图10可列出网孔方程为
R 1R 2iaR 2ibu s
R 2 ia ( R 2 R 3 R 4 ) ib R 4 ic 0
R 4 ib (R 4 R 5 R 6 )ic 0
该方程组写成矩阵形式如下。
R1R2
9
模型创建完成后,从模型编辑窗口中选择菜单命 令File→Save或Save As,选一个文件名(本例文件名 为mdlExam9_1)将模型以模型文件的格式(扩展名为 .mdl)存入磁盘。
在模型编辑窗口中对仿真的时间等参数设置完成 后,单击Start simulation按钮就开始进行仿真,本例 题仿真时间设为0.1秒。仿真结束后在MATLAB工作 空间中会有仿真产生的一些数据,用户可以对这些 数据进行分析或进行数据的可视化处理等。在本例 中双击虚拟示波器Scope,会出现如下页图所示的电 阻R2两端电压的波形图。
R2
R2
R2R3R4
0 ia 1 R4 ib0us
0
R4
R4R5R6ic 0
13
该矩阵方程组可简写为 AI Bu,s 由于电 源和电阻的值是已知的,从而可以求出ia
、ib和ic,而 i4 ib ic ,u6 R6ic ,即可
MATLAB在电路仿真 中的应用
1
本章学习目标
掌握电路系统模块集的使用 掌握电阻电路、电路的时域、稳态
和频域分析方法
2
主要内容
1 电路系统模块集简介 2 电阻电路 3 动态电路的时域分析 4 动态电路的稳态分析 5 电路的频域分析
3
1 电力系统模块集简介
电力系统模块集共有Electrical Sources、 Elements、Power Electronics、Machines、 Measurements、Application Libraries、Extras 、powergui和Demos等9个模块组。模块下面 显示的是版本号和开发该模块的公司的一些信 息。
双击Electrical Sources、Elements、Power Electronics、Machines、Measurements、 Application Libraries和Extras中任一图标都将 打开一个下级子模块集,可以看到有很多的子 模块。
4
【例1】 如图所示电路,输入的交流电压源为10V 、60Hz,电阻R1=15、R2=10,试求电阻R2上的 电压波形。
得问题的解。
(2) MATLAB程序mExam9_2.m。
us=10;
% 给电源赋值
R1=6; R2=8; R3=2; R4=12; R5=10; R6=5; % 为给定元件赋值
a11=R1+R2; a12=-R2; a13=0; % 计算系数矩阵各元素的值
a21=-R2;a22=R2+R3+R4;a23=-R4;
8
同时还需要调用Measurements模块中的Voltage Measurement和Simulink模块中Sinks下的虚拟示波 器Scope。最后添加上交互界面工具powergui。连 接好的电路仿真图模型如下图所示。
B=[1;0;0;0]; X=A\B*is; display('i1和i2的值是'); i1=X(3),i2=X(4) (3) 程序运行结果。 i1和i2的值是 i1 =
1 i2 =
1
22
方法二,利用MATLAB中的电力系统模块集和 虚拟仪器搭建仿真电路。
搭建好的仿真电路如图13所示,以文件名 mdlExam9_3存盘。根据图12知道电路需要4 个Elements模块下的 Series RLC Branch,2个 受控源是Electrical Sources下的Controlled Current Source和Controlled Voltage Source。 由于受控源分别受2条支路的电流控制,所以需 要2个Measurements模块下的电流测量模块 (Current Measurement)来引出这2条支路的电流 。
24
25
3 动态电路的时域分析
1. 一阶动态电路的时域分析 【例4】如图14所示的是由正弦激励的一阶 电路,已知R=2Ω,C=0.5F,电容初始电压 uc(0+)=5V,激励的正弦电压,um=10V,。当t=0, 开关闭合,求电容电压的全响应、暂态响应与稳 态响应,并画出波形。
26
方法二,利用MATLAB中的电力系统模块集和虚拟 仪器搭建仿真电路
这个电路比较简单,只有1个交流电压源和2个 电阻,首先要搭建这个电路图。
5
选择菜单命令File→New→Model,出现如图所示 的模型编辑窗口。
然后在MATLAB命令窗口输入powerlib,把 powerlib模块集调出来,双击打开Electrical Sources ,选中AC Voltage Source拖动到如图6所示的窗口; 同理选中Elements里面的Series RLC Branch并拖动 到该窗口,由于有2个电阻,可以拖动2次,也可以通 过复制的方式来完成。
a31=0;a32=-R4;a33=R4+R5+R6;
14
b1=1;b2=0;b3=0;
A=[a11,a12,a13; a21,a22,a23; a31,a32,a33]; % 列出系数矩阵A和B
B=[b1;b2;b3];
I=A\B*us;
I=[ia;ib;ic]
ia=I(1);ib=I(2);ic=I(3); display('i4和u6的值为'); i4=ib-ic, u6=R6*ic (3) 程序运行结果。
20
(2) MATLAB程序mExam9_3.m。
clear
R1=4;R2=4;R3=4;R4=2;
%给元件赋值
is=2;k1=0.5;k2=4;
%给电源及控制系数赋值
%按照A*X=B*is列写电路的矩阵方程,其中X=[ua;ub;i1;i2]
a11=1/R1+1/R2;a12=-1/R2;a13=0;a14=-k1;
% 求出问题的解
i4 =
0.2625
u6 =
1.0499
ຫໍສະໝຸດ Baidu
15
方法二,利用MATLAB中的电力系统模块集和 虚拟仪器搭建仿真电路。
根据图10知道电路需要1个Electrical Sources模 块下的DC Voltage Source,6个Elements模块下 的 Series RLC Branch。由于要测量电流和电压 ,所以还需要Measurements模块下的电流测量模 块(Current Measurement)和电压测量模块 (Voltage Measurement),另需要2个Sinks模块下 的Display。然后根据题目给出的条件对各元件进 行赋值,搭建出如图11所示的仿真电路,以文件 名为mdlExam9_2存盘。最后进行仿真,2个 Display中显示的值即为所要求的电流值和电压值
① 如图16连接好仿真电路,然后对各元件 设置参数。交流电压源AC的参数为:Peak amplitude(V)为10;Phase值可这样求得:在
28
方法一中激励源设为余弦函数 cost ,而交流
电压源激励默认为正弦函数 sint1,所以需要
求出 1 的值,由诱导公式:
costcos(t90oarctanR 1C )cos( 2tarctanR 1C ) sin(tarctanR 1C )sin( tarctanR 1C )sin(( t)1)
6
双击上图中的AC Voltage Source,就会出现
如下图所示的参数设置对话框。在对话框中可以 对交流电压源的幅值(Peak amplitude)、相位 (Phase)、频率(Frequence)、采样时间(Sample time)等进行设置。本例题中幅值设为10V、频率 设为60Hz。
同理对Series RLC Branch和Series RLC Branch 1支路中的电阻值分别设置。还可以对这些元器件的 位置、方向和标注进行调整,具体方法读者在实验 时自己摸索。然后进行连线,把光标移动到需要连 线的元器件的连接端子,按住鼠标左键拖动到另一 个元器件的连接端子,释放鼠标即完成连线。
1 R2
1 R2
0
k1
1
R2
1
R2
111
R2 R3 R4 1 R2
k2 R3 1
k1 0
ua
ub
i1 i2
1
0 0
is
0
0
1
0 1
R4
已知is=2A,由上式可解得i1和i2。
R 12ua R 12R 13R 14 ubk1i2k R 2i3 1
由图12知控制变量i1、i2与节点电压ua、ub
的关系为
i1
ua ub R2
i2
ub R4
19
上述4个公式中,只有is是已知的,把其他未知量
全部移至等号左端,写成矩阵形式如下。
1
R
1
搭建好的仿真电路如下图所示,以文件名 mdlExam9_4存盘。该电路比较简单,只有1个交流 电压源,1个电阻,1个电容组成。但仿真过程需要 改变这几个元件的有些参数,需要一定技巧和近似 处理。
27
为了把电容上的三种电压波形画在一张图内, 并便于和图15比较,这里选用Voltage Measurement模块取出电容两端的电压,并送给 Sinks下的out模块,这样在仿真时会在MATLAB 工作空间中产生2个默认变量,时间变量tout和数 据变量yout。仿真时间设为10S,步长和方法一 保持一致,设为0.1S。仿真过程由以下几个步骤 完成:
10
如果仿真时出错,会有出错信息的提示,读者 可以根据这些提示来改正电路中出现的错误。后 面一些复杂的电路仿真过程也和这个例题大致步 骤相同,在以后的例题中只给出搭建好的仿真电 路模型和参数设置说明,不再详述仿真电路的搭 建过程。
11
2 电阻电路
1. 一般电阻电路
【例2】 如图10所示的电路,已知:us=10V, R1=6、R2=8、R3=2、R4=12、R5=10、R6=5。 求i4和u6。
23
控制常数则由2个simulink库下Math Operations 中的 Gain来完成。分别双击各元件,在弹出的 对话框中对各电阻及各控制元件根据题目给出 的条件赋值。
MATLAB中没有直流电流源,所以这里用了一个 小技巧,用受控电流源来完成。由于powerlib中有 直流电压源,所以选用一个直流电压源来控制受控 电流源,还需要1个Measurements模块下的电流测 量模块(Voltage Measurement)。电路图中电流源 的电流为2A,所以直流电压源的电压设为2V。
所以设初始相位 1 的值为
arctan 1 =0.4636(rad)=26.89(deg);
RC Frequency(Hz)的值由角频率
2rad/s可算得大
约为0.318Hz。开关Breaker的Initial state设为0
29
Switching times(s)设为0.01。电阻R阻值为2, 电容C的Capacitance(F)设为0.5,capacitor initial voltage(V)设为5。参数设置完毕进行仿真,仿真 结束后在MATLAB工作空间产生tout和yout,在工 作空间中修改yout为yout1(如图17所示), yout1为电容电压的全响应。
16
17
2 含受控源的电阻电路
【例3】 如图12所示的是一个含受控源的电阻电路,设 R1=R2=R3=4、R4=2,控制常数k1=0.5、k2=4,is=2A 。求i1和i2。
18
解:方法一,M文件法。 (1) 建模。按图12列出节点方程为
1 1 1 R1R2ua R2ubis k1i2
%设置系数A
a21=-1/R2;a22=1/R2+1/R3+1/R4;a23=k2/R3;a24=k1;
a31=1/R2;a32=-1/R2;a33=-1;a34=0;
a41=0;a42=1/R4;a43=0;a44=-1;
21
A=[a11,a12,a13,a14;a21,a22,a23,a24;a31,a32,a3 3,a34;a41,a42,a43,a44];
12
解:方法一,M文件法。 (1) 建模。用网孔法,按图10可列出网孔方程为
R 1R 2iaR 2ibu s
R 2 ia ( R 2 R 3 R 4 ) ib R 4 ic 0
R 4 ib (R 4 R 5 R 6 )ic 0
该方程组写成矩阵形式如下。
R1R2
9
模型创建完成后,从模型编辑窗口中选择菜单命 令File→Save或Save As,选一个文件名(本例文件名 为mdlExam9_1)将模型以模型文件的格式(扩展名为 .mdl)存入磁盘。
在模型编辑窗口中对仿真的时间等参数设置完成 后,单击Start simulation按钮就开始进行仿真,本例 题仿真时间设为0.1秒。仿真结束后在MATLAB工作 空间中会有仿真产生的一些数据,用户可以对这些 数据进行分析或进行数据的可视化处理等。在本例 中双击虚拟示波器Scope,会出现如下页图所示的电 阻R2两端电压的波形图。
R2
R2
R2R3R4
0 ia 1 R4 ib0us
0
R4
R4R5R6ic 0
13
该矩阵方程组可简写为 AI Bu,s 由于电 源和电阻的值是已知的,从而可以求出ia
、ib和ic,而 i4 ib ic ,u6 R6ic ,即可
MATLAB在电路仿真 中的应用
1
本章学习目标
掌握电路系统模块集的使用 掌握电阻电路、电路的时域、稳态
和频域分析方法
2
主要内容
1 电路系统模块集简介 2 电阻电路 3 动态电路的时域分析 4 动态电路的稳态分析 5 电路的频域分析
3
1 电力系统模块集简介
电力系统模块集共有Electrical Sources、 Elements、Power Electronics、Machines、 Measurements、Application Libraries、Extras 、powergui和Demos等9个模块组。模块下面 显示的是版本号和开发该模块的公司的一些信 息。
双击Electrical Sources、Elements、Power Electronics、Machines、Measurements、 Application Libraries和Extras中任一图标都将 打开一个下级子模块集,可以看到有很多的子 模块。
4
【例1】 如图所示电路,输入的交流电压源为10V 、60Hz,电阻R1=15、R2=10,试求电阻R2上的 电压波形。
得问题的解。
(2) MATLAB程序mExam9_2.m。
us=10;
% 给电源赋值
R1=6; R2=8; R3=2; R4=12; R5=10; R6=5; % 为给定元件赋值
a11=R1+R2; a12=-R2; a13=0; % 计算系数矩阵各元素的值
a21=-R2;a22=R2+R3+R4;a23=-R4;