JSBSim

From FlightGear wiki
Jump to navigation Jump to search

JSBSim is an open source Flight Dynamics Model (FDM) software library that models the flight dynamics of an aerospace vehicle. The library has been incorporated into the flight simulation packages FlightGear and OpenEaagles. 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, Macintosh, and Microsoft Windows operating systems. JSBSim is written in C++ and uses XML configuration files.

Overview

JSBSim provides several different physics models which work together to calculate the overall vehicle dynamics.

  • Mass Balance - This model uses weight (mass) to provide a force due to gravity and moments of inertia to damp changes in rotational velocity. Empty mass and inertia are specified, and point masses (which can have a shape and size) and fuel load are added in.
  • Ground Reactions - JSBSim has a fairly simple system for ground reactions. You can have structural contacts which are uni-directional or bogeys which act only in a given direction. Both are modeled as spring and damper systems. Each bogey or structural contact provides a force on the vehicle when in contact with the ground. If the contact is not at the CG it also provides a rotating moment.
  • Propulsion - JSBSim models a variety of engine types using different methods. All engines provide a force along their X axis, and create moments if this force in not applied at the CG. The propeller and rotor thrusters also create turning moments.
  • Aerodynamics - JSBSim's aerodyamics are a blank slate. It is entirely up to the vehicle author to use valid formulas. The aerodynamic force is divided into Lift, Drag, and Side. You can also create Roll, Pitch and Yaw moments. In addition, if the aerodynamic force reference point is not coincident to the CoG the forces will create a hidden moment.
  • Buoyant forces - Lighter than air craft, e.g. gas balloons, pressure airships (e.g. blimps) and rigid airships, can be simulated with this model.
  • External forces - If the aerodynamic section is too limiting, or you want to simulate glider tow ropes, catapults or other things, you can add forces at arbitrary points.
  • Atmosphere - JSBSim can be set up to use its own atmosphere model, or it can use an externally supplied model. There are three turbulence models to chose from.
  • Systems - A JSBSim system can implement any sort of model. This is a very useful facility as you can have any number of systems referenced from the aircraft configuration file. JSBSim Systems can be used to model items required in the FDM, and non-flight items, such electrics, hydraulics.
  • Gravity

Aeromatic

1rightarrow.png See Aeromatic for the main article about this subject.

Aeromatic can be used to create aircraft configuration files for use with the JSBSim Flight Dynamics Model. The configuration file format produced using this utility is version 2.0, and is incompatable with older formats because of an extensive overhaul of JSBSim's XML code that occured in December of 2004. Aeromatic is a online web tool, written in PHP, not a standalone program.

You will need at least three files for a complete configuration, an aircraft file containing information on the aircraft's mass properties, propulsion, flight control, aerodynamic properties, etc., an engine file describing the engine(s), and a thruster file. Thrusters can be rotors, propellers, nozzles or direct. All turbine engines use the default "direct" thruster. Piston, electric and turboprops need rotors or propellers. Rockets need nozzles. Aeromatic will generate plausible configuration files for your aircraft using some simplifying assumptions. Note that Aeromatic allows only one type of engine to be defined per aircraft. If you want to mix engine types you'll have to make the necessary changes by hand.

Be careful when tweaking the resulting configuration file, because it's easy to make changes that will result in an unflyable FDM. Common errors are: moving things around so they are not left/right symmetrical, and moving the CG too far away from the AeroRP.

Related content

External links