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

Anpassen der Simulationszeit

 

Gast



Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 06.09.2013, 14:16     Titel: Anpassen der Simulationszeit
  Antworten mit Zitat      
Hallo zusammen,

ich würde gerne in meinem Simulink-Programm die Simulationszeit einschränken auf den Zeitraum, welchen ich durch den Zeitvektor aus dem Eingang vorgegeben habe.
Für spätere Zeitschritte liegen mir nämlich keine Eingangswerte mehr vor, so dass die Simulation hier abgebrochen werden sollte.
Ich habe leider nur die Möglichkeit gefunden eine feste Simulationszeit manuell vorzugeben.
Könnt Ihr mir bei meinem Problem bitte weiterhelfen?

Vielen Dank im Voraus!!


BlackDread
Forum-Century

Forum-Century


Beiträge: 212
Anmeldedatum: 11.05.11
Wohnort: ---
Version: 2015a
     Beitrag Verfasst am: 06.09.2013, 14:31     Titel:
  Antworten mit Zitat      
Hallo,

du kannst Simulink sagen, wie lange die Simulation gehen soll, indem zu einfach eine Variable an die "Stop-Time" setzt.
Ist dein Zeitvektor z.B. "t" dann schreibst du als Stop-Time "t(end)" rein.

Viele Grüße
Chris
Private Nachricht senden Benutzer-Profile anzeigen
 
Gast



Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 09.09.2013, 08:47     Titel:
  Antworten mit Zitat      
Hallo Chris,

danke für den Vorschlag. Ich weiß aber leider nicht, wie ich das am Besten umsetzen soll, da ich noch ein ziemlicher Simulink-Anfänger bin.
Soll ich den Stop-Block gleich an den Eingang, der die Simulationszeit t enthält ranhängen? Mein Eingang enthält in der ersten Zeile die Simulationszeit, in weitern Zeiten jedoch andere Variablen. Wie kann ich nur die Zeit selektieren und diese in den Stop-Block schicken?
Die Hilfe zum Stop-Block besagt, dass die Simulation beendet wird, sobald der Eingang nicht 0 ist. Funktioniert das dann schon?

Wäre super, wenn ihr mir auch hier noch ein paar Tipps geben könntet.

Viele Grüße,
Christina
 
BlackDread
Forum-Century

Forum-Century


Beiträge: 212
Anmeldedatum: 11.05.11
Wohnort: ---
Version: 2015a
     Beitrag Verfasst am: 09.09.2013, 15:22     Titel:
  Antworten mit Zitat      
Hallo Christina,

du kannst direkt die Zeit angeben, bis wann simuliert werden soll. Da ich gerade schon daheim bin, kann ich nur einen Link posten. Die Variable "TStop" (oben mittig im Bild) gibt in dem Fall vor, bis zu welchem Zeitpunkt simuliert werden soll.
http://www.matlabbuch.de/bilder/simulink.gif

Viele Grüße und Erfolg Wink
Chris
Private Nachricht senden Benutzer-Profile anzeigen
 
Gast



Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 10.09.2013, 18:27     Titel:
  Antworten mit Zitat      
Hallo Chris,

vielen lieben Dank! Du hast mir echt weitergeholfen.
Stehe aber leider schon vor meinem nächsten Problem. Vielleicht hast du auch hier einen Tipp.
Mein Simulink-Modell soll als Ergebnis einen Leistungsverlauf über der Zeit ausgeben.
Wenn der Wert, der am Eingang (Zustand von Verbrauchern) anliegt von 0 auf 1 wechselt, möchte ich über die darauffolgenden Zeitschritte einen beliebigen Verlauf aufschalten können, welchen ich durch Messungen (Datensatz liegt vor) ermittelt habe.

Mir ist leider nicht klar, wie ich beim Eintreten des Zustandswechsels schon die darauffolgenden Zeitschritte beeinflussen kann. Geht das überhaupt mit Simulink?

Ich verzweifle echt daran, wäre super wenn du mir antworten könntest.

Viele Grüße,
Christina
 
pse
Forum-Newbie

Forum-Newbie


Beiträge: 9
Anmeldedatum: 03.05.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 11.09.2013, 10:23     Titel:
  Antworten mit Zitat      
Variablen unter Simulink ist immer kniffig. Versuch über Switch zu realisieren, wenn in unterschliedlichen Zeitabschnitten bestimmte Funktionen, Berechnungen durchlaufen sollen. Konkretes Beispiel wäre schon sinnvoller für alle Smile
Private Nachricht senden Benutzer-Profile anzeigen
 
pse
Forum-Newbie

Forum-Newbie


Beiträge: 9
Anmeldedatum: 03.05.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 11.09.2013, 10:24     Titel:
  Antworten mit Zitat      
