|
|
Gültigkeit von Variablen in GUIs |
|
Tobser92 |
Forum-Anfänger
|
|
Beiträge: 43
|
|
|
|
Anmeldedatum: 10.04.18
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 10.04.2018, 06:39
Titel: Gültigkeit von Variablen in GUIs
|
|
|
|
|
Hi Leute,
ich arbeite grad an einer GUI für einen Simulationsversuch. Dabei soll via Button-Klick mit dem Befehl simulate ein Simulink-Modell simuliert werden. Die Ergebnisse sollen in Diagrammen geplottet werden.
Bei dem Modell handelt es sich um einen Regelkreis mit einem Fuzzy-Regler. Über die Blöcke toworkspace sollen die Signalverläufe aus dem Modell geführt und geplottet werden.
Vor dem Simulieren lade ich die FIS-Strukturen aus den FIS-Files.
Nun erhalte ich beim Klicken auf den Button die Fehlermeldung, dass die Variable, in der ich die FIS-Struktur abspeichere, nicht definiert wurde.
Wenn ich jedoch vor dem Starten der GUI die FIS-Strukturen mit readfis lade, funktioniert alles wie gewollt.
Hat das was mit dem Gültigkeitsbereich der Variablen zu tun? Wie sieht das aus, wenn ich über die GUI dem Simulink-Modell Variablen übergeben will?
Hier mal der Code aus der Callback-Funktion des Buttons:
Kann mir jemand weiterhelfen?
|
|
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.495
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 10.04.2018, 08:04
Titel:
|
|
|
|
Tobser92 |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 43
|
|
|
|
Anmeldedatum: 10.04.18
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 10.04.2018, 17:52
Titel:
|
|
Ja, es lag am Workspace, ich hab mit dem assignin-Befehl in einem andren Workspace gespeichert.
Hier mal der Code:
Nun hab ich noch ein weiteres Problem. Ich möchte die Werte aus den Edit Text Boxen dem Simulink-Modell übergeben.
Zunächst hab ich den Wert aus den Textboxen ausgelesen mit
Wie kann ich jetzt nun die Parameter dem Simulinkmodell übergeben?
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.495
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 10.04.2018, 20:05
Titel:
|
|
Hallo,
was bedeutet hier übergeben? Insbesondere: wo soll die Einstellung in Simulink verwendet werden?
Falls die Einstellung als Parameter in einem Block eingetragen ist, muss sie nur im richtigen Workspace liegen.
assignin macht es generell schwierig zu debuggen. Ich würde eine der anderen Möglichkeiten, z.B. Application Data, verwenden, und bei sim den momentanen Workspace als Source Workspace angeben - beides siehe vorheriger Kommentar.
Grüße,
Harald
|
|
|
Tobser92 |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 43
|
|
|
|
Anmeldedatum: 10.04.18
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 10.04.2018, 20:44
Titel:
|
|
Also das Auslesen der Daten aus den EditTextBoxen klappt problemlos. Nun ist die Frage, wie ich diese meinem Simulink-Modell übergeben kann.
Eine Idee bestand darin, die die Parameter in ein .mat file zu speichern (klappt auch problemlos) und diese im Modell mit from file reinlade, leider funktioniert das nicht
Um das Problem etwas zu konkretisieren:
Ich habe 6 Parameter aus der GUI. Im Modell sollen diese einer MatLab-Function übergeben werden.
Jemand eine Idee?
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.495
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 10.04.2018, 20:50
Titel:
|
|
Hallo,
Du brauchst (wie gesagt) nichts zu übergeben, sondern die Daten müssen "nur" im Workspace liegen.
Zitat: |
und diese im Modell mit from file reinlade, leider funktioniert das nicht |
Und was funktioniert daran nicht?
Zitat: |
Im Modell sollen diese einer MatLab-Function übergeben werden. |
Dann in die MATLAB-Function gehen und dort die Parameter über "Edit Data" als solche definieren.
Grüße,
Harald
|
|
|
Tobser92 |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 43
|
|
|
|
Anmeldedatum: 10.04.18
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 10.04.2018, 21:00
Titel:
|
|
Ich hab das leider noch nicht ganz verstanden. Ich hab was gelesen, dass man Daten als Application data, GUI data oder User data speichern kann und mit den jeweiligen set und get-Funktionen arbeiten kann. Aber wie genau funktioniert das? Was gibt es denn diesbezüglich überhaupt an Möglichkeiten Daten abzulegen/zu speichern?
Und wie kann ich dem sim-Befehl den aktuellen Workspace als source workspace angeben?
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.495
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 10.04.2018, 21:10
Titel:
|
|
Hallo,
Zitat: |
Aber wie genau funktioniert das? |
So wie im Link angegeben, z.B. Application Data
Zitat: |
Was gibt es denn diesbezüglich überhaupt an Möglichkeiten Daten abzulegen/zu speichern? |
Im Link sind alle Möglichkeiten dargestellt, die es bei GUIDE gibt. App Designer (ab R2016a) ist moderner und erleichtert das Verwalten eigener Daten beträchtlich.
Zitat: |
Und wie kann ich dem sim-Befehl den aktuellen Workspace als source workspace angeben? |
Das habe ich im Kommentar von 09:04 geschrieben.
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 - 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.
|
|