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

gui simulink

 

alexxxx

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 23.04.2008, 09:03     Titel: gui simulink
  Antworten mit Zitat      
hallo
habe mal eine Frage Bevor ich mich ins Abenteuer stürze.
Kann man von einem Gui aus Werte an simulink geben? Aslo was ich meine nicht über from Workspace sondern gleich zum beispiel in ein Gain?

Um meine Frage zu Vereinfachen:
Ich gebe in einer Edit_box einen wert ein. dieser wird dann in einer Variablen x gespeicher. jetzt will ich dies x an ein gain von meinem simulink model schicken. damit er einfach jetzt statt einen festenwert immer die neu eingegeben zahl nimmt. geht so etwas?

gruß und danke für die hoffenlich positiven Antworten


Martin
Admin

Admin



Beiträge: 651
Anmeldedatum: 16.06.07
Wohnort: Bietigheim-Bissingen
Version: ---
     Beitrag Verfasst am: 23.04.2008, 09:24     Titel:
  Antworten mit Zitat      
Hallo alex,

ja das geht.
Hier findest du ein Beispiel wie man so etwas macht:
http://www.gomatlab.de/slider-lesen.....ghlight,gui+simulink.html

Gruß Martin

PS: Bei Fragen einfach melden.
_________________

Der kleine goMatlab.de-Knigge - Eine kleine Liste von wichtigen Regeln, die jeder beachten sollte
Private Nachricht senden Benutzer-Profile anzeigen
 
alexxxx

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 23.04.2008, 10:57     Titel:
  Antworten mit Zitat      
Jo danke das hat mich jetzt schon mal auf den richtigen weg gebracht. Doch da sind noch einige Fehler darin.
habe jetzt folgendes in die Edit_box geschrieben.

Code:

function Test_Callback(hObject, eventdata, handles)

