MATLAB基础应用与系统仿真实验指导书新编225.docx
《MATLAB基础应用与系统仿真实验指导书新编225.docx》由会员分享,可在线阅读,更多相关《MATLAB基础应用与系统仿真实验指导书新编225.docx(35页珍藏版)》请在冰点文库上搜索。
MATLAB基础应用与系统仿真实验指导书新编225
北方民族大学
《MATLAB基础应用与系统仿真》
实验指导书
主编王福平
西北第二民族学院电气信息工程学院
二○○七年三月
目 录
MATLAB基础应用与系统仿真实验教学大纲………………………………………3
实验一 MATLAB语言基础实验……………………………………………………5
实验二 MATLAB数值运算实验……………………………………………………9
实验三 MATLAB符号运算实验……………………………………………………13
实验四 MATLAB图形绘制实验……………………………………………………16
实验五 系统控制仿真
(一)实验………………………………………………19
实验六 系统控制仿真
(二)实验………………………………………………21
实验七 SIMULINK仿真分析………………………………………………………25
《MATLAB基础应用与系统仿真》实验教学大纲
适用专业:
信息工程
课程类别:
专业任选课
课程性质:
选修课
实验类别:
专业实验
一、学时与学分
1.课程总学时:
54
2.课程总学分:
2.5
3.实验学时:
12
4.实验学分:
0
二、实验教学目标与基本要求
本课程是实践性极强的课程,实验教学可以加深学生对理论教学内容的理解,提高学习的兴趣和动手能力,上机操作是本课程重要的教学环节,学生只有通过上机实习,才能领会MATLAB中众多功能,达到熟练应用的程度。
通过实验教学要求学生初步掌握应用MATLAB语言进行控制系统仿真分析与研究。
三、内容简介
实验内容包括:
(12学时)
实验一:
MATLAB语言基础实验
实验二:
MATLAB数值运算实验
实验三:
MATLAB符号运算实验
实验四:
MATLAB图形绘制实验
实验五:
系统控制仿真
(一)实验
实验六:
系统控制仿真
(二)实验
实验七:
SIMULINK仿真分析
四、参考教材
西北第二民族学院电信系自编的《MATLAB语言与控制系统仿真指导书》
五、考核方式
实验成绩以实验课表现和实验报告为评判,实验成绩占课程总成绩的30%。
六、实验设备及器材配置
计算机及MATLAB软件
七、试验项目一览
适用专业、年级
信息工程专业三、四年级
总学时/实验学时
54/12
序号
实验项目名称
实验内容摘要
学时
实验
要求
实验
类型
每组
人数
面向专业编号
备注
1
MATLAB语言基础实验
熟悉MATLAB软件环境和基本操作命令
2
必做
验证型
1
2
MATLAB数值运算实验
熟悉MATLAB数值运算方法
2
必做
验证型
1
〃
3
MATLAB符号运算实验
熟悉MATLAB符号运算方法
2
选做
验证型
1
〃
4
MATLAB图形绘制实验
掌握熟悉MATLAB图形绘制方法
2
必做
验证型
1
〃
5
系统控制仿真实验
(一)
掌握控制系统的阶跃、脉冲响应曲线分析
2
必做
综合性
1
〃
6
系统控制仿真实验
(二)
掌握应用MATLAB绘制波德图、根轨迹图判断系统稳定性仿真分析
2
选做
综合性
1
〃
7
SIMULINK仿真分析
掌握结构图系统仿真方法
2
必做
设计型
1
〃
大纲执笔人:
王福平
大纲审定人:
2006年3月6日
实验一MATLAB语言基础实验
(验证型实验)
一、实验目的
1.熟悉MATLAB运行环境和MATLAB语言的主要特点。
2.掌握MATLAB语言的基本语法规则及基本操作命令的使用。
3.学会m文件的建立和使用方法。
二、实验仪器与软件
1.PC机1台
2.MATLAB6.5环境
三、实验原理
MATLAB环境是一种为数值计算、数据分析和图形显示服务的交互式的环境。
MATLAB有3种窗口,即:
命令窗口(TheCommandWindow)、m-文件编辑窗口(TheEditWindow)和图形窗口(TheFigureWindow),而Simulink另外又有Simulink模型编辑窗口。
1.命令窗口(TheCommandWindow)
当MATLAB启动后,出现的最大的窗口就是命令窗口。
用户可以在提示符“>>”后面输入交互的命令,这些命令就立即被执行。
在MATLAB中,一连串命令可以放置在一个文件中,不必把它们直接在命令窗口内输入。
在命令窗口中输入该文件名,这一连串命令就被执行了。
因为这样的文件都是以“.m”为后缀,所以称为m-文件。
2.m-文件编辑窗口(TheEditWindow)
我们可以用m-文件编辑窗口来产生新的m-文件,或者编辑已经存在的m-文件。
在MATLAB主界面上选择菜单“File/New/M-file”就打开了一个新的m-文件编辑窗口;选择菜单“File/Open”就可以打开一个已经存在的m-文件,并且可以在这个窗口中编辑这个m-文件。
四、实验内容
1.打开MATLAB语言操作界面
打开[开始]-〉[程序]-〉matlab7.00,观察界面布局,了解commandwindow、workspace、commandhistory等板块的功能及用法
2.MATLAB帮助系统
在命令行输入intro、demo、help
例如:
help或helpformat
3.练习Dos相似命令和变量查询
在命令行输入:
cd、dir、type、path、who、whos、what、which
4.MATLAB的数据格式
Short、long、hex、shorte、longe、rational
使用format、formatshort、formatlong、formathex、formatshorte、formatlonge、formatrational分别格式化数据
例如:
formatshort,a=pi或b=exp
(1)
5.练习MATLAB基本语句
在命令行输入以下语句,观察运行结果
a=3
A=[123;456]
f1=‘Thisisastring’
f2=‘exp(-2*a)*sin(a/5)’
size(a),size(f2)
6.练习m文件的建立和运行
在命令行输入edit,或者在matlab环境中打开[File]-〉[New]-〉M-file,或者点击快捷菜单[NewM-file],打开m文件编辑窗口,输入以下语句:
xx=1:
10
xx=linspace(-1,1,10)
xx=logspace(-1,1,10)
打开[Debug]-〉[Run]运行,或者点击快捷菜单[Run]运行,并在主窗口观察运行结果,与在命令行输入相比较。
五、实验要求
利用所学知识,完成上述1至6项实验内容,并将实验结果写在实验报告上。
六、实验思考题
1.MATLAB软件有哪些功能特点?
MATLAB与C语言语法有和相同之处?
2.在MATLAB语言中“:
”和“;”的含义什么?
实验二MATLAB数值运算实验
(验证型实验)
一、实验目的
l.熟悉Matlab中各类数据,尤其是矩阵的定义、赋值和运用。
2.了解Matlab的矩阵分析函数以及求线性方程组的数值解;
3.熟悉多项式运算函数、数值插值。
二、实验仪器与软件
1.PC机1台
2.MATLAB7.0环境
三、实验原理
1.创建矩阵的方法
a.直接输入法规则:
矩阵元素必须用[]括住;矩阵元素必须用逗号或空格分隔;在[]内矩阵的行与行之间必须用分号分隔。
逗号和分号的作用:
逗号和分号可作为指令间的分隔符,matlab允许多条语句在同一行出现。
分号如果出现在指令后,屏幕上将不显示结果。
b.用matlab函数创建矩阵:
空阵[]—matlab允许输入空阵,当一项操作无结果时,返回空阵;rand——随机矩阵;eye——单位矩阵;zeros——全部元素都为0的矩阵;ones——全部元素都为1的矩阵
c.矩阵的修改:
可用键找到所要修改的矩阵,用键移动到要修改的矩阵元素上即可修改;指令修改:
可以用A(,)=来修改。
2.矩阵运算
a.矩阵加、减(+,-)运算规则:
(1)相加、减的两矩阵必须有相同的行和列两矩阵对应元素相加减。
(2)允许参与运算的两矩阵之一是标量。
标量与矩阵的所有元素分别进行加减操作。
b.矩阵乘(,./,.\)运算规则:
A矩阵的列数必须等于B矩阵的行数
标量可与任何矩阵相乘。
c.矩阵乘方——a^n,a^p,p^a
a^p——a自乘p次幂,对于p的其它值,计算将涉及特征值和特征向量,如果p是矩阵,a是标量,a^p使用特征值和特征向量自乘到p次幂;如a,p都是矩阵,a^p则无意义。
d.多项式运算
matlab语言把多项式表达成一个行向量,该向量中的元素是按多项式降幂排列的。
f(x)=anxn+an-1xn-1+……+loa0
可用行向量p=[anan-1……a1+a0]表示;poly——产生特征多项式系数向量
e.代数方程组求解
matlab中有两种除运算左除和右除。
四、实验内容
1.输入下列向量(矩阵)
>>g=[1234];h=[4321];
2.分别执行以下数组点运算
>>s1=g+h,s2=g.*h,s3=g.^h,s4=g.^2,s5=2.^h
3.输入下列特殊矩阵
〉〉A=[]
〉〉A=eye(10)
〉〉A=ones(5,10)
>>A=rand(10,15)
>>A=randn(5,10)
>>A=zeros(5,10)
4.输入下列矩阵及矩阵函数
>>A=[20–1;132];B=[17–1;423;201];
>>M=A*B%矩阵A与B按矩阵运算相乘
>>det_B=det(B)%矩阵A的行列式
>>rank_A=rank(A)%矩阵A的秩
>>inv_B=inv(B)%矩阵B的逆矩阵
>>[V,D]=eig(B)%矩阵B的特征值矩阵V与特征向量构成的矩阵D
>>X=A/B%A/B=A*B-1,即XB=A,求X
>>Y=B\A%B\A=B-1*A,即BY=A,求Y
5.多项式运算
>>p=[120-56]%表示多项式
>>rr=roots(p)%求多项式p的根
>>pp=poly(rr)%由根的列向量求多项式系数
>>s=[00123]%表示多项式
>>c=conv(p,s)%多项式乘积
>>d=polyder(p)%多项式微分
>>x=-1:
0.1:
2;
>>y=polyval(p,x)%计算多项式的值
6.有理多项式:
>>n=conv([10],[13])%定义分子多项式
>>d=conv([11],[113])%定义分母多项式
>>[r,p,k]=residue(n,d)%进行部分分式展开
>>p1=[1-p
(1)],p2=[1-p2]%定义两个极点多项式p1(s)=s-p
(1),p2(s)=s-p
(2)
>>den=conv(p1,p2)%求分母多项式den=p1(s)*p2(s)
>>num=conv(r1,p2)+conv(r2,p1)%求分子多项式
〉〉[num,den]=residue(r,p,k)%根据r,p,k的值求有理多项式
7.函数插值运算
(1)线形样条插值
〉〉x=0:
10
>>y=sin(x)
>>x0=[3.44.76.58.2]
>>y0=interp1(x,y,x0)%线形插值
>>x1=0:
0.1:
10
>>y1=sin(x1)
>>plot(x1,y1,'r:
',x,y,'b*',x0,y0,'g.')%插值比较
(2)三次样条插值
〉〉x=0:
10
>>y=sin(x)
>>x0=[3.44.76.58.2]
>>y0=interp1(x,y,x0,‘spline’)%线形插值
>>x1=0:
0.1:
10
>>y1=sin(x1)
>>plot(x1,y1,'r:
',x,y,'b*',x0,y0,'g.')%插值比较
五、实验要求
利用所学知识,完成上述1至7项实验内容,并将实验结果写在实验报告上。
六、实验思考题
1.矩阵建立与有哪几种方法?
2.矩阵的加、减、乘、除运算规则什么?
实验三MATLAB符号运算实验
(验证型实验)
一、实验目的
l.了解Matlab的符号数据类型及符号运算工具箱。
2.运用符号数据类型求导数、积分和级数。
3.掌握代数方程和常微分方程的符号求解。
二、实验仪器与软件
1.PC机1台
2.MATLAB7.0环境
三、实验原理
1.符号变量与符号表达式
f='sin(x)+5x';f—符号变量名sin(x)+5x—符号表达式;''——符号标识;符号表达式一定要用''单引号括起来matlab才能识别;''的内容可以是符号表达式,也可以是符号方程。
例:
f1='ax^2+bx+c'——二次三项式
f2='ax^2+bx+c=0'——方程
f3='Dy+y^2=1'——微分方程
符号表达式或符号方程可以赋给符号变量,以后调用方便;也可以不赋给符号变量直接参与运算
2.符号矩阵的创建
a.数值矩阵A=[1,2;3,4]
A=[a,b;c,d]——不识别
b.用matlab函数sym创建矩阵(symbolic的缩写)
命令格式:
A=sym('[]');符号矩阵内容同数值矩阵;需用sym指令定义;需用''标识。
3.符号矩阵运算
数值运算中,所有矩阵运算操作指令都比较直观、简单。
例如:
a=b+c;a=a*b;A=2*a^2+3*a-5等。
而符号运算就不同了,所有涉及符号运算的操作都有专用函数来进行,符号矩阵运算的函数:
symadd(a,d)——符号矩阵的加
symsub(a,b)——符号矩阵的减
symmul(a,b)——符号矩阵的乘
symdiv(a,b)——符号矩阵的除
sympow(a,b)——符号矩阵的幂运算
symsize——求符号矩阵维数
charploy——特征多项式
determ——符号矩阵行列式的值
eigensys——特征值和特征向量
inverse——逆矩阵
transpose——矩阵的转置
jordan——约当标准型
simple——符号矩阵简化
……
四、实验内容
1.符号表达式运算
>>f='2*x-5'%定义符号表达式f
>>g='x^2-x+7'%定义符号表达式g
>>y=symadd(f,g)%求f+g
>>y=symsub(g,f)%求g-f
>>y=symdiv(g,f)%求g/f
>>y=sympow(g,f)%求
〉〉x=3
>>z=eval(y)%求y的值
2.微分和积分
>>f=sym('sin(w*t+pi/3)')%定义函数
>>f1=diff(f,'t')%对时间t的导数
>>f2='cos(2*x)+s^2'
>>int(f2,'s','m','n')%对s求从m到n的定积分
>>f3=taylor(f,'t',4)%在t=0邻域展开泰勒级数的前4项
3.符号表达式画图
>>y='2*x^2-3*x+10'
>>ezplot(y)%自动选择自变量范围绘图
>>ezplot(y,[-10,10])%确定自变量范围绘图
4.符号表达式简化
>>f=sym('cos(x)/(sin(3*x))^2-5^x')
>>pretty(f)%有理分式显示符号表达式
>>f=sym('(x^2-1)*(x-2)')%
>>f1=collect(f)%合并同类项
>>horner(f1)%化成嵌套形式多项式
>>factor(f)%将表达式分解成因式
>>expand(f)%展开表达式成降幂排列形式
>>y=sym('sin(x)^2-2*x+cos(x)^2')
>>simplify(y)%将表达式简化
5.可变精度算术运算
>>pi%已知
的值
>>digits%当前运算缺省位数
>>vpa('pi')%用缺省精度显示
>>vpa('pi',15)%用20位精度显示
6.符号方程求解
(1)解代数方程
>>solve('a*x^2+b*x+c')
>>solve('a*x^2+b*x+c','b')
>>solve('a*x^2=c+b')
>>solve('a*x^2=c+b','b')
(2)解代数方程组
>>f1='x+y+z=2*b'
>>f2='2*x+y+2*z=2*b'
>>f3='2*x+2*y+z=5*b'
>>[xx,yy,zz]=solve(f1,f2,f3,'x,y,z')
(3)解微分方程
>>dsolve('Dy=1+y^2')%求一阶微分方程的通解
>>dsolve('Dy=1+y^2','y(0)=1')%给定初始条件,求特解,缺省变量t
>>dsolve('Dy=1+y^2','y(0)=1','x')%对变量x求特解
>>dsolve('D2y=cos(t)-y','Dy(0)=0','y(0)=1')%解二阶微分方程
(4)解微分方程组
>>[x,y]=dsolve('Dx=3*x+4*y','Dy=-4*x+3*y')%求通解
>>[x,y]=dsolve('Dx=3*x+4*y','Dy=-4*x+3*y','x(0)=0,y(0)=1')
%给定初始条件,求特解
7.符号矩阵和运算
>>y=sym('[cos(t),sin(t);-sin(t),cos(t)]')%定义符号矩阵y
>>yt=transpose(y)%求转置矩阵
>>yy=symmul(y,yt)%计算y*yt
>>simplify(yy)%简化yy
>>inv(y)%求逆矩阵
>>det(y)%计算符号矩阵行列式
>>poly(y)%求解矩阵的特征多项式
五、实验要求
利用所学知识,完成上述1至7项实验内容,并将实验结果写在实验报告上。
六、实验思考题
1.什么是符号变量和符号表达式?
2.符号矩阵和数值矩阵的创建有何异同?
实验四MATLAB图形绘制实验
(验证型实验)
一、实验目的
l.通过图形可以从一堆杂乱的数据中观察数据间的内在关系,感受由图形所传递的内在本质。
本实验主要练习并掌握二维曲线绘图的基本操作。
2.进一步熟悉M文件调试过程。
3.熟悉图形交互指令的使用。
二、实验仪器与软件
1.PC机1台
2.MATLAB7.0环境
三、实验原理
1.二维曲面绘图
plot——最基本的二维图形指令:
plot命令自动打开一个图形窗口Figure,用直线连接相邻两数据点来绘制图形;根据图形坐标大小自动缩扩坐标轴,将数据标尺及单位标注自动加到两个坐标轴上,可自定坐标轴,可把x,y轴用对数坐标表示
a.plot(x)——缺省自变量绘图格式,x为向量,以x元素值为纵坐标,以相应元素下标为横坐标绘图
b.plot(x,y)——基本格式,以y(x)的函数关系作出直角坐标图,如果y为n×m的矩阵,则以x为自变量,作出m条曲线
c.plot(x1,y1,x2,y2)——多条曲线绘图格式
2.三维曲面绘图
plot3——基本的三维图形指令,其调用格式:
plot3(x,y,z)——x,y,z是长度相同的向量
plot3(X,Y,Z)——X,Y,Z是维数相同的矩阵
plot3(x,y,z,s)——带开关量
plot3(x1,y1,z1,'s1',x2,y2,z2,'s2',…)
四、实验内容
1.连续函数的可视化——用图形表示连续调制波形y=sin(t)sin(9t)。
编写m文件并执行,代码如下:
t1=(0:
11)/11*pi;
y1=sin(t1).*sin(9*t1);
t2=(0:
100)/100*pi;
y2=sin(t2).*sin(9*t2);
subplot(2,2,1),plot(t1,y1,'r.'),axis([0,pi,-1,1]),title('子图
(1)')
subplot(2,2,2),plot(t2,y2,'r.'),axis([0,pi,-1,1]),title('子图
(2)')
subplot(2,2,3),plot(t1,y1,t1,y1,'r.')
axis([0,pi,-1,1]),title('子图(3)')
subplot(2,2,4),plot(t2,y2)
axis([0,pi,-1,1]),title('子图(4)')
2.用图形表示连续调制波形y=sin(t)sin(9t)及其包络线。
编写m文件并执行,代码如下:
t=(0:
pi/100:
pi)';
y1=sin(t)*[1,-1];
y2=sin(t).*sin(9*t);
t3=pi*(0:
9)/9;
y3=sin(t3).*sin(9*t3);plot(t,y1,'r:
',t,y2,'b',t3,y3,'bo')
axis([0,pi,-1,1])
3.采用模型
画一组椭圆。
编写m文件并执行,代码如下:
th=[0:
pi/50:
2*pi]';
a=[0.5:
.5:
4.5];
X=cos(th)*a;
Y=sin(th)*sqrt(25-a.^2);
plot(X,Y)
axis('equal')
xlabel('x'),ylabel('y')
title('AsetofEllipses')
4.显示三维网格曲面
编写m文件并执行,代码如下:
x=-10:
0.5:
10
y=-8:
0.5:
8
[X,Y]=meshgrid(x,y)
Z=sin(sqrt(X.^2+Y