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

下载本文档

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

文档简介

1、第第2章章MATLAB基础及其使用初步基础及其使用初步第第2章章MATLAB基础及其使用初步基础及其使用初步 2.1 MATLAB简介简介 2.2 MATLAB编程编程 2.3 Simulink交互式仿真环境交互式仿真环境 第第2章章MATLAB基础及其使用初步基础及其使用初步MATLABMATLAB绘图绘图WTWT1 1基本的绘图命令基本的绘图命令1)线性刻度绘图命令plot x轴和y轴均为线性刻度;绘图命令格式为plot(x) % %最简单的调用格式最简单的调用格式plot(x,y) % %常用的调用格式常用的调用格式plot(x1,y1,x2,y2) % %含多个输入参数的调用格式含多个

2、输入参数的调用格式plot(x,y,option)或 plot(x1,y1,option1,x2,y2,option2,); % %含选项含选项的调用格式的调用格式其中选项参数option定义了图形曲线的颜色、线型及表示符号,它由一对单引号括起来。 第第2章章MATLAB基础及其使用初步基础及其使用初步表2.1线型、颜色及表示符号对照表 y k b g r w c m 黄 色 黑 色 兰 色 绿 色 红 色 白 色 亮青 色 锰紫 色 . o x + * s - : -. - v d p h 点 圆 x + * 方 实线 点线 点虚 线 虚线 下三角 上三角 左三角 右三角 金刚石 第第2章章

3、MATLAB基础及其使用初步基础及其使用初步线型与颜色可以任意组合,从而生成不同颜色和不同形状的曲线。举例:plot(t,x,c+:);就画出了用“+”标记的亮青色“点”线,而plot(t,x,c:)则只画出了亮青色的“点”线;plot(t,x,bd)则画出了蓝色的“金刚石”线。 第第2章章MATLAB基础及其使用初步基础及其使用初步 exp2_34:exp2_34:在在00X2X2 区间内,绘制曲线区间内,绘制曲线y=2ey=2e- -0.5x0.5xsin(2x)sin(2x)。 程序如下: x=0:pi/100:2*pi; y=2*exp(-0.5*x).*sin(2*pi*x); pl

4、ot(x,y)第第2章章MATLAB基础及其使用初步基础及其使用初步exp2_35exp2_35某工厂某工厂20002000年各月总产值(单位:万元)分别年各月总产值(单位:万元)分别为为2222、6060、8888、9595、5656、2323、9 9、1010、1414、8181、5656、2323,试绘制折线图以显示出该厂总产值的变化情况。,试绘制折线图以显示出该厂总产值的变化情况。程序如下: p=22,60,88,95,56,23,9,10,14,81,56,23; plot(p)第第2章章MATLAB基础及其使用初步基础及其使用初步第第2章章MATLAB基础及其使用初步基础及其使用初

5、步图24衰减振荡曲线与包络 第第2章章MATLAB基础及其使用初步基础及其使用初步ex2-1ex2-1在同一坐标内绘制曲线在同一坐标内绘制曲线y=2ey=2e-0.5x-0.5xsin(2x)sin(2x)及其包络线。及其包络线。% ex2_1x=(0:pi/100:2*pi);y1=2*exp(-0.5*x); %包络线y2=2*exp(-0.5*x).*sin(2*pi*x); %函数plot(x,y1,g:, x,-y1,g:, x,y2,b);grid on第第2章章MATLAB基础及其使用初步基础及其使用初步【书例2.2】用图形表示离散函数。% ex2_2clear all;n=0:

6、12;%产生一组自变量数据 y=1./abs(n-6);%计算相应点的函数值 plot(n,y,r*,MarkerSize,20) %用红花标出数据点grid on%画坐标方格 第第2章章MATLAB基础及其使用初步基础及其使用初步图25离散函数的可视化 第第2章章MATLAB基础及其使用初步基础及其使用初步2)非线性刻度Loglog(x,y,option):x轴和y轴均为对数刻度;Semilogx(x,y,option):x轴为对数刻度;y轴为线性刻度;Semilogy(x,y,option):y轴为对数刻度;x轴为线性刻度;其他的定义与plot命令完全相同。 第第2章章MATLAB基础及其

7、使用初步基础及其使用初步3)选择图形窗口、图形窗口分割figure(n):设定不同的图形窗口,其中n为正整数,为图形窗口编号;holdonholdoff;subplot(mnk):在同一窗口显示多个图形,其中m为上下分割个数,n为左右分割个数,k为子图编号。 第第2章章MATLAB基础及其使用初步基础及其使用初步 exp1-23exp1-23建立一个图形窗口。该图形窗口没有菜单条,标题名称为建立一个图形窗口。该图形窗口没有菜单条,标题名称为“图形窗口示例图形窗口示例”,起始于屏幕左下角、宽度和高度分别为,起始于屏幕左下角、宽度和高度分别为300300像素点和像素点和150150像素点,背景颜色

