|
Birgit |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 03.12.2008, 20:00
Titel: zeitechte Simulation
|
|
Hallo
ich habe eine Frage ich simuliere in Matlab ein Doppelpendel,
was auch etwa zeitecht funktoniert.
Das mache ich, indem ich 2 Kreise und Linien in einer Schleife immer neu setze (ensprechend dem Ergebnis des ODEs).(+Pause in der Länge der berechneten Zeitabstände)
Jetzt möchte ich aber, dass das untere Pendel eine Linie nachsich zieht (das mache ich zur Zeit mit dem line befehl).
Bei jedem Durchlaufen der Schleife wird eine kurze Linie gezeichnet.
Mein Problem:
Die Animation funktioniert immernoch, wird jetzt aber mit der Zeit immer langsamer.
woran liegt das?
wie kann ich das ändern, so das meine Simulation auch mit nachgezogner Linie in gleichem Tempo abläuft?
Vielen Dank in vorraus für jeden Tip
|
|
|
|
|
denny |
Supporter
|
|
Beiträge: 3.853
|
|
|
|
Anmeldedatum: 14.02.08
|
|
|
|
Wohnort: Ulm
|
|
|
|
Version: R2012b
|
|
|
|
|
|
Verfasst am: 03.12.2008, 23:10
Titel:
|
|
Hallo,
du sollst jedes Objekt am besten nur einmal zeichnen, und dann nur die Positionen ändern. Das ist viel schneller als Objekt neu zu zeichnen.
Warum die Simulation mit der Zeit langsamer wird, kann ich nur vermuten,deswegen sollst hier etwas genaue beschreiben, was du machst, vielleicht mit dem Beispiel.
Verwendest du drawnow?
Es kann daran liegen, dass du jedesmal die Linie neuzeichnest, löschst du überhaupt die alte? oder was machst du an dieser Stelle genau
|
|
|
Birgit |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 04.12.2008, 08:12
Titel: RE:Antwort
|
|
|
|
|
Hallo
vielen Dank erstmal für deine Hilfe.
Also um die Pendel zu simulieren habe ich am Anfang einmal 2 Linien und zwei Kreise gezeichnet mit "line" und rectangle".
Diese setze ich über "set" in der Schleife nur immer wieder an eine andere Position.
Das funktioniert soweit auch, die simulation wird nicht langsamer.
Aber ich will ja zusätzlich hinter der unteren Kugel eine Linie wie ein Faden herziehen, der den Weg der Kugel nachzeichnet.
Dafür zeichne ich in jeder schleife eine kleines Linienstück,mit"line"(von der vorigen Position der Kugel zur jetzigen Position der Kugel) was ich nicht wieder lösche weil alle Linienstücke zusammen den Faden darstellen sollen.
Das funktioniert auch ,nur die simulaion wird eben umso langsamer desto länger der Faden wird.
Ich verwende nicht drawnow sondern setze nach jeder schleife eine Pause von 0.001 Sekunden.
Ich habe es aber auch schon ohne Pause und mit drawnow versucht wird auch langsamer.
Liegt es vieleicht daran, dass das Grafikfenster sich jedesmal neu aufbaut?
Also auch die eigentlich schon vorher gezeichneten Elemente also in diesem Fall die Linien neu zeichnet und deshalb länger braucht weil es mit der Zeit so viele Linien werden?
|
|
|
dib0r |
Forum-Guru
|
|
Beiträge: 413
|
|
|
|
Anmeldedatum: 09.05.08
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 04.12.2008, 10:03
Titel:
|
|
Hallo,
für eine zeitgesteuerte bzw. Animation mit konstanter Frequenz bietet sich das Timer-Objekt an
MfG
|
|
|
|
|
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
|
|
Impressum
| Nutzungsbedingungen
| Datenschutz
| FAQ
| RSS
Hosted by:
Copyright © 2007 - 2025
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.
|
|