Control systems: Labelling multiple plots dynamically based on parameter ?
조회 수: 5 (최근 30일)
이전 댓글 표시
Hello! This is my first time using this forum. Basically I need some way to label the plots with the value of the variable 'zeta' so that my output (below)
resembles this diagram (below) in my text book (the numbers "1.5", "1.0", "0.8", etc):
The code I have used is:
s = tf('s');
Wn = 1;
for zeta = 0.1:0.1:0.9
T = Wn^2/(s^2 + 2*zeta*Wn*s + Wn^2);
step(T);
hold all
end
댓글 수: 0
채택된 답변
Burhan Burak AKMAN
2021년 12월 27일
You can use this. May be it will help you.
s = tf('s');
Wn = 1;
i=1;
ti=linspace(0,20,200);
for zeta = 0.1:0.1:0.9
T = Wn^2/(s^2 + 2*zeta*Wn*s + Wn^2);
[a,b]=step(T,ti);
hold all
plot(b,a)
text(b(-i*2+40),a(-i*2+40),"\zeta="+string(zeta),'FontSize',10)
i=i+1;
end
댓글 수: 0
추가 답변 (1개)
Paul
2021년 12월 27일
Here's a way to do it with a legend.
s = tf('s');
Wn = 1;
for zeta = 0.1:0.1:0.9
T = Wn^2/(s^2 + 2*zeta*Wn*s + Wn^2);
[y,t]=step(T);
plot(t,y,'DisplayName',"zeta = "+string(zeta))
hold all
end
legend
If you really want to annotate the curves themselves, check out
doc text
doc annotation
참고 항목
카테고리
Help Center 및 File Exchange에서 Annotations에 대해 자세히 알아보기
제품
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!