您好,欢迎访问三七文档
当前位置:首页 > 临时分类 > Simulink建模与仿真详解
1《Simulink建模与仿真》1、矩阵的加减法a=[123;456]a=123456b=[021;253]b=021253c=a+bc=1446109d=a-bd=102203矩阵与标量的加法与减法是指标量本身与矩阵所有元素进行相应运算,如若B=1,则e=a+Be=2345672、矩阵的乘方与除法a=123456b=[12;03;21]b=1203212c=a*bc=7111629在Matlab中,矩阵除法有两种形式,即左除(\)和右除(/)。如果A是一个非奇异方针,那么A\B%表示A的逆与B的左乘,即inv(A)*BA/B%表示A的逆与B的右乘,即B*inv(A)3、矩阵的转置a=123456a'ans=1425364、对矩阵元素的操作与运算在上述各种常用运算中,所有的操作都是针对矩阵所有元素或一部分元素的操作。其实还可以对矩阵元素进行单独的操作运算。对于加法和减法,对矩阵元素的操作与对矩阵的操作是一致的。其它运算对于所有矩阵元素的操作需要在操作符前加点,如下例所示:A=[12;-15]A=12-15B=[72;10]B=7210C=[1+2i5-2i;3+i1+3i]C=1.0000+2.0000i5.0000-2.0000i3.0000+1.0000i1.0000+3.0000i3A.*B%矩阵对应元素相乘ans=74-10B./A%矩阵对应元素相除ans=71-10B.^2ans=%矩阵元素乘方运算49410A.^B%矩阵对应元素幂运算ans=14-11C.'%矩阵转置ans=1.0000+2.0000i3.0000+1.0000i5.0000-2.0000i1.0000+3.0000i2多项式表达与基本运算simulink用于动态系统建模、仿真与分析时,将会大量使用多项式。许多系统的模型描述(如系统的传递函数)都需要使用多项式,并在多项式描述的基础上。1、多项式的建立在MATLAB中,n阶多项式p(x)内一个长度为n+1的向量p所表示,向量p的元素为多项式的系数,且按照自变量x的降序排列。例如:p(x)=3x3+x+2x+3在matlab中表示为:p=[3123]p(x)=3x3+2x+3在matlab中表示为:p=[3023]%多项式中系数为了0的项不能忽略,用0补齐。42、matlab中多项式操作函数简介(1)、roots(p):长度为n的向量,表示n阶多项式的根,即方程p(x)=0的根,可以为复数。(2)、conv(p,q):表示多项式p,q的乘积,一般也指p,q的卷积。(3)、poIy(A):计算矩阵A的特征多项式向量。(4)、po1y(P):由长度为n的向量中的元素为根建立的多项式,结果是长度为n+1的向量。(5)、polyval(p,x):若x为一数值,则计算多项式在x处的值;若x为向量,则计算多项式在x某一元素处的值。举例:求多项式p(x)=3x3+x+2x+3的根:p=[3023]rootp=roots(p)rootp=0.3911+1.0609i0.3911-1.0609i-0.7822求q(x)=2x+3与p(x)=3x3+x+2x+3的积:p=[3023]q=[23]conv(p,q)ans=694129即q(x)=2x+3与p(x)=3x3+x+2x+3的积为:6x4+9x3+4x2+12x+93Matlab的基本绘图功能1.基本的二维图形绘制命令(1)、plot(x,y):输出以向量x为横坐标,以向量y为纵坐标且按照x,y元素的顺序有序绘制的图形。x与y必须具有相同长度。(2)、plot(y):输出以向量y元素序号m为横坐标,以向量y对应元素ym为纵坐标绘制的图形。(3)plot(x1,y1,‘str’,x2,y2,‘str2’,…):用‘str1’指定的方式,输出5以x1为横坐标,yl为纵坐标的图形。用‘str2’指定的方式,输出以x2为横坐标,y2为纵坐标的图形。若省略‘str’,则matlab自动为每条曲线选择颜色与线型。‘str’选项中的部分参数如表2.1所示。表2.1plot命令参数2、简单的三维绘图命令1)、plot3(x,y,z):用向量x,y和z的相应点(xi,yi,zi)进行有序绘制三维图形。向量x,y,z必须有相同的长度。2)、plot3(x1,y1,z1,‘str1’,x2,y2,z2,‘str2’,…):用‘str1’指定的方式,对x1,y1和z1进行绘图;用‘str2’指定的方式,对x2,y2和z2进行绘图;如果省略‘str’,则matlab自动选择颜色与线型。举例:1)、绘制sin函数在【0,2π】上的图形:x=0:0.1:2*pi;y=sin(x);plot(x,y,'*')2)、用matlab在同一图形窗口中绘制多项式q(x)=2x+3与p(x)=3x3+x+2x+3的曲线,其中x∈【-2,5】,要求分别用不同的线型与颜色表示。x=-2:0.1:5;q=2*x+3;p=3*x.^2+2*x+3;plot(x,q,'r--',x,p,'b--')3、简单的图形控制命令(1)、clc:清除命令窗口。(2)、grid:自动在各个坐标轴上加上虚线型的网格。6(3)、holdon:保持当前的图形,允许在当前图形状态下绘制其它图形,即在同一图形窗口中绘制多幅图形。(4)、holdoff:释放当前图形窗口,绘制的下一幅图形将作为当前图形,即覆盖原来图形。这是matlab的缺省状态。(5)、hold:在holdon与holdoff之间进行切换。4、简单的子图命令(1)subplot(m,n,p):将图形窗口分成m行n列的子窗口,序号为p的子窗口为当前窗口。子窗口的编号由上至下,由左至右。(2)subplot:设置图形窗口为缺省模式,即subplot(1,1,1)单窗口模式。5、在一个图形窗口的左侧子图中绘制函数y1(x)=x3-2x-3,在右侧子图中绘制函数y2(x)=xsin(x),其中x∈【-3,3】。x=-3:0.1:3;y1=x.^3-2*x-3;y2=x.*sin(x);subplot(1,2,1),plot(x,y1,'*'),gridsubplot(1,2,2),plot(x,y2,'-'),grid§2.5M文件与MAILAB函数25.1M文件编辑器在matlab命令行下输入:edit则弹出M文件编辑器窗口。25.2matlab语言的语法1、注释;2、赋值语句;3、逻辑表达式;4、条件控制语句(if);5、循环语句(for、while)。25.3matlab脚本文件与M函数1)、matlab脚本文件例如:编写一个M文件绘制函数sin,0(),03666,3xxyxxxxx在区间【,】中的图形。7解:在matlab命令行下输入edit命令以打开M文件编辑器,输入以下程序:x=-6:0.1:6;%设定自变量x的取值范围leng=length(x)%计算向量x的长度form=1:leng%计算函数值ifx(m)=0%判断x取值所在范围y(m)=sin(x(m));%计算分段函数值elseifx(m)=3y(m)=x(m);%计算分段函数值elsey(m)=-x(m)+6;%计算分段函数值endendplot(x,y,'*'),grid;%绘制函数曲线编辑完后保存为demomfile1.m(该文件就是一个matlab脚本文件)在matlab命令行中输入demomfile1:demomfile1就会执行相应文件,输出相应的图形。2)、M函数Matlab的函数与脚本不同,M函数的第一行为关键字function,函数第—次执行时将生成内存代码,生成的变量放在函数的工作区。在MATLAB中有大量的内置函数及大量的工具箱函数,使用它们可以完成大部分的工作;但由于不同的用户有不问的需要,Matlab允许用户开发自己的专用或通用函数,以扩展MATLAB的函数应用。这里仅简单介绍一下M函数的编制与使用方法。这对理解后面的S-函数有很重要的作用。(详参原文)2.6matlab的单元与结构体8§3动态系统模型及simulink表示3.1简单系统模型及表示3.1.3简单系统的Simulink描述本章主要介绍动态系统的基本知识,为使用simu1ink进行系统仿真打下基础。因此这里并不准备建立系统的simulink模型,而是采用编写M脚本文件的方式对系统进行描述并进行简单的仿真。下面以例3.1中的简单系统为例,说明在simulink中如何对简单系统进行描述。例3.1:编写如下的systemdemo1.m脚本文件进行描述与分忻%systemdemo1.mu=0:0.1:10;%设定系统输入范围与仿真步长leng=length(u);%计算系统输入序列长度fori=1:leng%计算系统输出序列ifu(i)=1%逻辑判断y(i)=u(i).^2;elsey(i)=sqrt(u(i));endendplot(u,y);grid;图3.1所示为此简单系统在【0,10】时间之内的输入输出关系图,其实就是系统在此他围内的仿真结果。修改此M脚本文件,不断改变系统输入的时间范围与系统输入的仿真步长,使可以完成系统的仿真分析,并绘制不同的仿真结果。当然,采用Simulink模型可以进行交互式的仿真。在第5章中将使用smulink对系统进行交互式仿真。3.2离散系统模型及表示3.2.1离散系统的基本概念前面所涉及到的系统中,无论是系统的输入还是系统的输出均是连续的变量,在这里连续指的是系统的输入与输出均在时间变量上连续取值(与数学上函数连续概念并不相同)。本节将简单介绍离散系统的基本概念,系统的描述与简单仿真。所谓离散系统,是指系统的输入与输小是在离散的时间上取值,而且离散的时间只有相同的时间间隔。下面给出离散系统更全面的定义。[定义3.2]离散系统。凡是满足如下条件的系统均为离散系统:9(1)系统每隔固定的时间间隔才“更新”一次,即系统的输入与输出每隔固定的时间间隔便改变一次。固定的时间间隔称为系统的“采样”时间。(2)系统的输出依赖于系统当前的输入、以往的输入与输出,即系统的输出是它们的某种函数。(3)离散系统具有离散的状态。其中状态指的是系统前一时刻的输出量。3.2.2离散系统的数学描述详参原文……3.2.3离散系统的SimuIink描述这里以[例3.2]中的离散系统为例,说明如何利用simulink对离散系统进行描述,并在此基础上时系统进行简单的分析。与前面相类似,此处并不建立系统的simulink的模型进行仿真,而是编写M脚本文件从原理上对离散系统进行说明离散系统与连续系统的区别之处。编写脚本文件systemdemo2.m对[例3.2]中的离散系统进行描述分析。%systemdemo2.m文件y(1)=3;%表示离散系统初始状态为3%由于matlab中数字下标从1开始,这里y(1)相当于文中的y(0)=3,下同u(1)=0;%表示系统初始输入为0fori=2:11%设定离散系统输入范围为时刻0到时刻10u(i)=2*i;%离散系统输入向量y(i)=u(i).^2+2*u(i-1)+3*y(i-1);%离散系统输出变量endplot(u,y);grid;%绘制系统输出结果系统从时刻0到时刻10的输入与输出的关系如图3.2所示。其中横坐标表示离散系统的输入向量,而纵坐标表示离散系统的输出向量。说明:这里并没有指定离散系统的采样时间,而仅仅举例说明离散系统的求解分析。在实际的系统中.必须指定系统的采样时间,只有这样才能获得离散系统真正的动态性能。3.2.4线性离散系统……3.2.5线性离散系统的数学描述……103.2.6线性离散系统的simulink描述在线性离散系统仿真分析中,很少直接使用数学方程进行系统描述,一般采用线性离散系统的滤波器模型、传递函数模型,以及状态空间模型进行系统描述。本部分介
本文标题:Simulink建模与仿真详解
链接地址:https://www.777doc.com/doc-3328898 .html