LabVIEWForum.de - Extrapolieren von Signal

LabVIEWForum.de

Normale Version: Extrapolieren von Signal
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2 3
' schrieb:Aber den falschen Kurvenverlauf.

Mit dem Non-Linear-Curve-Fit-VI aus der Fitting-Palette habe ich innerhalb kürzester Zeit folgendes erreicht:

[attachment=39344:Image01.png]

@emitter: Probiers mal selber, ist wirklich nicht allzu schwer (und du hast das Erfolgserlebnis, selber was programmiert zu haben, als nur nachzubauen). Im Notfall nimm erst mal das Express-VI in der Fitting-Palette, aber schau später den Code an!

MfG, Jens

das problem dabei ist, dass ich mich mit den datentypen von labviw noch zu wenig auskenne... so hab ich z.b.: keine ahnung wie ich jetr dieses VI verwenden soll... nunja ich habs eben mal mit numerischer mathematik probiert... jezt rechnet der ca 1000 mal in einer schleife bis er auf ein zutreffendes ergebniss kommt... toleranz +/-1 grad, das mit nur 2 Messpunkten! Wenn ich noch check wie ich das mit mehr Messpunkten mache wirds noch genauer, bin dafür aber grad in der Matura(bei euch Abitur)zeit ziemlich ausgebucht...
wie genau wird denn ein ergebniss mit der interpolation? also ich bekomm wenn ich eine y=A*(1-exp(-t/T) funktion mit A von zb 80 simulier mit 2 Messungen einen ausgerechneten Endwert von 80,345 zb... wie genau kommt ihr hin?

Wenn wer mein VI sehen will schreibt mir einfach!

mfg
' schrieb:das problem dabei ist, dass ich mich mit den datentypen von labviw noch zu wenig auskenne... so hab ich z.b.: keine ahnung wie ich jetr dieses VI verwenden soll... nunja ich habs eben mal mit numerischer mathematik probiert... jezt rechnet der ca 1000 mal in einer schleife bis er auf ein zutreffendes ergebniss kommt... toleranz +/-1 grad, das mit nur 2 Messpunkten! Wenn ich noch check wie ich das mit mehr Messpunkten mache wirds noch genauer, bin dafür aber grad in der Matura(bei euch Abitur)zeit ziemlich ausgebucht...
wie genau wird denn ein ergebniss mit der interpolation? also ich bekomm wenn ich eine y=A*(1-exp(-t/T) funktion mit A von zb 80 simulier mit 2 Messungen einen ausgerechneten Endwert von 80,345 zb... wie genau kommt ihr hin?

Wenn wer mein VI sehen will schreibt mir einfach!

mfg
2 Messpunkte? Und damit extra(inter)polieren bei einer Anpassungsfunktion, die 2 freie Parameter (A & T) hat? Das ist ein wenig dünn.

Ergebnisse bei meinem Screenshot hängen vor allem davon ab, wieviel Rauschen ich drauf gebe und wie lange ich Daten sample (je länger, desto besser natürlich).

Wenn du nicht weisst, ob oder wie du jetzt Daten(typen) anschliesst, oder ob du es jetzt richtig gemacht hast, dann poste mal deine Versuche/VI, dann sehen wir weiter. Wobei ich sagen muss, die Online-Hilfe zum erwähnten VI ist doch eigentlich recht ausführlich...

MfG, Jens

P.S.: @Eugen: das mit nicht-lineare Anpasssung habe ich wohl etwas unglücklich ausgedrückt. Wollte halt auf das allgemeine "Non-Linear Curve Fit-VI" raus. Bei Modellen wie exp(c*x) kommt man bei der Anpassung unter Umständen mit Minimierung nach Fehlerquadratmethode aus, das kann man dann über ein lineares Gleichungssystem lösen. Aber bei Funktionen wie a + b*exp(c*x) sieht es dann schlecht bis schwierig aus, weshalb dann eben das oben erwähnte VI (welches iterativ die Parameter optimiert) angesagt ist. Aber ich schweife ab...
ich check zwar das programm von eg(danke nochmal) aber das ist auch nicht die lösung des problems... es ist eine A-A*exp(-t/T) funktion und keine A*exp(-t/T) und da ich A bestimmen will und daher nicht weis kann ich das auch nicht irgendwie umformen... die nicht lineare kurvenanpassung übersteigt wirklich meine LabVIEWkenntnisse bei weitem... ich versteh einfach nicht was ich für den f(x,a) eingang bereitstellen soll, bzw für den DATEN eingang, ich hab nochnie mit sowas gearbeitet und auch die beispiele die LabVIEW zur verfügung stellt funktionieren zwar, machen mirs aber nicht leichter...
jens, ist die funktion von dir ein natürlicher logarithmus oder eine a-A*exp... funktion?

mfg
Hast Du denn schon mal in ein Lehrbuch für experimentelle Physik, Regelungstechnik oder Systemtheorie geworfen?

Soweit ich mich erinnern kann, kann man solche Erwärmungsprozesse mit einem PT1- oder besser PT2-Verhalten beschreiben.

Es könnte auch nicht schaden, das ganze mal mit Stift und Papier durch zu rechnen um dadurch leichter auf den nötigen Algorithmus schliessen zu können. Aus dieser analytischen Betrachtung bekommst Du auch eine Information wieviele Stützstellen (Messwerte) Du benötigts um mit der gewünschten Genauigkeit das Ergebnis hervorzusagen.

Gruß, Robert


PS: 50min sind doch für thermische Prozesse noch eine recht angenehme Zeitspanne.. Besser als ein Gerät am Morgen anzuschalten und dann zum Nachmittagskaffee nachschauen zukönnen, wo sich das System thermisch eingependelt hat..Wink
numerisch hab ich es schon gelöst... ich brauche mehr stützpunkte das weis ich, pt1 weis ich auch bin immerhin mechatroniker, mir fehlt nicht die sachverständniss zum problem ^^ nur die zu dem funktionsblock ^^
Poste doch mal ein VI, wie weit du mit der Anpassung kommst.

Im Prinzip habe ich doch die gesamte Lösung schon beschrieben. Noch etwas Suchen und Stöbern in der Onlinehilfe (Strg-H) von LabVIEW, und du müsstest eigentlich hinkommen.

Ich werde aber nicht ohne dein Entgegenkommen eine Hausaufgaben-Lösung vorgefertigt posten.

MfG, Jens

P.S.: Ach ja, meine Screenshots zeigen die Simulation eines Signals der Art y=A*(1-exp(-t/T)), wobei ich ein weißes Rauschen drauf gegeben habe, und dann die Anpassung per Non-Linear-Curve-Fit.
' schrieb:Poste doch mal ein VI, wie weit du mit der Anpassung kommst.

Im Prinzip habe ich doch die gesamte Lösung schon beschrieben. Noch etwas Suchen und Stöbern in der Onlinehilfe (Strg-H) von LabVIEW, und du müsstest eigentlich hinkommen.

Ich werde aber nicht ohne dein Entgegenkommen eine Hausaufgaben-Lösung vorgefertigt posten.

MfG, Jens

P.S.: Ach ja, meine Screenshots zeigen die Simulation eines Signals der Art y=A*(1-exp(-t/T)), wobei ich ein weißes Rauschen drauf gegeben habe, und dann die Anpassung per Non-Linear-Curve-Fit.
ich habs ja (denk ich mal) schon soweit... ich weis nur nicht für was der f(x,a) eingang benötigt wird...

ps.: das sind keine hausaufgaben, das ist eine freiwillige diplomarbeit ;-)

[attachment=12252]
OK, das sieht doch schon mal nicht schlecht aus. Leider kann ich zwar aus dem Screenshot nicht erkennen, ob die beiden Arrays an die richtigen Eingänge angeschlossen hast, aber es wird wohl passen.

Empfehle die 2. Instanz des Anpassungs-VI (die mit Formula-String), da steht in der Hilfe von LV zu diesem VI Einiges zum Eingang "Model descriptor" drin, das ist (denke ich) einfacher für dich anzuwenden.

MfG, Jens
' schrieb:OK, das sieht doch schon mal nicht schlecht aus. Leider kann ich zwar aus dem Screenshot nicht erkennen, ob die beiden Arrays an die richtigen Eingänge angeschlossen hast, aber es wird wohl passen.

Empfehle die 2. Instanz des Anpassungs-VI (die mit Formula-String), da steht in der Hilfe von LV zu diesem VI Einiges zum Eingang "Model descriptor" drin, das ist (denke ich) einfacher für dich anzuwenden.

MfG, Jens

kanns so gehen?

[attachment=12253]

ich bekomm immer nen syntax fehler bei der auflösung
JA! Vollkommen korrekt!

Jetzt lies noch mal die Hilfe zum Eingang "initial parameters" durch. Da darf kein leeres Arrays und auch kein Array (0,0) angeschlossen sein, sondern was sinnvolles (z.B. 2 positive Werte).

MfG, Jens
Seiten: 1 2 3
Referenz-URLs