|
|
Abkühlformel mittels Messwerten optimieren |
|
Felix_neu |

Forum-Newbie
|
 |
Beiträge: 5
|
 |
|
 |
Anmeldedatum: 27.05.13
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 27.05.2013, 12:56
Titel: Abkühlformel mittels Messwerten optimieren
|
 |
|
 |
|
Hallo zusammen,
ich bin gerade im Begriff an der Fertigstellung meine Bachelorarbeit zu verzweifeln!!!
Folgendes Problem:
ich möchte eine Abkühlformel mittels Messwerten optimieren habe aber keine Anhnung wie ich das mit Matlab anstellen kann?! und ich bin der Überzeugung das es ohne Matlab nicht möglich ist...
Mit der folgenden Formel lässt sich die Abkühlzeit eines Körpers in Abhänigkeit von der Geometrie,sowie Anfangs- und Endtemperatur berechnen.
Es werden zu jedem Körper Daten zu den Geometrien,zur Abkühlzeit und zur Temperatur( m ) nach der Zeit ( t ) elektronisch erfasst.
Ziel ist es die Formel mittels der Messwerte zu verbessern.
Formel:
t=t0 [(l/l0)^a *(w/w0)^b * (v/v0)^c * (g/g0)^d * (m/m0)^e * (k/k0)^f ]
l ;w ;v ;g ;f ;k =Stehen für Geometrien und Temperaturen
l0 ;w0 ;v0 ;g0 ;f0 ;k0 =Geometrien und Temperaturen vom Simulierten Körper
a ;b ;c ; d; e; f = geben das Verhältnis von Messwerten zu Simulation für den Körper 0 an--> sind immer gleich
t =Abkühlzeit
t0 =Abkühlzeit vom Simulierten Körper
Ich hoffe ich konnte mein Problem verständlich darstellen und es kann mir jemand bei diesem Problem helfen, da ich leider im Studium nicht mit Matlab in Kontakt gekommen bin und meine Versuche, mich damit vertraut zu machen leider nicht ausreichen um diese Problem zu lösen!
Danke
|
|
|
|
|
flashpixx |

Forum-Guru
|
 |
Beiträge: 355
|
 |
|
 |
Anmeldedatum: 19.04.08
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 27.05.2013, 13:13
Titel:
|
 |
Naja kommt halt drauf an, was Du gegeben hast und was Du modellieren musst. Weiterhin musst Du definieren was "besser" heisst, d.h. Du musst mathematisch eine Definition haben, wie Du eine Verbesserung in einen Zahlenwert definieren kannst.
Ansonsten solltest Du Dir Optimierungsverfahren z.B. Gradientenabstieg, Simplex-Algorithmus, Differentialgleichungen, Simulated-Annealing, Neuronale Netze anschauen, denn mit diesen Verfahren können entsprechend Daten strukturiert und ggf optimiert werden.
Niemand wird Dir hier sagen können "was" man machen kann, da keiner Dein Problem und Deine Daten kennt. So wie ich es im Moment sehe, ist das Problem nicht matlabspezifisch, sondern das Problem ist nicht richtig formuliert.
|
|
|
Felix_neu |
Themenstarter

Forum-Newbie
|
 |
Beiträge: 5
|
 |
|
 |
Anmeldedatum: 27.05.13
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 27.05.2013, 13:31
Titel:
|
 |
Oh ha das hab ich befürchtet...wenn man sich über knapp 5 Wochen mit einem Problem beschäftigt fehlt es den Beschreibungen meist an schärfe
Im Moment ist der Unterschied zwischen den realen und die theoretischen Werte für die Abkühlzeit zu groß.Der verfügbare Datensatz umfasst mehr als 10000 Werte ( eine Funktion zu fitten ist nicht möglich da nur Anfangs- und Endwerte gegeben sind)
Grundsätzlich sehe ich die Lösung des Problems darin die Werte für a b c d e f mittels dem theoretischen und den realen Datensätzen zu optimieren.
Hierbei ergibt sich aber das Problem das eine optimierung schwierig wird wenn es 6 Variablen sind die geändert werden können...
Hoffe es ist Verständlicher geworden?!
|
|
|
flashpixx |

Forum-Guru
|
 |
Beiträge: 355
|
 |
|
 |
