Title: Jon Berndt
1- Jon Berndt
- jon_at_jsbsim.org
- JSBSim Project Development Coordinator
- AIAA Houston Annual Technical Symposium
- May 11, 2007
2JSBSim The Basics
- JSBSim has been under development for 10 years.
- It runs on Windows, Mac, Linux, IRIX, etc.
- All source code is available.
- Open Source tools are all that is needed to build
and use it. - It is scriptable.
- It can be run from a stub application (in
standalone mode) or integrated within a larger
application framework such as OpenEaagles, or a
simulation such as FlightGear.
3JSBSim Project Philosophy
- Simulating flight requires extensive technical
knowledge. - JSBSim aims to find a balance between fidelity
and simplicity, so the task of simulating the
flight of any aerospace vehicle can be done with
the minimum specific input possible. - The target audience is upper level engineering
students. - JSBSim also provides advanced capabilities for
those who need it.
4Easy to use for application developers
(as a standalone simulation application)
- include ltFGFDMExec.hgt
- int main(int argc, char argv)
-
- JSBSimFGFDMExec FDMExec
- bool result true
- FDMExec.LoadScript(argv1)
- while (result) result FDMExec.Run()
5Easy to use for application developers
(called from a simulation application)
- int initialize_flight_dynamics(char name)
- FDMExec new FGFDMExec()
- FDMExec-gtLoadAircraft(name)
- FDMExec-gtDoTrim(mode)
-
- int run_flight_dynamics()
- copy_inputs_to_jsbsim()
- FDMExec-gtRun()
- copy_outputs_from_jsbsim()
6JSBSim Program Flow
External program
Trim
End
Load
Start
Run
Aircraft Engine definition files
JSBSim Executive
7Flight Control Block Diagram Example
8Flight Control Components in JSBSim
ltsensor name"fcs/attitude/sensor/phi-rad"gt
ltinputgt attitude/phi-rad lt/inputgt ltlaggt 0.5
lt/laggt ltnoise variation"PERCENT"gt 0.05
lt/noisegt ltquantization name"attitude/sensor/qu
antized/phi-rad"gt ltbitsgt 12 lt/bitsgt
ltmingt -3.14 lt/mingt lt!-- -180 degrees --gt
ltmaxgt 3.14 lt/maxgt lt!-- 180 degrees --gt
lt/quantizationgt ltbiasgt 0.001 lt/biasgt
lt/sensorgt ltpid name"fcs/roll-ap-error-pid"gt
ltinputgtfcs/attitude/sensor/phi-radlt/inputgt
ltkpgt 2.0 lt/kpgt ltkigt 0.2lt/kigt ltkdgt 1 lt/kdgt
lt/pidgt
9Flight Control Components in JSBSim
ltsensor name"fcs/attitude/sensor/phi-rad"gt
ltinputgt attitude/phi-rad lt/inputgt ltlaggt 0.5
lt/laggt ltnoise variation"PERCENT"gt 0.05
lt/noisegt ltquantization name"attitude/sensor/qu
antized/phi-rad"gt ltbitsgt 12 lt/bitsgt
ltmingt -3.14 lt/mingt lt!-- -180 degrees --gt
ltmaxgt 3.14 lt/maxgt lt!-- 180 degrees --gt
lt/quantizationgt ltbiasgt 0.001 lt/biasgt
lt/sensorgt ltpid name"fcs/roll-ap-error-pid"gt
ltinputgt fcs/attitude/sensor/phi-rad lt/inputgt
ltkpgt 2.0 lt/kpgt ltkigt 0.2lt/kigt ltkdgt 1 lt/kdgt
lt/pidgt
10Complex Functions
- ltfcs_function name"Heading to Waypoint Rad"gt
- ltfunctiongt
- ltatan2gt lt!-- atan2 (deltaY, deltaX )--gt
- ltproductgt
- ltsingtltpropertygt fcs/delta-lon-rad
lt/propertygtlt/singt - ltcosgtltpropertygt ap/wp_latitude_rad
lt/propertygtlt/cosgt - lt/productgt
- ltdifferencegt
- ltproductgt
- ltcosgtltpropertygt position/lat-gc-rad
lt/propertygtlt/cosgt - ltsingtltpropertygt ap/wp_latitude_rad
lt/propertygtlt/singt - lt/productgt
- ltproductgt
- ltsingtltpropertygt position/lat-gc-rad
lt/propertygtlt/singt - ltcosgtltpropertygt ap/wp_latitude_rad
lt/propertygtlt/cosgt - ltcosgtltpropertygt fcs/delta-lon-rad
lt/propertygtlt/cosgt - lt/productgt
- lt/differencegt
- lt/atan2gt
11Aerodynamic Forces and Moments
- Aerodynamic forces and moments are each defined
and built up for the three axes, from any number
of individual contributions. A force or moment
component for an axis can be defined as a
function of any property value, lookup table
value, or constant value. - An example showing how the pitching moment due to
flap deflection is defined is presented in the
next slide.
12XML Aerodynamic Term Definition
- ltfunction name"aero/moment/Df"gt
- ltdescriptiongtPitching moment due to flap
deflectionlt/descriptiongt - ltproductgt
- ltpropertygt aero/qbar-area lt/propertygt
- ltpropertygt metrics/cbarw-ft lt/propertygt
- lttablegt
- ltindependentVargt fcs/flap-pos-deg
lt/independentVargt - lttableDatagt
- 0.0 0.0
- 10.0 -0.0654
- 20.0 -0.0981
- 30.0 -0.1140
- lt/tableDatagt
- lt/tablegt
- lt/productgt
- lt/functiongt
- Represents M?f qbar Sw cbar Cm?f
13XML Aerodynamic Term Definition
- ltfunction name"aero/moment/Df"gt
- ltdescriptiongtPitching moment due to flap
deflectionlt/descriptiongt - ltproductgt
- ltpropertygt aero/qbar-area lt/propertygt
- ltpropertygt metrics/cbarw-ft lt/propertygt
- lttablegt
- ltindependentVargt fcs/flap-pos-deg
lt/independentVargt - lttableDatagt
- 0.0 0.0
- 10.0 -0.0654
- 20.0 -0.0981
- 30.0 -0.1140
- lt/tableDatagt
- lt/tablegt
- lt/productgt
- lt/functiongt
- Represents M?f qbar Sw cbar Cm?f
14XML Aerodynamic Term Definition
- ltfunction name"aero/moment/Df"gt
- ltdescriptiongtPitching moment due to flap
deflectionlt/descriptiongt - ltproductgt
- ltpropertygt aero/qbar-area lt/propertygt
- ltpropertygt metrics/cbarw-ft lt/propertygt
- lttablegt
- ltindependentVargt fcs/flap-pos-deg
lt/independentVargt - lttableDatagt
- 0.0 0.0
- 10.0 -0.0654
- 20.0 -0.0981
- 30.0 -0.1140
- lt/tableDatagt
- lt/tablegt
- lt/productgt
- lt/functiongt
- Represents M?f qbar Sw cbar Cm?f
15XML Aerodynamic Term Definition
- ltfunction name"aero/moment/Df"gt
- ltdescriptiongtPitching moment due to flap
deflectionlt/descriptiongt - ltproductgt
- ltpropertygt aero/qbar-area lt/propertygt
- ltpropertygt metrics/cbarw-ft lt/propertygt
- lttablegt
- ltindependentVargt fcs/flap-pos-deg
lt/independentVargt - lttableDatagt
- 0.0 0.0
- 10.0 -0.0654
- 20.0 -0.0981
- 30.0 -0.1140
- lt/tableDatagt
- lt/tablegt
- lt/productgt
- lt/functiongt
- Represents M?f qbar Sw cbar Cm?f
16XML Aerodynamic Term Definition
- ltfunction name"aero/moment/Df"gt
- ltdescriptiongtPitching moment due to flap
deflectionlt/descriptiongt - ltproductgt
- ltpropertygt aero/qbar-area lt/propertygt
- ltpropertygt metrics/cbarw-ft lt/propertygt
- lttablegt
- ltindependentVargt fcs/flap-pos-deg
lt/independentVargt - lttableDatagt
- 0.0 0.0
- 10.0 -0.0654
- 20.0 -0.0981
- 30.0 -0.1140
- lt/tableDatagt
- lt/tablegt
- lt/productgt
- lt/functiongt
- Represents M?f qbar Sw cbar Cm?f
17XML Aerodynamic Term Definition
- ltfunction name"aero/moment/Df"gt
- ltdescriptiongtPitching moment due to flap
deflectionlt/descriptiongt - ltproductgt
- ltpropertygt aero/qbar-area lt/propertygt
- ltpropertygt metrics/cbarw-ft lt/propertygt
- lttable nameaero/coefficient/Cmdfgt
- ltindependentVargt fcs/flap-pos-deg
lt/independentVargt - lttableDatagt
- 0.0 0.0
- 10.0 -0.0654
- 20.0 -0.0981
- 30.0 -0.1140
- lt/tableDatagt
- lt/tablegt
- lt/productgt
- lt/functiongt
- Represents M?f qbar Sw cbar Cm?f
18Output
- JSBSim has a versatile data logging system.
- Any number of output sections can be specified
in the configuration file. - Logical data sets can be output, and/or
individual parameters. - Output can be sent to one or many (in any
combination) - Socket (local or remote)
- File
- Console
19Developing a Specific Flight Model
- The JSBSim code is generic, allowing anything
from a ball, to an aircraft, to a rocket, to be
modeled. The task of modeling the dynamics of a
specific flight vehicle then becomes mostly one
of acquiring the needed data.
20Sources of Modeling Data (data farming)
- FAA Type Certificate Data Sheets (TCDS)
- Weight and balance
- Propulsion data
- Limitations
- Aerosurface deflections
- Fuel capacity
- Etc.
- NASA Technical Reports
- Aerodynamics
- Test response
- Mass properties (MoI)
- Aircraft geometry
21Sources of Modeling Data (contd.)
- POH (Pilot Operating Handbook)
- Textbooks
- Manufacturers information (web site)
- Pilot inputs. Maybe.
22XML Technologies Used
- Aircraft, engine, thruster, scripts, and
initial conditions are all specified in an
XML-based format collectively known as JSBSim-ML. - An XML schema is provided to validate an XML file
- An XML stylesheet language transform is provided
for displaying XML files in a prettier format. - Expat, an established, open source XML parsing
library, is used in JSBSim, offloading that
development task.
23XML-based Standard
- The AERO-ML (aka DAVE-ML) standard is being
prepared for submission to the AIAA standards
committee. JSBSim provided a (surprise) early
example of an implementation for the concept of
describing an aircraft flight model in XML. The
AERO-ML effort is being spearheaded by Bruce
Hildreth (AIAA Standards Committee) and Bruce
Jackson (LaRCsim author). - The most recent version of JSBSim-ML has in
return been influenced by AERO-ML.
24XSL Stylesheet Formatting
25JSBSim Example Uses
- JSBSim has been incorporated into at least two
large scale battlefield simulators in order to
provide flight simulation capabilities
(OpenEaagles, and another as written about in a
Swedish thesis work). - LMCO, Missiles and Fire Control, used JSBSim in
one case to model a Predator in an integrated
air/ground simulator (as far as I can tell). - University of Naples used JSBSim to make batch
runs in a study to determine the clearance
between a radio tower near a runway and the
flight path of a 737 under a variety of nominal
and off-nominal conditions. - A European company used JSBSim for a downrange
impact study for a workhorse launch vehicle, in a
scenario where the first stage failed.
26JSBSim Example Uses (2)
- A group of EC companies used JSBSim as one of
several components assembled to study landing and
taxiing traffic at European airports with an eye
towards improving flow and safety. - A slightly modified version of JSBSim was used to
develop a guidance and control scheme for a
finless rocket, using an evolving neural network
neuroevolution. - Interorbital Systems, used a modified JSBSim to
develop control laws for one of their sounding
rockets
27Flight Simulation in Education
- JSBSim aims to be a useful tool in the academic
world. Industry needs and teaching approaches
have evolved over the years - industry, government, and academia the
likely employers of aerospace graduates desire
a workforce which is the more holistic and
systems-thinking as opposed to the highly
specialized, research-oriented engineer of past
generations. - AIAA/MIT paper Re-engineering Aerodynamics
Education
28Flight Simulation in Education
- Aerospace vehicle design encompasses many
disciplines, which are fused together by system
engineering. - By mathematically modeling the components
aerodynamics, propulsion, guidance and control,
etc. they will grasp the theoretical
underpinning of key engineering disciplines and
their interactions. - Peter Zipfel, Adjunct Associate Professor,
University of Floridaauthor of Building
Aerospace Simulations in C
29Flight Simulation in Education
- in the modeling and simulation courses, where
the emphasis is on the total system, I insist
that they use a compiled language. Why not
MATLAB? MATLAB/SIMULINK is great for control
system design, but hides the mathematics
underneath block diagrams and icons. For complete
vehicle simulations it is important that the
student experiences the mathematical modeling
process first hand. - Peter Zipfel, Adjunct Associate Professor,
University of Floridaauthor of Building
Aerospace Simulations in C
30JSBSim in Education
- JSBSim has proven to be very helpful in an
academic setting. The most commonly seen use is
the modeling and simulation of UAV flight and
exercising guidance and control laws. - The favor has also been returned in contributed
code and even in the beginning of another open
source project, JSBSim Commander.
31Additional Tools, JSBSim Commander
32Additional Tools DATCOM
- Digital DATCOM is a freely available tool that
attempts to determine aerodynamic coefficients
and stability derivatives for an aircraft as
defined in a text input file. - A contributor to the JSBSim project has modified
DATCOM to provide its data output directly in
JSBSim format. (see www.holycows.net/datcom)
33Additional Tools AVL
- AVL is a program written by Mark Drela (MIT) that
uses the vortex lattice method to determine
aerodynamic qualities of a defined vehicle. A
student has offered to modify the open source AVL
code so it can output directly in JSBSim format.
34Additional Tools Stripchart
- A stripchart application has been written that
accepts data from JSBSim via a socket interface.
35Future Goals
- Documentation
- More examples
- Release version 1.0
- Multi-body capability (specifically, multi-stage
capability)
36 37Referencing Papers
- Robust Non-Linear Control through Neuroevolution,
Faustino John Gomez, B.A., PhD Dissertation,
University of Texas, Austin, August 2003 - Active Guidance for a Finless Rocket Using
Neuroevolution, Faustino John Gomez, University
of Texas, Austin, 2003 - Simulated Flight Testing of an Autonomous
Unmanned Aerial Vehicle Using FlightGear, Eric F.
Sorton and Sonny Hammaker, Institute for
Scientific Research, Inc. - Automating the Cockpit, Marten Tamerius,
University of Technology, Delft, The Netherlands,
2003
38Referencing Papers
- Extending a Battlefield Simulator with Large
Scale Terrain Rendering and Flight Simulator
Functionality, Daniel Johansson, Department of
Science and Technology, Linköpings Universitet,
Norrköping, Sweden, November 2005 - Development of a Low-Cost Simulator for
Demonstration and Engineer Training, Burns, R.
S. Duquette, Matthew M. Howerton, Joseph B.
Simko, Richard J., AIR FORCE RESEARCH LAB
WRIGHT-PATTERSON AFB OH AIR VEHICLES DIRECTORATE,
July 2003