控制系统MATLAB仿真实验指导书Word文件下载.docx
《控制系统MATLAB仿真实验指导书Word文件下载.docx》由会员分享,可在线阅读,更多相关《控制系统MATLAB仿真实验指导书Word文件下载.docx(49页珍藏版)》请在冰豆网上搜索。
MATLAB有下列输出
x=
0.33330.0000
如果在矩阵中至少有一个元素不是严格的整数,则有多种可能的输出格式。
显示的输出量可以用【File】菜单的【Preferences】命令设置,或用下列命令加以控制:
formatshort(0.33330.0000)
formatlong(0.333333333333330.00002000000000)
formatshorte(3.3333e-0012.0000e-005)
formatlonge(3.333333333333333e-0012.000000000000000e-005)
9.退出MATLAB时如何保存变量
当退出MATLAB时,工作空间中的所有变量都将消失。
如果在退出之前输入命令save,则所有的变量都被保存在磁盘文件matlab.mat文件中。
当再次进入MATLAB时,命令load将使工作空间恢复到以前的状态。
如果要保存/恢复部分变量,可用如下命令:
save文件名变量名(变量名之间用空格分割)/load文件名
参见save命令的帮助文件。
2.2MATLAB函数
在当前的MATLAB5.0及以上版本中,MATLAB函数的调用格式和其它编程语言是不同的,其典型的调用格式为
[返回变量列表]=func_name(输入变量列表)
其中等号左边的变量为返回变量,等号右边的变量为输入变量。
MATLAB允许在函数调用时返回多个变量。
而一个函数又可以由多种格式进行调用,例如bode()函数可以由下面的格式调用
[mag,phase]=bode(num,den,w)
其中bode()函数用来求取或绘制系统的Bode图,而系统在这里由传递函数分子num和分母den表示,还可以用下面的格式调用此函数
[mag,phase]=bode(A,B,C,D,w)
其中(A,B,C,D)为系统的状态方程模型。
尽管两种调用格式是完全不同的,MATLAB函数还是会自动识别到底是用哪种格式调用该函数的,从而得出正确的结论。
在当前版本的控制系统工具箱中还允许用线性模型对象变量G来描述系统,例如
[mag,phase]=bode(G,w)
MATLAB函数在返回变量的格式上也可以不同,例如若上面的语句中若没有返回变量,则将自动地绘制系统的Bode图,否则返回计算结果数据。
2.3绘制响应曲线
MATLAB具有丰富的获取图形输出的程序集。
命令plot可以产生线性x-y图形(用命令loglog、semilogx、semilogy或polar取代plot,可以产生对数坐标图和极坐标图)。
所有这些命令的应用方式都是相同的,它们只对坐标轴的分度和数据的显示产生影响。
1.X-Y图
如果X和Y是同一长度的向量,则命令
plot(X,Y)
将画出Y值对于X值的关系图。
2.画多条曲线
为了在一幅图上画出多条曲线,采用具有多个自变量的plot命令:
plot(X1,Y1,X2,Y2,…,Xn,Yn)
变量X1,Y1,X2,Y2等等是一些向量对。
每一个X-Y对都可以图解表示出来,因而在一幅图上形成多条曲线。
多重变量的优点是它允许不同长度的向量在同一幅图上显示出来,每一对向量采用不同的线型。
在一幅图上画一条以上的曲线时,也可以利用命令hold。
hold命令可以保持当前的图形,并且防止删除和修改比例尺。
因此,随后的一条曲线将会重叠地画在原曲线上。
再次输入命令hold,会使当前的图形复原。
3.加进网格线、图形标题、X轴标记和Y轴标记
一旦在屏幕上显示出图形,就可以画出网格线,定出图形标题,并且标定x轴标记和y轴标记。
MATLAB中关于网格线、标题、X轴标记和Y轴标记的命令如下:
grid(网格线)
title(图形标题)
xlabel(X轴标记)
ylabel(Y轴标记)
4.在图形屏幕上书写文本
为了在图形屏幕上的点(x,y)书写文本,采用命令:
text(x,y,'
text'
)
例如,利用语句
text(3,0.45,'
sint'
将从点(3,0.45)开始,水平地写出sint。
5.图形类型
下列语句:
plot(x,y,'
x'
将利用标记符号×
画出一个点状图。
MATLAB能够提供的线和点的类型如下:
线的类型
点的类型
实线
-
圆点
.
短划线
--
加号
+
虚线
:
星号
*
点划线
-.
圆圈
o
×
号
x
6.颜色
plot(X,Y,'
+g'
表明用绿色“+”号划线。
MATLAB提供的颜色如下:
红色
r
绿色
g
蓝色
b
白色
w
无色
i
参见plot的帮助文件。
7.自动绘图算法
在MATLAB中,图形是自动定标的。
在另一幅图形画出之前,这幅图形作为现行图将保持不变,但是在另一幅图形画出后,原图形将被删除,坐标轴自动地重新定标。
8.手工坐标定标
如果需要在下列语句指定的范围内绘制曲线:
V=[x-minx-maxy-miny-max]
则因输入命令axis(V),式中V是一个四元向量。
axis(V)把坐标轴定在规定的范围内。
2.4MATLAB语言的联机帮助功能
下面的实验中,我们将较为详细地学习使用MATLAB的语言基础和控制系统仿真,但是MATLAB的内容及其丰富,在学习和使用中,可以利用MATLAB的联机帮助功能。
MATLAB的联机帮助既可以由help命令来直接获得,又可以由MATLAB图形界面下的Help菜单来查询,还可以用lookfor命令查询有关的关键词:
>
>
helpplot
lookforplot
3.MATLAB语言基础实验
3.1实验一MATLAB语言平台
一、实验目的
1.学习了解MATLAB语言环境;
2.练习MATLAB命令的基本操作;
3.练习m文件的基本操作。
二、实验内容
1.学习了解MATLAB语言环境
(1)MATLAB语言操作界面
开机双击相应图标即可进入MATLAB命令窗口,如图1.1所示。
在命令提示符位置键入命令,完成下述练习。
图1.1MATLAB窗口
(2)练习DOS相似命令
MATLAB语言与DOS操作系统有如下相似的命令,在操作界面上练习这些命令。
dirdir('
c:
\windows'
typetypeexpm.m
cdcdc:
\matlab6p5\help
(3)MATLAB的数据格式
合法的数据格式有:
short,long,hex,shorte,longe,rational等。
键入
a=pi;
b=exp
(1)
由File/Preferences…改变数据格式,观察变量值。
(4)变量查询
变量查询命令有who,whos,查询变量。
(5)路径函数与搜索路径
path路径函数
which文件定位
路径函数path列出MATLAB自动搜索路径清单,执行该命令。
path(path,'
newpath'
addpath('
用于在搜索路径清单中增加新的路径项,练习该命令。
或由File/SetPath…设置路径。
说明:
在命令窗口键入一命令并按下回车键,MATLAB就在搜索路径中搜索相应的命令文件(内部命令和函数除外),找到后就执行该文件,若未找到,就给出错误提示“File'
xxxx'
notfound.”。
(6)联机帮助
helphelp
阅读help函数的使用说明。
help
列出help项。
查询前面使用过的命令
helpwho
helppath
阅读上述函数的功能、使用格式等。
(7)字符串查询
helplookfor
阅读MATLAB函数lookfor的功能与使用方法,并使用该命令查询相应的关键词字符串。
(8)MATLAB语言演示
demo
MATLAB语言功能演示。
2.练习MATLAB命令的基本操作
(1)键入常数矩阵输入命令
a=[123]
a=[1;
2;
3]
比较显示结果有何不同。
b=[125]
b=[125];
(2)作循环命令程序
makesum=0;
fori=1:
1:
100
makesum=makesum+i;
end
键入makesum,按回车键,观察计算结果。
(3)分别执行下面命令:
a=[123;
456;
780]
poly(a)
rank(a)
det(a)
trace(a)
inv(a)
eig(a)
观察显示结果。
使用联机帮助help查阅相应函数的意义和函数的格式。
3.2实验二MATLAB数值运算
1.学习MATLAB的基本矩阵运算;
2.学习MATLAB的点运算。
在下面的实验操作中,认真执行每项操作,掌握其作用和目的。
1.基本矩阵运算
(1)创建数值矩阵
a=[123;
789];
观察
a(3,2)
a(:
1)
t=0:
10;
u=0:
0.1:
观察向量t,u的值。
3)=[2;
3;
4];
a
观察矩阵a的变化。
b=[11+2i;
3+4i3];
观察复数矩阵。
(2)特殊矩阵
a=ones(3,3);
b=zeros(2,2);
c=eye(4);
magic(4);
观察特殊矩阵。
(3)矩阵运算
a=[010;
001;
-6-11-6];
b=[12;
34;
56];
c=[110;
011];
作矩阵乘运算:
v1=c*a;
v2=a*b;
v3=c*a*b;
v4=b*c;
v5=c*b;
矩阵乘方运算:
a^2
a^(1/2)
矩阵加减运算:
a1=a+b*c;
a2=c*b-a(1:
2,1:
2);
a3=a(1:
2,2:
3)+c*b;
矩阵右除(常规除):
ar=a/b;
矩阵左除:
al=a\b
注意矩阵运算时的维数匹配。
(4)矩阵特征
完成如下矩阵特征运算:
a'
inv(a)diag(a)tril(a)triu(a)
poly(a)rank(a)det(a)trace(a)eig(a)
2.MATLAB的点运算
(1)练习点乘与点除
a1=[12;
34];
a2=0.2*a1;
[a1a2]
[a1.*a2a1./a2]
(点乘与点除是数组运算)
(2)正弦、余弦函数
2*pi/180:
2*pi;
y1=sin(t);
y2=cos(t);
y=y1.*y2;
plot(t,[y'
y1'
y2'
]
(3)复变函数
w=0.1:
2;
g1=(1+0.5*w*i)/(1-0.5*w*i)
g2=(1+0.5*w*i)./(1-0.5*w*i)
plot(g2);
xlabel('
realg2(w)'
);
ylabel('
imageg2(w)'
axis('
square'
3.多项式运算
(1)建立多项式向量
ap=[1331]
b=[-1-2-3]
bp=poly(b)
(2)多项式乘与根
p=conv(ap,bp)
root(p)
(3)多项式运算
a=[1234];
b=[1-1];
c=a+[zeros(1,length(a)-length(b)),b]
poly2str(c,'
polyvalm(a,3)
4.代数方程组
(1)给定方程组
Ax=Bxn×
1,An×
n,Bn×
方程组的解
x=A-1Borx=A\B
方程为
这时不能用第一种方法,A-1只能用于方阵,这时可用广义逆矩阵解:
A=[123;
234];
B=[1;
2];
x=pinv(A)*B
x=
0.8333
0.3333
-0.1667
3.3实验三MATLAB绘图
1.学习MATLAB的各种二维绘图;
2.学习MATLAB的三维绘图;
3.学习MATLAB的绘图修饰(多种绘图,图形注释,绘图颜色,色图矩阵)。
在下面的实验操作中,认真执行每项操作,掌握其作用和目的,每个命令的含义和用法查看帮助文件。
1.基本二维绘图
(1)向量绘图
x=0:
2*pi/100:
2*pi;
y1=sin(2*x);
y2=cos(2*x);
plot(x,y1)
plot(x,y2)
plot(x,y1,x,y2)
保持作图:
plot(x,y1);
holdon
plot(x,y2);
holdoff
矩阵作图:
plot(x'
[y1'
])
设定颜色与线型:
plot(x,y1,'
'
x,y2,'
ro'
多窗口绘图:
figure
(1);
figure
(2);
子图绘图:
subplot(221);
subplot(222);
subplot(223);
plot(x,y1,x,y1+y2)
subplot(224);
plot(x,y2,x,y1-y2)
复变函数绘图:
w=0.01:
0.01:
10;
g=1./(1+2*w*i);
subplot(121);
plot(g)
subplot(122);
plot(real(g),imag(g))
插值绘图:
2*pi/8:
y=sin(x);
plot(x,y,'
holdon;
xi=0:
yi=spline(x,y,xi);
plot(xi,yi,'
m'
反白绘图与绘图背景色设定:
whitebg
whitebg('
b'
k'
(2)函数绘图
fplot('
sin'
[04*pi])
f='
sin(x)'
;
fplot(f,[04*pi])
sin(1/x)'
[0.010.1],1e-3)
[tan(x),sin(x),cos(x)]'
[-2*pi,2*pi,-2*pi,2*pi])
(3)符号函数快捷绘图:
exp(-0.5*x)*sin(x)'
ezplot(f,[0,10])
x^2+y^2-9'
ezplot(f)
axisequal
2.多种二维绘图
(1)半对数绘图(频率特性绘图)
w=logspace(-1,1);
横坐标对数分度
g=20*log10(1./(1+2*w*I))幅值纵坐标取分贝
p=angle(1./(1+2*w*I))*180/pi相角纵坐标取度
subplot(211);
semilogx(w,g);
grid;
幅频特性子图,半对数绘图,加网线
subplot(212);
semilogx(w,p);
相频特性子图,半对数绘图,加网线
(2)极坐标绘图
mo=cos(2*t);
polar(t,mo);
(3)直方图绘图
y=sin(t);
bar(t,y);
(4)离散棒图
stem(t,y);
(5)阶梯图
stairs(t,y);
(6)彗星绘图
t=-pi:
pi/200:
pi;
comet(t,tan(sin(t))-sin(tan(t)));
3.图形注释
[sin(t),cos(t)]'
[0,5]);
title('
曲线'
时间t'
幅值y'
gtext('
正弦函数'
余项函数'
grid
4.三维绘图
(1)三维线图
pi/50:
10*pi;
plot3(sin(t),cos(t),t);
comet3(sin(t),cos(t),t);
(2)单变量高度网线图
Z2=[11;
1–1];
Z4=[Z2Z2;
Z2–Z2];
Z8=[Z4Z4;
Z4–Z4];
mesh(Z8)
(3)3变量马鞍面网线图
x=-4:
0.5:
4;
y=x;
[X,Y]=meshgrid(x,y);
Z=X.^2-Y.^2;
mesh(X,Y,Z)
(4)圆锥面网线图
t1=0:
0.9;
t2=0:
2;
r=[t1,-t2+2];
[x,y,z]=cylinder(r,40);
mesh(x,y,z)
(5)视角修饰
subplot(2,2,1);
mesh(x,y,z);
view(0,0);
subplot(2,2,2);
view(-20,20);
subplot(2,2,3);
view(-30,30);
subplot(2,2,4);
view(-40,40);
(6)暖色(hot)色图
peaks(20);
off'
colormap(hot);
colorbar('
horiz'
(7)光照修饰
surfl(peaks(20));
colormap(gray);
shadinginterp;
(8)透视与消隐
P=peaks(30);
mesh(P);
hiddenoff;
hiddenon;
3.4实验四MATLAB句柄绘图
1.学习图形对象(griphics)和句柄(handle)的基本知识;
2.学习图形对象属性(objectproperties)的获得与设置;
3.基本句柄绘图(handlegriphics)操作;
二、句柄绘图的基本原理
1.基本图形对象
根屏幕(Root)
图形窗口(Figure)
界面控制(Uicontrol)
界面菜单(Uimenu)
轴(Axes)
线(Line)
块(Patch)
面(Surface)
像(Image)
字(Text)
2.图形对象创建函数
h=figure(n);
n为窗口号数
h=uicontrol('
property'
value);
确定控制类型
h=uimenu('
确定菜单形式
h=axes('
position'
[left,bottom,width,height]);
丁一周对象的位置与大小
h=line(x,y,z);
x,y用于二维画线,x,y,z用于三维画线
h=patch(x,y,z,c);
x,y,z定义多边形,c确定填充