计算机仿真技术实验指导书2015版(MATLAB)_第1页
计算机仿真技术实验指导书2015版(MATLAB)_第2页
计算机仿真技术实验指导书2015版(MATLAB)_第3页
计算机仿真技术实验指导书2015版(MATLAB)_第4页
计算机仿真技术实验指导书2015版(MATLAB)_第5页
已阅读5页,还剩45页未读 继续免费阅读

下载本文档

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

文档简介

1、计算机仿真技术实验指导书滨州学院光电工程系目 录实验一 MATLAB环境的熟悉与基本运算1实验二 MATLAB数值及符号运算7实验三 MATLAB语言的程序设计11实验四 MATLAB的图形绘制15实验五 线性系统时域响应仿真分析20实验六 控制系统的根轨迹24实验七 控制系统的频率特性分析29实验八 Simulink建模与仿真34实验九 基于传递函数的控制器设计42实验一 Matlab使用方法(数组和矩阵的基本运算)实验二 Matlab程序设计基本方法实验三 数值计算与绘图实验四 Simulink建模与仿真实验五 控制系统的分析(1)时域分析、频域分析和根轨迹分析实验六 控制系统的分析(2)

2、稳定性分析实验七 经典控制系统设计根轨迹法实验八 经典控制系统设计Bode图法实验一 MATLAB环境的熟悉与基本运算 一、实验目的: 1熟悉MATLAB开发环境2掌握矩阵、变量、表达式的各种基本运算二、实验基本知识: 1.熟悉MATLAB环境: MATLAB桌面和命令窗口、命令历史窗口、帮助信息浏览器、工作空间浏览器文件和搜索路径浏览器。2.掌握MATLAB常用命令clc 清除命令窗口中内容clear 清除工作空间中变量help 对所选函数的功能、调用格式及相关函数给出说明lookfor 查找具有某种功能的函数但却不知道该函数的准确名称who查询工作空间中的变量信息3.MATLAB变量与运算

3、符变量命名规则如下: (1) 变量名可以由英语字母、数字和下划线组成(2) 变量名应以英文字母开头(3) 长度不大于31个(4) 区分大小写MATLAB中设置了一些特殊的变量与常量,列于下表。表1 MATLAB的特殊变量与常量变量名 功能说明 变量名 功能说明 ANS 默认变量名,以应答最近一次操作运算结果realmin 最小的正实数i或j 虚数单位INF(inf) 无穷大pi 圆周率NAN(nan) 不定值(0/0) eps 浮点数的相对误差nargin 函数实际输入参数个数realmax 最大的正实数nargout 函数实际输出参数个数 MATLAB运算符,通过下面几个表来说明MATLAB

4、的各种常用运算符表2 MATLAB算术运算符操作符 功能说明 操作符 功能说明 + 加 矩阵左除- 减. 数组左除* 矩阵乘/ 矩阵右除.* 数组乘./ 数组右除 矩阵乘方 矩阵转置. 数组乘方. 数组转置表3 MATLAB关系运算符操作符 功能说明 = 等于= 不等于 大于= 大于等于= 小于等于表4 MATLAB逻辑运算符逻辑运算符 逻辑运算 说明 & And 逻辑与| Or 逻辑或 Not 逻辑非Xor 逻辑异或表5 MATLAB特殊运算符号 功能说明示例 符号 功能说明示例 : 1:1:4;1:2:11 . ; 分隔行 . , 分隔列 () % 注释 构成向量、矩阵 ! 调用操作系统命

5、令 构成单元数组= 用于赋值 4.MATLAB的一维、二维数组的寻访表6 子数组访问与赋值常用的相关指令格式指令格式 指令功能 A(r,c) 数组A中r指定行、c指定列之元素组成的子数组A(r,:) 数组A中r指定行对应的所有列之元素组成的子数组A(:,c) 数组A中c指定列对应的所有行之元素组成的子数组A(:) 数组A中各列元素首尾相连组成的“一维长列”子数组A(i) 一维长列子数组中的第i个元素A(r,c)=Sa 数组A中r指定行、c指定列之元素组成的子数组的赋值A(:)=D(:) 数组全元素赋值,保持A的行宽、列长不变,A、D两组元素总合应相同5.MATLAB的基本运算表7 两种运算指令

