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

System identification Toolbox --> Parameteridentifikation

 

alduro
Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 62
Anmeldedatum: 30.01.08
Wohnort: Tucson , AZ
Version: ---
     Beitrag Verfasst am: 11.11.2009, 11:19     Titel: System identification Toolbox --> Parameteridentifikation
  Antworten mit Zitat      
Hallo liebes Forum,

ich habe ein Frage zu der System identification toolbox.

Ich habe die Bewegungsgleichungen für einen ungedämpften Einmassenschwinger aufgestellt.

m*y(dotdot)=-m*g+c*y

Diese kann ich auch mit den gegebenen Anfangsbedingungen (x0=-0.5 und v0=0) ohne Probleme lösen. Ich nutze dafür den ODE45 Integrator.
Mit der passenden Visualisierung kommt eine nettes Video heraus, was die Richtigkeit meiner DGL bestätigt.


Anhand dieses einfachen Systems möchte ich gerne lernen mit der SIT umzugehen.

Also folgenden Aufgabenstellen:
Ich habe mit einer Federsteifigkeit von c=100 die Federkraft gemessen und in einem Vektor abgelegt.
Angenommen ich würde diese Steifigkeit jetzt nicht kennen. Aber ich hätte eben eine Vektor mit den der gemessenen Federkraft.
Jetzt müsste es doch mit Hilfe der SIT möglich sein, eine Paramteridentifikation (Federsteifigkeit) durchzuführen.

Kann mir irgendjemand bei diesem Problem Hilfestellung leisten ?
In welche Form muss die DGL überführt werden. Und welche Befehle finden den von mir gesuchten Paramter ?


Viel dank im Voraus für Eure Hilfe !

Gruß aus Heiligenhaus
ALDURO !
Private Nachricht senden Benutzer-Profile anzeigen


Thomas84

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 11.11.2009, 12:22     Titel:
  Antworten mit Zitat      
Wenn ich es richtig verstehe suchst du den Parameter c der die Funktion

Code:

chisq = sum((f-m*ypp).^2)
 


wobei f der Vektor mit den gemessenen Federkräften ist und ypp die zweite Ableitung von y.

Das geht z.B. mit fminsearch.

Pseudocode:

Code:


c0 = 100;                          % Anfangswert
c = fminsearch(chisq,c0);   % Minimierung der Funktion chisq in Abhängigkeit von c


function v = chisq(c)

load(f);                                % gemessenen Werte laden
y = ode45(...);                     % DGL lösen
ypp = gradient(gradient(y));  % zweite Ableitung berechnen
v =  sum((f-m*ypp).^2);       % Abweichung zwischen gemessenen und berechneten Werten

 


Ich hoffe du kannst damit was anfangen. Geht sicherlich noch viel schöner, zumal die DGL ja auch analytisch lösbar ist.
 
alduro
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 62
Anmeldedatum: 30.01.08
Wohnort: Tucson , AZ
Version: ---
     Beitrag Verfasst am: 11.11.2009, 13:18     Titel:
  Antworten mit Zitat      
Super vielen Dank für die Antwort ....

Ok, deine Vorschlag lösst das Problem... Und vorallem hilft es mir beim Verständniss. Dabnke dafür !

Jetzt wirds ein bischen komplexer :

Nehmen wir jetzt an, dass F nun nicht nur von x sonder von mehreren Paramtern abhängt :

Beispiel :

F(x,xd,x^2,xd^2,...)

also die Form F=a1x+a2*x^2+a3*xd+a4*xd^2*... hat.

Wie kann ich denn dann an die Sache rangehen ?


Gruß ALDURO !
_________________

Hallo,
ich arbeite zur Zeit an einer verbesserten Kontaktabbildung im MKS Tool ADAMS.
Spannenden Sache, aber im Moment gibt es noch viel offene Fragen ... Aber das wird schon P-)
Private Nachricht senden Benutzer-Profile anzeigen
 
Thomas84

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 11.11.2009, 14:12     Titel:
  Antworten mit Zitat      
hm, ich versteh nicht ganz was jetzt x und xd ist.
Prinzipiell vergleicht man bei der Parameterschätzung immer zwischen den gemessenen und den vorhergesagten Werten und versucht die Abweichung in Abhängigkeit der Parameter zu minimieren.

Wenn F von zwei Variablen abhängt, berechnet man zuerst beide (z.B. durch lösen einer DGL) und daraus F(x1,x2; a1, a2, ...). Dann kann wieder die Abweichung (F - F_gemessen)^2 berechnen und minimieren.
 
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.