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

Simulink Modell über GUI steuern

 

Tobi1892
Forum-Anfänger

Forum-Anfänger


Beiträge: 24
Anmeldedatum: 05.11.14
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 05.11.2014, 11:01     Titel: Simulink Modell über GUI steuern
  Antworten mit Zitat      
Guten Tag,

ich hab das Gefühl das das ganze relativ simpel sein soll finde aber nach tagelanger Recherche immernoch keinen Zugang zu meinem Problem.

Ich habe ein Simulink-Modell erstellt, welches aus 10-15 eingegebenen Parametern (zurzeit durch "Konstant-Blöcke" dargestellt) einen Wert berechnen soll.

Dieses Modell möchte ich über ein GUI steuern in dem ich die einzelnen Parameter eingeben, die Berechnung starten und anschließend das Ergebnis sehen kann.

Ich scheitere allerdings schon an der grundsätzlichen Verknüpfung des GUI mit Simulink.

Ich hoffe mir kann jemand helfen.

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


Harald
Forum-Meister

Forum-Meister


Beiträge: 24.492
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 05.11.2014, 19:36     Titel:
  Antworten mit Zitat      
Hallo,

schau mal z.B. hier
http://www.mathworks.de/help/matlab.....ink-model-parameters.html
oder hier:
http://www.mathworks.com/matlabcent.....i-synchronization-example

Wenn dann konkrete Probleme auftreten, bitte die konkreten Fragen stellen.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Tobi1892
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 24
Anmeldedatum: 05.11.14
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 08.11.2014, 12:07     Titel:
  Antworten mit Zitat      
Hey,

vielen Dank schonmal das f14 Beispielt war denke ich ne große Hilfe. Ich habsdenke ich soweit nachvollzogen und auf mein Modell übertragen.

Wenn ich nun aber die M.File simulieren will gibt matlab mir die fehlermeldung: "Error: File: CaseA_try.m Line: 406 Column: 1
Unexpected MATLAB operator." aus.

Versteh ich insofern nicht so ganz das besagte Zeile 406 der beginn der callback function von edit textbox 3 ist...die ist also auomatisch von guide erstellt worden. ich hab im anhang ma meine datei drinnen.

vielen dank im voraus

CaseA_try.m
 Beschreibung:

Download
 Dateiname:  CaseA_try.m
 Dateigröße:  21.73 KB
 Heruntergeladen:  512 mal
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.492
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 08.11.2014, 17:49     Titel:
  Antworten mit Zitat      
Hallo,

die roten Balken am Rande des Editors sowie die Unterringelungen zeigen ja, wo das Problem liegt.
Entweder muss jede Unterfunktion innerhalb einer Datei mit einem end abgeschlossen werden, oder man muss es bei allen weglassen.
GUIDE lässt es bei der Erstellung des Templates weg.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Tobi1892
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 24
Anmeldedatum: 05.11.14
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 10.11.2014, 09:25     Titel:
  Antworten mit Zitat      
also ich kriege es jetzt aufjedenfall hin das sich das simulink modell und auch das gui öffnen. allerdings scheint das mit der werteübergabe ncoh nciht zu klappen. wenn ich im gui einen wert eintippe und bestätige bekomme ich folgende fehlermeldung:

Error using CaseA>edit1_Callback (line 364)
Invalid setting in Constant block 'A,SA' for parameter 'Value'

Error in gui_mainfcn (line 96)
feval(varargin{:});

Error in CaseA (line 42)
gui_mainfcn(gui_State, varargin{:});

Error in
@(hObject,eventdata)CaseA('edit1_Callback',hObject,eventdata,guidata(hObject))


Error while evaluating uicontrol Callback


und das kann ich überhaupt nicht einordnen, da die parameterübergabe eigentlich genau der form im beispiel entspricht.

CaseA.m
 Beschreibung:

