WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Y-Achsenbeschriftung Bodediagramm

 

SdC
Forum-Anfänger

Forum-Anfänger


Beiträge: 15
Anmeldedatum: 09.06.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 19.06.2011, 16:51     Titel: Y-Achsenbeschriftung Bodediagramm
  Antworten mit Zitat      
hallo,

ich erstelle ein bodediagramm von einer tf-fkt und möchte gerne die achsenbeschriftung der amplitude ändern....mit y-label ändert er nur die y achsenbeschriftung von der phase....wie mache ich das innerhalb der m-file?


hier ist mein quelltext:

Code:
num = [9.6*10^-11 800*10^-7 1];
den = [800*10^-6 0];
z=tf(num,den);
bode(z)

grid on;
xlabel('x')
ylabel('Magnitude')


gruß, stefan


Edit by Martin: Bitte die Code-Formatierung verwenden. Danke!
Private Nachricht senden Benutzer-Profile anzeigen


Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 19.06.2011, 17:23     Titel: Re: Y-Achsenbeschriftung Bodediagramm
  Antworten mit Zitat      
Hallo SdC,

Zitat:
ich erstelle ein bodediagramm von einer tf-fkt und möchte gerne die achsenbeschriftung der amplitude ändern.

Wie erstellst Du den Bode-Plot denn genau? Solche Details können wir kaum erraten...

Benutzt Du bereits BODEOPTIONS für den BODEPLOT Befehl? Wenn nicht, siehe z.B. http://www.mathworks.com/help/toolb.....trol/ref/bodeoptions.html.

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
SdC
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 15
Anmeldedatum: 09.06.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 19.06.2011, 17:33     Titel:
  Antworten mit Zitat      
ich erstelle mein bodediagramm mit bode(z), siehe mein quelltext.

hab mir das mit den bodeoptions durchgelesen, aber inwiefern soll mir das helfen? ich habe ja 2y achsen und 2 x achsen (amplitude und phase).

gruß, stefan
Private Nachricht senden Benutzer-Profile anzeigen
 
DSP
Forum-Meister

Forum-Meister



Beiträge: 2.117
Anmeldedatum: 28.02.11
Wohnort: ---
Version: R2014b
     Beitrag Verfasst am: 19.06.2011, 17:46     Titel:
  Antworten mit Zitat      
Mit meiner Version (R14) geht das nach der Anleitung im Link nicht.

Ich weiß leider auch nicht, wie man über den m.file die Beschriftung ändert. Du könntest dir höchstens durch

Code:
[mag,phase,wout] = bode(sys)


die Ergebnisvektoren holen und dann mit subplots das Diagramm selber erstellen. Ist etwas Schreibarbeit, aber dafür kannst du dann die Achsen getrennt beschriften. Ansonsten kenne ich nur den Weg über den Editor im Plot selbst.
Private Nachricht senden Benutzer-Profile anzeigen
 
SdC
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 15
Anmeldedatum: 09.06.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 19.06.2011, 18:17     Titel:
  Antworten mit Zitat      
hmm...kannst du da vllt. noch bissl was zu schreiben? checke noch sehr wenig in matlab Sad
Private Nachricht senden Benutzer-Profile anzeigen
 
DSP
Forum-Meister

Forum-Meister



Beiträge: 2.117
Anmeldedatum: 28.02.11
Wohnort: ---
Version: R2014b
     Beitrag Verfasst am: 19.06.2011, 19:09     Titel:
  Antworten mit Zitat      
...sollten identisch sein Wink

Code:

figure(1)
bode(sys);
figure(2)
[mag phase w] = bode(sys)
% Betrag
subplot(211) ;
semilogx(w,20*log10(mag(1,:))) ;
title('Bode Diagramm') ;
xlabel('Frequenz in [rad]') ;
ylabel('Amplitude in [dB]') ;
grid on;
hold on;
subplot(212) ;
semilogx(w,phase(1,:)) ;
xlabel('Frequenz in [rad]') ;
ylabel('Phase in [Grad]') ;
grid on;
hold off;
Private Nachricht senden Benutzer-Profile anzeigen
 
SdC
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 15
Anmeldedatum: 09.06.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 20.06.2011, 07:43     Titel:
  Antworten mit Zitat      
moin,

danke für den quellcode...wenn ich ihn implementier, wo wie er da steht, zeigt mir das plot nichts an...wenn ich versuche, deinen quelltext mit meinem bodediagramm zu kombinieren, dann funktioniert es leider auch nicht, und zwar ist die achsenbeschriftung immer noch falsch, und das bode diagramm stürzt ab.
Private Nachricht senden Benutzer-Profile anzeigen
 
DSP
Forum-Meister

Forum-Meister



Beiträge: 2.117
Anmeldedatum: 28.02.11
Wohnort: ---
Version: R2014b
     Beitrag Verfasst am: 20.06.2011, 08:29     Titel:
  Antworten mit Zitat      
bei mir läuft es...

Hast du sys durch z ersetzt?
Private Nachricht senden Benutzer-Profile anzeigen
 
SdC
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 15
Anmeldedatum: 09.06.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 20.06.2011, 08:56     Titel:
  Antworten mit Zitat      
moin

hab gerade sys durch z ersetzt und das ergebnis sieht schon ganz gut aus.

nur leider habe ich jetzt folgendes problem: die anzeige der amplitude ist nun nicht mehr in absolutem wert dargestellt, sondern in db.

außerdem hatte ich dem bodediagramm noch eine abtastrate beigefügt, die nun auch nicht mehr funktioniert.

