




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、实验一 matlab 在控制系统模型建立与仿真中的应用一、 matlab 基本操作与使用1. 实验目的1) 熟悉 matlab工作环境平台及其各个窗口,掌握matlab 语言的基本规定,matlab图形绘制功能、m 文件程序设计。2) 学习使用matlab控制系统工具箱中线性控制系统传递函数模型的相关函数。2. 实验仪器pc计算机一台,matlab软件1套3. 实验内容command window1) matlab工作环境平台图1 在英文windows 平台上的matlab6.5 matlab工作平台 命令窗口(command window)命令窗口是对 matlab 进行操作的主要载体,默认
2、的情况下,启动matlab 时就会打开命令窗口,显示形式如图 1 所示。一般来说,matlab的所有函数和命令都可以在命令窗口中执行。掌握 malab 命令行操作是走入 matlab 世界的第一步。命令行操作实现了对程序设计而言简单而又重要的人机交互,通过对命令行操作,避免了编程序的麻烦,体现了 matlab 所特有的灵活性。在运行matlab后,当命令窗口为活动窗口时,将出现一个光标,光标的左侧还出现提示符“>>”,表示matlab正在等待执行命令。注意:每个命令行键入完后,都必须按回车键!当需要处理相当繁琐的计算时,可能在一行之内无法写完表达式,可以换行表示,此时需要使用续行符
3、“”否则 matlab 将只计算一行的值,而不理会该行是否已输入完毕。使用续行符之后 matlab 会自动将前一行保留而不加以计算,并与下一行衔接,等待完整输入后再计算整个输入的结果。在 matlab 命令行操作中,有一些键盘按键可以提供特殊而方便的编辑操作。比如:“”可用于调出前一个命令行,“”可调出后一个命令行,避免了重新输入的麻烦。当然下面即将讲到的历史窗口也具有此功能。 历史窗口(command history)历史命令窗口是 matlab6 新增添的一个用户界面窗口,默认设置下历史命令窗口会保留自安装时起所有命令的历史记录,并标明使用时间,以方便使用者的查询。而且双击某一行命令,即在
4、命令窗口中执行该命令。 当前目录窗口(current directory)在当前目录窗口中可显示或改变当前目录,还可以显示当前目录下的文件,包括文件名、文件类型、最后修改时间以及该文件的说明信息等并提供搜索功能。 工作空间管理窗口(workspace)工作空间管理窗口是 matlab 的重要组成部分。在工作空间管理窗口中将显示所有目前保存在内存中的 matlab 变量的变量名、数据结构、字节数以及类型,而不同的变量类型分别对应不同的变量名图标。2) matlab 的基本规定(1) 数值的表示matlab 的数值采用十进制,可以带小数点或负号。以下表示都合法。0, -100, 0.008, 12
5、.752,1.8e-6 ,8.2e52(2) 变量命名规定 变量名、函数名:字母大小写表示不同的变量名。如a 和a 表示不同的变量名;sin 是matlab 定义的正弦函数,而sin,sin 等都不是。 变量名的第一个字母必须是英文字母,不能是数字,最多可包含31 个字符(英文、数字和下连字符)。如a21 是合法的变量名,而3a21 是不合法的变量名。 变量名中不得包含空格、标点,但可以有下连字符。如变量名a _b21 是合法变量名,而a,21 是不合法的。(3) 基本运算符 表1 matlab 表达式的基本运算符数学表达式matlab 运算符matlab 表达式加a + b+a + b减ab
6、ab乘a×b*a*b除a÷b/或a/b或ab幂abab点乘两矩阵元素相乘.*a.*b(4) matlab 默认的预定义变量在matlab 中有一些预定义变量(predefined variable)。每当matlab 启动,这些变量就被产生。用户在定义变量时,尽量避开表2 所列预定义变量名,以免产生混淆。表2 matlab 的预定义变量预定义变量含义预定义变量含义ans计算结果的缺省变量名nan或nan未定式,如0/0eps机器零阈值nargin函数输入宗量数目flops浮点运算次数nargout函数输出宗量数目inf 或inf无穷大,如1/0realmax最大正实数i 或
7、j虚单元i = j =realmin最小正实数pi圆周率对自动控制理论书p409410中简单数学运算的例子,请在matlab 命令窗口中对这些运算进行验证。(5) matlab 的矩阵运算 (课本p410411) 矩阵的输入和矩阵的运算对课本p410411中矩阵运算的例子,请在matlab 命令窗口中对这些运算进行验证。3) matlab 图形绘制在二维曲线绘制中,最基本的指令是plot( )函数。如果用户将x 和y 两组数据分别在向量x 和y 中存储,且它们的长度相同,调用该函数的格式为:plot(x,y)这时将在一个图形窗口上绘出所需要的二维图形。在matlab 命令窗口提示符“>&
8、gt;”下键入 help plot ,可得到plot( )函数的相关内容,如曲线颜色和线型的改变。任务一:在matlab 命令窗口提示符“>>”下,完成下述任务:任务(1)绘制一个周期内的正弦曲线。先产生自变量t 时间向量,由给出的自变量时间向量求取其正弦函数值向量,然后调用plot( )函数绘制曲线。任务(2) 在一个绘图窗口上同时绘制多条曲线。参考课本p411412,写成命令,完成上述任务(1)和任务(2)。4) m 文件程序设计对于简单问题,使用直接输入命令简单有效,但对于较复杂和多次重复的问题,直接输入命令比较麻烦,使用m文件则简便。matlab不仅用命令行方式工作,还可以
9、像 basic、fortran、c等其他高级计算机语言一样进行控制流的程序设计(matlab 语言的流程控制语句主要有 for、while、if-else-end 及 switch-case 等 4 种语句)。matlab控制流,即编制一种以 . m为扩展名的 matlab 程序(简称 m 文件)。由于商用的 matlab 软件是用 c 语言编写而成。因此,m 文件的语法与 c 语言十分相似。建立和运行m文件程序的过程如下: 打开m文件编辑窗口:在图1中选择filenewmfile菜单项实现,在m文件编辑窗口键入m文件的各行命令代码,例如输入课本p412m文件部分的例子代码 保存文件:在图2中
10、选择filesave菜单项,保存文件。例如可键入exp1,上述命令行就保存为exp1.m。图2 建立和运行m文件程序的过程 调试运行m文件程序:可在图中选择debugrun菜单项,全速运行m文件程序。也可用鼠标点击行号后短横线,给程序设置断点,选择debugstep,单步运行m文件程序,并根据工作空间管理窗口(workspace)结果了解每条指令的功能。此外,在matlab命令窗口键入exp1(该m文件的名字,注意不写后缀)即可运行该m文件。任务二:按上面的过程来建立并保存一个m文件程序,并调试运行m文件程序。5) matlab控制系统工具箱中的线性系统传递函数模型的相关函数(1)tf ( )
11、函数若要在matlab 环境下得到传递函数的形式,可以调用tf ( )函数。该函数的调用格式为g = tf ( num, den );其中num, den 分别为系统传递函数的分子和分母多项式系数向量。返回的g 为传递函数形式。但如果分子或分母多项式给出的不是完全的展开的形式,而是若干个因式的乘积,则事先需要将其变换为完全展开的形式,两个多项式的乘积在matlab下借用卷积求取函数conv( )得出,其调用格式为p=conv(p1,p2)其中p1和p2为两个多项式,调用这个函数就能返回乘积多项式p。如果有3个多项式的乘积,就需要嵌套使用此函数,即p=conv(p1,conv(p2,p3) 或
12、p=conv(conv(p1,p2),p3)请注意在调用时括号的匹配。matlab还支持一种特殊的传递函数的输入格式,在这样的输入方式下,应该先用s=tf(s)定义传递函数算子,然后用数学表达式直接输入系统的传递函数。请自己通过下面两个例子来演示和掌握tf ()和s=tf(s)算子这两种输入方式。例1 设系统传递函数 输入方式一:num = 1, 5, 3, 2; den = 1, 2, 4, 3, 1; %分子多项式和分母多项式 g = tf ( num, den ); %这样就获得系统的数学模型g 了。这些命令可在命令行输入也可编成一个m文件。在matlb提示符“>>”下键入g
13、,或省略最后命令中分号,则可显示该数学模型。输入方式二:s=tf(s); g=( s3 + 5* s2 + 3* s + 2)/( s4 + 2*s3 + 4* s2 + 3* s + 1);任务三:设系统传递函数 采用上面两种输入方式,输入其传递函数,并记录命令。 例2 设系统传递函数 此题分子或分母多项式给出的不是完全展开的形式,而是若干个因式的乘积,采用tf () 这一种输入法之前,应先用conv( )函数获得分子和分母多项式给出的完全展开的形式num和den,即输入命令:num=conv(0,5,1,2.4);den=conv(conv(conv(1,1,1,1),1,3,4),1,0
14、,1);g=tf(num,den) %语句没有分号结尾,故将显示系统传递函数transfer function: 5 s + 12-s6 + 5 s5 + 12 s4 + 16 s3 + 15 s2 + 11 s + 4这种情况用算子方法可以更直观地输入系统模型,输入命令为s=tf('s');g=5*(s+2.4)/(s+1)2*(s2+3*s+4)*(s2+1);任务四:在matlab 命令窗口中对例2的这两种输入方法进行验证。(2)tfdata()函数如果有了传递函数g,则提取控制系统的传递函数的分子多项式num和分母多项式den可以由tfdata()函数来实现。如输入命令
15、:s=tf('s');g=5*(s+2.4)/(s+1)2*(s2+3*s+4)*(s2+1)num,den=tfdata(g,'v') %其中'v'表示想获得num和den的数值任务五:在matlab 命令窗口中对该例进行验证。(3)zpk ()函数若要得到控制系统零极点传递函数,可以调用zpk ( )函数。该函数的调用格式为g = zpk ( z, p,k );其中k为系统的增益,z, p 分别为系统传递函数的零点和极点列向量。返回的g 为传递函数形式。例3 设系统传递函数 输入下面的命令:z=-1.539; -2.7305+2.8538i;
16、-2.7305-2.8538i; %注意使用列向量,另外注意符号p=-1;-2;-3;-4; g=zpk(z,p,1);在matlb提示符“>>”下键入g,或省略最后命令中分号,则可显示该数学模型。>> g %下面是matlb的显示结果zero/pole/gain:(s+1.539) (s2 + 5.461s + 15.6)- - (s+1) (s+2) (s+3) (s+4)任务六:在matlab 命令窗口中对该例进行验证。注意在matlab的零极点模型显示中,如果有复数零极点存在,则用二阶多项式来表示两个因子,而不直接展成复数的一阶因式。(4)tf2zp( )函数、
17、zp2tf( )函数控制系统分子、分母多项式传递函数与控制系统零极点传递函数可以用tf2zp( )、zp2tf( )函数转换。tf2zp( )可将分子、分母多项式的传递函数转换为零、极点增益形式。该函数的调用格式为 z, p,k = tf2zp ( num, den );zp2tf( )可将零、极点增益形式转换为分子、分母多项式的传递函数。该函数的调用格式为 num, den= zp2tf ( z, p,k)任务七:应用tf2zp( )函数求出例1和任务五中系统的零极点。4. 实验报告内容1) 写出matlab工作环境平台中四个窗口的功能。2) 实现实验内容的所有任务,并将答案记录(记录命令代
18、码)。3) 整理在实验过程中遇到的问题及如何解决的。每次实验报告形式为:实验名称、实验目的、实验仪器、实验内容(包括以上列出的实验报告内容 1)、2)、3)、分析心得等。5. 预习要求1) 阅读实验内容及实验目的。2) 完成对matlab 软件的熟悉工作。二、 simulink 基本功能与使用1. 实验目的1) simulink 的使用方法。2) 熟悉simulink 模块库的分类及其相应用途。3) 能够使用simulink 进行系统模型的建立并仿真等。2. 实验仪器:pc计算机一台,matlab软件1套3. 实验内容1) simulink 的启动启动方式一:在 matlab 命令窗口,键入“
19、simulink”启动方式二:点击窗口上面的 simulink图标。如图3 所示,就打开了 simulink 窗口,进入simulink 库模块浏览界面。2) simulink 的模型窗口的建立在 simulink 窗口下,用鼠标点击 new model 图标或选取菜单 file new model 后,simulink 会打开一个名为untilited(无标题)的模型窗口,如图4 所示。随后,按用户要求可以在此模型窗口中创建模型及进行仿真运行。打开simulink library browser 浏览器图3 启动simulink图4 空的模块窗口3) simulink 模块库simulink
20、 提供了9 类基本模块库:连续系统模块库(continous)、离散系统模块库(discrete)、函数与表模块库(function&tables)、数学运算模块库(math)、非线性系统模块库(nonlinear)、信号模块库(signal routing)、输出模块库(sinks)、输入源模块库(sourses)、子系统模块库(subsystems)等基本模块库。附录二对本实验书中用到的5个模块:连续系统模块库(continous)、数学运算模块库(math)、信号模块库(signal routing)、输出模块库(sinks)、和输入源模块库(sourses)的功能进行了介绍。4
21、) 用simulink 建立系统模型及仿真(1)例1 以求一个惯性环节的阶跃响应为例,说明模型的建立过程。开启 simulink 窗口及模块库:在 matlab 命令窗口,键入“simulink”,或点击窗口上面的 simulink图标,如图3 所示,就打开了 simulink 窗口,进入simulink 库模块浏览界面。建立新文件:在 simulink 窗口下,用鼠标点击 new model 图标或选取菜单 file new model 后,simulink 会打开一个名为untilited(无标题)的空白模型窗口,如图4 所示。新文件建立后,可以用菜单 file 中的 save as 命令
22、保存程序,这时需要给文件取名。保存的文件扩展应名为.mdl。本例中将文件名命名为examp1.mdl。复制模块:双击模块组图标打开模块子库,将鼠标移到所要复制的模块上,然后按下左键并拖动鼠标到目标窗口,再松开键,用右键可在任意窗口内复制模块,此时原模块保留。本例中需双击sources图标从信号源库中选中阶跃信号模块,双击continuous图标从连续系统模块库中选中传递函数模块,双击sinks图标从显示库中选中示波器模块,分别拖入examp1.mdl目标窗口。修改模块参数。通常目标窗口中复制的模块的参数和要求不一致,因此需对这些复制过来的模块参数进行修改。双击复制过来的模块,会出现对一个对话框
23、,在对话框中设置相应参数。本例中双击step模块,设置阶跃信号的起始时间从默认的1修改为0、并可根据实际情况设计设置初值和终值;双击transfer fcn模块,设置传递函数的表达式,在分子(numerator)多项式系数处键入5,在分母(denominator)多项式系数处键入0.8,2.模块之间的连接:模块左侧和右侧尖角>分别表示模块的输入和输出,模块之间的连接按照下述方法进行:鼠标移到一个模块的输入(出)端,按下左键,拖动鼠标到另一个模块的输出(入)端,松开,连线完毕。若要从一条已经存在的连线上引出另一条连线,首先把鼠标指针移到这个连线上,按下右键,拖动鼠标到目标端口,再松开键。按照上述步骤建立的惯性环节模型如图5所示。图5 用simulink建立的惯性环节模型若需要选择对象或删除对象,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2020-2024年上海市春考语文试题汇编含答案
- 陕西安全b证考试试卷及答案
- 沙区7年级英语试卷及答案
- 纺织品技术创新与产业发展考核试卷
- 糖果与巧克力企业产品创新与市场开拓考核试卷
- 羽绒制品市场动态监测考核试卷
- 灌溉系统在农业水资源调配中的作用考核试卷
- 广播影视设备国内外贸易咨询批发考核试卷
- 网络安全防护体系建设与实施考核试卷
- 粮油产业现状与发展趋势考核试卷
- 大宗物业交易居间合同范本
- 金属热处理工(初级工)职业技能认定考试题库(含答案)
- 临床管道的风险管理
- 团员发展纪实簿
- 落实《中小学德育工作指南》制定的实施方案
- 湖南省城镇排水管道非开挖修复更新技术标准(发布稿)
- 民用无人机操控员执照(CAAC)考试复习重点题及答案
- 完整版:美制螺纹尺寸对照表(牙数、牙高、螺距、小径、中径外径、钻孔)
- 2024年幼儿园园务工作总结参考范文(4篇)
- 信创的基础知识培训课件
- 化学品作业场所安全警示标志大全
评论
0/150
提交评论