控制系统仿真技术教案_第1页
控制系统仿真技术教案_第2页
控制系统仿真技术教案_第3页
控制系统仿真技术教案_第4页
控制系统仿真技术教案_第5页
已阅读5页,还剩48页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

《控制系统仿真技术》教案编者:赵磊机电与信息工程学院黄山学院控制系统仿真技术课程教案授课教师赵磊教研室自动化授课班级11自动化授课题目MATLAB基础授课类型■理论■实践课程类别□必修课■选修课□讲座教学课时4课时授课日期授课地点4317教学目的与要求教学重点教学难点教学方法启发式教学手段(教具与媒体使用)多媒体授课思考题与课后作业参考资料课后小结进一步联系生活,形成生动教学,强化工程应用的联系,加强应用型课程的建设,逐步向项目驱动教学和案例教学转化,使课程符合“卓越计划”培养标准的要求。黄山学院_自动控制原理课程教案纸主要教学过程时间分配教学过程:第一讲MATLAB基础1.1目的和意义1.2MATLAB操作界面命令窗口(CommandWindow)MATLAB的所有函数和命令都可以在命令窗口中执行。MATLAB命令窗口中的“>>”为命令提示符,表示MATLAB正在处于准备状态。在命令提示符后键入命令(或语句)并按下回车键后,MATLAB就会解释执行所输入的命令,并在命令后面给出计算结果。例:命令窗口输入指令,然后按回车键,会出现什么结果?历史命令窗口(CommandHistory)默认设置下历史命令窗口会保留自安装时起所有命令的历史记录,并标明使用时间,以方便使用者的查询。3)当前目录窗口(CurrentDirectory)在当前目录窗口中可显示或改变当前目录,还可以显示当前目录下的文件,包括文件名、文件类型、最后修改时间以及该文件的说明信息等并提供搜索功能。4)工作空间窗口(Workspace)工作空间在MATLAB运行期间一直存在,关闭MATLAB后自动消失,当运行MATLAB程序时,程序中的变量将被加载到工作空间中。在一个程序中的运算结果以变量的形式保存在工作空间后,在MATLAB关闭之前该变量还可以被别的程序调用。在工作空间窗口中将显示所有目前保存在内存中的MATLAB变量的变量名、数据结构、字节数以及类型,而不同的变量类型分别对应不同的变量名图标。用户可用命令对工作空间中的变量进行显示、删除或保存等操作。【注意】:内存变量的查阅和删除命令who%查看工作空间中变量的名字whos%查看工作空间中变量的详细信息clear%删除工作空间中的所有变量clearab%删除变量a,bsize(a)%变量的大小length(a)%求取变量的长度,返回最大维数例:运行下面MATLAB命令,并查看内存变量。1.3MATLAB的帮助系统1.3.1普通文本帮助【命令】:help函数名/文件名%显示相关函数/文件的帮助注释区1.3.2超文本帮助1.4MATLAB编程基础基本语法和基本规则变量【变量(包括函数)命名规则】:必须以字母开头;可以由字母、数字和下划线混合组成;变量长度应不大于31个;字母区分大小写。【特殊变量】:基本数据类型基本语句赋值变量=表达式例:关于程序编辑(1)语句可以由分号(:)、逗号(,)或回车(Enter)结束。如果用分号结束。则左边的变量结果不会显示在命令窗口,否则将显示左侧变量的值。每行可以写多条语句,语句之间用空格、逗号、分号进行分隔。(3)用三个或者三个以上的黑点表示“续行”,表示下一行是上一行的继续。(4)用%表示注释,%开始一直到行末的内容都是注释,注释内容不参与程序运行。1.5数组(矩阵)1.5.1一维数组1、一维数组的创建(1)逐个元素输入法(2)冒号运算符法【注意】:冒号运算符的格式是:a=s1:s2:s3。其中s1是起始值,s2是步距,s3是终止值。线性分隔法【注意】:linspace函数的调用格式为:x=linspace(a,b,,n)。对数分割法【注意】:logspace函数的调用格式为:x=logspace(a,b,,n)生成数组的第一个元素值为10a,最后一个元素为10b,数组共有n个元素,这n个元素依次为。2、一维数组的访问【方法】:(1)用下标方式访问数组元素,下标要用一对圆括号()引起来。(2)下标代表的是元素在数组中的位置序号。(3)下标可以是常量,也可以是变量。(4)可以访问数组中的单个元素,也可以访问数组中的某些元素,及数组的子数组。例:1.5.2二维数组1、二维数组的创建【规则】:(1)整个数组必须用[]括起来。(2)数组的行与行之间用分号“:”分隔。(3)每行之间的元素必须用逗号“,”,或者空格分隔。(4)分隔符必须是英文字符,即在英文状态下输入分号、括号、方括号、逗号等。例:2、二维数组的访问例:1.5.3多维数组1、多维数组的创建(1)直接通过全下标方式进行元素赋值。(2)用低维数组合成多维数组。(3)用数组生成函数(ones/zeros/rand等)生成多维数组。例:2、多维数组的访问(1)可以通过全下标方式访问。对三维数组来说,第一维下标称为“行下标”,第二维下标称为“列下标”,第三维下标称为“页下标”。(2)数组维数通过ndims函数获取。(3)数组尺寸通过size函数获取。(4)数组的所有维中的最大长度通过length函数获取。1.5.4数组操作1、标准数组的生成(1)ones——生成全1数组,即数组中的元素都为1【调用格式】:Y=ones(n)%生成n*n的全1矩阵Y=ones(size(A))%生成和数组A同样尺寸的全1数组(2)zeros——同ones函数相似(3)rand——生成均匀分布随机数组(4)randn——生成正态分布随机数组(5)eye——产生单位矩阵1.6数组运算与矩阵运算【定义】:数组运算是指对数组中的每个元素进行相同的运算,注意数组运算的行与列必须相同。数组运算可以通过MATLAB提供的运算符和数组运算函数实现。矩阵运算是则遵循线性代数的一般规则。例:矩阵运算和数组运算见课本34页。1.7多项式多项式,在MATLAB里多项式用其系数行向量表示,表示。多项式的创建直接输入法,例:poly(A),若A为方阵,则创建方阵A的特征多项式。poly(a),如果向量a=[bn,bn-1,…,b1,b0],则创建生产的多项式的系数向量。多项式运算多项式加减:+,-多项式相乘:p=conv(p1,p2)多项式相除:[q,r]=deconv(p1,p2)【说明】:多项式p1除以多项式p2,商多项式为q,余多项式为r。多项式求导:dp=polyder(p)多项式求值:pA=polyval(p,A)多项式求根:r=roots(p)矩阵的特征多项式:p=poly(A)例:多项式的创建和运算1.8逻辑关系运算【练习】:回答关于下列矩阵的有关问题C的大小是多少?C(2,3)的值是多少?列出值为0.6的元素的下标c数组的定义如下,写出下面子数组的内容(1)c(2,:)(2)c(:,end)(3)c(1:2,2:end)(4)c(6)(7)c(4:end)(8)c(1:2,2:4)(9)c([14],2)(10)c([22],[33])3、当赋值语句执行后,下列数组的内容是多少?当数组执行后,下列数组a的内容是多少?第1章控制系统的数学模型1.1控制系统的数学建模1、传递函数(TF)模型1)SISO系统的TF数学模型【调用格式】:sys=tf(num,den)%建立以num为分子多项式、den为分母多项式的TF模型。或sys=tf(‘s’)%建立拉普拉斯变换的自变量s的TF模型。【注意】:num和den分别是传递函数的分子多项式系数和分母多项式系数,按s的降幂排列。tf函数的返回值是一个对象,称之为TF对象,num和den是TF对象的属性。——————————————————————————————————————例1.1:设某SISO系统的传递函数为试建立系统的TF模型。解:方法1直接用分子和分母多项式系数建立TF模型。>>num=[10];>>den=[1210];>>sys=tf(num,den)%建立系统的TF模型,系统名称是sys。Transferfunction:s--------------s^2+2s+10>>sys.den{1}%对SISO系统,den{1}表示传递函数的分母多项式系数向量ans=1210方法2用s因子和数学运算符建立TF模型>>s=tf('s');%建立s的TF模型>>H=s/(s^2+2*s+10)%用数学运算符建立系统的TF模型Transferfunction:s--------------s^2+2s+10——————————————————————————————————————2)MIMO系统的TF模型在MATLAB中num{i,j}和den{i,j}分别表示传递函数矩阵G(s)的第i行第j列的传递函数的分子多项式系数和分母多项式系数。2、零极点(ZPK)模型【调用格式】:sys=tf(z,p,k)%建立以z为零点,p为极点,k为增益的ZPK模型。或sys=zpk(‘s’)%建立拉普拉斯变换的自变量s的ZPK模型。【注意】:(1)z为零点,p为极点,k为增益,对MIMO系统来说z{i,j},p{i,j},k{i,j}分别表示传递函数矩阵G(s)的第i行第j列的传递函数的零点、极点和增益。(2)zpk函数的返回值是一个对象,称之为ZPK对象,z、p和k是ZPK对象的属性。(3)如果没有零点,则z为空数组。——————————————————————————————————————例1.2、设某SISO系统的传递函数为试建立系统的ZPK模型。解:>>k=5;z=[-2];p=[0,-1+j,-1-j];>>sys=zpk(z,p,k)%建立系统的ZPK模型。Zero/pole/gain:5(s+2)----------------s(s^2+2s+2)——————————————————————————————————————3、状态空间(SS)模型【调用格式】:sys=ss(a,b,c,d)%建立状态空间模型。【注意】:a,b,c,d分别表示状态方程的系统矩阵、输入矩阵、输出矩阵和传输矩阵。——————————————————————————————————————例1.3、已知系统的状态空间描述为:试建立系统的SS模型传递函数。解:>>A=[010;0-1-1;003];B=[0;1;1];C=[100];D=0;>>ss(A,B,C,D)a=x1x2x3x1010x20-1-1x3003b=u1x10x21x31c=x1x2x3y1100d=u1y10Continuous-timemodel.——————————————————————————————————————4、离散系统的数学模型1)、脉冲传递函数模型【调用格式】:sys=tf(num,den,Ts)%建立离散系统的TF模型,其中Ts是离散系统的采样周期。sys=tf(z,p,k,Ts)%建立离散系统的ZPK模型。2)、状态空间模型【调用格式】:sys=ss(a,b,c,d,Ts)%建立离散系统的状态空间模型。1.2数学模型之间的转换1、线性时不变系统(LTI)对象之间的转换sys=tf(sys)%将sys对象转换为TF模型sys=zpk(sys)%将sys对象转换为TF模型sys=ss(sys)%将sys对象转换为TF模型2、LTI对象属性之间的转换【调用格式】:[z,p,k]=tf2zp(num,den)%将TF对象属性转换为ZPK对象的属性[A,B,C,D]=tf2ss(num,den)%将TF对象属性转换为SS对象的属性[num,den]=zp2tf(z,p,k)%将ZPK对象属性转换为TF对象的属性[A,B,C,D]=zp2ss(z,p,k)%将ZPK对象属性转换为SS对象的属性[z,p,k]=ss2zp(A,B,C,D,iu)%将SS对象属性转换为ZPK对象的属性[num,den]=ss2zp(A,B,C,D,iu)%将SS对象属性转换为TF对象的属性注意:iu是输入变量的序号,即转换是输出对哪个输入变量进行的。——————————————————————————————————————例2.1已知系统的状态空间表达式的系数矩阵为:,,,D=0求取该系统响应的TF模型和ZPK模型。解:方法一>>A=[200;041;004];B=[101]';C=[110];D=0;>>[a,b]=ss2tf(A,B,C,D);>>G1=tf(a,b)Transferfunction:s^2-7s+14------------------------s^3-10s^2+32s–32>>[z,p,k]=tf2zp(a,b);>>G2=zpk(z,p,k)Zero/pole/gain:(s^2-7s+14)---------------(s-4)^2(s-2)方法二>>A=[200;041;004];B=[101]';C=[110];D=0>>gss=ss(A,B,C,D);>>gtf=tf(gss)Transferfunction:s^2-7s+14------------------------s^3-10s^2+32s-32>>gzpk=zpk(gss)Zero/pole/gain:(s^2-7s+14)---------------(s-2)(s-4)^2;——————————————————————————————————————3、连续系统和离散系统之间的转换【调用格式】:sysd=c2d(sysc,Ts)%将连续系统转换为采样周期为Ts的离散系统sysc=d2c(sysd)%将离散系统转换为连续系统[Ad,Bd,Cd,Dd]=c2dm(A,B,C,D,Ts)%连续SS模型的离散化[Ac,Bc,Cc,Dc]=d2cm(A,B,C,D,Ts)%离散SS模型的连续化sysd1=d2d(sysd,Ts)%改变离散系统的采样周期,生产新的离散系统。说明:sysc表示连续系统的数学模型,sysd表示离散系统的数学模型。——————————————————————————————————————例2.2已知系统的被控对象传递函数为:如果选择采样周期,试将其进行离散化处理。解:>>a=10;b=[1710];ts=0.1;>>sysc=tf(a,b);>>sysd=c2d(sysc,ts)Transferfunction:0.0398z+0.03152----------------------z^2-1.425z+0.4966Samplingtime:0.11.3系统模型的运算【调用格式】:sys=series(sys1,sys2)%用于SISO系统的串联sys=parallel(sys1,sys2)%用于SISO系统的并联sys=feedback(sys1,sys2,sign)%用于SISO系统的反馈连接说明:sign为反馈的极性,sign=1为正反馈连接,sign=-1为负反馈连接(默认值)。——————————————————————————————————————例3.1典型反馈控制系统结构如图所示。其中,,,求系统的闭环传递函数。解:>>G=tf(4,[1234]);Gc=tf([1-3],[13]);H=tf(1,[0.011]);>>G_0=Gc*G;>>G_c=feedback(G_0,H)Transferfunction:0.04s^2+3.88s-12---------------------------------------------------0.01s^5+1.05s^4+5.09s^3+9.13s^2+17.12s——————————————————————————————————————第2章控制系统的分析2.1线性系统的时域分析1单位阶跃响应【调用格式】:step(sys)%绘制连续系统sys的单位阶跃响应曲线,自动选取时间tstep(sys,t)%绘制连续系统sys在时间t范围内的单位阶跃响应曲线step(sys1,sys2,…,sysN)%绘制多个系统的单位阶跃响应曲线step(sys1,sys2,…,sysN,t)%绘制多个系统在时间t范围内的单位阶跃响应曲线[y,t]=step(sys)%带有输出变量的调用格式step(A,B,C,D)%状态空间模型的单位阶跃响应曲线step(A,B,C,D,t)step(num,den)%输入变量为传递函数模型step(num,den,t)[pos,tr,ts,tp]=stepchar(sys,delta)%计算SISO单位阶跃响应的系统性能指标,本函数要自己编辑,delta为稳态范围宽度,pos为超调量,tr为上升时间,ts为调节时间,tp为峰值时间。例2.1典型二阶系统传递函数为,试分析不同参数下的系统单位阶跃响应(,)。解:wn=1;zetas=[0:0.1:1,2,3,5];t=0:0.1:12;%建个m文件holdonfori=1:length(zetas)Gc=tf(wn^2,[1,2*zetas(i)*wn,wn^2]);step(Gc,t)endgridon,holdon例2.2系统的传递函数为,试求取其单位阶跃响应的特征量:超调量、上升时间,调整时间,峰值时间。解:function[pos,tr,ts,tp]=stepchar(sys,delta)%建m函数,要读懂该函数。[y,t]=step(sys);[mp,ind]=max(y);dimt=length(t);yss=y(dimt);pos=100*(mp-yss)/yss;tp=t(ind);fori=1:dimtify(i)>=1tr=t(i);break;endendfori=1:length(y)ify(i)<=(1-delta)*yss|y(i)>=(1+delta)*yssts=t(i);endend>>sys=tf([1],[10.61]);>>[postrtstp]=stepchar(sys,0.02)pos=36.0787tr=2.1991ts=13.8230tp=3.1416——————————————————————————————————————2理想单位脉冲响应【调用格式】:impulse(sys)%绘制连续系统sys的单位脉冲响应曲线,自动选取时间timpulse(sys,t)%绘制连续系统sys在时间t范围内的单位脉冲响应曲线impulse(sys1,sys2,…,sysN)%绘制多个系统的单位脉冲响应曲线impulse(sys1,sys2,…,sysN,t)%绘制多个系统在时间t范围内的单位脉冲响应曲线[y,t]=impulse(sys)%带有输出变量的调用格式impulse(A,B,C,D)%状态空间模型的单位脉冲响应曲线impulse(A,B,C,D,t)impulse(num,den)%输入变量为传递函数模型impulse(num,den,t)3零输入响应【调用格式】:initial(sys,x0)%绘制连续系统sys的零输入响应曲线,自动选取时间tinitial(sys,x0,t)%绘制连续系统sys在时间t范围内的零输入响应曲线initial(sys1,sys2,…,sysN,x0)%绘制多个系统的零输入响应曲线initial(sys1,sys2,…,sysN,x0,t)%绘制多个系统在时间t范围内的零输入响应曲线[y,t,x]=initial(sys)%带有输出变量的调用格式说明:x0是初始条件4任意输入响应当系统的输入信号不是典型信号时,可以使用lism函数求取系统对任意信号的响应。【调用格式】:lsim(sys,u,t)lsim(sys,u,t,x0)lsim(sys1,sys2,…,sysN,u,t)lsim(sys1,sys2,…,sysN,u,t,x0)[y,t,x]=lsim(sys,u,t)例2.3二阶系统的传递函数为当系统的输入信号幅值为1,周期为8s的方波时,绘制系统的输出响应曲线。解:>>sys=tf([16],[1316]);>>[u,t]=gensig('square',8,32,0.1);>>lsim(sys,u,t),gridon2.2线性系统的根轨迹1根轨迹绘制【调用格式】:[p,z]=pzmap(sys)%绘制系统的零、极点分布图rlocus(sys)%绘制系统的根轨迹rlocus(sys,k)%使用用户指定的根轨迹增益k值来绘制系统的根轨迹rlocus(sys1,sys2,,…)%绘制多个系统的根轨迹[R,K]=rlocus(sys)%计算根轨迹增益值和闭环极点值R=rlocus(sys,k)%计算对应于根轨迹增益值k的闭环极点值说明:1)rlocus函数绘制以k为参数的SISO系统的轨迹图。2)不带输出变量的调用方式将绘制系统的根轨迹3)带输出变量的调用方式将不绘制系统的根轨迹,只计算根轨迹上各个点的值。2计算根轨迹增益【调用格式】:[K,poles]=rlocfind(sys)%计算鼠标拾取点处得根轨迹增益和闭环极点[K,poles]=rlocfind(sys,P)%计算最靠近给定闭环极点P处的根轨迹增益例2.4负反馈系统的开环传递函数为绘制系统的根轨迹图,并求使系统稳定的K值范围和使系统无超调的K的范围。解:>>sys=tf([16],[1316]);>>[u,t]=gensig('square',8,32,0.1);>>lsim(sys,u,t),gridon>>sys=tf(1,[1450])Transferfunction:1-----------------s^3+4s^2+5s>>rlocus(sys)>>[x,y]=ginput(3);>>p=x+i*yp=-1.6789-0.0124i-0.9988-0.0124i0.0130+2.2981i>>K=rlocfind(sys,p)K=1.85182.000221.27032.3线性系统的频域响应1奈奎斯特(Nyquist)图【调用格式】:[re,im,w]=nyquist(sys)%自动确定频率区间w,计算频率响应[re,im]=nyquist(sys,w)%求取指定频率区间w内的频率响应说明:1)当不带输出变量时,nyquist函数会在当前图形窗口中直接绘制出nyquist图。2)当带输出变量时,re,im分别是系统nyquist阵列的实部和虚部。例2.5系统开环传递函数为绘制系统的nyquist图,并讨论其稳定性。解:>>G=tf(1000,conv([132],[15]));%conv函数是两个多项式相乘>>nyquist(G);在图形窗口用放大器观测(-1,j0)点附近的情况来判断系统的稳定性,结论是系统不稳定。2、伯德(Bode)图【调用格式】:[mag,phase,w]=bode(sys)[mag,phase]=bode(sys,w)%mag,phase分别为系统伯德图的对数幅值(dB)和相角例2.6典型二阶系统传递函数为,使用MATLAB绘制出不同和的bode图。解:一定,变化时wn=1;zetas=[0:0.1:1,2,3,5];t=0:0.1:12;holdonfori=1:length(zetas)Gc=tf(wn^2,[1,2*zetas(i)*wn,wn^2]);bode(Gc);endgridonholdoff一定,变化时wn=[0.1:0.1:1];zet=0.707;holdonfori=1:length(wn)Gc=tf(wn(i)^2,[1,2*zet*wn(i),wn(i)^2]);bode(Gc);endgridonholdoff3幅值和相角裕度计算【调用格式】:[Gm,Pm,Wcg,Wcp]=margin(mag,phase,w)[Gm,Pm,Wcg,Wcp]=margin(sys)说明:Gm为幅值裕度,Wcg为幅值裕度处得频率值,Pm为相角裕度,Wcp为截止频率。当不带输出参数时,margin可在当前图形窗口中绘制出bode图,并在图上标出幅值裕度和相角裕度的值。2.4线性系统稳定性分析1直接判定方法【调用格式】:roots(den)%闭环传递函数分母系数eig(A)%状态空间表达式中的状态矩阵例2.7系统的闭环传递函数为判断系统的稳定性。解:>>G=tf([172424],[110355024]);>>roots(G.den{1})ans=-4.0000-3.0000-2.0000-1.00002间接判定方法Routh判据(MATLAB没有,有兴趣的自己编写)第3章控制系统simulink仿真3.1演示一个Simulink的简单程序【例】创建一个正弦信号的仿真模型。步骤如下:(1)在MATLAB的命令窗口运行simulink命令,或单击工具栏中的图标,就可以打开Simulink模块库浏览器(SimulinkLibraryBrowser)窗口,如图3.1所示。图3.1(2)单击工具栏上的图标或选择菜单“File”——“New”——“Model”,新建一个名为“untitled”的空白模型窗口。(3)在上图的右侧子模块窗口中,单击“Source”子模块库前的“+”(或双击Source),或者直接在左侧模块和工具箱栏单击Simulink下的Source子模块库,便可看到各种输入源模块。(4)用鼠标单击所需要的输入信号源模块“SineWave”(正弦信号),将其拖放到的空白模型窗口“untitled”,则“SineWave”模块就被添加到untitled窗口;也可以用鼠标选中“SineWave”模块,单击鼠标右键,在快捷菜单中选择“addto'untitled'”命令,就可以将“SineWave”模块添加到untitled窗口,如图3.2所示。图3.2(5)用同样的方法打开接收模块库“Sinks”,选择其中的“Scope”模块(示波器)拖放到“untitled”窗口中。(6)在“untitled”窗口中,用鼠标指向“SineWave”右侧的输出端,当光标变为十字符时,按住鼠标拖向“Scope”模块的输入端,松开鼠标按键,就完成了两个模块间的信号线连接,一个简单模型已经建成。如图3.3所示。(7)开始仿真,单击“untitled”模型窗口中“开始仿真”图标,或者选择菜单“Simulink”——“Start”,则仿真开始。双击“Scope”模块出现示波器显示屏,可以看到黄色的正弦波形。如图3.4所示。图3.3图3.4(8)保存模型,单击工具栏的图标,将该模型保存为“Ex0301.mdl”文件。3.2Simulink的文件操作和模型窗口3.2.1Simulink的文件操作1.新建文件新建仿真模型文件有几种操作:在MATLAB的命令窗口选择菜单“File”“New”“Model”。在图3.1的Simulink模块库浏览器窗口选择菜单“File”“New”“Model”,或者单击工具栏的图标。在图3.3的Simulink模型窗口选择菜单“File”“New”“Model”,或者单击工具栏的图标。2.打开文件打开仿真模型文件有几种操作:在MATLAB的命令窗口输入不加扩展名的文件名,该文件必须在当前搜索路径中,例如输入“Ex0301”。在MATLAB的命令窗口选择菜单“File”Open…”或者单击工具栏的图标打开文件。在图3.1的Simulink模块库浏览器窗口选择菜单“File”“Open…”或者单击工具栏的图标打开“.mdl”文件。在图3.3的Simulink模型窗口中选择菜单“File”“Open…”或者单击工具栏的图标打开文件。3.2.2Simulink的模型窗口模型窗口由菜单、工具栏、模型浏览器窗口、模型框图窗口以及状态栏组成。图3.51.状态栏2.工具栏模型窗口工具栏如图3.6所示。3.菜单Simulink的模型窗口的常用菜单如表3.1所示。表3.1模型窗口常用菜单表菜单名菜单项功能FileNew——Model新建模型Modelproperties模型属性PreferencesSIMULINK界面的默认设置选项Print…打印模型Close关闭当前Simulink窗口ExitMATLAB退出MATLAB系统EditCreatesubsystem创建子系统Masksubsystem…封装子系统Lookundermask查看封装子系统的内部结构Updatediagram更新模型框图的外观ViewGotoparent显示当前系统的父系统Modelbrowseroptions模型浏览器设置Blockdatatipsoptions鼠标位于模块上方时显示模块内部数据Librarybrowser显示库浏览器Fitsystemtoview自动选择最合适的显示比例Normal以正常比例(100%)显示模型SimulationStart/Stop启动/停止仿真Pause/Continue暂停/继续仿真SimulationParameters…设置仿真参数Normal普通Simulink模型Accelerator产生加速Simulink模型FormatTextalignment标注文字对齐工具Filpname翻转模块名Show/Hidename显示/隐藏模块名Filpblock翻转模块RotateBlock旋转模块Librarylinkdisplay显示库链接Show/Hidedropshadow显示/隐藏阴影效果Sampletimecolors设置不同的采样时间序列的颜色Widenonscalarlines粗线表示多信号构成的向量信号线Signaldimensions注明向量信号线的信号数Portdatatypes标明端口数据的类型Storageclass显示存储类型ToolsDataexplorer…数据浏览器Simulinkdebugger…Simulink调试器Dataclassdesigner用户定义数据类型设计器LinearAnalysis线性化分析工具7.3模型的创建7.3.1模块的操作1.对象的选定选定单个对象选定对象只要在对象上单击鼠标,被选定的对象的四角处会出现小黑块编辑框。选定多个对象如果选定多个对象,可以按下Shift键,然后再单击所需选定的模块;或者用鼠标拉出矩形虚线框,将所有待选模块框在其中,则矩形框中所有的对象均被选中,如图3.7所示。图3.72.模块的复制(1)不同模型窗口(包括模型库窗口)之间的模块复制选定模块,用鼠标将其拖到另一模型窗口。选定模块,使用菜单的“Copy”和“Paste”命令。选定模块,使用工具栏的“Copy”和“Paste”按钮。(2)在同一模型窗口内的复制模块(如图3.8所示)选定模块,按下鼠标右键,拖动模块到合适的地方,释放鼠标。选定模块,按住Ctrl键,再用鼠标拖动对象到合适的地方,释放鼠标。使用菜单和工具栏中的“Copy”和“Paste”按钮。图3.83.模块的移动在同一模型窗口移动模块选定需要移动模块,用鼠标将模块拖到合适的地方。在不同模型窗之间移动模块,在用鼠标移动的同时按下Shift键。当模块移动时,与之相连的连线也随之移动。4.模块的删除要删除模块,应选定待删除模块,按Delete键;或者用菜单“Edit”“Clear”或“Cut”;或者用工具栏的“Cut”按钮。5.改变模块大小选定需要改变大小的模块,出现小黑块编辑框后,用鼠标拖动编辑框,可以实现放大或缩小。6.模块的翻转模块翻转180度选定模块,选择菜单“Format”“FlipBlock”可以将模块旋转180度,如同3.9中间为翻转180度示波器模块。模块翻转90度选定模块,选择菜单“Format”“RotateBlock”可以将模块旋转90度,如图3.9右边示波器所示。如果一次翻转不能达到要求,可以多次翻转来实现。图3.97.模块名的编辑修改模块名单击模块下面或旁边的模块名,出现虚线编辑框就可对模块名进行修改。3.4Simulink的基本模块3.4.1基本模块Simulink的基本模块包括9个子模块库。1输入信号源模块库(Sources)输入信号源模块是用来向模型提供输入信号。常用的输入信号源模块源如表3.2所示。表3.2常用的输入信号源模块表名称模块形状功能说明Constant恒值常数,可设置数值Step阶跃信号Ramp线性增加或减小的信号SineWave正弦波输出SignalGenerator信号发生器,可以产生正弦、方波、锯齿波和随机波信号FromFile从文件获取数据FromWorkspace从当前工作空间定义的矩阵读数据Clock仿真时钟,输出每个仿真步点的时间In输入模块2.接收模块库(Sinks)接收模块是用来接收模块信号的,常用的接收模块如表3.3所示。表3.3常用的接收模块表名称模块形状功能说明Scope示波器,显示实时信号Display实时数值显示XYGraph显示X-Y两个信号的关系图ToFile把数据保存为文件ToWorkspace把数据写成矩阵输出到工作空间StopSimulation输入不为零时终止仿真,常与关系模块配合使用Out输出模块3.连续系统模块库(Continuous)连续系统模块是构成连续系统的环节,常用的连续系统模块如表3.4所示。表3.4常用的连续系统模块表名称模块形状功能说明Integrator积分环节Derivative微分环节State-Space状态方程模型TransferFcn传递函数模型Zero-Pole零—极点增益模型TransportDelay把输入信号按给定的时间做延时4.离散系统模块库(Discrete)离散系统模块是用来构成离散系统的环节,常用的离散系统模块如表3.5所示。表3.5常用的离散系统模块表名称模块形状功能说明DiscreteTransferFcn离散传递函数模型DiscreteZero-Pole离散零极点增益模型DiscreteState-Space离散状态方程模型DiscreteFilter离散滤波器Zero-OrderHold零阶保持器First-OrderHold一阶保持器UnitDelay采样保持,延迟一个周期图3.13模块的参数设置3.4.2常用模块的参数和属性设置图3.13模块的参数设置1.模块参数设置(1)正弦信号源(SineWave)双击正弦信号源模块,会出现如图3.13所示的参数设置对话框。图3.13的上部分为参数说明,仔细阅读可以帮助用户设置参数。Sinetype为正弦类型,包括Time-based和Sample-based;Amplitude为正弦幅值;Bias为幅值偏移值;Frequency为正弦频率;Phrase为初始相角;Sampletime为采样时间。(2)阶跃信号源(Step)阶跃信号模块是输入信号源,其模块参数对话框如图3.14所示。图3.14阶跃信号模块的参数其中:Steptime为阶跃信号的变化时刻,initialvalue为初始值,Finalvalue为终止值,Sampletime为采样时间。图3.14阶跃信号模块的参数(3)从工作空间获取数据(Fromworkspace)从工作空间获取数据模块的输入信号源为工作空间。【例3.2】在工作空间计算变量t和y,将其运算的结果作为系统的输入。t=0:0.1:10;y=sin(t);t=t';y=y';然后将“FromWorkspace”模块的参数设置对话框打开,如图3.15(a)所示,在“Data”栏填写“[t,y]”,单击“OK”按钮完成。则在模型窗口中该模块就显示为图3.15(b)。用示波器作为接收模块,可以查看输出波形为正弦波。图3.15(a)模块参数设置(b)从工作空间获取数据模块“Data”的输入有几种,可以是矩阵、包含时间数据的结构数组。“FromWorkspace”模块的接收模块必须有输入端口,“Data”矩阵的列数应等于输入端口的个数+1,第一列自动当成时间向量,后面几列依次对应各端口。图3.15(a)模块参数设置(b)从工作空间获取数据模块t=0:0.1:2*pi;y=sin(t);y1=[t;y];saveEx0702y1 %保存在“Ex0702.mat”文件中(4)从文件获取数据(Fromfile)从文件获取数据模块是指从mat数据文件中获取数据为系统的输入。图3.16FromFile参数设置将【例3.2】中的数据保存到.mat文件:图3.16FromFile参数设置t=0:0.1:2*pi;y=sin(t);y1=[t;y];saveEx0702y1 %保存在“Ex0702.mat”文件中然后将“FromFile”模块的参数设置对话框打开,如图3.16所示,在“Filename”栏填写“Ex0702.mat”,单击“OK”按钮完成。用示波器作为接收模块,可以查看输出波形。(5)传递函数(Transferfunction)图3.18图3.17传递函数模块参数设置传递函数模块是用来构成连续系统结构的模块,其模块参数对话框如图3.17所示。图3.18图3.17传递函数模块参数设置在上图中设置“Denominator”为“[11.4141]”,则在模型窗口中显示为如图3.18所示。(6)示波器(Scope)示波器模块是用来接收输入信号并实时显示信号波形曲线,示波器窗口的工具栏可以调整显示的波形,显示正弦信号的示波器如图3.19所示。打开参数对话框打开参数对话框纵坐标的自动刻度X-Y坐标变焦X坐标变焦图3.19示波器窗口把当前的坐标设置保存浮动示波器恢复保存过的坐标设置Y坐标变焦2.模块属性设置每个模块的属性对话框的内容都相同,如图3.22所示。图3.22模块的属性设置(1)说明(Description)图3.22模块的属性设置图3.23模块的属性格式字符串对模块在模型中用法的注释。图3.23模块的属性格式字符串(2)优先级(Priority)规定该模块在模型中相对于其它模块执行的优先顺序。(3)标记(Tag)用户为模块添加的文本格式标记。(4)调用函数(Openfunction)当用户双击该模块时调用的MATLAB函数。(5)属性格式字符串(Attributesformatstring)指定在该模块的图标下显示模块的哪个参数和格式。Simulink的模型实际上是定义了仿真系统的微分或差分方程组,而仿真则是用数值解算法来求解方程。3.5复杂系统的仿真与分析Simulink的模型实际上是定义了仿真系统的微分或差分方程组,而仿真则是用数值解算法来求解方程。3.5.1仿真的设置在模型窗口选择菜单“Simulation”“Simulationparameters…”,则会打开参数设置对话框,如图3.24所示。图3.24Solver参数设置1.Solver页的参数设置图3.24Solver参数设置(1)仿真的起始和结束时间仿真的起始时间(Starttime)仿真的结束时间(Stoptime)(2)仿真步长仿真的过程一般是求解微分方程组,“Solveoptions”的内容是针对解微分方程组的设置。(3)仿真解法Type的右边:设置仿真解法的具体算法类型。(4)输出模式根据需要选择输出模式(Outputoptions),可以达到不同的输出效果。2.WorkspaceI/O(工作空间输入输出)页的设置图3.25WorkspaceI/O参数设置如图3.25所示,可以设置Simulink从工作空间输入数据、初始化状态模块,也可以把仿真的结果、状态模块数据保存到当前工作空间。图3.25WorkspaceI/O参数设置(1)从工作空间装载数据(Loadfromworkspace)(2)保存数据到工作空间(Savetoworkspace)Time栏勾选Time栏后,模型将把(时间)变量以在右边空白栏填写的变量名(默认名为tout)存放于工作空间。States栏勾选States栏后,模型将把其状态变量在右边空白栏填写的变量名(默认名为xout)存放于工作空间。Output栏如果模型窗口中使用输出模块“Out”,那么就必须勾选Output栏,并填写在工作空间中的输出数据变量名(默认名为yout)。Finalstate栏Finalstate栏的勾选,将向工作空间以在右边空白栏填写的名称(默认名为xFinal),存放最终状态值。(3)变量存放选项(Saveoptions)Saveoptions必须与Savetoworkspace配合使用。7.5.2连续系统仿真【例3.3】建立二阶系统的仿真模型。方法一:输入信号源使用阶跃信号,系统使用开环传递函数,接受模块使用示波器来构成模型。(1)在“Sources”模块库选择“Step”模块,在“Continuous”模块库选择“TransferFcn”模块,在“MathOperations”模块库选择“Sum”模块,在“Sinks”模块库选择“Scope”。(2)连接各模块,从信号线引出分支点,构成闭环系统。(3)设置模块参数,打开“Sum”模块参数设置对话框,如图3.26所示。将“Iconshape”设置为“rectangular”,将“Listofsigns”设置为“|+-”,其中“|”表示上面的入口为空。图3.26Sum参数设置“TransferFcn”模块的参数设置对话框中,将分母多项式“Denominator”设置为“[10.60]”。图3.26Sum参数设置将“Step”模块的参数设置对话框中,将“Steptime”修改为0。(4)添加信号线文本注释双击信号线,出现编辑框后,就输入文本。则模型如图3.27所示。图3.27二阶系统模型(5)仿真并分析图3.27二阶系统模型单击工具栏的“Startsimulation”按钮,开始仿真,在示波器上就显示出阶跃响应。在Simulink模型窗口,选择菜单“Simulation”——“Simulationparameters…”命令,在“Solver”页将“Stoptime”设置为15,然后单击“Startsimulation”按钮,示波器显示的就到15秒结束。打开示波器的Y坐标设置对话框,将Y坐标的“Y-min”改为0,“Y-max”改为2,将“Title”设置为“二阶系统时域响应”,则示波器如图3.28所示。图3.28示波器显示方法二:图3.28示波器显示(1)系统使用积分模块(Integrator)和零极点模块(zero-pole)串联,反馈使用“MathOperations”模块库中的“Gain”模块构成反馈环的增益为-1。(2)连接模块,由于“Gain”模块在反馈环中,因此需要使用“FlipBlock”翻转该模块。(3)设置模块参数,将“zero-pole”模块参数对话框中的“Zeros”栏改为“[]”,将“Poles”栏改为[-0.6]。图3.29二阶系统模型将“Gain”模块的“Gain”参数改为-1。模型如图3.29所示。图3.29二阶系统模型如果将示波器换成“Sinks”模块库中的“Out”模块;然后在仿真参数设置对话框的“WorkspaceI/O”页(工作空间输入输出),将“Time”和“Output”栏勾选,并分别设置保存在工作空间的时间量和输出变量为“tout”和“yout”。仿真后在工作空间就可以使用这两个变量来绘制曲线,如图3.30所示:plot(tout,yout)图3.30plot绘制的时域响应波形图3.30plot绘制的时域响应波形第4章控制系统工具箱控制系统工具箱是建立在MATLAB对控制工程提供的设计功能的基础上,为控制系统的建模、分析、仿真提供了丰富的函数与简便的图形用户界面。在MATLAB中,专门提供了面向系统对象模型的系统设计工具:线性时不变系统浏览器(LTIViewer)和SISO线性系统设计工具(SISODesignTool)。4.1LTIViewer4.1.1简介LTIViewer可以提供绘制浏览器模型的主要时域和频域响应曲线。在MATLAB命令窗口输入命令ltiview,即可进入LTIViewer窗口。4.1.2LTIViewer命令菜单及窗口设置1File菜单【NewViewer】——建立一个新的LTIViewer窗口。【Import】——导入系统对象模型。【Expot】——将当前LTIViewer窗口中的指定系统的对象模型保存到工作空间或者以.mat文件的形式保存在磁盘上。【ToolboxPreferences】——对新建或重启的LTIViewer窗口属性进行设置,对当前窗口无效。这些属性包括坐标单位、对系统指示参数的描述、坐标颜色、坐标字体大小等,如图4.1所示:图4.1ToolboxPreferences对话框2、Edit菜单【PlotConfigurations】——对显示窗口及显示内容进行配置,可以选择LTIViewer所绘制曲线的布局以及不同绘制区域曲线的响应类型,其中响应类型主要有Step、Impulse、Bode、Nyquist、Nichols、Pole/Zero等,如图4.2所示:图4.2PlotConfigurations对话框【RefreshSystems】——当用PlotConfigurations命令使LTIViewer窗口的显示配置发生变化后,使用此命令会使各区县处于最佳显示位置。【DeleteSystems】——选择删除当前窗口中的对象模型。【LineStyles】——对显示曲线的颜色、线性、标记、坐标网格等属性进行设置,如图4.3所示:图4.3LineStyles对话框【ViewerPreferences】——对当前窗口的坐标单位、范围、窗口颜色、字体等窗口进行设置,并且该设置对当前LTIViewer窗口内所有曲线显示有效,如图4.4所示:图4.4ViewerPreferences对话框Units选择卡:设置图形显示时的频率、幅值以及相位的单位。Style选择卡:设置图形显示时的字体、颜色以及绘图网格。Characteristics选择卡:设置系统响应曲线的特性参数。Parameters选择卡:设置系统响应输出的时间变量与频率变量。4.1.3LTIViewer对象模型LTI对象有如下三种形式:1、tf对象sys=tf(num,den)2、zpk对象sys=zpk(z,p,k)3、ss对象sys=ss(a,b,c,d)4.1.4LTIViewer属性设置1、曲线显示区的属性设置如图4.5所示:【PlotTypes】——改变显示框内的显示内容。【Systems】——隐藏/显示指定对象模型的曲线。【Characteristics】——显示重要参数点标记和标记线。【Grid】——是否显示坐标网格。【Normalize】——对纵坐标归一化。【FullView】——使用系统提供的最大采样数显式曲线。【Properties】——设置曲线图的名称、坐标范围、单位、字体、颜色等属性。2、数据显示框的属性设置在选定的曲线显示框中单击显示曲线、会出现活动标记点及对应的数据显示框,多点单击会多出现。如图4.6所示:图4.5曲线显示菜单图4.6数据显示菜单【Alignment】——设置数据显示框相对于标记点的位置。【FontSize】——设置数据显示框显示字符的大小。【Movable】——将指定的标记点设置成活动的【Delete】——删除指定的标记点及对应的数据显示框。【Interpolation】——标记点被鼠标拖动时的插值方式的选择。【TrackMode】——根据对x,y,xy三种方式的选择,标记点沿着所选的方向运动。例4.1典型二阶系统的传递函数为:应用LTIViewer对系统进行分析。解:(1)在MATLAB命令窗口输入以下程序:Sys=tf([0.64],[10.80.64])Ltiview进入LTIViewer浏览器,单击【File】|【import】,进入import对话框,选择在Workspace中的系统模型,显示如图所示图4.7import对话框图4.8LTIViewer主窗口从图中分析系统的上升时间,峰

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论