机械控制工程基础实验指导书机械设计by Ling Zhang.docx
- 文档编号:5428493
- 上传时间:2022-12-16
- 格式:DOCX
- 页数:25
- 大小:387.48KB
机械控制工程基础实验指导书机械设计by Ling Zhang.docx
《机械控制工程基础实验指导书机械设计by Ling Zhang.docx》由会员分享,可在线阅读,更多相关《机械控制工程基础实验指导书机械设计by Ling Zhang.docx(25页珍藏版)》请在冰豆网上搜索。
机械控制工程基础实验指导书机械设计byLingZhang
前实验一Matlab运算基础
一、实验目的
1.熟悉MATLAB的工作环境和各窗口功能;
2.熟悉基本的MATLAB环境命令操作。
二、实验基本知识
1.熟悉MATLAB环境:
MATLAB桌面和命令窗口、命令历史窗口、帮助信息浏览器、工作空间浏览器
文件和搜索路径浏览器。
2.掌握MATLAB常用命令
clc:
清除命令窗口中内容
clear:
清除工作空间中变量
help:
对所选函数的功能、调用格式及相关函数给出说明
3.MATLAB变量与运算符
变量命名规则如下:
(1)变量名可以由英语字母、数字和下划线组成;
(2)变量名应以英文字母开头;
(3)长度不大于31个;
(4)区分大小写。
MATLAB中设置了一些特殊的变量与常量,列于下表。
表1MATLAB的特殊变量与常量
变量名
功能说明
变量名
功能说明
ANS
默认变量名,以应答最近一次操作运算结果
realmin
最小的正实数
i或j
虚数单位
INF(inf)
无穷大
pi
圆周率
NAN(nan)
不定值(0/0)
eps
浮点数的相对误差
nargin
函数实际输入参数个数
realmax
最大的正实数
nargout
函数实际输出参数个数
MATLAB运算符,通过下面几个表来说明MATLAB的各种常用运算符。
表2MATLAB算术运算符
操作符
功能说明
操作符
功能说明
+
加
\
矩阵左除
-
减
.\
数组左除
*
矩阵乘
/
矩阵右除
.*
数组乘
./
数组右除
^
矩阵乘方
'
矩阵转置
.^
数组乘方
.'
数组转置
表3MATLAB关系运算符
操作符
功能说明
==
等于
~=
不等于
>
大于
<
小于
>=
大于等于
<=
小于等于
表4MATLAB逻辑运算符
逻辑运算符
逻辑运算
说明
&
And
逻辑与
|
Or
逻辑或
~
Not
逻辑非
Xor
逻辑异或
表5MATLAB特殊运算
符号
功能说明示例
符号
功能说明示例
:
1:
1:
4;1:
2:
11
.
;
分隔行
..
,
分隔列
…
()
%
注释
[]
构成向量、矩阵
!
调用操作系统命令
{}
构成单元数组
=
用于赋值
4.多项式运算
poly:
产生特征多项式系数向量
例如poly([12])表示特征根为1和2的特征多项式的系数向量,结果为ans=1-32
roots:
求多项式的根
例如roots([1304])求特征方程s^3+3s^2+4=0的根,结果为
ans=
-3.3553
0.1777+1.0773i
0.1777-1.0773i
p=poly2str(c,‘x’)(以习惯方式显示多项式)
例如p=poly2str([13],'x')以x为变量表示多项式,结果为p=x+3
conv,convs:
多项式乘运算
deconv:
多项式除运算
tf:
构造一个传递函数
三、实验内容
1.学习使用help命令,例如在命令窗口输入helpconv,然后根据帮助说明,学习使用指令conv(其它不会用的指令,依照此方法类推)
2.学习使用clc、clear,观察commandwindow、commandhistory和workspace等窗口的变化结果。
3.初步程序的编写练习,新建M-file,保存(自己设定文件名,例如exerc1、exerc2、exerc3……),学习使用MATLAB的基本运算符、数组寻访指令、标准数组生成函数和数组操作函数。
注意:
每一次M-file的修改后,都要存盘。
实验二典型线性环节的模拟
一、实验目的
1.通过实验熟悉matlab的simulink仿真环境。
2.研究分析参数变化对典型环节动态特性的影响。
二、实验原理框图
1.惯性比例环节
上图可观察输入输出两条曲线该图只能观察输出曲线
图1
注:
将图中的输入信号模块step模块更换为Ramp模块既可观察斜坡响应曲线。
2.二阶环节仿真,如图2所示:
图2
3.积分环节仿真,如图3所示:
图3
4.比例积分环节仿真,如图4所示:
图4
5.比例+微分环节仿真,如图5所示:
图5
6.比例+积分+微分环节仿真,如图6所示:
图6
三、思考题
1.惯性环节在什么情况下可近似比例环节?
而在什么情况下可近似为积分环节?
2.惯性环节与不振荡的二阶环节的阶跃响应曲线有何不同?
四、实验报告要求
完成上述各项实验内容,并记录实验遇到的问题和实验结果。
实验三二阶系统的阶跃响应
一、实验目的
1.学习二阶系统阶跃响应曲线的实验测试方法;
2.研究二阶系统的两个重要参数wn、ksi对阶跃响应指标的影响;
3.学习系统时域性能的分析方法。
二、实验内容
1.Matlab控制系统工具箱提供了两种典型输入的系统响应函数
(1)step()——单位阶跃响应函数
y=step(num,den,t)
其中:
num和den分别为系统传递函数描述中的分子和分母多项式系数,t为选定的仿真时间向量,一般可由t=0:
step:
end等步长地产生。
该函数返回值y为系统在仿真中所得输出组成的矩阵。
[y,x,t]=step(num,den)
时间向量t由系统模型特性自动生成,状态变量x返回为空矩阵。
如果对具体响应值不感兴趣,只想绘制系统的阶跃响应曲线,可以以如下格式进行函数调用:
step(num,den)
step(num,den,t)
线性系统的稳态值可以通过函数dcgain()来求得,其调用格式为:
dc=dcgain(num,den)dc=dcgain(a,b,c,d)
(2)impulse()——单位冲激响应函数
求取脉冲激励响应的调用方法与step()函数基本一致。
y=impulse(num,den,t)
[y,x,t]=impulse(num,den)
impulse(num,den)
impulse(num,den,t)
2.仿真分析应用
(1)输入信号为单位阶跃信号、单位斜坡信号、单位加速度信号时的响应
a.系统的闭环传递函数为:
,分析其单位阶跃响应曲线。
程序代码如下:
clear;
num=[1];
den=[1,0.4,1];
t=[0:
0.1:
10];
G=tf(num,den)%系统传递函数
y=step(G,t);%单位阶跃响应
plot(t,y);
grid;
xlabel('Time[sec]t');
ylabel('y');
结果
G=
1
---------------
s^2+0.4s+1
Continuous-timetransferfunction.
其单位阶跃响应曲线如图1所示。
图1单位阶跃响应曲线
b.系统的闭环传递函数为:
,分析其单位斜坡响应曲线。
程序代码如下:
clear;
num=[1];
den=[1,0.3,1];
t=[0:
0.1:
10];
u=t;%单位斜坡输入
G=tf(num,den)%系统传递函数
y=lsim(G,u,t);%单位斜坡响应
plot(t,y);
grid;
xlabel('Time[sec]t');
ylabel('y');
其单位斜坡响应曲线如图2所示。
图2单位斜坡响应曲线
c.系统的闭环传递函数为:
,分析其单位加速度斜坡响应曲线。
程序代码如下:
clear;
num=[1];
den=[1,0.3,1];
t=[0:
0.1:
10];
u=1/2.*t.*t;%单位加速度输入
G=tf(num,den)%系统传递函数
y=lsim(G,u,t);%单位加速度响应
plot(t,y);
grid;
xlabel('Time[sec]t');
ylabel('y');
其单位加速度斜坡响应曲线如图3所示。
图3单位加速度斜坡响应曲线
d.单位负反馈的开环传递函数为
,系统输入单位斜坡信号时的响应曲线及其输入输出信号对比。
代码如下:
clear;
numg=[1,2];
deng=[1,10,1];
sys=tf(numg,deng)%单位负反馈系统的开环传递函数
G=feedback(sys,1)%系统传递函数
v1=[0:
0.1:
1];
v2=[0.9:
-0.1:
-1];
v3=[-0.9:
0.1:
0];
t=[0:
0.1:
4];
u=[v1,v2,v3];%输入信号
y=lsim(G,u,t);%输出信号
plot(t,y,t,u);
xlabel('Time[sec]t');
ylabel('theta[rad]');
grid;
结果如图4所示。
图4输入输出信号曲线
(2)时域响应分析
a.典型二阶系统的开环传函为
,单位负反馈,
,绘制
取0,0.2,0.4,0.6,0.9,1.2,1.5时闭环系统的单位阶跃响应。
代码如下:
clear;
wn=1;%无阻尼自然频率
sigma=[0,0.2,0.4,0.6,0.9,1.2,1.5];%阻尼比,不同取值
num=wn*wn;
t=linspace(0,20,200);
forj=1:
7
den=conv([1,0],[1,2*wn*sigma(j)]);
sys=tf(num,den)%单位负反馈系统的开环传递函数
G=feedback(sys,1)%系统传递函数
y(:
j)=step(G,t);%单位阶跃响应
step(G,t);
end
plot(t,y(:
1:
7));
grid;
gtext('sigma=0');
gtext('sigma=0.2');
gtext('sigma=0.4');
gtext('sigma=0.6');
gtext('sigma=0.9');
gtext('sigma=1.2');
gtext('sigma=1.5');
结果如图5所示
图5不同阻尼比时的单位阶跃响应曲线
对一般的二阶系统,形式变化后可用
表示,其中K为回路增益,通常可调,T为时间常数,由受控对象特性决定,一般不可调。
分析K和T对系统单位阶跃响应的影响
b.系统开环传递函数
,其中
,绘制K取0.1,0.2,0.5,0.6,0.8,1.0,2.4时闭环系统的单位阶跃响应。
代码如下:
clear;
T=1;
K=[0.1,0.2,0.5,0.8,1.0,2.4];
t=linspace(0,20,200);
num=1;
den=conv([1,0],[T,1]);
forj=1:
6
sys=tf(num*K(j),den);%单位负反馈系统的开环传递函数
G=feedback(sys,1);%系统传递函数
y(:
j)=step(G,t);%单位阶跃响应
end
plot(t,y(:
1:
6));
grid;
gtext('K=0.1');
gtext('K=0.2');
gtext('K=0.5');
gtext('K=0.8');
gtext('K=1.0');
gtext('K=2.4');
图6不同回路增益时的单位阶跃响应曲线
c.高阶系统分析——主导极点构成的系统与原系统的单位阶跃响应
已知高阶系统的传递函数为
,考虑主导极点及偶极子后系统近似的传递函数为
K=147.3;
t=0:
0.1:
10;
num0=K*[1,1.5];
den00=[1,2,5];
den01=[1,10,26];
den02=[1,1.7];
G0=tf(num0,conv(den00,conv(den01,den02)));%高阶系统的传递函数
y0=step(G0,t);%单位阶跃响应
num1=5;
G1=tf(num1,den00);%考虑主导极点及偶极子后系统近似的传递函数
y1=step(G1,t);%单位阶跃响应
plot(t,y0,'b',t,y1,'g');
grid;
gtext('originalsystemresponse');
gtext('predominatepolesmodifiedsystemresponse');
三、思考与实验报告要求
1.思考:
二阶系统结构参数ksi、wn对其单位阶跃响应的性能有何影响。
2.线性系统稳定性分析。
3.记录实验结果及实验中遇到的问题。
实验四控制系统的根轨迹分析法
一、实验目的
根轨迹法根据用于研究系统结构参数(如开环增益)改变对系统闭环极点分布的影响,从而进行系统性能分析。
根轨迹分布:
左右分布决定终值(稳定性),虚实分布决定振型,远近决定响应快慢。
通过实验熟悉matlab中与根轨迹分析相关的函数,借助这些函数对控制系统进行根轨迹分析,观察系统的零极点分布,根据根轨迹判断系统的稳定性,寻找特定闭环极点。
二、实验内容
1.常用Matlab控制系统工具箱提供的根轨迹分析函数
(1)pzmap()——绘制零极点函数
①调用格式:
pzmap(sys)
pzmap(sys1,sys2,………)
[p,z]=pzmap(sys)
②使用说明:
pzmap(sys)函数可绘制线性定常系统的零极点图,对于SISO系统而言就是绘制传递函数的零极点。
pzmap(sys1,sys2,……….)函数可在同一复平面绘制不同系统的零极点图,为区别起见可用不同颜色表示,如pzmap(sys1,’r’,sys2,’b’………)。
[p,z]=pzmap(sys),返回零极点数据,不绘制零极点图。
(2)绘制根轨迹的函数rlocus()
①调用格式
rlocus(sys)
rlocus(sys,k)
rlocus(sys1,sys2,………)
[r,k]=rlocus(sys)或r=rlocus(sys,k)
②使用说明
rlocus计算并绘制SISO系统的根轨迹。
适用于连续时间系统和离散时间系统。
rlocus(sys,k)绘制增益为k时的闭环极点。
rlocus(sys1,sys2,………)在同一个复平面中画出多个SISO系统的根轨迹,为区分系统的根轨迹也可以用不同颜色来区别,如:
rlocus(sys1,’r’,sys2,’b:
’,sys3,’gx’)。
[r,k]=rlocus(sys)或r=rlocus(sys,k)返回增益为k时复根位置的矩阵R,R有length(k)行,其第j行列出的是增益K(j)时的闭环根。
(3)计算给定一组根的根轨迹增益的函数rlocfind()
①调用格式
[k,poles]=rlocfind(sys)
[k,poles]=rlocfind(sys,p)
②使用说明
rlocfind()函数可计算出与根轨迹上极点对应的根轨迹增益。
适用于连续时间系统和离散时间系统。
[k,poles]=rlocfind(sys)执行后,在根轨迹图形窗口显示十字形光标,当用户在根轨迹上选择一点时,其相应的增益由k记录,与增益相关的所有极点记录于poles中。
[k,poles]=rlocfind(sys,p)函数可对指定根计算对应的增益与根矢量。
(4)在连续系统根轨迹图上加等阻尼线和等自然振荡线的函数sgrid
①调用格式
sgrid
sgrid(z,wn)
②使用说明
sgrid()函数命令可在连续系统的根轨迹或零极点图上绘制出栅格线,栅格线由等阻尼系数与自然振荡角频率构成。
阻尼线间隔为0.1,范围从0到1,自然振荡角频率的间隔为1rad/s,范围从1到10。
绘制栅格线之前,当前窗口必须有连续时间系统的根轨迹或零极点图,或者该函数必须与函数pzmap()或rlocus()一起使用。
sgrid(z,wn)函数可以指定阻尼系数z与自然振荡角频率wn。
2.仿真分析应用(一般根轨迹程序仿真)
(1)系统的传递函数为
,作出零极点图。
程序如下:
num=[2.515];
den=conv([1,2,3],[1,5]);
sys=tf(num,den);%绘制零极点图
pzmap(sys);%输出零极点
[p,z]=pzmap(sys);
title('零极点图');
结果如图1所示。
图1零极点图
(2)单位负反馈系统的开环传递函数为
,绘制闭环根轨迹。
程序代码如下:
num=[1];
den=conv([1,1],conv([0.5,1],[4,1]));
sys=tf(num,den);
%绘制根轨迹图
rlocus(sys);
[p,z]=pzmap(sys);
title('根轨迹图');
结果如图2所示。
图2闭环根轨迹
(3)已知某单位负反馈系统开环传递函数为
,绘制闭环根轨迹并在根轨迹上任选一点计算该点增益K机所有极点的位置。
代码如下:
num=[1,5];
den=conv([1,1],conv([1,3],[1,12]));
sys=tf(num,den);
%绘制根轨迹图
rlocus(sys);
[k,poles]=rlocfind(sys);
%计算用户所选定点处的增益和其他闭环极点
title('根轨迹图');
结果如图3所示。
图3闭环根轨迹
(4)系统的闭环传递函数为
,做出系统带栅格线的根轨迹图。
程序代码如下:
num=[2,5,1];
den=[1,2,3];
sys=tf(num,den)
%绘制根轨迹图
rlocus(sys)
%添加栅格线
sgrid
title('带栅格线的根轨迹图')
结果如图4所示。
图4带栅格线的根轨迹图
三、思考与实验报告要求
1、如何在matlab中寻找特定的阻尼比下K值和全部闭环特征根。
2、设定一高阶不稳定系统,分析如何让系统稳定并画出稳定系统的根轨迹。
3、记录实验中遇到的问题。
实验五控制系统的频域分析法
一、实验目的
1.学习matlab中与频域分析相关的函数的应用。
2.根据绘制的频率特性分析系统性能。
二、实验内容
1.Matlab控制系统工具箱提供的频域法分析函数
(1)nyquist()——极坐标图
①调用格式:
nyquist(num,den)
②使用说明:
nyquist(num,den)绘制以连续时间多项式传递函数表示的系统极坐标图。
当不带返回参数时,直接在屏幕上绘制出系统的极坐标图(w从负无穷到正无穷)。
当代输出变量[re,im,w]引用函数时,可得到系统频率特性函数的实部re、虚部im以及角频率点w矢量(为正部分);可用plot(re,im)绘制出w从负无穷到零变化对应部分。
(2)Bode()——对数坐标图
①调用格式:
bode(num,den)bode(num,den,w)
②使用说明:
bode(num,den)绘制以连续时间多项式传递函数表示的系统极bode图。
当代输出变量[mag,pha,w]或[mag,pha]引用函数时,可得到系统bode图相应的mga、相角pha与角频率点w矢量,或只是返回幅值与相角。
相角以度为单位,幅值可转换为分贝单位:
mag(dB)=20log10(mag)。
2.仿真分析应用
(1)绘制Nyquist图
已知一个典型的一阶环节传递函数为
。
仿真程序如下:
clear;
num=5;
den=[3,1];
G=tf(num,den);
nyquist(G)
grid;
结果如图1所示。
图1Nyquist图
(2)绘制bode图
已知一个典型的二阶环节传递函数为
,绘制自然频率为0.7、不同阻尼比时的bode图。
程序代码如下:
w=[0,logspace(-2,2,200)];
wn=0.7;
tou=[0.1,0.4,1.0,1.6,2.0];
forj=1:
5
sys=tf([wn*wn],[12*tou(j)*wn,wn*wn]);
bode(sys,w);
holdon;
end
gtext('tou=0.1');
gtext('tou=0.4');
gtext('tou=1.0');
gtext('tou=1.6');
gtext('tou=2.0');
结果如图2所示。
图2不同阻尼比时的bode图
已知二阶系统的传递函数为
,matlab绘制bode图,并从图中直接得出谐振峰值和谐振频率。
代码如下:
num=[3.6];
den=[1,3,5];
G=tf(num,den);
bode(G);
在bode图上右键菜单选择“peakResponse”菜单项。
出现一个原点即谐振频率处,如图3所示。
图3bode图
(3)稳定性分析
已知一高阶系统的传递函数为
,计算系统的相角稳定裕度和幅值稳定裕度,绘制bode图。
代码如下:
num=5*[0.0167,1];
den=conv(conv([1,0],[0.03,1]),conv([0.0025,1],[0.001,1]));
G=tf(num,den);
w=logspace(0,4,50);
bode(G,w);
grid;
[Gm,Pm,Wcg,Wcp]=margin(G);
程序执行结果:
Gm=455.2548Pm=85.2751
Wcg=602.4232Wcp=4.9620
结果如图4所示。
图4bode图
已知一高阶系统的传递函数为:
,计算当开环增益K=5,500,800,3000时系统稳定裕度的变化。
程序代码如下:
K=[5,500,800,3000];
forj=1:
4
num=K(j)*[0.0167,1];
den=conv(conv([1,0],[0.03,1]),conv([0.0025,1],[0.001,1]));
G=tf(num,den);
y(j)=allmargin(G);
end
y
(1)
y
(2)
y(3)
y(4)
ans=GMFrequency:
602.4232
GainMargin:
4.5525
PMFrequency:
237.7216
PhaseMargin:
39.7483
DMFrequency:
237.7216
DelayMargin:
0.0029
Stable:
1
ans=GMFrequency:
602.4232
GainMargin:
2.8453
PMFrequency:
329.9063
PhaseMargin:
27.7092
DMFrequency:
329.9063
DelayMargin:
0.0015
Stable:
1
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 机械控制工程基础实验指导书机械设计by Ling Zhang 机械 控制工程 基础 实验 指导书 机械设计 by