100% found this document useful (1 vote)
158 views

Jsbsim: Open Source Flight Dynamics Model in C++

JSBSim is an open source software library that models the dynamics of flight. It can be incorporated into larger flight simulators or used as a standalone batch simulation tool. JSBSim uses XML files to describe aircraft and their aerodynamic properties. It also models various flight control systems and outputs simulation data to files, sockets or plotting tools for analysis. JSBSim has been widely used in academia and industry for applications like powering the FlightGear simulator, modeling rockets, and aiding air traffic control research.
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
100% found this document useful (1 vote)
158 views

Jsbsim: Open Source Flight Dynamics Model in C++

JSBSim is an open source software library that models the dynamics of flight. It can be incorporated into larger flight simulators or used as a standalone batch simulation tool. JSBSim uses XML files to describe aircraft and their aerodynamic properties. It also models various flight control systems and outputs simulation data to files, sockets or plotting tools for analysis. JSBSim has been widely used in academia and industry for applications like powering the FlightGear simulator, modeling rockets, and aiding air traffic control research.
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 2

JSBSimwww.jsbsim.

org
Open Source Flight Dynamics Model in C++
JSBSim is an open source software library that models the dynamics of flight of an aerospace vehicle. The library can be incorporated into larger
simulation packages (such as FlightGear and OpenEaagles), or it can 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, Macintosh, and Windows operating systems.

JSBSim was conceived in 1996 as a lightweight, data- Input Output Features


driven, non-linear, six degree-of-freedom (6DoF), batch
simulation application aimed at modeling flight dynam- When running JSBSim in a standalone mode using the
ics and control for aircraft. Since the earliest versions, basic driver program, one only needs to supply a script
JSBSim has benefited from both the open source develop- name. Control inputs can be supplied to JSBSim from
ment environment it has grown within, and the wide vari- within the script.
ety of users that have contributed ideas for its continued
improvement. It has been incorporated into larger, full- If the aircraft configuration file contains an input port
featured, flight simulation applications and architectures specification, the user can also telnet into JSBSim. From
(such as FlightGear and OpenEaagles), and has been used within the telnet interface, values of many parameters
as a batch simulation tool in industry and academia. internal to JSBSim can be both read and set. The simula-
tion itself can also be paused and resumed. The telnet
As an example of ease of use, the following code illus- feature, of course, is most valuable for running JSBSim
trates how JSBSim could be called by a small program, in real-time. The sample standalone application included
with execution being controlled by a script: with the JSBSim distribution supports running in soft
real-time.
#include <FGFDMExec.h>
JSBSim can be directed to output logically grouped sets
int main(int argc, char **argv) of data to the console (screen), to a file, or to a socket.
{
JSBSim::FGFDMExec FDMExec;
Output can simultaneously be directed out through any
bool result = true; number of channels, where each channel can contain any
FDMExec.LoadScript(argv[1]); set of data or single specific parameter, can be directed
while (result) result = FDMExec.Run(); towards any file or socket (or even the console), and can
} be output at any rate.

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:

<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 A utility included with JSBSim takes the whole data file
</tableData> output by JSBSim and creates a complete set of plots in
</table> PDF format, using the open source plotting tool, gnuplot.
</product>
</function>
Flight Control Features positions. Currently, 3rd order Adams Bashforth is the
default.
JSBSim allows a flight control system or autopilot to be
constructed from individual components. The suite now Extensibility
includes: filters, conditional switch, summer, sensor, and
gain (variable and static) components. Additionally, there JSBSim is designed to be extensible. The key objects
is a function component that can be defined by the user. (engines, flight control components) are implemented as
base classes with a simple interface. Specific, new en-
A sample flight control system block diagram is seen be- gines can be modeled by creating new classes derived
low in the flight control system editor for the separate from the base classes. New flight control components can
open source project, JSBSim Commander (currently in be created in the same manner.
the early stages of development, but functional).
Notable Uses

JSBSim is the default flight model used with the Flight-


Gear open source simulator. Along with FlightGear,
JSBSim is used to drive the motion base simulator at the
University of Naples in Italy (see photograph below).

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 in-
cludes a definition comment, and a specification of the JSBSim is included as a driving application for the
function that calculates the force or moment. The func- OpenEaagles simulation environment. JSBSim has been
tion definition can be a simple value, or a complicated used to model the flight of rockets (from sounding rock-
function that includes trigonometric and logarithmic ets to larger launch vehicles). It has been used to model
functions, and a one-, two-, or three-dimensional table the flight of UAVs—including the ARES vehicle de-
lookup. signed to fly in the Martian atmosphere. It has been used
as part of an air traffic control study. JSBSim has been
Propulsion Modeling used together with Matlab/Simulink, has been ported to
C#, and has been compiled as a DLL.
JSBSim includes generic piston/propeller, rocket/nozzle,
turbine, and turboprop models. The models are not de- Future Plans
tailed engineering models, but they allow engines to be
added easily. Any number of engines can be added to an Development continues on JSBSim itself. Additional
aircraft model, at any location and orientation, and differ- tools that work with JSBSim are also emerging. A freely
ent engine types can be mixed. available tool called DATCOM+ (a derivative of Digital
DATCOM) outputs an aerodynamic specification di-
Equations of Motion rectly in JSBSim-ML format (the XML aircraft file for-
mat). JSBSim Commander is under development as an
JSBSim is a full, six degree-of-freedom flight dynamics editor for creating and modifying JSBSim models.
model. It provides the capability to specify initial condi-
tions, and to trim the aircraft in several ways prior to For more information about JSBSim, contact Jon S.
startup. Specific integrators can be chosen for propagat- Berndt, email: [email protected], or visit the JSBSim web
ing each of the translational and rotational velocities and site, http://www.jsbsim.org.

You might also like