JSBSim - JSBSim

JSBSim
Geliştirici (ler) JSBSim inşa ekibi
Kararlı sürüm
1.0.0 Yayın Adayı / 31 Mayıs 2009
Platform Windows, Linux, Cygwin, Mac OS X, FreeBSD, Solaris veya IRIX
Tür Uçuş simülasyonu
Lisans LGPL
İnternet sitesi jsbsim .org

JSBSim , bir havacılık aracının uçuş dinamiklerini modelleyen açık kaynaklı bir Uçuş Dinamikleri Modeli (FDM) yazılım kitaplığıdır . Kitaplık, FlightGear ve OpenEaagles uçuş simülasyon paketlerine dahil edilmiştir . Toplu simülasyon aracı oluşturmak için küçük bir bağımsız programdan da çağrılabilir. JSBSim, 1996 yılından beri geliştirme ve kullanım aşamasındadır ve Linux , Macintosh ve Microsoft Windows işletim sistemlerini çalıştıranlar da dahil olmak üzere günümüzde kullanılan en popüler platformların tümü üzerine inşa edilmiştir . JSBSim, C ++ ile yazılmıştır ve XML yapılandırma dosyalarını kullanır .

Tarih ve Genel Bakış

JSBSim (Jon S. Berndt) 1996 yılında hafif, veri odaklı, doğrusal olmayan, altı serbestlik dereceli (6DoF), uçuş dinamiklerini ve uçak kontrolünü modellemeyi amaçlayan toplu simülasyon uygulaması olarak tasarlandı. JSBSim, en eski sürümlerinden bu yana, içinde büyüdüğü açık kaynak geliştirme ortamından ve sürekli iyileştirilmesi için fikirlere katkıda bulunan çok çeşitli kullanıcılardan faydalandı. Daha büyük, tam özellikli, uçuş simülasyon uygulamalarına ve mimarilerine (bilinen örnekler FlightGear ve OpenEaagles) dahil edilmiştir ve endüstri ve akademide toplu simülasyon aracı olarak kullanılmıştır.

Kullanım kolaylığı örneği olarak, aşağıdaki kod JSBSim'in küçük bir program tarafından nasıl çağrılabileceğini ve yürütmenin bir komut dosyası tarafından kontrol edildiğini göstermektedir:

#include <FGFDMExec.h>

int main(int argc, char **argv)
{
  JSBSim::FGFDMExec FDMExec;
  bool result = true;
  FDMExec.LoadScript(argv[1]);
  while (result) result = FDMExec.Run();
}

Yukarıdaki uygulama JSBSim kitaplığı ile oluşturulduğunda çalışır ve yalnızca bir uçak konfigürasyon dosyası, bir başlangıç ​​koşulları dosyası ve yürütmeyi kontrol eden bir komut dosyası ile sağlanması gerekir. Bu dosyaların tümü XML (Genişletilebilir İşaretleme Dili) kullanılarak tanımlanır. JSBSim, simülasyon için bir uçağı tanımlamak için XML kullanan belki de ilk uçuş dinamiği modelidir. Aşağıda bir aerodinamik tanım örneği gösterilmektedir:

<function name="aero/coefficient/CDDf">
  <product>
    <property>aero/qbar-area</property>
    <table>
      <independentVar>fcs/flap-pos-deg</independentVar>
      <tableData>
          0.0  0.0
         10.0  0.007
         20.0  0.012
         30.0  0.018
      </tableData>
    </table>
  </product>
</function>

Giriş Çıkış Özellikleri

JSBSim'i temel sürücü programını kullanarak bağımsız bir modda çalıştırırken, yalnızca bir komut dosyası adı sağlamanız gerekir. Kontrol girişleri JSBSim'e komut dosyası içinden sağlanabilir.

Uçak konfigürasyon dosyası bir giriş portu spesifikasyonu içeriyorsa, kullanıcı ayrıca JSBSim'e telnet yapabilir. Telnet arayüzünden, JSBSim içindeki birçok parametrenin değerleri hem okunabilir hem de ayarlanabilir. Simülasyonun kendisi de duraklatılabilir ve devam ettirilebilir. Elbette telnet özelliği, JSBSim'i gerçek zamanlı olarak çalıştırmak için çok değerlidir. JSBSim dağıtımına dahil olan örnek bağımsız uygulama, yumuşak gerçek zamanlı olarak çalışmayı destekler.

JSBSim, mantıksal olarak gruplanmış veri setlerinin çıktısını konsola (ekrana), bir dosyaya veya bir sokete yönlendirilebilir. Çıktı aynı anda herhangi bir sayıda kanal üzerinden yönlendirilebilir, burada her kanal herhangi bir veri setini veya tek bir spesifik parametreyi içerebilir, herhangi bir dosya veya sokete (hatta konsola) yönlendirilebilir ve herhangi bir hızda çıktı alınabilir.

