How to colour regions in a graph: poles and zeros

조회 수: 4 (최근 30일)
Joshua Behrendorff
Joshua Behrendorff 2020년 5월 6일
편집: TED MOSBY 2025년 7월 9일
Hi guys! Hoping for some help if anyone here has expertise plotting a graph using complex conjugates and zeros
We've been given the task to find a region where a specific set of values are valid on the real and complex axis. I've calculated the borders(?) and was wondering if anyone would know how I could add this to my current matlab code, as Im checking what fits in the borders :)
The borders are:
-2.665 + 0i to 0±2.7996i
at an angle of 46.37 degrees from -2.665 in both directions
sorry if the wording is a little confusing.
this is the code I'd like to plot on this shading.
hold on
for kp=[2, 4, 8, 16, 32, 64]
disp(kp)
G = tf([kp 64], [1 10 16 0]);
CLTF = feedback(kp*G,1)
pzmap(CLTF)
end
If anyone could help this would be mad appreciated

답변 (1개)

TED MOSBY
TED MOSBY 2025년 7월 9일
편집: TED MOSBY 2025년 7월 9일
Hi,
You can achieve this by using the fill function in MATLAB to create the shaded region before you plot your pole-zero map. It looks like the region you've described is a triangle with vertices at (-2.665, 0), (0, 2.7996), and (0, -2.7996).
Here is how you can do that:
figure;
hold on;
x_vertices = [-2.665, 0, 0];
y_vertices = [0, 2.7996, -2.7996];
fill(x_vertices, y_vertices, 'y', 'FaceAlpha', 0.2, 'EdgeColor', 'k', 'LineStyle', '--');
for kp = [2, 4, 8, 16, 32, 64]
G = tf([kp 64], [1 10 16 0]);
CLTF = feedback(kp*G, 1);
p = pole(CLTF);
end
grid on;
xlabel('Real Axis (\sigma)');
ylabel('Imaginary Axis (j\omega)');
ax = gca;
ax.XAxisLocation = 'origin';
ax.YAxisLocation = 'origin';
axis equal;
hold off;
Here is more information on "fill" : https://www.mathworks.com/help/matlab/ref/fill.html
Hope it helps!

카테고리

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

Community Treasure Hunt

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

Start Hunting!

Translated by