Control systems: Labelling multiple plots dynamically based on parameter ?
2 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Shovnik Paul
el 27 de Dic. de 2021
Comentada: Shovnik Paul
el 28 de Dic. de 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 comentarios
Respuesta aceptada
Burhan Burak AKMAN
el 27 de Dic. de 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 comentarios
Más respuestas (1)
Paul
el 27 de Dic. de 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
Ver también
Categorías
Más información sobre Annotations en Help Center y File Exchange.
Productos
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!