|
|
Simulationszeit aus Kontakte |
|
millerel |
Forum-Anfänger
|
|
Beiträge: 19
|
|
|
|
Anmeldedatum: 15.08.13
|
|
|
|
Wohnort: Essen
|
|
|
|
Version: MATLAB R2014a
|
|
|
|
|
|
Verfasst am: 31.08.2013, 13:53
Titel: Simulationszeit aus Kontakte
|
|
Moin Leute,
gibt es die Möglichkeit die Simulationszeit aus einem Block innerhalb von Simulink zu definieren. (z.B. Constant mit 10.000 ==> Simulationszeit = 10.000 etc.)
Der Hintergrund:
Ich möchte eine Simulation mehrfach durchlaufen. Jede Schleife dauert z.B. 1000 Zeitintervalle. Ich möchte jedoch auch die Anzahl an Wiederholungen durch eine einfache Konstante einbringen. ZIEL: Ich möchte nicht jedes Mal manuell (Anzahl Wiederholungen * Simulationszeit pro Wiederholung = Simulationszeit) rechnen...
Ich hoffe, dass dies irgendwie möglich ist =D Besten Dank bereits im Voraus!
Viele Grüße, Michael
|
|
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.492
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 01.09.2013, 15:41
Titel:
|
|
Hallo,
mir zumindest ist nicht klar, was gesucht wird.
Die Simulationszeit kann man mit dem "Clock"-Block bekommen - falls das weiterhilft.
Für wiederholte Simulationen bietet sich SIM in einer for-Schleife an.
Grüße,
Harald
|
|
|
millerel |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 19
|
|
|
|
Anmeldedatum: 15.08.13
|
|
|
|
Wohnort: Essen
|
|
|
|
Version: MATLAB R2014a
|
|
|
|
|
|
Verfasst am: 01.09.2013, 19:38
Titel:
|
|
Erstmal herzlichen Dank für die Antwort.
Ich habe mir schon gedacht, dass es Probleme bei der Frage kommt.
Ich möchte den Simulationszeitraum durch einen Block definieren, d.h. meine Simulationszeit sind 100.000 Timesteps. Diese schreibe ich aber nicht oben ins Simulink-Fenster, sondern habe einen Block "Simulationszeit" mit dem Wert 100.000. Wenn ich diesen veränder, sollte sich auch die eigentliche Simulationszeit verändern.
Ich kann mir aber gut Vorstellen, dass mir die "for-Schleife" reicht. Wie genau setze ich das um? Ich würde gerne eine Simulation (Zeit: 100.000 Timesteps) 3x mit durchlaufen und jedes Mal einen Wert ändern.
Besten Dank und schönen Sonntag Abend noch,
Michael
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.492
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 01.09.2013, 20:31
Titel:
|
|
Hallo,
Zitat: |
Diese schreibe ich aber nicht oben ins Simulink-Fenster, sondern habe einen Block "Simulationszeit" mit dem Wert 100.000. Wenn ich diesen veränder, sollte sich auch die eigentliche Simulationszeit verändern. |
Dazu sehe ich keine Möglichkeit. Du kannst aber oben im Simulink-Fenster eine Variable angeben, und diese Variable in MATLAB definieren und anpassen.
Zitat: |
Wie genau setze ich das um? Ich würde gerne eine Simulation (Zeit: 100.000 Timesteps) 3x mit durchlaufen und jedes Mal einen Wert ändern. |
Etwa so:
Grüße,
Harald
|
|
|
millerel |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 19
|
|
|
|
Anmeldedatum: 15.08.13
|
|
|
|
Wohnort: Essen
|
|
|
|
Version: MATLAB R2014a
|
|
|
|
|
|
Verfasst am: 02.09.2013, 05:48
Titel:
|
|
Guten Morgen,
nochmal Danke für die schnelle Antwort
Muss ich den Code als in einem Baustein in Simulink integrieren (Embedded MATLAB Fcn?) oder muss ich diesen direkt in Matlab einfügen (wenn ja, wo genau?)
Ich bin noch relativ unerfahren mit MATLAB und Simulink, aber ich arbeite mich mehr und mehr in die Materie =D
Viele Grüße ausm Zug,
Michael
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.492
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 02.09.2013, 07:40
Titel:
|
|
Hallo,
am besten in ein Skript:
Grüße,
Harald
|
|
|
millerel |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 19
|
|
|
|
Anmeldedatum: 15.08.13
|
|
|
|
Wohnort: Essen
|
|
|
|
Version: MATLAB R2014a
|
|
|
|
|
|
Verfasst am: 02.09.2013, 16:12
Titel:
|
|
Hallo Harald,
ich muss mich glaube ich für meine nicht vorhandenen Kenntnisse entschuldigen, aber ich kann mit einem Skript derzeit noch nichts anfangen.
Wie genau erstelle ich dieses Skript?
Wo genau speichere ich es ab?
Wie genau sag ich Simulink, dass es das Skript aufrufen und durchlaufen soll?
Schon Mal herzlichen Dank für die freundliche, Anfänger gerechte Hilfestellung
Viele Grüße aus Bus,
Michael
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.492
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 02.09.2013, 17:43
Titel:
|
|
|
|
millerel |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 19
|
|
|
|
Anmeldedatum: 15.08.13
|
|
|
|
Wohnort: Essen
|
|
|
|
Version: MATLAB R2014a
|
|
|
|
|
|
Verfasst am: 04.09.2013, 08:09
Titel:
|
|
Moin Harald,
ich habe FAST alles hinbekommen, es hakt nur noch an einem ganz kleinen Teil...
Mein Simulink Modell 'model' besteht aus einem "Constant"-Block mit Variabler Größe "p" dieser Block geht direkt auf einen "To Workspace"-Block mit dem Namen "Sim".
Ich bekomme bei einer Simulationszeit von 10 Timesteps leider nur eine 51x1 double Matrix raus. Ich hoffte auf eine 10x3 Matrix
Wo liegt mein Fehler??? DANKE für die Hilfe !!!!
VG, Michael
|
|
|
knilumis_baltaM |
Forum-Century
|
|
Beiträge: 241
|
|
|
|
Anmeldedatum: 20.04.12
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 05.09.2013, 08:09
Titel:
|
|
Nach jedem Schleifen durchlauf werden die Ergebnisse vom To Workspace Block natürlich überschrieben. Du musst unter sim('model') die Ergebnisse verarbeiten/speichern bevor neu simuliert wird. Das sagt auch übrigens der Kommentar.
Hast du fixed step solver genommen?
|
|
|
millerel |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 19
|
|
|
|
Anmeldedatum: 15.08.13
|
|
|
|
Wohnort: Essen
|
|
|
|
Version: MATLAB R2014a
|
|
|
|
|
|
Verfasst am: 06.09.2013, 05:39
Titel:
|
|
Hallo,
ich habe mittlerweile einen fixed step solver eingestellt, ja. (vorher war der variable und daher die 51...)
Mir ist durchaus bewusst, dass ich die Ergebnisse vor jedem Durchlauf der Schleife speichern muss.
Frage: Wie kann ich Werte aus einen Block aus dem Simulink Modell speichern?
Frage: Wie kann aus den gespeicherten Werten eine Matrix machen?
==> for i 1:3
ergebnis = [f(i=1), f(i=2), f(i=3)]
also sowas in der Art?
Frage!!!: Wie kann ich z.B. die Anzeige "Display-Block" am Ende der Simulation ins "ergebnis" einbeziehen?????
VG und bereits besten Dank für die Antwort,
Michael
|
|
|
knilumis_baltaM |
Forum-Century
|
|
Beiträge: 241
|
|
|
|
Anmeldedatum: 20.04.12
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 06.09.2013, 07:10
Titel:
|
|
Am besten du hängst an jedes Signal, welches du später brauchst ein "To Workspace" block. Diese sind dann am Ende der Simulation im Workspace und du kannst sie verwenden.
Als Beispiel kannst jetzt in deinem Modell ein To Workspace block sig1 nennen und ihn da verbinden was du speichern willst und einen zweiten To Workspace nennst du display1, den verbindest du da wo auch der Display Block hängt.
Um die Ergebnisse jetzt nach der Simulation zu speichern kannst du unter simout...
dann z.B. folgendes schreiben:
Um die Ergebnisse als Matrix zu speichern könntest du nach der for-Schleife:
schreiben. Das würde aber nur gehen wenn die Vektoren gleich lang sind, was wahrscheinlich nicht der Fall ist wenn dein Parameter die Simulationszeit ist.
|
|
|
|
|
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.
|
|