Control systems: Labelling multiple plots dynamically based on parameter ?
1 Ansicht (letzte 30 Tage)
Ältere Kommentare anzeigen
Shovnik Paul
am 27 Dez. 2021
Kommentiert: Shovnik Paul
am 28 Dez. 2021
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)
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/845475/image.png)
resembles this diagram (below) in my text book (the numbers "1.5", "1.0", "0.8", etc):
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/845480/image.jpeg)
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 Kommentare
Akzeptierte Antwort
Burhan Burak AKMAN
am 27 Dez. 2021
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 Kommentare
Weitere Antworten (1)
Paul
am 27 Dez. 2021
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
Siehe auch
Kategorien
Mehr zu Startup and Shutdown finden Sie in Help Center und File Exchange
Produkte
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!