MATLAB编程与应用系列-第15章 Simulink建模与仿真(3)

本系列教程来源于出版书籍《基于MATLAB编程基础与典型应用书籍》,如涉及版权问题,请联系:156204968@qq.com。 出版社:人民邮电出版社, 页数:525。

本系列教程目前基于MATLABR2006a,可能对于更高级版本的功能和函数有差异,教程中如有问题,请联系:156204968@qq.com

15.3 Simulink建模与基本操作

上一节15.2节简单介绍了Simulink的启动和文件的建立,并通过一个简单的示例演示了Simulink仿真模型的建立过程,介绍了示波器的使用,数据处理以及仿真参数设置等基本知识。在这一节中,将继续通过一个实例,更加深入地介绍Simulink各模块的基本操作,包括模块移动,复制,连线,输出数据处理,示波器的使用,模型属性设置,颜色设置和仿真参数设置等,通过这一部分的学习,读者能够更加深入地体会到Simulink模型的建立仿真过程。

15.3.1 演示实例

考察下面一个二阶RLC串联电路电路开关闭合后状态变量的变化情况。电路如图15.15所示。

《MATLAB编程与应用系列-第15章 Simulink建模与仿真(3)》 图15.15.二阶RLC串联电路电路图png

给定电路结构的参数为:电源为直流电源《MATLAB编程与应用系列-第15章 Simulink建模与仿真(3)》《MATLAB编程与应用系列-第15章 Simulink建模与仿真(3)》《MATLAB编程与应用系列-第15章 Simulink建模与仿真(3)》《MATLAB编程与应用系列-第15章 Simulink建模与仿真(3)》。电路开关闭合前为零状态,当开关《MATLAB编程与应用系列-第15章 Simulink建模与仿真(3)》《MATLAB编程与应用系列-第15章 Simulink建模与仿真(3)》时刻闭合后,求电路状态变量电感电流《MATLAB编程与应用系列-第15章 Simulink建模与仿真(3)》和电容电压《MATLAB编程与应用系列-第15章 Simulink建模与仿真(3)》的变化情况。

对于如图15.15所示的仿真系统中,可以用系统的状态空间模型来描述电路系统。即可以表示为:
《MATLAB编程与应用系列-第15章 Simulink建模与仿真(3)》
其中《MATLAB编程与应用系列-第15章 Simulink建模与仿真(3)》 是系统的状态变量,《MATLAB编程与应用系列-第15章 Simulink建模与仿真(3)》是系统的输入,《MATLAB编程与应用系列-第15章 Simulink建模与仿真(3)》是系统的输出。在Simulink仿真平台下,可以直接输入变换矩阵《MATLAB编程与应用系列-第15章 Simulink建模与仿真(3)》对控制系统进行仿真,在后面章节介绍完S-function后,可以使用s-function对这种以状态空间模型描述的系统进行仿真。那么,首先对图15.15所示电路进行分析。

以电感电流《MATLAB编程与应用系列-第15章 Simulink建模与仿真(3)》和电容电压u_C为状态变量,利用电流回路定律,可以列出电路的KCL方程:
《MATLAB编程与应用系列-第15章 Simulink建模与仿真(3)》
加上电容电压《MATLAB编程与应用系列-第15章 Simulink建模与仿真(3)》的方程:
《MATLAB编程与应用系列-第15章 Simulink建模与仿真(3)》
于是可以写出系统的状态空间方程:
《MATLAB编程与应用系列-第15章 Simulink建模与仿真(3)》
《MATLAB编程与应用系列-第15章 Simulink建模与仿真(3)》《MATLAB编程与应用系列-第15章 Simulink建模与仿真(3)》《MATLAB编程与应用系列-第15章 Simulink建模与仿真(3)》《MATLAB编程与应用系列-第15章 Simulink建模与仿真(3)》,于是可以得到原系统的状态方程可以表示为:
《MATLAB编程与应用系列-第15章 Simulink建模与仿真(3)》
于是状态方程中系数矩阵《MATLAB编程与应用系列-第15章 Simulink建模与仿真(3)》则分别为:
《MATLAB编程与应用系列-第15章 Simulink建模与仿真(3)》
得到系统的状态空间方程后,那么就可以进行系统的模型仿真。在这里,首先使用Matlab的M语言对图15.15所示电路进行仿真。然后利用Simulink仿真工具箱对系统进行仿真,比较二者的差异。同时通过Simulink仿真模型,介绍基本的Simulink操作。

