Help With for loop with tranfer function and step
    2 Ansichten (letzte 30 Tage)
  
       Ältere Kommentare anzeigen
    
    Davide Cannavacciuolo
 am 20 Nov. 2023
  
    
    
    
    
    Kommentiert: Sam Chak
      
      
 am 20 Nov. 2023
            s=tf('s');
G=1/(s^2+0.4*s+0.1);
 K=[1 2 3 4 5 6];
figure
hold on
for i=1:1:length(K)
T=K(i)*G;
step(T)
    S=stepinfo(T);
    L=S.Peak(T)
end
I have this code but i get the error : "Unable to use a value of type tf as an index."
I want actually to make a vector containg all the values of the peak values and only then plot the peaks with the corresponding value of gain.
Thank you in advance
0 Kommentare
Akzeptierte Antwort
  Sam Chak
      
      
 am 20 Nov. 2023
        You probably want to plot like this:
s = tf('s');
G = 1/(s^2 + 0.4*s + 0.1);
K = [1 2 3 4 5 6];
figure(1)
hold on
for i = 1:length(K)
    T    = K(i)*G;
    step(T)
    S    = stepinfo(T);
    L(i) = S.Peak;
end
grid on
hold off
figure(2)
plot(K, L, '-o'), grid on
xlabel('Gain'), ylabel('Peak')
2 Kommentare
Weitere Antworten (1)
  Dyuman Joshi
      
      
 am 20 Nov. 2023
        
      Bearbeitet: Dyuman Joshi
      
      
 am 20 Nov. 2023
  
      There is no field in the struct 'S' with name 'T'. Thus you get the error in the line you defined 'S'.
I suspect that you want to get the 'Peak' value for each system - 
s=tf('s');
G=1/(s^2+0.4*s+0.1);
K=[1 2 3 4 5 6];
%Preallocation
L = K.*0;
figure
hold on
for i=1:1:length(K)
T=K(i)*G;
step(T);
S=stepinfo(T);
L(i)=S.Peak;
end
L
Siehe auch
Kategorien
				Mehr zu Loops and Conditional Statements finden Sie in Help Center und File Exchange
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!





