Matlab - Simulation von Einzelwerten (Echtzeit)

OP (Firma: TUM) #4489138
Hi zusammen!

Entschuldigt bitte im Vornherein mein Unwissen :-D Habe mich im Studium 
im großen und ganzen um Matlab drücken können, jedoch holt einen sowas 
immer ein ..

In meinem Problem handelt es sich um eine Performanceanalyse von 
Simulationsmodellen, heißt ich habe im Matlab Workspace einen CPU-Timer 
implementiert der die Zeit vor dem Start einer Simulation und die Zeit 
zum Ende der Simulation festhalten soll. Aus der Differenz berechnet 
sich die Zeit die die Simulation benötigt hat.

Die Simulationsmodelle sind in Simulink implementiert!

Bei den Simulationen handelt es sich um Batteriesimulationen die über 
ein input Signal mit gesampleten Stromwerten gefüttert werden und zu den 
entsprechenden Stromsamplen dann Spannungsample ausgeben.

Mein Ziel war es die Berechnungszeit pro Sample zu messen, jedoch ist es 
mir über die Inport-Funktion bisher nur möglich komplette Vektoren 
einzuspielen... Das Problem wenn ich statt einem Vektor nur ein 
diskretes Element angebe ist, dass mir für die fortlaufende Simulation 
die Historie der vorangegangen Simulation fehlt.

Gibt es eine Möglichkeit eine Interaktion zwischen Matlab und Simulink 
aufzustellen, bei der Simulink sich nach Beedigung der Berechnung eines 
Samples an Matlab wendet und meldet "ich bin fertig gib mir das nächste 
Sample"?

Danke schonmal für eure Hilfe!!

Best Grüße
Fabian
OP (Firma: TUM)
Die Seite ist mir bei der Recherche schon über den Weg gelaufen.

Mein Problem ist, dass die Simulation nach jedem berechneten Wert nicht 
"stoppen" darf. Die Simulation muss praktisch weiterlaufen, da sonst die 
Anfangswerte (ausgenommen des Inputs) wieder initialisiert werden. Im 
Fall der Batteriesimulation würde ich Veränderungen in Alterung und 
State of Charge verlieren.
Ziel ist es in der laufenden Simulation die Zeit für den Durchlauf genau 
eines Samples zu messen.

Best Grüße
Fabian
Gast
Willst du eine Echzeit Simulation erreichen oder willst du wissen, 
welche max. Abtastzeit zu wählen ist?

Generell versuche ein Skript zu schreiben, in dem du den Ablauf debuggen 
kannst! Deine Aufgabenstellung müsste mit einer while-/for-Schleife zu 
lösen sein. Alte Werte speichern neue initialisieren...
OP (Firma: TUM)
Im Prinzip brauche ich ein Echtzeit-System. Es soll später möglich sein 
mit aktuell an der Hardware eingelesenen Daten zu arbeiten und die 
simulierten Daten dann praktisch in "Echtzeit" an die Hardware 
zurückgeben zu können. <- Aber da ist im Moment noch nebensächlich.

Die vorgeschlagene Lösung würde funktionieren wenn ich auf alle 
abgespeicherten Werte Zugriff hätte. Leider handelt es sich bei den 
Simulationsmodellen um FMU-Modelle die nicht alle Daten als Variablen 
ausgeben sondern mit internen Werten weiterrechnen. Bei einer neuen 
initialisierung der Simulation sind die internen Daten also 
unwiderruflich weg.

Wird das Problem langsam klarer?

Beste Grüße
Fabian
Gast
Servus,
ich habe eigentlich keine Lust aus dir jede kleine Info rauszuquetschen. 
Entweder du stellst dein Problem den Entwickler vor oder arbeitest dich 
in die Materie selbst ein. Ohne das Model zu sehen, wird dir hier kaum 
einer helfen können!

Bei Simulink kann man doch "inf" bei der Zeitangabe angeben. Dann läuft 
das unendlich lang. K.A.
Eventuell gibt es die Möglichkeit, in Simulink ein event zu triggern, 
wobei der observer mit callback Funktion in Matlab implementiert ist.
http://de.mathworks.com/help/matlab/matlab_oop/listener-callback-functions.html
Bin mir aber nicht sicher, ob man in embedded matlab function blocks 
sowas benutzen kann.

Allerdings wird das arg aufwändig und langsam für jedes Sample - falls 
es überhaupt funktioniert. Wie viele samples/second sollen das werden?
Gast
Eventuell willst Du Simulink in Echtzeit laufen lassen? Das wird nicht 
ganz klar... dazu gibt es drei Möglichkeiten:
- Poor man's realtime: Ein Bremsblock, der die Ausführung von 
Simulink-Modellen auf Echtzeit herunterbremst (ist irgendwo im file 
exchange zu finden)
- das gleiche in Richtig heisst Simulink Desktop Realtime (einen halben 
Schritt weiter mit Coder mit kompilierten Modellen)
- Simulink Realtime mit dedizierter Hardware: Sehr schön, sehr teuer...

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 10 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.