8、为绿色,且当用户从键盘按下任像素点,背景颜色为绿色,且当用户从键盘按下任意一个键时,将显示意一个键时,将显示“Hello,Keyboard Key Pressed.”Hello,Keyboard Key Pressed.”字样。字样。 命令如下: hf=figure(Color,0,1,0,Position,1,1,300,150,. Name,图形窗口示例,NumberTitle,off,MenuBar,none,. KeyPressFcn,disp(Hello,Keyboard Key Pressed.);第第2章章MATLAB基础及其使用初步基础及其使用初步 exp1-23aexp1-2

9、3a建立一个图形窗口建立一个图形窗口figure No3,figure No3,有坐标轴。有坐标轴。 % exp1-23a% exp1-23a figure(3); figure(3); hold on; hold on;subplot(234); subplot(234); % %两行三列第四个图形两行三列第四个图形第第2章章MATLAB基础及其使用初步基础及其使用初步4)设定轴的范围axisxmin xmax ymin ymax)。5)文字显示xlabel(字符串),ylabel(字符串):表明坐标的名称等;title(字符串):图的标题(图名);text(x,y,字符串):在图上(x,y

10、)处加注文字;legend(字符串1,字符串2,字符串n):在屏幕上开启一个小视窗,然后依据绘图命令的先后次序,用对应的字符串区分图形上的线;gtext(字符串):文本交互输入命令。 第第2章章MATLAB基础及其使用初步基础及其使用初步6)网格显示gridon:显示网格;gridoff:去掉网格。 第第2章章MATLAB基础及其使用初步基础及其使用初步 exp2_12F=figure(pos,50,100,200,150,color,w);A=axes(pos,0.5,0.5,0.4,0.4);t=0:1:6;plot(t,sin(t)xlabel(我是X轴);ylabel (我是Y轴);t

11、itle (我是标题)第第2章章MATLAB基础及其使用初步基础及其使用初步综合例题第第2章章MATLAB基础及其使用初步基础及其使用初步图 2-6 连续函数的图形表现方法 第第2章章MATLAB基础及其使用初步基础及其使用初步2 2其他绘图命令其他绘图命令bar(x,y):绘制长条图;hist(x,y):绘制直方图;stairs(x,y):绘制阶梯图;stem(x,y):绘制火柴棍图(离散信号常用命令);pie(x):绘制饼图;ezplot:符号方法所用绘图命令。 第第2章章MATLAB基础及其使用初步基础及其使用初步课本其他例题第第2章章MATLAB基础及其使用初步基础及其使用初步【例 2

12、.4】 STHT二阶系统阶跃响应。 clf;t=6*pi*(0:100)/100;y=1-exp(-0.3*t).*cos(0.7*t); tt=t(find(abs(y-1)0.05);ts=max(tt); subplot(1,2,1),plot(t,y,r-,LineWidth,3),gridon; axis(0,6*pi,0.6,max(y); title(y=1-exp(-alpha*t)*cos(omega*t); text(11,1.25,alpha=0.3);text(11,1.15,omega=0.7); holdon;plot(ts,0.95,bo,MarkerSize,1

13、0);holdoff; text(ts+1.5,0.95,ts=num2str(ts); xlabel(t-),ylabel(y-); subplot(1,2,2),plot(t,y,r-,LineWidth,3); axis(-inf,6*pi,0.6,inf); set(gca,Xtick,2*pi,4*pi,6*pi,Ytick,0.95,1,1.05,max(y); 第第2章章MATLAB基础及其使用初步基础及其使用初步Grid on; title(ity=1-e-alphatcosomegat); text(13.5,1.2,fontsize12alpha=0.3); text(13

14、.5,1.1,fontsize12omega=0.7); holdon;plot(ts,0.95,bo,MarkerSize,10);holdoff; cell-string1=fontsize12uparrow; cell-string2=fontsize16fontname隶书镇定时间; cell-string3=fontsize6; cell-string4=fontsize14rmt-s=num2str(ts) ; text(ts,0.85,cell-string); xlabel(fontsize14bftrightarrow); ylabel(fontsize14bfyrighta

15、rrow)。 第第2章章MATLAB基础及其使用初步基础及其使用初步图27二阶阶跃响应图 第第2章章MATLAB基础及其使用初步基础及其使用初步【例2.5】利用hold绘制离散信号通过零阶保持器后产生的波形。t=2*pi*(0:20)/20;y=cos(t).*exp(-0.4*t);stem(t,y,g);holdon;stairs(t,y,r);holdoff。运行后得到如图28所示曲线。 第第2章章MATLAB基础及其使用初步基础及其使用初步图28离散信号的重构 第第2章章MATLAB基础及其使用初步基础及其使用初步【例 2.6】 画出函数xxysin和积分xdxxxs0)sin(在区间

16、4 , 0上的曲线。 clf;dx=0.1;x=0:dx:4;y=x.*sin(x);s=cumtrapz(y)*dx; %梯形法求累计积分 plotyy(x,y,x,s),text(0.5,0,fontsize14ity=xsinx) sint=fontsize16int_fontsize80 x; text(2.5,3.5,fontsize14its=,sint,fontsize14itxsinxdx) 第第2章章MATLAB基础及其使用初步基础及其使用初步图29函数和积分 第第2章章MATLAB基础及其使用初步基础及其使用初步【例2.7】受热压力容器的期望温度是120,期望压力是0.25

17、Mpa。在同一张图上画出它们的阶跃响应曲线。S1=tf(11,1321);%温度的传递函数对象模型S2=tf(1,111);%压力的传递函数对象模型Y1,T1=step(S1);%计算阶跃响应Y2,T2=step(S2);%计算阶跃响应plotyy(T1,120*Y1,T2,0.25*Y2,stairs,plot)运行后得到如图210所示曲线。 第第2章章MATLAB基础及其使用初步基础及其使用初步图210双纵坐标图演示 第第2章章MATLAB基础及其使用初步基础及其使用初步【例2.8】compass和feather指令的区别。t=-pi/2:pi/12:pi/2;%在-90,90区间,每15

18、取一点r=ones(size(t);%单位半径x,y=pol2cart(t,r);%极坐标转化为直角坐标subplot(1,2,1),compass(x,y),title(Compass);subplot(1,2,2),feather(x,y),title(Feather)。运行后得到如图211所示曲线。 第第2章章MATLAB基础及其使用初步基础及其使用初步图 211 compass和feather指令的区别 第第2章章MATLAB基础及其使用初步基础及其使用初步【例2.9】 本例表现一个离散方波的快速Fourier变换的幅频。本例左图用极坐标指令polar绘出,右图用三维离散杆图指令ste

19、m3 绘出。MATLAB的polar指令是建筑在plot基础上的。指令执行后,出现的极坐标轴及分度标识也是由plot以一种“固定”模式产生的。因此,极坐标轴的控制很不灵活,它只能以比较简单的方式表达函数。如对于本例左图,那图形小、线条细、文字太密的缺陷,就较难克服。相比而言,先借助极坐标和直角坐标转换,然后再通过直角坐标图形指令加以表现,往往更显灵活、方便。如本例的右图。 第第2章章MATLAB基础及其使用初步基础及其使用初步th = (0:127)/128*2*pi;%角度采样点rho=ones(size(th);%单位半径x = cos(th);y = sin(th);f = abs(ff

20、t(ones(10,1),128);%对离散方波进行FFT变换,并取幅值。rho=ones(size(th)+f;%取单位圆为绘制幅频谱的基准。subplot(1,2,1),polar(th,rho,r)subplot(1,2,2),stem3(x,y,f,d,fill)%取菱形离散杆头,并填色。view(-65 30)%控制角度,为表现效果。 第第2章章MATLAB基础及其使用初步基础及其使用初步图 2-12 离散方波的幅频谱 第第2章章MATLAB基础及其使用初步基础及其使用初步SIMULINK在工程实际中,控制系统的结构往往很复杂,如果不借助专用的系统建模软件,则很难准确地把一个控制系统

21、的复杂模型输入计算机,对其进行进一步的分析与仿真。1990年,Math Works软件公司为MATLAB提供了新的控制系统模型图输入与仿真工具SIMULINK ,该工具很快就在控制工程界获得了广泛的认可,使得仿真软件进入了模型化图形组态阶段。SIMULINK的出现,给控制系统分析与设计带来了福音。顾名思义,该软件的名称表明了该系统的两个主要功能:Simu(仿真)和Link(连接),即该软件可以利用鼠标在模型窗口上绘制出所需要的控制系统模型,然后利用SIMULINK提供的功能来对系统进行仿真和分析。第第2章章MATLAB基础及其使用初步基础及其使用初步2.3Simulink交互式仿真环境交互式仿

22、真环境 SimulinkSimulink简介简介Simulink是一个进行动态系统建模、仿真和综合分析的集成软件包。它可以处理的系统包括:线性、非线性系统;离散、连续及混合系统;单任务、多任务离散事件系统。在Simulink提供的图形用户界面GUI上,只要进行鼠标的简单拖拉操作就可构造出复杂的仿真模型。它外表以方块图形式呈现,且采用分层结构。从建模角度讲,这既适用于自上而下(Topdown)的设计流程(概念、功能、系统、子系统直至器件),又适用于自下而上(Bottomup)的逆程设计。从分析研究角度讲,这种Simulink模型不仅能让用户知道具体环节的动态细节,而且能让用户清晰地了解各器件、各

23、子系统、各系统间的信息交换,掌握各部分之间的交互影响。 第第2章章MATLAB基础及其使用初步基础及其使用初步在Simulink环境中,用户将摆脱理论演绎时需做理想化假设的无奈,观察到现实世界中摩擦、风阻、齿隙、饱和、死区等非线性因素和各种随机因素对系统行为的影响。在Simulink环境中,用户可以在仿真进程中改变感兴趣的参数,实时地观察系统行为的变化。由于Simulink环境使用户摆脱了深奥数学推演的压力和繁琐编程的困扰,因此用户在此环境中会产生浓厚的探索兴趣,引发活跃的思维,感悟出新的真谛。在MATLAB5.3版中,可直接在Simulink环境中运作的工具包很多,已覆盖通信、控制、信号处理

24、、DSP、电力系统等诸多领域,所涉及内容专业性极强。 第第2章章MATLAB基础及其使用初步基础及其使用初步Simulink仿真基础仿真基础 1 1什么是什么是SimulinkSimulinkSimulink是MATLAB软件的扩展,它是实现动态系统建模和仿真的一个软件包,它与MATLAB语言的主要区别在于,其与用户交互接口是基于Windows的模型化图形输入,其结果是使得用户可以把更多的精力投入到系统模型的构建,而非语言的编程上。所谓模型化图形输入是指Simulink提供了一些按功能分类的基本的系统模块,用户只需要知道这些模块的输入、输出及模块的功能,而不必考察模块内部是如何实现的,通过对这

25、些基本模块的调用,再将它们连接起来就可以构成所需要的系统模型(以.mdl文件进行存取),进而进行仿真与分析。 第第2章章MATLAB基础及其使用初步基础及其使用初步2 2SimulinkSimulink的启动的启动(1)在MATLAB命令窗口中输入Simulink。结果是在桌面上出现一个称为SimulinkLibraryBrowser的窗口,在这个窗口中列出了按功能分类的各种模块的名称。(2)在MATLAB主窗口用快捷按钮打开SimulinkLibraryBrowser窗口。 第第2章章MATLAB基础及其使用初步基础及其使用初步3 3SimulinkSimulink的模块库介绍的模块库介绍S

26、imulink模块库按功能进行分类,包括以下8类子库LinearLinear(线性模块);(线性模块);DiscreteDiscrete(离散模块);(离散模块);ConnectionsConnections(连接模块);(连接模块);DemosDemos(演示模块);(演示模块);NonlinearNonlinear(非线性模块);(非线性模块);Blocksets&ToolboxesBlocksets&Toolboxes(块设置与工具箱模块);(块设置与工具箱模块);SinksSinks(接收器模块);(接收器模块);SourcesSources(输入源模块)。(输入源模块)。每个模块内又

27、有多个子模块,可以实现不同的功能。 注:Matlab6.5中,有13个模块。第第2章章MATLAB基础及其使用初步基础及其使用初步图213Simulink模块库 第第2章章MATLAB基础及其使用初步基础及其使用初步1、连续模块(Continuous) Derivative:输入信号微分Integrator:输入信号积分State-Space:线性状态空间系统模型Transfer-Fcn:线性传递函数模型Zero-Pole:以零极点表示的传递函数模型第第2章章MATLAB基础及其使用初步基础及其使用初步2 Math Operations(数学运算模块)Sum:加减运算Product:乘运算Do

28、t Product:点乘运算Gain:比例运算Math Function:包括指数函数、对数函数、求平方、开根号等常用数学函数Trigonometric Function:三角函数,包括正弦、余弦、正切等MinMax:最值运算Abs:取绝对值第第2章章MATLAB基础及其使用初步基础及其使用初步3、Signal(信号和系统模块) In1:输入端。Out1:输出端。Mux:将多个单一输入转化为一个复合输出。Demux:将一个复合输入转化为多个单一输出。Ground:连接到没有连接到的输入端。第第2章章MATLAB基础及其使用初步基础及其使用初步4、Sinks(接收器模块) Scope:示波器。X

29、Y Graph:显示二维图形。To Workspace:将输出写入MATLAB的工作空间。To File(.mat):将输出写入数据文件。第第2章章MATLAB基础及其使用初步基础及其使用初步5、Sources(输入源模块) Constant:常数信号。Clock:时钟信号。From Workspace:来自MATLAB的工作空间。Signal Generator:信号发生器,可以产生正弦、方波、锯齿波及随意波。Sine Wave:正弦波信号。Step:阶跃波信号。Ramp: 单位斜坡信号第第2章章MATLAB基础及其使用初步基础及其使用初步4 4SimulinkSimulink简单模型的建立

30、及模型特点简单模型的建立及模型特点(1)简单模型的建立。(2)建立模型窗口。(3)将功能模块由模块库窗口复制到模型窗口。(4)对模块进行连接,从而构成需要的系统模型。 exp2_1.mdl 第第2章章MATLAB基础及其使用初步基础及其使用初步 5.SIMULINK功能模块的处理q模块库中的模块可以直接用鼠标进行拖曳(选中模块,按住模块库中的模块可以直接用鼠标进行拖曳(选中模块,按住鼠标左键不放)而放到模型窗口中进行处理。鼠标左键不放)而放到模型窗口中进行处理。q在模型窗口中,选中模块,则其在模型窗口中,选中模块,则其4个角会出现黑色标记。此时个角会出现黑色标记。此时可以对模块进行以下的基本操

31、作。可以对模块进行以下的基本操作。移动:选中模块,按住鼠标左键将其拖曳到所需的位置即可。移动:选中模块,按住鼠标左键将其拖曳到所需的位置即可。若要脱离线而移动,可按住若要脱离线而移动,可按住shift键,再进行拖曳。键,再进行拖曳。复制:选中模块,然后按住鼠标右键进行拖曳即可复制同样复制:选中模块,然后按住鼠标右键进行拖曳即可复制同样的一个功能模块。的一个功能模块。删除:选中模块,按删除:选中模块,按Delete键即可。若要删除多个模块,可以键即可。若要删除多个模块,可以同时按住同时按住Shift键,再用鼠标选中多个模块,按键,再用鼠标选中多个模块,按Delete键即可。键即可。也可以用鼠标选

32、取某区域,再按也可以用鼠标选取某区域,再按Delete键就可以把该区域中的键就可以把该区域中的所有模块和线等全部删除。所有模块和线等全部删除。功能模块的基本操作,包括模块的移动、复制、删除、转向、改变大小、功能模块的基本操作,包括模块的移动、复制、删除、转向、改变大小、模块命名、颜色设定、参数设定、属性设定、模块输入输出信号等。模块命名、颜色设定、参数设定、属性设定、模块输入输出信号等。第第2章章MATLAB基础及其使用初步基础及其使用初步转向:为了能够顺序连接功能模块的输入和输出端,功能模转向:为了能够顺序连接功能模块的输入和输出端,功能模块有时需要转向。在菜单块有时需要转向。在菜单Form

33、at中选择中选择Flip Block旋转旋转180度,度,选择选择Rotate Block顺时针旋转顺时针旋转90度。或者直接按度。或者直接按Ctrl+F键执行键执行Flip Block,按,按Ctrl+R键执行键执行Rotate Block。改变大小:选中模块,对模块出现的改变大小:选中模块,对模块出现的4个黑色标记进行拖曳即个黑色标记进行拖曳即可。可。模块命名:先用鼠标在需要更改的名称上单击一下,然后直模块命名:先用鼠标在需要更改的名称上单击一下,然后直接更改即可。名称在功能模块上的位置也可以变换接更改即可。名称在功能模块上的位置也可以变换180度,可度,可以用以用Format菜单中的菜单

34、中的Flip Name来实现,也可以直接通过鼠标来实现,也可以直接通过鼠标进行拖曳。进行拖曳。Hide Name可以隐藏模块名称。可以隐藏模块名称。颜色设定:颜色设定: Format菜单中的菜单中的Foreground Color可以改变模块可以改变模块的前景颜色,的前景颜色,Background Color可以改变模块的背景颜色;而可以改变模块的背景颜色;而模型窗口的颜色可以通过模型窗口的颜色可以通过Screen Color来改变。来改变。第第2章章MATLAB基础及其使用初步基础及其使用初步参数设定:用鼠标双击模块,就可以进入模块的参数设定窗口,参数设定:用鼠标双击模块,就可以进入模块的参

35、数设定窗口,从而对模块进行参数设定。参数设定窗口包含了该模块的基本从而对模块进行参数设定。参数设定窗口包含了该模块的基本功能帮助,为获得更详尽的帮助,可以点击其上的功能帮助,为获得更详尽的帮助,可以点击其上的help按钮。按钮。通过对模块的参数设定,就可以获得需要的功能模块。通过对模块的参数设定,就可以获得需要的功能模块。属性设定:选中模块,打开属性设定:选中模块,打开Edit菜单的菜单的Block Properties可以对可以对模块进行属性设定。包括模块进行属性设定。包括Description属性、属性、 Priority优先级属优先级属性、性、Tag属性、属性、Open function

36、属性、属性、Attributes format string属属性。其中性。其中Open function属性是一个很有用的属性,通过它指定属性是一个很有用的属性,通过它指定一个函数名,则当该模块被双击之后,一个函数名,则当该模块被双击之后,Simulink就会调用该函就会调用该函数执行,这种函数在数执行,这种函数在MATLAB中称为回调函数。中称为回调函数。模块的输入输出信号:模块处理的信号包括模块的输入输出信号:模块处理的信号包括标量信号标量信号和和向量信向量信号号;标量信号是一种单一信号,而向量信号为一种复合信号,;标量信号是一种单一信号,而向量信号为一种复合信号,是多个信号的集合,它对

37、应着系统中几条连线的合成。缺省情是多个信号的集合,它对应着系统中几条连线的合成。缺省情况下,大多数模块的输出都为标量信号,对于输入信号,模块况下,大多数模块的输出都为标量信号,对于输入信号,模块都具有一种都具有一种“智能智能”的识别功能,能自动进行匹配。某些模块的识别功能,能自动进行匹配。某些模块通过对参数的设定,可以使模块输出向量信号。通过对参数的设定,可以使模块输出向量信号。例exp2_2.mdl exp2_3.mdl第第2章章MATLAB基础及其使用初步基础及其使用初步6 6SimulinkSimulink线的处理线的处理exp2_4.mdlSimulink模型的构建是通过用线将各种功能

38、模块进行连接而构成的。用鼠标可以在功能模块的输入与输出端之间直接连线。所画的线可以改变粗细、设定标签,也可以把线折弯、分支。(1)改变粗细:线所以有粗细是因为线引出的信号可以是标量信号或向量信号,当选中Format菜单下的WideVectorLines时,线的粗细会根据线所引出的信号是标量还是向量而改变,如果信号为标量则为细线,若为向量则为粗线。选中VectorLineWidths则可以显示出向量引出线的宽度,即向量信号由多少个单一信号合成。 第第2章章MATLAB基础及其使用初步基础及其使用初步(2)设定标签:只要在线上双击鼠标,即可输入该线的说明标签。也可以通过选中线,然后打开Edit菜单

39、下的SignalProperties进行设定,其中SignalName属性的作用是标明信号的名称,设置这个名称反映在模型上的直接效果就是与该信号有关的端口相连的所有直线附近都会出现写有信号名称的标签。(3)线的折弯:按住Shift键,再用鼠标在要折弯的线处单击一下,就会出现圆圈,表示折点,利用折点就可以改变线的形状。 第第2章章MATLAB基础及其使用初步基础及其使用初步(4)线的分支:按住鼠标右键,在需要分支的地方拉出即可。或者按住Ctrl键,并在要建立分支的地方用鼠标拉出即可。 第第2章章MATLAB基础及其使用初步基础及其使用初步7 7SimulinkSimulink自定义功能模块自定义

40、功能模块自定义功能模块有两种方法,一种方法是采用Signal&Systems模块库中的Subsystem功能模块,利用其编辑区设计组合新的功能模块;另一种方法是将现有的多个功能模块组合起来,形成新的功能模块。对于很大的Simulink模型,通过自定义功能模块可以简化图形,减少功能模块的个数,有利于模型的分层构建。1)方法1 exp2_5.mdl (1)将Signal&Systems模块库中的Subsystem功能模块复制到打开的模型窗口中。(2)双击Subsystem功能模块,进入自定义功能模块窗口,从而可以利用已有的基本功能模块设计出新的功能模块。 第第2章章MATLAB基础及其使用初步基础

41、及其使用初步2)方法2 exp2_6.mdl (1)在模型窗口中建立所定义功能模块的子模块。(2)用鼠标将这些需要组合的功能模块框住,然后选择Edit菜单下的CreateSubsystem即可。 第第2章章MATLAB基础及其使用初步基础及其使用初步8 8自定义功能模块的封装自定义功能模块的封装上面提到的两种方法都只是创建一个功能模块而已,如果要命名该自定义功能模块、对功能模块进行说明、选定模块外观、设定输入数据窗口,则需要对其进行封装处理。首先选中Subsystem功能模块,再打开Edit菜单中的MaskSubsystem进入Mask的编辑窗口,可以看出有3个标签页: 第第2章章MATLAB

42、基础及其使用初步基础及其使用初步1)Icon标签页此页最重要的部分是DrawingCommands,在该区域内可以用disp指令设定功能模块的文字名称,用plot指令画线,用dpoly指令画转换函数。注意,尽管这些命令在名字上和以前讲的MATLAB函数相同,但它们在功能上却不完全相同,因此不能随便套用以前所讲的格式。(1)disp(text)可以在功能模块上显示设定的文字内容。disp(text1ntext2)分行显示文字text1和text2。 第第2章章MATLAB基础及其使用初步基础及其使用初步(2)plot(x1x2xn,y1y2yn)指令会在功能模块上画出由x1y1经x2y2经x3y

43、3直到xn,yn为止的直线。功能模块的左下角会根据目前的坐标刻度被正规化为0,0,右上角则会依据目前的坐标刻度被正规化为1,1。(3)dpoly(num,den):按s次数的降幂排序,在功能模块上显示连续的传递函数。(4)dpoly(num,den,z):按z次数的降幂排序,在功能模块上显示离散的传递函数。 第第2章章MATLAB基础及其使用初步基础及其使用初步(5)Iconframe:Visible显示外框线;Invisible隐藏外框线。(6)IconTransparency:Opaque隐藏输入输出的标签;Transparent显示输入输出的标签。(7)IconRotation:旋转模块

44、。(8)DrawingCoordinate:画图时的坐标系。 第第2章章MATLAB基础及其使用初步基础及其使用初步2)Initialization标签页此页主要用来设计输入提示(prompt)以及对应的变量名称(variable)。在prompt栏上输入变量的含义,其内容会显示在输入提示中。而variable是仿真要用到的变量,该变量的值一直存于maskworkspace中,因此可以与其他程序相互传递。如果配合在initializationcommands内编辑程序,可以发挥功能模块的功能来执行特定的操作。 第第2章章MATLAB基础及其使用初步基础及其使用初步(1)在prompt编辑框中输

45、入文字,这些文字就会出现在Prompt列表中;在variable列表中输入变量名称,则prompt中的文字对应该变量的说明。如果要增加新的项目,可以点击边上的Add键。Up和Down按钮用于执行项目间的位置调整。(2)Controltype列表给用户提供选择设计的编辑区,选择Edit会出现供输入的空白区域,所输入的值代表对应的variable;Popup则为用户提供可选择的列表框,所选的值代表variable,此时在下面会出现Popupstrings输入框,用来设计选择的内容,各值之间用逻辑或符号“|”隔开;如选择Checkbox则用于on与off的选择设定。 第第2章章MATLAB基础及其使

46、用初步基础及其使用初步3)Documentation标签页此页主要用来针对完成的功能模块来编写相应的说明文字和help。(1)在Blockdescription中输入的文字,会出现在参数窗口的说明部分。(2)在Blockhelp中输入的文字则会显示在单击参数窗口中的help按钮后浏览器所加载的HTML文件中。(3)Masktype:在此处输入的文字作为封装模块的标注性说明,在模型窗口下,将鼠标指向模块,则会显示该文字。当然必须先在View菜单中选择BlockDataTipsShowBlockDataTips。 第第2章章MATLAB基础及其使用初步基础及其使用初步9 9SimulinkSimu

47、link的运行的运行构建好一个系统的模型之后,接下来的事情就是运行模型,得出仿真结果。运行一个仿真的完整过程分成三个步骤:设置仿真参数,启动仿真和仿真结果分析。设置仿真参数和选择解法器,选择Simulation菜单下的Parameters命令,就会弹出一个仿真参数对话框,它主要用三个页面来管理仿真的参数。1)Solver页此页可以进行的设置有:选择仿真开始和结束的时间;选择解法器,并设定它的参数;选择输出项。 第第2章章MATLAB基础及其使用初步基础及其使用初步(1)仿真时间:注意这里的时间概念与真实的时间并不一样,只是计算机仿真中对时间的一种表示,比如10秒的仿真时间,如果采样步长定为0.

48、1,则需要执行100步,若把步长减小,则采样点数增加,那么实际的执行时间就会增加。一般仿真开始时间设为0,而结束时间视不同的因素而选择。总的来说,执行一次仿真要耗费的时间依赖于很多因素,包括模型的复杂程度、解法器及其步长的选择、计算机时钟的速度等等。 第第2章章MATLAB基础及其使用初步基础及其使用初步(2)仿真步长模式:用户在Type后面的第一个下拉选项框中指定仿真的步长选取方式,可供选择的有Variablestep(变步长)和Fixedstep(固定步长)方式。变步长模式可以在仿真的过程中改变步长,提供误差控制和过零检测。固定步长模式在仿真过程中提供固定的步长,不提供误差控制和过零检测。

49、用户还可以在第二个下拉选项框中选择对应模式下仿真所采用的算法。变步长模式解法器有:ode45,ode23,ode113,ode15s,ode23s,ode23t,ode23tb和discrete。固定步长模式解法器有:ode5,ode4,ode3,ode2,ode1和discrete。 第第2章章MATLAB基础及其使用初步基础及其使用初步(3)步长参数:对于变步长模式,用户可以设置最大的和推荐的初始步长参数,缺省情况下,步长自动确定,它由值auto表示。(4)仿真精度的定义(对于变步长模式):Relativetolerance(相对误差):它是指误差相对于状态的值,是一个百分比,缺省值为1e

50、-3,表示状态的计算值要精确到0.1%。Absolutetolerance(绝对误差):表示误差值的门限,或者是说在状态值为零的情况下,可以接受的误差。如果它被设成了auto,那么Simulink为每一个状态的设置的初始绝对误差为1e-6。 第第2章章MATLAB基础及其使用初步基础及其使用初步(5)Mode(固定步长模式选择)。(6)输出选项:Refineoutput:这个选项可以理解成精细输出,其意义是在仿真输出太稀松时,Simulink会产生额外的精细输出,这一点就像插值处理一样。用户可以在refinefactor设置仿真时间步间插入输出点数。产生更光滑的输出曲线,改变精细因子比减小仿真

51、步长更有效。精细输出只能在变步长模式中才能使用,并且在ode45效果最好。 第第2章章MATLAB基础及其使用初步基础及其使用初步Produceadditionaloutput:它允许用户直接指定产生输出的时间点。一旦选择了该项,则在它的右边出现一个outputtimes编辑框,在这里用户指定额外的仿真输出点,它既可以是一个时间向量,也可以是表达式。与精细因子相比,这个选项会改变仿真的步长。Producespecifiedoutputonly:它的意思是让Simulink只在指定的时间点上产生输出。为此解法器要调整仿真步长以使之和指定的时间点重合。这个选项在比较不同的仿真时可以确保它们在相同的

52、时间输出。 第第2章章MATLAB基础及其使用初步基础及其使用初步2)WorkspaceI/O页此页主要用来设置Simulink与MATLAB工作空间交换数值的有关选项。(1)Loadfromworkspace:选中前面的复选框即可从MATLAB工作空间获取时间和输入变量,一般时间变量定义为t,输入变量定义为u。Initialstate用来定义从MATLAB工作空间获得的状态初始值的变量名。 第第2章章MATLAB基础及其使用初步基础及其使用初步(2)Savetoworkspace:用来设置存往MATLAB工作空间的变量类型和变量名,选中变量类型前的复选框使相应的变量有效。一般存往工作空间的变

53、量包括输出时间向量(Time)、状态向量(States)和输出变量(Output)。Finalstate用来定义将系统稳态值存往工作空间所使用的变量名。 第第2章章MATLAB基础及其使用初步基础及其使用初步(3)Saveoption:用来设置存往工作空间的有关选项。Limitrowstolast用来设定Simulink仿真结果最终可存往MATLAB工作空间的变量的规模(对于向量而言就是其维数,对于矩阵而言就是其秩);Decimation设定了一个亚采样因子,它的缺省值为1,也就是对每一个仿真时间点产生值都保存,而若为2,则是每隔一个仿真时刻才保存一个值。Format用来说明返回数据的格式,包

54、括矩阵(Matrix)、结构(Struct)及带时间的结构(Structwithtime)。 第第2章章MATLAB基础及其使用初步基础及其使用初步3)Diagnostics页此页分成两个部分:仿真选项和配置选项。配置选项下的列表框主要列举了一些常见的事件类型,以及当Simulink检查到这些事件时给予的处理。仿真选项options主要包括是否进行一致性检验、是否禁用过零检测、是否禁止复用缓存、是否进行不同版本的Simulink的检验等几项。 第第2章章MATLAB基础及其使用初步基础及其使用初步除了上述3个主要的页外,仿真参数设置窗口还包括realtimeworkshop页,主要用于与C语言

55、编辑器的交换,通过它可以直接从Simulink模型生成代码并且自动建立可以在不同环境下运行的程序,这些环境包括实时系统和单机仿真。 第第2章章MATLAB基础及其使用初步基础及其使用初步SimulinkSimulink仿真举例仿真举例1、利用SIMULINK进行时域系统分析(shiyufx.mdl)【例2.10】演示“示波”模块的向量显示能力(如图214所示)。 图214示波器显示向量波形第第2章章MATLAB基础及其使用初步基础及其使用初步【例2.11】演示“求和”模块的向量处理能力:输入扩展(如图215所示)。 图215输入的标量扩展 第第2章章MATLAB基础及其使用初步基础及其使用初步

56、【例2.12】演示“增益”模块的向量处理能力:参数扩展(如图216所示)。 图216模块参数的标量扩展第第2章章MATLAB基础及其使用初步基础及其使用初步【例2.13】(1)编写一个产生信号矩阵的M函数文件。functionTU=source925-1(T0,N0,K)t=linspace(0,K*T0,K*N0+1);N=length(t);u1=t(1:(N0+1).2;u2=(t(N0+2):(2*N0+1)-2*T0).2;u3(1:(N-(2*N0+2)+1)=0;u=u1,u2,u3;TU=t,u; 第第2章章MATLAB基础及其使用初步基础及其使用初步(2)构造简单的接收信号用的实验模型(如图217所示)。 图217接收信号用的实验模型 第第2章章MATLAB基础及其使用初步基础及其使用初步【例2.14】假设从实际自然界(力学、电学、生态等)或社会中,抽象出有初始状态为0的二阶微分方程x+0.2x+0.4x=0.2u(t),u(t)是单位阶跃函数。

温馨提示

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

评论

0/150

提交评论