- #1
sodemus
- 29
- 0
I'm designing a lead-lag controller to control a robotics-arm (part of an excercise).
I have found diagrams showing the correlation between overshoot and phasemargin for a second order system but in my excercise I have a third-order system. Can I apply the the relations for a 2nd-order system or can I somehow divide the problem into parts and apply the knowledge of 2nd and 1st order systems? I have the following system:
1.9/(9*s^3+96.5s^2+40s)
with the following specifications:
Risetime < 1.72s
Overshoot < 5%
Control signal < 100
Stationary error <5% when unit ramp is reference signal.
I tried an approach with 2 lead-compensators in series to reduce N in
Flead=N(s+b)/(s+bN)
Flag=(s+a)/(s+a/M)
If you want to see it, my MATLAB code follows (A Proportional controller was tried first and used as a reference). Appearantly, the expected speed-increase isn't there at all either is any of the other improvements.
%%
%Problem 1 %(FrCoef=b, GearFact=n in the instructions)
J=4.5;Lm=2;Rm=21;FrCoef=1;Ktau=38;Km=0.5;GearFact=1/20;
s=tf('s');
G=GearFact*Ktau/(s*(s*Lm+Rm)*(J*s+FrCoef)+s*Km*Ktau);
G
%%
%Problem 2, risetime, loop-gain
Gc=feedback(G,1);
%Identification gives:
Q=1.9;P=9*s^3+96.5*s^2+40*s;
rlocus(Q/P);
%Kp=4.41 has relative damping of 1/sqrt(2) (Increasing Kp implies shorter rise-time). We end up at Kp=4.57.
figure
step(feedback(4.57*G,1),100);
%%
%Problem 3, Cross-over frequency, phasemargin och bandwidth.
[aaa Phasemargin ccc CrossoverFrequency]=margin(4.57*G);
Bandwidth=bandwidth(feedback(4.57*G,1),-3);
Phasemargin %64.34°
CrossoverFrequency %=0.1974
Bandwidth %=0.3129
%%
%Problem 4
bode(G)
%We calculate the phase at frequency=0.7896 (4 times faster system gives cross-overfrequency at 0.7896). Phase(0.7896)= -156°.
%5% Overshoot implies 64° phasemargin (from the infamous diagram for 2nd order systems) (från figur 5.16 sid 94 Glad &
%Ljung). Required increase in phasemargin is 64°-(180°-156°-11.3° (We preemtively consider the cominig lag-compensator))=51.3°. Uppdelat
%2 lead-compensators in series give 25.65°/compensator. Solving for N in
%arctan(0.5(sqrt(N)-1/sqrt(N))
%gives:
y=25.65; %y=required phase-increase for simplicity
N=1+2*tan(y)+sqrt((1+2*tan(y))^2-1);
N
%N=6.4812
%b is calculated in accordance with b="desired cross-over frequency"/sqrt(N)
b=0.7896/sqrt(N);
b
%We calculate K=1/(sqrt(N)*sqrt(N)*abs(G(i*"desired cross-over frequency"))
K=1/(sqrt(N)*abs(evalfr(G,0.7896*i)));
K
a=0.1.*0.7896
Flead=K*(N*((s+a)/(s+b*N)))^2;
M=2;
Flag=((s+a)/(s+(a/M)));
figure
bode(feedback(G*Flead*Flag,1));
figure
step((1/s)*feedback(G*Flead*Flag,1)) %We multiply the feedback function with 1/s so that matlab-function step gives the ramp-response (a ramp is an integrated step).
I have found diagrams showing the correlation between overshoot and phasemargin for a second order system but in my excercise I have a third-order system. Can I apply the the relations for a 2nd-order system or can I somehow divide the problem into parts and apply the knowledge of 2nd and 1st order systems? I have the following system:
1.9/(9*s^3+96.5s^2+40s)
with the following specifications:
Risetime < 1.72s
Overshoot < 5%
Control signal < 100
Stationary error <5% when unit ramp is reference signal.
I tried an approach with 2 lead-compensators in series to reduce N in
Flead=N(s+b)/(s+bN)
Flag=(s+a)/(s+a/M)
If you want to see it, my MATLAB code follows (A Proportional controller was tried first and used as a reference). Appearantly, the expected speed-increase isn't there at all either is any of the other improvements.
%%
%Problem 1 %(FrCoef=b, GearFact=n in the instructions)
J=4.5;Lm=2;Rm=21;FrCoef=1;Ktau=38;Km=0.5;GearFact=1/20;
s=tf('s');
G=GearFact*Ktau/(s*(s*Lm+Rm)*(J*s+FrCoef)+s*Km*Ktau);
G
%%
%Problem 2, risetime, loop-gain
Gc=feedback(G,1);
%Identification gives:
Q=1.9;P=9*s^3+96.5*s^2+40*s;
rlocus(Q/P);
%Kp=4.41 has relative damping of 1/sqrt(2) (Increasing Kp implies shorter rise-time). We end up at Kp=4.57.
figure
step(feedback(4.57*G,1),100);
%%
%Problem 3, Cross-over frequency, phasemargin och bandwidth.
[aaa Phasemargin ccc CrossoverFrequency]=margin(4.57*G);
Bandwidth=bandwidth(feedback(4.57*G,1),-3);
Phasemargin %64.34°
CrossoverFrequency %=0.1974
Bandwidth %=0.3129
%%
%Problem 4
bode(G)
%We calculate the phase at frequency=0.7896 (4 times faster system gives cross-overfrequency at 0.7896). Phase(0.7896)= -156°.
%5% Overshoot implies 64° phasemargin (from the infamous diagram for 2nd order systems) (från figur 5.16 sid 94 Glad &
%Ljung). Required increase in phasemargin is 64°-(180°-156°-11.3° (We preemtively consider the cominig lag-compensator))=51.3°. Uppdelat
%2 lead-compensators in series give 25.65°/compensator. Solving for N in
%arctan(0.5(sqrt(N)-1/sqrt(N))
%gives:
y=25.65; %y=required phase-increase for simplicity
N=1+2*tan(y)+sqrt((1+2*tan(y))^2-1);
N
%N=6.4812
%b is calculated in accordance with b="desired cross-over frequency"/sqrt(N)
b=0.7896/sqrt(N);
b
%We calculate K=1/(sqrt(N)*sqrt(N)*abs(G(i*"desired cross-over frequency"))
K=1/(sqrt(N)*abs(evalfr(G,0.7896*i)));
K
a=0.1.*0.7896
Flead=K*(N*((s+a)/(s+b*N)))^2;
M=2;
Flag=((s+a)/(s+(a/M)));
figure
bode(feedback(G*Flead*Flag,1));
figure
step((1/s)*feedback(G*Flead*Flag,1)) %We multiply the feedback function with 1/s so that matlab-function step gives the ramp-response (a ramp is an integrated step).