Verfasst am: 02.01.2011, 10:38
Titel: Outports von Simulink in GUI lesen
Hallo,
ich habe ein Problem und habe immer noch keine Lösung. Ich möchte aus mein Model Ergebnisse in GUI darstellen. Dabei sollen die Ergebnisse immer aktualisiert werden, dass heißt die Ausgabe soll während der Simulation erfolgen. Somit kann ich meine Ergebnisse nicht mehr in Workspace schreiben, da dieser erst nach dem die Simulation abgeschloßen ist, zur Verfügung stehen. Jetzt habe ich im Internet geschaut, aber über all stehen unterschiedliche Vorschläge. Hat jemand eine Idee oder wenigstens kann mir jemand sagen, in welche Richtung ich einschlagen kann?
Ich würde mich für jeden Ansatz oder Hilfe freuen, vielen Danke schon im voraus!
mit Befehl 'sim', kann ich doch nur meine Ergebnisse abrufen, wenn die Simulation abgeschloßen ist, oder? Der Befehl bzw Funktion benötigt doch die genauere Angabe in welchen Zeitraum soll das Ergebnis ausgegeben werden. Und meine Vermutung ist, dass dieser nicht in echtzeit angewendet werden kann. Kann jemand meine Vermutung bestätigen oder täusche ich mich da?
Aber ich habe noch weitere Frage. Am Anfang hatte ich auch an get_param gedacht, aber nach dem ich mir meine Parameter angeschaut habe, habe ich angenommen, dass ich nur Parameter also Einstellungsparameter abfragen kann.
Zum Beispiel ich habe eine folgende Simulink-Modell (siehe Anhang). Wenn ich folgende Befehl eingebe, sehe ich kein Parameter für die Ausgabe:
wenn ich auf Knopf drücke, dann wird der aktuelle Wert aktualisiert, aber ich möchte ganz gern wie du schon vorgeschlagen hast in eine Schleife. Ich habe gedacht ich bau mir eine unendliche Schleife und auf Knopfdruck "Stop" kann ich es beenden und solange es nicht beendet ist, soll dieser mir mein Wert aktualisieren. Kann ich irgendwie abfragen ob der Stop-Knopf gedrückt ist oder nicht? Oder gibt es noch andere Lösungsmöglichkeit?
hi leute,
bei diesem beitrag wurde das link http://www.mathworks.com/support/so...../data/1-5OKJMH/index.html als beispiel vorgeschlagen worden.
was ich seit stunden nicht hinbekomme ist, wie und wo er das guiupdate. aufruft.
das mdl hab ich weggelassen, so sehen die codes aus.
Code:
% --- Executes just before mytestgui is made visible. function mytestgui_OpeningFcn(hObject, eventdata, handles, varargin) % This function has no output args, see OutputFcn. % hObject handle to figure % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % varargin command line arguments to mytestgui (see VARARGIN)
% Choose default command line output for mytestgui
handles.output = hObject;
% UIWAIT makes mytestgui wait for user response (see UIRESUME) % uiwait(handles.figure1);
% --- Outputs from this function are returned to the command line. functionvarargout = mytestgui_OutputFcn(hObject, eventdata, handles) % varargout cell array for returning output args (see VARARGOUT); % hObject handle to figure % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)
% Get default command line output from handles structure varargout{1} = handles.output;
function curState_Callback(hObject, eventdata, handles) % hObject handle to curState (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 curState as text % str2double(get(hObject,'String')) returns contents of curState as a double
% --- Executes during object creation, after setting all properties. function curState_CreateFcn(hObject, eventdata, handles) % hObject handle to curState (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. ifispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white');
end
% --- Executes on button press in pushbuttonstart. function pushbuttonstart_Callback(hObject, eventdata, handles) % hObject handle to pushbuttonstart (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)
%start the model with the standard Simulink API command
set_param('mytestmdl','SimulationCommand','start');
% --- Executes on button press in pushbuttonstop. function pushbuttonstop_Callback(hObject, eventdata, handles) % hObject handle to pushbuttonstop (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)
%start the model with the standard Simulink API command
set_param('mytestmdl','SimulationCommand','stop')
%create a run time object that can return the value of the gain block's
%output and then put the value in a string.
rto = get_param('mytestmdl/Gain','RuntimeObject');
str = num2str(rto.OutputPort(1).Data);
%get a handle to the GUI's 'current state' window
statestxt = findobj('Tag','curState');
Das ist also etwas, was aus dem Simulink-Modell heraus ausgeführt wird. Um das auf dein Modell zu übertragen, müsstest du also auch die StartFcn für dein Modell entsprechend anpassen.
Ansonsten kann ich auch nicht behaupten, auf die Schnelle ein volles Verständnis des Beispiels zu haben.
das ist jetzt natürlich für ein ausgang aber da ich Out2,Out3..... habe. muss ich diese start function um Out2,Out3... erweitern????. weil ohne das komme ich trotzdem in die guiupdate funktion.
... und wie kann ich denn das ganze an meiner gui plotten?
wenn ich in diese funktion
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.