CurveFitting: Angegebene Koeffizienten sind falsch - Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Bücher:

Fachkräfte:
Informatiker (m/w) für den Bereich Toolkette Embedded Software
Weiterentwicklung einer MATLAB-/Simulink-Toolkette, Automatisierung der Code-Generierung mit TargetLink und Embedded Coder
cbb-Software GmbH - Stuttgart

Softwareentwickler (m/w) automatische Codegenerierung
Umsetzung, Neuprogrammierung und Weiterentwicklung in Simulink, TargetLink und C
EFS - Ingolstadt, Wolfsburg

Entwicklungsingenieur (w/m) CO2- Lasersysteme
Planung, Durchführung und Auswertung von Tests an CO₂-Hochleistungsverstärkern
TRUMPF Lasersystems for Semiconductor Manufacturing GmbH - Ditzingen

Software Entwickler Automotive Embedded (w/m)
Modelbased Softwareentwicklung für Automotive Steuergeräte
ESG Elektroniksystem- und Logistik-GmbH - Fürstenfeldbruck, Ingolstadt

Ingenieur (w/m) Qualitätssicherung im Use Case Test
Erstellung und Erweiterung von Kundenszenarien aus dem Bereich des Tests und der Entwicklung von Steuergeräten
dSPACE GmbH - Paderborn

weitere Angebote

Partner:


Vermarktungspartner


Forum
      Option
[Erweitert]
  Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

CurveFitting: Angegebene Koeffizienten sind falsch

 

Patrick96
Forum-Anfänger

Forum-Anfänger


Beiträge: 10
Anmeldedatum: 11.10.16
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 11.12.2016, 15:28     Titel: CurveFitting: Angegebene Koeffizienten sind falsch
  Antworten mit Zitat      
Hallo zusammen,

ich habe ein kleines Problem mit dem Curve Fitting Tool. Zuerst habe ich bei versch. Frequenzen in einem Prüfstand Messwerte aufgenommen. Diese habe ich in ein M Files eingesetzt und mittels cftool eine Annäherungsfunktion bestimmt.
Die "beste" Funktion ist die Fourier Reihe mit 5 Gliedern. Matlab hat mir auch gleich die Koeffizieten ausgeben und ich war zufrieden.
Wenn ich jetzt aber in meinem Skript eine Funktion mit den genannten Koeffizienten in der Form:

