控制工程MATLAB实验报告.docx
《控制工程MATLAB实验报告.docx》由会员分享,可在线阅读,更多相关《控制工程MATLAB实验报告.docx(16页珍藏版)》请在冰豆网上搜索。
控制工程MATLAB实验报告
控制工程MATLAB实验报告
浙江科技学院
机电系统开放性实验
设计题目:
MATLAB控制机电系统实分析
专业:
机械设计制造及其自动化
班级:
机制122
学生姓名:
王朝旭
指导老师:
高俊
2014年05月30日
实验一MATLAB语言基本命令
1实验目的
1.掌握科学计算的有关方法,熟悉MATLAB语言及其在科学计算中的运用;
2.掌握MATLAB的命令运行方式和M文件运行方式;
3.掌握矩阵在MATLAB中的运用。
2实验器材
计算机WinXP、Matlab7.0软件
3实验内容
(1).输入A=[715;256;315],B=[111;222;333],
在命令窗口中执行下列表达式,掌握其含义:
A(2,3)A(:
2)A(3,:
)A(:
1:
2:
3)
A(:
3).*B(:
2)A(:
3)*B(2,:
)A*BA.*B
A^2A.^2B/AB./A
(2).输入C=1:
2:
20,则C(i)表示什么?
其中i=1,2,3,…,10;
(3).查找已创建变量的信息,删除无用的变量;
(4).试用help命令理解下面程序各指令的含义:
clear
t=0:
0.001:
2*pi;
subplot(2,2,1);
polar(t,1+cos(t))
subplot(2,2,2);
plot(cos(t).^3,sin(t).^3)
subplot(2,2,3);
polar(t,abs(sin(t).*cos(t)))
subplot(2,2,4);
polar(t,(cos(2*t)).^0.5)
4实验步骤:
打开MATLAB程序,将实验内容中的题目依次输入MATLAB中,运行得到并记录结果,最后再对所得结果进行验证。
5实验报告内容
(1)>>A=[715;256;315]
A=
715
256
315
>>B=[111;222;333]
B=
111
222
333
>>A(2,3)“取矩阵A中第二行第三列的元素”
ans=
6
>>A(:
2)“取矩阵A中第二列的元素”
ans=
1
5
1
>>A(3,:
)“取矩阵A中第三行的元素”
ans=
315
>>A(:
1:
2:
3)“使矩阵的第一列到第二列,第二例到第三列,构成新的2*3的矩阵”
ans=
75
26
35
>>A(:
3).*B(:
2)“取矩阵A的三列和B的第二列,对应元素一次相乘”
ans=
5
12
15
>>A(:
3)*B(2,:
)“取矩阵A的三列和B的第二行,对应元素进行叉乘”
ans=
101010
121212
101010
>>A*B“矩阵进行叉乘”
ans=
242424
303030
202020
>>A.*B“两矩阵对应元素相乘”
ans=
715
41012
9315
>>A^2“矩阵A叉乘上矩阵A”
ans=
661766
423370
381346
>>A.^2“举证A中的元素翻倍”
ans=
49125
42536
9125
>>B/A“矩阵B除以矩阵A”
ans=
0.18420.2105-0.2368
0.36840.4211-0.4737
0.55260.6316-0.7105
>>B./A“两矩阵对应元素相除”
ans=
0.14291.00000.2000
1.00000.40000.3333
1.00003.00000.6000
(2)>>C=1:
2:
20
C=
135791113151719
C(i)表示奇数2*i-1
(3)查找已创建变量的信息,删除无用的变量
clear“清除”
t=0:
0.001:
2*pi;“定义时间向量”
subplot(2,2,1);“定义多块图画的绘图位置”
polar(t,1+cos(t))“绘制函数图像”
subplot(2,2,2);
plot(cos(t).^3,sin(t).^3)
subplot(2,2,3);
polar(t,abs(sin(t).*cos(t)))
subplot(2,2,4);
(4)
polar(t,(cos(2*t)).^0.5)
实验二MATLAB控制系统工具箱使用
1实验目的
(1)了解Matlab控制系统工具箱中常用函数.
(2)掌握模型转换方法以及奈氏图、伯德图的绘制。
(3)掌握系统脉冲、阶跃等响应的仿真方法
2实验器材
计算机Win7、Matlab7.0软件
3实验内容
(1)利用residue函数求取传递函数的部分分式展开式
(2)利用tf函数构建系统传递函数
(3)利用impulse、step、lsim等函数仿真系统的单位脉冲、阶跃、速度响应。
(4)画出单位负反馈的开环传递函数的在频率0.01-100rad/s间的伯德图
(5)画出系统的乃奎斯特图
4实验步骤及内容
(1)写出传递函数
的部分展开式
a.列些分子num、分母den的系数
b.利用residue(num,den)求出零极点和余项
实验运行结果:
r=[1.00002.5000-3.00000.5000]p=[-4.000-3.0000-2.000-1.0000]k=1
(2)对于系统
A.首先利用conv函数展开分母,获得各阶系数,此时num=[1421];
den=conv(conv(conv([100],[31]),conv([12],[12])),[5038])
b.再利用tf函数构建传递函数
运行结果:
G(S)=
(3)a.用tf(num,den)函数构建高阶系统传递函数
b.构建时间向量t
c用函数impulse及step仿真系统的单位脉冲响应、单位阶跃响应
d.用lism函数仿真系统速度响应
e.程序调试成功后实验结果:
Aimpulse单位脉冲信号实验结果
Bstep单位阶跃信号仿真结果
Clism函数仿真系统速度响应
(4)绘制单位负反馈的开环传递函数
的伯德图。
a.写出num,den
b.用logspace函数设定频率范围
c利用bode函数输入幅值增益、相位
d.把增益值转换为分贝值
e.添加网格线,并生成二行一列的图表
f.用semilogx在两个图标中分别生成幅值频率和相频特性曲线。
g.用margin函数获取开环的幅值裕量和相位裕量。
h.程序调试后写入实验报告
margin函数获取开环的幅值裕量和相位裕量。
Gm=InfPm=126.0768wcg=NaNwcp=7.2725
实验三MATLAB数字控制器设计初步
1实验目的
(1)掌握离散信号z变换和z逆变换的matlab方法
(2)掌握离散系统的系统函数零极点分布与系统频率特性的matlab实现方法
(3)掌握matlab计算差分方程的方法。
2实验器材
计算机Win7、Matlab7.0软件
3实验内容
(1)找到matlab的符号运算工具箱提供的z变换函数ztrans与反变换函数iztrans,通过help理解其用法,并掌握符号表达式的构建和应用。
F=ztrans(f)%求符号函数f的z变换,返回函数的自变量为z;
F=ztrans(f,w)%求符号函数f的z变换,返回函数的自变量为w;
F=ztrans(f,k,w)%对自变量为k的符号函数f求z变换,返回函数的自变量为w。
f=iztrans(F)%对自变量为z的符号函数F求逆z变换,返回函数的自变量为n;
f=iztrans(F,k)%对自变量为z的符号函数F求逆z变换,返回函数的自变量为k;
f=iztrans(F,w,k)%对自变量为w的符号函数F求逆z变换,返回函数的自变量为k。
4实验步骤及实验内容
(1).已知序列
,求其z变换。
解:
在命令窗口中输入如下命令,即可完成f(k)的z变换
>>symsk
>>f=sym('2^(-k)');%定义序列
>>F=ztrans(f)%求z变换
F=
z/(z-1/2)
(2)已知一离散系统的系统函数
,求其冲激响应h(k)。
解:
运行如下M文件,
symskz
H=sym('z/(z^2+3*z+2)');
h=iztrans(H,k)%求逆z变换
h=
(-1)^k-(-2)^k
(3)MATLAB的zplane函数用于系统函数的零极点图的绘制,调用方式为:
zplane(b,a)其中,b、a分别为系统函数分子、分母多项式的系数向量
例.已知一离散系统的系统函数
,试绘制其零极点图。
解:
在MATLAB的命令窗口中输入如下命令,即可得到其零极点图(图7-1)。
>>a=[132];
>>b=[1-0.70.1];
>>zplane(b,a)%绘制其零极点图
(4)若描述离散系统的差分方程为
,已知激励
,初始状态y(-1)=1,y(-2)=0,求系统的零输入响应,零状态响应。
【解】将差分方程两边取z变化的
,进整理,得
,前一部分为零输入响应,后一部分为零状态响应。
将y(-1)=1,y(-2)=0代入第一部分,则零输入响应的表达式为
,因此经过z的逆变化得,
同理,则零状态激励响应响应的表达式为
,
如果直接利用iztrans函数进行编程求解如下
clc
symsz
y=0.5*(1/z-1)/(1+1/2*z-1/2*z^2)
y=iztrans(y)
结果:
1/2*charfcn[1](n)-3/4*charfcn[0](n)+1/12*2^n+2/3*(-1)^n
(5)已知
,通过部分分式展开法求F(z)。
F=sym('(s+2)/(s*(s+1)^2*(s+3))');%传递函数F(s)进行符号定义
[numF,denF]=numden(F);%提取分子分母
pnumF=sym2poly(numF);%将分子转化为一般多项式
pdenF=sym2poly(denF);%将分母转化为一般多项式
[R,P,K]=residue(pnumF,pdenF)%部分分式展开
对应部分分式分解结果为:
实验四控制系统数学模型的MATLAB实现
(用MATLAB展开及合并部分分式)
1实验目的
(1)掌握matlab展开部分分式的方法
2实验器材
计算机Win7、Matlab7.0软件
3实验步骤及实验内容
(1)用matlab展开部分分式
用num和den分别表示G(s)的分子和分母多项式,即
MATLAB提供函数reside用于实现部分分式展开,其句法为
[r,p,k]=reside(num,den)其中,r,p分别为展开后的留数及极点构成的列向量;k为余项多项式行向量。
若无重极点,MATLAB展开后的一般形式为:
若存在q个重极点p(j),则展开式将包括下列各式:
4实验步骤及实验内容
(1)求下式的部分分式展开
解:
>>num=[111395226];
>>den=[110355024];
>>[r,p,k]=residue(num,den)
r=
1.0000
2.5000
-3.0000
0.5000
p=
-4.0000
-3.0000
-2.0000
-1.0000
k=
1
所以展开式为:
函数residue也可用于将部分分式合并,其句法为
[num,den]=residue(r,p,k)
>>r=[1234]';p=[-1-2-3-4]';k=0
k=
0
>>[num,den]=residue(r,p,k)
num=
107015096
den=
110355024
所以合并式为:
实验报告总结:
通过本次实验,培养了一定的动手能力以及一定的交流能力和团队精神,具备了对本专业、本行业等方面的大系统的理解、掌控能力。
初步掌握机械设计制造、计算机与电子科学、电气与自动控制、网络与信息检索、传感与检测等基础知识和技术,具有机械工程产品与系统的设计和应用能力。
通过本开放实验,初步掌握MATLAB仿真应用软件的建模,仿真方法与过程。
同时也通过本次实验,了解了自身的不足,还需要多多学习。