|
ba_2013 |
Forum-Newbie
|
|
Beiträge: 7
|
|
|
|
Anmeldedatum: 22.04.13
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 22.04.2013, 19:36
Titel: GUI - M-FILE - Simulink
|
|
|
|
|
Hallo zusammen,
ich habe bisher immer versucht, durch vorhandene Beiträge Lösungen zu finden. Allerdings komme ich jetzt einfach nicht weiter:
Zu meinem Problem:
- Zunächst habe ich ein Simulink-Modell erstellt (Energieversorgung.mdl)
--> läuft soweit gut
- Dann habe ich mir gedacht, ich schreibe ein M-File (simu.m), welches die Variablen in den Base Workspace einliest und danach die Simulation des Simulink-Modells durchführt.
--> funktioniert auch
- Als nächstes hatte ich die Idee, den Anwender des Programms die Möglichkeit zu geben, über eine GUI die Werte in den Base Workspace zu lesen
--> klappt auch
Was bisher nicht funktioniert:
- Ausführen der GUI und dadurch Start/Run der simu.m
Ich verstehe es einfach nicht, wie ich jetzt die Verknüpfung schaffen soll.
(Der nächste Schritt wäre dann, dass automatisch eine Ausgabedatei erzeugt wird, die mir sämtliche Ergebnisse der Simulation ausgibt.)
Hoffe das war jetzt verständlich. Vielleicht kann mir jemand helfen, eine Verknüpfung zwischen meiner GUI und der simu.m zu schaffen?!
Vielen Dank
|
|
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.495
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 22.04.2013, 20:43
Titel:
|
|
Hallo,
an sich brauchst du nur in deiner GUI einen Pushbutton oder ähnliches zu machen, in dem dann deine simu.m aufgerufen wird.
Falls es dabei dann Probleme gibt, wäre es gut, wenn du die so konkret wie möglich darlegen könntest.
Grüße,
Harald
|
|
|
ba_2013 |
Themenstarter
Forum-Newbie
|
|
Beiträge: 7
|
|
|
|
Anmeldedatum: 22.04.13
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 22.04.2013, 21:31
Titel:
|
|
Hallo,
erstmal danke für deine Antwort!
Einen Push-Button habe ich bereits eingebaut. Durch klicken des Buttons werden die Werte, die die Simulation benötigt, in den Base Workspace geladen.
Ich weiß nicht genau, wo und wie genau ich jetzt den Aufruf der simu.m veranker.
Ist mein Problem klar?
|
|
|
ba_2013 |
Themenstarter
Forum-Newbie
|
|
Beiträge: 7
|
|
|
|
Anmeldedatum: 22.04.13
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 22.04.2013, 22:50
Titel:
|
|
http://www.gomatlab.de/gui-soll-m-file-ausfuehren-t24772.html
Also in dem Beitrag hattest du ja bereits schon mal zu einem ähnlichen Thema Hilfestellung geleistet.
So wie ich es bisher verstanden habe, ist es sinnvoll die in der GUI eingegeben werde als handles zu übergeben. Komme ich um diese Methode vorbei? Da mein Simulink-Modell auf den Base Workspace zugreift.
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.495
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 23.04.2013, 17:29
Titel:
|
|
Hallo,
du kannst beim sim-Befehl bzw. mit simset über die Optionen 'SrcWorkspace' und 'DstWorkspace' angeben, aus welchem Workspace Daten gelesen und wohin sie gespeichert werden. Ich würde beides auf 'current' setzen.
Ansonsten gilt das, was ich auch in dem von dir verlinkten Beitrag geschrieben habe. Je konkreter du sagen kannst, worin die Probleme liegen, desto besser.
Grüße,
Harald
|
|
|
ba_2013 |
Themenstarter
Forum-Newbie
|
|
Beiträge: 7
|
|
|
|
Anmeldedatum: 22.04.13
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 24.04.2013, 18:04
Titel:
|
|
|
|
|
Hallo,
also ich habe mal ein kurzes Beispiel erstellt, dass meine Probleme im Grunde eigentlich zeigt.
Die Test.fig und Test.m stellen meine GUI dar. In dieser GUI wird ein Wert eingegeben, der durch betätigen des Pushbuttons in den Base Workspace gespeichert wird.
Die Skript.m startet die Simulation der Versorgung.mdl. (In meinem Skript werden noch weitere Berechnungen durchgeführt)
Die Versorgung.mdl ist mein Modell. Das Ergebnis wird in den Base Workspace gespeichert.
__________________________________
Wie ich mir das Modell vorstelle?
1. In der GUI wird ein Wert eingegeben.
2. Durch betätigen des Pushbuttons wird Skript.m ausgeführt.
3. Die Simulation beginnt.
Aber wie bekomme ich das hin? Ich habe keine Ahnung...sorry...
Beschreibung: |
|
Download |
Dateiname: |
Test.m |
Dateigröße: |
3.54 KB |
Heruntergeladen: |
363 mal |
Beschreibung: |
|
Download |
Dateiname: |
Test.fig |
Dateigröße: |
2.39 KB |
Heruntergeladen: |
338 mal |
Beschreibung: |
|
Download |
Dateiname: |
Skript.m |
Dateigröße: |
23 Bytes |
Heruntergeladen: |
364 mal |
Beschreibung: |
|
Download |
Dateiname: |
Versorgung.mdl |
Dateigröße: |
31.67 KB |
Heruntergeladen: |
394 mal |
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.495
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 24.04.2013, 18:38
Titel:
|
|
Hallo,
Zitat: |
Durch betätigen des Pushbuttons wird Skript.m ausgeführt. |
Woher soll MATLAB das wissen? Das musst du schon in den Code schreiben.
Zitat: |
Das Ergebnis wird in den Base Workspace gespeichert. |
Nein, wird es nicht. Es wird in den momentanen Workspace, also den von Start_Callback gespeichert. Du müsstest Ergebnis also dort weiterverarbeiten.
Grüße,
Harald
|
|
|
ba_2013 |
Themenstarter
Forum-Newbie
|
|
Beiträge: 7
|
|
|
|
Anmeldedatum: 22.04.13
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 24.04.2013, 18:47
Titel:
|
|
Also im Beispiel hat das jetzt schon mal super geklappt!
Herzlichen Dank!!!!!!
|
|
|
ba_2013 |
Themenstarter
Forum-Newbie
|
|
Beiträge: 7
|
|
|
|
Anmeldedatum: 22.04.13
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 27.04.2013, 00:11
Titel:
|
|
Hallo Harald,
ich habe da doch noch eine Frage.
In meiner Skript.m werden nach der Simulation noch weitere (hier sinnlose) Berechnungen durchgeführt.
Das Ergebnis dieser Berechnungen würde ich gerne in einer Ausgabe-GUI darstellen, die sich nach Abschluss der Berechnungen öffnet und beispielsweise den Wert "Umrechnung" ausgibt.
Könntest du mir einen Tipp geben, wie ich das realisieren kann? Mit evalin habe ich es irgendwie nicht hinbekommen.
Vielen Dank.
Viele Grüße
P.s.: Die Eingabe-GUI bleibt unverändert.
Beschreibung: |
|
Download |
Dateiname: |
Skript.m |
Dateigröße: |
143 Bytes |
Heruntergeladen: |
363 mal |
Beschreibung: |
|
Download |
Dateiname: |
Ausgabe1.fig |
Dateigröße: |
1.18 KB |
Heruntergeladen: |
347 mal |
Beschreibung: |
|
Download |
Dateiname: |
Ausgabe1.m |
Dateigröße: |
2.74 KB |
Heruntergeladen: |
355 mal |
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.495
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 27.04.2013, 08:52
Titel:
|
|
Hallo,
Zitat: |
Könntest du mir einen Tipp geben, wie ich das realisieren kann? Mit evalin habe ich es irgendwie nicht hinbekommen. |
Zeige bitte, was du mit evalin versucht hast. Das gibt immerhin einen Hinweis, was du eigentlich erreichen wolltest.
Das Ablegen der Daten im Base Workspace finde ich eine schreckliche Angewohnheit. Mit sim/simset kann man SrcWorkspace und DstWorkspace auf 'current' setzen und dann so die Daten vernünftig verwalten:
http://www.mathworks.com/help/matla.....-data-in-a-guide-gui.html
Grüße,
Harald
|
|
|
ba_2013 |
Themenstarter
Forum-Newbie
|
|
Beiträge: 7
|
|
|
|
Anmeldedatum: 22.04.13
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 27.04.2013, 10:44
Titel:
|
|
Hatte es u.a. mit
Umrechnung = evalin ('base', 'String', Umrechnung)
oder
Umrechnung= evalin ('base', 'String', num2str(Umrechnung))
versucht...
Mit dem Base Workspace gebe ich dir recht, allerdings ist das Modell so erst nach und nach entstanden.
Würde ich es jetzt neu erstellen, würde ich auch einiges anders machen.
Trotzdem danke.
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.495
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 27.04.2013, 10:54
Titel:
|
|
Hallo,
ich verstehe nicht, wie du auf die Idee kommst, evalin mit drei Eingabeargumenten aufzurufen.
in der Doku ist folgendes Beispiel:
Auf dein Beispiel übertragen:
Zitat: |
Mit dem Base Workspace gebe ich dir recht, allerdings ist das Modell so erst nach und nach entstanden. |
Am Simulink-Modell brauchst du doch dazu gar nichts ändern. Es muss lediglich der sim-Aufruf angepasst werden.
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.
|
|