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

Abkühlformel mittels Messwerten optimieren

 

Felix_neu
Forum-Newbie

Forum-Newbie


Beiträge: 5
Anmeldedatum: 27.05.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 27.05.2013, 12:56     Titel: Abkühlformel mittels Messwerten optimieren
  Antworten mit Zitat      
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
Private Nachricht senden Benutzer-Profile anzeigen


flashpixx
Forum-Guru

Forum-Guru


Beiträge: 355
Anmeldedatum: 19.04.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 27.05.2013, 13:13     Titel:
  Antworten mit Zitat      
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.
Private Nachricht senden Benutzer-Profile anzeigen
 
Felix_neu
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 5
Anmeldedatum: 27.05.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 27.05.2013, 13:31     Titel:
  Antworten mit Zitat      
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 Smile

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?!
Private Nachricht senden Benutzer-Profile anzeigen
 
flashpixx
Forum-Guru

Forum-Guru


Beiträge: 355
Anmeldedatum: 19.04.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 27.05.2013, 17:22     Titel:
  Antworten mit Zitat      
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.
Private Nachricht senden Benutzer-Profile anzeigen
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 27.05.2013, 18:45     Titel:
  Antworten mit Zitat      
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
Private Nachricht senden Benutzer-Profile anzeigen
 
flashpixx
Forum-Guru

Forum-Guru


Beiträge: 355
Anmeldedatum: 19.04.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 27.05.2013, 19:23     Titel:
  Antworten mit Zitat      
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.
Private Nachricht senden Benutzer-Profile anzeigen
 
Felix_neu
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 5
Anmeldedatum: 27.05.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 27.05.2013, 23:30     Titel:
  Antworten mit Zitat      
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??? Wink
Private Nachricht senden Benutzer-Profile anzeigen
 
Felix_neu
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 5
Anmeldedatum: 27.05.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 28.05.2013, 13:30     Titel:
  Antworten mit Zitat      
ist das Problem noch nicht deutlicher geworden oder vermag die Lösung doch etwas komplexer zu werden Question
Private Nachricht senden Benutzer-Profile anzeigen
 
flashpixx
Forum-Guru

Forum-Guru


Beiträge: 355
Anmeldedatum: 19.04.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 28.05.2013, 14:08     Titel:
  Antworten mit Zitat      
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.
Private Nachricht senden Benutzer-Profile anzeigen
 
Felix_neu
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 5
Anmeldedatum: 27.05.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 28.05.2013, 14:32     Titel:
  Antworten mit Zitat      
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.

flashpixx hat Folgendes geschrieben:

Dann wäre http://www.mathworks.de/de/help/optim/ug/fminunc.html oder http://www.mathworks.de/de/help/optim/ug/lsqnonlin.html


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" Sad
Private Nachricht senden Benutzer-Profile anzeigen
 
flashpixx
Forum-Guru

Forum-Guru


Beiträge: 355
Anmeldedatum: 19.04.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 28.05.2013, 15:14     Titel:
  Antworten mit Zitat      
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 f(x) = a \cdot e^{a \cdot x}

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.
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 - 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.