Variablen unter Simulink ist immer kniffig. Versuch über Switch zu realisieren, wenn in unterschliedlichen Zeitabschnitten bestimmte Funktionen, Berechnungen durchlaufen sollen. Konkretes Beispiel wäre schon sinnvoller für alle Smile
Private Nachricht senden Benutzer-Profile anzeigen
 
BlackDread
Forum-Century

Forum-Century


Beiträge: 212
Anmeldedatum: 11.05.11
Wohnort: ---
Version: 2015a
     Beitrag Verfasst am: 11.09.2013, 12:02     Titel:
  Antworten mit Zitat      
Hallo Christina,

ich habe mal eine Lösung erarbeitet, die zumindestens bei mir und meinem Minimalbeispiel funktioniert. Jedoch habe ich schon lange nicht mehr mit Simulink gearbeitet und auch nicht mit wirklich komplexen Modellen, von daher weiß ich nicht, ob das bei dir auch so funktioniert bzw. Sinn macht.

In dem Beispiel wird der Kurvenverlauf von y ab dem Zeitpunkt t_to_start als Ausgabe zur Verfügung gestellt.

Viele Grüße
Chris

P.s.: In der Regel sollte man für eine neue Problemstellung Rolling Eyes einen neuen Thread eröffnen Wink

Code:
t = 0:.1:10;
t_to_start = 2;
y = t.^(-1/2)


example.mdl
 Beschreibung:

Download
 Dateiname:  example.mdl
 Dateigröße:  19.23 KB
 Heruntergeladen:  429 mal
Private Nachricht senden Benutzer-Profile anzeigen
 
Gast



Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 11.09.2013, 13:49     Titel:
  Antworten mit Zitat      
Das würde aber dann bedeuten, dass ich meine Messwerte erst mit einer Funktion annähern muss, oder?
Außerdem beginnt die Funktion gleich zu Simulationsstart zu laufen und gibt mir dann bei t_to_start nicht mehr den ersten Wert aus.
Ein weiteres Problem ist, dass ich t_to_start gar nicht kenne und erst aus den Zustandsvektor ermitteln muss. Könnte ich das irgendwie dynamisch einstellen?

Viele Grüße,
Christina
 
BlackDread
Forum-Century

Forum-Century


Beiträge: 212
Anmeldedatum: 11.05.11
Wohnort: ---
Version: 2015a
     Beitrag Verfasst am: 11.09.2013, 14:29     Titel:
  Antworten mit Zitat      
Hallo Christina,

du musst deine Messwerte keiner Funktion annähern. Du kannst der LUT deine Messwerte zuweisen.
Zu der Umschaltung: irgendwie musst du in deinem Modell ja feststellen, wann deine Messwerte verwendet werden sollen. Hier kannst du ja evtl. eine ähnliche Abfrage reinmachen. Statt wie bei mir die Zeit zu überprüfen, kannst du z.B. "Verbraucher Status" == "1" oder sonstiges prüfen. Für eine konkrete Lösung kenne ich aber die Problemstellung und dein Modell zu wenig. Wink

Viele Grüße
Chris
Private Nachricht senden Benutzer-Profile anzeigen
 
Gast



Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 11.09.2013, 15:04     Titel:
  Antworten mit Zitat      
Schon mal vielen Dank!

Ich würde aber gerne die Messwerte um t_to_start nach hinten verschieben, so dass beim Zustandübergang von 0 auf 1 der gemessene Verlauf von vorne beginnt.
Wie kann ich denn eine Verzögerung um t_to_start erreichen?

Viele Grüße,
Christina
 
Gast



Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 11.09.2013, 15:50     Titel:
  Antworten mit Zitat      
Ich habe es nun selbst geschafft, eine Verzögerung des Signals um den Wert der Variable t_to_start zu erhalten.
Jetzt würde ich aber noch gerne t_to_start dynamisch anpassen.
Funktioniert das Verzögerungsglied dann schon noch, wenn ich die Verzögerungszeit einfach während der Simulation wieder verändere?

Wie kann ich denn am Besten t_to_start, also die Zeit an der der Sprung stattfindet, ermitteln?

Viele Grüße,
Christina
 
Gast



Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 11.09.2013, 16:49     Titel:
  Antworten mit Zitat      
Ich habe jetzt mal zum besseren Verständnis mein Modell angefügt.

Zur Sprungerkennung wollte ich die Variable t_step im Subsystem "Feststellung des Sprungs" ermitteln. Dies habe ich mit einem triggered subsystem probiert. Leider funktioniert das aber nicht, weil t_step für die Zeitschritte vor dem Sprung immer 0 ist. Ich hätte gerne keinen Vektor, sondern einen Skalar, der nur den Sprungzeitpunkt enthält.

Wie schaffe ich das denn?

Viele Grüße

Modell.slx
 Beschreibung:

Download
 Dateiname:  Modell.slx
 Dateigröße:  15.64 KB
 Heruntergeladen:  375 mal
 
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.