ich hänge leider aktuell an einem Problem.
Gegeben sind zwei Vektoren. Ein Drehzahlvektor (Drehzahl) und ein Messwert (Wert) zur Drehzahl.
Ziel ist eine Kurve durch die Messwerte zu legen.
Bei einer geraden hat es funktioniert, nur bräuchte ich für diesen Anwendungsfall eine Kurve.
Folgender code wurde für den Plot verwendet:
Code:
%'Drehzahl' ist Drehzahlvektor & 'Mess' der Messwertvektor
[p,S] = polyfit(Drehzahl,Mess,5);
&'5' diente für den Plot, gleiches Problem bei verwendung von 3, 2, etc.
[y_fit,delta] = polyval(p,Drehzahl,S);
plot(Drehzahl,Mess,'bo') hold on
plot(Drehzahl,y_fit,'r-')
Die Kurve an sich im Plot sieht gut aus, allerdings stören mich die vielen Geraden Linien die da noch verlaufen. Wie kann ich diese weg bekommen?
Danke schon einmal!!
Viele Grüße
die Punkte werden in der Reihenfolge verbunden, in der sie in den Vektoren stehen. Vermutung: die Drehzahlen sind nicht sortiert.
Abhilfe wäre dann: die Drehzahlen sortieren ;) Am besten, bevor du sie in das Polynom einsetzt.
Grüße,
Harald
P.S.: liefert eine Parabel (Grad = 2) nicht fast genauso gute Ergebnisse? Dann würde ich dabei bleiben.
_________________
1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Einfach ein Genie, der Harald!
Drehzahlen und Messwerte wurden sortiert und es klappt.
Kurz zum vorgehen, falls das Problem bei anderen vorkommt.
Drehzahl = 500x1 Matrix
Mess = 5000x1 Matrix
mit der entsprechenden Abhängigkeit.
Code:
%Drehzahl sortieren, abhängigkeit zu Messwert soll bestehen bleiben
[Drehzahlsort,I] = sort(Drehzahl);
%Messwert wieder den jeweiligen Drehzahlen zuordnen
Messsort = Mess(I);
Habe nun ein Polynom 3. Grades genommen, da das sich etwas besser annähert als das 2. Grades.
Code:
%Plotten und Kurve durchlegen
[p,S] = polyfit(Drehzahlsort,Messsort,3);
[y_fit,delta] = polyval(p,Drehzahlsort,S);
plot(Drehzahlsort,Messsort,'bo') hold on
plot(Drehzahlsort,y_fit,'r-')
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
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.