Pl/JSBSim vs YASim

From FlightGear wiki
Jump to navigation Jump to search

JSBSim i YASim to dwa najczęściej używane modele dynamiki lotu używane we FlightGear. Każdy z nich ma swoje wady i zalety, zostaną one omówione tutaj.

Dokładność i realizm

Dokładność i realizm modelu dynamiki lotu to dwa wspólne punkty podnoszone w argumentacji przeciwko YASim. W rzeczywistości, jeśli podasz bezwartościowe parametry do YASim lub JSBSim, oba zwrócą bezwartościową aerodynamikę. Dokładność algorytmu jest ograniczona jego danymi wejściowymi.

YASim i JSBSim mają różne problemy z dokładnym naśladowaniem rzeczywistego samolotu. Ponieważ YASim jest oparty na solverze[1], nie potrzebujesz danych z tunelu aerodynamicznego ani dokładnych tabel wydajności śmigła; po prostu podasz mu kilka podstawowych parametrów samolotu, a on spróbuje znaleźć rozwiązanie, które przybliży model aerodynamiczny samolotu. JSBSim zamiast tego używa szczegółowych tabel wydajności i wartości siły nośnej/oporu; JSBSim nie ma pojęcia o skrzydłach ani kadłubie. Zamiast tego, opór, siła nośna i inne siły są obliczane jako funkcje alfa (pochylenia), beta (odchylenie), wychylenia powierzchni sterowych, wychylenia klap itp. Oznacza to, że JSBSim potrzebuje dokładnych danych, aby stworzyć dokładny model lotu.

Zarówno YASim, jak i JSBSim mają swoją niszę; YASim jest łatwiejszy do rozpoczęcia, ale nie jest tak łatwo dopasowany do osiągów prawdziwego samolotu, podczas gdy JSBSim jest znacznie trudniejszy w użyciu, ale jest bardziej kontrolowany.

YASim

YASim wykorzystuje podejście do aerodynamiki oparte na solwerze; określasz fizyczne cechy samolotu (takie jak skrzydła, kadłub, silniki, stabilizatory itp.), jak również jego właściwości lotne (prędkość przelotowa i wysokość, kąt natarcia podczas lądowania), a YASim próbuje rozwiązać dla danej konfiguracji. Nie zawsze się to udaje (ponieważ istnieje wiele możliwych rozwiązań aerodynamicznych dla danego zestawu parametrów) i zazwyczaj nie jest zbyt dokładne, chyba że zostało iteracyjnie dostrojone przez autora do osiągów rzeczywistego samolotu.

Cquote1.png YASim nie może korzystać z tabel współczynników, które podajesz np. dla skrzydła - po prostu nie bierze ich jako danych wejściowych, bierze za to ogólny zarys i dane o osiągach. Tak więc struktura danych przychodzących do samolotu w YaSim byłaby z konieczności zupełnie inna.
— Thorsten (cz, 25 grudnia). Re: pobieranie danych bezpośrednio z pliku 3d..
(powered by Instant-Cquotes)
Cquote2.png
Cquote1.png YaSim nie wprowadza naturalnego zestawu parametrów istotnych z punktu widzenia aerodynamiki, wprowadza zarys samolotu i limity osiągów i próbuje odgadnąć odpowiednie parametry na tej podstawie. Wewnętrznie jest jak JSBSim schemat współczynników, ale tabele współczynników nie są faktycznie oparte na tabelach osiągów, ale zgadywane przez solver YaSim, więc są prostsze i bardziej ogólne. Więc najlepsze, co może zrobić, to uzyskać przybliżoną prawidłową charakterystykę wydajności, ale nie może koncepcyjnie być tak realistyczny jak JSBSim z prostego powodu, że nawet jeśli masz lepsze dane, YaSim nie pozwala Ci ich użyć. I oszukujesz się jeśli myślisz, że samolot może być dokładnie opisany przez podanie takich rzeczy jak rozpiętość skrzydeł, prędkość przelotowa czy prędkość przeciągnięcia. Rzeczywistość to wielowymiarowe tabele siły nośnej i oporu w funkcji AOA, prędkości lotu, ...
Cquote2.png

JSBSim

JSBSim, z drugiej strony, używa podejścia opartego na danych do dynamiki lotu. Jeśli otrzymałby wszystkie odpowiednie tabele dla prawdziwego samolotu, który symuluje (co jest efektywnie niemożliwe), będzie produkował doskonale realistyczną dynamikę; gdybyś chciał, mógłbyś symulować cegłę. Jest on powszechnie używany dla starszych samolotów z opublikowanymi danymi o osiągach; bardzo trudno jest stworzyć model dynamiki lotu w JSBSim bez jakichkolwiek danych z tunelu aerodynamicznego.


Cquote1.png JSBSim wprowadza naturalny zestaw parametrów/sparametryzowanych funkcji, które otrzymuje się po wyprowadzeniu równań ruchu samolotu z pierwszych zasad, przyjmując po drodze kilka założeń (w przybliżeniu przepływ w stanie ustalonym, ograniczona deformacja dynamiczna samolotu,...). Tak więc dla przyzwoitych danych wejściowych, nie będzie on idealnie realistyczny, ale realistyczny w tym sensie, że odtwarza z dużą wiernością osiągi samolotu wewnątrz znanej obwiedni.
Cquote2.png
Cquote1.png JSBSim jest z pewnością bardziej "inżynierskim" podejściem, z jego ścisłym matematycznym, tabelarycznym podejściem, podczas gdy YASim jest lepiej przystosowany do dostrajania doświadczenia pilota. Interakcja z podłożem nigdy nie była ważnym tematem w JSBSim, podczas gdy YASim jest bardzo atrakcyjny z uwagi na wyrafinowane efekty gruntowo-wodne. Wybrałem YASim właśnie z tego powodu. Samolot musi latać i czuć się (przynajmniej wizualnie) jak prawdziwy. Oznacza to, że muszę dostosować wiele "emocjonalnych" parametrów, aby uzyskać konkretne informacje zwrotne od modelu dynamiki lotu. To jest to, w czym YASim jest dobry.
Cquote2.png

Który powinienem użyć?

Kontynuuj w dół, aż do uzyskania odpowiedzi "tak".

  1. Czy masz dane z tunelu aerodynamicznego dla danego samolotu? Jeśli tak, użyj JSBSim.
  2. Czy jest to twój pierwszy FDM? Jeśli tak, użyj YASim.
  3. Czy nie podoba Ci się otwarty solver YASim'a? Jeśli tak, użyj JSBSim.
  4. Czy nie podoba Ci się, że JSBSim wymaga mnóstwa danych? Jeśli tak, użyj YASim.
  5. Patrz pkt 3.

W końcu, to naprawdę nie ma znaczenia, który z nich użyjesz - po prostu wybierz jeden i użyj go. To nie jest decyzja śmierci czy życia.

  1. Funkcja umożliwiająca rozwiązywanie równań.