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

Event Listener verlangsamen meine Simulink Regelung

 

Alex1
Forum-Newbie

Forum-Newbie


Beiträge: 3
Anmeldedatum: 07.09.14
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 07.09.2014, 22:21     Titel: Event Listener verlangsamen meine Simulink Regelung
  Antworten mit Zitat      
Hallo Zusammen,

ich habe eine Regelung in Simulink erstellt die mittels einer GUI (mit guide erstellt) gesteuert werden soll. In dieser werden derzeit 4 (später 6) Messsignale in Echtzeit in der GUI dargestellt. Dies passiert über Event Listener (in der StartFcn in Simulink deklariert) die auf ein seperates updategui.m File verweisen.

Mein Problem ist jetzt, dass seitdem die Simulationszeit extrem zugenommen hat.

Parameter:
Simulationszeit 5s, Fixed Step Solver (ode1), Fixed Step Size 0.1

Berechnungszeit vorher (ohne gui, event listener): 1s
Berechnungszeit nachher: 62s

Die Werte beziehen sich auf einen reinen Berechnungsvorgang in Simulink. Die Steuerung erfolgte hier nicht über die GUI. (wobei das Ergebnis gleich ist)

Wenn ich mein Simulink slx File in einen anderen Ordner kopiere in dem kein updategui.m File liegt, ist die Simulationszeit wieder bei 1s.
D.h. das Problem muss an der Wertübergabe zwischen Simulink (Modell) und Matlab (updategui.m) liegen.


Jetzt meine Fragen:
Habt ihr ähnliche Erfahrungen gemacht?
Kann ich etwas im updategui.m File verbessern?
Vielleicht eine Begrenzung einbauen, dass nur 2 Werte pro Sekunde gelesen/angezeigt werden? Wie?

Viele Grüße
Alex
Private Nachricht senden Benutzer-Profile anzeigen


Alex1
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 3
Anmeldedatum: 07.09.14
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 08.09.2014, 15:57     Titel:
  Antworten mit Zitat      
Habe es selbst gelöst. Wink

Die letzte Zeile Code im updategui.m File, hat meine Simulation ausgebremst.
--> set_param('regelung','SimulationCommand','Update')

Ich dachte mit dem Update Befehl kann ich meine Ausgabewerte in der GUI aktualisieren. Der Befehl ist aber gar nicht nötig, es wird schon automatisch in Echtzeit aktualisiert.


Falls jemand mit dem Updaten der GUI Probleme hat, hier mein Code:

function varargout = updategui(varargin)

%create a run time object that can return the value of the out block's
rto1 = get_param('regelung/Out_1','RuntimeObject');
rto2 = get_param('regelung/Out_2','RuntimeObject');

%create string from realtime object
str1 = num2str(rto1.InputPort(1).Data);
str2 = num2str(rto2.InputPort(1).Data);

%get a handle to the GUI's text fields
display1 = findobj('Tag','text1');
display2 = findobj('Tag','text2');

%update the gui
set(display1,'string',str1);
set(display2,'string',str2);
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.