|
|
Matlabskript aus Simulink ausführen |
|
tkrhiman |
Forum-Newbie
|
|
Beiträge: 7
|
|
|
|
Anmeldedatum: 07.03.13
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 18.03.2013, 19:43
Titel: Matlabskript aus Simulink ausführen
|
|
Hallo,
ich suche eine Möglichkeit ein Matlabskript aus Simulink auszuführen. Wenn ein Signal einen bestimmten Wert in der Simulation erreicht, soll das Skript gestartet werden. Idealerweise sollte die Simulation weiter laufen, während das Skript abgearbeitet wird.
In diesem Thread habe ich einige Hintergrundinformationen gegeben wofür ich das ganze brauche.
Für Hilfe wäre ich sehr dankbar.
Simon
|
|
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.492
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 18.03.2013, 21:38
Titel:
|
|
Hallo,
schau dir mal Triggered Subsystems, oder auch Enabled Subsystems an.
Grüße,
Harald
|
|
|
tkrhiman |
Themenstarter
Forum-Newbie
|
|
Beiträge: 7
|
|
|
|
Anmeldedatum: 07.03.13
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 19.03.2013, 12:05
Titel:
|
|
Danke erstmal für die Antwort.
Mit den Triggered Subsystems und Enabled Subsystems kann ich ja bestimmte Teilsysteme und Blöcke unter bestimmten Bedingungen ausführen lassen.
Aber ich habe noch keine Möglichkeit gefunden, wie ich von dort ein Matlabskript starte. Dieses sollte in einem eigenen Thread ausgeführt werden und unabhängig von der Simulation laufen (Damit meine ich, dass die Simulation nicht darauf wartet, dass das Skript durchgelaufen ist, sondern nur den Startbefehl erteilt).
Alternativ würde es mir wahrscheinlich auch helfen, wenn ich ein externes Programm von der Simulation aus starten könnte, an das bestimmte Parameter übergeben werden können.
Schönen Gruß
Simon
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.492
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 19.03.2013, 12:26
Titel:
|
|
Hallo,
Du könntest in das Subsystem einen MATLAB Function Block setzen, in dem du dein Skript aufrufst. Mit dos oder system oder ! kannst du dann auch externe Executables aufrufen.
Das "gleichzeitig" könnte schwierig werden.
Grüße,
Harald
|
|
|
tkrhiman |
Themenstarter
Forum-Newbie
|
|
Beiträge: 7
|
|
|
|
Anmeldedatum: 07.03.13
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 19.03.2013, 16:19
Titel:
|
|
|
|
|
Die einfachste Lösung (Skript direkt aus dem Simulink Block 'Matlab Function' aufzurufen) hatte ich gar nicht erst probiert.
Allerdings kommt dann die Fehlermeldung, dass ein Skript nicht aufgerufen werden darf. Beim googeln nach der genauen Fehlermeldung, bin ich dann auf einen älteren Thread gestoßen.
Wird das Skript vorher mit
gekennzeichnet, funktioniert es ohne Probleme. Das heißt mein Hauptproblem ist schon einmal gelöst.
Allerdings wird, wie du schon vermutet hattest, das ganze nicht gleichzeitig ausgeführt. Das heißt, die Simulation pausiert, bis das Skript abgearbeitet ist. Aus dem Skript ist es mit den von dir angegeben Befehlen möglich ein externes Programm zu starten. Ob dies die Simulation zeitlich beeinflusst konnte ich jetzt erstmal nicht genau feststellen.
Ich hatte dann noch etwas mit der Simulink Coder Toolbox rumgespielt, im speziellen mit dem Asynchronous Teil, bin mir aber überhaupt nicht sicher, ob das dafür geeignet ist, ein Skript oder eine Funktion unabhängig von der Simulation auszuführen.
Auch in Matlab habe ich keine Möglichkeit gefunden, eine weitere Funktion parallel auszuführen. Wahrscheinlich wird hierfür die Parallel Computing Toolbox benötigt, die auf meinem System nicht vorhanden ist.
Falls also jemand eine Möglichkeit kennt, das ganze zu parallelisieren wäre ich sehr daran interessiert.
Simon
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.492
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 19.03.2013, 17:39
Titel:
|
|
Hallo,
Zitat: |
Aus dem Skript ist es mit den von dir angegeben Befehlen möglich ein externes Programm zu starten. |
Das sollte dann auch gleichzeitig möglich sein.
Zitat: |
Auch in Matlab habe ich keine Möglichkeit gefunden, eine weitere Funktion parallel auszuführen. Wahrscheinlich wird hierfür die Parallel Computing Toolbox benötigt, die auf meinem System nicht vorhanden ist. |
Wenn es darum geht, MATLAB-Code parallel auszuführen, stimme ich zu. Bei der parallelen Ausführung von Executables könnte obige Möglichkeit helfen.
Grüße,
Harald
|
|
|
|
|
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 - 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.
|
|