Download
 Dateiname:  CaseA.m
 Dateigröße:  22.33 KB
 Heruntergeladen:  490 mal
CaseA_try.m
 Beschreibung:

Download
 Dateiname:  CaseA_try.m
 Dateigröße:  22.35 KB
 Heruntergeladen:  478 mal
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.492
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 10.11.2014, 16:11     Titel:
  Antworten mit Zitat      
Hallo,

heißt dein Block tatsächlich 'A,SA'?
Ich würde es vermeiden, Sonderzeichen in Blocknamen zu verwenden.

Ansonsten: ich bin mir nicht sicher, ob der Wert in dem Fall als Double oder String übergeben werden muss, also mal testhalber das str2double weglassen.

Bitte möglichst auch ein Testmodell posten und die Zeilen, an denen du dich orientierst. Das erleichtert die Hilfestellung.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Tobi1892
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 24
Anmeldedatum: 05.11.14
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 11.11.2014, 16:42     Titel:
  Antworten mit Zitat      
Hey,

ja der Block heißt so. Werde mir Gedanken über ne bessere Benennung machen weil eigentlich bei allen Sonderzeichen drinne sind.

Ich habe das str2double weggelassen, sodass jetzt ein string übergeben werden sollte aber da ändert sich nichts.

ich bekomme weiterhin die Fehlermeldung:

Error using CaseA>edit1_Callback (line 355)
Invalid setting in Constant block 'A,SA' for parameter 'Value'

Error in gui_mainfcn (line 96)
feval(varargin{:});

Error in CaseA (line 42)
gui_mainfcn(gui_State, varargin{:});

Error in
@(hObject,eventdata)CaseA('edit1_Callback',hObject,eventdata,guidata(hObject))


Error while evaluating uicontrol Callback

sobald ich den ersten Wert eingeben will.

Ich stelle jetzt nochmal in den Anhang mein Gui, das Simulinkmodell und das Beispiel GUI aus dem ich die Sachen versucht habe abzuleiten.

Grüße Tobi

f14ex.m
 Beschreibung:
beispiel gui von matlab

Download
 Dateiname:  f14ex.m
 Dateigröße:  15.76 KB
 Heruntergeladen:  483 mal
E_Bat_n.mdl
 Beschreibung:
mein Simulinkmodell

Download
 Dateiname:  E_Bat_n.mdl
 Dateigröße:  39.16 KB
 Heruntergeladen:  518 mal
CaseA.m
 Beschreibung:
mein Gui

Download
 Dateiname:  CaseA.m
 Dateigröße:  21.75 KB
 Heruntergeladen:  500 mal
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.492
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 11.11.2014, 19:03     Titel:
  Antworten mit Zitat      
Hallo,

jetzt bitte noch die .fig, damit man das auch ausführen kann.

Ich habe als Beispiel mal folgendes versucht
Code:
set_param('E_Bat_n/A,SA','Value','12')

und das ging bei mir.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Tobi1892
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 24
Anmeldedatum: 05.11.14
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 12.11.2014, 11:24     Titel:
  Antworten mit Zitat      
oh die hab ich vergessen.

aber das bedeutet ja das die m-file das richtig an die mdl übergibt allerdings nicht den richtigen wert aus dem gui bekommt oder sehe ich das falsch?

grüße tobi

CaseA.fig
 Beschreibung:

Download
 Dateiname:  CaseA.fig
 Dateigröße:  8.48 KB
 Heruntergeladen:  500 mal
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.492
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 12.11.2014, 20:36     Titel:
  Antworten mit Zitat      
Hallo,

ich bekomme nun einen Fehler beim Öffnen der GUI aus
Code:
   set_param('E_Bat_n/A,SA','Value', get(handles.edit1,'String'))


