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

Aus Matlab function Text ausgeben

 

theshadyanswer
Forum-Anfänger

Forum-Anfänger


Beiträge: 11
Anmeldedatum: 29.03.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 11.06.2012, 10:43     Titel: Aus Matlab function Text ausgeben
  Antworten mit Zitat      
Hallo Leute,

ich habe ein Simulink Modell bei dem ein Hydraulikzylinder mithilfe von Ventilen ein und ausfährt. Die Ventile steuere ich durch ein Matlab function Block. Jetzt möchte ich gerne eine Textausgabe aus dem function block generieren, sodass ich sehen kann, in welcher Schleife ich mich im Block befinde.

Beispiel
Code:

  % Zylinderfahrt
    if position_s < s_brems_schl;
        v_akt_1      = 1;                          % hier schaltet das Ventil (Zylinder fährt aus)
   disp(’Der Zylinder fährt gerade aus ’) % hier soll die Function einen Text  oder eine Variable ausgeben den ich mit einem Display Block anzeigen lassen kann.



Würde mich sehr über Hilfe freuen.

Gruß

Andy
Private Nachricht senden Benutzer-Profile anzeigen


Elfriede

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 11.06.2012, 11:33     Titel:
  Antworten mit Zitat      
Hallo Andy,

was funktioniert denn nicht?
Wenn es nicht geht, wird dir Simulink ja bestimmt einen Fehler anzeigen. In dem steht dann auch drin, was das Problem ist.

Solltest Du eine Embedded Matlab Function benutzen, dann steht in dem Fehlerbericht auch wie Du den Fehler behebst (siehe eml.extrinsic).

Grüße
Elfriede
 
theshadyanswer
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 11
Anmeldedatum: 29.03.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 11.06.2012, 12:57     Titel: text aus function block
  Antworten mit Zitat      
Hatte ganz vergessen die Fehlermeldung zu posten:

Function 'disp' is not supported for code generation. Consider using coder.extrinsic('disp') to bypass code generation.

Function 'Steuerung/MATLAB Function' (#55.1538.1577), line 56, column 9:
"disp('Der Zylinder faehrt gerade aus ')"
Launch diagnostic report.

Ist es überhaupt möglich aus einem function-block einen Text auszugeben?
Private Nachricht senden Benutzer-Profile anzeigen
 
irgendwas

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 11.06.2012, 13:44     Titel:
  Antworten mit Zitat      
Hallo,

die Fehlermeldung gibt dir bereits einen Hinweis. Schau dir mal die Dokumentation zu extrinsic an. Damit verweist du innerhalb Simulink af Matlab. Damit werden Funktionen an Matlab übergeben, welche in Simulink nicht definiert sind. Dort ausgeführt und damit müsste auch deine Textausgabe möglich sein.

Grüße
 
cybbi
Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 84
Anmeldedatum: 23.08.11
Wohnort: ---
Version: Alle
     Beitrag Verfasst am: 12.06.2012, 08:24     Titel:
  Antworten mit Zitat      
Folgende Änderung einbauen, dann gehts:

Code:
coder.extrinsic('disp')
disp('Der Zylinder fährt gerade aus')
Private Nachricht senden Benutzer-Profile anzeigen
 
theshadyanswer
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 11
Anmeldedatum: 29.03.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 12.06.2012, 09:03     Titel: DANKE
  Antworten mit Zitat      
Danke an alle.


Problem ist gelöst
Private Nachricht senden Benutzer-Profile anzeigen
 
mirimoc
Forum-Newbie

Forum-Newbie


Beiträge: 8
Anmeldedatum: 19.06.14
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 08.07.2014, 14:45     Titel:
  Antworten mit Zitat      
Ich möchte wie oben genannt, meinen aggregatzustand in simulink mit dem block display anzeigen lassen.

Code:
Aggregatzustand = double(1.3);
coder.extrinsic('disp')
Aggregatzustand = disp('überhitzter Dampf');
 


Leider kommt da die Fehlermeldung : to many outputs arguments raus.

Habt ihr eine Idee, woran es liegt?
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: 08.07.2014, 14:50     Titel:
  Antworten mit Zitat      
Hallo,

disp hat keine Rückgabeargumente. Der erzeugte String wird einfach ins Command Window geschrieben.
Code:
disp('überhitzter Dampf');

oder auch
Code:
disp(['überhitzter Dampf ' num2str(Aggregatzustand)] );

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.