实验一 MATLAB 控制系统模型建立与仿真中的应用
一、 MATLAB 基本操作与使用
1. 实验目的
1)  熟悉 MATLAB工作环境平台及其各个窗口,掌握MATLAB 语言的基本规定,MATLAB图形绘制功能、M 文件程序设计
2)  学习使用MATLAB控制系统工具箱中线性控制系统传递函数模型的相关函数。
2. 实验仪器
PC计算机一台,MATLAB软件1
3. 实验内容
1)  MATLAB工作环境平台
1 在英文Windows 平台上的MATLAB6.5 MATLAB工作平台
命令窗口(Command Window
命令窗口是对 MATLAB 进行操作的主要载体,默认的情况下,启动MATLAB 时就会打开命令窗口,显示形式如图 1 所示。一般来说,MATLAB的所有函数和命令都可以在命令窗口中执行。掌握 MALAB 命令行操作是走入 MATLAB 世界的第一步。命令行操作实现了对程序设计而言简单而又重要的人机交互,通过对命令行操作,避免了编程序的麻烦,体现了 MATLAB 所特有的灵活性。
在运行MATLAB后,当命令窗口为活动窗口时,将出现一个光标,光标的左侧还出现提示符“>>”,表示MATLAB正在等待执行命令。注意:每个命令行键入完后,都必须按回车键!
当需要处理相当繁琐的计算时,可能在一行之内无法写完表达式,可以换行表示,此时需要使用续行符“…”否则 MATLAB 将只计算一行的值,而不理会该行是否已输入完毕。
使用续行符之后 MATLAB 会自动将前一行保留而不加以计算,并与下一行衔接,等待完整输入后再计算整个输入的结果。
MATLAB 命令行操作中,有一些键盘按键可以提供特殊而方便的编辑操作。比如:“↑”可用于调出前一个命令行,“↓”可调出后一个命令行,避免了重新输入的麻烦。当然下面即将讲到的历史窗口也具有此功能。
历史窗口(Command History
历史命令窗口是 MATLAB6 新增添的一个用户界面窗口,默认设置下历史命令窗口会保留自安装时起所有命令的历史记录,并标明使用时间,以方便使用者的查询。而且双击某一
行命令,即在命令窗口中执行该命令。
当前目录窗口(Current Directory
在当前目录窗口中可显示或改变当前目录,还可以显示当前目录下的文件,包括文件名、文件类型、最后修改时间以及该文件的说明信息等并提供搜索功能。
工作空间管理窗口(Workspace
工作空间管理窗口是 MATLAB 的重要组成部分。在工作空间管理窗口中将显示所有目前保存在内存中的 MATLAB 变量的变量名、数据结构、字节数以及类型,而不同的变量类型分别对应不同的变量名图标。
2)  MATLAB 的基本规定
1 数值的表示
MATLAB 的数值采用十进制,可以带小数点或负号。以下表示都合法。0 -100 0.008 12.7521.8e-6 8.2e52
2 变量命名规定
变量名、函数名:字母大小写表示不同的变量名。A a 表示不同的变量名;sin MATLAB 定义的正弦函数,而SinSIN 等都不是。
变量名的第一个字母必须是英文字母,不能是数字,最多可包含31 个字符(英文、数字和下连字符)。如A21 是合法的变量名,而3A21 是不合法的变量名。
变量名中不得包含空格、标点,但可以有下连字符。如变量名A _b21 是合法变量名,而A21 是不合法的。
3 基本运算符
1  MATLAB 表达式的基本运算符
数学表达式
MATLAB 运算符
MATLAB 表达式
a + b
+
a + b
ab
ab
a×b
*
a*b
a÷b
/\
a/ba\b
ab
^
a^b
点乘
两矩阵元素相乘
.*
a.*b
4 MATLAB 默认的预定义变量
MATLAB 中有一些预定义变量(predefined variable)。每当MATLAB 启动,这些变量就被产生。用户在定义变量时,尽量避开表2 所列预定义变量名,以免产生混淆。
2 MATLAB 的预定义变量
预定义变量
含义
预定义变量
含义
ans
计算结果的缺省变量名
NaNnan
matlab定义函数表达式
未定式,如0/0
eps
机器零阈值
nargin
函数输入宗量数目
flops
浮点运算次数
nargout
函数输出宗量数目
Inf inf
无穷大,如1/0
realmax
最大正实数
i j
虚单元i = j =
realmin
最小正实数
pi
圆周率π
    对《自动控制理论》书p409410中简单数学运算的例子,请在MATLAB 命令窗口中对这些运算进行验证。
5 MATLAB 的矩阵运算 (课本P410411
矩阵的输入和矩阵的运算
    对课本p410411中矩阵运算的例子,请在MATLAB 命令窗口中对这些运算进行验证。
3 MATLAB 图形绘制
在二维曲线绘制中,最基本的指令是plot )函数。如果用户将x y 两组数据分别在向量x y 中存储,且它们的长度相同,调用该函数的格式为:
plotxy
这时将在一个图形窗口上绘出所需要的二维图形。MATLAB 命令窗口提示符“>>”下键入 help  plot ,可得到plot )函数的相关内容,如曲线颜和线型的改变。
任务一:MATLAB 命令窗口提示符“>>”下,完成下述任务:
任务(1)绘制一个周期内的正弦曲线。先产生自变量t 时间向量,由给出的自变量时间向量求取其正弦函数值向量,然后调用plot )函数绘制曲线。
任务(2 在一个绘图窗口上同时绘制多条曲线。参考课本p411412,写成命令,完成上述任务(1)和任务(2)。
4)  M 文件程序设计
对于简单问题,使用直接输入命令简单有效,但对于较复杂和多次重复的问题,直接输入命令比较麻烦,使用M文件则简便。
MATLAB不仅用命令行方式工作,还可以像 BASICFORTRANC等其他高级计算机语言一样进行控制流的程序设计(MATLAB 语言的流程控制语句主要有 forwhileif-else-end switch-case 4 种语句)。MATLAB控制流,即编制一种以 . m为扩展名的 MATLAB 程序(简称 M 文件)。由于商用的 MATLAB 软件是用 C 语言编写而成。因此,M 文件的语法与 C 语言十分相似。
建立和运行M文件程序的过程如下:
1 打开M文件编辑窗口:在图1中选择FileNewMfile菜单项实现,在M文件编辑窗口键入M文件的各行命令代码,例如输入课本P412M文件部分的例子代码
2 保存文件:在图2中选择FileSave菜单项,保存文件。例如可键入exp1,上述命令行就保存为exp1.m
2 建立和运行M文件程序的过程
3 调试运行M文件程序:可在图中选择DebugRun菜单项,全速运行M文件程序。也可用鼠标点击行号后短横线,给程序设置断点,选择DebugStep,单步运行M文件程序,并
根据工作空间管理窗口(Workspace)结果了解每条指令的功能。此外,在MATLAB命令窗口键入exp1(该M文件的名字,注意不写后缀)即可运行该M文件。
任务二:按上面的过程来建立并保存一个M文件程序,并调试运行M文件程序。
5)  MATLAB控制系统工具箱中的线性系统传递函数模型的相关函数
1tf ( )函数
若要在MATLAB 环境下得到传递函数的形式,可以调用tf ( )函数。该函数的调用格式为                                G = tf ( num, den );
其中num, den 分别为系统传递函数的分子和分母多项式系数向量。返回的G 为传递函数形式。
但如果分子或分母多项式给出的不是完全的展开的形式,而是若干个因式的乘积,则事先需要将其变换为完全展开的形式,两个多项式的乘积在MATLAB下借用卷积求取函数conv( )得出,其调用格式为            p=conv(p1,p2)
其中p1p2为两个多项式,调用这个函数就能返回乘积多项式p。如果有3个多项式的乘积,就需要嵌套使用此函数,即
p=conv(p1,conv(p2,p3))  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,或省略最后命令中分号,则可显示该数学模型。
输入方式二:s=tf(’s’); G=( s^3 + 5* s^2 + 3* s + 2)/( s^4 + 2*s^3 + 4* s^2 + 3* s + 1);
任务三:设系统传递函数 采用上面两种输入方式,输入其传递函数,并记录命令。
2 设系统传递函数
此题分子或分母多项式给出的不是完全展开的形式,而是若干个因式的乘积,采用tf () 这一种输入法之前,应先用conv( )函数获得分子和分母多项式给出的完全展开的形式numden,即输入命令:
num=conv([0,5],[1,2.4]);
den=conv(conv(conv([1,1],[1,1]),[1,3,4]),[1,0,1]);
G=tf(num,den)  %语句没有分号结尾,故将显示系统传递函数
Transfer function:
                    5 s + 12
-------------------------------------------------
s^6 + 5 s^5 + 12 s^4 + 16 s^3 + 15 s^2 + 11 s + 4
这种情况用算子方法可以更直观地输入系统模型,输入命令为
s=tf('s');G=5*(s+2.4)/((s+1)^2*(s^2+3*s+4)*(s^2+1));
任务四:在MATLAB 命令窗口中对例2的这两种输入方法进行验证。
2tfdata()函数
如果有了传递函数G,则提取控制系统的传递函数的分子多项式num和分母多项式den可以由tfdata()函数来实现。如输入命令:

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。