Verfasst am: 25.11.2010, 18:21
Titel: Starten von Simulink-Modell aus GUI
Guten Abend!
Ich habe mal eine Frage zur GUI, habe heute damit begonnen.
Ich möchte mein Simulink-Modell aus dem GUI heraus aufrufen und dem Modell auch Parameter übergeben, um verschiedene Werte berechnen zu können.
Ich habe es aber bisher noch nicht hinbekommen, dem Modell einen Wert zu übergeben. Die berechneten Werte wiederum sollen in einem Text-Kästchen im GUI wiedergegeben werden.
Bisher habe ich verschiedene Edit-Felder auf meine Oberfläche gezogen und in da entsprechende m-File folgenden Text eingefügt
Code:
function input1_editText_Callback(hObject, eventdata, handles)
Somit steht in meinem Kästchen eine 0, wenn ich nichts eingebe. Wenn ich nun einen Wert eingebe, möchte ich, dass dieser Wert an mein Simulink-Model übergeben wird und mein Model mit diesem Wert die entsprechende Größe berechnet (also genau so, als würde ich in meinem Simulink-Model auf "run" drücken) und mir den berechneten Wert wieder an GUI liefert.
Hätte hier jemand einen Tip? Oder gibt es vllt gute tutorials hierfür? Im Endeffekt möchte ich mein erstelltes Simulink-Model aus GUI heraus steuern.
Zuvor hat mein Model die entsprechenden Werte aus einem M-File entnommen.
Vielen Dank für die Hilfe!
Aber was muss ich denn für ein Symbol in meinem Simulink-Modell setzen, wenn ich einen berechneten Wert zurück bekommen möchte.
sprich ich übergebe meinem System einen Wert x und rechne dadurch y aus
(z.B. y=2x)
In meinem Simulink-Modell habe ich ja dann ein Out-Symbol oder einen Display am Ende der Gleichung angefügt.
Aber ich muss doch bestimmt einen anderen Block anfügen oder?
Deniz
Lord nibbler
Gast
Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
Verfasst am: 02.12.2010, 09:18
Titel:
Hallo,
ein to_Workspace Block, bei den sinks zu finden hilft hier weiter.
Kurz als Erklärung noch:
Mein Simulink-Model lautet "Pumpe" und ich möchte ihm aus dem GUI heraus die Parameter T1 und p1 übergeben (so sind sie im Model benannt).
Als Rückgabwert möchte ich aus meinem Model die Werte h1 und s1 bekommen(die Simout-Blöcke habe ich dementsprechend benannt).
Nur wo habe ich meinen Fehler?
Danke für die Hilfe!
Deniz
_Peter_
Gast
Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
Verfasst am: 02.12.2010, 14:44
Titel:
Was heißt den
Zitat:
irgendwie funktioniert es nicht
? Was genau funktioniert nicht? Die Parameter setzen? Lesen? Beides? Was macht er? Wo bricht er ab? Wie lautet die Fehlermeldung? Bitte gib alle Details bekannt die du kannst.
Vielleicht, kannst du auch ein Simulink-Modell uns zur Verfügung stellen. Würde vielleicht helfen.
Die Fehlermeldungen sehen merkwürdig aus. Sie enthalten nämlcih keine Fehlermeldung, sondern nur den Ort, wo der Fehler auftrat. Fehlen da vielleicht noch die bedeutenden ersten Zeilen?!
Ich habe gerade noch einmal nachgeschaut und das ist alles was an Meldungen auftritt.
Jetzt habe ich gerade das M-File neu abgespeichert und es kam die Meldung:
Cannot run this file, because C:\.......\Versuch.mdl. shadows it. Delete this file.
Habe nicht bemerkt, dass ich ein gleichnamiges Simulink-Model besitze.
Jetzt treten beim Starten des GUIs keine Medlungen mehr auf, sondern erst nach der Durchführung. Und zwar:
??? Attempt to reference field of non-structure array.
Error in ==> Versuch>Start_pushbutton1_Callback at 108
Temp1=str2num(get(handles.Temperatur1_editText,'String'));
Error in ==> gui_mainfcn at 96
feval(varargin{:});
Error in ==> Versuch at 42
gui_mainfcn(gui_State, varargin{:});
Error in ==>
@(hObject,eventdata)Versuch('Start_pushbutton1_Callback',hObject,eventdata,guidata(hObject))
??? Error while evaluating uicontrol Callback
Diese Meldung ist hofftl mehr nach deinem Geschmack!
Danke für die Hilfe!
Gruß, Deniz
_Peter_
Gast
Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
Verfasst am: 06.12.2010, 10:12
Titel:
Zitat:
??? Attempt to reference field of non-structure array.
Error in ==> Versuch>Start_pushbutton1_Callback at 108
Temp1=str2num(get(handles.Temperatur1_editText,'String'));
Also wenn ich das richtig interpretiere würde ich behaupten, dass "Temperatur1_editText" nicht in dem struct "handles" enthalten ist.
sicher dass du das anlegst? bzw. dass handles ein struct ist?
guck dir mal im Debug-Modus das handles an der Stelle an.
Weil laut der Fehlermeldung will er auf etwas zugreifen, was es nicht gibt.
Danke dir!
Das hat gestimmt. Die Bezeichnung lautet nämlich 'Temperatur1_edit1'.
Ich habe es jetzt hinbekommen, meine Parameter zu setzen, jedoch schaffe ich es noch nicht, ausgerechnete Ergebnisse zurück zu bekommen.
beim Setzen lautet mein Code in der pushbutton-function:
Danke dir!
Habe es gerade ausprobiert und so funktioniert es!
Super!
MfG
Deniz
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
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.