MATLAB实验.docx
《MATLAB实验.docx》由会员分享,可在线阅读,更多相关《MATLAB实验.docx(20页珍藏版)》请在冰点文库上搜索。
MATLAB实验
MATLAB实验
一、单位阶跃响应
已知系统框图如图1所示
U(s)Y(s)
图1系统框图
其中,
输入以下MATLAB命令,可得系统的单位阶跃响应曲线如图2所示。
num=[77];
den=[conv(conv([10],[13]),[145])];
g=tf(num,den);
gg=feedback(g,1,-1);
[y,t,x]=step(gg)
plot(t,y)
运行结果为:
图2系统的单位阶跃响应曲线
输入以下MATLAB语句可求此系统在阶跃函数作用下的给定稳态误差终值
。
ggg=tf(g.den{1},g.den{1}+g.num{1});%g.num{1},g.den{1}分别表示g对象的
num1=[10];分子分母部分
den1=1;
g1=tf(num1,den1);
gggg=ggg*g1;%求1/[G(s)+1]*s
num2=1;
den2=[10];
u=tf(num2,den2);%确定输入的拉氏变换
dcg=dcgain(gggg*u)
运行结果为:
dcg=
0
由上述结果知,系统在阶跃函数作用下的给定稳态误差终值
为零,所以此系统单位阶跃响应的稳态值为1,即
。
由图2可看出,系统的单位阶跃响应曲线单调变化,所以此时暂态性能指标只有上升时间
和调整时间
,无最大超调量
和峰值时间
。
输入以下MATLAB语句可求系统阶跃响应的上升时间
和调整时间
。
n=length(y);%确定输出向量y的长度
fori=1:
n,
ifabs(y(i)-0.9)<0.0001
t1=t(i)
elsei=i+1;
end
end
t2=[];
fori=1:
n,
ifabs(y(i)-1)<=0.02
t2=[t2t(i)];
end
i=i+1;
end
t3=t2
(1)
运行结果为:
t1=
4.7550
t3=
8.3450
由上述知,此系统阶跃响应的上升时间
为4.755s,调整时间
为8.3450s(误差带为
2%)。
二、二阶系统的单位脉冲响应
由于单位脉冲函数是单位阶跃函数的导函数,因此,作为线性定常系统,对二阶系统的单位阶跃响应求导即可得到不同
值下的二阶系统单位脉冲响应。
1)
>1,二阶系统的单位脉冲响应为
2)
=1,二阶系统的单位脉冲响应为
。
3)
,二阶系统的单位脉冲响应为
。
4)
,二阶系统的单位脉冲响应为
。
我们可以输入以下MATLAB语句得到二阶系统在以上不同阻尼比
取值下的单位脉冲响应曲线,设定阻尼比
的值分别为
,
,
,
,
,
;无阻尼自然振荡角频率
。
wn=1;
zetas=[00.10.4124];
t=0:
0.1:
18;
y=[];
fori=1:
length(zetas)
zeta=zetas(i);
ifzeta==0,y1=wn*sin(wn*t)
elseif(zeta>0&zeta<1)
wd=wn*sqrt(1-zeta^2);
y1=wn*exp(-zeta*wn*t).*sin(wd*t)/sqrt(1-zeta^2);
elseifzeta==1,y1=wn^2*t.*exp(-wn*t);
elseifzeta>1
s1=[-zeta+sqrt(zeta^2-1)]*wn;
s2=[-zeta-sqrt(zeta^2-1)]*wn;
y1=0.5*wn*(exp(s1*t)-exp(s2*t))/sqrt(zeta^2-1);
end
y=[y;y1];
end
plot(t,y)
gridon
text(0.5,0.04,'4')
text(0.85,0.18,'2')
text(1,0.3,'1')
text(1.15,0.5,'0.4')
text(1.25,0.75,'0.1')
text(2.2,0.9,'zeta=0')
title('二阶系统在不同阻尼比取值下的单位脉冲响应曲线','fontsize',8)
xlabel('t(sec)')
ylabel('y(t)')
得到的脉冲响应曲线如图3所示。
图3二阶系统在不同阻尼比取值下的单位脉冲响应
从图3中可看出,当系统处于临界阻尼和过阻尼状态时,其单位脉冲响应的值总是大于等于0;对于欠阻尼情况,二阶系统的单位脉冲响应是围绕零值衰减振荡的函数;而当系统为无阻尼状态时,其单位脉冲响应围绕零值等幅振荡。
三、根轨迹分析
根轨迹是一种求解闭环特征方程根的简便图解法,它是根据系统的开环传递函数极点、零点的分布和一些简单的规则,研究开环系统的某一参数从零到无穷大时,闭环系统极点在s平面上的轨迹。
利用根轨迹法能够分析结构和参数确定的系统的稳定性和系统的动态响应特性。
还可根据系统动态和稳态特性的要求确定可变参数,调整开环零极点的位置和数目。
因此在控制系统的分析和设计中,根轨迹是一种很实用的工程方法。
单位负反馈系统的开环传递函数为
试绘制根轨迹图,并求出与实轴的分离点、与虚轴的交点及对应的增益。
MATLAB程序如下:
num=1;
den=conv([10],conv([12.73],[122]));
rlocus(num,den);
[k,poles]=rlocfind(num,den)
利用rlocfind函数,在图形窗口中显示十字形光标,选择根轨迹与实轴的分离点,则相应的增益由变量k记录,与增益相关的所有的极点记录在变量ploes中;
Selectapointinthegraphicswindow
selected_point=
-2.0850-0.0151i
k=
2.9289
poles=
-2.0804
-2.0320
-0.3088+0.7730i
-0.3088-0.7730i
也可利用在图形窗口中显示手形光标,选择根轨迹与虚轴的交点,则直接显示出该点的增益和坐标,如图4所示。
图4系统的根轨迹图
四、Nyquist图及乃奎斯特判据
已知系统的开环传递函数为:
要求:
(1)绘制系统的Nyquist图,判断闭环系统的稳定性,求出系统的单位冲激响应,
(2)给系统增加一个开环极点p=2,求此时的Nyquist图,判断此时闭环系统的稳定性,并求系统的单位冲激响应。
(1)MATLAB程序如下:
k=26;
z=[];p=[-61];
[num,den]=zp2tf(z,p,k);
figure
(1);
nyquist(num,den);
[numc,denc]=cloop(num,den);
figure
(2);
impulse(numc,denc);
执行该程序后,可得到图5和图6的系统Nyquist图和相应的闭环系统的单位冲激响应。
从图5可以看出:
Nyquist逆时针包围(-1,j0)点一圈,而系统有一个开环极点均位于右半s平面,因此闭环系统稳定,这可从图6中的单位冲激响应证实。
图5系统Nyquist图
图6系统的单位冲激响应,
(2)系统增加一个开环极点p=2,则系统的开环传递函数为:
其MATLAB程序如下:
k=26;
z=[];p=[-612];
[num,den]=zp2tf(z,p,k);
figure
(1);
nyquist(num,den);
[numc,denc]=cloop(num,den);
figure
(2);
impulse(numc,denc,5);
执行该程序后,可得到图7和图8的系统Nyquist图和相应的闭环系统的单位冲激响应。
从图7可以看出:
Nyquist没有包围(-1,j0)点一圈,而系统有两个开环极点均位于右半s平面,因此闭环系统不稳定,这可从图8中的单位冲激响应证实。
图7系统Nyquist图
图8系统的单位冲激响应
五、Bode图
已知系统的开环传递函数为:
试绘制k=2和k=20时系统的Bode图,并求相应系统的增益裕量和相角裕量。
MATLAB程序如下:
num1=2;
den1=conv([10],conv([11],[0.21]));
num2=20;
figure
(1);
[mag1,phase1,w1]=bode(num1,den1);
margin(mag1,phase1,w1);
figure
(2);
[mag2,phase2,w2]=bode(num2,den1);
margin(mag2,phase2,w2);
执行后,可得到系统的Bode图,如图9和图10所示。
可以看出:
当k=2时,系统增益裕量约为10db,相角裕量为
,故闭环系统稳定;当k=20时,系统增益裕量约为-10db,相角裕量为
,故相应的闭环系统不稳定。
图9k=2时系统的Bode图
图10k=20时系统的Bode图
六、超前校正
已知原系统的开环传递函数为
,要求:
(1)
(1) 绘制原系统的Bode图,标出相角裕度及幅值裕度。
(2)
(2) 现引入超前校正装置
,绘制校正后系统的Bode图,并与原系统的Bode图进行比较。
(3)(3) 绘制校正前后的阶跃响应曲线并进行比较。
程序如下:
%超前补偿前后比较
G0=tf(100,[0.04,1,0]);
[Gm0,Pm0,Wcg0,Wcp0]=margin(G0)
Gc=tf([0.0262,1],[0.0106,1]);
G=Gc*G0;
[Gm,Pm,Wcg,Wcp]=margin(G)
bode(G0,G)
T0=feedback(G0,1);
T=feedback(G,1);
figure
step(T0,T)
运行结果:
Gm0=Inf
Pm0=28.0243
Wcg0=Inf
Wcp0=46.9701
Gm=Inf
Pm=47.5917
Wcg=Inf
Wcp=60.3251
a)
b)
图11校正前后的Bode图和阶跃响应图
a)校正前后的Bode图b)校正前后的阶跃响应
从图11a中可见,校正前相角裕度
,剪切频率
,幅值裕度为无穷大。
引入超前校正装置
校正后,相角裕度增加到
,而剪切频率增加到
,从而展宽了频带,增加了相角裕度,提高了系统的快速性。
从图11b的阶跃响应曲线中也证明了超前校正不但减小了系统的超调量,而且提高了系统的快速性。
七、滞后校正
已知原系统开环传递函数
,要求稳态误差
,剪切频率
,相角裕度
,试用MATLAB语句编制滞后校正装置的设计程序,绘制校正前后的Bode图和阶跃响应曲线。
程序如下:
%用解析法设计滞后校正环节
%所需静态误差<5%
%幅值交角频率wcg=2rad/s
%相位裕度pm=40°
num=10;
den=[150];
G0=tf(num,den);
wcg=2;
pm=35;
dPm=pm+5;
kc=10;
[mag,phase,w]=bode(G0*kc);
magdb=20*log10(mag);
Gr=-spline(w',magdb(1,:
),wcg);
alpha=10^(Gr/20);
T=10/(alpha*wcg);
Gc=tf([alpha*T1],[T1])
F0=feedback(G0*kc,1);
F=feedback(G0*Gc*kc,1);
figure
(1);
bode(G0*kc,G0*kc*Gc);
figure
(2);
step(F0,F);
%运行结果:
校正环节的传递函数
Transferfunction:
校正后
图12校正前后的Bode图和阶跃响应曲线
图中显示了未校正系统和已校正系统的Bode图和阶跃响应曲线,滞后校正环节的传递函数
,校正前相角裕度为
,校正后相角裕度为
。
从阶跃响应曲线看出,滞后校正使系统响应速度变慢,但平稳性得到改善,超调变小,振荡次数减少。
八、超前滞后校正
已知原系统开环传递函数
试设计超前滞后校正装置
,满足下列性能指标:
速度误差系数
,相角裕度
,幅值裕度
要求:
1.用
语句绘制校正前后系统的
图和校正后的阶跃响应。
(见图13)
2.用SIMULINK进行系统仿真,绘制仿真结构图。
(见图14)
程序如下:
%绘制超前滞后校正的频率特性
G0=tf(10,conv([10],conv([11],[0.51])));
Gc1=tf([1.431],[0.1431]);
Gc2=tf([7.141],[71.41]);
G=Gc1*Gc2*G0;
figure
(1)
bode(G0,G)
T0=feedback(G0,1);
T=feedback(G,1);
figure
(2)
step(T)
图13校正前后的
图和校正后的阶跃响应
从
图中可求得未校正系统的相角裕度为
,而幅值裕度
(
),因此系统是不稳定的。
现采用滞后超前校正。
为了保持足够的响应速度,取校正后的剪切频率
,(距离校正前的剪切频率不至于太远),求得滞后校正部分为
;超前校正部分为
,于是得滞后超前校正装置的传递函数为
校正后系统的
图和阶跃响应曲线表明系统具有良好的动态特性,比原来系统有了明显的改善。
用SIMULINK仿真如图14所示。
图7-12系统仿真图