1、二阶系统的单位阶跃响应分析:当时,绘制系统的单位阶跃响应曲线,从图像上读出此时系统响应的峰值、超调量、上升时间和调整时间。另外我们还可以用阶跃响应函数step( )获得系统输出量,若将输出量返回到变量y中,可以调用如下格式[y,t]=step(G),该函数还同时返回了自动生成的时间变量t,对返回的这一对变量y和t的值进行计算,可以得到时域性能指标。例如求峰值可以用如下命令实现[Y,k]=max(y); peaktime=t(k)试用此种方法编程求出系统响应的峰值、超调量、上升时间和调整时间。
Wn=1;
z=0.7;
b=Wn^2;
a=[1,2*z*Wn,Wn^2];
sys=tf(b,a);
step(sys);
axis([0,10,0,1.5]);
[y,t]=step(sys);
[Y,k]=max(y);
peaktime=t(k);
yss=1; %稳态为1
%在t轴上只有139个时间点
%遍历139个时间点求第一个达到稳态值的时间
for k=1:139
if y(k)<=yss & y(k+1)>=yss
tr=t(k+1);
break;
end
end
%从139个位置的时间点向前遍历求从后往前第一个到稳态值的时间
for i=139:-1:1
if y(i)>=1.005*yss | y(i)<=0.995*yss %界定阈值
ts=t(i);
break;
end
end
(1) 第一个步骤就是作出图后直接利用游标在图中读出需要的数据即可。
这里用游标简单读了峰值作为示范,其余的跑跑上面代码就可以读出来啦。
(2) 第二个步骤是通过一定的算法得到需要的量,晦涩难懂的点大概是这个139的数值,由于MATLAB绘图是逐点绘制的,在step()函数返回的t值中我们可以看到其中t是由139个连续点构成,为此t向量中只有139个元素捏。通过更改界定的阈值可以跑出不同精度的结果,可以跑跑看哈。
最后也是可以跑出上升时间为3.2894秒、调节时间为6.9735秒。
2、,要求:确定系统具有最大超调量时的根轨迹增益。
b=[1,3];
a=[1,2,0];
sys=tf(b,a);
rlocus(sys);
对于这个要求而言其实是比较容易实现的,根据二阶系统中超调量与阻尼比是一个反比关系,为此在阻尼比最小的时候超调量应该是最大的,而阻尼比在复平面上通过极点与连线夹角的正弦值反映出来,在作出根轨迹图后利用夹角最小(由于sinx在x∈(0,pi/2)上单调递增)找出要求的位置并标出即可读到具有最大超调量时的根轨迹增益。
实际上该点与原点连线和这个类似椭圆的根轨迹应该是一个“相切”的关系,感兴趣的uu也可以尝试编程求出该点并判断其与原点连线是否同根轨迹相切,这是可以完善的点。
3、若单位负反馈系统开环系统传递函数为,绘制该开环传递函数的Nyquist图,并叠印等幅值圆,用Nyquist判据判断闭环系统的稳定性,绘制闭环系统的单位阶跃响应。
b=[100,1000,2500];
a=conv([1,1],[1,1,9]);
sys=tf(b,a);
nyquist(sys);
figure;
theta =0:0.01:pi;
r = 5;
x = r*cos(theta);
y = r*sin(theta);
plot(y,x,'r--');
hold on;
pzmap(sys);
axis([-10,5,-5,5]);
H=tf(1);
T=feedback(sys,H);
t=0:0.01:0.5;
[y,t] = step(T,t);
figure;
plot(t, y);
(1) 第一个步骤是绘制系统的奈奎斯特图并根据奈奎斯特判据判断系统是否稳定,为此只要作出图后用理论判断即可。
由奈奎斯特判据第一说明可知:(-1,0)始终在奈奎斯特曲线的左侧,可知该闭环系统是稳定的;由Z=N+P同理可知,绕(-1,0)旋转的圈数N为0,在复平面右侧的开环极点数P为0,即Z=0可知该闭环系统是稳定的。(当然了奈奎斯特判据还有别的形式,就不重复了)
(2) 第二个步骤就是简单用一下step()函数作一下系统的单位阶跃响应的事。
4、单位反馈系统的开环传递函数为,试确定串联校正装置的特性,使系统满足在斜坡函数作用下系统的稳态误差小于0.1,相角裕度大于等于45°。
(1) 第一个步骤是在给定稳定误差条件中确定K值:
(2) 第二个步骤是绘制出当前系统的bode图进而判断应该选用哪种校正。
由原系统伯德图知道此时相角裕度为-162°-(-180°)=18°<45°。
考虑串联超前校正:(由原系统伯德图知系统的稳定裕量较大,可考虑超前校正)
bias=5; %校正装置最大相位的偏差量
b=10;
a=[1,1,0];
sys=tf(b,a);
bode(sys);
%原系统伯德图
[Gm,Pm,wg,wc]=margin(sys);
%计算a
Pm_hope=45; %期望的相角裕度
PmM=Pm_hope-Pm+bias;
a=(1+sin(deg2rad(PmM)))/(1-sin(deg2rad(PmM)));
%计算T
temp=-10*log10(a);
[mag,phase,w]=bode(sys);
mag_db=20*log10(mag);
wc=spline(mag_db(:),w(:),temp);
T=1/(sqrt(a)*wc);
% 设计串联超前校正器
b=[a*T,1];
a=[T,1];
Gc=tf(b,a);
% 串联超前校正控制器后的系统
Gc_sys=Gc*sys;
% 绘制校正器和开环系统各自的伯德图
figure;
bode(Gc);
hold on;
bode(sys);
legend('Gc', 'sys');
% 绘制串联超前校正控制器后的伯德图
figure;
bode(Gc_sys);
[Gm_new,Pm_new,wg_0_new,wc_0_new]=margin(Gc_sys);
上述代码步骤说明如下:
- 利用margin()函数求出原系统的截止频率wc以及相位裕度Pm
- 给超前校正传递函数指定补偿的相角PmM,其中给定偏差量bia∈[5,11]
- 计算a以及T
- 作超前校正的传递函数与原系统的伯德图在同一平面内观察
- 作串联了超前校正控制器后系统的伯德图观察(将4的二者叠加即可)
由串联了超前校正控制器的系统伯德图可知此时相位裕量大于45°满足要求。
由超前校正控制器的伯德图可知在提高了32.2°相位裕量的同时幅值裕量仅仅降低了5.18dB,即仍满足幅值裕量的稳定要求。
END