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

Laufender Balken in der Konsole

 

Poseidonius
Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 97
Anmeldedatum: 08.07.07
Wohnort: Magdeburg
Version: ---
     Beitrag Verfasst am: 05.06.2009, 12:01     Titel: Laufender Balken in der Konsole
  Antworten mit Zitat      
Hallo zusammen,

ich habe ein umfangreiches Modell, dass ich aus einem Matlabskript heraus konfiguriere und starte. Da das Modell mitunter recht lange läuft, hätte ich gern in der Matlabkonsole eine Info darüber, wie lange der Durchlauf noch dauert, also eine in einen laufenden Balken transfomierte Simulationszeit.

Ich scheitere aber schon bei der Ausgabe eines "#". Wie könnte ich eine solche Ausgabe denn umsetzen? Im Embedded Matlab kann man ja zumindest Variablen ausgeben, aber das finde ich keine schöne Lösung, ein Balken wäre mir wie gesagt lieber.

Ein schönes Wochenende schon mal

Poseidonius
Private Nachricht senden Benutzer-Profile anzeigen


outsider
Forum-Meister

Forum-Meister


Beiträge: 806
Anmeldedatum: 03.09.07
Wohnort: München
Version: R2012b
     Beitrag Verfasst am: 05.06.2009, 12:07     Titel:
  Antworten mit Zitat      
schau mein Tutorial an - ich glaube der beantwortet jeder Frage, wenn es um die Waitbar geht.
http://www.gomatlab.de/tutorial-ver.....im-eigenen-code-t489.html


MfG
Private Nachricht senden Benutzer-Profile anzeigen
 
Poseidonius
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 97
Anmeldedatum: 08.07.07
Wohnort: Magdeburg
Version: ---
     Beitrag Verfasst am: 05.06.2009, 12:13     Titel:
  Antworten mit Zitat      
Hallo outsider,

danke für den Tipp! "Waitbar" kannte ich bisher noch gar nicht!

Aber wenn ich ein Simulinkmodell einmal anstosse und einen waitbar anzeigen möchte, dann müsste ich diesen ja aus dem Modell heraus steuern. Geht sowas?

Poseidonius
Private Nachricht senden Benutzer-Profile anzeigen
 
outsider
Forum-Meister

Forum-Meister


Beiträge: 806
Anmeldedatum: 03.09.07
Wohnort: München
Version: R2012b
     Beitrag Verfasst am: 05.06.2009, 12:38     Titel:
  Antworten mit Zitat      
auch das geht. Am einfachsten Du bindest ein S-Function Block, der in jedem Simulationsschritt einen M-File aufruft und den Balken aktualisiert.

evtl. hilft Dir das hier (aber keine Ahnung wie gut es ist - habe eben gefunden)
http://www.mathworks.com/matlabcentral/fileexchange/9738


MfG
Private Nachricht senden Benutzer-Profile anzeigen
 
Poseidonius
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 97
Anmeldedatum: 08.07.07
Wohnort: Magdeburg
Version: ---
     Beitrag Verfasst am: 05.06.2009, 13:59     Titel:
  Antworten mit Zitat      
Yup, passt.

ich habe einen Matlab-Function Block integriert, der eine Funktion aufruft, die den Waitbar aktualisiert. Davor noch ein Zero-Order Hold mit entsprechender Samplerate, um die Simulation nicht unnötig auszubremsen.

Danke für Deine Hilfe

Poseidonius
Private Nachricht senden Benutzer-Profile anzeigen
 
Affenmann
Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 95
Anmeldedatum: 22.01.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 08.06.2009, 07:31     Titel:
  Antworten mit Zitat      
@Poseidonius
kannst du mir mal zeigen wie du das gemacht hast, hab das nämlich auch
schon versucht, aber nicht hinbekommen!!

Danke!!
Private Nachricht senden Benutzer-Profile anzeigen
 
Poseidonius
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 97
Anmeldedatum: 08.07.07
Wohnort: Magdeburg
Version: ---
     Beitrag Verfasst am: 08.06.2009, 10:23     Titel:
  Antworten mit Zitat      
eigentlich ganz einfach ...

Beim Simulink Modell unter File > Model Properties > Callbacks für

"StartFcn"
Code:
fprintf('Running model                  ');
h = waitbar(0,'Please Wait','Name','MOSAIC Framework');


und für "EndFcn"
Code:
fprintf('             [ok]\n');
close(h)


einfügen. Dann habe ich eine analoge Uhr "Clock" ins Modell gesetzt und den simulierten Zeitwert an einen "Matlab Function" Block übergeben, der die kleine eigene Funktion "CallWaitBar(u)" aufruft. Und in CallWaitBar(u) steht nix anderes als

