pzmap(G+G) produces incorrect plot

조회 수: 1 (최근 30일)
Geraint Bevan
Geraint Bevan 2019년 12월 3일
댓글: Star Strider 2019년 12월 3일
Given a system with 2 zeros and 5 poles:
s = tf('s')
G = 8.75*(4*s^2+0.4*s+1)/((s/0.01+1)*(s^2+0.24*s+1)*(s^2/100+2*0.02*s/10+1))
pzmap(G+G) produces a pole zero map in which all the poles are cancelled by zeros, which is clearly incorrect. It is also different to the result of pzmap(2*G), which would be expected to be the same.
Can anyone explain this behaviour?

채택된 답변

Star Strider
Star Strider 2019년 12월 3일
The ‘+’ operator connects the two ‘G’ models in parallel. They do appear to have pole-zero cancellation as the result:
s = tf('s');
G = 8.75*(4*s^2+0.4*s+1)/((s/0.01+1)*(s^2+0.24*s+1)*(s^2/100+2*0.02*s/10+1))
GG = G+G
figure
pzmap(GG)
Calculating the minimum realisation solves the problem:
GGmr = minreal(GG)
figure
pzmap(GGmr)
  댓글 수: 2
Geraint Bevan
Geraint Bevan 2019년 12월 3일
Thank you - that explains it!
Star Strider
Star Strider 2019년 12월 3일
As always, my pleasure!
The ‘*’ operator would connect them in series.

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Stability Analysis에 대해 자세히 알아보기

제품

Community Treasure Hunt

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

Start Hunting!

Translated by