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 Center および File ExchangeStability Analysis についてさらに検索

製品

Community Treasure Hunt

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

Start Hunting!

Translated by