Code:

function CallWaitBar(u)
ModelRuntime=10;         % Sollte noch als Parameter übergeben werden
waitbar(u/ModelRuntime)
 


Und dann ist es egal ob ich das Modell aus Matlab oder Simulink aufrufe, ich bekomme immer einen schönen Balken.

Grüße

Poseidonius
Private Nachricht senden Benutzer-Profile anzeigen
 
Affenmann
Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 95
Anmeldedatum: 22.01.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 08.06.2009, 10:39     Titel:
  Antworten mit Zitat      
Ok Danke schonmal,
hab das jetzt so umgesetzt, ich bekomm nur in der embedded matlab fcn,
ne fehlermeldung

"Errors occurred during parsing of Embedded MATLAB function 'Embedded
MATLAB Function'(#31)"

und meine embedded matlab fcn sieht so aus:
Code:
function fcn(u)
% This block supports the Embedded MATLAB subset.
% See the help menu for details.

CallWaitBar(u)


Was mach ich falsch?
Ach ja und für Running model und die vielen Leerzeilen hab ich den
Modellname meiner Simulation eingetragen!
Meinst du mit Endfcn, Closefcn oder Stopfcn?

Sorry für die vielen Fragen -> Anfänger Smile
Private Nachricht senden Benutzer-Profile anzeigen
 
Poseidonius
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 97
Anmeldedatum: 08.07.07
Wohnort: Magdeburg
Version: ---
     Beitrag Verfasst am: 08.06.2009, 10:45     Titel:
  Antworten mit Zitat      
... ne ne ne, kein "Embedded Matlab" Block !!!

Da gibts noch einen "MATLAB function" block

und mit dem zeigt man auf die ganz normale Matlab Funktion CallWaitBar.m

Und dann läufts hoffentlich Smile
Private Nachricht senden Benutzer-Profile anzeigen
 
Affenmann
Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 95
Anmeldedatum: 22.01.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 08.06.2009, 10:52     Titel:
  Antworten mit Zitat      
der Link zeigt auf einen embedded matlab block ?!?
Private Nachricht senden Benutzer-Profile anzeigen
 
Affenmann
Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 95
Anmeldedatum: 22.01.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 08.06.2009, 10:53     Titel:
  Antworten mit Zitat      
mit dem anderen Block bekomm ich die Fehlermeldung:

Error evaluating MATLAB function in 'TKW_DP124_Zulauf_PLAY/MATLAB Fcn'. MATLAB error message:
Undefined function or method 'CallWaitBar.m' for input arguments of type 'double'.
Private Nachricht senden Benutzer-Profile anzeigen
 
Poseidonius
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 97
Anmeldedatum: 08.07.07
Wohnort: Magdeburg
Version: ---
     Beitrag Verfasst am: 08.06.2009, 11:02     Titel:
  Antworten mit Zitat      
Was für einen Datentyp spuckt Deine Clock denn aus?
Private Nachricht senden Benutzer-Profile anzeigen
 
Affenmann
Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 95
Anmeldedatum: 22.01.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 08.06.2009, 11:03     Titel:
  Antworten mit Zitat      
Weiß ich nicht!
Wie find ich das raus?
Private Nachricht senden Benutzer-Profile anzeigen
 
Affenmann
Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 95
Anmeldedatum: 22.01.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 08.06.2009, 11:05     Titel:
  Antworten mit Zitat      
Ich hab jetzt die Fcn genommen:

Mfcn.jpg
 Beschreibung:

Download
 Dateiname:  Mfcn.jpg
 Dateigröße:  109.41 KB
 Heruntergeladen:  665 mal
Private Nachricht senden Benutzer-Profile anzeigen
 
Poseidonius
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 97
Anmeldedatum: 08.07.07
Wohnort: Magdeburg
Version: ---
     Beitrag Verfasst am: 08.06.2009, 11:12     Titel:
  Antworten mit Zitat      
Ich habe ein kleines Beispiel zusammengeklickert, das tuen sollte ...

Grüße

Poseidonius

Waitbar.mdl
 Beschreibung:

Download
 Dateiname:  Waitbar.mdl
 Dateigröße:  20.45 KB
 Heruntergeladen:  585 mal
CallWaitBar.m
 Beschreibung:

Download
 Dateiname:  CallWaitBar.m
 Dateigröße:  38 Bytes
 Heruntergeladen:  608 mal
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen

Gehe zu Seite 1, 2  Weiter

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.