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

Berechnung Amplitudengang in Matlab

 

DerTommy

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 28.04.2018, 21:21     Titel: Berechnung Amplitudengang in Matlab
  Antworten mit Zitat      
Hallo zusammen,

kann mir vllt jemand erklären, warum ich mit folgendem Code an einer Frequenzstelle zwei verschiedene Ergebnisse für den Amplitudengang desselben Systems erhalte?

Vllt noch als Ergänzung.. der erwartete Wert bei 1000 Hz ist 0dB, da das die
Resonanzfrequenz des verwendeten Resonanten Reglers ist, der im geschlossenen Regelkreis Gcl sitzt.

Danke im Voraus

Code:

s = tf('s');
om0 = 1000*2*pi;
f_gr = 100;
Tcl = 1/(2*pi*f_gr);
Rs = 50e-3;
Ld = 200e-6;
Kp = Ld/Tcl;
Ki = Rs/Tcl;
Gr = 2*Ki*s/(s^2+om0^2);
Gpi = Kp + Ki/s;
Gc =  Gpi + Gr;
Gp = 1/(Rs + s*Ld);
G = Gc*Gp;
Gcl = G/(1+G);
w=(900:0.01:1100)*2*pi;
[mag,~,omPlot] = bode(Gcl); mag = 20*log10(mag(:));
semilogx(omPlot/(2*pi),mag(:),'-x','LineWidth',2); hold on
[mag,~,omPlot] = bode(Gcl,w); mag = 20*log10(mag(:));
semilogx(w/(2*pi),mag(:),'.-','LineWidth',1); hold on
grid on
legend('show')
axis([999.985, 1000.015, -5, 10])
 


Kesseler

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 30.04.2018, 09:12     Titel: Numerisches Problem Grenzübergang
  Antworten mit Zitat      
Hallo, ich erlaube mir folgenden Hinweis:

Das scheint ein numerisches Problem beim Grenzübergang zu sein, wenn die Frequenz die Resonanzfrequenz om0 erreicht. Wegen 1/(s^2+om0^2) wird dort 1/0 erzeugt. Man kann schnell prüfen, dass theoretisch für Gcl 1 erreicht wird, aber dies folgt dann aus 1/0 : 1/0. Im Grenzübergang 1, ja, aber nicht mit den numerischen Einschränkungen....

Man sieht das relativ schnelle, wenn in

Code:
w=(900:0.01:1100)*2*pi;


die Auflösung erhöht wird.

Für Liebhaber symbolischer Prüfungen:
Code:

clear
close all
home

syms('s','om0','f_gr','Rs','Ld');
Tcl = 1/(2*pi*f_gr);
Kp = Ld/Tcl;
Ki = Rs/Tcl;
Gr = 2*Ki*s/(s^2+om0^2);
Gpi = Kp + Ki/s;
Gc =  Gpi + Gr;
Gp = 1/(Rs + s*Ld);
G = Gc*Gp;
Gcl = G/(1+G);

limit(Gcl,s,i*om0)
 

liefert als Ergebnis "1", wie erwartet.

Hoffe es hilft beim Verständnis.
W. Kesseler
 
Kesseler

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 02.05.2018, 18:51     Titel: Nachtrag: Sieht nur aus wie der gleiche Befehl
  Antworten mit Zitat      
Nachtrag: Das unterschiedliche Ergebnis kommt auch dadurch zustande, dass der
Code:
-Befehl einmal mit vorgegebener Kreisfrequenz
Code:
und einmal ohne aufgerufen wird.

Im Ergebnis wertet das Kommando die Frequenzen einmal an den vorgegebenen Stellen aus und einmal nimmt der interne Algorithmus weniger und andere Stützpunkte zur Evaluation.

Im Ergebnis meint man, das der gleiche Befehl unterschiedliche Ergebnisse liefert. In Wirklichkeit hat man zwei verschiedene Dinge getan.

Gruß
W.K.
 
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.