Anmeldedatum: 19.04.08
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 27.05.2013, 17:22
Titel:
|
 |
|
 |
|
Felix_neu hat Folgendes geschrieben: |
Oh ha das hab ich befürchtet...wenn man sich über knapp 5 Wochen mit einem Problem beschäftigt fehlt es den Beschreibungen meist an schärfe |
Das ist aber zwingend erforderlich
Felix_neu hat Folgendes geschrieben: |
Im Moment ist der Unterschied zwischen den realen und die theoretischen Werte für die Abkühlzeit zu groß.
|
Welchen Wert hat diese Aussage? Das kann von einem schlechten Messsystem bis zum fehlerhaften Modell alles sein.
Felix_neu hat Folgendes geschrieben: |
Der verfügbare Datensatz umfasst mehr als 10000 Werte ( eine Funktion zu fitten ist nicht möglich da nur Anfangs- und Endwerte gegeben sind)
|
Wenn keine weiteren Informationen zu der Funktion existieren und Du somit nur genau diese zwei Punkte (ggf redundant) als Datenpunkte hast, dann sind Deine Daten wertlos, denn sie enthalten keine für das Problem relevanten Informationen.
Felix_neu hat Folgendes geschrieben: |
Grundsätzlich sehe ich die Lösung des Problems darin die Werte für a b c d e f mittels dem theoretischen und den realen Datensätzen zu optimieren.
|
Man kann unbekannte Werte einer theoretischen Funktion optimieren, sofern a) genügend Daten vorliegen, die die Funktion möglichst gut beschreiben, d.h. also das Sampling hinreichend dicht ist und b) die Werte für die Parameter die relevanten Informationen enthalten und c) Du weisst wo das Optimierungsziel ist, d.h. Du musst präzise sagen, wie zu optimieren ist
a) ist abhängig von Deiner Messung und des Messsystems
b) entspricht der Güte Deiner Daten
c) gibt an, welches Optimierungsverfahren verwendet werden muss
Felix_neu hat Folgendes geschrieben: |
Hoffe es ist Verständlicher geworden?! |
Nein, Deine Beschreibung ist genauso unverständlich wie vorher. Nach Deiner Beschreibung kann man nicht sehen, welche Variablen der Funktion gegeben sind und welche zu optimieren sind. Dann ist Deine Definition sehr ungenau, denn eine "Geometrie" ist kein mathematischer Begriff, das kann von einem CAD Modell über Vektordaten bis hin zu irgendwelche Skalaren alles sein. Du musst eine gültige mathematische Gleichung formulieren.
Definiere zusätzlich wie zu optimieren ist, d.h. wie sollen die zu bestimmenden Variablen sein. Weiterhin ist es entscheidend, ob es sich um ein kombinatorisches Problem handelt oder um eine stetige / unstetige Struktur. Sollte die zu optimierende Funktion unstetig sein, dann entstehen hier deutlich mehr Probleme.
Weiterhin musst Du definieren, was Du als Eingaben vorhanden hast, denn davon ist abhängig wie man ggf optimiert.
Es ist somit völlig unerheblich, was Du denkst wie es zu machen ist, sondern es ist nur relevant, was und wie gegeben ist und was dann als Ziel dabei heraus kommen soll und dieses musst Du in einer mathematischen Form angeben, so dass man das dann mit Hilfe von Matlab in einen Algorithmus umwandeln kann.
|
|
|
Jan S |

Moderator
|
 |
Beiträge: 11.057
|
 |
|
 |
Anmeldedatum: 08.07.10
|
 |
|
 |
Wohnort: Heidelberg
|
 |
|
 |
Version: 2009a, 2016b
|
 |
|
|
 |
|
Verfasst am: 27.05.2013, 18:45
Titel:
|
 |
Hallo felix_neu,
flashpixx hat Folgendes geschrieben: |
Es ist somit völlig unerheblich, was Du denkst wie es zu machen ist, sondern es ist nur relevant, was und wie gegeben ist und was dann als Ziel dabei heraus kommen soll ... |
Es mag für die Lösung unerheblich sein, was Du denkst. Aber für die Diskussion im Forum ist es schon sehr förderlich, wenn Du erklärst, was Du bisher überlegt hast. So kann nicht der Eindruck entstehen, dass Du selbst bisher gar keine Mühen investiert hättest.
Leider habe ich keinen inhaltlichen Vorschlag.
Gruß, Jan
|
|
|
flashpixx |

