|
|
.txt Datei mit Simulink einlesen |
|
Windpirat |
Forum-Newbie
|
|
Beiträge: 6
|
|
|
|
Anmeldedatum: 17.10.11
|
|
|
|
Wohnort: ---
|
|
|
|
Version: R2008b
|
|
|
|
|
|
Verfasst am: 17.10.2011, 12:41
Titel: .txt Datei mit Simulink einlesen
|
|
Hallo Zusammen,
ich bin neu hier und noch Anfänger in Sachen Simulink.
Nun sitze ich schon seit einigen Tagen an einem Problem.
Ich habe eine funktionierende Simulink-Simulation. Nun will ich das während die Simulation läuft, gleichzeit in jedem Zeitschritt ein .txt Datei gelesen und die darin stehende Werte in den Workspace geladen werden. Ich habe das über die "Embedded Matlab Function" (EMF) versucht, was aber bis jetzt noch nicht zum Ziel führte. Folgende Befehle habe ich schon in der EMF verwendet:
- load
- textread
- dlmread
Hat verleicht jemand eine Idee wie ich dieses Problem lösen kann?
MfG
...Windpirat
|
|
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.492
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 17.10.2011, 13:19
Titel:
|
|
Hallo,
ändert sich die Textdatei ständig, oder warum soll sie in jedem Zeitschritt eingelesen werden?
Für das Lesen von Textdateien verwendet man üblicherweise TEXTSCAN.
Bitte, wenn etwas "nicht zum Ziel geführt hat", immer auch schreiben, warum es nicht zum Ziel geführt hat. (Fehlermeldung? Wenn ja welche? Unerwartete Resultate? Inwiefern?)
Grüße,
Harald
|
|
|
Windpirat |
Themenstarter
Forum-Newbie
|
|
Beiträge: 6
|
|
|
|
Anmeldedatum: 17.10.11
|
|
|
|
Wohnort: ---
|
|
|
|
Version: R2008b
|
|
|
|
|
|
Verfasst am: 17.10.2011, 13:53
Titel:
|
|
|
|
|
Harald hat Folgendes geschrieben: |
ändert sich die Textdatei ständig, oder warum soll sie in jedem Zeitschritt eingelesen werden?
...
|
ja die ändert sich ständig. Die Simulation tausch ständig mit einem anderen Simultionsmodell Daten aus. Dieses System will ich jetzt noch um ein weiteres Simulationsmodell erweitern und dazu muss ich zu einem bestimmten Zeitpunkt einen Druckwert aus dem anderen Modell einlesen. Dieses Modell schreibt die Werte nach jeden Zeitschritt in eine extra .txt-Datei dich ich einlesen will.
Harald hat Folgendes geschrieben: |
...
Bitte, wenn etwas "nicht zum Ziel geführt hat", immer auch schreiben, warum es nicht zum Ziel geführt hat. (Fehlermeldung? Wenn ja welche? Unerwartete Resultate? Inwiefern?)
...
|
Ok...danke für den Hinweiss
folgenden Fehler erhalte ich beim starten der Simulation:
The function 'dlmread' is not supported by Embedded MATLAB for code generation. See the documentation for eml.extrinsic to learn how you can use this function in simulation.
Function 'load' implicitly resolved in the MATLAB workspace. Implicit evaluation in MATLAB is not supported. Please declare this function extrinsic using eml.extrinsic('load'), or call it using feval.
Sowie ich jetzt die Hilfe verstanden habe ist die EMF nicht für soetwas gedacht. Vielleicht hat ja jemand noch eine andere Idee wie ich die Daten in den Workspace bekomme?
...der Windpirat
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.492
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 17.10.2011, 14:21
Titel:
|
|
Hallo,
ist das "andere Simulationsmodell" auch in Simulink geschrieben? Wenn nicht, ist es ein Paket mit einem C-Interface? Vielleicht gibt es eine elegantere Möglichkeit, die Daten auszutauschen, als die Daten auf die Festplatte zu schreiben und von dort wieder einzulesen.
Die Meldungen sagen dir ja schon, was du machen solltest: mit eml.extrinsic arbeiten. Der Nachteil davon ist, dass du dann keinen (echtzeitfähigen) Code generieren kannst. Wenn du das ohnehin nicht vorhast, sehe ich darin kein Problem.
Grüße,
Harald
|
|
|
Windpirat |
Themenstarter
Forum-Newbie
|
|
Beiträge: 6
|
|
|
|
Anmeldedatum: 17.10.11
|
|
|
|
Wohnort: ---
|
|
|
|
Version: R2008b
|
|
|
|
|
|
Verfasst am: 27.10.2011, 14:10
Titel:
|
|
Hallo,
ich habe das Problem jetzt ein wenig anders gelöst.
Zwischen meinen beiden Simulationsmodellen arbeitet iterativ ein .m-file Interface. Dieses Interface schreibt mir den Druckwert nach jedem Zeitschriftt direkt in den Workspace. Das funktioniert auch soweit.
Allerdings liest mein Simulink-Modell (mit "From Workspace" Block) diesen Wert aus dem Workspace nur beim Start der Simulink-Simulation. Allerdings will ich, dass sich das Simulink-Modell vor jedem Zeitschritt diesen Wert aus dem Workspace holt. Hat vielleicht jemand eine Idee wie man das realisieren kann?
MfG
der Windpirat
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.492
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 27.10.2011, 14:45
Titel:
|
|
Hallo,
was ich versuchen würde:
wenn die Variable im Workspace liegt, nimm einen Constant-Block und trage sie dort ein. Sie müsste dann immer upgedatet werden.
Ansonsten bleibt der Weg über eml.extrinsic.
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.
|
|