By closing the loop, I need to design a controller in the feedforward path to minimise the effects of the two pairs of dominant poles of the 5th order transfer function. Use a pole-zero cancellation technique on a root locus diagram and if need be introduce an integrator to eliminate the steady state error. Proceed to determine a suitable gain K that satisfies the following design specifications:
Less than 5% overshoot Less than 2s settling time Steady State Error Minimized
From the above performance requirements, I calculated where the closed loop poles should be:
desired_poles = [-2.6 + 1i*2.39, -2.6 - 1i*2.39, -100, -120, -110];
My 5th order system is defined as follows:
num = [0.0001 10]; den = [0.005 5 0.66 61 2.1 10]; tf = tf(num, den) [A, B, C, D] = tf2ss(num, den); e = eig(A) sisotool(tf); step(tf);
e = 1.0e+02 * -9.9990 + 0.0000i -0.0004 + 0.0347i -0.0004 - 0.0347i -0.0002 + 0.0041i -0.0002 - 0.0041i
and the step response is :
sisotool() I get a different step response:
and zoomed in with design requirements inputted/ I am unable to come up with any form of compensator which does not result in the two rightmost poels going unstable:
For example, if I add a lead compensator with a real zero at -2 and a real pole at -5 I get a reshaped root locus which passes through the desired area. However, the two furthest right poles will immediately go unstable as soon as I start moving the other poles around.
I am now trying to determine which compensator is needed to achieve the desired results.
- Going through MATLAB official docs, the process seems to involve trial and error inside the
How can I design a compensator to give me the above poles which yield desired results?
Any help is appreciated.