Help With for loop with tranfer function and step
    조회 수: 2 (최근 30일)
  
       이전 댓글 표시
    
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
채택된 답변
  Sam Chak
      
      
 2023년 11월 20일
        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
추가 답변 (1개)
  Dyuman Joshi
      
      
 2023년 11월 20일
        
      편집: Dyuman Joshi
      
      
 2023년 11월 20일
  
      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
참고 항목
카테고리
				Help Center 및 File Exchange에서 Loops and Conditional Statements에 대해 자세히 알아보기
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!


