pzmap(G+G) produces incorrect plot

3 views (last 30 days)
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?

Accepted Answer

Star Strider
Star Strider on 3 Dec 2019
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 Comments
Geraint Bevan
Geraint Bevan on 3 Dec 2019
Thank you - that explains it!
Star Strider
Star Strider on 3 Dec 2019
As always, my pleasure!
The ‘*’ operator would connect them in series.

Sign in to comment.

More Answers (0)

Products

Community Treasure Hunt

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

Start Hunting!