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

Parameteridentifikation

 

besserpunk
Forum-Newbie

Forum-Newbie


Beiträge: 7
Anmeldedatum: 13.01.09
Wohnort: Magdeburg
Version: R2008b
     Beitrag Verfasst am: 13.01.2009, 20:57     Titel: Parameteridentifikation
  Antworten mit Zitat      
Hallo,
ich habe folgendes Problem und komme einfach nicht mehr weiter:
ich habe eine Formel mit zwei unbekannten Koeffizienten a und theta.
Diese Formel errechnet mir aus dem Strom und der Lage die Kraft. sie ist nichtlinear. man kann sie sich so vorstellen:
F= a*[ i + theta]^2 / [k + s]^2

k ist bekannt, s ist die Lage, i der Strom, F die Kraft;
a und theta sind unbekannt und sollen ermittelt werden.

Zur Verfügung habe ich eine Matrix, wobei die erste Spalte die Werte für die Lage(s) ist, die zweite Spalte die WErte für den Strom und die Dritte Spalte die erhaltenen Ausgangswerte vom System von der Kraft. Mit diesen Eingangswerte s und i und den Ausgangswerten für F soll ich nun die Parameter errechnen. Leider finde ich in der Matlab-hilfe zur Optimization Toolbox nur Hinweise, wenn man nur einen Eingang hat. Jedoch hängt meine Funktion von zwei Variablen i und s ab, die beide quasi einen Vektor mit mehreren Messwerten darstellen. F ist quasi ebenfalls ein Vektor mit 10 Elementen.
Bitte helft mir weiter! Ich habe mein m-file mal angehängt, falls es bei ideen weiterhelfen kann.
Wie kann ich

solve.m
 Beschreibung:

Download
 Dateiname:  solve.m
 Dateigröße:  770 Bytes
 Heruntergeladen:  603 mal
Private Nachricht senden Benutzer-Profile anzeigen


Epfi
Forum-Meister

Forum-Meister



Beiträge: 1.134
Anmeldedatum: 08.01.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 14.01.2009, 00:10     Titel:
  Antworten mit Zitat      
Nur mal so grundsätzlich: meinem Verständnis nach ist deine Funktion eine Fläche.

Diese Fläche ist über zwei Achsen aufgespannt. Strom und Lage. Meinetwegen Strom nach rechts und Lage nach links. Die Kraft wird dann nach oben abgetragen und ergibt irgendeine gekrümmte Fläche.

Ziel ist also durch 10 bekannte Punkte (i, s und F sind dort gegeben) sozusagen eine Ausgleichsfläche zu legen, deren Grundgestalt Dir bekannt ist. Variabel sind dabei zwei Parameter von denen einer hässlich in einem Klammerausdruck mit Quadrat außenrum verbaut ist (was aber für eine numerische Lösung ziemlich egal ist).

Falls es so ist, wüsste ich da mit matlab auf die schnelle leider nichts. Zweidimensional wäre das ziemlich einfach.

Kannst Du mal die drei Vektoren hier posten?
Private Nachricht senden Benutzer-Profile anzeigen
 
besserpunk
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 7
Anmeldedatum: 13.01.09
Wohnort: Magdeburg
Version: R2008b
     Beitrag Verfasst am: 14.01.2009, 20:00     Titel:
  Antworten mit Zitat      
die korrekte Formel lautet:

F= a* [ ((i+theta)^2 / (k2-2*s)^2 ) - ( (-i+theta)^2 / (k1 + 2*s)^2) ]

k1, k2 sind bekannt
F ist ein Vektor mit 11 Elementen und jeweils dem Wert 2,2861, also konstant
i= (7.2 5.7 4.5 3.0 2.0 0.5 -0.6 -2.0 -3.4 -4.8 -6.1)
s= (0.3 0.35 0.4 0.45 0.5 0.55 0.6 0.65 0.7 0.75 0.Cool

a und theta muss ich bestimmen,
danke für dein bemühen
Private Nachricht senden Benutzer-Profile anzeigen
 
Epfi
Forum-Meister

Forum-Meister



Beiträge: 1.134
Anmeldedatum: 08.01.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 14.01.2009, 21:06     Titel:
  Antworten mit Zitat      
Ah, ok. Also in Wirklichkeit ist F doch keine Fläche, sondern eine Linie, weil zu jeder Lage genau ein Strom gehört, richtig? Also s(1) gehört zu i(1) und F(1) usw.

Eine exakte Lösung wirst Du dafür nicht finden, weil Du im Prinzip ein ziemlich überbestimmtes Gleichungssystem hast. 11 Gleichungen (jede Messreihe einsetzen) stehen gegen 2 Unbekannte (a, theta). Und dass das Gleichungssystem nicht linear ist, macht es nicht unbedingt hübscher.

Probier mal den Befehl help solve, falls dort was angezeigt wird hast Du Glück... Damit kannst Du das Gleichungssystem mit jeweils zwei Gleichungen exakt lösen. Einfach die Werte von zwei Messwerten einsetzen und nach a und theta lösen lassen.
Wenn Du da diverse Kombinationen der Messreihen durchprobierst wirst Du auch sehen, ob es überhaupt eine Lösung gibt, die alle 11 Gleichungen erfüllt.
Private Nachricht senden Benutzer-Profile anzeigen
 
besserpunk
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 7
Anmeldedatum: 13.01.09
Wohnort: Magdeburg
Version: R2008b
     Beitrag Verfasst am: 14.01.2009, 21:19     Titel:
  Antworten mit Zitat      
ah ok, eigentlich brauch ich keine exakte lösung, ich wollte das mit der optimization toolbox machen, um eine "näherungskurve" in dem sinne zu erhalten, daher ist mir eigentlich klar, dass sich dieses Gleichungssystem nicht eindeutig lösen lässt, ich schaue mal, was ich mit solve erreichen kann, danke erstmal Smile
Private Nachricht senden Benutzer-Profile anzeigen
 
besserpunk
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 7
Anmeldedatum: 13.01.09
Wohnort: Magdeburg
Version: R2008b
     Beitrag Verfasst am: 14.01.2009, 21:21     Titel:
  Antworten mit Zitat      
eigentlich dachte ich eher an lsgcurvefit
Private Nachricht senden Benutzer-Profile anzeigen
 
besserpunk
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 7
Anmeldedatum: 13.01.09
Wohnort: Magdeburg
Version: R2008b
     Beitrag Verfasst am: 15.01.2009, 16:20     Titel:
  Antworten mit Zitat      
also mit solve, komme ich nicht weiter, hat vielleicht noch jemand einen Einfall, wie ich das Problem näherungsmäßig lösen kann?
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.