# Pole Zero Cancellation on a Root Locus

Question: ...design a controller in the feedforward path to minimise the effects of the two pairs of dominant poles. Use a pole-zero cancellation technique on a root locus diagram....

I have a 5th order system with 2 pairs of dominant poles, which I present below:

   Poles =

1.0e+02 *

-9.9990 + 0.0000i
-0.0004 + 0.0344i
-0.0004 - 0.0344i
-0.0002 + 0.0058i
-0.0002 - 0.0058i


Design specifications are <5% overshoot and <2s settling time. Using sisotool() on MATLAB the white region represents where I need my new poles to give desired specifications:

To compensate the system, I need to get rid, or perhaps more realistically minimize the effect, of the two complex poles. Then I need to re-shape my root locus.

This pair of dominant poles: des_poles = [-2.6+2.329j; -2.6-2.329j], give a closed loop response to get <5% overshoot and <2s settling time, and can also be seen to fit in the white area above.

I am stuck when it comes to cancelling out the complex pair of dominant poles. Should I add a complex zero, for example: 0.0004 - 0.0344i and 0.0002 + 0.0058i ? These don't seem to yield desired results.

Or should I only cancel out the poles which go unstable to the right hand side?

How can I cancel out the pair of dominant poles to add the poles which bring about a closed loop within desired specifications?

Any help is appreciated.

My thought process so far: - Outputs are still not making sense

I proceeded to add two pairs of complex zeros, to cancel out the complex dominant poles to end up with something like this:

I then add the pair of desired complex poles, and another pair of complex poels to the left to make the compensator realizable.

• You do not want to cancel out any poles. You want to move them. – TimWescott Jan 3 '19 at 22:08
• The question specifically states that I must use the pole zero cancellation technique to minimize the effects of the two pairs of dominant poles.. I know this is not ideal in the real world, but this is a design constraint. – rrz0 Jan 3 '19 at 22:17
• I would make a complex pair of zeros equal to the higher-frequency complex poles, then see if you can come up with a suitable system design with the remaining three poles in play. In reality I'd only do something like that if I knew the resonant poles could be trusted not to move much in frequency, and then I'd choose the trustiest, possibly after spending some time with the chief mechanical designer tied to a chair while I interrogated them about which pole pair I could trust the most. – TimWescott Jan 4 '19 at 0:23
• Placing zeros close to poles in an attempt to 'cancel' is not too clever. It's usually impossible to plonk a zero directly on top of a pole and expect both pole and zero to stay put. The result is a 'dipole' (a pole and zero in close proximity) that gives rise to a long-tail in the transient response. – Chu Jan 4 '19 at 1:28

• Thanks for the helpful suggestions, I will look into it further. Just to clarify, so if I have a complex pole at -0.0004 + 0.0344i should I add the zero exactly on top of it, also at -0.0004 + 0.0344i? The reason for my question is that I'm not sure how pz cancellation works for complex poles and can't find the required information online. – rrz0 Jan 4 '19 at 19:16
• Thanks for your insight. SISOtool and MATLAB responses are matching (same solver?),but the Simulink output is the one which is different. I dont get the chattering when changing the gain to 1.03 but do get a similar resposne when I move the complex pole from -200 +/- 1i to -10 +/- 1i. – rrz0 Jan 7 '19 at 22:33