Why do I obtain different resultant transfer functions when I perform arithmetic on TF objects with different but equivalent methods with Control System Toolbox 8.0.1 (R2007b)?

2 views (last 30 days)
I have a transfer function P of a certain stable process and another transfer function C of a control system.
Pnum = [(1.068e-4) (1.178e-4) (4.307e-5) (5.637e-5)]
Pden = [1 + (3.053) (3.355) (1.537) (0.2349)]
P = tf(Pnum,Pden,0.1)
Cnum = [150 -140]
Cden = [1 -1]
C = tf(Cnum,Cden,0.1)
The following two mathematical operations on these transfer functions are mathematically exactly the same:
T1 = (P*C) / (1 + P*C)
T2 = 1 - (1 / (1 + P*C))
However, the resulting transfer functions are completely different, and of completely different orders. When I check the magnitude response of these transfer functions, they are different at the lower frequencies. Why is this happening?

Accepted Answer

MathWorks Support Team
MathWorks Support Team on 7 Jul 2009
Although the two expressions T1 and T2 appear different when computed with two equivalent methods, the difference is only due to the presence of uncontrollable / unobservable states or identical pole-zero pairs which should be cancelled out. The function MINREAL in the Control System Toolbox does exactly this.
If you execute the following lines:
minreal(T1)
minreal(T2)
you will see that the minimal realizations of these two transfer functions are exactly the same. If you observe the magnitude plots of T1 or T2, differences will be seen. These differences can be attributed to numerical instabilities during computation. The correct way to observe the response of a transfer function is through the use of MINREAL.
ltiview(minreal(T1))
ltiview(minreal(T2))

More Answers (0)

Tags

No tags entered yet.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!