|
|
Plot-Button in GUI für Simulink-Modell ersetzen |
|
Plot_Ersatz |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 12.11.2013, 15:23
Titel: Plot-Button in GUI für Simulink-Modell ersetzen
|
 |
Hi,
mein aktuelles Modell erfordert neben der Auswahl des Start-Buttons noch das Betätigen des Plot-Buttonsnach Simulationsende.
Kennt hier vielleicht jemand eine elegante Möglichkeit den Plot-Button zu ersetzen?
Optisch wäre ein Fortschrittsbalken analog zu dem in Simulink etwas elegantes, aber das erwarte ich von GUID nicht. Die Bedienbarkeit wäre für Dritte schon deutlich besser/inuitiver, wenn sie nach dem Start-Button nicht auch noch auf Plot drücken müssten.
Ein vom Start-Button sofort initiierter Plot wird vermutlich daran scheitern, dass die Simulation meist doch ein paar Sekunden benötigt.
|
|
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.499
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 12.11.2013, 15:40
Titel:
|
 |
Hallo,
ein erster Versuch wäre:
- aus dem Callback des Start-Buttons den Plot-Button aufrufen oder
- den Callback des Plot-Buttons an den Code des Callbacks des Start-Buttons anschließen
Für die Einrichtung des Fortschrittsbalkens sehe ich keine sehr einfache Möglichkeit. Das müsste wenn aus dem Simulink-Modell heraus passieren.
Grüße,
Harald
|
|
|
Plot_Ersatz |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 12.11.2013, 17:20
Titel:
|
 |
Wie würdest du aus dem Callback eines Buttons den Callback eines anderen aufrufen? Ich brauchte das bisher nicht xD
Es gibt doch einen Timer der für Plots genutzt wird. Könnte ich nicht damit um beispielsweise 2-3 Sekunden verzögern und anschließend den Callback des Plot-Button aufrufen?
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.499
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 12.11.2013, 17:39
Titel:
|
 |
Hallo,
Zitat: |
Wie würdest du aus dem Callback eines Buttons den Callback eines anderen aufrufen? |
Durch Aufruf der Funktion, ggf. mit benötigten Argumenten. Mehr kann ich dazu nicht sagen, ohne die Funktionen oder zumindest ihre Deklarationszeilen (function...) zu sehen.
Zitat: |
Es gibt doch einen Timer der für Plots genutzt wird. |
Was genau meinst du hier? waitbar?
Grüße,
Harald
|
|
|
Plot_Ersatz |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 13.11.2013, 09:46
Titel:
|
 |
Innerhalb der beiden Callbacks sind nichts weiter ausser die Anweisung das Simulink-Modell per load_system zu laden und über setparam zu starten, sowie ein paar Variablen zu plotten und die Definitionen von Axes, Legende usw.
Ich habe den Timer selbst noch nicht genutzt, aber mal davon gelesen (z.B. http://www.gomatlab.de/timer-in-gui-t22119.html ). Eine Delaytime von 3 Sekunden und ein anschließender Aufruf des plotbutton_Callbacks wären super.
|
|
|
Plot_Ersatz |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 14.11.2013, 13:38
Titel:
|
 |
|
 |
|
Harald hat Folgendes geschrieben: |
Durch Aufruf der Funktion, ggf. mit benötigten Argumenten. Mehr kann ich dazu nicht sagen, ohne die Funktionen oder zumindest ihre Deklarationszeilen (function...) zu sehen.
|
Ach du meinst, dass ich die ganze function des Plotbuttons in den Callback-function des Startbuttons schieben soll? Bleibt nur das Problem, dass das Simulink-Modell meist 1-3 Sekunden dauert und so die passenden Werte im Workspace fehlen.
Kann ich mit waitbar einen Delay von ein paar Sekunden einbauen? Dafür wollte ich den Timer jetzt missbrauchen. Ich muss ja nicht darstellen, was der so im Hintergrund treibt. Hauptsache er baut mir eine Pause zwischen dem Start der Simulation über setparam und dem Plot der Variablen aus dem Workspace, wenn ich den Start-Button betätige.
Bisher habe ich die unschöne Lösung mit einem Plot-Button. Das lässt sich aber von Leute ohne Erfahrung mit dem Programm schlecht bedienen, da die GUI noch deutlich mehr als bloß die zwei Buttons und eine Axe enthält. Ich werde doch nicht der erste mit einem derartigen Problem sein :-/
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.499
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 14.11.2013, 14:58
Titel:
|
 |
Hallo,
führe die Simulation doch mit SIM aus. Dann wird automatisch gewartet, bis die Simulation fertig ist.
Grüße,
Harald
|
|
|
Plot_Ersatz |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 14.11.2013, 17:35
Titel:
|
 |
SIM brachte nicht die Lösung, denn ich frage die Ergebnisse des Simulink-Modells über den Workspace ab. Das geschah bisher in einem speziellen Button nur für den Plot. Wenn ich das nun in den Startbutton umschichte, fragt er dort nach den Werten aus dem Workspace, bevor das Simulink-Modell die Werte dort hingeschrieben hat. Er ist innerhalb des Callbacks deutlich schneller als das Modell selbst.
Die Lösung war jetzt richtig simpel, denn es gibt eine Pause-Funktion:
Pause(5)
das war's
Trotzdem danke.
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.499
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 14.11.2013, 17:52
Titel:
|
 |
Hallo,
so wird eben 5 Sekunden gewartet, egal ob das Modell 1s oder 10s braucht.
Ich weiß nicht, mit welchen Blöcken du arbeitest. Wenn man mit SIM und Outport-Blöcken arbeitet, ist das Warten jedenfalls kein Problem.
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 - 2025
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.
|
|