필터 지우기
필터 지우기

How to make a root locus plot square aspect ratio

조회 수: 10 (최근 30일)
Daniel
Daniel 2015년 10월 7일
댓글: Star Strider 2023년 11월 8일
I have tried:
s = tf('s');
sysL = (s^2+1)/(s*(s^2+4));
rlocus(sysL);
v=[-4 4 -4 4];
axis(v);
axis('square');
But I get a message that says: Warning: This plot type does not support this option for the "axis" command.
I am using 2013b

채택된 답변

Star Strider
Star Strider 2015년 10월 7일
편집: Star Strider 2015년 10월 7일
It does not support axis('square'). It does support axis('equal'), but that overrides your axis(v) call.
You can override the aspect ratio with the 'Position' figure property:
s = tf('s');
sysL = (s^2+1)/(s*(s^2+4));
rlocus(sysL);
v=[-4 4 -4 4]; axis(v);
hpos = get(gcf, 'Position'); % Get 'Position'
set(gcf, 'Position',[hpos([1 2 4]) hpos(4)]) % Set Width = Height
Experiment to get the result you want.
  댓글 수: 4
Ryszard Nowacki
Ryszard Nowacki 2023년 11월 8일
Is there any way to do this with the R2023b version?
Star Strider
Star Strider 2023년 11월 8일
@Ryszard Nowacki — I just now tested that same code here (R2023b), and it seems to work correctly.
Comparing them —
s = tf('s');
sysL = (s^2+1)/(s*(s^2+4));
figure
rlocus(sysL);
figure
rlocus(sysL);
hpos = get(gcf, 'Position'); % Get 'Position'
set(gcf, 'Position',[hpos([1 2 4]) hpos(4)]) % Set Width = Height
axis('equal');
It works as desired in R2023b.
.

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Classical Control Design에 대해 자세히 알아보기

제품

Community Treasure Hunt

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

Start Hunting!

Translated by