JSBSim'de bulunan bir yardımcı program, tüm veri dosyası çıktısını JSBSim tarafından alır ve açık kaynak çizim aracı olan gnuplot'u kullanarak PDF formatında eksiksiz bir çizim seti oluşturur.

Uçuş Kontrol Özellikleri

JSBSim Commander Uçuş Kontrol Sistemi Düzenleyicisi

JSBSim, bir uçuş kontrol sisteminin veya otopilotun ayrı bileşenlerden oluşturulmasına izin verir. Paket artık şunları içerir: filtreler, koşullu anahtar, yaz, sensör ve kazanç (değişken ve statik) bileşenleri. Ek olarak, kullanıcı tarafından tanımlanabilen bir fonksiyon bileşeni vardır.

Ayrı bir açık kaynak projesi olan JSBSim Commander (şu anda geliştirmenin erken aşamalarında ancak işlevsel) için uçuş kontrol sistemi düzenleyicisinde örnek bir uçuş kontrol sistemi blok şeması aşağıda görülmektedir.

Aerodinamik Modelleme

JSBSim, uçağın aerodinamik özelliklerini modellemek için bir katsayı oluşturma yöntemi kullanır. Eksenlerin her biri için herhangi bir sayıda kuvvet ve moment (veya hiç) tanımlanabilir. Her kuvvet / moment özelliği, bir tanım açıklaması ve kuvveti veya momenti hesaplayan fonksiyonun bir özelliğini içerir. Fonksiyon tanımı, basit bir değer veya trigonometrik ve logaritmik fonksiyonları içeren karmaşık bir fonksiyon ve bir, iki veya üç boyutlu tablo araması olabilir.

Tahrik Modellemesi

JSBSim, genel piston / pervane, roket / nozul, türbin ve turboprop modellerini içerir. Modeller detaylı mühendislik modelleri olmamakla birlikte motorların kolaylıkla eklenmesine imkan vermektedir. Bir uçak modeline, herhangi bir yerde ve yönde herhangi bir sayıda motor eklenebilir ve farklı motor türleri karıştırılabilir.

Hareket Denklemleri

JSBSim tam, altı serbestlik dereceli uçuş dinamiği modelidir. Başlangıç ​​koşullarını belirleme ve uçağı başlatmadan önce çeşitli şekillerde trimleme yeteneği sağlar. Her bir translasyonel ve rotasyonel hız ve pozisyonu yaymak için spesifik entegratörler seçilebilir. Şu anda 3. derece Adams-Bashforth varsayılandır.

Genişletilebilirlik

JSBSim genişletilebilir olacak şekilde tasarlanmıştır. Temel nesneler (motorlar, uçuş kontrol bileşenleri) basit bir arayüzle temel sınıflar olarak uygulanır. Spesifik, yeni motorlar, temel sınıflardan türetilen yeni sınıflar oluşturularak modellenebilir. Yeni uçuş kontrol bileşenleri aynı şekilde oluşturulabilir.

Önemli kullanımlar

JSBSim, FlightGear açık kaynak simülatörüyle kullanılan varsayılan uçuş modelidir . FlightGear ile birlikte JSBSim, İtalya'daki Napoli Üniversitesi'ndeki hareket tabanı simülatörünü sürmek için kullanılıyor. JSBSim, OpenEaagles simülasyon ortamı için bir sürüş uygulaması olarak dahil edilmiştir. JSBSim, roketlerin uçuş modelini modellemek için kullanılmıştır (sondaj roketlerinden daha büyük fırlatma araçlarına kadar). Mars atmosferinde uçmak için tasarlanmış ARES aracı da dahil olmak üzere İHA'ların uçuş modelini modellemek için kullanıldı. Hava trafik kontrol çalışmasının bir parçası olarak kullanılmıştır. JSBSim, MATLAB ve Simulink ile birlikte kullanılmış , DLL olarak derlenmiş ve C # 'a taşınmıştır . C # bağlantı noktası güncel değil ve artık genel kullanıma açık değil.

Gelecek planları

JSBSim üzerinde geliştirme devam ediyor. JSBSim ile çalışan ek araçlar da ortaya çıkmaktadır. DATCOM + ( Digital Datcom türevi) adı verilen ücretsiz bir araç, doğrudan JSBSim-ML formatında (XML uçak dosyası formatı) bir aerodinamik spesifikasyon çıkarır. JSBSim Commander, JSBSim modellerini oluşturmak ve değiştirmek için bir düzenleyici olarak geliştirme aşamasındadır.

Dış bağlantılar