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

cputime wird in Simulink nicht richtig berechnet/ausgegeben

 

christian_2
Forum-Anfänger

Forum-Anfänger


Beiträge: 29
Anmeldedatum: 16.04.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 13.11.2012, 08:27     Titel: cputime wird in Simulink nicht richtig berechnet/ausgegeben
  Antworten mit Zitat      
Hallo,

ich führe mit Simulink Simulationen durch, die zum Teil viele Stunden dauern (Matlab Version 7.1.0.246 (R14), SP 3).

Jetzt wollte ich mir was dazu modellieren, was mir noch die restliche Simulationszeit in Sekunden/Minuten oder Stunden ausgibt (ich meine die reale Restzeit). Ist ja eigentlich auch nicht besonders schwer.

Gelöst habe ich das Problem mit der Matlab-Funktion cputime (siehe Anhang). Ich speichere die cpu-Zeit bei Beginn der Simulation, lese diese während der Simulation aus, um aus der Differenz die verstrichene Zeit, seit Simulationsbeginn zu ermitteln. Diese verrechne ich dann mit dem Fortschritt und so kann ich vorausberechnen, wie lange die Simulation noch dauern wird.

Theoretisch funktioniert die Geschichte, praktisch aber nicht, weil Simulink die cpu-Zeit nicht richtig ausliest.

Das kann jeder ausprobieren:
Löscht man alle hellblau hinterlegten Komponenten aus meinen Modell und gibt für den Fortschritt einfach eine Rampe vor, stellt die Simulationszeit auf 100 Sekunden, feste Schrittweite 0.0001 und lässt dann die Simulation laufen, dann stimmt die verstrichene Zeit, die cputime ausgibt.

Wenn aber im Hintergrund ein aufwändiges Simulink-Modell läuft (so, wie bei mir), dann dauert eine Sekunde cputime zwischen 2 und 4 Sekunden. Das bedeutet, cputime gibt falsche Werte aus.

Kennt jemand das Problem? Hat jemand eine Lösung oder weiß jemand, wie ich mein Modell umschreiben kann, so dass ich die verbleibende Simulationszeit ausrechnen kann?

Vielen Dank schon mal im Voraus für jede Antwort!

Viele Grüße

Christian

Simulationszeit.jpg
 Beschreibung:

Download
 Dateiname:  Simulationszeit.jpg
 Dateigröße:  82.42 KB
 Heruntergeladen:  769 mal
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: 13.11.2012, 09:41     Titel:
  Antworten mit Zitat      
Gerne biete ich Unterstützung beim Kernproblem an - der Reduktion der Rechenzeit an sich.

Zur Abschätzung der Restzeit:

    Ist das grosse Realmodell fixed-step oder variable-step?

    Variieren die Modelllaufzeiten viel? Und wenn ja warum? Andere Parameter -> andere Steifheit von DGLs oder warum?

    Ist es wichtig, dass es bei mehreren Anwendern (== Rechnern) funktioniert?

Andreas
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
christian_2
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 29
Anmeldedatum: 16.04.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 13.11.2012, 13:21     Titel:
  Antworten mit Zitat      
Hallo Andreas,

erstmal vielen Dank für Deine Antwort.

Um Deine Fragen zu beantworten:
1. Das große Realmodell ist fixed-step, mit Integrationsschrittweite von üblicherweise 0.01.

2. Die Modelllaufzeiten dürften schon variieren. Genau habe ich nicht verstanden was Du meinst. Das Simulationsprogramm simuliert 1D Fahrzeuglängsdynamik (Lkw). Die Strecken sind natürlich unterschiedlich lang. Für 300 km braucht man ca. 5 Stunden.
Es gibt beim Lkw einige Dinge (und damit Routinen), die nur zu bestimmten Zeiten gelten bzw. aufgerufen werden. Z.B. muss im Gefälle Retardereinsatz, Motorbremse, etc. berechnet werden, so dass die Simulation im Gefälle noch langsamer läuft.
Habe ich Deine Frage damit ausreichend genau beantwortet?

3. Prinzipiell sollte es schon möglich sein, dass die Anwendung auf beliebigen Rechnern läuft. Wobei Rechnerhardware, Betriebssystem, etc. gleich sein sollten. Was war der Hintergrund Deiner Frage?

Viele Grüße

Christian
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: 14.11.2012, 11:28     Titel:
  Antworten mit Zitat      
Der Hintergrund aller Fragen war welche Vereinfachungen denkbar sind. Wenn es nur auf einem Rechner läuft, könnte man ganz frech die Simulationszeit und Rechenzeit korrieren. Wenn nicht könnte man einen Benchmark hinterlegen und skalieren.

Fixed-Point ist gut, weil dann die Gesamtrechendauer wesentlich einfacher abschätzbar ist. Der Knackpunkt hier ist aber wohl, dass es Fahrsituationen gibt die wesentlich langsamer Ablaufen (vielleicht durch Enabled Subsystems).

Was ich machen würde:

Nicht noch einen Block dazupacken der in jedem Schritt etwas misst, weil es ja dann alles noch länger dauert, sondern wie Länge einer Simulation vorhersagen und beim Start einblenden. Eine kurze Simulation, die z.B. 2 min dauert auf dem Rechner laufen lassen. Bsp. 100 simulierte Sekunden, 120 echte Sekunden (auf einem anderen Rechner vielleicht 180s). Dann weiss ich bei einer Simulationszeit von 10000 s, dass es auf dem einen Rechner 12000s dauert usw. Der Fakti 1.2 wird irgendwo auf dem Pfad als Benchmark hinterlegt. Wenn die Fahrsituationen zu zu falschen Schätzungen führen: Kann man im Vorfeld wissen welche Simulation eine solche Situationen hat und die Schätzung ändern?

Andreas
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
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.