How to plot |z| in a pole-zero map of a discrete time system ?

9 次查看(过去 30 天)
Hi,
I am trying to plot a pole-zero map of a discrete time system. I have used pzmap(mysys) and zgrid(zeta,wn2) to create my plot, where zeta = 0.5038 and wn2 = 0.2906 and I get this plot (see "My_Plot). But I also want to plot | z | = exp(-zeta*wn*T) and make my graph look more like "Desired_Plot". Any help would be greatly appreciated.

回答(1 个)

Satwik
Satwik 2025-3-28,10:54
To enhance the pole-zero plot and include the contour '| z | = exp(-zeta*wn*T)', we can use the 'fimplicit' function. Here is a sample MATLAB script demonstrating its usage:
% Define your discrete-time system
mysys = zpk([], [0.5 + 0.5i, 0.5 - 0.5i], 1, 0.1); % Example system, replace with your system
% Define parameters
zeta = 0.5038;
wn2 = 0.2906;
T = 0.1; % Sampling time, replace with your system's sampling time
% Plot the pole-zero map
figure;
pzmap(mysys);
hold on;
% Add zgrid with specific zeta and wn2
zgrid(zeta, wn2);
% Plot the contour |z| = exp(-zeta*wn*T)
r = exp(-zeta * wn2 * T);
fimplicit(@(x,y) sqrt(x.^2 + y.^2) - r, [-1.5, 1.5, -1.5, 1.5], 'LineStyle', '--', 'Color', 'r');
% Enhance plot appearance
title('Enhanced Pole-Zero Map');
xlabel('Real Part');
ylabel('Imaginary Part');
axis equal; % Keep the aspect ratio equal for better visualization
grid on;
hold off;
Please refer to the following documentation for more information on the 'implicit' fucntion: https://www.mathworks.com/help/matlab/ref/fimplicit.html
I hope this helps!

类别

Help CenterFile Exchange 中查找有关 Uncertainty Analysis 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by