Forum-Guru
|
 |
Beiträge: 355
|
 |
|
 |
Anmeldedatum: 19.04.08
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 27.05.2013, 19:23
Titel:
|
 |
Jan S hat Folgendes geschrieben: |
Es mag für die Lösung unerheblich sein, was Du denkst. Aber für die Diskussion im Forum ist es schon sehr förderlich, wenn Du erklärst, was Du bisher überlegt hast. So kann nicht der Eindruck entstehen, dass Du selbst bisher gar keine Mühen investiert hättest. |
@Jan: Naja also man sieht schon, dass er sich Gedanken gemacht hat, denn im ersten Post sind ja schon mal grundlegende Infos da, sie sind eben nur nicht präzise und ausreichend.
|
|
|
Felix_neu |
Themenstarter

Forum-Newbie
|
 |
Beiträge: 5
|
 |
|
 |
Anmeldedatum: 27.05.13
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 27.05.2013, 23:30
Titel:
|
 |
|
 |
|
Viel dank das sich sofort einige Leute meinem Problem annehmen!
Dann will ich jetzt mal das ganze in die gute alte mathematische Form bringen:
Es wird eine Zeit Tm erfasst mit einer Temperatur (k) mittels einer Abkühlformel soll eine Vorraussage zu einer Temperatur zum Zeitpunkt Tm gegeben werden.
geg:
t=t0 [(l/l0)^a *(w/w0)^b * (v/v0)^c * (g/g0)^d * (m/m0)^e * (k/k0)^f ]
l (breite) ;w(dicke) ;v (außendurchmesser) ;g (Temperatur zum Zeitpunkt t=0) ;f (Umgebungstemperatur) ;k (Temperatur zum Zeitpunkt T= t)
t = (berechnete Abkühlzeit)
t0 = (Abkühlzeit vom simulierten Körper)
l0 (breite) ;w0(dicke) ;v0(außendurchmesser) ;g0 (Temperatur zum Zeitpunkt t=0) ;f0(Umgebungstemperatur) ;k0(Temperatur zum Zeitpunkt T= t) =Geometrien und Temperaturen vom Simulierten Körper
a=1,3
b=0,7
c=-1,23
d=0,62
e=-1,89
f=0,67
Daten für l;w;v;g;m;k; t; Tm (ca 10000)
Werte für l0;w0;v0;g0;m0;k0; t0 sind 1 mal festgelegt und bleiben gleich
ges: die Abweichung zwischen der gemessenen Abkühlzeit und der errechneten soll mittels variation der Werte a b c d e f beseitigt werden.
ergo: es sind alle Werte gegeben und die Formel soll über die Werte a b c d e f präzisiert werden.
alle klarheiten beseitigt???
|
|
|
Felix_neu |
Themenstarter

Forum-Newbie
|
 |
Beiträge: 5
|
 |
|
 |
Anmeldedatum: 27.05.13
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 28.05.2013, 13:30
Titel:
|
 |
ist das Problem noch nicht deutlicher geworden oder vermag die Lösung doch etwas komplexer zu werden
|
|
|
flashpixx |

Forum-Guru
|
 |
Beiträge: 355
|
 |
|
 |
Anmeldedatum: 19.04.08
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 28.05.2013, 14:08
Titel:
|
 |
|
 |
|
Felix_neu hat Folgendes geschrieben: |
ges: die Abweichung zwischen der gemessenen Abkühlzeit und der errechneten soll mittels variation der Werte a b c d e f beseitigt werden.
|
Nennt man SSE (sum of squared errors), also klassisch quadratische Fehlerminimierung.
Ich gehe mal davon aus, dass ich die Funktion als stetig voraussetzen kann.
Dann wäre http://www.mathworks.de/de/help/optim/ug/fminunc.html oder http://www.mathworks.de/de/help/optim/ug/lsqnonlin.html zu verwenden, um das Minimum der Fehlerfunktion zu bestimmen, aus dem Minimum ergeben sich dann die Werte für die gesuchten Variablen. Ggf das ganze noch mit einem Multistart versehen um mehrere mögliche gute Lösungen zu finden und diese via kombinatorischer Optimierung dann noch mal zu bewerten und eben das "beste" auswählen zu können. Ggf kann es etwas kniffelig sein, da die Variablen im Exponenten stehen das ganze stabil zu optimieren, das lässt sich aber mittels Batch Aufbau der Programmierung stabiliseren.
|
|
|
Felix_neu |
Themenstarter

