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

Temperaturverlaufskennlinie erweitern

 

Ingo2
Forum-Anfänger

Forum-Anfänger


Beiträge: 11
Anmeldedatum: 30.10.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 04.07.2011, 09:57     Titel: Temperaturverlaufskennlinie erweitern
  Antworten mit Zitat      
Hallo zusammen,

ich habe folgendes Problem:

Ich habe Temperaturmesswerte von einem Erwärmungsversuch. Jetzt möchte ich wissen, wie der Temperaturverlauf weitergehen würde. Wie könnte ich das mit Matlab machen?
Ich habe mal in der Hilfe nachgeschaut und festgestellt, dass man mit Interp1 eine Extrapolation machen kann. Ich versteh aber nicht wie?
Kann mir jemand helfen?
Private Nachricht senden Benutzer-Profile anzeigen


eupho
Forum-Meister

Forum-Meister


Beiträge: 777
Anmeldedatum: 07.01.09
Wohnort: Marburg
Version: R2009b
     Beitrag Verfasst am: 04.07.2011, 10:01     Titel:
  Antworten mit Zitat      
Wo genau liegt denn das Problem?

Zitat:
yi = interp1(x,Y,xi,method,'extrap') uses the specified interpolation algorithm specified by method to perform extrapolation for out of range values.


Gleicher Funktionsinput wie ohne die Extrapolation...
Private Nachricht senden Benutzer-Profile anzeigen
 
Titus
Forum-Meister

Forum-Meister


Beiträge: 871
Anmeldedatum: 19.07.07
Wohnort: Aachen
Version: ---
     Beitrag Verfasst am: 04.07.2011, 10:03     Titel:
  Antworten mit Zitat      
Hallo,

zuerst eine Warnung: auch wenn Politiker sehr sicher auf Extrapolationen vertrauen, sind sie doch mit Vorsicht zu genießen...

Mit interp1 geht es sehr einfach:
Code:
x = [1 2 3];
y = [3 4 5];
x5 = interp1(x,y,5,'linear','extrap');
 

Allerdings kommt es sehr auf die Daten an, ob dabei was "vernünftiges" bei rauskommt. Häufig besser: man "weiß", dass die Daten sich z.B. exponentiell verhalten. Dann macht man einen Fit (zu Fuß oder mit Hilfe der Curve Fitting Toolbox oder der Optimization Toolbox), den man dann auch außerhalb des Intervalls auswerten kann ...

Titus
Private Nachricht senden Benutzer-Profile anzeigen
 
Ingo2
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 11
Anmeldedatum: 30.10.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 04.07.2011, 10:19     Titel:
  Antworten mit Zitat      
Ich beschreibe mal mein Problem genauer. Ich habe zum einen ein Zeitverlauf (mehrere Werte) für x und ein Temperaturverlauf (mehrere Werte )bei y. Ich verstehe den Wert
xi nicht. Also bei Titus's Beispiel die Zahl 5.
Private Nachricht senden Benutzer-Profile anzeigen
 
Titus
Forum-Meister

Forum-Meister


Beiträge: 871
Anmeldedatum: 19.07.07
Wohnort: Aachen
Version: ---
     Beitrag Verfasst am: 04.07.2011, 10:24     Titel:
  Antworten mit Zitat      
Hallo,

der Wert xi ist der Punkt an dem interpoliert (oder extrapoliert) wird. In meinem Beispiel wäre [1 2 3] der gemessene Zeitbereich, [3 4 5] der gemessene Temperaturverlauf und 5 die Zeit, an der ich extrapolieren möchte (bei 'linear' müsste entsprechend der Wert 7 rauskommen als Verlängerung der Gerade). Oder grafisch:
Code:

plot([1 2 3], [3 4 5], 'b-*', [1 5], [3 7], 'b--', 5, interp1([1 2 3], [3 4 5],5,'linear','extrap'), 'r*')
 


Titus
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.501
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 04.07.2011, 10:29     Titel:
  Antworten mit Zitat      
Hallo,

es hängt sehr von den Daten ab, was hier sinnvoll ist.
Eine Alternative könnte sein, mittels Regression (z.B. nlinfit) ein Modell an die Daten anzupassen und das zur Vorhersage zu verwenden.

