|
|
Daten aus contour plot ineraktiv benutzen |
|
SparX |
Forum-Anfänger
|
|
Beiträge: 47
|
|
|
|
Anmeldedatum: 11.07.18
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 06.08.2018, 08:54
Titel: Daten aus contour plot ineraktiv benutzen
|
|
Hallo Matlab-Forum,
ich habe einen contour plot aus Motordaten erstellt, den ich in einem weiteren Vorgehen nutzen möchte.
Dieser plot hat als Eingangsgrößen die Drehzahl auf der X-Achse und einen Mitteldruck auf der Y-Achse. Die dargestellten Isolinien zeigen den aktuellen spezifischen Verbrauch.
Für die Berechnung des spezifischen Verbrauchs in einem Fahrzyklus berechne ich die Variablen "Drehzahl" und "Mitteldruck", um jetzt aus dem contour plot den zugehörigen spezifischen Verbrauch zu erhalten.
Mein Frage dazu ist:
Wie kann ich diese Kombination aus vorgegebenen Motordaten und aus einem Fahrzyklus errechneten Daten programmieren?
Gruß,
SparX
|
|
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.495
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 06.08.2018, 09:17
Titel:
|
|
Hallo,
für mich klingt es sinnvoller, die Daten über Interpolation zu ermitteln, z.B. mit
griddata
.
Grüße,
Harald
_________________
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 ;)
|
|
|
SparX |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 47
|
|
|
|
Anmeldedatum: 11.07.18
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 06.08.2018, 09:46
Titel:
|
|
Hallo Harald,
in diesem Fall sind die Daten aus dem contour plot schon interpolierte Daten.
Das, was ich quasi mit meiner Rechnung erreichen möchte ist:
Berechne ein neues "n" und ein neues "p" und zeige mir dafür die Z-Komponente aus dem contour plot.
Gruß,
SparX
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.495
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 06.08.2018, 09:54
Titel:
|
|
Hallo,
Zitat: |
Berechne ein neues "n" und ein neues "p" und zeige mir dafür die Z-Komponente aus dem contour plot. |
... und genau dazu würde ich Interpolation verwenden.
Für ein Auslesen aus einem Plot sehe ich keine Möglichkeit.
Grüße,
Harald
_________________
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 ;)
|
|
|
SparX |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 47
|
|
|
|
Anmeldedatum: 11.07.18
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 06.08.2018, 10:29
Titel:
|
|
Ah, okay. Das werde ich einmal versuchen. Danke.
Gruß,
Sparx
|
|
|
SparX |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 47
|
|
|
|
Anmeldedatum: 11.07.18
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 07.08.2018, 07:27
Titel:
|
|
Harald hat Folgendes geschrieben: |
Hallo,
Zitat: |
Berechne ein neues "n" und ein neues "p" und zeige mir dafür die Z-Komponente aus dem contour plot. |
... und genau dazu würde ich Interpolation verwenden.
Für ein Auslesen aus einem Plot sehe ich keine Möglichkeit.
Grüße,
Harald |
Hallo,
ich habe mal eine weitere Interpolation probiert. Das Problem dabei ist, dass die Länge der "n"- und "p"-Vektoren nicht mir der "z"-matrix aus dem vorherigen contour plot übereinstimmt. Daher bekomme ich bei der Interpolation eine Fehlermeldung. Ich muss also nochmal schauen, dass ich die Dimensionen der "n"- und "p"-Vektoren irgendwie anpassen kann. Diese sind allerdings vorgegeben durch eine vorherige Berechnung, daher denke ich nicht, dass sich die Längen ändern lassen ohne die Vektoren künstlich aufzublasen.
Gruß,
SparX
|
|
|
J0nas |
Forum-Century
|
|
Beiträge: 208
|
|
|
|
Anmeldedatum: 10.09.15
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ab 2016a
|
|
|
|
|
|
Verfasst am: 07.08.2018, 08:15
Titel:
|
|
Hi SparX,
da hilft dir doch auch eine Interpolation weiter?! Du nimmst einen neuen "n"- und/oder "p"-Wert und suchst bei deinen vorhandenen Werten einen "n" Wert der größer und einen kleineren Wert und interpolierst dann. Anschließend das ganze mit dem nächsten Wert, usw. Da ist doch egal ob die Vektoren unterschiedlich lang sind, oder nicht?
Grüße
Jonas
_________________
1.) Ask Google & Matlab Documentation
2.) Ask gomatlab.de & Technical Support of MathWorks
3.) Go mad, your problem is unsolvable
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.495
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 07.08.2018, 08:35
Titel:
|
|
Hallo,
das ist momentan etwas Kaffeesatz-Lesen. In welcher Form (Dimensionen) sind denn deine ursprünglichen Daten gegeben?
Im übrigen würde ich keine weitere Interpolation machen, sondern eine Interpolation mit den Rohdaten.
Grüße,
Harald
_________________
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 ;)
|
|
|
SparX |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 47
|
|
|
|
Anmeldedatum: 11.07.18
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 07.08.2018, 08:56
Titel:
|
|
Hallo,
meine errechneten Vektoren haben die Dimensionen:
n: 169x1
p: 155x1
Die Matrix, mit der interpoliert werden soll hat die Dimension:
z: 2501x3201
Und die Vektoren für die Interpolation haben die Dimension:
xi: 1x3201
yi: 1x2501
Ich würde meine errechneten Werte gerne mit den schon interpolierteN Werten vergleichen, da diese als "allgemein gültige" Daten angesehen werden können, die die Basis meiner Auswertung darstellen.
Gruß,
SparX
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.495
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 07.08.2018, 09:12
Titel:
|
|
Hallo,
wenn du das tatsächlich so willst, müsstest du die Vektoren xi und yi mit repmat aufblasen.
Ich halte es aber für wenig sinnvoll, mit bereits interpolierten Daten nochmal zu interpolieren. Bei den Rohdaten wirst du bessere Performance bekommen und vermutlich auch bessere Ergebnisse.
Grüße,
Harald
_________________
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 ;)
|
|
|
SparX |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 47
|
|
|
|
Anmeldedatum: 11.07.18
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 09.08.2018, 09:46
Titel:
|
|
Hallo,
mir ist eben noch eine andere Idee gekommen. Man könnte ja auch "einfach" mit den Wertepaaren aus den Vektoren "n" und "p" (bspw. (n(10)/p(10) oder n(100)/p(100)) in der interpolierten Matrix aus dem contour plot suchen. Sprich mit Matrix A = (x/y/z) erstellt man den Vektor b = A(x=n(100)/y=p(100)/z), da ja für die Werte x und y ein z-Wert zugeordnet ist.
Das versuche ich über
Das klappt gut bei der Berechnung für "t" und "b", aber nicht für "u".
Für die Berechnung von "u" wird dieser Fehler ausgegeben:
Während t für die Länge n ohne Probleme durchläuft, bricht die Berechnung von u schon beim 15. Wert von p ab, obwohl der p-Vektor 1184 Einträge besitzt.
Den Fehler verstehe ich allerdings nicht, da er eigentlich auch auf die Berechnung von t(zaehler) zutreffen müsste.
Gruß,
SparX
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.495
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 09.08.2018, 10:37
Titel:
|
|
Hallo,
der Fehler kann dann auftreten, wenn y mehrere Elemente enthält, die p(zaehler) gleichen, oder auch gar keine. Gib nach der Fehlermeldung mal
ein, dann siehst du's ja.
Grüße,
Harald
_________________
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 ;)
|
|
|
SparX |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 47
|
|
|
|
Anmeldedatum: 11.07.18
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 09.08.2018, 11:56
Titel:
|
|
Hallo,
für
wird ein 0-Vektor ausgegeben, obwohl das nicht sein kann.
Für "n" hat es ohne Probleme funktioniert. Da war es auch kein Problem, dass mehrere Werte des "n"-Vektors den gleichen Wert wie der "x"-Vektor hatten.
Bspw. für
berechnete sich der "t"-Vektor zu
Und am Anfang macht das Programm auch das, was es soll. Aber es bricht nach dem 15. Wert ab.
Daher wird erst
u=[1 1 1 1 1 1 1 1 1 1 1 1 75 251 361]
berechnet und dann kommt die Fehlermeldung.
Gruß,
SparX
|
|
|
J0nas |
Forum-Century
|
|
Beiträge: 208
|
|
|
|
Anmeldedatum: 10.09.15
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ab 2016a
|
|
|
|
|
|
Verfasst am: 09.08.2018, 12:07
Titel:
|
|
Hallo SparX,
die Schleife bei u wurde ja auch nur 15 mal durchlaufen, da dann der Fehler auftritt. Von daher passt die Größe. Welchen Wert hat denn p(16) und ist dieser sicher in y vorhanden? Wenn er keinen passenden Wert findet wird ein leerer Vektor zurück gegeben.
Zitat: |
wird ein 0-Vektor ausgegeben |
0-Vektor oder ein leerer Vektor? (siehe oben)
Grüße
Jonas
_________________
1.) Ask Google & Matlab Documentation
2.) Ask gomatlab.de & Technical Support of MathWorks
3.) Go mad, your problem is unsolvable
|
|
|
SparX |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 47
|
|
|
|
Anmeldedatum: 11.07.18
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 09.08.2018, 12:11
Titel:
|
|
J0nas hat Folgendes geschrieben: |
Hallo SparX,
die Schleife bei u wurde ja auch nur 15 mal durchlaufen, da dann der Fehler auftritt. Von daher passt die Größe. Welchen Wert hat denn p(16) und ist dieser sicher in y vorhanden? Wenn er keinen passenden Wert findet wird ein leerer Vektor zurück gegeben.
Zitat: |
wird ein 0-Vektor ausgegeben |
0-Vektor oder ein leerer Vektor? (siehe oben)
Grüße
Jonas |
p(16) hat den Wert hat den Wert 0.47 und y ist ein Vektor (0:0.01:25), von daher ist der p-Wert in y auf jeden Fall enthalten. Es wäre eigentlich der y( 48 )-Wert.
Gruß
|
|
|
|
Gehe zu Seite 1, 2 Weiter
|
Einstellungen und Berechtigungen
|
|
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
| 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.
|
|