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

Curve Fitting - Fourier Koeffizienten

 

mathe0
Forum-Newbie

Forum-Newbie


Beiträge: 5
Anmeldedatum: 19.03.12
Wohnort: Dtl.
Version: 7.14.0739
     Beitrag Verfasst am: 19.03.2012, 17:18     Titel: Curve Fitting - Fourier Koeffizienten
  Antworten mit Zitat      
Hallo zusammen,
da ich neu bin hier im Forum, erst einmal einen freundlichen Gruß an alle. Mit Matlab kenne ich mich nicht wirklich gut aus - einfache Sachen funktionieren noch, aber dann ist auch schon Schluss.

Ich soll für eine Semesterarbeit verschiedene Funktionen aus Messwerten approximieren. Dabei entspricht x dem Drehwinkel und y der Eingriffslänge des Werkzeuges ins Werkstück (Bild1). Mit Hilfe der Curve-Fitting-TB habe ich mir verschiedene Funktionen (z.B. Gauß, Polynomial etc.) ausgeben lassen und diese per Script nachgestellt - funktioniert so weit bestens.

Jetzt wollte ich die Funktion mittels der Fourier-Reihe nachstellen, mit dem, was mir die Curve-Fitting-TB auch darstellt und ausgibt. Gebe ich allerdings die Funktion und die Koeffizienten in mein Script ein, kommt etwas völlig abwegiges heraus, zumindest für mich (Bild2). Allein schon die Größe der Koeffizienten von 1e+13/+12/+10 macht mich stutzig.

Mein Script sieht wie folgt aus (mit Daten aus Curve-Fitting-TB - Bild3)
Code:
%Fourier4 für Messwerte
clear;
load('test.mat'); %Messwerte
figure(1); clf;
plot(x,y,'.'); % Plot Messwerte
% Fourier-Koeffizienten aus Curve-Fitting-Toolbox
a0 =  -1.069e+13;
a1 =   1.709e+13;
b1 =  -9.389e+11;
a2 =  -8.506e+12;
b2 =   9.377e+11;
a3 =   2.413e+12;
b3 =   -4.01e+11;
a4 =  -2.986e+11;
b4 =   6.664e+10;
w  =  -0.0005865;
% Fourier-Reihe aus Curve-Fitting-Toolbox
f=a0 + a1*cos(x*w) + b1*sin(x*w) + ...
  a2*cos(2*x*w) + b2*sin(2*x*w) + a3*cos(3*x*w) + b3*sin(3*x*w) + ...
  a4*cos(4*x*w) + b4*sin(4*x*w);
figure(2); clf;
plot(x,f,'r');


Kann mir bitte jemend erklären, warum das so ist und was ich anstellen muss, damit die Taylorreihe passt.

Danke im Voraus
die mathe0

test.rar
 Beschreibung:
Messwerte

Download
 Dateiname:  test.rar
 Dateigröße:  2.42 KB
 Heruntergeladen:  512 mal
Bild3.JPG
 Beschreibung:
Curve-Fitting TB, Fourier4

Download
 Dateiname:  Bild3.JPG
 Dateigröße:  115.05 KB
 Heruntergeladen:  936 mal
Bild2.JPG
 Beschreibung:
Plot Fourier4 nach CF-TB

Download
 Dateiname:  Bild2.JPG
 Dateigröße:  40.05 KB
 Heruntergeladen:  912 mal
Bild1.JPG
 Beschreibung:
Plot Messwerte

Download
 Dateiname:  Bild1.JPG
 Dateigröße:  40.95 KB
 Heruntergeladen:  896 mal
Private Nachricht senden Benutzer-Profile anzeigen


mathe0
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 5
Anmeldedatum: 19.03.12
Wohnort: Dtl.
Version: 7.14.0739
     Beitrag Verfasst am: 25.03.2012, 08:49     Titel:
  Antworten mit Zitat      
Hallo,

weiß wirklich keiner einen Rat? Wie sieht es mit Dir aus, Andy386?
Mein ganzes probieren hat bisher keinen Efolg gehabt. Und nein, ich bin nicht bradfury - der hier:
http://www.gomatlab.de/curve-fittin.....hlight,curve+fitting.html

Und natürlich muss es im vorherigen post "Fourier-" und nicht "Taylerreihe" lauten.

mfg
die mathe0
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.495
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 25.03.2012, 15:38     Titel:
  Antworten mit Zitat      
Hallo,

die Koeffizienten und auch die damit verbundenen Konfidenzintervalle sagen sehr deutlich, dass der Fit Unsinn ist. Gerade bei oszillierenden Termen braucht man sehr gute Startwerte, damit etwas vernünftiges herauskommt.

Und dann stellt sich die Frage: warum verwendest du hier eine Fourierreihe? Hier gibt es doch kaum schwingende Terme.

Andererseits muss ich sagen, dass auch mir hier kein wirklich passendes Modell einfällt. Ich würde dazu neigen, den aufsteigenden und den absteigenden Teil jeweils mit einer Parabel zu modellieren.

Was möchtest du mit dem Fit machen?

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

Forum-Newbie

Forum-Newbie


