Inserting vertical and horizontal line in bodeplot
17 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Carl Overgaard
am 30 Nov. 2019
Kommentiert: Carl Overgaard
am 30 Nov. 2019
Hello
With below code I have made a bode plot. Then I have calculatted an angular frequency.
I want to insert a vertical line from my found angular frequency(found to be 0.041889), and also a horizontal line so I can determine the phase angel on the y-axis:
Can this be done?
IThe plan is that it should look like this:

My code:
sys1=tf([1805.1],[4637.61 136.2 1]) %transfer function
w=logspace(-5,2); %Define frequency range
[A,phi]=bode(sys1,w); %Amplitude ratio (A) and phase shift (phi)
figure
subplot(2,1,1)
loglog(w,A(:)) %Amplitude ratio vs frequency
grid on
ylabel('AR')
subplot(2,1,2)
semilogx(w,phi(:))
ylabel('Phase angle(Degrees)')
xlabel('Frequency(rad/s)')
legend({'Lower tank'},'Fontsize',14) %add "title" to plot...
0 Kommentare
Akzeptierte Antwort
Stephan
am 30 Nov. 2019
Bearbeitet: Stephan
am 30 Nov. 2019
3 Kommentare
Stephan
am 30 Nov. 2019
Bearbeitet: Stephan
am 30 Nov. 2019
you could interpolate:
phi1 = squeeze(phi);
ypoint = interp1(w,phi1,0.041889)
ypoint =
-140.6024
the whole code would look like:
sys1=tf([1805.1],[4637.61 136.2 1]) %transfer function
w=logspace(-5,2); %Define frequency range
[A,phi]=bode(sys1,w); %Amplitude ratio (A) and phase shift (phi)
figure
subplot(2,1,1)
loglog(w,A(:)) %Amplitude ratio vs frequency
grid on
ylabel('AR')
subplot(2,1,2)
semilogx(w,phi(:))
ylabel('Phase angle(Degrees)')
xlabel('Frequency(rad/s)')
legend({'Lower tank'},'Fontsize',14) %add "title" to plot...
hold on
phi1 = squeeze(phi);
ypoint = interp1(w,phi1,0.041889)
scatter(0.041889,ypoint,'or')
xline(0.041889,'--r')
yline(ypoint,'--r')
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Plot Customization 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!