1、一、 Matlab环节
在此次,我们通过两种方法对此问题进行研究。
分别为:实验法,即通过multism进行仿真
理论值法,通过理论方法进行计算,并用matlab进行仿真,同时进行验证。
以下即为理论值法。
以下分为三个步骤进行研究
(1) 研究校正前系统的bode图、阶跃响应
(2) 研究需要添加的矫正系统
(3) 研究校正后系统的bode图、阶跃响应
1、 未校正前的系统
(1)闭环传递函数
(2)伯德图
程序:bode(c1)
通过matlab求解相位裕量和幅值裕量。
程序:[Gw, Pw, Wcg, Wcp]=ma
2、rgin(c1)
通过理论计算:具体计算见理论【计算1】。
相位裕度为22.6度,幅值裕度为无穷大,可见与计算机的计算结果相同。
由此我们可以得出:
为满足题中所给要求,故需要串联一个超前校正装置。
(3)阶跃响应以及相关参数
程序:
t=0:0.1:40;
num1=[1];
den1=[1 0.4 0];
c1=tf(num1,den1);
G=feedback(c1,1)
C=dcgain(G)
[y,t]=step(G);
[Y,k]=max(y);
timetopeak=t(k)
percentovershoot=100*(Y-C
3、)/C
n=1;
while y(n)0.95)&(y(m)<1.05)
m=m-1;
end
ts=t(m)
plot(t,y)
step(G)
2、 添加超前校正系统
有公式可得,所需要的超前校正装置提供超前相角为34.4度。(其中补偿角7度)
进行理论值计算,见【计算2】
可得α=0.28,进而计算出ωc=1.81。
将所得数据代入得到校正系统的传递函数为:
校正系统的bode图:
程序:
num=[3.
4、57 3.57*0.95];
den=[1 3.42];
c=tf(num,den)
bode(c)
3、 校正后的系统
(1) 开环和闭环传递函数为
开环传递函数:
3.57 s + 3.391
------------------------
s^3 + 3.82 s^2 + 1.368 s
闭环传递函数:
(2)校正后系统的bode图以及相位裕量
程序:
num=[3.57 3.57*0.95];
den=conv([1 3.42],[1 0.4 0]);
c=tf(num,den);
[Gw, Pw, Wc
5、g, Wcp]=margin(c)
Matlab仿真求解此时的相位裕度和幅值裕度:
(3)校正后系统的阶跃响应、相关参数
程序:t=0:0.1:40;
num=[3.57 3.57*0.95];
den=conv([1 3.42],[1 0.4 0]);
c=tf(num,den);
G=feedback(c,1);
C=dcgain(G)
[y,t]=step(G);
[Y,k]=max(y);
timetopeak=t(k)
percentovershoot=100*(Y-C)/C
n=1;
while y(n)0.95)&(y(m)<1.05)
m=m-1;
end
ts=t(m)
plot(t,y)
step(G)
相关参数
为了方便比较将校正前后的bode图、阶跃响应放在一起
Bode图
蓝色为校正后的,绿色为校正前的。
阶跃响应
蓝色为校正后的系统阶跃响应,绿色为校正前的系统阶跃响应