Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   
Bücher:

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

Software Entwicklungsingenieur (m/w) TargetLink
Modellbasierte Softwareentwicklung mit MATLAB/Simulink und dSPACE TargetLink
Continental AG - Nürnberg

Funktionsentwickler (w/m) Automobile
Entwicklung von modellbasierten Softwarelösungen in Simulink inklusive Autocode-Generierung
Bertrandt Ingenieurbüro GmbH - Frankfurt am Main

Produkt-Softwareentwickler/in Motorsteuerung
Entwicklung von Steuergeräte-Funktionen zur Regelung des Luftsystems für Benzin und Dieselmotoren
Robert Bosch GmbH - Schwieberdingen

Ingenieur (w/m) modellbasierte Entwicklung / Embedded Programmierung
Organisation und Durchführung von Projekten zur Integration von TargetLink in aktuelle Entwicklungsprozesse
dSPACE GmbH - Pfaffenhofen

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, 14: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:  98 mal
Auswertung.m
 Beschreibung:

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


Harald
Forum-Meister

Forum-Meister


Beiträge: 17.963
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2014a
     Beitrag Verfasst am: 11.12.2016, 15: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, 14: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: 17.963
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2014a
     Beitrag Verfasst am: 12.12.2016, 15: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, 16: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: 17.963
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2014a
     Beitrag Verfasst am: 12.12.2016, 17: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.