Das ist auch nicht weiter verwunderlich: ich habe mal den Debugger drüberlaufen lassen, und zu dem Zeitpunkt steht in allen Edit-Felder "Edit Text". Das mag Simulink natürlich nicht.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Tobi1892
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 24
Anmeldedatum: 05.11.14
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 12.11.2014, 21:22     Titel:
  Antworten mit Zitat      
hey danke für den tipp. also muss ich quasi in der opening fct einstellen, dass in dem feld nicht edit text sonder irgendein wert steht sehe ich das richtig?

grüße tobi
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.492
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 13.11.2014, 08:27     Titel:
  Antworten mit Zitat      
Hallo,

entweder in der OpeningFcn oder über GUIDE in der .fig.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Tobi1892
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 24
Anmeldedatum: 05.11.14
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 19.11.2014, 11:02     Titel:
  Antworten mit Zitat      
Hi (sorry ich war die lette Woche krank)

also Werte habe ich nun erstmal alle geändert.
Funktionieren tuts natürlich immernoch nicht.
Der Fehlercode wenn ich bei A,SA den Wert ändere ist:

Error using CaseA>edit1_Callback (line
364)
Invalid setting in Constant block 'A,SA'
for parameter 'Value'

Error in gui_mainfcn (line 96)
feval(varargin{:});

Error in CaseA (line 42)
gui_mainfcn(gui_State, varargin{:});

Error in
@(hObject,eventdata)CaseA('edit1_Callback',hObject,eventdata,guidata(hObject))


Error while evaluating uicontrol Callback


Das ganze ist passiert als ich 5 als Wert eingegeben habe. Ich verstehe nicht recht, warum der wert unzulässig sein soll. und der rest der fehlermeldung bezieht sich wieder auf irgendeine gui_mainfcn die ich garnicht selbst erstellt habe.

Vielen Dank und beste Grüße,

Tobi
Private Nachricht senden Benutzer-Profile anzeigen
 
DSP
Forum-Meister

Forum-Meister



Beiträge: 2.117
Anmeldedatum: 28.02.11
Wohnort: ---
Version: R2014b
     Beitrag Verfasst am: 19.11.2014, 12:53     Titel:
  Antworten mit Zitat      
Ich nehme mal an es geht um folgende Funktion:

Code:

function edit1_Callback(hObject, eventdata, handles)
% hObject    handle to edit1 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)

% Hints: get(hObject,'String') returns contents of edit1 as text
%        str2double(get(hObject,'String')) returns contents of edit1 as a double
model_open(handles)
NewVal = get(hObject,'String');
set_param('E_Bat_n/A,SA','Value',NewVal)
end
 


Du holst mit get einen string, also muss die Eingabe von string in eine Zahl umgewandelt werden. Value ist kein string sondern eine Zahl, entsprechend muss die Übergabe dann konform sein.

Code:
set_param('E_Bat_n/A,SA','Value',str2num(NewVal))
% evtl. geht auch
set_param('E_Bat_n/A,SA','Value',str2double(NewVal))
 
Private Nachricht senden Benutzer-Profile anzeigen
 
Tobi1892
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 24
Anmeldedatum: 05.11.14
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 21.11.2014, 09:43     Titel:
  Antworten mit Zitat      
also wenn ich das so eingebe wie du das beschrieben hast, dann beschwert sich matlab weiterhin darüber.

Error using CaseA>edit1_Callback (line 355)
Invalid setting in Constant block 'A,SA' for parameter 'Value'

Error in gui_mainfcn (line 96)
feval(varargin{:});

Error in CaseA (line 42)
gui_mainfcn(gui_State, varargin{:});

Error in @(hObject,eventdata)CaseA('edit1_Callback',hObject,eventdata,guidata(hObject))


Error while evaluating uicontrol Callback

das problem scheint hier allerdings im simulinkmodell zu liegen. warum ist die 4 die ich eingebe denn nen unzulässiger wert für den constant block? mit dem befehl den du mir gegeben hast müsste doch aus dem string eine zahl werden und damit sollte alles passen
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.