Bode Diagram
    12 visualizzazioni (ultimi 30 giorni)
  
       Mostra commenti meno recenti
    
    Amir
 il 27 Apr 2011
  
    
    
    
    
    Commentato: Walter Roberson
      
      
 il 15 Ott 2024
            When I plot a bode diagram from a FRD sys (obtained by a measurement data), I encounter phases beyond [-180,180]; actually, their order is about 2000 degrees! What should I do in order to have them inside [-180,180] degree?
0 Commenti
Risposta accettata
  Arkadiy Turevskiy
    
 il 27 Apr 2011
        You need to use bodeoptions command and set PhaseWrapping to on. Here is an example showing how to do it:
>>s=tf('s'); %define Laplace variable
>>freq=logspace(-1,2,1000); %define frequency vector
>>sys=1/(s^3+2*s^2+3*s+1); %some tf with phase <-180
>>bode(sys,freq) %phase is not within -180:180
>>p=bodeoptions
>>p.PhaseWrapping='on'
>>bode(sys,freq,p) %phase is wrapped inside -180:180
HTH, Arkadiy
Più risposte (2)
  Benjamin Hoepfner
      
 il 29 Giu 2022
        Hi, 
i'm using version 2021a and i have a similar problem but the previous answer doesn't work in my case. I need the values of the bode(sys) function for further calculations or external data storage. But the phase wrap obviously doesn't work in this case.
Here is my Code:
%same system from the previous answer
s=tf('s');
freq=logspace(-1,2,1000);
sys=1/(s^3+2*s^2+3*s+1);
[M1,P1,w1] = bode(sys,freq); %saving the magnitude,phase and frequency from the system via bode(sys)
X1=[]; %saving the datas in an extra variable
X1(:,1)=w1;
X1(:,2)=M1;
X1(:,3)=P1;
p=bodeoptions;
p.PhaseWrapping='on';
[M2,P2,w2] = bode(sys,freq,p); %same step as before but with the phase wrap option from bodeoptions
X2=[];
X2(:,1)=w2;
X2(:,2)=M2;
X2(:,3)=P2;
figure(1)
semilogx(X1(:,1),X1(:,3),X2(:,1),X2(:,3)) %plotting phases from X1 and X2 over frequency 
legend %two curves with same datas..
Is there anybody out there how can help me with this or can give me an explanation for this? 
Best regards!
Ben
0 Commenti
  SRIMATHI
 il 15 Ott 2024
        
      Modificato: Walter Roberson
      
      
 il 15 Ott 2024
  
      same system from the previous answer
s=tf('s');
freq=logspace(-1,2,1000);
sys=1/(s^3+2*s^2+3*s+1);
[M1,P1,w1] = bode(sys,freq); 
X1=[]; 
X1(:,1)=w1;
X1(:,2)=M1;
X1(:,3)=P1;
if true
    % code
end
p=bodeoptions;
p.PhaseWrapping='on';
[M2,P2,w2] = bode(sys,freq,p);
X2=[];
X2(:,1)=W2;
X2(:,2)=M2;
X2(:,3)=P2;
figure(1)
semilogx(X1(:,1),X1(:,3),X2(:,1),X2(:,3)) ;
1 Commento
Vedere anche
Categorie
				Scopri di più su Time and Frequency Domain Analysis 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!




