|
|
| Tobi |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 23.02.2012, 15:07
Titel: Sleep / Pause in Matlab
|
 |
Hallo,
ich verwende in Matlab pause(0.1) um z.b. 100ms mit der weiteren Ausführung zu warten. Während dieser Zeit kann im Hintergrund eine Simulink Simulation ausgeführt werden.
Nun ist mir "pause" aber zu ungenau und ich benötige "Sleep"-Zeiten im µs Bereich. Dies habe ich mir auch in einer MEX Funktion realisiert und kann den Prozess nun für wenige µs schlafen lassen. Allerdings wird nun auch Simulink blockiert. Dies soll nicht so sein.
Gibt es eine Möglichkeit meine Matlabausführung genauso wie bei "pause" anzuhalten jedoch Simulink weiterlaufen zu lassen?
Hoffe auf eine Hilfe. Ich komme nicht mehr weiter.
Greetz
Tobi
|
|
|
|
|
|
| Jan S |

Moderator
|
 |
Beiträge: 11.057
|
 |
|
 |
Anmeldedatum: 08.07.10
|
 |
|
 |
Wohnort: Heidelberg
|
 |
|
 |
Version: 2009a, 2016b
|
 |
|
|
 |
|
Verfasst am: 24.02.2012, 23:59
Titel: Re: Sleep / Pause in Matlab
|
 |
Hallo Tobi,
Wie hast Du das denn bisher als MEX umgesetzt?
Und wie testest Du, wieviele Millisekunden Matlab tatsächlich schläft, da ja auch der Sprung in das MEX und vom MEX zurück einen Overhead hat.
Gruß, Jan
|
|
|
|
| Tobi |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 27.02.2012, 14:40
Titel:
|
 |
| |
 |
|
Hallo Jan,
also ich habe es versucht hiermit umzusetzen:
Das funktioniert auch soweit nur blockiert logischerweise die restlichen Matlab Prozesse.
Ich habe auch versucht es in einem Thread laufen zu lassen und es einem bestimmten Prozessor zuzuweisen, so das vielleicht die anderen Threads der GUI und Simulink Simulation nicht blockiert werden. Nur wird wohl der komplette Prozess blockiert durch diese blockierende Schleife.
Die Auflösung der Zeiten wird damit zumindest um einiges schneller. Dies sehe ich an der absoluten Endzeit wenn ich z.b. 1000 mal 100µs warte, was mit pause niemals möglich wäre.
Mir geht es auch nicht drum auf 1µs genau das ganze aufzulösen. Schön wäre wenn ich größenordnung 100µs genau Auflösen könnte.
Den Mex Overhead könnte ich dann automatisch rausjustiern lassen in einem adaptiven Lernprozess.
Ich frage mich nur wie die Build in Funktion "pause" das realisiert das eine Simulink Simulation während der "pause" Phasen nicht blockiert.
|
|
|
|
|
|
|
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 - 2025
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.
|
|