Równania
Równania
Witam
Mam do rozwiązania takie równania różniczkowe. Czy jest możliwość obliczenia tego typu równań nieliniowych za pomocą Labview .
diα/dt= a1’+ a2’*iα + a3’*iD + a4’*iQ + a5’*if
diD/dt= a6’+ a7’*iα + a8’*iD + a9’*iQ + a10’*if
diQ/dt= a11’+ a12’*iα + a13’*iD + a14’*iQ + a15’*if
dif/dt= a16’+ a17’*iα + a18’*iD + a19’*iQ + a20’*if
a1’…..a20’- wektory zależne od czasu
Proszę o pomoc
Mam do rozwiązania takie równania różniczkowe. Czy jest możliwość obliczenia tego typu równań nieliniowych za pomocą Labview .
diα/dt= a1’+ a2’*iα + a3’*iD + a4’*iQ + a5’*if
diD/dt= a6’+ a7’*iα + a8’*iD + a9’*iQ + a10’*if
diQ/dt= a11’+ a12’*iα + a13’*iD + a14’*iQ + a15’*if
dif/dt= a16’+ a17’*iα + a18’*iD + a19’*iQ + a20’*if
a1’…..a20’- wektory zależne od czasu
Proszę o pomoc
Ostatnio zmieniony 28 cze 2011 13:50 przez TomI85, łącznie zmieniany 1 raz.
Pozdrawiam Tomasz
-
- Posty: 383
- Rejestracja: 17 lis 2006 00:00
- Wersja środowiska: LabVIEW 2009
- Lokalizacja: Warszawa
Równania Różniczkowe
Mathematics->Differential Eqs->Ordinary Differential Equations-->ODE Solver
Równania Różniczkowe
Dziekuję za podpowiedź już próbuje ......tylko chciałbym nadmienić że ia,if,iD oraz iQ muszę wyliczyć z tych rownań.
Pozdrawiam Tomasz
Re: Równania Różniczkowe
Niestety nie mogę sobie poradzić z przykładami...czy są może jakieś przykłady poza (Find Examles). Ponieważ są bardzo złożone i nie jestem w stanie dojść do wniosku jak to jest zrobione tym bardziej że mają jeszcze własne SubVI. Proszę o pomoc
Pozdrawiam Tomasz
-
- Posty: 383
- Rejestracja: 17 lis 2006 00:00
- Wersja środowiska: LabVIEW 2009
- Lokalizacja: Warszawa
Równania Różniczkowe
Inne przykłady jakoś nie rzuciły mi się w oczy. Do oryginalnych nie zaglądałem, więc możliwe, że tylko mącą. Pod warunkiem, że zależność od czasu, o której piszesz nie jest jakaś zakręcona, to rozwiązanie tych równań będzie naprawdę proste. Zrobiłem przykład dla układu dwóch równań, jako czynniki zależne od czasu przyjąłem funkcje liniowe. Wygląda to mniej więcej tak:
a, a0, ..., a9, b, b0, ..., b9, ...... z, z0, ..., z9
Ograniczeniem jest to, że wszelkie nazwy (w tym przypadku liczonych funkcji i zmiennej czasowej) muszą wyglądać tak:a, a0, ..., a9, b, b0, ..., b9, ...... z, z0, ..., z9
Re: Równania Różniczkowe
u mnie a1-a20 to wektory funkcji cos i sin (po 1000 próbek). Natomiast jeśli chodzi o ODE formula String to wystarczy żeby obliczyć tego typu układ równań czy muszę do tego dodać ODE IV?. Do tego mam pytanie Ode RHS wybieram typu constant. Tylko jak doprowadzić do ODE RHS wektory od a1...a20 bo one sa zmienne w czasie.
Pozdrawiam Tomasz
-
- Posty: 383
- Rejestracja: 17 lis 2006 00:00
- Wersja środowiska: LabVIEW 2009
- Lokalizacja: Warszawa
Równania Różniczkowe
No to są dwa wyjścia:
1. Używasz "Formula is String" (jak w moim przykładzie), ale musisz wcześniej wyznaczyć amplitudy i fazy sinusoid (robi się to dosyć prosto za pomocą Nonlinear Curve Fit.vi). Zapisujesz to to we wzorze w formie a*sin(t-b), a pod a i b podstawiasz odpowiednie wyliczone wartości dla każdego wektora, ale już nie w stałej, tylko odpowiednio formatując stringi. Zalety: otrzymane równania zawierają funkcje ciągłe, więc algorytmy całkowania mniej marudzą, dobrze liczą pochodne i mniej się rozjeżdżają. Wady: troszkę gimnastyki, żeby wyznaczyć współczynniki, no i musisz być pewny, że są to sinusoidy, bo inaczej wynik będzie nieprzewidywalny. I może być ciut wolniej niż w drugiej opcji (ale to zależy od skomplikowania formuły, metody całkowania i wielu innych rzeczy).
2. Używasz "Formula is VI". Budujesz VI, które na każde żądanie algorytmu będzie obliczać F(X,t) (czyli prawe strony). Wektory a dostarczasz mu w formie variant (jako "data") i obliczając wartości prawych stron dla danego t wyinterpolowujesz z nich odpowiednie wartości. Zalety: bardziej elegancko, być może szybciej, w wektorach może siedzieć dowolny przebieg i zadziała poprawnie (przynajmniej z matematycznego punktu widzenia). Wady: twoje przebiegi są z natury nieciągłe, co może powodować kłopoty (zwłaszcza w metodach zmiennokrokowych). Ale przy odpowiedniej interpolacji powinno być ok. Jeżeli wektory a pochodzą z pomiarów, to powinieneś je wcześniej odszumić, żeby wyglądały w miarę gładko.
Ja bym obstawiał drugą metodę.
Jak się zdecydujesz, to mogę skrobnąć jakiś przykład (bo dla obu metod to mi się nie chce)
1. Używasz "Formula is String" (jak w moim przykładzie), ale musisz wcześniej wyznaczyć amplitudy i fazy sinusoid (robi się to dosyć prosto za pomocą Nonlinear Curve Fit.vi). Zapisujesz to to we wzorze w formie a*sin(t-b), a pod a i b podstawiasz odpowiednie wyliczone wartości dla każdego wektora, ale już nie w stałej, tylko odpowiednio formatując stringi. Zalety: otrzymane równania zawierają funkcje ciągłe, więc algorytmy całkowania mniej marudzą, dobrze liczą pochodne i mniej się rozjeżdżają. Wady: troszkę gimnastyki, żeby wyznaczyć współczynniki, no i musisz być pewny, że są to sinusoidy, bo inaczej wynik będzie nieprzewidywalny. I może być ciut wolniej niż w drugiej opcji (ale to zależy od skomplikowania formuły, metody całkowania i wielu innych rzeczy).
2. Używasz "Formula is VI". Budujesz VI, które na każde żądanie algorytmu będzie obliczać F(X,t) (czyli prawe strony). Wektory a dostarczasz mu w formie variant (jako "data") i obliczając wartości prawych stron dla danego t wyinterpolowujesz z nich odpowiednie wartości. Zalety: bardziej elegancko, być może szybciej, w wektorach może siedzieć dowolny przebieg i zadziała poprawnie (przynajmniej z matematycznego punktu widzenia). Wady: twoje przebiegi są z natury nieciągłe, co może powodować kłopoty (zwłaszcza w metodach zmiennokrokowych). Ale przy odpowiedniej interpolacji powinno być ok. Jeżeli wektory a pochodzą z pomiarów, to powinieneś je wcześniej odszumić, żeby wyglądały w miarę gładko.
Ja bym obstawiał drugą metodę.
Jak się zdecydujesz, to mogę skrobnąć jakiś przykład (bo dla obu metod to mi się nie chce)
Re: Równania Różniczkowe
spróbuje na razie sam sobie poradzić może się uda jak co będe pisać. I pokaże jak w tej chwili to wygląda. Ale jeśli będe prosić o przyklad to wydaje mi się 2 prostrzy
Pozdrawiam Tomasz
Re: Równania Różniczkowe
niestety nie moge uruchomić zbudowanej aplikacji. Nie wiem siedzialem godznami nad tym i nic.W miejsce a1...a20 wpisalem wartości. Proszę powiedzieć jak się podpina graph do clustra.Ewentualnie proszę powiedzieć co źle robię. I chcialbym wyświetlić wszystkie przebiegi na 1ym wykresie ia,iD,iQ oraz iF.
- Załączniki
-
- ODE_NEW_3.vi
- LV 2010
- (35.62 KiB) Pobrany 350 razy
-
- ODE_NEW_3.vi
- aplikacja w LV09
- (33.22 KiB) Pobrany 393 razy
Pozdrawiam Tomasz
-
- Posty: 641
- Rejestracja: 31 gru 2010 01:36
- Wersja środowiska: LabVIEW 2017
- Lokalizacja: Katowice
Re: Równania Różniczkowe
Witam
Uzupełnij tabelę X0, masz cztery zmienne, a nie dwie.
Zmień nazwy zmiennych w równaniach - są one nieprawidłowe. W helpie do ODE Solvera jest odnośnik do informacji o prawidłowym nazywaniu zmiennych (prawidłowe to np. "a", "i0", "z15", "q1", a nieprawidłowe to na przykład "ia","iD","iQ" oraz "iF"). Przy okazji możesz odpalić sobie jakiś przykład dotyczący tego bloczka i zobaczyć, jak to jest tam zrobione.
Pierwsze równanie masz źle przepisane, w jednym miejscu mnożenie zamiast dodawania ;)
Tabelę klastrów do XY grapha podpina się po prostu podpinając ją, żadnych bloczków pośredniczących nie trzeba.
Uzupełnij tabelę X0, masz cztery zmienne, a nie dwie.
Zmień nazwy zmiennych w równaniach - są one nieprawidłowe. W helpie do ODE Solvera jest odnośnik do informacji o prawidłowym nazywaniu zmiennych (prawidłowe to np. "a", "i0", "z15", "q1", a nieprawidłowe to na przykład "ia","iD","iQ" oraz "iF"). Przy okazji możesz odpalić sobie jakiś przykład dotyczący tego bloczka i zobaczyć, jak to jest tam zrobione.
Pierwsze równanie masz źle przepisane, w jednym miejscu mnożenie zamiast dodawania ;)
Tabelę klastrów do XY grapha podpina się po prostu podpinając ją, żadnych bloczków pośredniczących nie trzeba.
Re: Równania Różniczkowe
Przepraszam że tyle pytań zadaję ale chce sie nauczyć rozwiązywać tego typu rownania. A help w LV w niczym nie pomaga bynajmniej jesli chodzi o przykłady w związku z ODE są dla mnie niezrozumiałe. A wartości X0 wpisuję dowolne czy są one od czegoś uzależnione bo w chwili obecnej przepisałem od kolegi z przykładu wyżej
Pozdrawiam Tomasz
-
- Posty: 641
- Rejestracja: 31 gru 2010 01:36
- Wersja środowiska: LabVIEW 2017
- Lokalizacja: Katowice
Re: Równania Różniczkowe
Proponuję zacząć od podstaw i zajrzeć do jakiegoś skryptu/wykładu/książki na temat metod numerycznych. Wektor X0 to wektor warunków początkowych, których musi być tyle, ile jest zmiennych. Czyli u kolegi vugiego są dwa, u Ciebie muszą być cztery. Jakie to mają być wartości - zależy od konkretnego zadania, rzadziej "od kolegi powyżej" ;)
Re: Równania Różniczkowe
Vugie Czy moge poprosić przykład jeśli chodzi o rozwiązanie nr.2 ?? Wktory a1...a20 właśnie muszę doprowadzić do danej formuły.Są one funkcjami sin,cos,sin?^2,cos^2.
Pozdrawiam Tomasz
-
- Posty: 383
- Rejestracja: 17 lis 2006 00:00
- Wersja środowiska: LabVIEW 2009
- Lokalizacja: Warszawa
Re: Równania Różniczkowe
Płoszę bałdzo. Oto przykład realizujący dokładnie te same równania co wcześniej, tyle że funkcje liniowe realizowane są jako znane a priori przebiegi czasowe (na potrzeby przykładu są generowane w pętli przed rozwiązaniem równania):
i VI robiące za układ równań:
Jak widać rozwiązanie jest identyczne. Schemat interpolacji jest tu dość nieefektywny, za to przejrzysty. No i interpolacja jest liniowa, a nie powinna w zasadzie.- Załączniki
-
- ODE example2.zip
- (31.26 KiB) Pobrany 381 razy
Re: Równania Różniczkowe
Próbowalem mnóstwo razy przerabiać ten program i nic. Nie wiem jak doprowadzić wektory uzyskane w obliczeniach do ODE F(x,t). W example sa przykłady ale stałych. Proszę o pomoc
- Załączniki
-
- Obliczenia1.vi
- LV2009
- (46.11 KiB) Pobrany 352 razy
-
- Obliczenia1.vi
- LV 2010
- (72.81 KiB) Pobrany 355 razy
Pozdrawiam Tomasz