WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

verschiende Anzahl Messwerte bei gleiche Simulationsdauer

 

Nerchimond
Forum-Newbie

Forum-Newbie


Beiträge: 4
Anmeldedatum: 05.09.15
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 05.09.2015, 13:26     Titel: verschiende Anzahl Messwerte bei gleiche Simulationsdauer
  Antworten mit Zitat      
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
Private Nachricht senden Benutzer-Profile anzeigen


Andreas Goser
Forum-Meister

Forum-Meister


Beiträge: 3.654
Anmeldedatum: 04.12.08
Wohnort: Ismaning
Version: 1.0
     Beitrag Verfasst am: 07.09.2015, 07:46     Titel:
  Antworten mit Zitat      
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
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
marvin.be
Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 54
Anmeldedatum: 28.08.15
Wohnort: ---
Version: R2013b
     Beitrag Verfasst am: 07.09.2015, 10:05     Titel:
  Antworten mit Zitat      
Vielleicht zu einfach gedacht, aber vielleicht hilft es ja wenn du nach jedem Durchgang deine Variable mit

Code:
clear VariableName1, VariableName2 etc


entfernst?
Private Nachricht senden Benutzer-Profile anzeigen
 
Nerchimond
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 4
Anmeldedatum: 05.09.15
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 07.09.2015, 10:54     Titel:
  Antworten mit Zitat      
Danke für die schnellen Antworten Smile

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...
Private Nachricht senden Benutzer-Profile anzeigen
 
Andreas Goser
Forum-Meister

Forum-Meister


Beiträge: 3.654
Anmeldedatum: 04.12.08
Wohnort: Ismaning
Version: 1.0
     Beitrag Verfasst am: 07.09.2015, 11:47     Titel:
  Antworten mit Zitat      
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
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
marvin.be
Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 54
Anmeldedatum: 28.08.15
Wohnort: ---
Version: R2013b
     Beitrag Verfasst am: 07.09.2015, 18:09     Titel:
  Antworten mit Zitat      
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.

Code:

for k=1:1:n
% hier werden Daten produziert
alleDaten{1,k}=produzierteDaten;
end
 


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
Private Nachricht senden Benutzer-Profile anzeigen
 
Nerchimond
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 4
Anmeldedatum: 05.09.15
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 07.09.2015, 19:54     Titel:
  Antworten mit Zitat      
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
Private Nachricht senden Benutzer-Profile anzeigen
 
Nerchimond
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 4
Anmeldedatum: 05.09.15
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 10.09.2015, 08:44     Titel:
  Antworten mit Zitat      
Danke an alle.
Das mit der
Code:
war was ich gesucht habe, aber auch der Rest hat mir einen besseren Einblick in Matlab beschert.

Grüße,
Nerchi
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

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 | goMatlab RSS Button 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.