Verfasst am: 14.07.2022, 13:59
Titel: Surface Grafik aus Matrix erstellen
Hallo zusammen,
ich entwickle momentan eine Regelung. Zuerst habe ich ein analytisches Modell aufgebaut, um den Stabilitätsbereich zweier Verstärkungsfaktoren zu bestimmen. Als Ergebnis habe ich eine Matrix (500x3) in der die ersten zwei Spalten die beiden Verstärkungsfaktoren sind und in der letzten der Betrag der Polstelle.
Das ganze möchte ich nun in einer dreidimensionalen Grafik darstellen. Auf der x- Achse Verstärkungsfaktor KE (Spalte1),auf der y-Achse Verstärkungsfaktor KP und auf der z-Achse den Betrag der Polstelle. Der stabile Bereich soll blau eingefärbt sein und der instabile Bereich rot.
Das ganze sollte ja über den Befehl surf() zu bewerkstelligen sein...bei mir kommt immer die Fehlermeldung
Bei mir kommt immer die Fehlermeldung: "Error using surf (line 71) Data dimensions must agree." Habe daraufhin meine Polstellen transponiert, aber das lief auch nicht.
Ein Hinweis noch: In 5 Zeilen untereinander steht jeweils dieselbe Kombination aus Verstärkungsfaktoren und da hinter die jeweilige Polstelle, da mein System immer 5 Polstellen hat.
Ich stehe gerade voll auf´n Schlauch, wie ich es machen soll. Ich wäre um jede Hilfe sehr dankbar
surf benötigt als drittes Argument eine Matrix.
Man kann z.B. per Interpolation mit
griddata
aus den Vektordaten eine Matrix erstellen. Schau dir mal das Beispiel "Interpolate Scattered Data Over Uniform Grid" aus der Doku von griddata an.
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 ;)
Um die surf Funktion auf eine 3 mal x große Matrixe anwenden zu können, muss man die Spalten für die y- bzw. x-Achse transponieren und dann über die meshgrid Funktion ein 2-D-Gitternetzkoordinate ermitteln. Die Variable "Z" muss eine Matrix sein mit der Anzahl der Spalten von x transponiert und der Anzahl der Spalten aus y transponiert. Gefüllt wird diese Matrix dann Zellenweise mit den Ergebnissen aus der 3. Spalte der Matrix. Ich hoffe das war einigermaßen verständlich. Wenn nicht, gerne nachfragen.
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
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.