ATRAKOR Lorentza

Tematy związane z tworzeniem dużych aplikacji. Zaganiednia dotyczące architektury oraz zasad tworzenia optymalnych rozwiązań.
gregory6
Posty: 5
Rejestracja: 01 lis 2009 20:44
Wersja środowiska: LabVIEW 8.5

ATRAKOR Lorentza

Post autor: gregory6 »

Witam
Czy ktoś z was modelował może w labview atraktor Lorentza?
Musze to przygotować na zajęcia i potrzebuję pomocy:)
Awatar użytkownika
jogurt_owocowy
Posty: 1317
Rejestracja: 30 lis 2004 00:00
Wersja środowiska: LabVIEW 2015
Lokalizacja: Kraków

ATRAKOR Lorentza

Post autor: jogurt_owocowy »

Hej,

Rozumiem, że masz ogólny problem i nie wiesz jak zacząć.

Kliknij Help -> Find Examples wpisz w okienko Lorenz i powinno Ci wyskoczyć kilka przykładów.
Szczególnie obrazowe są 3D Lorenz Attractor Draw at Completion using 3D Curve.vi oraz Wide 3D Lorenz Attractor Draw at Run Time using 3D Parametric Graph .vi
Większość z nich rozwiązuje układ równań różniczkowych opisujących atraktor, poprzez ich jawną konwersję do postaci różnicowej i obliczanie w pętli współrzędnych kolejnych punktów.

Dodatkowo, na końcu helpa do funkcji ODE Runge Kutta 4th Order masz przykład, w jaki sposób wykorzystać ją do obliczenia wszystkich zadanych punktów atraktora hurtem.

Pozdrawiam
gregory6
Posty: 5
Rejestracja: 01 lis 2009 20:44
Wersja środowiska: LabVIEW 8.5

Re: ATRAKOR Lorentza

Post autor: gregory6 »

Dziek wielkie za odpowiedz:)
Chodzi mi jednak o coś takiego:
Trzeba zamodelować układ

http://pl.wikipedia.org/wiki/Uk%C5%82ad_Lorenza

w sposób który 'przedstawiam' w załączniku.

Wydaje mi sie ze to jest w miarę dobrze zrobione tylko chciałbym żeby to jeszcze lepiej działało.tzn pewnie trzeba dorzucić jakieś (jakąś) pętle i wyświetlić X'...Z' na 3DGraph...

Z góry dzięki za pomoc:)
Załączniki
atraktor_Lorenza.vi
(8.83 KiB) Pobrany 246 razy
Awatar użytkownika
jogurt_owocowy
Posty: 1317
Rejestracja: 30 lis 2004 00:00
Wersja środowiska: LabVIEW 2015
Lokalizacja: Kraków

Re: ATRAKOR Lorentza

Post autor: jogurt_owocowy »

Więcej konkretów i od razu lepiej.
Wszystko wygląda dobrze poza kilkoma szczegółami:
  1. Cały ten program ubierz w pętlę while. Kolejna iteracja pętli = kolejny punkt atraktora
  2. Na wejścia inicjalizujące funkcji Feedback Node podaj jakieś niezerowe wartości. Domyślnymi wartościami są zera, a takie wartości nie dają zbyt spektakularnych wyników (wstaw do równań (x,y,z)=[0,0,0] i policz pochodne).
  3. Na wejścia dt funkcji Integral x(t) PtByPt podaj jakąś wartość inną niż domyślna. Domyślnie jest 1, a to raczej na pewno jest za dużo. Spróbuj na początek 0,01, a jeśli na wykresie (patrz niżej) zobaczysz, że układ nie jest zbieżny (osie się skalują do jakichś dużych wartości), spróbuj z mniejszą wartością.
  4. Do narysowania atraktora możesz użyć wykresu 3D, ale na początek spróbuj z XY Graph. Wyciągnij poza pętlę druty dla x i y, kliknij na powstałych w ten sposób tunelach wyjściowych i zaznacz Enable Indexing. Powstałe w ten sposób wyjściowe tablice podepnij do wejść funkcji Bundle, a jej wyjście do terminala wykresu. Otrzymasz w ten sposób widok atraktora wzdłuż osi Z.
Taki program nie rysuje atraktora podczas obliczania, a dopiero po zakończeniu obliczeń w pętli (która musi mieć podpięty do terminala stopu przycisk STOP). Włącz program, niech chwilę pochodzi, zatrzymaj go STOPem, a na wykresie pojawi się atraktor. Jak to zadziała, to pomartwisz się o rysowanie go w czasie rzeczywistym.

Pozdrawiam
ODPOWIEDZ