Beiträge: 5
Anmeldedatum: 19.03.12
Wohnort: Dtl.
Version: 7.14.0739
     Beitrag Verfasst am: 27.03.2012, 08:50     Titel:
  Antworten mit Zitat      
Erst einmal danke Harald.
Ich habe auch noch weitere Messwerte, z.B. die Kraft am Werkzeug, in gleicher Form vorliegen, mit denen ich die gleiche Approximation durchführen wollte. Mittels der erhaltenen Funktionen wollte ich dann Integrale aufstellen, z.B. für die Arbeit. Die Integrale sollen aber innerhalb der Messwertgrenzen (erste Zeile <-> letzte Zeile) unabhängig von den Messwertschritten ausgeführt werden können.
Desweiteren soll versucht werden, eine Abhängigkeit zwischen verschiedenen Versuchsparametern herzustellen. Und da dachte ich, dass funktioniert am Besten, wenn ich dafür Gleichungen der jeweiligen Funktion habe.
Gibt es sonst eine sinnvolle Möglichkeit?

Danke und mfg
die mathe0
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.495
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 27.03.2012, 20:17     Titel:
  Antworten mit Zitat      
Hallo,

Integrale kannst du auch berechnen, ohne einen funktionalen Zusammenhang zu haben, z.B. mit trapz.

Wenn du Zusammenhänge zwischen Größen finden willst, würde ich das eine als x-, das andere als y-Werte nehmen und dann versuchen, einen vernünftigen Zusammenhang herzustellen. Für die einzelnen Größen an sich brauchst du dann keine Funktion.

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

Forum-Newbie

Forum-Newbie


Beiträge: 5
Anmeldedatum: 19.03.12
Wohnort: Dtl.
Version: 7.14.0739
     Beitrag Verfasst am: 28.03.2012, 15:53     Titel:
  Antworten mit Zitat      
Hallo Harald,

danke für die schnelle Antwort. Das mit den Integralen und der trapz-Funktion ist natürlich eine Möglichkeit, die ich noch gar nicht kannte. Ich wollte die Messwerte approximieren, da es einzlene Ausreißer gibt (s. Bild eingriff und det-eingriff). Diese Ausreißer sollten damit ausgeglichen werden.

Ich bin gerade dabei, deinen vorschlag in die Tat umzusetzen und die Werte mittels Parabeln zu approximieren. Mein erster Gedanke war, das Maximum der y_Werte zu suchen und da für die linke bzw. rechte Seite jeweils eine Parabelfkt. zu finden (da hier die Tangenten den gleich Anstieg =0 haben). Jetzt habe ich allerdings auch Messreihen, wo ein Knick/ eine Unstetigkeit vorliegt (s. bild eingriff, ca. bei Drehwinkel =0). Also werde ich weitere Unterteilungen vornehmen müssen, um eine gute Annäherung zu finden.

Deinen zweiten Ansatz habe ich nicht genau verstanden bzw. habe ich mich zu ungenau ausgedrückt. Folgende Parameter liegen vor: Radius, Drehzahl, Vorschub. Radius und Drehzahl bleiben erst einmal const., nur der Vorschub wird geändert. Bei den Messwerten ändert sich dann die Eingriffslänge und auch die Grenzen beim Drehwinkel, so dass ich von einem Parameter zwei Abhängigkeiten habe.

mfg
die mathe0

det-eingriff.JPG
 Beschreibung:

Download
 Dateiname:  det-eingriff.JPG
 Dateigröße:  69.16 KB
 Heruntergeladen:  945 mal
eingriff.JPG
 Beschreibung:

Download
 Dateiname:  eingriff.JPG
 Dateigröße:  66.67 KB
 Heruntergeladen:  925 mal
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.495
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 28.03.2012, 16:58     Titel:
  Antworten mit Zitat      
Hallo,

Ausreißer kannst du entfernen, oder mit verschiedenen Techniken aus der Signalanalyse, zum Beispiel Filterung, loswerden.

Der zweite Vorschlag hat sich quasi erledigt; ich sehe allerdings immer noch nicht die Notwendigkeit, das durch eine Gleichung zu beschreiben.

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

Forum-Newbie

Forum-Newbie


Beiträge: 5
Anmeldedatum: 19.03.12
Wohnort: Dtl.
Version: 7.14.0739
     Beitrag Verfasst am: 31.03.2012, 20:02     Titel:
  Antworten mit Zitat      
Danke Harald für Deine Hilfe. Ich denke wir können den thread hier jetzt schließen. Ich habe zwar noch keine Erklärung für meine eigentliche Frage zum CF mittels Fourier-Reihe, aber Dein Hinweis mit der Parabelaufteilung funktioniert auch (einigermaßen).

Zu meinem zweiten Problem mit den Abhängigkeiten. Ich möchte eine Formel, um sagen zu können wie die Abhängiekten bei nicht untersuchten Parametereisntellungen sind - quasi inter-/ extrapolieren. Naja, und das halt nicht rein verbal, sondern hoch technisch mit einer Formel. Aber dafür werde ich ggf. einen neuen Beitrag aufmachen (sollte ich nichts passendes im Forum finden).

danke nochmal und schönes WE
die mathe0
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 - 2024 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.