(1)仿真方法一:M文件仿真
程序代码如下,M文件仿真结果如图15.16所示。

%Model parameters input
R1=4;
L1=0.2;
C1=1e-6;
V=5;
 
%state-space equation coefficient description
R=[R1 1;-1 0];
D=[-1;0];
L=[L1 0;0 C1];
 
%standard state-space equation model
%dx=A*x+B*u
A=-inv(L)*R;
B=-inv(L)*D;
C=eye(2);
D=zeros(2,1);
 
sys=ss(A,B,C,D);
s1=tf(sys);
[y,t]=step(s1);
y_amplitude=V*y;

%disp the result in diagram
subplot(211)
plot(t,y_amplitude(:,1))
grid on
ylabel('iL(A)');
subplot(212)
plot(t,y_amplitude(:,2))
grid on
ylabel('uc(V)');

《MATLAB编程与应用系列-第15章 Simulink建模与仿真(3)》 图15.16. M文件仿真结果png

(2)仿真方法二:基于Simulink模型仿真

按照上一节中Simulink文件建立的基本步骤建立图15.17所示的仿真模型。完成模型以后,按快捷键CTRL+S或者Simulink模型窗口菜单栏【File】下的【Save】选项。保存文件名为chapter3_1mdl。要建立图15.17所示的模型,需要以下的系统模块:

· Signal Routing模块库中的Demux模块:它的作用实现输入向量信号的分解,在此模型中,将输出的状态变量电感电流《MATLAB编程与应用系列-第15章 Simulink建模与仿真(3)》和电容电压《MATLAB编程与应用系列-第15章 Simulink建模与仿真(3)》分开;

· 系统输出库Sink中的Scope模块:它的作用观测输出变量的图形,在此模型中,用来观测电路状态变量《MATLAB编程与应用系列-第15章 Simulink建模与仿真(3)》,《MATLAB编程与应用系列-第15章 Simulink建模与仿真(3)》的变化情况;

· 系统输出库Sink中的out模块:它的作用作为信号的输出端口,通常与输入端口In相配合使用;

系统输出库Sink中的To Workspace模块和To File模块:它们的作用分别是把信号输出到工作窗口中和输出到数据文件.mat文件中。

《MATLAB编程与应用系列-第15章 Simulink建模与仿真(3)》 图15.17.Simulink仿真模型png

选择了模块以后,需要将模块拖放到新建立的仿真模型中,这里有两种方法:
①鼠标单击选中的模块不放,将其拖到新建空白仿真模型中,然后松开鼠标左键;
②鼠标选中模块,然后单击右键,单击弹出菜单中的第一个选项Add to ‘chapter3_1_mdl’,模块就出现在空白仿真模型中。如图15.18所示。

《MATLAB编程与应用系列-第15章 Simulink建模与仿真(3)》 图15.18.鼠标右键选中模块png

将所有需要的模块按上面两种方法拖放到空白仿真模型后,摆好相应的位置,连接各个模块,设置完模块的参数和系统仿真参数,进行仿真,得到图15.19所示的结果。

《MATLAB编程与应用系列-第15章 Simulink建模与仿真(3)》 图15.19.仿真模型结果png

作者:德特数据
联系方式:156204968@qq.com

    原文作者:德特数据
    原文地址: https://www.jianshu.com/p/8cd554fdc46f
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