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

.txt Datei mit Simulink einlesen

 

Windpirat
Forum-Newbie

Forum-Newbie


Beiträge: 6
Anmeldedatum: 17.10.11
Wohnort: ---
Version: R2008b
     Beitrag Verfasst am: 17.10.2011, 12:41     Titel: .txt Datei mit Simulink einlesen
  Antworten mit Zitat      
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
Private Nachricht senden Benutzer-Profile anzeigen


Harald
Forum-Meister

Forum-Meister


Beiträge: 24.492
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 17.10.2011, 13:19     Titel:
  Antworten mit Zitat      
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
Private Nachricht senden Benutzer-Profile anzeigen
 
Windpirat
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 6
Anmeldedatum: 17.10.11
Wohnort: ---
Version: R2008b
     Beitrag Verfasst am: 17.10.2011, 13:53     Titel:
  Antworten mit Zitat      
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
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.492
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 17.10.2011, 14:21     Titel:
  Antworten mit Zitat      
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
Private Nachricht senden Benutzer-Profile anzeigen
 
Windpirat
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 6
Anmeldedatum: 17.10.11
Wohnort: ---
Version: R2008b
     Beitrag Verfasst am: 27.10.2011, 14:10     Titel:
  Antworten mit Zitat      
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
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.492
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 27.10.2011, 14:45     Titel:
  Antworten mit Zitat      
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
Private Nachricht senden Benutzer-Profile anzeigen
 
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.