6、形式和实质内涵的异同表数组运算 矩阵运算 指令 含义 指令 含义 A 非共轭转置A 共轭转置A=s 把标量s赋给A的每个元素s+B 标量s分别与B元素之和s-B,B-s 标量s分别与B元素之差s.*A 标量s分别与A元素之积s*A 标量s分别与A每个元素之积s./B,B.s 标量s分别被B的元素除S*inv(B)B阵的逆乘s A.n A的每个元素自乘n次An A阵为方阵,自乘n次A.p 对A各元素分别求非整数幂Ap 方阵A的非整数乘方A+B 对应元素相加A+B 矩阵相加A-B 对应元素相减A-B 矩阵相减A.*B 对应元素相乘A*B 内维相同矩阵相乘A./B A的元素别B的对应元素除A/B A

7、右除B B.A 与上相同BA A左除B exp(A) 以自然数e为底,分别以A的元素为指数,求幂expm(A)A的矩阵指数函数log(A) 对A的各元素求对数logm(A) A的矩阵对数函数sqrt(A) 对A的各元素求平方根sqrtm(A)A的矩阵平方根函数 6.MATLAB的常用函数表8 标准数组生成函数指令 含义 指令 含义 diag 产生对角形数组(对高维不适用)rand 产生均匀分布随机数组eye 产生单位数组(对高维不适用) randn产生正态分布随机数组magic 产生魔方数组(对高维不适用) zeros产生全0数组ones 产生全1数组size()返回指定矩阵的行数和列数表9

8、数组操作函数指令 含义 diag 提取对角线元素,或生成对角阵flipud以数组“水平中线”为对称轴,交换上下对称位置上的数组元素fliplr 以数组“垂直中线”为对称轴,交换左右对称位置上的数组元素reshape在总元素数不变的前提下,改变数组的“行数、列数” rot90 矩阵逆时针旋转90度det 方阵的行列式值rank 矩阵的秩三、实验内容 1、新建一个文件夹(自己的名字命名) 2、启动MATLAB6.5,将该文件夹添加到MATLAB路径管理器中。方法如下: 3、保存,关闭对话框 4、学习使用help命令,例如在命令窗口输入help eye,然后根据帮助说明,学习使用指令eye(其它不会

9、用的指令,依照此方法类推) 5、学习使用clc、clear,观察command window、command history和workspace等窗口的变化结果。6、初步程序的编写练习,新建M-file,保存(自己设定文件名,例如exerc1、exerc2、 exerc3),学习使用MATLAB的基本运算符、数组寻访指令、标准数组生成函数和数组操作函数。注意:每一次M-file的修改后,都要存盘。练习A: (1) help rand,然后随机生成一个26的数组,观察command window、command history和workspace等窗口的变化结果。(2)学习使用clc、clear

10、,了解其功能和作用。(3)输入C=1:2:20,则C(i)表示什么?其中i=1,2,3,10。(4)输入A=7 1 5;2 5 6;3 1 5,B=1 1 1; 2 2 2; 3 3 3,在命令窗口中执行下列表达式,掌握其含义: A(2, 3) A(:,2) A(3,:) A(:,1:2:3) A(:,3).*B(:,2) A(:,3)*B(2,:) A*B A.*B A2 A.2 B/A B./A(5)二维数组的创建和寻访,创建一个二维数组(48)A, 查询数组A第2行、第3列的元素,查询数组A第2行的所有元素,查询数组A第6列的所有元素。(6) 两种运算指令形式和实质内涵的比较。设有3个二

11、维数组A24,B24,C22,写出所有由2个数组参与的合法的数组运算和矩阵指令。(7) 学习使用表8列的常用函数(通过help方法) (8) 学习使用表9数组操作函数。 练习B(10)用reshape指令生成下列矩阵,并取出方框内的数组元素。实验二 MATLAB数值及符号运算一、 实验目的:1、了解伴随矩阵、稀疏矩阵、魔方矩阵、对角矩阵、范德蒙等矩阵的创建,掌握矩阵的基本运算2、掌握矩阵的数组运算3、掌握多项式的基本运算4、会求解代数方程5、掌握创建符号表达式和矩阵的方法6、掌握符号表达式的微分和积分运算二、 实验基本知识:1、创建矩阵的方法:直接输入法;用matlab函数创建矩阵2、矩阵运算

