Verfasst am: 25.09.2013, 12:09
Titel: GUI: plot: Daten in Axes Updaten per Button
Hallo Matlab-Freunde,
Von meiner GUI aus steuere ich mein Simulinkmodel1.
In meiner gui befinden sich 2 axes (axes1 und axes2).
Die Daten für den plot-befehl hole ich mir aus dem Workspace, das via Simulinkmodel dort abgelegt wird.
Die Daten sind in der Variable "StromSpannung" als Struct with Time im Workspace gespeichert.
Per Button starte ich die simulation in der Gui und es wird anschließend in die jeweiligen axes geplottet.
Das funktioniert soweit!
Wenn ich jetzt ein paar Parameter ändere und dann wieder auf dem Button drücke,
wird in der axes nichts geändert. Ich habe immer noch dasselbe signal.
Erst durch mehrmaligen drücken des Buttons (ca. 3mal) wird das neue Signal in der Axes1 geplottet.
Hier mein Code:
Code:
% --- Executes on button press in Startbutton. function Startbutton_Callback(hObject, eventdata, handles)
% Benutzereingabe aus Editboxen werden ausgelesen
Widerstandswert = get(handles.Widerstand_editBox,'String');
EinschaltwinkelAlpha = get(handles.EinschaltwinkelAlpha_editBox,'String');
% Hier findet die Übergabe an Simulink statt
% Code, erspare ich euch % Funktioniert alles % %%%%%%%%%%%%%%%%%%%%
% Strom Spannung plotten
axes(handles.axes1);%Axes1 handle
pos = find(StromSpannung.time == 0.1);% position X-max der X-achse finden und speichern in pos
plot(StromSpannung.time(1:pos,1), StromSpannung.signals.values(1:pos,1:2));%plotten des Signals
% habe versucht mit der set methode zu updaten, bekomme allerdings % eine Fehlermeldung: Value must be a column or row vector % set(h,'XData',StromSpannung.time(1:pos,1),'YData',StromSpannung.signals.values(1:pos,1:2));
Tatsächlich wird bei der Übergabe der neuen Parameter an das Simulinkmodel, das Problem erzeugt.
Die Daten im Scope werden nicht geändert bzw. erst übernommen wenn man mehrmals auf den Button drückt.
Der Scope Block speichert mir die Daten aus meiner Schaltung im Workspace.
Kannst du mir vllt sagen warum der Scope Block noch die alten Daten hat, obwohl die restlichen Blöcke die neuen Parameter bereits haben?
Die übergabe an der neuen Parameter mache ich mit der set methode.
Dies klappt auch soweit, aber bei starten der Simulation hat der Scope Block noch die alten daten.
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.