Ich habe Matlab mal neugestartet und die Simulation per GUI laufen lassen. Die Fehlermeldung erscheint jetzt nicht mehr! Soweit, so gut... Allerdings startet die Simulation des Modells und beendet sich einfach von selbst bei einer Simulationszeit von 0,7s (StopTime sind bspw. 10s) ohne Angabe von Fehlern/Gründen oder ähnliches.
Dann ist mir aufgefallen, dass ich ein Modell mit dem Format .mdl laufen lasse. Da ich aber mittlerweile Matlab R2013a nutze und dort die Modelle das Format .slx verwenden, habe ich per copy and paste mein Modell ins .slx Format "konvertiert". Anschließend habe ich das Modell neu simulieren lassen und krieg jetzt nach oben genannter Zeit diese Fehlermeldung des Real-Time Synchronization Blocks:
Code:
Error reported by S-function 'rtwinsync' in 'Dreitanksystem/Real-Time Synchronization':
Maximum missed ticks count exceeded
Weiterhin wird also nur 1 Punkt gezeichnet, mehr nicht...
@ Harald:
Wie oben schon beschrieben, gibt es diese Fehlermeldung jetzt nicht mehr, dafür eine andere... Dementsprechend funktioniert dein Lösungsansatz hier nicht mehr, trotzdem schon mal danke dafür
@ Sp0b1e
Wie kann ich denn Werte in einem axes-Block in der GUI mittels dem set-Befehl darstellen lassen? Ich hab da jetzt keine Vorstellung oder Ideen, wie das funktionieren könnte.
Edit: Kleines Update von mir nochmal
Stand der Dinge ist jetzt, dass ich die oben genannte Fehlermeldung aushebeln konnte, indem ich die "Missed Ticks" des Real-Time Synchronization Blocks hochgesetzt habe! Je kleiner meine "Max Step Size" des Systems ist, desto höher muss ich den Wert der "Missed Ticks" setzen... Gibts da noch eine bessere Variante?
Jetzt wird in meiner axes kontinuierlich ein Punkt mit zunehmender Zeit gemalt. Ich hätte allerdings eine komplette Linie... wie würde das da aussehen?
Damit ihr versteht, was ich vor habe und wie ich was gemacht habe, habe ich schnell eine Art Minimalbeispiel erstellt, wo ihr euch schnell zurechtfinden solltet . Es mag vielleicht nicht optimal sein, aber bisher sieht das für meine Begriffe sehr gut aus
vielen Dank für diese Lösung. Das funktioniert so weit super! Aber wie ist es denn jetzt, wenn ich mehrere axes in einer GUI habe? Ich habe testweise eine weitere axes in die GUI gebaut, diese aber nirgendwo angesprochen. Sie ist sozusagen einfach nur da. Dann funktioniert die Skalierung der Achsen, die du eingebaut hast, nicht mehr... genauso wenig wie das Gitternetz, was ich selbstständig noch hinzugefügt habe...
Das was ich letzendlich erreichen will ist, dass in der GUI 3 Kurven parallel in je einer axes zeitgleich gemäß der Simulation gezeichnet werden... Meine Idee war, wenn es funktioniert in einem Minimalbeispiel eine Kurve kontinuierlich zeichnen zu lassen, dass dann einfach auf 3 axes zu erweitern, aber so einfach scheint das wohl nicht zu sein Ist das überhaupt irgendwie möglich?
Nachdem ich den Start-Button das erste Mal betätigt habe, die Simulation abgeschlossen ist und ich den Button nochmals betätige soll der plot vorher resettet werden, sodass die Kurve neu gezeichnet wird. Ich habe das mithilfe des Befehls "cla" versucht, aber das funktioniert auch irgendwie nicht...
ich habe deine Dokumente bei Matalb2016a genutzt. Leider gibt es kein Graph bei axesplot. Gibt es noch einige Fehler bei dein Programm ? Kannst du mir helfen ?
die Beiträge hier habe ich vor über 3 Jahren geschrieben.
Bitte poste genau, was du verwendest und welche Probleme dabei auftreten.
Zitat:
Gibt es noch einige Fehler bei dein Programm ?
Das kann man nicht ausschließen. Für den Fragesteller scheint es aber ja funktioniert zu haben. Du verwendest das also in irgendeiner Form anders als der Fragesteller. Inwiefern, kann ich nicht erahnen.
persistent plot_handle
%create a run time object that can return the value of the outport block's
%input and then put the value in a string
rto1 = get_param('Beispiel4_sim/simout','RuntimeObject');
% create str from rto1
str = num2str(rto1.InputPort(1).Data);
% get a handle to the GUI's 'edit_display' window display = findobj('Tag','edit_display');
mit die Code bei update_gui.m kann man bei erste Mal erfolgreich echtzeitfähig simulieren. Aber für das zweite Mal scheint Fehlermeldung bei Command Window wie Warning: Error occurred while evaluating listener callback. ??? Error using =
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.