JSBSim
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.
- JSBSim is also used by OpenEaagles
- JSBSim Commander is a software program for developing FDM for aircraft with JSBSim.
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
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
- JSBSim Aerodynamics notes
- JSBSim Aerodynamics input and outputs
- JSBSim GroundReactions
- JSBSim Engine configuration
- JSBSim Thruster configuration
- JSBSim Fuel System
- Howto: Write a fuel system in JSBSim
- DATCOM, lets you input many more variables than Aeromatic
- Howto: Setup winch and aerotowing for JSBSim-aircraft
- Howto: methods to replace the NASAL code with JSBSim code
- JSBSim Buoyant forces
- Howto:Modelling hydrodynamics in JSBSim
External links
- JSBSim web site
- JSBSim site on github
- JSBSim annotated reference – Though meant for programmers, it also document the JSBSim xml markup language.
- Jon S. Berndt and the JSBSim Development Team (9 July 2011). JSBSim – An open source, platform-independent, flight dynamics model in C++ (a.k.a. JSBSim Reference Manual v1.0) (pdf). Retrieved 15 January 2014. (WIP)
- Jon S. Berndt. A Journal for the Creation and Refinement of a JSBSim Aircraft Flight Model (pdf). Retrieved 15 January 2014. Detailed report on an aircraft FDM improvement process.
- JSBSim Commander (beta)
- Aeromatic 0.95 (online)
- AeromatiC++ 3.3.8 (Windows)
- AeromatiC++ 3.3.8 (Linux)
- DATCOM+