mein quelltext lautet nun:

Code:
num = [9.6*10^-11 800*10^-7 1];
 den = [800*10^-6 0];
 w=0:100:1e8;
 z=tf(num,den);
 optionen = gcr;
 optionen.AxesGrid.Yunits = {'abs','deg'};

figure(2)
[mag phase w] = bode(z,w)
% Betrag
subplot(211) ;
semilogx(w,20*log10(mag(1,:))) ;
title('Bode Diagramm') ;
xlabel('Frequenz in [rad]') ;
ylabel('Amplitude in [dB]') ;
grid on;
hold on;
subplot(212) ;
semilogx(w,phase(1,:)) ;
xlabel('Frequenz in [rad]') ;
ylabel('Phase in [Grad]') ;
grid on;
hold off;



Edit by Martin: Bitte die Code-Formatierung verwenden. Danke!
Private Nachricht senden Benutzer-Profile anzeigen
 
DSP
Forum-Meister

Forum-Meister



Beiträge: 2.117
Anmeldedatum: 28.02.11
Wohnort: ---
Version: R2014b
     Beitrag Verfasst am: 20.06.2011, 10:28     Titel:
  Antworten mit Zitat      
Beim Bodediagramm wird die Amplitude aber immer in dB skaliert Wink. So ist doch auch die Darstellung mit dem Befehl bode(sys). Wenn man sich mit diesen Methoden beschäftigt, sollte dir aber schon klar sein, an welcher Stelle ich die Umrechnung für das selbsterstellte Bodediagramm gemacht habe...

20*log10(mag)

Wenn du eine lineare Skala (Betrag) der Y-Achse möchtest statt der logarithmischen Skala (dB) verwendest du eben nur mag. Was ist nicht verstehe, ist deine Auswahl von deg als Option. Die Phase ist doch schon in Grad. Bitte die code Button über dem Eingabefeld im Forum benutzen, wenn du sowas postest. Dann ist es besser lesbar Wink

Code:

num = [9.6*10^-11 800*10^-7 1];
 den = [800*10^-6 0];
 w=0:100:1e8;
 z=tf(num,den);
 % optionen = gcr;
 % optionen.AxesGrid.Yunits = {'abs','deg'}; ????

 figure(1)
 bode(z);
 figure(2)
 [mag phase] = bode(z,w) ;
 % Betrag
 subplot(211) ;
 semilogx(w,mag(1,:)) ;
 title('Bode Diagramm') ;
 xlabel('Frequenz in [rad]') ;
 ylabel('Amplitude') ;
 grid on;
 hold on;
 % Phase
 subplot(212) ;
 semilogx(w,phase(1,:)) ;
 xlabel('Frequenz in [rad]') ;
 ylabel('Phase in [Grad]') ;
 grid on;
 hold off;
Private Nachricht senden Benutzer-Profile anzeigen
 
SdC
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 15
Anmeldedatum: 09.06.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 20.06.2011, 11:22     Titel:
  Antworten mit Zitat      
yep, danke, so läuft es Smile

weißt du zufällig noch, wie ich auf der y als label einen griechischen buchstaben (omega) hinbekomme?
Private Nachricht senden Benutzer-Profile anzeigen
 
Pepoo

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 02.08.2011, 16:47     Titel:
  Antworten mit Zitat      
dass bekommst du so hin....
ylabel('{\omega}')
danke euch für eure tollen einträge!
 
gkaraden

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 10.09.2012, 11:28     Titel:
  Antworten mit Zitat      
Hi Leute,

habe ein Problem mit gleichem Thema, siehe:
http://www.gomatlab.de/uebertragung.....Cbertragungsfunktion.html

Wenn ich aber das ja im Prinzip funktionierende Beispiel vom Themenstarter nehme, bekomme ich nur die Fehlermeldung:

Code:
??? Undefined function or method 'bode' for input arguments of type 'double'.


Was gebe ich falsch ein? oder Hab ich eine falsche Grundeinstellung?

Warum kann ich die Befehle tf, bode bzw. bodeplot nicht nutzen??

Könnt Ihr mir helfen?

Gruß

gkaraden
 
gkaraden

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 10.09.2012, 14:43     Titel:
  Antworten mit Zitat      
Hey Leute,

also man kann mich ja verbessern aber ich glaube nach ein paar Recherchen den Grund gefunden zu haben.

Man braucht für die Nutzung von Befehlen wie bode(), bodeplot() oder tf() für die Übertraungsfunktion die Control System Toolbox, zumindest nach Mathworks.

Mit dem Befehl ver kann man nachschauen welche man installiert hat.

Ich habe diese Toolbox noch nicht, gut möglich das ich deshalb nicht das funktionsfähige Beispiel berechnen konnte (echt ärgerlich).

Wenn ich es habe werde ich es nochmal versuchen und gebe Feedback.

Gruß

gkaraden
 
gkaraden

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 13.09.2012, 17:16     Titel:
  Antworten mit Zitat      
Hi Leute,

wie versprochen die Rückmeldung bezüglich Control System Toolbox.

Ohne dieses können die Befehle nicht benutzt werden. Funktioniert danach echt super.

Gruß

gkaraden

P.S.: Mit >>ver kann man schauen welche Toolboxen man installiert hat. Very Happy
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum posten
Du kannst Dateien in diesem Forum herunterladen
.





 Impressum  | Nutzungsbedingungen  | Datenschutz | FAQ | goMatlab RSS Button RSS

Hosted by:


Copyright © 2007 - 2025 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks

MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.