Vielleicht kannst du ja deine Daten oder einen Plot davon zur Verfügung stellen? Dann kann man mehr dazu sagen, was Sinn macht und was nicht.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Ingo2
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 11
Anmeldedatum: 30.10.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 04.07.2011, 13:36     Titel:
  Antworten mit Zitat      
Noch eine Frage:
wenn ich das so wie Titus vorgeschlagen hat mache, muss ich aber schon vorher wissen, welche Temperatur ich zum Beispiel nach weiteren 3000 sec habe. Aber das kann ich ja nicht wissen. Das heißt das ganze basiert nur auf grobe annhamen. Bei diesem Erwärmungsversuch tritt nach bestimmten Zeit Beharrung auf. (Temperatur bleibt konstant)
Gibt es eine Möglichkeit, in Titus's Beispiel eine bestimmte Funktion einzubauen? Zum Beispiel e Funktion oder so etwas?
Private Nachricht senden Benutzer-Profile anzeigen
 
DSP
Forum-Meister

Forum-Meister



Beiträge: 2.117
Anmeldedatum: 28.02.11
Wohnort: ---
Version: R2014b
     Beitrag Verfasst am: 04.07.2011, 13:47     Titel:
  Antworten mit Zitat      
Ingo2 hat Folgendes geschrieben:
Noch eine Frage:
wenn ich das so wie Titus vorgeschlagen hat mache, muss ich aber schon vorher wissen, welche Temperatur ich zum Beispiel nach weiteren 3000 sec habe. Aber das kann ich ja nicht wissen.


Wie kommst du denn da drauf? Du gibst einen Zeitwert in der Zukunft vor und dazu wird dir der entsprechende Y Wert (= Temp.) extrapoliert...mal unabhängig von der Genauigkeit der Extrapolation.

Titus hätte eher schreiben müssen y5 = interp1(...) an der Stelle für x=5. Das x5 als Ergebnis war da etwas irreführend.

Edit:

Zitat:
Bei diesem Erwärmungsversuch tritt nach bestimmten Zeit Beharrung auf. (Temperatur bleibt konstant)


...d.h du hast eine Sättigungsfunktion (e-Funktion)?
Private Nachricht senden Benutzer-Profile anzeigen
 
Ingo2
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 11
Anmeldedatum: 30.10.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 04.07.2011, 14:24     Titel:
  Antworten mit Zitat      
Ja genau eine Sättigungsfunktion (e-Funktion). Kann mir jemand helfen?
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.501
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 04.07.2011, 14:33     Titel:
  Antworten mit Zitat      
Hallo,

eine Interpolation wird niemals Modellierungskomponenten enthalten, sondern einfach nur stückweise Geraden oder Polynome durch die Daten legen. Eine Interpolation ist da wenig aussagekräftig.

Wenn du eine Sättigung oder ähnliches vorgeben möchtest, musst du den von mir vorgeschlagenen Ansatz der Regression wählen, z.B. mit einem Modell wie y = a*exp(-b*x) + c.

Wenn du relativ neu in MATLAB bist, tust du dir vielleicht mit der Curve Fitting Toolbox am leichtesten:
Code:

Dort kannst du dann interaktiv mit den Daten arbeiten.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Ingo2
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 11
Anmeldedatum: 30.10.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 04.07.2011, 14:59     Titel:
  Antworten mit Zitat      
Ich habe noch mal mir genauer meine Messwerte angesehen und mir ist aufgefallen, dass die Messwerte nicht so sind 1 2 3 4 sondern 1 2 2 3 4 4 usw. er nimmt dann immer den letzten Messwert. Das heißt es ist jedesmal eine Horizontale Linie.
Private Nachricht senden Benutzer-Profile anzeigen
 
DSP
Forum-Meister

Forum-Meister



Beiträge: 2.117
Anmeldedatum: 28.02.11
Wohnort: ---
Version: R2014b
     Beitrag Verfasst am: 04.07.2011, 16:01     Titel:
  Antworten mit Zitat      
Dann ist es aber nicht exponentiell. Man kann es dann eher mit einer Art Treppenfunktion vergleichen. Hast du mal die Methode von Harald ausprobiert? Ist natürlich nichts um das Ganze zu automatisieren, aber zumindest mal ein Ansatz.

Kannst du nicht mal einen plot(x,y) deiner Daten erstellen und hier posten?
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.