Azzera filtri
Azzera filtri

Hold on not working for plotting transfer function MATLAB

1 visualizzazione (ultimi 30 giorni)
%% DATA
k1 = (1.5+0)/2; % Should be unstable
k2 = 1.5; % Should be marginally stable
k3 = (1.5+2.5)/2; % Should be stable
k4 = 2.5; % Should be stable
k5 = (57.5+2.5)/2; % Should be stable
k6 = 57.5; % Should be stable
k7 = 1000; % Should be stable
x = [k1,k2,k3,k4,k5,k6,k7];
% Vector of ks
t = 0:.01:5;
steps = ones(1,length(t)); % Input - step
t_f = tf([1 18] , [1 6 -27]);
color = ['g','b','r','y','m','k','c']; % color of plots
m=1;
hold on
for i = 1:length(x)
t_f = tf(x(i)*[1 18] , [1 6+x(i) -27+18*x(i)]);
result(i) = t_f;
y = lsim(result(i),steps,t);
% figure(i) When I use this method it actually plots the transfer functions
plot(t,y,color(:,m),'linewidth',1.5) % Plot w/ different colors
m = m + 1; % var to change color
end
legend({'k1','k2','k3','k4','k5','k6','k7'},'Location','NorthWest')
hold off
I don't understand why it doesn't plot the rest of my x matrix. It plots the first value, x(1), then it just gives me lines = 0 of different colors. When I use figure(i), it works, but that's not what I need right now. Any suggestions? thanks

Risposta accettata

Star Strider
Star Strider il 11 Giu 2020
All the curves are plotted, however some overplot others given the limited resolution.
Change the plot call to:
plot(t(y>1E-4),y(y>1E-4),color(:,m),'linewidth',1.5) % Plot w/ different colors
set(gca, 'YScale','log')
to see them, although some are barely visible. (For some reason that I did not explore, semilogy does not work here.)
  2 Commenti
Star Strider
Star Strider il 11 Giu 2020
My pleasure!
If my Answer helped you solve your problem, please Accept it!
.

Accedi per commentare.

Più risposte (0)

Categorie

Scopri di più su Line Plots in Help Center e File Exchange

Prodotti

Community Treasure Hunt

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

Start Hunting!

Translated by