FILES:

readme		This file, of course.

Makefile	This is the `Makefile' for the flight simulator program.
		See the documentation in `src/readme' and `src/Makefile'.
		It also compiles the `perturb' program and initializes
		network biases and connection weights according to the
		information in file `network.src'.

perturb.C	This program initializes the network biases and connection
		weights as normally distributed random perturbations with
		zero mean then incorporates I/O normalization into the
		biases and connection weights in both input and output
		layers.  The -s option specifies the seed value used by
		the random number generator.  A large prime number works
		best.  The -n option specifies the noise = lg(variance)
		used to perturb the initial biases and connection weights.
		The network architecture and mean values and standard
		deviations for both inputs and outputs are read from
		standard input and written to standard output along with
		the initial network biases and connection weights.  In
		practice, both standard input and output are redirected
		to files.  Files `network.src' and `network.old' contain
		examples of input and output respectively.

network.src	Example input for the `perturb' program.  Take a look at it.
		Documentation is appended to the end of the file.

weights		Appended to the output from the `perturb' program.
		Documentation is appended to the end of the file.

src/simulate	This is the actual flight simulator program.  It includes
		the learning algorithm and derivative arithmetic if the
		`-DLEARNING' macro definition is included in the `DEFINES'
		variable in `src/Makefile'.  It reads aircraft, engine
		and aerodynamic model parameters from files `params.dat',
		`ENGINE.DAT' and `HPAS.DAT' respectively.  It reads the
		network biases and connection weights from `network.old'
		and writes them back out to `network.new' upon termination
		if the `LEARNING' macro is defined.  The program displays
		on standard output and reports errors on standard error.
		The program supports a number of command line options.
		Some of them can be found in file `src/simulate.C' in
		function `main'.  The rest can be found in `src/umisc.C'
		in `initialize'.  The `trials', `sample' and `update'
		options are specified in time steps.  There are 50 time
		steps for every second of real time.  The default option
		values are appropriate for a 2g coordinated right turn at
		Mach 1 and 20000 feet.  If you wish to see the simulator
		fly this turn, just copy `network.bak' to `network.old'
		then type `src/simulate -v'.  If you want to see it LEARN
		to fly the turn, just remove `network.old' if it exists
		and type `make network.old'.  It is probably best to start
		training with shallow turns and work your way up to tighter
		turns.  Start with `-r 64' and work you way down to `-r 4'.
		The 64 mile radius turn requires about 27200 trials
		(time steps) or about 9 minutes of real time to complete
		including 16 seconds of straight and level flight at both
		the beginning and end of the turn.  The network must fly
		a lot of turns before it learns how to do it correctly.
		It must fly both left, `-a -90', and right, `-a 90', turns
		with different initial headings -- west, `-h -90', and
		east, `-h 90', as well as north, `-h 0'.  Move `network.new'
		to `network.old' after each turn so that the network learns
		to fly all of them correctly.

params.dat	This file contains the aircraft    model parameters
		read by function `datinp' in source file `src/datinp.C'
		and  by function `limtin' in source file `src/limtin.C'.

ENGINE.DAT	This file contains the engine      model parameters
		read by function `engdin' in source file `src/engdin.C'.

HPAS.dat	This file contains the aerodynamic model parameters
		read by function `adatin' in source file `src/adatin.C'.

network.bak	This file contains the network biases and connection weights
		for a linear artificial neural controller which has been
		trained to fly coordinated turns at Mach 1, 20000 feet and
		2 g's.  The radius of this turn is about 4 miles.  It take
		about 32 seconds to complete a 90 degree turn at Mach 1.

