美文网首页
MATLAB编程与应用系列-第15章 Simulink建模与仿

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

作者: 德特数据 | 来源:发表于2018-10-31 11:02 被阅读0次

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

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

    15.3 Simulink建模与基本操作

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

    15.3.1 演示实例

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


    图15.15.二阶RLC串联电路电路图png

    给定电路结构的参数为:电源为直流电源U_s=+5VL_1=0.2HR_1=4\OmegaC_1=1uF。电路开关闭合前为零状态,当开关Kt=0_+时刻闭合后,求电路状态变量电感电流i_L和电容电压u_C的变化情况。

    对于如图15.15所示的仿真系统中,可以用系统的状态空间模型来描述电路系统。即可以表示为:
    \begin{cases} \dot{x}=Ax+Bu\\ y=Cx+Du \end{cases}
    其中x 是系统的状态变量,u是系统的输入,y是系统的输出。在Simulink仿真平台下,可以直接输入变换矩阵A,B,C,D对控制系统进行仿真,在后面章节介绍完S-function后,可以使用s-function对这种以状态空间模型描述的系统进行仿真。那么,首先对图15.15所示电路进行分析。

    以电感电流i_L和电容电压u_C为状态变量,利用电流回路定律,可以列出电路的KCL方程:
    0=R_1i_L + L_1\frac{d_{i_L}}{d_t}+u_C-U_s
    加上电容电压u_c的方程:
    i_L = C_1\frac{d_{u_C}}{d_t}
    于是可以写出系统的状态空间方程:
    \begin{bmatrix}0\\0\end{bmatrix}=\begin{bmatrix}R_1&0\\-1&0\end{bmatrix}\begin{bmatrix}i_L\\u_C\end{bmatrix} + \begin{bmatrix}L_1&1\\0&C_1\end{bmatrix}\begin{bmatrix}\dot{i_L}\\ \dot{u_C}\end{bmatrix}+\begin{bmatrix}-1\\0\end{bmatrix}U_s
    R=\begin{bmatrix}R_1&0\\-1&0\end{bmatrix}L=\begin{bmatrix}L_1&1\\0&C_1\end{bmatrix}S=\begin{bmatrix}-1\\0\end{bmatrix}X=Y=\begin{bmatrix}i_L\\u_C\end{bmatrix},于是可以得到原系统的状态方程可以表示为:
    \begin{cases} X=-L^{-1}RX-L^{-1}SU_s\\ Y=X\end{cases}
    于是状态方程中系数矩阵A,B,C,D则分别为:
    A=-L^{-1}R,B=-L^{-1}S,C=eyes(2),D=[0,0]^T
    得到系统的状态空间方程后,那么就可以进行系统的模型仿真。在这里,首先使用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)');
    
    图15.16. M文件仿真结果png

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

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

    · Signal Routing模块库中的Demux模块:它的作用实现输入向量信号的分解,在此模型中,将输出的状态变量电感电流i_L和电容电压u_C分开;

    · 系统输出库Sink中的Scope模块:它的作用观测输出变量的图形,在此模型中,用来观测电路状态变量i_L,u_C的变化情况;

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

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


    图15.17.Simulink仿真模型png

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

    图15.18.鼠标右键选中模块png

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

    图15.19.仿真模型结果png

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

    相关文章

      网友评论

          本文标题:MATLAB编程与应用系列-第15章 Simulink建模与仿

          本文链接:https://www.haomeiwen.com/subject/biiotqtx.html