remove annotations from diskmarginplot

1 次查看(过去 30 天)
Hey guys! I want to show a system's stability by giving the system's diskmargin by some skew variations. To give a smooth shape of the stable area of the system in complex plane, i stacked all the diskmargin variation by using this script:
% Plant Model
f = pos_motor;
% Plant Diskmargin
s_DOL = -100:1:100;
figure(1)
hold on
for i = 1:numel(s_DOL)
DOL = diskmargin(f,s_DOL(i));
diskmarginplot(DOL.GainMargin,'disk')
end
hold off
And this results in a figure:
The description for each diskmargin on the figure is quite a bother. I searched for the solution in function diskmarginoptions but with no success.
Hope anyone can help! Thanks

采纳的回答

Paul
Paul 2023-4-3
Hi Muhammad,
Something like this might work, either inside or after the loop. Some experimentation may be needed.
Disk margin plot with annotations.
L = tf(25,[1 10 10 10]);
DM = diskmargin(L);
DGM = DM.GainMargin;
DPM = DM.PhaseMargin;
diskmarginplot(DGM)
Copy the plot to see how it changes
copyobj(gca,figure);
Find the text objects
h = findobj(get(gca,'Children'),'Type','Text')
h =
2×1 Text array: Text (DPM = 26 deg) Text (DGM = [0.63,1.6])
Delete them
delete(h)
  1 个评论
Muhammad
Muhammad 2023-4-3
Thanks for your help! I got this working by editing the script to:
% Plant Model
f = pos_motor;
% Plant Diskmargin
s_DOL = -100:1:100;
figure(1)
hold on
for i = 1:numel(s_DOL)
DOL = diskmargin(f,s_DOL(i));
diskmarginplot(DOL.GainMargin,'disk')
end
hold off
line_ann = findobj(get(gca,'Children'),'Type','Line');
text_ann = findobj(get(gca,'Children'),'Type','Text');
delete(line_ann(2:end))
delete(text_ann)
Results in:

请先登录,再进行评论。

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Disk-Based Gain and Phase Margins 的更多信息

产品


版本

R2022b

Community Treasure Hunt

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

Start Hunting!

Translated by