《系统仿真与MATLAB语言》实验指导书.docx
- 文档编号:8227271
- 上传时间:2023-01-30
- 格式:DOCX
- 页数:29
- 大小:645.31KB
《系统仿真与MATLAB语言》实验指导书.docx
《《系统仿真与MATLAB语言》实验指导书.docx》由会员分享,可在线阅读,更多相关《《系统仿真与MATLAB语言》实验指导书.docx(29页珍藏版)》请在冰豆网上搜索。
《系统仿真与MATLAB语言》实验指导书
系统仿真与MATLAB语言
实验指导书
韶关学院2012级自动化专业系统仿真与MATLAB语言实验
说明
1、所有同学必须参加实验课,按照排定顺序上机。
2、每次上机请登记在实验室记录本上,固定机位,一人一机。
3、本课程7次上机实验(其中前6次实验要提交纸质实验报告,第7次实验提交电子版实验报告)。
4、在机房内务必保持安静,不得大声喧哗,不得从事与实验无关事项,如打游戏、看电影等。
5、写好预习报告:
针对实验内容要求用自己的语言简要的写明实验目的、实验原理,并针对实验内容预先做好程序的编写。
所有实验项目必须提前编写程序!
!
!
不写预习报告不得参加实验!
!
!
6、数据记录
记录实验的原始数据,实验期间当场提交。
拒绝抄袭。
实验过程中要能回答我的提问。
7、实验内容
总结所做实验的内容
回答有关思考题
2014、9
实验一MATLAB语言工作环境和基本操作
一、实验目的:
熟悉MATLAB的工作环境,学会使用MATLAB进行一些简单的运算。
二、实验内容:
MATLAB的启动和退出,熟悉MATLAB的桌面(Desktop),包括菜单(Menu)、工具条(Toolbar)、命令窗口(CommandWindow)、历史命令窗口、工作空间(Workspace)等;完成一些基本的矩阵操作;学习使用在线帮助系统。
三、实验步骤:
1、启动MATLAB,熟悉MATLAB的桌面。
2、在命令窗口执行命令完成以下运算,观察workspace的变化,记录运算结果。
(1)(365-522-70)3
(2)area=pi*2.5^2
(3)已知x=3,y=4,在MATLAB中求z:
(4)输入C=1:
2:
20,则C(i)表示什么?
其中i=1,2,3,…,10;
(5)掌握MATLAB常用命令
>>who%列出工作空间中变量
>>whos%列出工作空间中变量,同时包括变量详细信息
>>savetest%将工作空间中变量存储到test.mat文件中
>>loadtest%从test.mat文件中读取变量到工作空间中
>>clear%清除工作空间中变量
>>help函数名%对所选函数的功能、调用格式及相关函数给出说明
>>lookfor%查找具有某种功能的函数但却不知道该函数的准确名称
如:
lookforLyapunov可列出与Lyapunov有关的所有函数。
(6)将下面的矩阵赋值给变量m1,用whos命令察看m1在内存中占用的字节数,写出下面各指令的运行结果并上机验证。
m1=
执行以下命令
>>m1(2,3)
>>m1(7)
>>m1(:
3)
>>m1(2:
3,1:
3)
>>m1(1,4)+m1(2,3)+m1(3,2)+m1(4,1)
(7)执行命令>>helpabs
查看函数abs的用法及用途,计算abs(3+4i)
(8)执行命令
>>x=0:
0.1:
6*pi;
>>y=5*sin(x);
>>plot(x,y)
(9)运行MATLAB的演示程序,>>demo,以便对MATLAB有一个总体了解。
(10)设计M文件计算:
x=0:
0.1:
10
当sum>1000时停止运算,并显示求和结果及计算次数。
(11)求[100,999]之间能被21整除的数的个数(提示利用函数rem)。
(12)建立一个字符串向量,删除其中的大写字母(使用find函数)。
四、思考题
1、以下变量名是否合法?
为什么?
(1)x2
(2)3col
(3)_row
(4)for
2、求以下变量的值,并在MATLAB中验证。
(1)a=1:
2:
5;
(2)b=[a'a'a'];
(3)c=a+b(2,:
)
实验2MATLAB程序设计
一、实验目的和要求:
1、熟练掌握MATLAB的程序流程控制结构
2、熟练掌握M文件的结构
3、熟练掌握函数的调用和参数传递
4、掌握MATLAB程序编辑、运行及调试方法
二、实验内容:
MATLAB的语法规则简洁,编程效率高,作为一个完整的程序语言,MATLAB也有其各种程序流程控制、文件格式和函数调用的规则,通过函数的调用就能够组成庞大的程序,完成复杂的功能。
三、实验步骤:
启动MATLAB后,点击File|New|M-File,启动MATLAB的程序编辑及调试器(Editor/Debugger),编辑以下程序,点击File|Save保存程序,注意文件名最好用英文字符。
点击Debug|Run运行程序,在命令窗口查看运行结果,程序如有错误则改正。
1、使用程序流程控制
Fibonacci数列的各元素为:
1,1,2,3,5,8,...,满足以下关系:
F1=1
F2=1
Fn=Fn-1+Fn-2
用M函数文件实现,数列的元素个数为输入变量。
(1)用while循环实现程序功能
(2)用for循环实现程序功能
(3)实现当某个元素大于50时,退出循环结构。
(提示:
使用break)
2、数论中一个有趣的题目:
任意一个正整数,若为偶数,则用2除之,若为奇数,则与3相乘再加上1。
重复此过程,最终得到的结果为1。
如:
21
3105168421
63105168421
编写程序,并运行程序验证程序是否正确。
3、编写一个函数,计算下面函数的值,给出标量x的值,调用该函数后,返回y的值。
function[y]=myfun1(x)
选择一些数据测试你编写的函数。
实验3MATLAB绘图
一、实验目的和要求:
1、熟练掌握MATLAB二维曲线的绘制
2、熟练掌握图形的修饰
3、知道三维图形的绘制
4、熟练掌握各种特殊图形的绘制
二、实验内容:
MATLAB的图形功能非常强大,可以对二维、三维数据用图形表现,并可以对图形的线型、曲面、视角、色彩、光线等进行处理。
与其他软件一样,MATLAB也可以实现GUI设计,是人机交互界面更加美观、方便。
三、实验步骤:
1、在同一坐标系下绘制下面三个函数在t[0,4]的图象,三条曲线分别采用不同的线形、颜色来绘制(此题采用两种不同的绘制方法实现在同一坐标系绘制三条曲线)。
2、x=[-2π,2π],y1=sinx、y2=cosx、y3=sin2x、y4=cos2x
(1)用MATLAB语言分四个区域分别绘制的曲线,并且对图形标题及横纵坐标轴进行标注(如下图所示)。
图1四分区绘制曲线
(2)另建一个窗口,不分区,用不同颜色、线型绘出四条曲线,并标注图例注解。
图2同一窗口绘制多条曲线
3、三维空间曲线绘制
z=0:
0.1:
4*pi;
x=cos(z);
y=sin(z);
plot3(x,y,z)
4、用mesh或surf函数,绘制下面方程所表示的三维空间曲面,x和y的取值范围设为[-3,3]。
5、特殊图形
MATLAB还提供了一些特殊的曲线以满足特殊的要求。
对函数y=sinx,分别绘制:
(1)绘制条形图(bar)
(2)绘制实心图(fill)
(3)绘制阶梯图(stairs)
(3)绘制火柴杆图(stem)
实验4MATLAB数值及符号计算
一、实验目的和要求:
1、熟练掌握MATLAB变量的使用
2、熟练掌握MATLAB矩阵和数组的运算
3、熟悉MATLAB多项式的运用
4、熟练掌握MATLAB符号表达式的创建
5、熟练掌握符号表达式的代数运算
6、熟练掌握符号微积分
7、掌握符号积分变换
8、熟悉符号方程的求解
二、实验内容和步骤:
1、
下列运算是否合法,为什么?
如合法,结果是多少?
(1)result1=a'
(2)result2=a*b
(3)result3=a+b
(4)result4=b*d
(5)result5=[b;c']*d
(6)result6=a.*b
(7)result7=a./b
(8)result8=a.*c
(9)result9=a.\b
(10)result10=a.^2
(11)result11=a^2
(12)result12=2.^a
2、用MATLAB求下面的的方程组。
(1)
(2)
3、已知
(1)求矩阵A的秩(rank)
(2)求矩阵A的行列式(determinant)
(3)求矩阵A的逆(inverse)
(4)求矩阵A的特征值及特征向量(eigenvalueandeigenvector)
4、关系运算与逻辑运算
已知a=20,b=-2,c=0,d=1,计算下列变量的值,并上机验证。
(1)r1=a>b
(2)r2=a>b&c>d
(3)r3=a==b*(-10)
(4)r4=~b|c
5、创建符号表达式和符号表达式的操作
对符号表达式
,
进行操作。
(1)创建符号变量,分别使用sym和syms命令
(2)求反函数和复合函数。
①用finverse函数求f和g的反函数
②用compose函数求f,g的复合函数
(3)符号微积分和极限。
①对f和g用diff求微分
②对f和g用int求积分
6、符号矩阵的操作
(1)创建符号矩阵
(2)符号矩阵的代数运算。
符号矩阵的大多数运算都与矩阵相同
计算A.'以及det(A)
(3)对符号矩阵A进行求特征值、对角阵等运算
(4)对符号矩阵A求极限和积分
7、符号方程的求解。
(1)代数方程求解。
对方程组进行
求解。
(2)符号微分方程求解
解方程组
实验5动态仿真集成环境——Simulink
一、实验目的
1、学习SIMULINK软件工具的使用方法;
2、用SIMULINK仿真线性系统;
二、实验内容及步骤
1.SIMULINK简介
SIMULINK是MATLAB软件的扩展,它是实现动态系统建模和仿真的一个软件包,它与MATLAB语言的主要区别在于,其与用户交互接口是基于Windows的模型化图形输入,其结果是使得用户可以把更多的精力投入到系统模型的构建,而非语言的编程上。
所谓模型化图形输入是指SIMULINK提供了一些按功能分类的基本的系统模块,用户只需要知道这些模块的输入输出及模块的功能,而不必考察模块内部是如何实现的,通过对这些基本模块的调用,再将它们连接起来就可以构成所需要的系统模型(以.mdl文件进行存取),进而进行仿真与分析。
2.SIMULINK的启动
进入SIMULINK界面,只要你在MATLAB命令窗口提示符下键入‘SIMULINK’,按回车键即可启动SIMULINK软件。
在启动SIMULINK软件之后,SIMULINK的主要方块图库将显示在一个新的Windows中。
如图5-1所示:
►在MATLAB命令窗口中输入simulink:
结果是在桌面上出现一个称为SimulinkLibraryBrowser的窗口,在这个窗口中列出了按功能分类的各种模块的名称。
图5-1SIMULINK的主要方块图库
3.SIMULINK的模块库介绍
►SIMILINK模块库按功能进行分为以下8类子库:
Continuous(连续模块)
Discrete(离散模块)
Function&Tables(函数和平台模块)
Math(数学模块)
Nonlinear(非线性模块)
Signals&Systems(信号和系统模块)
Sinks(接收器模块)
Sources(输入源模块)
4.SIMULINK简单模型的建立
(1)建立模型窗口
(2)将功能模块由模块库窗口复制到模型窗口
(3)对模块进行连接,从而构成需要的系统模型
5.SIMULINK功能模块的处理
(1)模块库中的模块可以直接用鼠标进行拖曳(选中模块,按住鼠标左键不放)而放到模型窗口中进行处理。
(2)在模型窗口中,选中模块,则其4个角会出现黑色标记。
此时可以对模块进行以下的基本操作:
Ⅰ)移动:
选中模块,按住鼠标左键将其拖曳到所需的位置即可。
若要脱离线而移动,可按住shift键,再进行拖曳;
Ⅱ)复制:
选中模块,然后按住鼠标右键进行拖曳即可复制同样的一个功能模块;
Ⅲ)删除:
选中模块,按Delete键即可。
若要删除多个模块,可以同时按住Shift键,再用鼠标选中多个模块,按Delete键即可。
也可以用鼠标选取某区域,再按Delete键就可以把该区域中的所有模块和线等全部删除;
Ⅳ)转向:
为了能够顺序连接功能模块的输入和输出端,功能模块有时需要转向。
在菜单Format中选择FlipBlock旋转180度,选择RotateBlock顺时针旋转90度。
或者直接按Ctrl+F键执行FlipBlock,按Ctrl+R键执行RotateBlock。
Ⅴ)改变大小:
选中模块,对模块出现的4个黑色标记进行拖曳即可。
Ⅵ)模块命名:
先用鼠标在需要更改的名称上单击一下,然后直接更改即可。
名称在功能模块上的位置也可以变换180度,可以用Format菜单中的FlipName来实现,也可以直接通过鼠标进行拖曳。
HideName可以隐藏模块名称。
Ⅶ)颜色设定:
Format菜单中的ForegroundColor可以改变模块的前景颜色,BackgroundColor可以改变模块的背景颜色;而模型窗口的颜色可以通过ScreenColor来改变。
Ⅷ)参数设定:
用鼠标双击模块,就可以进入模块的参数设定窗口,从而对模块进行参数设定。
参数设定窗口包含了该模块的基本功能帮助,为获得更详尽的帮助,可以点击其上的help按钮。
通过对模块的参数设定,就可以获得需要的功能模块。
Ⅸ)属性设定:
选中模块,打开Edit菜单的BlockProperties可以对模块进行属性设定。
包括Description属性、Priority优先级属性、Tag属性、Openfunction属性、Attributesformatstring属性。
其中Openfunction属性是一个很有用的属性,通过它指定一个函数名,则当该模块被双击之后,Simulink就会调用该函数执行,这种函数在MATLAB中称为回调函数。
Ⅹ)模块的输入输出信号:
模块处理的信号包括标量信号和向量信号;标量信号是一种单一信号,而向量信号为一种复合信号,是多个信号的集合,它对应着系统中几条连线的合成。
缺省情况下,大多数模块的输出都为标量信号,对于输入信号,模块都具有一种“智能”的识别功能,能自动进行匹配。
某些模块通过对参数的设定,可以使模块输出向量信号。
6.SIMULINK应用举例
以具有双积分环节的系统G(S)为例,该系统的开环是不稳定的,为了使系统稳定,使用超前校正环节K(S)进行串联校正,见图6-2。
—
+
图5-2系统结构框图
在建模之前,你需要创建一个工作区域。
创建一个工作区域的方法为,选择File项,然后再选择New,这将开始一个新的窗口,其窗口名为“Untiledl”,可以在该窗口内构造系统模型,并称这个窗口为工作窗口。
为了得到这个系统的阶跃响应,可以由两个传递函数、一个求和点、一个输入源及两个输出观测点等6个部分组成这个系统。
输入源的元件位于Sources库;传递函数与综合点方块都位于线性部分(Linear)库中。
用同样方法,可将该库中的TransferFcn与Sum图形拖曳到工作空间,然后关闭Linear库;
如何得到其仿真的输出结果。
在Sinks库中有三个功能方块可用于显示或存储输出结果。
Scope功能块可以像一台示波器,实时地显示任何信号的仿真结果。
ToWorkspace功能块可以把输出值以矢量的形式存储在MATLAB工作空间中,这样可以在MATLAB环境下分析与绘制其输出结果。
ToFile功能块可以把数据存储到一个给定名字的文件中。
用同样方法,将Scope拖曳到工作空间,并关闭Sinks库窗口。
打开Sum功能块,在ListofSigns处输入“+”、“—”符号。
如果综合点超过了两个输入点,只要简单地输入其正、负号,即可自动地增加其相应地输入点。
打开StepFcn功能块,有三个空白框可以填入参数。
Steptime是阶跃响应的初始时间。
此项可填0,即零时刻开始阶跃响应。
另外两项为初始值(Initialvalue)和终值(Finalvalue)。
这两项可分别输入0和1。
打开工作空间功能块。
输入y作为变量名(Variablename)。
最后,要将这些方块连接起来。
除Sources与Sinks功能块外,所有其他方块中至少有一个输出点,即在方块旁有一个符号﹥指向外面,也至少有一个输入点,即在方块旁有一个符号﹥指向里面,Sources功能块没有输入点,只有输出点,而Sinks功能块没有输出点,因此它仅有一个输入点。
系统的仿真方块图见图6-3。
图5-3系统的仿真方块图
7.SIMULINK仿真的运行
构建好一个系统的模型之后,接下来的事情就是运行模型,得出仿真结果。
运行一个仿真的完整过程分成三个步骤:
设置仿真参数、启动仿真和仿真结果分析。
(1)设置仿真参数和选择解法器
设置仿真参数和选择解法器,选择Simulation菜单下的Parameters命令,就会弹出一个仿真参数对话框,它主要用三个页面来管理仿真的参数。
I..Solver页,它允许用户设置仿真的开始和结束时间,选择解法器,说明解法器参数及选择一些输出选项。
★仿真时间:
注意这里的时间概念与真实的时间并不一样,只是计算机仿真中对时间的一种表示,比如10秒的仿真时间,如果采样步长定为0.1,则需要执行100步,若把步长减小,则采样点数增加,那么实际的执行时间就会增加。
一般仿真开始时间设为0,而结束时间视不同的因素而选择。
总的说来,执行一次仿真要耗费的时间依赖于很多因素,包括模型的复杂程度、解法器及其步长的选择、计算机时钟的速度等等。
★仿真步长模式:
用户在Type后面的第一个下拉选项框中指定仿真的步长选取方式,可供选择的有Variable-step(变步长)和Fixed-step(固定步长)方式。
变步长模式可以在仿真的过程中改变步长,提供误差控制和过零检测。
固定步长模式在仿真过程中提供固定的步长,不提供误差控制和过零检测。
用户还可以在第二个下拉选项框中选择对应模式下仿真所采用
II.。
WorkspaceI/O页,作用是管理模型从MATLAB工作空间的输入和对它的输出。
III..Diagnostics页,允许用户选择Simulink在仿真中显示的警告信息的等级。
(2)、启动仿真
I.设置仿真参数和选择解法器之后,就可以启动仿真而运行。
选择Simulink菜单下的start选项来启动仿真,如果模型中有些参数没有定义,则会出现错误信息提示框。
如果一切设置无误,则开始仿真运行,结束时系统会发出一鸣叫声。
II.除了直接在SIMULINK环境下启动仿真外,还可以在MATLAB命令窗口中通过函数进行,格式如下:
[t,x,y]=sim(‘模型文件名’,[totf],simset(‘参数1’,参数值1,‘参数2’,参数值2,…))
其中to为仿真起始时间,tf为仿真终止时间。
[t,x,y]为返回值,t为返回的时间向量值,x为返回的状态值,y为返回的输出向量值。
simset定义了仿真参数,包括以下一些主要参数:
AbsTol:
默认值为1e-6设定绝对误差范围。
Decimation:
默认值为1,决定隔多少个点返回状态和输出值。
Solver:
解法器的选择。
最后一步是仿真(Simulation),可以通过选择仿真菜单(SimulationMenu)执行仿真命令。
有两个可以供选择的项:
Start(开始执行)与Parameters(参数选择)。
在参数选择中,可以有几种积分算法供选择。
对于线性系统,可以选择Linsim算法。
对应项分别输入如下参数:
StartTime0(开始时间)
StopTime9.9(停止时间)
RilativeError0.001(积分一步的相对误差)
MinimumStepSize0.1(最小步长)
MaximumStepSize0.1(最大步长)
在ReturnVariable方框中,还可以输入要返回的变量参数。
如在此方框中填入t,在仿真之后可以在MATLAB工作空间中得到两个变量,即t与y。
参数选择完毕后,关闭该窗口。
此时,你可以选择Start启动仿真程序,在仿真结束时,计算机会用声音给予提示。
阶跃响应图如图5-4所示。
图5-4阶跃响应图
练习5-1在SIMULINK环境下,作T1、T2、T3系统的阶跃响应;
将T1、T2、T3系统的阶跃响应图在同一Scope中显示。
练习5-2典型二阶欠阻尼系统的传递函数为:
极点位置:
式中:
在SIMULINK环境下,作该系统在以下参数时的仿真:
①设ωa=1,σ=0.5,1,5,求阶跃响应,(用同一Scope显示);
②设σ=1,ωa=0.5,1,5,求阶跃响应在(用同一Scope显示);
③设:
求阶跃响应(用同一Scope显示);
④设
求阶跃响应,(用同一Scope显示);
阶跃响应的时间:
0≤t≤10,阶跃信号幅值为+2V。
分析参数变化(增加、减少与不变)对阶跃响应的影响。
练习5-3直流电动机双闭环调速系统如图所示。
(1)以给出的方式建立系统的SIMULINK的模型,并进行仿真,用示波器观察系统的阶跃响应曲线;
(2)调整转速调节器(as+1)/0.085s的a参数,选择a=0.5,观察其系统的阶跃响应曲线并进行比较。
实验6控制系统的计算机辅助分析
一、实验目的和要求:
1、熟练掌握线性系统的模型描述
2、掌握线性系统稳定性分析
3、熟练掌握线性系统的时域分析
4、熟练掌握线性系统的频域分析
5、掌握根轨迹分析
二、实验内容:
1、参考下面的程序,编写程序计算传递函数为
的阶跃响应特参数:
⑴超调量σ%;⑵上升时间Tr;⑶峰值时间Tp;⑷过渡过程时间Ts;
—-———————————————————————————
附录:
计算超调量σ%、上升时间Tr、峰值时间Tp、过渡过程时间Ts的函数文件;
%MATLABPROGRAMEG2-4
function[pos,tr,ts2,tp]=stepchar(t,y);
%findingPosandTp
[mp,ind]=max(y);dimt=length(t);yss=y(dimt);
pos=100*(mp-yss)/yss;tp=t(ind);
i=1;j=1;k=1;q=1;
whiley(i)<0.1;
i=i+1;
end;
t1=t(i);
whiley(j)<0.9;
j=j+1;
end;
t2=t(j);tr=t2-t1;
%Findingsettlingtime(twopercent)Ts
i=dimt+1;n
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 系统仿真与MATLAB语言 系统 仿真 MATLAB 语言 实验 指导书