|
Chris987 |
Forum-Newbie
|
|
Beiträge: 8
|
|
|
|
Anmeldedatum: 12.03.13
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 12.03.2013, 16:37
Titel: Parameteroptimierung
|
|
|
|
|
Hallo liebe Gemeinde,
dies ist mein erster Beitrag. bevor ich mit meiner ersten Frage komme, kurz zu mir. Ich arbeite seit einem Monat mit Matlab, das erste mal "richtig" programmieren, und studiere Maschinenbau.
Ich hoffe das problem ist hier richtig. (falls nicht bitte verschieben)
Zu meinem Problemfall. Ich habe Messwerte und Simulationswerte. Die Simulationswerte lasse ich mir über mehrere (zusammengehörige) Formeln aus einer Veröffentlichung berechnen. In diesen Formeln gibt es drei Parameter (c1,c2,c3).
Die Schwierigkeit für mich liegt nun darin, mathematisch adäquat mit Matlab zu formulieren. Die erwähnten drei Parameter möchte ich neu bzw. optimal bestimmen. (Idee: Methode der kleinsten Fehlerquadrate).
In die drei Gleichungen (die je eine der Konstanten enthalten) werden Messwerte Druck, Temperatur etc. eingelesen. Der Simulationswert kommt durch das Aufsummieren der Schleifeniterationen zustande.
Für jede Messung wird also einmal eine komplette Forscheife durchlaufen. In jeden Durchlauf werden die jeweils gültigen Werte für p,T usw. eingesetzt.
Gleichung1: ein Produkt wird gebildet *p*T*c1
Gleichung2: bestehende Produktmenge wird oxidiert*p*T*c2
Gleichung2: bestehende Produktmenge wird (anders) oxidiert*p*T*c3
Nach Beenden der Schleife ist die aktuelle Produktmenge mit dem oben erwähnten Messwert zu vergleichen. (das habe ich für ausreichend viele Messungen vorliegen).
Meine Idee ist es das Minimum hiervon für c1, c2, c3 zu finden:
Das "Produkt" einer einzelnen Schleife ist dabei Gl1 - Gl2 - Gl3
Die innere Summe ist gewissermaßen das Ergebnis des oben beschrieben n-fachen Schleifendurchlaufs der drei Gleichungen.
Ich weiß nun leider nicht, wie ich dies konkret formulieren kann.
Ich denke fminsearch wäre hier sinnvoll.
1. Hoffentlich habe ich meine Fragestellung verständlich gestellt. und keine elementar banale Sache übersehen.
2. Wie kann ich sie euch verständlicher machen?
3. Hat jemand eine Idee oder einen Ratschlag?
jedem der sich ein bischen hiermit beschäftigt sei schon einmal gedankt.
Lieben Gruß
Chris
|
|
|
|
|
MaFam |
Forum-Meister
|
|
Beiträge: 799
|
|
|
|
Anmeldedatum: 02.05.12
|
|
|
|
Wohnort: ---
|
|
|
|
Version: R2009b
|
|
|
|
|
|
Verfasst am: 14.03.2013, 09:36
Titel:
|
|
Hallo,
besteht die Frage noch?
Grüße, Marc
|
|
|
Chris987 |
Themenstarter
Forum-Newbie
|
|
Beiträge: 8
|
|
|
|
Anmeldedatum: 12.03.13
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 14.03.2013, 09:49
Titel:
|
|
Hallo,
die Frage ist noch aktuell, ich will aber einfach mal meinen Lösungsansatz hier zur Diskussion stellen.
Ich konstruiere seit gestern eine Schleife, die das Problem lösen soll.
Sie ist leider sehr primitiv und erfordert noch einiges an Abstimmungsarbeit.
Die Variablen auf einmal zu bestimmen, ist mir noch zu unübersichtlich, darum probiere ich, die drei Variablen nacheinander zu optimieren.
ich stelle hier mal den Code rein.
Das gute Stück funktioniert aber noch nicht. Es merkt leider nicht, wenn es über das Ziel "hinausschießt". da arbeite ich noch dran. Meine Variable c1 wächst immer munter weiter. sollte sie aber nur begrenzt.
Gruß
Christian
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.492
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 14.03.2013, 09:55
Titel:
|
|
Hallo,
es gibt hierfür fertige Funktionalität in der Optimization Toolbox:
Grüße,
Harald
|
|
|
Chris987 |
Themenstarter
Forum-Newbie
|
|
Beiträge: 8
|
|
|
|
Anmeldedatum: 12.03.13
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 14.03.2013, 10:31
Titel:
|
|
Für diese Funktionen reicht meine Matlab-kompetenz (noch) nicht aus. Eine Schwierigkeit ist vor allem das die Funktion, an die ich c1, c2, c3 übergebe, analytisch von x gar nicht abhängt.. (ein indirekter Zusammenhang besteht naturlich schon)
Der Hinweis ist natürlich aber schon ganz richtig. Sobald ich eine zufriedenstellende Lösung erreicht habe, werde ich diese hier zeigen.
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.492
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 14.03.2013, 10:48
Titel:
|
|
Hallo,
es sollte deutlich einfacher sein, sich mit Hilfe der Doku in die Verwendung dieser FUnktionen einzuarbeiten als sich langwierig selbst etwas zu basteln.
Die Zusammenhänge müssen dafür nicht analytisch sein.
Wenn du versuchst, die Parameter unabhängig voneinander zu optimieren, wirst du wahrscheinlich keine guten Ergebnisse bekommen.
Grüße,
Harald
|
|
|
|
|
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 - 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.
|
|