|
|
verschiende Anzahl Messwerte bei gleiche Simulationsdauer |
|
Nerchimond |
Forum-Newbie
|
|
Beiträge: 4
|
|
|
|
Anmeldedatum: 05.09.15
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 05.09.2015, 13:26
Titel: verschiende Anzahl Messwerte bei gleiche Simulationsdauer
|
|
|
|
|
Hallo zusammen,
ich habe leider bei meiner automatisierten Simulationsreihe ein Problem.
Ausgangslage:
In Simulink aufgebauter Regelkreis mit Sprungeingang bei T=1s. Dieser Wert und der Ausgang des Regelkreises werden an den Matlab-Workspace übergeben.
.m-File zum starten der Simulation mit 10 verschiedenen Polstellen, die per for-Schleife jeweils den Paremeter aus einem vorher definierten Vektor abrufen und ändern und dann die Simulation starten.
Schreiben des jeweiligen Ausgangs per:
Ausgang_Simulink = [Ausgang_Simulink, neuerWert_aus_Simulink]
in eine Matrix.
Problem:
Trotz jeweils gleicher Simulationsdauer wird diese bei 2. oder 3. Durchlauf abgebrochen, weil die der Zeit von T=2s nun nicht 337 Messwerte angefallen sind sondern 338 und er diese nicht mehr in die Matrix schreiben kann wegen:
"Error using horzcat
Dimensions of matrices being concatenated are not consistent."
Frage:
1. Warum sind es unterschiedlich viele Messwerte bei gleicher Messdauer und kann man das ändern.
2. Wenn das nicht zu ändern ist, was ist ein eleganter Weg trotzdem alles in eine Matrix zu speicern?
Vielen Dank für zukünftige Antworten und entschuldigt, wenn es ganz offensichtliche Basics sind die ich Frage. Finde es schwierig bei Matlab durchzublicken, wie die genaue Struktur ist.
Grüße,
Nerchi
|
|
|
|
|
Andreas Goser |
Forum-Meister
|
|
Beiträge: 3.654
|
|
|
|
Anmeldedatum: 04.12.08
|
|
|
|
Wohnort: Ismaning
|
|
|
|
Version: 1.0
|
|
|
|
|
|
Verfasst am: 07.09.2015, 07:46
Titel:
|
|
Zitat: |
Frage:
1. Warum sind es unterschiedlich viele Messwerte bei gleicher Messdauer und kann man das ändern.
|
Wenn das identische Modell mit unterschiedlichen Daten unterschiedliche Werte berechnet (Messwerte können es ja nicht sein, es wird nichts gemessen), dann könnte es daran liegen, dass ein variable step solver benutzt wird. Es ist dann numerisch halt sinnvoll.
Zitat: |
2. Wenn das nicht zu ändern ist, was ist ein eleganter Weg trotzdem alles in eine Matrix zu speicern?
|
Das Sauberste dürfte es sein zunächst einmal Punkt 1 zu verstehen, nicht dass der "elegante Weg" numerisch falsch ist. Aber man könnte Simulink in den save options dazu zwingen in festen Zeitabschnitten zu speichern.
Andreas
|
|
|
marvin.be |
Forum-Fortgeschrittener
|
|
Beiträge: 54
|
|
|
|
Anmeldedatum: 28.08.15
|
|
|
|
Wohnort: ---
|
|
|
|
Version: R2013b
|
|
|
|
|
|
Verfasst am: 07.09.2015, 10:05
Titel:
|
|
Vielleicht zu einfach gedacht, aber vielleicht hilft es ja wenn du nach jedem Durchgang deine Variable mit
entfernst?
|
|
|
Nerchimond |
Themenstarter
Forum-Newbie
|
|
Beiträge: 4
|
|
|
|
Anmeldedatum: 05.09.15
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 07.09.2015, 10:54
Titel:
|
|
|
|
|
Danke für die schnellen Antworten
Zitat: |
Wenn das identische Modell mit unterschiedlichen Daten unterschiedliche Werte berechnet (Messwerte können es ja nicht sein, es wird nichts gemessen), dann könnte es daran liegen, dass ein variable step solver benutzt wird. Es ist dann numerisch halt sinnvoll.
|
Ok, danke für den Hinweis. Ja es ist ein variabler Solver eingestellt und mit fester Schrittweite stimmen die Ergebnisse auch nicht.
Also ist das der Grund warum es das eine mal 338 Schritte und beim anderen Mal 337 Schritte sind.
Habe nun auch verstanden, dass sich das an dieser Stelle nicht änder lässt, da die variablen Schritte für die Numerische Berechnung sinnvoll ist.
Zitat: |
Das Sauberste dürfte es sein zunächst einmal Punkt 1 zu verstehen, nicht dass der "elegante Weg" numerisch falsch ist. Aber man könnte Simulink in den save options dazu zwingen in festen Zeitabschnitten zu speichern.
|
Wie oben gesagt klappt das mit den festen Abschnitten nicht und es ist wohl richtig, dass ich auf 2s Zeit unterschiedlich viele Schritte haben kann.
Mein Problem ist nun weiterhin, dass dieLösung mit
Zitat: |
Vielleicht zu einfach gedacht, aber vielleicht hilft es ja wenn du nach jedem Durchgang deine Variable mit
Code:
clear VariableName1, VariableName2 etc
Funktion ohne Link?
entfernst?
|
leider nichts bringt, da ich alle Ergbnisse der 10 verschiedenene Simulationen am Ende speichern möchte, am besten in eine Variable um diese später weiter zu verarbeiten.
(Anstiegszeit, Überschwingweite usw. bestimmen und plotten lassen)
Da bleibt nun leider das Problem, dass ich keine Vektor mit 338 Zeilen an eine Matrix mit 337 Zeilen anhängen kann ohne Error.
Die von Simulink ausgegeben Timeseries Daten sind leider auch keine große Hilfe...
|
|
|
Andreas Goser |
Forum-Meister
|
|
Beiträge: 3.654
|
|
|
|
Anmeldedatum: 04.12.08
|
|
|
|
Wohnort: Ismaning
|
|
|
|
Version: 1.0
|
|
|
|
|
|
Verfasst am: 07.09.2015, 11:47
Titel:
|
|
Ich schlage vor eine Web Anfrage an den Technischen Support zu stellen und das Modell und die Daten zur Vefügung zu stellen. Dann kann ein Support-Ingenieur das Verhalten erläutern und wahrscheinlich auch Vorschläge machen.
Andreas
|
|
|
marvin.be |
Forum-Fortgeschrittener
|
|
Beiträge: 54
|
|
|
|
Anmeldedatum: 28.08.15
|
|
|
|
Wohnort: ---
|
|
|
|
Version: R2013b
|
|
|
|
|
|
Verfasst am: 07.09.2015, 18:09
Titel:
|
|
Um das Ganze richtig zu verstehen, ist es ABSOLUT wichtig das die Daten immer gleich lang sind für die nächsten Schritte, oder gibt es hier einfach nur ein Problem die einzelnen Datensätze zu handhaben? Wenn es nur um letzteres geht, dann könntest du die Daten auch als cell speichern.
Das cell kann so ziemlich alles sein. Von vielen Vektoren die an den Stellen {x,y} gespeichert werden, oder Matrizen, oder Strings etc. So wie ich es im Beispiel geschrieben habe, kann man es als "Vektor" der Länge 1xn lesen der z.B. aus vielen Vektoren besteht.
Gruß,
Marvin
|
|
|
Nerchimond |
Themenstarter
Forum-Newbie
|
|
Beiträge: 4
|
|
|
|
Anmeldedatum: 05.09.15
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 07.09.2015, 19:54
Titel:
|
|
Danke marvin.be , es ist wirklich nur für das Problem mit den Datensätzen. Das die einzelnen Simulationen unterschiedliche Anzahl an Schritten haben ist egal.
Das mit der cell ist glaube ich genau das was ich suche. Werde es morgen ausprobieren und wenn es klappt es hier als gelöst markieren.
Vielen Dank für die viele schnelle Hilfe
|
|
|
Nerchimond |
Themenstarter
Forum-Newbie
|
|
Beiträge: 4
|
|
|
|
Anmeldedatum: 05.09.15
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 10.09.2015, 08:44
Titel:
|
|
Danke an alle.
Das mit der
war was ich gesucht habe, aber auch der Rest hat mir einen besseren Einblick in Matlab beschert.
Grüße,
Nerchi
|
|
|
|
|
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 - 2024
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.
|
|