基于matlab控制工程实验指导书.docx
《基于matlab控制工程实验指导书.docx》由会员分享,可在线阅读,更多相关《基于matlab控制工程实验指导书.docx(21页珍藏版)》请在冰豆网上搜索。
基于matlab控制工程实验指导书
《机械控制工程基础》实验指导书
实验一典型环节模拟
一、实验目的
①了解、掌握计算机模拟典型环节的基本方法。
②熟悉各种典型环节的阶跃响应曲线。
③了解各种参数变化对典型环节动态特性的影响。
④了解计算机辅助分析和设计的特点与优点
二、实验要求
①通过计算机的仿真图形观测各种典型环节时域响应曲线。
②改变参数,观测参数变化时对典型环节时域响应的影响。
④对实验程序加上注释,写出实验报告。
三、实验内容
一般来讲,线性连续控制系统通常都是由一些典型环节构成的,这些典型环节有比例环节、积分环节、一阶微分环节、惯性环节、振荡环节、延迟环节等。
下面分别对其性能进行仿真(建议实验程序在M文件中用单步执行的方式执行程序,以便于分析):
1)比例环节
比例环节的传递函数为:
编程分析当k=1~10时,比例环节在时域的情况:
①当输人信号是单位阶跃信号时,比例环节的输出曲线(单位阶跃响应曲线)是什么形状呢?
实验程序如下:
fork=1:
1:
10
num=k;
den=1;
G=tf(num,den);
step(G);
holdon;
end
在M文件的窗口中,输入程序,录入程序完成后,保存该M文件,在弹出的“保存为”窗工中输人M文件名bl.m(也可以自己取文件名),选择存放该M文件的路径,就可以完成保存工作,然后单击“Tools”菜单中的“Run”,将在step图形窗口中显示出响应图形。
试分析系统的输出信号的特点。
2)积分环节
积分环节的传递函数为:
1当输人信号是单位阶跃信号时,积分环节的仿真程序如下:
num=1;
den=[1,0];
G=tf(num,den);
step(G)
执行程序,试分析系统的输出信号的特点。
若G(s)=k/s,编程分析当K=1~10时,在单位阶跃信号激励下,积分环节时域响应的情况。
3)一阶微分环节
一阶微分环节的传递函数为:
①当输入信号是单位阶跃信号时,一阶微分环节的输出在MATLAB的函数step()中是无法绘制的。
为了能够进行仿真,设置一个极点p,该极点|P|>>1/T,设极点P=-1000,T取值范围为:
1~10。
实验程序如下:
forT=1:
1:
10;
num=[T,1];
den=[0.0001,1];
G=tf(num,den);
Step(G);
Holson;
试分析一阶微分环节阶跃响应的特点以及T值的作用。
4)惯性环节
惯性环节的传递函数为:
①当输人信号是单位阶跃信号时,惯性环节的单位阶跃响应曲线是什么形状呢?
实验程序:
forT=1:
1:
10;
num=[1];
den=[T,1];
G=tf(num,den);
Step(G);
Holson;
end
分析惯性环节的时间常数T与响应到达稳态值时间之间的关系。
5)振荡环节
振荡环节的传递函数为:
①当输入信号是单位阶跃信号时,振荡环节的单位阶跃响应曲线是什么形状呢?
实验参考程序如下(其中,T=6,ξ=0.1,0.4,0.7)
forT=6;
forzeta=[0.1,0.4,0.7];
num=[1];
den=[T^2,2*T*zeta,1];
G=tf(num,den);
Step(G);
Holson;
End
end
分析阻尼系数ξ对单位阶跃响应的影响
实验二控制系统时域仿真和稳定性研究
凡是能用二阶微分方程描述的控制系统,都称为二阶控制系统。
典型二阶控制系统的闭环传递函数为:
当0<ξ<1时,二阶控制系统被称为欠阻尼系统;当ξ=1时,称为临界阻尼系统;当ξ>1时,称为过阻尼系统。
典型二阶控制系统的闭环传递函数有两个可选参数:
ξ和ωn,根据不同的ξ和ωn的参数值,对二阶控制系统时域仿真和稳定性进行研究。
一、实验目的
①熟悉二阶控制系统的阶跃响应曲线。
②理解ξ和ωn参数变化对系统动态特性的影响。
二、实验要求
①通过计算机的仿真图形观测二阶控制系统的时域响应曲线。
②改变ξ和ωn,观测参数变化时对典型环节时域响应的影响。
2对实验程序加上注释,写出实验报告。
三、实验内容
1)二阶控制系统时域响应和稳定性的仿真
在程序中,阻尼比ξ用变量zeta来表示。
当ωn=1,ξ=0.1,0.3,0.5,0.7,0.9,1.0,2.0时的单位阶跃响应实验程序:
ωn=1;
kos=[0.1:
0.2:
0.9,1.0,2.0]
forzeta=kos
num=ωn^2;
den=[1,2*zeta*ωn,ωn^2];
G=tf(num,den);
Step(G);
Holson;
end
title(‘stepresponse’)
应用impulse()函数,同样可以对二阶控制系统进行单位脉冲响应的仿真和分析。
绘制ωn=6,ξ=0.7时的单位脉冲响应曲线,比较这些曲线的特点
实验程序:
wn=6
zeta=0.7
figure
(1)
holdon
num=wn.^2
den=[1,2*zeta*wn,wn.^2]
impulse(num,den)
title(‘impulseresponse’)
2)二阶控制系统稳定性的仿真
对二阶系统
,
=6,绘制
分别为0.7,1.0,2.0情况下系统的零极点图,判定系统的稳定性,并比较极点的分布特征。
实验程序:
wn=6
zeta=[0.71.02.0]
num=[wn*wn]
fori=1:
3
figure(i)
den=[12*zeta(i)*wnwn*wn]
pzmap(numden)
grid
end
实验三、频域仿真分析
一、实验目的
①熟悉各种典型环节的频域响应的曲线
②学习采用MATLAB绘制和分析系统频率特性图
二、实验要求
①通过计算机的仿真图形观测各典型环节的频率特性曲线及系统的开环频率特性曲线
②对实验程序加上注释,写出实验报告。
三、实验内容
1)利用频域分析函数绘制各典型环节的频率特性图
Bode()绘制Bode图
Nyquist()绘制Nyquist图
2)已知控制系统的开环传递函数为
,绘制系统开环频率特性的极坐标图。
实验程序:
num=[2]
den=[110]
w=logspace(-1,2)
nyquist(num,den,w)
grid
3)已知控制系统的开环传递函数为
,用SIMULINK建模,利用模型文件绘制BODE图、NYQUIST图、脉冲响应、阶跃响应。
试建立模型文件和M文件
实验程序:
(1)SIMULINK窗口内构筑已知的开环系统模型,并以文件名“moxig”进行保存。
(2)建立M文件
[abcd]=Linmod(‘moxing’)
sys=ss(a,b,c,d)
sys=tf(sys)
figure,bode(sys)
figure,nyquist(sys)
figure,step(sys)
figure,impulse(sys)
实验四系统校正
一、实验目的
1理解系统校正的作用;
2掌握PID控制器的设计方法;
二、实验要求
①仔细检查系统硬件连接,调整控制参数直至获得较好的控制效果;
②认真完成实验并提交实验报告,分析理论结果与实际结果的差异。
三、实验内容
针对直线一级倒立摆,设计PID控制器,寻找合适的PID控制参数
1、
1.根据建模结果仔细计算并寻找合适的理论PID控制参数
2.进行仿真实验,通过调节PID参数仔细观察思考控制器参数对系统瞬态响应和稳态响应的影响,找出几组合适的控制器参数作为实际控制的参数。
3.通过调整参数可以控制摆杆坚直向上,此时可能需要用手轻轻扶一下摆杆,以免小车“撞墙”。
4.如果控制效果不理想,调整控制器参数,直至获得较好的控制效果。
附录
Matlab基础
关于MATLAB
MATLAB是Matrixlaboratory的缩写,是美国的MATHWORK公司开发的一种进行科学和工程计算的交互式程序语言。
1984年推出第一个商业版本,到现在已经到了6.1版本,功能日趋完善和强大。
主要适用于矩阵运算及控制和信息处理领域的分析设计。
另外还包括仿真、系统辨识、神经元网络、模糊控制等工具箱。
其中Simulink仿真工具箱可以利用图形界面和框图来编程和仿真。
运行MATLAB程序的流程
•MATLAB软件通常工作在交互状态下,当键入一条命令后,MATLAB系统立即执行该命令并在屏幕上显示结果;
•MATLAB系统也可以执行储存在文件中的命令序列。
这两种工作方式构成了系统的解释环境。
数字运算
MATLAB可以像计算器一样直接进行数学运算。
在MATLAB命令窗口内输入:
80*0.8+16*12.2
ans=
259.2000
帮助命令help
MATLAB提供了大量的函数和命令,如果想记住所有的函数及其调用格式几乎是不可能的。
在线帮助可以由help命令来获得。
在MATLAB的命令窗口直接键入help即可得到所有的帮助主题。
如果要对某一命令或函数进行查询,直接在help后跟上该命令或函数即可。
变量的命名规则
变量名对大小写敏感。
变量名的首字符必须是字母。
每个变更名最多可包含19个字符。
函数的命名规则与变量相同。
表达式
MTLAB对使用者键入的表达式进行翻译和计算,语句的形式通常为:
变量=表达式;
或简单地写作:
表达式;
其中分号是可选的,如果该语句的最后一个字符是分号,则在执行词句时不在屏幕上显示结果。
表达式是由运算符,函数以及变量名组成。
例如:
z=r*sin(x)
简单矩阵的输入
矩阵不需维数说明和类型定义,存储单元完全由计算机自动分配。
输入矩阵最简单的方法是输入矩阵的元素表,每个元素之间用空格或逗号隔开,用“;”号作为元素表中每一行的结束符,并用[]将元素表括起来。
例如,输入语句:
a=[123;456;789]
则结果为:
a=123
456
789
向量的产生
冒号是MATLAB中一个重要的字符。
语句:
x=1:
5
产生一个行向量,其元素为1至5的数,每个数较前一数字递增1。
即:
x=[12345],增量也可以是其它数。
如:
y=[0:
2:
10]
则y=[0,2,4,6,8,10]
矩阵操作
1、转置:
若a=[123;456]
b=a'
得b=
14
25
36
2、求逆(inverse)
使用函数inv(a),例如:
a=[120;25-1;410-1]
inv(a)
ans=
52-2
-2-11
0-21
3、矩阵的加、减、乘。
两个同维矩阵,才能进行加减运算
c=a+b;d=a-b;
a的列数等于b的行数,则e=a*b;
例如:
a=[1357],b=[2468]则
a.*b’
ans=
2123056
MATLAB程序的流程
MATLAB通常工作在交互状态下,当键入一条命令后,MATLAB系统立即执行该命令并在屏幕上显示结果;
MATLAB系统也可以执行储存在文件中的命令序列。
这两种工作方式构成了系统的解释环境。
当面对一个问题,用文本编辑器编辑好MATLAB程序后,保存为后缀为“.m”的文件(实质为MATLAB命令序列),执行时在命令窗口键入M文件名后回车或用菜单命令。
MATLAB程序的流程
MATLAB具有类似其它语言while,for循环语句,可以实现一条语句或一组语句的多次重复执行。
1、for循环
fori=1:
n,
forj=1:
n
a(i,j)=1/(i+j-1);
end
end
重复执行FOR和END之间的命令,可以嵌套。
2、while循环
while表达式
语句
end
例:
n=1;y=0;
whilen<=100
y=y+n;n=n+1;
end
得y=5050
3、if语句
ifx>0
x=x;
else
x=-x;
end
图形处理
MATLAB有强大图形处理功能,能处理二维、三维及图形对象或句柄图形。
二维图形处理常用命令有:
figure创建图形窗口
plot、fplot、ezplot基本的二维绘图命令
semilogx、semilogy、semilog,同plot,但此行的命令坐标轴是lnx,lny
xlabel、ylabel、title标注轴名称与图形标题
text、gtext、legend标注图形与图例的标注
helpgraph2d二维图形方面有命令
helpgraph3d三维图形方面有命令
helpspecgrah特殊图形方面有命令
假设有两个同长度的向量 x和y,则用plot(x,y)就可以自动绘制画出二维图来。
如果打开过图形窗口,则在最近打开的图形窗口上绘制此图,如果未打开窗口,则开一个新的窗口绘图。
〖例〗正弦曲线绘制:
t=0:
0.1:
2*pi; %生成横坐标向量,使其为0,0.1,0.2,...,6.2
y=sin(t);%计算正弦向量
plot(t,y)%绘制图形
这样立即可以得出二维图
控制系统工具箱
控制工具箱包含了进行控制系统分析与设计所必需的工具箱函数。
(1)模型建立
(2)模型变换
(3)模型简化(4)模型实现
(5)模型特性(6)方程求解
(7)时间响应(8)频率响应
(9)根轨迹(10)估计器/调节器设计
控制系统模型
1)状态空间
状态空间形式的系统方程写为:
在MATLAB中,这个系统简单的写为A、B、C、D四个矩阵的形式即可
Sys=ss(A,B,C,D)
2)传递函数
传递函数一般记为:
在MATLAB中,直接用分子/分母系数表示
Num=[b0,b1,b2…bm]den=[a0,a1,a2,….an]
sys=tf(num,den)
(3)零点增益模型(ZP)
在MATLAB中,用[z,p,k]矢量组表示
Sys=zpk(z,p,k)
模型之间的转换
控制系统的时域分析
Impulse脉冲响应
Step阶跃响应
Lsim任意输入模拟
控制系统频域分析
BodeBode图
NyquistNyquist图
Margain增益裕度和相位裕度
例:
figure,bode(sys1)画其Bode图
figure,nyquist(sys1)画Nyquist图
margin(sys1)求系统的幅值裕量与相位裕量
控制系统稳定性分析
在MATLAB中,可利用pzmap函数绘制系统的零极点图,从而确定系统的稳定性
调用格式:
Pzmap(num,den)
系统仿真工具箱SIMULINK
类似VB中在窗体上放置控件一样,SIMULINK用方框图的绘制代替了程序的编写。
SIMULINK主要完成两方面的工作
建立控制系统的模型
实现控制系统的仿真
SIMULINK启动
1.在MATLAB的命令窗口中键入SIMULINK,就打开了SIMULINK的模块库(如图);
2.在MATLAB命令窗口的file菜单中选择new命令的model,将打开一个新的空白窗口;
3.在MATLAB的工具栏中,按按钮,将打开一个新的空白窗口;
连接与建模
构成任何一个系统需要三步:
选定典型环节、相互联接和给定环节参数。