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)?

조회 수: 3 (최근 30일)
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?

채택된 답변

MathWorks Support Team
MathWorks Support Team 2009년 7월 7일
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))

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 State-Space Control Design and Estimation에 대해 자세히 알아보기

태그

아직 태그를 입력하지 않았습니다.

Community Treasure Hunt

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

Start Hunting!

Translated by