12、:矩阵加、减(,)运算矩阵乘(*)运算矩阵乘方inv 矩阵求逆det 行列式的值eig 矩阵的特征值diag 对角矩阵 矩阵转置sqrt 矩阵开方3、矩阵的数组运算:数组加减(.+,.-):对应元素相加减数组乘(.*):a,b两数组必须有相同的行和列,两数组相应元素相乘数组除(./,.):a./b=b.a 都是b的元素被a的对应元素除(a除以b)a.b=b./a 都是a的元素被b的对应元素除( 除以a)数组乘方(.):元素对元素的幂数组点积(点乘):维数相同的两个向量的点乘,其结果是一个标量数组叉积:就是一个过两个相交向量的交点且垂直于两个向量所在平面的向量数组混合积:先叉乘后点乘4、多项式运

13、算 poly 产生特征多项式系数向量roots 求多项式的根p=poly2str(c,x)(以习惯方式显示多项式)conv,convs多项式乘运算deconv多项式除运算多项式微分polyder(p): 求p的微分polyder(a,b): 求多项式a,b乘积的微分p,q=polyder(a,b): 求多项式a,b商的微分5、代数方程组求解1).恰定方程组的解方程ax=b(a为非奇异)两种求解方法: x=inv(a)*b 采用求逆运算解方程 x=ab 采用左除运算解方程 2)超定方程组的解方程 ax=b ,m-pi ) w0=w0+0.01;endw=w0;% 计算临界开环增益k=sqrt(1

14、+w2);% 绘制系统开环幅相特性图G=tf(k,1,1,inputdelay,0.8);nyquist(G)绘制所给系统的奈奎斯特图并判别稳定的K值范围。6实验报告 1)画出各系统的奈奎斯特图和波特图;2)利用系统波特图和奈奎斯特图对控制系统性能进行分析;实验八 Simulink建模与仿真一 实验目的1 学习SIMULINK 软件工具的使用方法;2 用SIMULINK 仿真线性系统;二 实验内容1SIMULINK简介 SIMULINK是MATLAB软件的扩展,它是实现动态系统建模和仿真的一个软件包,它与MATLAB语言的主要区别在于,其与用户交互接口是基于Windows的模型化图形输入,其结

15、果是使得用户可以把更多的精力投入到系统模型的构建,而非语言的编程上。所谓模型化图形输入是指SIMULINK提供了一些按功能分类的基本的系统模块,用户只需要知道这些模块的输入输出及模块的功能,而不必考察模块内部是如何实现的,通过对这些基本模块的调用,再将它们连接起来就可以构成所需要的系统模型(以.mdl文件进行存取),进而进行仿真与分析。2 SIMULINK的启动进入SIMULINK界面,只要你在MATLAB命令窗口提示符下键入SIMULINK,按回车键即可启动SIMULINK软件。在启动S IMULINK软件之后,SIMULINK的主要方块图库将显示在一个新的Windows中。如图8-1所示:

16、 在MATLAB命令窗口中输入simulink :结果是在桌面上出现一个称为Simulink Library Browser的窗口,在这个窗口中列出了按功能分类的各种模块的名称。图8-1 SIMULINK的主要方块图库3SIMULINK的模块库介绍SIMILINK模块库按功能进行分为以下8类子库:Continuous(连续模块)Discrete(离散模块)Function&Tables(函数和平台模块)Math(数学模块)Nonlinear(非线性模块)Signals&Systems(信号和系统模块)Sinks(接收器模块)Sources(输入源模块)4SIMULINK简单模型的建立(1)建立

17、模型窗口(2)将功能模块由模块库窗口复制到模型窗口(3)对模块进行连接,从而构成需要的系统模型5SIMULINK功能模块的处理(1)模块库中的模块可以直接用鼠标进行拖曳(选中模块,按住鼠标左键不放)而放到模型窗口中进行处理。(2)在模型窗口中,选中模块,则其4个角会出现黑色标记。此时可以对模块进行以下的基本操作:n 移动:选中模块,按住鼠标左键将其拖曳到所需的位置即可。若要脱离线而移动,可按住shift键,再进行拖曳;n 复制:选中模块,然后按住鼠标右键进行拖曳即可复制同样的一个功能模块;n 删除:选中模块,按Delete键即可。若要删除多个模块,可以同时按住Shift键,再用鼠标选中多个模块