masse = get(handles.Test,'Value');
set_param('Verstaerkt/Faktor','Value',num2str(masse));
% hObject    handle to Test (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 Test as text
%        str2double(get(hObject,'String')) returns contents of Test as a double


% --- Executes during object creation, after setting all properties.
function Test_CreateFcn(hObject, eventdata, handles)
% hObject    handle to Test (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    empty - handles not created until after all CreateFcns called

% Hint: edit controls usually have a white background on Windows.
%       See ISPC and COMPUTER.
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
    set(hObject,'BackgroundColor','white');
end

 


bekomme jetzt aber folgende Fehlermeldung:
    ??? Error using ==> set_param
    Gain block does not have a parameter named 'Value'.

    Error in ==> EinAus>Test_Callback at 192
    set_param('Verstaerkt/Faktor','Value',num2str(masse));

    Error in ==> gui_mainfcn at 96
    feval(varargin{:});

    Error in ==> EinAus at 42
    gui_mainfcn(gui_State, varargin{:});

    ??? Error while evaluating uicontrol Callback


Denke mal das hat jetzt mit meinem simulink block zutun. Was ich ihm für einen Wert/Variable in das Gain rein schreiben muß. und hier ist jetzt ja auch mein problem. wie müsste es denn aussehen? kann dort ja nur zahlen eintargen oder value, was mir ja beides nichts bringt.
hoffe noch mal auf eine große hilfe Very Happy
 
Martin
Admin

Admin



Beiträge: 651
Anmeldedatum: 16.06.07
Wohnort: Bietigheim-Bissingen
Version: ---
     Beitrag Verfasst am: 23.04.2008, 11:26     Titel:
  Antworten mit Zitat      
Hallo alex,

Matlab hat dir ja bereits gesagt was ihm nicht gefällt:
alexxxx hat Folgendes geschrieben:
??? Error using ==> set_param
Gain block does not have a parameter named 'Value'.

Das Feld in dem Verstärker heißt "Gain"

Also so:
Code:
set_param('Verstaerkt/Faktor','Gain',num2str(masse));

(Denke ich, habe es aber nicht getestet!)

Klappt es jetzt?

Grüße Martin
_________________

Der kleine goMatlab.de-Knigge - Eine kleine Liste von wichtigen Regeln, die jeder beachten sollte
Private Nachricht senden Benutzer-Profile anzeigen
 
alexxxx

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 23.04.2008, 12:24     Titel:
  Antworten mit Zitat      
komme einstück weiter aber jetzt gibt es schon wieder fehler:

    ??? Undefined function or method 'fix' for input arguments of type 'cell'.

    Error in ==> num2str at 55
    if nargin < 2 && ~isempty(x) && isequalwithequalnans(x, fix(x))

    Error in ==> EinAus>Test_Callback at 198
    set_param('Verstaerkt/Faktor','Gain',num2str(masse));

    Error in ==> gui_mainfcn at 96
    feval(varargin{:});

    Error in ==> EinAus at 42
    gui_mainfcn(gui_State, varargin{:});

    ??? Error while evaluating uicontrol Callback


gibt es denn auch hier einen tip? Smile
 
Martin
Admin

Admin



Beiträge: 651
Anmeldedatum: 16.06.07
Wohnort: Bietigheim-Bissingen
Version: ---
     Beitrag Verfasst am: 23.04.2008, 12:39     Titel:
  Antworten mit Zitat      
Ok ok ich glaube wir müssen das Problem nochmal ganz neu angehen, da du nen großen Denkfehler hast so wie ich deinen Code sehen.

In der Editbox hast du deinen Wert stehen richtig?!
Und jetzt willst du den Wert an Simulink übergeben?!
Dafür musst du als Beispiel einen Pushbutton erstellen mit dem du ja die Simulation startest?! Richtig?
Und in diesen Pushbutton muss auch die Abfrage des Wertes der Editbox rein und die Übergabe an Simulink.


Wenn ich deinen Code nämlich richtig verstehe dann versucht du in dem Callback der Editbox bereits die Übergabe zu machen?!

Code:
function button_simulation_Callback(hObject, eventdata, handles)

sim('datei.mdl',0);

set_param('verstaerker','Gain',num2str(get(handles.editbox1,'Value')));

sim('datei.mdl',10);


Das ist der Callback in dem Button.
Ich öffne außerdem die Simulink-Datei mit der Zeit=0. Da wird gebraucht wenn die mdl nicht schon offen ist. Sonst kannst du nicht reinschreiben.
Und anschließend die Simulation.

Klar geworden?
_________________

Der kleine goMatlab.de-Knigge - Eine kleine Liste von wichtigen Regeln, die jeder beachten sollte
Private Nachricht senden Benutzer-Profile anzeigen
 
Gast



Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 23.04.2008, 14:19     Titel:
  Antworten mit Zitat      
bin echt den falschen weggangen. wäre aber nie drauf gekommen das er falsch wäre. aber jetzt habe ich zwar keine fehlermeldungen mehr aber er schreibt mir jetzt immer ein null ein das gain. erstmal nicht lecht denn immer hin läuft jetzt ja die komunikation fehlerfrei. der alte wert kommt weg aber jetzt halt immer eine null.
habe jetzt nix in meinem edit_funktion nur alles in der pushbutton.

Code:

function edit5_Callback(hObject, eventdata, handles)
% hObject    handle to edit5 (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 edit5 as text
%        str2double(get(hObject,'String')) returns contents of edit5 as a double


% --- Executes during object creation, after setting all properties.
function edit5_CreateFcn(hObject, eventdata, handles)
% hObject    handle to edit5 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    empty - handles not created until after all CreateFcns called

% Hint: edit controls usually have a white background on Windows.
%       See ISPC and COMPUTER.
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
    set(hObject,'BackgroundColor','white');
end


% --- Executes on button press in pushbutton10.
function pushbutton10_Callback(hObject, eventdata, handles)


sim('Verstaerkt.mdl',0);

set_param('Verstaerkt/Faktor','Gain',num2str(get(handles.edit5,'Value')));

sim('datei.mdl',10);

 


Oder ist jetzt heute wirklich der wurm drin. Mad
 
Gast



Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 24.04.2008, 08:31     Titel:
  Antworten mit Zitat      
guten morgen,
Also ich bin ja echt am durchdrehen es will immer noch nicht so wie ich es gerne hätte weiß aber mitlerweile echt nicht mehr was ich noch ausprobieren kann damit es läuft.... hatte ja gestern noch mal meinen quellcode gepostet
jetzt nach langem hin und her und ausprobiererei seint mir das am besten:
Code:
function pushbutton10_Callback(hObject, eventdata, handles)

sim('Verstaerkt.mdl',0);
masse = get(handles.edit5,'string');
set_param('Verstaerkt/Faktor','Gain',num2str(masse))
sim('datei.mdl',10);


doch ich bekomme immer noch eine fehlermeldung:
Zitat:
??? Undefined function or method 'fix' for input arguments of type 'cell'.

Error in ==> num2str at 55
if nargin < 2 && ~isempty(x) && isequalwithequalnans(x, fix(x))

Error in ==> EinAus>pushbutton10_Callback at 268
set_param('Verstaerkt/Faktor','Gain',num2str(masse))

Error in ==> gui_mainfcn at 96
feval(varargin{:});

Error in ==> EinAus at 42
gui_mainfcn(gui_State, varargin{:});

??? Error while evaluating uicontrol Callback

Brauch dingend jetzt bitte nochmal einwenig seht viel hilfe. Confused habt mir ja gersten schon super weiter geholfen...
 
steve
Ehrenmitglied

Ehrenmitglied



Beiträge: 2.022
Anmeldedatum: 03.09.07
Wohnort: Wien
Version: R2023b
     Beitrag Verfasst am: 24.04.2008, 09:54     Titel:
  Antworten mit Zitat      
Moin,

Gast hat Folgendes geschrieben:
Code:
masse = get(handles.edit5,'string');
set_param('Verstaerkt/Faktor','Gain',num2str(masse));

Du speicherst einen String in der Variable "masse" und willst im nächsten Schritt eine Zahl in einen String umwandeln, obwohl "masse" bereits ein String ist.
Was du brauchst, ist bestimmt:
Code:
set_param('Verstaerkt/Faktor','Gain',str2double(masse));


Gast hat Folgendes geschrieben:
sorry sollte nur einmal eingestellt werden Wink

Ein weiterer Grund sich zu registrieren - Dann kann man seine Doppelpostings selber löschen Wink

Gruß
Alex
_________________

>> I told me to.

____________________________________
Matlab Cheat Sheet
goMatlab-Knigge - dran gehalten?!
Schon in den FAQ gesucht?
Ist vielleicht bei den Skripten oder den Tutorials was für dich dabei?
Private Nachricht senden Benutzer-Profile anzeigen
 
Gast



Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 24.04.2008, 10:54     Titel:
  Antworten mit Zitat      
hi alex
erstmal danke für die schnelle antwort, aber ich brauch nochmal deine hilfe habe das jetzt so ausprobiert mit:
Code:
function pushbutton10_Callback(hObject, eventdata, handles)

masse = get(handles.edit5,'string');
set_param('Verstaerkt/Faktor','Gain',str2double(masse));


aber jetzt gibt es immer noch die fehlermeldung:
Zitat:
??? Error using ==> set_param
Invalid setting in Gain block 'Faktor' for parameter 'Gain'.

Error in ==> EinAus>pushbutton10_Callback at 294
set_param('Verstaerkt/Faktor','Gain',str2double(masse));

Error in ==> gui_mainfcn at 96
feval(varargin{:});

Error in ==> EinAus at 42
gui_mainfcn(gui_State, varargin{:});

??? Error while evaluating uicontrol Callback


Was ist den da los es kann doch echt net so schwer sein sitz jetzt schon ewig an diesen einem kleinen ding.

mfg alexxxx
 
steve
Ehrenmitglied

Ehrenmitglied



Beiträge: 2.022
Anmeldedatum: 03.09.07
Wohnort: Wien
Version: R2023b
     Beitrag Verfasst am: 24.04.2008, 11:00     Titel:
  Antworten mit Zitat      
Hmmm...
Es ist aber sichergestellt, dass es in deinem Simulink-Modell "Verstaerkt" einen Block "Faktor" gibt, an welchen ein Gain-Wert übergeben werden kann!?
Eine andere Bedeutung der Fehlermeldung erschließt sich mir sonst im Moment nicht.
_________________

>> I told me to.

____________________________________
Matlab Cheat Sheet
goMatlab-Knigge - dran gehalten?!
Schon in den FAQ gesucht?
Ist vielleicht bei den Skripten oder den Tutorials was für dich dabei?
Private Nachricht senden Benutzer-Profile anzeigen
 
alexxxx
Forum-Newbie

Forum-Newbie


Beiträge: 4
Anmeldedatum: 23.04.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 24.04.2008, 11:46     Titel:
  Antworten mit Zitat      
Also ich bin total ratlos... Mad
mein simulink model heißt Verstaerkt und es besteht jetzt mit mitlerweile auch nur noch aus from workspace....Faktor.....to workspace.
habe ein ganz normles gain von Mathe Operations genommen. habe dann im model auf das Gain, nicht das simbol sondern das wort gain geklickt und dort statt gain Faktor eingetragen. wenn ich jetzt auf das Simbol klicke kommt ja die Funktins Block Parameters: Faktor. dort habe ich nicht umgestellt. auf der ersten registerkarte ist ja gain: wo man einen wert ein taggen kann.

muß dort etwas besonders rein? oder muß ich sonst noch welche Parameter ändern?

mfg
Private Nachricht senden Benutzer-Profile anzeigen
 
Martin
Admin

Admin



Beiträge: 651
Anmeldedatum: 16.06.07
Wohnort: Bietigheim-Bissingen
Version: ---
     Beitrag Verfasst am: 24.04.2008, 11:46     Titel:
  Antworten mit Zitat      
steve hat Folgendes geschrieben:
Hmmm...
Es ist aber sichergestellt, dass es in deinem Simulink-Modell "Verstaerkt" einen Block "Faktor" gibt, an welchen ein Gain-Wert übergeben werden kann!?
Eine andere Bedeutung der Fehlermeldung erschließt sich mir sonst im Moment nicht.


Nein alexxxx hat recht, es geht wirklich damit nicht. Finde es selbst gerade merkwürdig.
Das geht:
Code:
set_param('Verstaerkt/Faktor','Gain','6');

Aber das nicht:
Code:
masse = get(handles.edit5,'string');
set_param('Verstaerkt/Faktor','Gain',str2double(masse));


Weiß gerade auch nicht mehr weiter Sad

Gruß Martin
_________________

Der kleine goMatlab.de-Knigge - Eine kleine Liste von wichtigen Regeln, die jeder beachten sollte
Private Nachricht senden Benutzer-Profile anzeigen
 
Martin
Admin

Admin



Beiträge: 651
Anmeldedatum: 16.06.07
Wohnort: Bietigheim-Bissingen
Version: ---
     Beitrag Verfasst am: 24.04.2008, 12:10     Titel:
  Antworten mit Zitat      
Hab die Lösung Smile

Code:
set_param('Verstaerkt/Faktor','Gain',str2mat(get(handles.edit5,'string')));


Bin drauf gekommen da in der help für den Block Gain folgendes steht:
Zitat:
Specify the value by which to multiply the input. The gain may be a scalar, vector, or matrix. The gain may not be Boolean


Demnach mach ich mit str2mat aus einem String eine "Matrix"

Gruß Martin
_________________

Der kleine goMatlab.de-Knigge - Eine kleine Liste von wichtigen Regeln, die jeder beachten sollte
Private Nachricht senden Benutzer-Profile anzeigen
 
alexxxx
Forum-Newbie

Forum-Newbie


Beiträge: 4
Anmeldedatum: 23.04.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 24.04.2008, 13:21     Titel:
  Antworten mit Zitat      
Super Matrin Very Happy
Jetzt geht es einwand frei genau wie ich es will....
Problem gelöst
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen



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.