f(x) = 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) + a5*cos(5*x*w) + b5*sin(5*x*w


ausschreiben will, dann erhalte ich komplett andere Werte (statt 40-->4.595789459112287e+04). Zur Unterstützung der Verständlichkeit hänge ich mein Skript und ein Bild des CFTools an.

Vielen Dank für Eure Unterstützung!

Viele Grüße

Patrick96 

CFTool.JPG
 Beschreibung:

Download
 Dateiname:  CFTool.JPG
 Dateigröße:  113.41 KB
 Heruntergeladen:  150 mal
Auswertung.m
 Beschreibung:

Download
 Dateiname:  Auswertung.m
 Dateigröße:  3.68 KB
 Heruntergeladen:  114 mal
Private Nachricht senden Benutzer-Profile anzeigen


Harald
Forum-Meister

Forum-Meister


Beiträge: 18.820
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2014a
     Beitrag Verfasst am: 11.12.2016, 16:47     Titel:
  Antworten mit Zitat      
Hallo,

schau dir mal die Konfidenzintervalle deiner Koeffizienten an. Diese sind extrem groß und die Koeffizienten daher alles andere als aussagekräftig.

Bietet sich denn hier wirklich eine Fourierzerlegung an, und das mit so vielen Termen? Da sind doch kaum Schwingungen.

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

Forum-Anfänger

Forum-Anfänger


Beiträge: 10
Anmeldedatum: 11.10.16
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 12.12.2016, 15:28     Titel:
  Antworten mit Zitat      
Hallo,

vielen Dank für den Hinweis mit dem Konfidenzintervallen. Bei der Auswahl des Algortihmus habe ich mich bevorzugt an die Darstellung aus meinem Bild "Cftool" gehalten. D.h. wenn eine ausgwählte Funktion eine hohe Überscheidung mit den Messpunkten ergab, dann habe ich diesen Algorithmus ausgewählt.

Ich habe jetzt auch andere Algorithmen ausprobiert, aber die Annäherung an die Messpunkte ist eher schlecht. Gibt es denn noch eine andere Möglichkeit, um aus Messwerten einen Funktionsterm zu generieren?

Viele Grüße

Patrick Quindel 
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 18.820
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2014a
     Beitrag Verfasst am: 12.12.2016, 16:11     Titel:
  Antworten mit Zitat      
Hallo,

muss es denn eine Funktion sein? Ginge auch eine Spline?
Könnte die Funktion stückweise definiert sein, also z.B. zwei Geraden?

Ohne die Daten ist es natürlich schwierig. Ich könnte mir aber sowas wie
a*x + b*exp(-c*x)
vorstellen.

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

Forum-Anfänger

Forum-Anfänger


Beiträge: 10
Anmeldedatum: 11.10.16
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 12.12.2016, 17:54     Titel:
  Antworten mit Zitat      
Hallo,

als mein Ziel ist die Entwicklung einer Näherungsfunktion um "Messwerte"in Abhängigkeit der Frequenz berechnen zu können. Grund dafür ist die eigentliche Versuchsreihe:
Code:
%
Frequenz=[1000;920;840;760;680;600;520;440;360;280;200;197.888889000000;195.777778000000;193.666667000000;191.555556000000;189.444444000000;187.333333000000;185.222222000000;183.111111000000;181;178.888889000000;176.777778000000;174.666667000000;172.555556000000;170.444444000000;168.333333000000;166.222222000000;164.111111000000;162;159.888889000000;157.777778000000;155.666667000000;153.555556000000;151.444444000000;149.333333000000;147.222222000000;145.111111000000;143;140.888889000000;138.777778000000;136.666667000000;134.555556000000;132.444444000000;130.333333000000;128.222222000000;126.111111000000;124;121.888889000000;119.777778000000;117.666667000000;115.555556000000;113.444444000000;111.333333000000;109.222222000000;107.111111000000;105;102.888889000000;100.777778000000;98.6666670000000;96.5555560000000;94.4444440000000;92.3333330000000;90.2222220000000;88.1111110000000;86;83.8888890000000;81.7777780000000;79.6666670000000;77.5555560000000;75.4444440000000;73.3333330000000;71.2222220000000;69.1111110000000;67;64.8888890000000;62.7777780000000;60.6666670000000;58.5555560000000;56.4444440000000;54.3333330000000;52.2222220000000;50.1111110000000;48;45.8888890000000;43.7777780000000;41.6666670000000;39.5555560000000;37.4444440000000;35.3333330000000;33.2222220000000;31.1111110000000;29;26.8888890000000;24.7777780000000;22.6666670000000;20.5555560000000;16.3333330000000;14.2222220000000;12.1111110000000];



Messwerte=[41.8521075200000;38.3342283800000;34.8972801700000;31.2707262600000;27.6503254900000;23.6769890100000;19.3066549800000;17.6357372300000;13.4798353700000;9.36579601900000;6.33719890700000;6.25183186800000;6.18131608300000;6.10672887800000;6.03660240400000;5.94665308200000;5.86844219900000;5.78780127300000;5.70914259000000;5.64192842300000;5.57127862000000;5.47366808200000;5.37484597900000;5.27059744300000;5.19266938100000;5.13824147300000;5.08069108400000;5.02856453500000;4.95527511400000;4.89196879700000;4.82532058000000;4.76520182300000;4.70160061200000;4.64950807600000;4.57862373900000;4.51919852400000;4.47731666500000;4.40836704100000;4.34018264300000;4.25828362100000;4.19720308400000;4.12783629000000;4.06316434500000;4.00396641700000;3.94963096300000;3.88857047200000;3.86425145700000;3.82789523500000;3.77573053000000;3.73141840700000;3.69248396200000;3.62982888200000;3.56642953100000;3.51235317900000;3.47480251400000;3.41226075500000;3.35327765200000;3.30105045400000;3.23332879200000;3.15126824000000;3.10049536000000;3.04595166800000;2.98215617200000;2.94387568200000;2.88582929800000;2.82135457700000;2.77164759100000;2.70043591600000;2.63423801500000;2.56829911000000;2.51426285900000;2.45024730300000;2.38322495500000;2.33304424300000;2.27677527800000;2.23540686200000;2.21551406700000;2.21079167100000;2.24012185400000;2.29382518400000;2.37844144700000;2.52275947400000;2.71496198700000;2.93953089000000;3.22348384400000;3.50371535400000;3.88574939600000;4.36324297000000;4.82620901800000;5.54889314800000;5.99077965400000;6.57840417900000;7.21461452200000;7.65392783600000;8.21398462300000;9.20593185800000;11.8778376700000;12.4719844200000;16.6867186700000;13.2835361600000];
 


Die Messwerte wurden zu unterschiedlichen Frequenzen aufgenommen. Dadurch erben sich Lücken im Gesamtbild. Ich würde gerne mit einer Annäherungsfunktion diese schließen.

Viele Grüße

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

Forum-Meister


Beiträge: 18.820
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2014a
     Beitrag Verfasst am: 12.12.2016, 18:19     Titel:
  Antworten mit Zitat      
Hallo,

ist das Schwingen im rechten Teil denn ein Merkmal der Messung oder eher Messfehler?

Eine Spline sollte doch gut geeignet sein, diese Lücken zu schließen.

Wenn du eine Beschreibung durch eine Funktion möchtest, dann bietet mein Vorschlag doch eine gute Näherung mit wenigen Parametern.

Grüße,
Harald 
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
.



goMatlab ist ein Teil des goForen-Labels
goForen.de goMATLAB.de goLaTeX.de goPCB.de


 Impressum  | Nutzungsbedingungen  | Datenschutz  | Werbung/Mediadaten | Studentenversion | FAQ | goMatlab RSS Button RSS


Copyright © 2007 - 2018 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks
Partner: LabVIEWforum.de

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.