|
besserpunk |

Forum-Newbie
|
 |
Beiträge: 7
|
 |
|
 |
Anmeldedatum: 13.01.09
|
 |
|
 |
Wohnort: Magdeburg
|
 |
|
 |
Version: R2008b
|
 |
|
|
 |
|
Verfasst am: 13.01.2009, 20:57
Titel: Parameteridentifikation
|
 |
|
 |
|
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
Beschreibung: |
|
 Download |
Dateiname: |
solve.m |
Dateigröße: |
770 Bytes |
Heruntergeladen: |
644 mal |
|
|
|
|
|
Epfi |

Forum-Meister
|
 |
Beiträge: 1.134
|
 |
|
 |
Anmeldedatum: 08.01.09
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 14.01.2009, 00:10
Titel:
|
 |
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?
|
|
|
besserpunk |
Themenstarter

Forum-Newbie
|
 |
Beiträge: 7
|
 |
|
 |
Anmeldedatum: 13.01.09
|
 |
|
 |
Wohnort: Magdeburg
|
 |
|
 |
Version: R2008b
|
 |
|
|
 |
|
Verfasst am: 14.01.2009, 20:00
Titel:
|
 |
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.
a und theta muss ich bestimmen,
danke für dein bemühen
|
|
|
Epfi |

Forum-Meister
|
 |
Beiträge: 1.134
|
 |
|
 |
Anmeldedatum: 08.01.09
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 14.01.2009, 21:06
Titel:
|
 |
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.
|
|
|
besserpunk |
Themenstarter

Forum-Newbie
|
 |
Beiträge: 7
|
 |
|
 |
Anmeldedatum: 13.01.09
|
 |
|
 |
Wohnort: Magdeburg
|
 |
|
 |
Version: R2008b
|
 |
|
|
 |
|
Verfasst am: 14.01.2009, 21:19
Titel:
|
 |
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
|
|
|
besserpunk |
Themenstarter

Forum-Newbie
|
 |
Beiträge: 7
|
 |
|
 |
Anmeldedatum: 13.01.09
|
 |
|
 |
Wohnort: Magdeburg
|
 |
|
 |
Version: R2008b
|
 |
|
|
 |
|
Verfasst am: 14.01.2009, 21:21
Titel:
|
 |
eigentlich dachte ich eher an lsgcurvefit
|
|
|
besserpunk |
Themenstarter

Forum-Newbie
|
 |
Beiträge: 7
|
 |
|
 |
Anmeldedatum: 13.01.09
|
 |
|
 |
Wohnort: Magdeburg
|
 |
|
 |
Version: R2008b
|
 |
|
|
 |
|
Verfasst am: 15.01.2009, 16:20
Titel:
|
 |
also mit solve, komme ich nicht weiter, hat vielleicht noch jemand einen Einfall, wie ich das Problem näherungsmäßig lösen kann?
|
|
|
|
|
Einstellungen und Berechtigungen
|
|
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
| RSS
Hosted by:
Copyright © 2007 - 2025
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.
|
|