I am working with Matlab to perform some control analysis on a system I'm working with. I have developed a model of the system in state space representation and have designed a feedback compensator to produce the closed loop response I want.
The method of selecting feedback gain K and estimator gain L using the Matlab place() function results in a system root locus which shows one pole and zero in the RHP in the same location. Ideally, these should be exactly the same leading to pole-zero cancellation however the step response of the system is still unstable.
Looking at the poles and zeros of the combined compensator-plant system, the poles and zeros of the closed loop response are:
Poles
1.0e+02 *
-2.5547 + 0.3423i
-2.5547 - 0.3423i
-0.0087 + 0.0000i
-0.0003 + 0.0000i
-0.0027 + 0.0000i
-2.8542 + 0.0000i
-2.2717 + 0.0000i
0.2108 + 0.0000i
-0.3119 + 0.3874i
-0.3119 - 0.3874i
-0.0200 + 0.0000i
-0.0300 + 0.0000i
-0.0400 + 0.0000i
-0.0500 + 0.0000i
-0.1200 + 0.0000i
-0.2000 + 0.0000i
-2.5500 + 0.0500i
-2.5500 - 0.0500i
-2.5500 + 0.0100i
-2.5500 - 0.0100i
Zeros
1.0e+02 *
-3.6118 + 0.0000i
-2.1330 + 0.0000i
-2.8542 + 0.0000i
-2.5547 + 0.3423i
-2.5547 - 0.3423i
-2.2717 + 0.0000i
-0.3119 + 0.3874i
-0.3119 - 0.3874i
0.2108 + 0.0000i
-0.0022 + 0.0067i
-0.0022 - 0.0067i
-0.0100 + 0.0000i
-0.0003 + 0.0000i
-0.0027 + 0.0000i
-0.0087 + 0.0000i
Looking specifically at the RHP values, there is a pole at 1e+02*(0.2108 + 0.0000i) as well as a zero. Since this is the only unstable pole, the step response should be stable but it isn't.
I'm guessing it has something to do with significant figures or improper system scaling but I'm not sure. Any thoughts as to why these pole-zeros aren't cancelling?