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

simulink stoppen

 

snowtim
Forum-Anfänger

Forum-Anfänger


Beiträge: 49
Anmeldedatum: 31.03.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 10.06.2008, 09:10     Titel: simulink stoppen
  Antworten mit Zitat      
Hi alle zusammen,
ich habe mal eine Frage und brauch da mal euren Rat. Ich habe ein fertiges Simulink-Modell was mir einen Generator-simuliert mit einem kompletten Regelkreis. Es läuft jetzt soweit bis die Stop-Zeit erreicht ist. Nun soll statt einem Regelkreis die Werte Extern über Excel kommen. Die Wert Übergabe an den Workspace klappt auch mit Spreadsheet Link EX. Doch muss ich jetzt über Excel immer wieder das Model neu aufrufen. Bei dieser Variante wird halt immer wieder neu gestartet und mit dem Neuen Wert durch gerechnet. Und die alten Sachen gehen verloren. Gibt es eine Möglichkeit, dass ich mein Model einmal starte, dann einen Wert von Excel Übernehme, rechen lasse, dann das Model Stoppe und dann meinen Rest abarbeite. Und wenn ich dann wieder bei einem neuen Wert bin das Model wieder an dem Punkt starte, ohne es neu auszuführen. Und dann halt immer so weiter bis alle Werte durch gerechnet werden.
Ich hoffe mal ihr könnt mir hier bei weiter helfen. Danke schon mal

Gruß Tim

Edit: Der Code aus dem gelöschten Thread
mfg nschlange


Code:

Vektor = Array(0, 0)                            'Erzeugt ein Array für Simulink da Simulink ein Array brauch
    Vektor(1) = Messwert_BE1                        'Schreibt an die Zweite Stelle den Messwert_BE1
   
    MLPutVar "Vektor", Vektor                       'Gibt das Array an Matlab geht nicht mit MlPitMatrix da das Array nur in VB ist
    MLEvalString ("simin=Vektor'")                  'Generiert aus dem Spalten Array durch ' ein Zeilen Array
    'MLEvalString ("sim 'Simulierung_Generator'")               'Startet Simulink !!!Die .mdl muß am richtigen Platz stehen!!!
   
    MLEvalString ("simout=Rueckgabewert_Ust(1)")
    MLGetMatrix "simout", "Generatormodel!DeltaU"      'Schreibt den Wert aus Simulink in die Zelle DeltaU_V
    MatlabRequest                                   'interne Variable von Link Spreadsheet !!!wird benötigt!!!
Private Nachricht senden Benutzer-Profile anzeigen


Tim
Forum-Century

Forum-Century



Beiträge: 140
Anmeldedatum: 03.11.07
Wohnort: Stuttgart
Version: 2011b+aktuellstes Release
     Beitrag Verfasst am: 12.06.2008, 11:36     Titel:
  Antworten mit Zitat      
Ich lese das so: Du willst den Zustand des Modells nach einem Simulationslauf zwischenspeichern und darauf aufsetzend eine "neue" Simulation starten?

Das einzige was mir dazu einfällt wäre über die Initial States und Final States (siehe Simulation->Configuration Parameters->Data Import/Export) zu gehen. Das heisst, dass du den Zustand nach der Simulation als Ausgangszustand für folgende Simulationen benutzt. Einziges Problem das ich derzeit dabei sehe: Für den ersten Simulationslauf muss du erstmal einen Initial State zusammenbauen (damit du weisst wie groß der ist bzw. wie er denn aussieht). Das musst du leider auch nach jeder Modelländerung einmalig machen. Ansonsten kannst du den State auch wieder aus deiner aufrufenden Funktion "nullen" (wenn die Zustände denn trivial mit 0 initialisiert werden)...

PS: Bitte keine Doppelposts Wink
Private Nachricht senden Benutzer-Profile anzeigen
 
snowtim
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 49
Anmeldedatum: 31.03.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 16.06.2008, 07:22     Titel: simulink stoppen
  Antworten mit Zitat      
hi,
erstmal danke für die Antwort.
ich habe es jetzt nicht über die "Simulation->Configuration Parameters" hinbekommen, es war nicht nötig "Initial State" zuarbeiten. ich habe es wie folgt gelöst:
Code:
set_param('simulink_model_name','SimulationCommand','pause')
...
Werte werden von Excel an den Workspace gegeben
set_param('simulink_model_name','SimulationCommand','update')
set_param('simulink_model_name','SimulationCommand','start')
set_param('simulink_model_name','SimulationCommand','pause')
...
 


Jetzt habe ich aber immer noch ein Problem bei der Sache. Es läuft soweit wenn ich mein Model dirket über matlab Aufrufe und die Befehle ins Commandwindow eingebe. Doch wenn ich es jetzt über Speardsheet link mache geht es nicht. ich rufe wie folgt mein Model auf:
Code:
MLEvalString("simulink_model_name")

und dann kommen die anderen Befehle...
kann es sein das durch diesen Aufruf das Model einmal gestartet wird und dann das Rechenmodel abgearbeitet wird und dann erst der nächste Speardsheet link Befehl gelesen wird, der mein Model stoppen soll? Bräuchte hier nochmal einen tipp.
Danke schon mal

Tim
Private Nachricht senden Benutzer-Profile anzeigen
 
Tim
Forum-Century

Forum-Century



Beiträge: 140
Anmeldedatum: 03.11.07
Wohnort: Stuttgart
Version: 2011b+aktuellstes Release
     Beitrag Verfasst am: 16.06.2008, 08:40     Titel:
  Antworten mit Zitat      
Wie genau sieht denn "geht nicht" aus? Kleiner Tipp: Mach dir in die Model Callbacks mal ein paar disp() rein, dann siehst du was das Modell gerade macht (Init, Start, Stop, etc). Das geht z.B. über File->Model Properties->Callbacks.
Eine Frage zu den SimulationCommands: Woher weisst du denn wann das Modell genau pausieren soll?
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.