ich bin neu hier, daher erstmal ein allgemeines hallo in die runde.
ich bin gerade dabei für die uni eine arbeit zu schreiben und kriege den plot nicht so hin wie ich das möchte.
ich habe eine simulation mit simulink realisiert, von dort habe ich mittels eines simout einen wert in den workspace geschrieben.
der versuch simout zu plotten gelingt erstmal auch
plot(simout)
das problem dabei ist, dass die x-achse in sekunden dargestellt wird, da das modell in sekundenschritten simuliert wird. ich möchte bei gleich bleibendem plot aber die beschriftung so ändern das zunächst nur alle 3600 sekunden ein wert aufgetragen wird und dieser soll dann in stunden zählen.
ich habe bisher nur rausgefunden das X Tick Locations irgendwie auf 3600er schritte gesetzt werden muss und X Tick Labels diesen wert dann mit stunden überschreibt.
ich hoffe mein problem ist damit klar geworden. ich bin absoluter neuling bei matlab. wenn irgendetwas unklar ist, sagt also bitte bescheid, dann ergänze ich das noch.
leider habe ich nur noch wenig zeit um eine lösung zu finden, daher wäre ich für jede antwort mehr als dankbar.
auf Anhieb klingt es für mich so, als ob du besser dran bist, wenn du plot auch x-Werte (also Simulationszeiten) übergibst. Diese sollten in simout enthalten sein, wenn das entsprechend eingestellt ist.
plotte ich deinen vorschlag, kann ich nicht mal genau sagen was da eigentlich geplottet wird. weder form noch anzahl der graphen stimmt dabei noch. ich bekomme zwei völlig deformierte kurven angezeigt?!?!?!? man muss aber auch dazu sagen dass ich die befehle nicht hundertprozentig verstehe. soll heissen, dass ich evtl. anpassungen an mein modell evtl übersehe. vielleicht kannst du mir nochmal dazu schreiben was in welcher zeile genau passiert? danke!
ich habe mal den plot wie er standardmäßig von matlab erzeugt wird und den mit angepasster x-achse angehängt. vielleicht wird dann klar was ich meine. ich habe im figure die änderungen vorgenommen, die ich jetzt aber vorab im .m-file definieren möchte...
ich glaube nicht, dass das sonderlich schwer ist, nur kriege ichs einfach nicht hin. vielleicht erbarmt sch jemand mir den korrekten plotbefehl für das gezeigte figure zu posten?!
den gedanken hatte ich auch schon. nur weiss ich nicht wie ich das machen kann. ich habe ja keinen separaten zeitvektor sondern eben nur diese eine variable aus dem workspace. mir mangelts hier wirklich gerade an kenntnis des programms und dessen befehle.
ich wäre für einen konkreten lösungsvorschlag unendlich dankbar!
dieser plotbefehl sollte, wenn ich das richtig sehe so wie er da steht verwedet werden können oder? (vorausgesetzt das simOut die bezeichnung der zu plottenden variable ist?)
das geht aber nicht. ich bekomme eine fehlermeldung im comand window und es passiert garnichts
Code:
>> Plot Error: File: Plot.mLine: 1 Column: 52
Unbalanced or unexpected parenthesis or bracket.
im modell ist im baustein simout "Array" als "Save Format" eingestellt. die import/export einstellungen habe ich angehängt, ist da vielleicht ein fehler?
nach etlichen versuchen komme ich aber damit auch nicht weiter. vielleicht kann mir jemand erklären was genau als Y1 und was als Parent1 definiert werden muss?!
>> Plot
Error: File: Plot.m Line: 1 Column: 52
Unbalanced or unexpected parenthesis or bracket.
Es ist keine gute Idee, eine eigene Datei plot zu nennen - schon gar nicht, wenn man darin die Funktion plot aufrufen möchte.
Die Fehlermeldung sollte sich nun selbst erklären: die Klammern passen nicht. Also alle Klammern durchsehen und anpassen.
Der Code von Gestern 21:41 hat doch schon mal funktioniert, oder? An sich musst du nur das / 3600 einfügen.
Zitat:
ich wüsste gerade nicht wie ich das modell oder dessen code hier posten könnte?!
Wenn du Probleme hast, das auf dein Beispiel anzupassen, dann bitte Modell + Code posten.
Grüße,
Harald
also dieser plotbefehl hat nicht funktioniert, auch gestern nicht. der vorschlag am anfang hat einen plot erzeugt, allerdings weiss ich nicht was genau da geplottet wurde.
vdp ist ein Demo-Modell!
Du musst natürlich schon den Modellnamen anpassen!
Wenn der Code einmal das Bild erzeugt hat, haben die Klammern ja anscheinend gepasst. Was du geändert hast, so dass sie nun nicht mehr passen, weiß ich nicht.
Der folgende Anhang sollte das Problem das ich mit dem Plotbefehl (plot(get(simOut, 'tout') / 3600, get(simOut, 'xoutNew'))
) habe erklären. Da ich nicht richtig verstehe was hinter diesem Befehl steckt, fällt es mir schwer Zusammenhänge zu verstehen.
gleiches gilt für den "sim('vdp', ...)". So Dankbar ich für jede Hilfe bin, hoffe ich doch darum bitten zu dürfen mir das einmal etwas ausführlicher und für mich besser verständlich zu erklären was hier was bedeutet und welche Variablen durch mich noch ersetzt/verändert werden müssen. Ich kann schlecht etwas anpassen das ich nicht richtig verstanden habe. Das 'vdp' ein Ersatzmodell ist hätte ich zwar merken können, aber es zeigt doch recht gut das ich diese Art von Befehlen nicht behersche.
Ich verwende den Befehl sim('NAME DES MODELLS') um dieses aufzurufen und direkt zu simulieren. Ich habe nicht verstanden was dieser Befehl für einen Zusammenhang mit dem Plot hat?! Die Simulation ist vor dem plotten durchgelaufen und somit sind alle relevanten Variablen bereits in den Workspace geschrieben worden.
leider war es mir nicht möglich zu erkennen, welche Variable bei dir welche Bedeutung hat. Da du dein Modell nicht zur Verfügung gestellt hattest, habe ich eben versucht, anhand eines Beispielmodells die Möglichkeiten aufzuzeigen.
Meine Empfehlung wäre dringend, die Grundlagen von MATLAB und Simulink von vorne zu erlernen, und dann eventuelle Lücken mit der Dokumentation der verwendeten Befehle (hier: sim) zu füllen.
wenn SimOut der zeitvektor ist und simout (unglückliche benennung, der zusammenhang war mir aber bis gestern nicht bekannt) die eigentliche funktion enthält, dann müsste diese information doch reichen für diesen code, oder? ich kriege es trotzdem nicht hin. was muss ich machen?
kleiner hinweis dazu vielleicht noch: das .m-file in dem dieser code steht ist ein anderes als dass welches das simulink modell aufruft und dessen simulation startet.
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.