LabVIEWForum.de - Bestimmen des Beharrungswert einer Erwärmungskurve

LabVIEWForum.de

Normale Version: Bestimmen des Beharrungswert einer Erwärmungskurve
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo Zusammen,

ich schreibe gerade an meiner Abschlussarbeit und bin noch ein ziemlicher Neuling in Labview. Den relativ guten Einstieg in die Programmierung mit LV verdanke ich u.a. euch und den LV-Examples Wink.
Nun bin ich jedoch auf ein Problem gestoßen, dass ich hier nicht finden konnte und hoffe auf einen kleinen Denkanstoss.
Ich nehme Temperatur-Messwerte auf und würde gerne mit möglichst wenigen Messwerten eine Prognose über einen Beharrungswert der Temperatur machen. Die Erhitzung verläuft theoretisch nach der Funktion
y = A*e^(-t/Tau)
wobei A den Beharrungswert widerspiegelt den ich gerne erfahren würde. Habt ihr vielleicht eine Idee wie ich das Problem lösen kann? Hat vll schon mal jemand eine ähnliche Prognose erstellen wollen?

LG Dom
Hi,

Du kannst ja mal ausrechnen, für welchen Wert von t welcher Anteil von A erreicht wird. Aus der Elektro-, vorzugsweise der Regelungstechnik, gibt es ein paar Faustformel, u.a. die, dass man nach 5*tau davon ausgehen kann, dass der Endwert mit einer gewissen Genauigkeit (7 Promille Fehler) erreicht ist.

Wenn man den Gedanken weiterspinnt: Zum Zeitpunkt t1 und t2 = 2*t1 messen, Daten einsetzen und Gleichungssystem lösen? Wenn Du tau kennst, reicht theoretisch ein Messpunkt. In der Praxis würde ich an mehreren Punkten messen und aus den verschiedenen Gleichungen entsprechend Mittelwerte fitten.

Grüße,

ch
Hi Chrissy,

danke für die schnelle Antwort.
Ja die Faustregeln sind mir ein Begriff (Kondensator aufladen, usw ).
Das Problem ist, tau kenn ich nicht, da es ein Prüfstand ist an dem verschiedenste Komponenten erhitzt werden.
Ich habe eine Lösung gefunden, und zwar kann man mit Hilfe von periodischen Abtastungen und Bestimmung eines delta_Temperatur auf den Beharrungswert der E-Funktion schliessen indem man linear Fittet. Klingt kompliziert, ist es aber eig nicht Wink

Ich hätte nur gerne eine 2. Variante um den Beharrungswert zu bestimmen. Gibt es vll eine Fit Methode mit der man eine gewisse Richtung der Funktion vorgeben kann oder so?

LG Dom
Dom0503 date.line='1306330795' schrieb: [ -> ]Gibt es vll eine Fit Methode mit der man eine gewisse Richtung der Funktion
Mehr als das: Es gibt einen Fit für die Funktion für f=a*(e hoch b*x) + c, also massgeschneidert auf Deine Aufgabe.
(Lass Dich nicht durch das Beispiel in der Hilfe verwirren, es funktioniert auch für negative b)
Mathematik --> Anpassung --> Exponentialanpassung
drei Punkte genügen.... kann man auch analytisch hinschreiben.

Gottfried
Hallo noch mal,

Ich habe den Exponential Fit jetzt mal getestet werde aus dem Ergebnis aber nicht schlau. Wenn ich das richtig verstehe, gebe ich doch an dieses Fitting einen Array mit X und einen mit Y Werten. Nach den 3 benötigten Werten erhalte ich dann als Double die Amplitude, die in meinem Fall eine Konstante sein sollte.
Ich habe das ganze mal über die Messzeit geplottet (s. Anhang). Rot sind die Messdaten (bzw hier eine idealisierte E-Funktion) Blau ist mein Regression wie oben beschrieben. Grün ist die Amplitude nach dem Exponential Fit.
Warum erhalte ich als Amplitude nicht auch konstante Werte?
Ich hänge einfach mal mein Vi an.
Und die einzulesenen Werte an (hier theoretische E-Funktion)

Bitte nicht auf die chaotische Verdrahtung achten Wink
Ja, in diese Falle tappen fast alle, die diese Funktion zum ersten Mal benutzen. Dein Offset beträgt +10, die defaultmaößigen Parametergrenzen für den Offset liegen jedoch im Bereich 0..0, d.h der Offset hat Null zu sein. Klar, daß dein Fittung dann nicht funktioniert.(Das ist nicht blöd, sondern hat seinen guten Grund, erkläre ich aber jetzt nicht).

Noch etwas: Wenn Du willst, daß Deine gefittete Kurve exakt, auch bei ungenauen Messwerten, im Usprung beginnt, dann setze die Gewichtung des ersten Punktes [0;0] z.B auf 1E6, die anderen auf 1.
[attachment=33980]

Edit: Hier steckt noch ein Wurm drin, finds mal selber raus. Die Zeitkonstante lt. Diagramm (63%-Wert)) ist ca. 6, und nicht 0.167 wie angezeigt. (Lösung: Zeitkonstante ist Reziprokwert)
Super danke es funktioniert. Nur hat das ganze mein Verständnis der Begriffe Amplitude und Offset etwas durcheinander gebracht. Da meine Funktion bei 0,0 beginnt und den Beharrungswert bei 10 hat, verstehe ich nicht so ganz warum ich einen Offset habe, bzw. warum die Amplitude nicht den gewünschten Wert gibt.

Ich habe da die Sinusfunktion vor Augen, deren Amplitude = Spitzenwert-Mittelwert ist und der Offset halt die Verschiebung der Kurve auf der Y-Achse.

Das mit dem Dämpfungsfaktor -0,166 stimmt schon. Da meine Funktion e^(-t/tau) ist und der Dämpfungsfaktor in LV mit e^b*x bestimmt ist (heisst Dämpfungsfaktor ist nicht gleich tau).. Somit kann tau mit -1/b ermittelt werden und ist demnach 6.
(26.05.2011 10:38 )Dom0503 schrieb: [ -> ]Nur hat das ganze mein Verständnis der Begriffe Amplitude und Offset etwas durcheinander gebracht. Da meine Funktion bei 0,0 beginnt und den Beharrungswert bei 10 hat, verstehe ich nicht so ganz warum ich einen Offset habe, bzw. warum die Amplitude nicht den gewünschten Wert gibt.
Dann lies doch mal die Hilfe. Das Fitting bezieht sich auf die Exponentilfunktion a*exp(b*t), bzw. bei Änderungn der Parametergrenzen auch auf Funktion a*exp(b*t) + c, wobei dafür die Bezeicnnung "Exponentialfunktion mit Offset c" absolut passend ist.
Du hast eine Funktion A*(1-exp(b*t). Dies ergibt sich aus der vorgenannten Funktion für den Sonderfall b<0 und c=A; a=-A.
Natürlich würde man den Endwert A deiner Funktion nicht als Offset bezeichen. Aber soll NI deswegen extra eine neue Funktion in die Palette aufnehmen, nur damit für Deinen Sonderfall die Bezeichnungen genehmer sind?
Zu verstehen gibt es da überhaupt nichts. Das Namensgebungen für a,b,c sind freie Erfindungen, die im Sonderfall mal mehr, mal weniger zutreffen - und die man nicht akzeptieren muss.
Alles klar! Danke
Referenz-URLs