PZMAP IS NOT ACCURATE

11 views (last 30 days)
JINGHANG LU
JINGHANG LU on 4 Apr 2018
Commented: Birdman on 5 Apr 2018
Dear all
I found a bug of matlab. when I use the matlab function "pzmap" to draw the poles and zeros, these poles should be located on the unit circle, however, in the matlab, they are located outside of the unit circle. Please have a look at the code below: the poles should be:p1=exp(-jwg*Ts), p2=exp(jwg*Ts). However, when we use "pzmap" to draw it, it is outside of the unit circle. Does anyone know how to solve it?
%%the matlab function is as follows: %% Ts=1e-4; wg=2*pi*50; z=tf('z'); Gc=(z^2-1)/(z^2-2*z*cos(wg*Ts)+1); pzmap(Gc); %%

Answers (2)

Birdman
Birdman on 5 Apr 2018
Do not be bothered by that. You know that the magnitude of the pole should give you 1:
0.9995^2+0.0314^2=1
The reason it stands outside has something to do with your sampling time. If you check the Bode plot of the system, you will see that even sampling with 10kHz is not enough since the magnitude at that frequency is still high comparing to low frequencies. Therefore choose your sampling time as high as possible. The poles will stand closer to the unit circle, but will not be exactly on the unit circle. For instance increase the sampling time to 1e-8 and observe the Bode plot again.
bode(Gc)
Hope this helps.
  8 Comments
JINGHANG LU
JINGHANG LU on 5 Apr 2018
yes, it is 1, but it shows the wrong value of the poles with pzmap figure in Matlab. So it will misguide you when you analyze the system 's stability with pzmap function.
Birdman
Birdman on 5 Apr 2018
But conversion fron continuous to discrete always contains this kind of tradeoffs. Therefore my suggestion is to make analysis via Bode plots.

Sign in to comment.


JINGHANG LU
JINGHANG LU on 5 Apr 2018
In addition, see the pole's value from matlab. it is 1+0.0314i, and 1-0.0314i

Tags

Community Treasure Hunt

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

Start Hunting!