RocketSIM - polski oprogramowanie symulacyjne
: środa, 15 lip 2009, 20:42
Witam!
Od pewnego czasu prywatnie rozwijam programik do obliczania parametrów lotu rakiet (z naciskiem na trajektorie czyli balistykę zewnętrzna). Projekt ten osiągnął już na tyle zaawansowany etap, że postanowiłem podzielić się z wami efektami.
Najpierw powiem jaki cel mi przyświecał a mianowicie chciałbym uwzględnić kilka aspektów pomijanych w innych programach tego typu czyli:
a.) całkowite przejście do układu nieinercjalnego (czyli po raz pierwszy jeśli chodzi o amatorskie oprogramowanie wchodzimy w zagadnienia siły Coriolisa i sił odśrodkowych)
b.) zastosowanie wybranego modelu atmosfery do obliczeń siły tarcia na różnych wysokościach (tu mam nadzieje użyć jednego z dostępnych modeli opracowanego na potrzeby NASA lub przybliżenia adiabatycznego)
c.) możliwość wczytania danych empirycznych charakteryzujących pracę użytego silnika
Mam jeszcze parę pomysłów na wizualizację danych ale pozostawię je jako niespodziankę na przyszłość (żeby nie zapeszać ).
Docelowo symulator powinien obliczać najważniejsze osiągi rakiety i przede wszystkim trajektorię 3D w sferycznym układzie odniesienia.
Najważniejsze co do tej pory osiągnąłem to opracowanie elastycznego silnika obliczeniowego rozwiązującego różniczkowe układy równań liniowych metodą Runge - Kutta 6 rzędu (Cambridge Press "<span style="font-style: italic">Numerical Recipes</span>" 3rd Edition 2007) . Oddzielając klasę rozwiązującą układ równań od funkcji implementującej macierz układu dostałem bardzo funkcjonalne rozwiązanie pozwalające programowi każdy parametr pozyskać na drodze całkowania. Dzięki temu rozwój programu i dodawanie nowych możliwości powinno być stosunkowo proste.
Jeśli chodzi o GUI postawiłem na biblioteki QT. Efekt? Mamy wysoce przenośny kod i w obecnej chwili dysponuje programem w wersji skompilowanej na Windows jak i Linux. Dzięki temu kod może być rozwijany niezależnie od wersji docelowej i zapewne gdyby zaistniała potrzeba mógłbym szybko przygotować wersję również na Maca
Zamieszczam plik binarny pod Windows (sprawdźcie czy nie ma wirusów!):
http://www.megaupload.com/?d=ZQZHI26R.
Wersji Linuxowej na razie nie zamieszczam, zresztą lepsze było by w takim przypadku zamieszczenie źródeł a jeszcze nie chcę tego robić.
Jest to wersja podstawowa, rysuje wysokość i prędkość w funkcji czasu. Przedział rysowany na wykresach wybieramy ręcznie w ustawieniach.
I jeszcze screenshoty:
Na Linuxie (Fedora 8 ):
http://img20.imageshack.us/i/hermansim3.png/
Na Windows XP (Professional):
http://img125.imageshack.us/i/rocketsimwindows.jpg/
Pytanie do Was, mam nadzieję potencjalnych użytkowników - czego oczekujecie po takim programie? Z jakiej funkcji często korzystacie lub skorzystalibyście gdyby dany program ją oferował?
Pozdrawiam i zapraszam do testowania
Od pewnego czasu prywatnie rozwijam programik do obliczania parametrów lotu rakiet (z naciskiem na trajektorie czyli balistykę zewnętrzna). Projekt ten osiągnął już na tyle zaawansowany etap, że postanowiłem podzielić się z wami efektami.
Najpierw powiem jaki cel mi przyświecał a mianowicie chciałbym uwzględnić kilka aspektów pomijanych w innych programach tego typu czyli:
a.) całkowite przejście do układu nieinercjalnego (czyli po raz pierwszy jeśli chodzi o amatorskie oprogramowanie wchodzimy w zagadnienia siły Coriolisa i sił odśrodkowych)
b.) zastosowanie wybranego modelu atmosfery do obliczeń siły tarcia na różnych wysokościach (tu mam nadzieje użyć jednego z dostępnych modeli opracowanego na potrzeby NASA lub przybliżenia adiabatycznego)
c.) możliwość wczytania danych empirycznych charakteryzujących pracę użytego silnika
Mam jeszcze parę pomysłów na wizualizację danych ale pozostawię je jako niespodziankę na przyszłość (żeby nie zapeszać ).
Docelowo symulator powinien obliczać najważniejsze osiągi rakiety i przede wszystkim trajektorię 3D w sferycznym układzie odniesienia.
Najważniejsze co do tej pory osiągnąłem to opracowanie elastycznego silnika obliczeniowego rozwiązującego różniczkowe układy równań liniowych metodą Runge - Kutta 6 rzędu (Cambridge Press "<span style="font-style: italic">Numerical Recipes</span>" 3rd Edition 2007) . Oddzielając klasę rozwiązującą układ równań od funkcji implementującej macierz układu dostałem bardzo funkcjonalne rozwiązanie pozwalające programowi każdy parametr pozyskać na drodze całkowania. Dzięki temu rozwój programu i dodawanie nowych możliwości powinno być stosunkowo proste.
Jeśli chodzi o GUI postawiłem na biblioteki QT. Efekt? Mamy wysoce przenośny kod i w obecnej chwili dysponuje programem w wersji skompilowanej na Windows jak i Linux. Dzięki temu kod może być rozwijany niezależnie od wersji docelowej i zapewne gdyby zaistniała potrzeba mógłbym szybko przygotować wersję również na Maca
Zamieszczam plik binarny pod Windows (sprawdźcie czy nie ma wirusów!):
http://www.megaupload.com/?d=ZQZHI26R.
Wersji Linuxowej na razie nie zamieszczam, zresztą lepsze było by w takim przypadku zamieszczenie źródeł a jeszcze nie chcę tego robić.
Jest to wersja podstawowa, rysuje wysokość i prędkość w funkcji czasu. Przedział rysowany na wykresach wybieramy ręcznie w ustawieniach.
I jeszcze screenshoty:
Na Linuxie (Fedora 8 ):
http://img20.imageshack.us/i/hermansim3.png/
Na Windows XP (Professional):
http://img125.imageshack.us/i/rocketsimwindows.jpg/
Pytanie do Was, mam nadzieję potencjalnych użytkowników - czego oczekujecie po takim programie? Z jakiej funkcji często korzystacie lub skorzystalibyście gdyby dany program ją oferował?
Pozdrawiam i zapraszam do testowania