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

Punkte in Bode-Diagramm

 

alexkid
Forum-Newbie

Forum-Newbie


Beiträge: 7
Anmeldedatum: 06.06.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 06.06.2008, 15:21     Titel: Punkte in Bode-Diagramm
  Antworten mit Zitat      
Hallo, ich habe das Bode Diagramm einer Übertragungsfunktion mit

Ks=2;Ts=0.1;Gs1=tf(Ks,[Ts 1])
margin(Gs1);grid;

erstellt. Funktioniert auch!

Aber jetzt möchte ich noch Messwertpaare (X,Y), die im Labor aufgenommen wurden in das Diagramm zeichnen (nur die Punkte).

hold bzw. hold on, hold all
plot(0.6,1.5,'rx'); bzw. semilogx

habe ich probiert. Funktioniert nicht (keine Veränderung im figure!

Danach habe ich nur einzelne punkte mit dem plot befehl gezeichnet. Das hat auch funktioniert.
Aber sobald ich mehrere Punkte mit den befehlen loglog oder semilogx gezeichnet habe, wird die x-Achseneinteilung veraendert.

Ist es auch moeglich die Parameter im Bode-Diagramm einzuzeichnen oder muss ich das manuell über eine Textbox machen?

Ich hoffe mir kann schnell jemand helfen!
Private Nachricht senden Benutzer-Profile anzeigen


nschlange
Ehrenmitglied

Ehrenmitglied



Beiträge: 1.320
Anmeldedatum: 06.09.07
Wohnort: NRW
Version: R2007b
     Beitrag Verfasst am: 06.06.2008, 18:14     Titel:
  Antworten mit Zitat      
Hi,

vielleicht kannst Du mit
Code:
die Phase und Amplitude bestimmen und diese dann selber plotten. Dann müsste das schon klappen.
_________________

Viele Grüße
nschlange

"Chuck Norris ejakuliert fluessigen Stahl!"
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
alexkid
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 7
Anmeldedatum: 06.06.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 06.06.2008, 18:50     Titel:
  Antworten mit Zitat      
hey, aehm ich weis jetzt nicht so richtig, wie du das meinst!
Code:

ist ja im Prinzip
Code:

bis auf die zusätzliche Anzeige von Phasen- und Amplitudenrand. Was ja auch klappt.
Ich möchte jetzt nur noch gemessene Werte (Amplitude, Phase) zusätzlich als Punkte in das Bode-Diagramm zeichnen.
Private Nachricht senden Benutzer-Profile anzeigen
 
nschlange
Ehrenmitglied

Ehrenmitglied



Beiträge: 1.320
Anmeldedatum: 06.09.07
Wohnort: NRW
Version: R2007b
     Beitrag Verfasst am: 06.06.2008, 18:56     Titel:
  Antworten mit Zitat      
Ich hatte es so verstanden, dass Du in den Plot von margin weitere Punkte einfügen möchtest, aber nicht kannst.
Und weil ja eben margin und bode fast gleich sind könntest Du die Amplituden- und Phasen-Verlauf mit bode bestimmen und dann selbst plotten. Da hast Du volle Kontrolle über das Aussehen und kannst Punkte usw. hinzufügen.

Siehe in der Hilfe zu bode:
[mag,phase,w] = bode(sys)
_________________

Viele Grüße
nschlange

"Chuck Norris ejakuliert fluessigen Stahl!"
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
alexkid
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 7
Anmeldedatum: 06.06.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 06.06.2008, 19:53     Titel:
  Antworten mit Zitat      
...axo, ja dann hast du richtig verstanden. ein Problem ist, dass die Messwerte nicht über die komplette frequenz genommen wurden und das einige stark abweichen. es soll nur um den Trend gehen. Deshalb wollte ich nur die Messpunkte über die theoretischen Kennlinien legen. So wie ich dich jetzt verstanden hab, ist es einfacher mit bode Punkte hinzuzufuegen?! Ich werd das morgen dann mal ausprobieren. Heute hab ich keine Lust mehr auf matlab!

erstmal danke soweit!
Private Nachricht senden Benutzer-Profile anzeigen
 
alexkid
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 7
Anmeldedatum: 06.06.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 10.06.2008, 14:10     Titel:
  Antworten mit Zitat      
hallo,

jetzt habe ich es geschafft die messpunkte in "magnitude" einzuzeichnen (mit bode und plot)
aber es hapert jetzt daran, die restlichen messpunkte in die phasenkennlinie einzuzeichnen! ich habe die phasenkennlinie im figure mit edit plot gekennzeichnet. aber er zeichnet keine messpunkte!
Private Nachricht senden Benutzer-Profile anzeigen
 
nschlange
Ehrenmitglied

Ehrenmitglied



Beiträge: 1.320
Anmeldedatum: 06.09.07
Wohnort: NRW
Version: R2007b
     Beitrag Verfasst am: 10.06.2008, 14:18     Titel:
  Antworten mit Zitat      
Keine Ahnung was Du damit meinst.

Hier ein kleines Beispiel, in dem die Phasenreserve gekennzeichnet wird.
Mit plot müsstest Du auch beliebige andere Punkte einzeichnen können.
Code:
clear all;
clc;

Ks=2;Ts=0.1;Gs1=tf(Ks,[Ts 1])

f=logspace(-1,3,5000);
[mag,phase,f] = bode(Gs1);
f=f(:);
mag=mag(:);
magdb = 20*log10(mag);
phase=phase(:);
subplot(2,1,1);
semilogx(f,magdb);
idx=find(magdb<0,1,'first');
hold on;
plot(f(idx),magdb(idx),'ro');
hold off
ylabel('Amplitude [db]');
set(gca,'XTickLabel',[]);
grid on;
subplot(2,1,2);
semilogx(f,phase);
ylabel('Phase [°]');
xlabel('Frequenz [rad/s]');
hold on;
plot(f(idx),phase(idx),'ro');
hold off
ylim([-90 0]);
set(gca,'YTick',-90:45:0);
set(gca,'YTickLabel',{'-90','-45','0'});
grid on;

_________________

Viele Grüße
nschlange

"Chuck Norris ejakuliert fluessigen Stahl!"
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
alexkid
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 7
Anmeldedatum: 06.06.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 10.06.2008, 15:45     Titel:
  Antworten mit Zitat      
...uiui, das ist mir schon viel zu viel code ^^

Code:

Ks=2;Ts=0.1;Gs1=tf(Ks,[Ts 1]);
f=[0.2,0.5,0.8,1.0,1.2,1.4,1.7,2.0,2.5,3.0]                     % Messwerte%
A=[1.5,1,0.9,0.88,0.82,0.78,0.72,0.66,0.58,0.5]          %Amplitude da E=1V%
p=[9.8,21.9,33.4,33.12,39.7,47.9,46.5,54.0,63,64.8]  
bode(Gs1);grid;
hold on;
plot(2*pi*f,20*log10(A),'rx');
 


..mit meinen Messdaten. Wenn ich das in einzelschritten mache und vor plot die Amplitudenkennlinie markiere (im figure), dann zeichnet er mir auch die punkte in die magnitude kennlinie. aber für die phase klappt das nicht!
meine frage ist: wie sag ich jetzt genau, das er die messpunkte in die richtige kennlinie plottet?
bei dem beispiel hängt das scheinbar mit:

Code:

[mag,phase,f] = bode(Gs1);
plot(f(idx),magdb(idx),'ro');
 


zusammen.
Private Nachricht senden Benutzer-Profile anzeigen
 
nschlange
Ehrenmitglied

Ehrenmitglied



Beiträge: 1.320
Anmeldedatum: 06.09.07
Wohnort: NRW
Version: R2007b
     Beitrag Verfasst am: 10.06.2008, 16:12     Titel:
  Antworten mit Zitat      
Genau,

bei dem von bode erstellten Plot weiß ich eben nicht, wie man die einzelnen Axes Handles (Ampl. und Phase) anspricht.
Daher habe ich ja vorgeschlagen, nur die Daten mit bode zu berechnen und das Plotten selbst zu übernehmen.
Hier Dein Beispiel:
Code:
clear all;
clc;

Ks=2;Ts=0.1;Gs1=tf(Ks,[Ts 1])

f_mess=[0.2,0.5,0.8,1.0,1.2,1.4,1.7,2.0,2.5,3.0];
A_mess=[1.5,1,0.9,0.88,0.82,0.78,0.72,0.66,0.58,0.5];
p_mess=-[9.8,21.9,33.4,33.12,39.7,47.9,46.5,54.0,63,64.8];

[mag,phase,f] = bode(Gs1);
f=f(:);
mag=mag(:);
magdb = 20*log10(mag);
phase=phase(:);
subplot(2,1,1);
semilogx(f,magdb);
idx=find(magdb<0,1,'first');
hold on;
plot(f(idx),magdb(idx),'ro');
plot(f_mess,A_mess,'r-x');
hold off
ylabel('Amplitude [db]');
set(gca,'XTickLabel',[]);
grid on;
subplot(2,1,2);
semilogx(f,phase);
ylabel('Phase [°]');
xlabel('Frequenz [rad/s]');
hold on;
plot(f(idx),phase(idx),'ro');
plot(f_mess,p_mess,'r-x');
hold off
ylim([-90 0]);
set(gca,'YTick',-90:45:0);
set(gca,'YTickLabel',{'-90','-45','0'});
grid on;

In diesem Fall zeigt bode nichts an, sondern liefert nur Amplitude (mag) und Phase (phase) in Abhängigkeit der Frequenz (f).
Das wird dann separat in zwei subplots dargestellt.
_________________

Viele Grüße
nschlange

"Chuck Norris ejakuliert fluessigen Stahl!"
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
alexkid
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 7
Anmeldedatum: 06.06.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 10.06.2008, 16:55     Titel:
  Antworten mit Zitat      
hey, super das klappt. noch 2*pi* vor mess_A und es haut hin. wenn ich den professor antreffe, dann frag ich ihn mal, wie das mit bode klappt. falls es dich interessiert kann ich das ja dann posten.
vielen dank!

MfG
Alex
Private Nachricht senden Benutzer-Profile anzeigen
 
nschlange
Ehrenmitglied

Ehrenmitglied



Beiträge: 1.320
Anmeldedatum: 06.09.07
Wohnort: NRW
Version: R2007b
     Beitrag Verfasst am: 10.06.2008, 17:21     Titel:
  Antworten mit Zitat      
Ja, Rückmeldung ist immer gut.
Wenn es den einen nicht interessiert, interessiert es den anderen. Wink
_________________

Viele Grüße
nschlange

"Chuck Norris ejakuliert fluessigen Stahl!"
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
alexkid
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 7
Anmeldedatum: 06.06.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 16.06.2008, 14:18     Titel:
  Antworten mit Zitat      
Hallo, also es funktioniert mit bode!
Code:

und jetzt im figure den gewuenschten Bereich (Phase oder Magnitude) anklicken
Code:

analog fuer die uebrige Kennlinie

MfG
Alex
Private Nachricht senden Benutzer-Profile anzeigen
 
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 - 2024 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.