18、,按Delete键即可。也可以用鼠标选取某区域,再按Delete键就可以把该区域中的所有模块和线等全部删除;n 转向:为了能够顺序连接功能模块的输入和输出端,功能模块有时需要转向。在菜单Format中选择Flip Block旋转180度,选择Rotate Block顺时针旋转90度。或者直接按Ctrl+F键执行Flip Block,按Ctrl+R键执行Rotate Block。n 改变大小:选中模块,对模块出现的4个黑色标记进行拖曳即可。n 模块命名:先用鼠标在需要更改的名称上单击一下,然后直接更改即可。名称在功能模块上的位置也可以变换180度,可以用Format菜单中的Flip Name来实

19、现,也可以直接通过鼠标进行拖曳。Hide Name可以隐藏模块名称。n 颜色设定: Format菜单中的Foreground Color可以改变模块的前景颜色,Background Color可以改变模块的背景颜色;而模型窗口的颜色可以通过Screen Color来改变。n 参数设定:用鼠标双击模块,就可以进入模块的参数设定窗口,从而对模块进行参数设定。参数设定窗口包含了该模块的基本功能帮助,为获得更详尽的帮助,可以点击其上的help按钮。通过对模块的参数设定,就可以获得需要的功能模块。n 属性设定:选中模块,打开Edit菜单的Block Properties可以对模块进行属性设定。包括Des

20、cription属性、 Priority优先级属性、Tag属性、Open function属性、Attributes format string属性。其中Open function属性是一个很有用的属性,通过它指定一个函数名,则当该模块被双击之后,Simulink就会调用该函数执行,这种函数在MATLAB中称为回调函数。n 模块的输入输出信号:模块处理的信号包括标量信号和向量信号;标量信号是一种单一信号,而向量信号为一种复合信号,是多个信号的集合,它对应着系统中几条连线的合成。缺省情况下,大多数模块的输出都为标量信号,对于输入信号,模块都具有一种“智能”的识别功能,能自动进行匹配。某些模块通过

21、对参数的设定,可以使模块输出向量信号。6SIMULINK应用举例+以具有双积分环节的系统G(S)为例,该系统的开环是不稳定的,为了使系统稳定,使用超前校正环节K(S)进行串联校正,见图8-2。- 图8-2 系统结构框图在建模之前,你需要创建一个工作区域。创建一个工作区域的方法为,选择File 项,然后再选择New ,这将开始一个新的窗口,其窗口名为“Untiledl”,可以在该窗口内构造系统模型,并称这个窗口为工作窗口。为了得到这个系统的阶跃响应,可以由两个传递函数、一个求和点、一个输入源及两个输出观测点等6个部分组成这个系统。 输入源的元件位于Sources 库;传递函数与综合点方块都位于线

22、性部分(Linear)库中。用同样方法,可将该库中的Transfer Fcn与Sum图形拖曳到工作空间,然后关闭Linear库; 如何得到其仿真的输出结果。在Sinks库中有三个功能方块可用于显示或存储输出结果。Scope 功能块可以像一台示波器,实时地显示任何信号的仿真结果。To Workspace功能块可以把输出值以矢量的形式存储在MATLAB工作空间中,这样可以在MATLAB环境下分析与绘制其输出结果。To File功能块可以把数据存储到一个给定名字的文件中。用同样方法,将Scope拖曳到工作空间,并关闭Sinks库窗口。打开Sum功能块,在List of Signs处输入“+”、“”符

23、号。如果综合点超过了两个输入点,只要简单地输入其正、负号,即可自动地增加其相应地输入点。打开StepFcn功能块,有三个空白框可以填入参数。Steptime是阶跃响应的初始时间。此项可填0,即零时刻开始阶跃响应。另外两项为初始值(Initial value)和终值(Final value)。这两项可分别输入0和1。打开工作空间功能块。输入y作为变量名(Variable name),对应最大行数项(Maximum number of rows),输入100。每一行对应一个时间间隔。在系统仿真过程中,可以输入0到9.9,间隔为0.1,生成100个点。最后,要将这些方块连接起来。除Sources与Sinks功能块外,所有其他方块中至少有一个输出点,即在方块旁有一个符号指向外面,也至少有一个输入点,即在方块旁有一个符号指向里面,Sources功能块没有输入点,只有输出点,而

温馨提示

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

评论

0/150

提交评论