JSBSim
Encyclopedia
JSBSim is an open source
Open source
The term open source describes practices in production and development that promote access to the end product's source materials. Some consider open source a philosophy, others consider it a pragmatic methodology...

 Flight Dynamics Model (FDM) software library that models the flight dynamics
Flight dynamics
Flight dynamics is the science of air vehicle orientation and control in three dimensions. The three critical flight dynamics parameters are the angles of rotation in three dimensions about the vehicle's center of mass, known as pitch, roll and yaw .Aerospace engineers develop control systems for...

 of an aerospace vehicle. The library has been incorporated into the flight simulation packages FlightGear
FlightGear
FlightGear Flight Simulator is a free, open-source multi-platform flight simulator developed by the FlightGear project since 1997....

 and OpenEaagles
OpenEaagles
OpenEaagles is an open source framework designed to support the rapid construction of virtual and constructive simulation applications. It has been used extensively to build DIS compliant distributed simulation systems. It is based upon Eaagles, a popular simulation framework developed and...

 and a commercial air combat simulator by Arenalogic. It can also be called from a small standalone program to create a batch simulation tool. JSBSim has been in development and use since 1996, and has been built on all of the most popular platforms in use today including those running Linux
Linux
Linux is a Unix-like computer operating system assembled under the model of free and open source software development and distribution. The defining component of any Linux system is the Linux kernel, an operating system kernel first released October 5, 1991 by Linus Torvalds...

, Macintosh
Macintosh
The Macintosh , or Mac, is a series of several lines of personal computers designed, developed, and marketed by Apple Inc. The first Macintosh was introduced by Apple's then-chairman Steve Jobs on January 24, 1984; it was the first commercially successful personal computer to feature a mouse and a...

, and Microsoft Windows
Microsoft Windows
Microsoft Windows is a series of operating systems produced by Microsoft.Microsoft introduced an operating environment named Windows on November 20, 1985 as an add-on to MS-DOS in response to the growing interest in graphical user interfaces . Microsoft Windows came to dominate the world's personal...

 operating systems. JSBSim is written in C++
C++
C++ is a statically typed, free-form, multi-paradigm, compiled, general-purpose programming language. It is regarded as an intermediate-level language, as it comprises a combination of both high-level and low-level language features. It was developed by Bjarne Stroustrup starting in 1979 at Bell...

 and uses XML
XML
Extensible Markup Language is a set of rules for encoding documents in machine-readable form. It is defined in the XML 1.0 Specification produced by the W3C, and several other related specifications, all gratis open standards....

 configuration files.

History and Overview

JSBSim was conceived in 1996 as a lightweight, data-driven, non-linear, six degree-of-freedom (6DoF), batch simulation application aimed at modeling flight dynamics and control for aircraft. Since the earliest versions, JSBSim has benefited from the open source development environment it has grown within, and the wide variety of users that have contributed ideas for its continued improvement. It has been incorporated into larger, full-featured, flight simulation applications and architectures (known examples are FlightGear
FlightGear
FlightGear Flight Simulator is a free, open-source multi-platform flight simulator developed by the FlightGear project since 1997....

 and OpenEaagles
OpenEaagles
OpenEaagles is an open source framework designed to support the rapid construction of virtual and constructive simulation applications. It has been used extensively to build DIS compliant distributed simulation systems. It is based upon Eaagles, a popular simulation framework developed and...

), and has been used as a batch simulation tool in industry and academia.

As an example of ease of use, the following code illustrates how JSBSim could be called by a small program, with execution being controlled by a script:

  1. include


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


The above application works when built with the JSBSim library, and it only needs to be supplied with an aircraft configuration file, an initial conditions file, and a script file that controls execution. All of these files are defined using XML (eXtensible Markup Language). JSBSim is perhaps the first flight dynamics model to employ XML to describe an aircraft for simulation. An example of an aerodynamic definition is shown below:




aero/qbar-area

fcs/flap-pos-deg

0.0 0.0
10.0 0.007
20.0 0.012
30.0 0.018





Input Output Features

When running JSBSim in a standalone mode using the basic driver program, one only needs to supply a script name. Control inputs can be supplied to JSBSim from within the script.