Forum-Newbie
|
 |
Beiträge: 5
|
 |
|
 |
Anmeldedatum: 27.05.13
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 28.05.2013, 14:32
Titel:
|
 |
Danke flashpixx,
flashpixx hat Folgendes geschrieben: |
Ich gehe mal davon aus, dass ich die Funktion als stetig voraussetzen kann. |
ja die Annahme kann ich bestätigen.
die Variante über das kleinste Fehlerquadrat hab ich mir auch schon angeschaut und man könnte ggf durch logarithmieren die Variablen aus dem Exponenten bekommen.weiß nur noch nicht ob man das ohne mathematische Bedenken machen kann...
und kann ich da dann gleich alle 5 Variablen optimieren lassen und wenn ja wie?
flashpixx hat Folgendes geschrieben: |
Ggf das ganze noch mit einem Multistart versehen um mehrere mögliche gute Lösungen zu finden. |
wie stell ich das an???
flashpixx hat Folgendes geschrieben: |
das lässt sich aber mittels Batch Aufbau der Programmierung stabiliserenkann. |
was steckt hinter Batch Aufbau?
scheint mir so als könnte man mit matlab das Problem lösen aber eben nur "man"
|
|
|
flashpixx |

Forum-Guru
|
 |
Beiträge: 355
|
 |
|
 |
Anmeldedatum: 19.04.08
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 28.05.2013, 15:14
Titel:
|
 |
|
 |
|
Felix_neu hat Folgendes geschrieben: |
die Variante über das kleinste Fehlerquadrat hab ich mir auch schon angeschaut und man könnte ggf durch logarithmieren die Variablen aus dem Exponenten bekommen.weiß nur noch nicht ob man das ohne mathematische Bedenken machen kann...
|
Naja Du berechnest die Funktion mit zufällig initialisierten Werten Deiner Variablen und bestimmst den Fehler zwischen dem dazu gehörigen Messwert. Du versuchst dann durch Änderung der Variablen (anhand des Gradienten) eben den Gesamtfehler kleiner zu bekommen. Das liefert Dir Matlab
Felix_neu hat Folgendes geschrieben: |
und kann ich da dann gleich alle 5 Variablen optimieren lassen und wenn ja wie?
|
Ja, siehe oben.
Felix_neu hat Folgendes geschrieben: |
wie stell ich das an???
|
mehrfach mit unterschiedlichen Startwerten laufen lassen
Felix_neu hat Folgendes geschrieben: |
was steckt hinter Batch Aufbau? |
An einem kleinen Bsp: Du hast
Es ist numerisch "einfacher" das a vor der Exponentialfunktion anzupassen, als das a innerhalb des Exponenten, d.h. evtl muss man schauen, dass man dies etwas beeinflusst, z.b. dadurch dass man zuerst den Exponenten zu optimieren und dann den Vorfaktor, weil es eben hintereinander angelegte Optimierungen sind eben "Batch".
Kommt aber durchaus auf die konkrete Funktion und der Daten an, ob das Problem existiert. (Ich hab's nur als Hinweis erwähnt)
Je nach Problem kann es auch sinnvoll sein, zuerst die erste Variable zu optimieren und dann diese fest zu setzen und dann die nachfolgenden, ist aber auch von dem genauen Problem abhängig.
Was wichtig ist, dass Du die Funktion möglichst fein gesampelt hast, ich verweise auf http://de.wikipedia.org/wiki/Nyquist-Shannon-Abtasttheorem Du solltest doppelt so viele Stützstellen haben, wie Du Veränderungen in Deiner Kurve haben kannst. Zusätzlich sollten die Stützstellen über das gesamte Intervall verteilt sein, in dem Du optimieren willst, d.h. Anfangs- und Endwert sind für eine Optimierung nicht ausreichend, es wird dann zwar ein Ergebnis raus kommen, was aber nicht gut ist.
|
|
|
|
|
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.
|
|