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

Koeffizienten ausrechnen

 

T_Meister
Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 85
Anmeldedatum: 14.12.11
Wohnort: BS
Version: 2013a&b, 2014a&b
     Beitrag Verfasst am: 07.05.2012, 15:21     Titel: Koeffizienten ausrechnen
  Antworten mit Zitat      
Hallo Leute,

ich habe folgendes Problem. Ich habe eine Beschleunigungsregler (hier negativ), für den ich eine Sprungantwort ermittelt habe, siehe Anhang. Das Übertragungsverhalten müsste einem PT2 Glied entsprechen und damit die Gleichung:

G(s)=K/(T1*s²+T2*s+1) ergeben wobei K=1 sein soll.

Habt ihr eine Idee, wie ich die Koeffizienten berechnen kann?

Viele Grüße
Thorsten

Einheitssprung.JPG
 Beschreibung:

Download
 Dateiname:  Einheitssprung.JPG
 Dateigröße:  97.95 KB
 Heruntergeladen:  1248 mal
Private Nachricht senden Benutzer-Profile anzeigen


Flashmaster
Forum-Anfänger

Forum-Anfänger


Beiträge: 27
Anmeldedatum: 02.05.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 14.05.2012, 07:24     Titel:
  Antworten mit Zitat      
Guten Morgen,
Ich würde die Koeffizienten mithilfe der Frequenzkennlinien (Bode-Plot) annähern. Dort kann man schön die Verstärkung und die Zeitkonstanten ermitteln.

MfG
Private Nachricht senden Benutzer-Profile anzeigen
 
controlnix
Forum-Century

Forum-Century


Beiträge: 106
Anmeldedatum: 10.06.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 10.06.2012, 17:33     Titel:
  Antworten mit Zitat      
Hallo,

aus der Grafik ist schon erkennbar, dass ein PT2 nur eine grobe Näherung sein wird (wegen Verhalten bei Ausgang=-0.2).
Wenn die Näherung ausreicht ... Was ist das Ziel?
Vielleicht kannst du mal mal die Daten zur Verfügung stellen (Zeit, Eingang, Ausgang). Mal sehen, was möglich ist.

Grüße,
ControlNix
Private Nachricht senden Benutzer-Profile anzeigen
 
Balzer82
Forum-Anfänger

Forum-Anfänger



Beiträge: 26
Anmeldedatum: 22.02.11
Wohnort: Dresden
Version: ---
     Beitrag Verfasst am: 10.06.2012, 19:55     Titel:
  Antworten mit Zitat      
Nicht schön aber selten und in jedem Fall ausreichend ist das ganze nicht zu akademisch an zu gehen, sondern einfach mal eine PT2 mit irgendwelchen Parametern zu erzeugen und dann die Summe der quadratischen Abweichungen zwischen deiner synthetischen und der gemessenen Sprungantwort ausrechnen zu lassen.
Diesen Error versuchst du dann zu minimieren in einer Schleife. Könntest du z.B. den Twiddle Algorithmus vom Sebastian Thrun nehmen oder einfach Excel auf machen und dort mittels 'Solver' den Fehler für verschiedene Parameter T1 und T2 minimieren.
_________________

"Bremsen ist die sinnlose Umwandlung von Exergie in Anergie - daran kann man sich höchstens noch die Finger verbrennen" - Prof. J. Morgenstern
Private Nachricht senden Benutzer-Profile anzeigen
 
eey
Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 86
Anmeldedatum: 31.03.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 11.06.2012, 13:40     Titel:
  Antworten mit Zitat      
Ich würds eher mit fminsearch machen, dieser Twiddle Algorithmus ist ja letztendlich sowas wie ein binärer Baum und das ist schon sehr uneffektiv um ein Minimum zu finden...

Probiers mal so:

Code:

function [ Fs ] = findPT2( t,M,K, Zeitkonstanten)
   

    Zeitkonstanten = fminsearch(@(Zeitkonstanten)PT2_Guetefunktional(t,M,K,Zeitkonstanten),Zeitkonstanten);
   

   
    Fs = tf(K,[Zeitkonstanten 1]);
   
end


function [ Fehler ] = PT2_Guetefunktional(t,M,K,Zeitkonstanten)
   

    Fs2= tf(K,[Zeitkonstanten 1]);
   
    M2 = step(t,Fs2);

    Fehler  = sum((M - M2).^2);

end


 


Du übergibst der Funktion einfach deinen Zeitvektor t, deine Messwerte M, deine Verstärkung K (kannst du auch alternativ direkt vom Algorithmus bestimmen lassen) sowie deine geschätzten Zeitkonstanten T1 und T2 als Vektor (Die Schätzung kann im Falle von nur zwei Parametern auch sehr schlecht sein).

Das Funktioniert für PT2 sehr gut, allerdings sehen deine Messwerte eigentlich gar nicht nach PT2 Verhalten aus.... Aber um mehr sagen zu können müsstest du die Werte mal Online stellen.

Schöne Grüße,
eey
Private Nachricht senden Benutzer-Profile anzeigen
 
Balzer82
Forum-Anfänger

Forum-Anfänger



Beiträge: 26
Anmeldedatum: 22.02.11
Wohnort: Dresden
Version: ---
     Beitrag Verfasst am: 10.07.2012, 16:08     Titel:
  Antworten mit Zitat      
Ich habe hier den von mir empfohlenen Twiddle Algorithmus noch mal aufgeschrieben: http://www.mechlab.de/index.php/num.....-mit-twiddle-algorithmus/
_________________

"Bremsen ist die sinnlose Umwandlung von Exergie in Anergie - daran kann man sich höchstens noch die Finger verbrennen" - Prof. J. Morgenstern
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.