In this post we can see how to make root locus plots in python. This requires the setup from part 1.

The problem is from Dorf's modern control systems AP 10.1. A three-axis pick-and-place application requires the precise movement of a robotic arm in three-dimensional space. The overshoot for a step input should be less than 13%.

a) Let Gc(s) = K, and determine the gain K that satisfies the requirement. Determine the resulting settling time (with a 2% criterion). First we compute the Routh Hurwitz table to determine the valid

range of K.

The problem is from Dorf's modern control systems AP 10.1. A three-axis pick-and-place application requires the precise movement of a robotic arm in three-dimensional space. The overshoot for a step input should be less than 13%.

a) Let Gc(s) = K, and determine the gain K that satisfies the requirement. Determine the resulting settling time (with a 2% criterion). First we compute the Routh Hurwitz table to determine the valid

range of K.

**We see 0<K<20 so If we let K = 2, then the step response becomes:**

which shows the settling time is 8.68 seconds and overshoot is less than 13%.

b) Use a lead network and reduce the settling time to less than 3 seconds. Since we are dealing with time response parameters the root-locus method will be used.

The new controller is:which shows the settling time is 8.68 seconds and overshoot is less than 13%.

b) Use a lead network and reduce the settling time to less than 3 seconds. Since we are dealing with time response parameters the root-locus method will be used.

The new controller is:

the overshoot and settling time criteria lead to a damping ratio of 0.545 or more and the real part of the dominant poles must be to the left of -1.33 respectively.

If we choose our dominant poles to be at s1 = -2 +- 2j they fall in the correct region on the root locus and should get the desired response. The angle of the system L(s) at s1 is Ls 63.4o. So letting m=0,

∠Gc(s1) =180 - 63.4 = 116.6o

the controller must add this amount. If we pick our zero to be at ½ , then using the relationship:

∠( s1+ z ) -∠(s1+p) = 106.26o

we find p = 6.34 and K = 34.19. This leads to the step response of:

from which we can see the settling time has been reduced but not enough to meet the specifications. Let's move it closer to the system pole at -1.

Reiterating through the root locus design procedure,the overshoot and settling time criteria lead to a damping ratio of 0.545 or more and the real part of the dominant poles must be to the left of -1.33 respectively.

If we choose our dominant poles to be at s1 = -2 +- 2j they fall in the correct region on the root locus and should get the desired response. The angle of the system L(s) at s1 is Ls 63.4o. So letting m=0,

∠Gc(s1) =180 - 63.4 = 116.6o

the controller must add this amount. If we pick our zero to be at ½ , then using the relationship:

∠( s1+ z ) -∠(s1+p) = 106.26o

we find p = 6.34 and K = 34.19. This leads to the step response of:

from which we can see the settling time has been reduced but not enough to meet the specifications. Let's move it closer to the system pole at -1.

Reiterating through the root locus design procedure,

**if we move our zero out to z=¾ and recalculate p=5.86 and K=32.9, the response now is:****which shows another good improvement in the settling time but the zero still needs moved closer to the pole at -1.**

**def rootLocus(Ts,*args,**kwargs): num = Poly(Ts.as_numer_denom()[0],s).all_coeffs() den = Poly(Ts.as_numer_denom()[1],s).all_coeffs() tf = matlab.tf(map(float,num),map(float,den)) r,k = matlab.rlocus(tf,*args,**kwargs) plt.title("Root Locus") #plt.plot(k,r) plt.grid() plt.show()****Lastly let’s set our z=0.9, then p=5.63 and K=32.5. The root locus is computed using:****and the output is:****resulting in the final controller of:****who's step response is:****which shows the controller has reduced the overshoot and settling time to within the specifications (the settling time is less than 3 seconds).**
## Comments

## Post a Comment