If the aircraft configuration file contains an input port specification, the user can also telnet into JSBSim. From within the telnet interface, values of many parameters internal to JSBSim can be both read and set. The simulation itself can also be paused and resumed. The telnet feature, of course, is most valuable for running JSBSim in real-time. The sample standalone application included with the JSBSim distribution supports running in soft real-time.

JSBSim can be directed to output logically grouped sets of data to the console (screen), to a file, or to a socket. Output can simultaneously be directed out through any number of channels, where each channel can contain any set of data or single specific parameter, can be directed towards any file or socket (or even the console), and can be output at any rate.

A utility included with JSBSim takes the whole data file output by JSBSim and creates a complete set of plots in PDF format, using the open source plotting tool, gnuplot.

Flight Control Features

JSBSim allows a flight control system or autopilot to be constructed from individual components. The suite now includes: filters, conditional switch, summer, sensor, and gain (variable and static) components. Additionally, there is a function component that can be defined by the user.

A sample flight control system block diagram is seen below in the flight control system editor for the separate open source project, JSBSim Commander (currently in the early stages of development, but functional).

Aerodynamics Modeling

JSBSim uses a coefficient build-up method for modeling the aerodynamic characteristics of aircraft. Any number of forces and moments (or none at all) can be defined for each of the axes. Each force/moment specification includes a definition comment, and a specification of the function that calculates the force or moment. The function definition can be a simple value, or a complicated function that includes trigonometric and logarithmic functions, and a one-, two-, or three-dimensional table lookup.

Propulsion Modeling

JSBSim includes generic piston/propeller, rocket/nozzle, turbine, and turboprop models. The models are not detailed engineering models, but they allow engines to be added easily. Any number of engines can be added to an aircraft model, at any location and orientation, and different engine types can be mixed.

Equations of Motion

JSBSim is a full, six degree-of-freedom flight dynamics model. It provides the capability to specify initial conditions, and to trim the aircraft in several ways prior to startup. Specific integrators can be chosen for propagating each of the translational and rotational velocities and positions. Currently, 3rd order Adams Bashforth is the default.

Extensibility

JSBSim is designed to be extensible. The key objects (engines, flight control components) are implemented as base classes with a simple interface. Specific, new engines can be modeled by creating new classes derived from the base classes. New flight control components can be created in the same manner.

Notable uses

JSBSim is the default flight model used with the FlightGear
FlightGear
FlightGear Flight Simulator is a free, open-source multi-platform flight simulator developed by the FlightGear project since 1997....

 open source simulator. Along with FlightGear, JSBSim is used to drive the motion base simulator at the University of Naples in Italy. JSBSim is included as a driving application for the OpenEaagles
OpenEaagles
OpenEaagles is an open source framework designed to support the rapid construction of virtual and constructive simulation applications. It has been used extensively to build DIS compliant distributed simulation systems. It is based upon Eaagles, a popular simulation framework developed and...

 simulation environment. JSBSim has been used to model the flight of rockets (from sounding rockets to larger launch vehicles). It has been used to model the flight of UAVs—including the ARES vehicle designed to fly in the Martian atmosphere. It has been used as part of an air traffic control study. JSBSim has been used together with MATLAB
MATLAB
MATLAB is a numerical computing environment and fourth-generation programming language. Developed by MathWorks, MATLAB allows matrix manipulations, plotting of functions and data, implementation of algorithms, creation of user interfaces, and interfacing with programs written in other languages,...

 and Simulink
Simulink
Simulink, developed by MathWorks, is a commercial tool for modeling, simulating and analyzing multidomain dynamic systems. Its primary interface is a graphical block diagramming tool and a customizable set of block libraries. It offers tight integration with the rest of the MATLAB environment and...

, has been compiled as a DLL, and has been ported to C#. The C# port is out of date and is no longer publicly available.

Future plans

Development continues on JSBSim itself. Additional tools that work with JSBSim are also emerging. A freely available tool called DATCOM+ (a derivative of Digital Datcom
Digital Datcom
The United States Air Force Stability and Control Digital DATCOM is a computer program that implements the methods contained in the USAF Stability and Control DATCOM to calculate the static stability, control and dynamic derivative characteristics of fixed-wing aircraft...

) outputs an aerodynamic specification directly in JSBSim-ML format (the XML aircraft file format). JSBSim Commander is under development as an editor for creating and modifying JSBSim models.

External links

The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK