MINIACFS USER'S GUIDE 1. Introduction 1.1 Advanced Concepts Flight Simulator (ACFS) 1.2 Miniature ACFS (miniACFS) 1.3 Stone Soup Simulator (SSS) 2. Setup 2.1 System Configuration 2.2 Installation 2.3 Configuration Options 3. Operation 3.1 Starting the Simulation 3.2 Shutting Down the Simulation 3.3 Freezing the Simulation 3.4 Running Processes in Standalone 3.5 Display Configuration 3.6 Command Line Entries 4. Scenario Construction 4.1 Initial Positions (IP) 4.2 Datalink 4.3 CDU Scripts 4.4 ATC Simulation 4.5 Data Collection 5. Flying Examples 5.1 Programming the miniACFS FMS 5.2 Programming the SSS FMS 5.3 Taking Off 1. Introduction The miniACFS is a piloted aircraft simulation which represents a miniature (or desktop) version of the Advanced Concepts Flight Simulator (ACFS) located at the NASA Ames Crew-Vehicle Systems Research Facility (CVSRF). 1.1 Advanced Concepts Flight Simulator (ACFS) The ACFS is a full-mission six degree-of-freedom motion flight simulator which represents a generic commercial transport aircraft with the following characteristics: * Maximum gross weight 225,000 pounds * 200 passenger capacity * Twin engine, 41,000 pounds thrust (each engine) * Speed: .78 Mach; range 2500 miles * Two person flight crew * All-electric airplane (no hydraulics) * Fly-by-wire; active flight controls * Relaxed static margin; load alleviation * T-tail, low wing, supercritical airfoil * Composites for primary and secondary structures * High-density fuel The ACFS has been described as containing aerodynamics and autoflight controls representative of a Boeing 757-class aircraft coupled with Boeing 747-400 style flight instruments. 1.2 Miniature ACFS (miniACFS) The miniACFS can be configured to run on one or more SGI workstations. The pilot displays consist of Primary Flight Displays (PFDs), which contain an Attitude Direction Indicator (ADI) and a Horizontal Situation Indicator (HSI), and Secondary Flight Displays (SFDs), which provide information on aircraft systems. Hardware devices are emulated through additional graphical displays. The Mode Control Panel (MCP) provides access to the autopilot and autothrottle systems. The Control Display Units (CDUs) provide access to the Flight Management Computer (FMC). The Navigation Display Control Panels (NDCPs) provide control over the HSI displays. The Aircraft Control Panels (ACPs) provide access to additional hardware controls such as throttles, flaps, speed brakes, and landing gear. Pilots can interact with this system via mouse or touchscreen inputs and an optional 3 degree-of-freedom joystick with integral button/lever box. For more information regarding the miniACFS part-task laboratory see "http://olias.arc.nasa.gov/facilities/part-task/part-task.html". 1.3 Stone Soup Simulator (SSS) The Stone Soup Simulator (SSS) represents a version of the miniACFS in which proprietary portions of the software have been replaced to enable limited distribution. The following contributors provided software for the initial release: * NASA Langley Research Center (LaRC) provided the software for the Flight Management Computer (FMC). * MIT Aeronautical Systems Laboratory (ASL) provided the software for the autoflight/autothrottle system. * NASA Ames Propulsion Control Automation (PCA) Research Team provided the flight surface control algorithms. 2. Setup 2.1 System Configuration The miniACFS can be configured to run on one or more SGI workstations. It currently runs on either IRIX 5.3 or IRIX 6.2 operating systems. The system requires both C and FORTRAN (f77) compilers to be installed in order to rebuild the simulation. For IRIX 5.3, patches 313 and 483 must be installed. For IRIX 6.2, the suggested compiler is FORTRAN 7.0, however the system appears to be supported by using FORTRAN 6.2 with patches 1569, 1572, 1584, and 1684. The simulation is currently only configured to run under C-shell. It is also recommended that the "click to get keyboard focus" option be turned off so simulation display windows will not be automatically "pushed" and "popped". 2.2 Installation 1. Copy the miniACFS directory and associated files to the desired location. 2. Copy the .miniACFSrc file (from the miniACFS/MISC directory) into your home directory (i.e. ~/.miniACFSrc). 3. Modify the first line in the ~/.miniACFSrc file (which sets MINIACFS_DIR) to point to the miniACFS directory. 4. If using korn shell, add the line "exec csh" to the bottom of the ~/.profile file (in order to use c-shell for all spawned processes). (See miniACFS/MISC/.profile file for example). 5. Add the line "source ~/.miniACFSrc" to the ~/.cshrc file (in order to set the appropriate aliases for all spawned processes). (See miniACFS/MISC/.cshrc file for example). 6. Modify the /etc/services file to include the following services: "pfd1-server 7005/tcp # ECL PFD1 service" "pfd2-server 7010/tcp # ECL PFD2 service" "mcp-server 7100/tcp # ECL MCP service" "sfd1-server 7200/tcp # ECL SFD1 service" "sfd2-server 7210/tcp # ECL SFD2 service" "sfd3-server 7220/tcp # ECL SFD3 service" "ast-server 7300/tcp # ECL AST service" "ndcp1-server 7310/tcp # ECL NDCP1 service" "ndcp2-server 7320/tcp # ECL NDCP2 service" "acp1-server 7330/tcp # ECL ACP1 service" "acp2-server 7340/tcp # ECL ACP2 service" "acp3-server 7350/tcp # ECL ACP3 service" "acp4-server 7360/tcp # ECL ACP4 service" "atc-server 7400/tcp # ECL ATC service" "fmc-server 7600/tcp # ECL FMC service" "cds-server 7605/tcp # ECL CDS service" "cdu1-server 7610/tcp # ECL CDU1 service" "cdu2-server 7615/tcp # ECL CDU2 service" "sec-server 7620/tcp # LJB SECONDARY TASK service" (See miniACFS/MISC/services file for example). [Note: This requires root privilege]. [Note: Port numbers may need to be changed for individual machines]. 2.3 Configuration Options The miniACFS is configured to use either a graphical or hardware joystick. To use hardware joystick (ex. "flybox"), turn off "softstick_enable" option in "miniACFS/ast/data/ast_config.dat", and plug serial connection into port #1 or #2 (or both if using two joysticks for dual cockpit operation). [Note: We use the "FlyBox" from BG Systems: 3272 Bryant Street, Palo Alto, CA 94306, Tel (415) 858-2628, Fax (415) 858-2685]. The miniACFS is configured to run on either a single or distributed SGI workstations. To run on more than one machine: 1. Invoke the server_hosts_option in "miniACFS/acfs/data/acfs_config.dat". 2. Modify the server host names in "miniACFS/acfs/data/server_hosts.dat". 3. Configure the "miniACFS/command/sim" script to use remote shell commands for starting up the server processes. [Note: this requires configuring the "~/.rhosts" file]. 4. Configure the "miniACFS/command/cleanup" script to use remote shell commands for cleaning up the server processes in the event of an abnormal shutdown. 3. Operation 3.1 Starting the Simulation 1. Open a shell window. The opened shell window, referred to as the operator window, is where the operator sends commands to the UNIX shell, when starting the simulation, and to the main program, when running the simulation. 2. Type "cmd" in the new shell window. The command "cmd" changes the current directory to the "miniACFS/command" directory for starting the simulation. 3. Type "sim" in the same window. The "sim" script starts all servers on their desired hosts before starting the main program. This script file may be customized to support different configurations. 4. Answer questions at the prompts. Example: "Enter Subject Number (or help): 1" "Enter Scenario id: ksfo28r" "Enter Exp. Condition (1 - 14): 14" "Enter s to start: s" 5. Wait for "Enter ru(n) >" prompt. 6. Type "run". 3.2 Shutting Down the Simulation A response of "ex" (or "exit") to the "UPLINK >" prompt will cause the simulation to shutdown gracefully. If an error occurs during shutdown, the "cleanup" script, located in the "miniACFS/command" (or "cmd") directory, may be used to kill all simulation processes. 3.3 Freezing the Simulation A response of "fr" (or "freeze") at the "UPLINK >" prompt will cause the aircraft to freeze at its current state. Some of the cockpit interfaces may still be active, but it is advised not to make any changes to them while in freeze mode. Typing in "ru" (or "run") will cause the simulation to resume run mode. 3.4 Running Processes in Standalone Processes can also be run in standalone mode. This can be useful for demonstrating a display without bringing up the entire simulation. For example, to run PFD1 in standalone mode, enter "pfdp" to go to the "miniACFS/pfd/program" directory, and then enter "pfd1_exec a". The "a" argument instructs the process to run in standalone mode, while the "c" argument instructs the process to wait for a client connection. 3.5 Display Configuration The following consists of the available simulation display processes: * Primary Flight Display processes: pfd1_exec, pfd2_exec * Secondary Flight Display processes: sfd1_exec, sfd2_exec, sfd3_exec * Mode Control Panel process: mcp_exec * Control Display Unit processes: cdu1_exec, cdu2_exec * Navigation Display Control Panel processes: ndcp1_exec, ndcp2_exec * Aircraft Control Panel processes: acp1_exec, acp2_exec, acp3_exec, acp4_exec * AST process (Soft Joystick Display Option): ast_exec Activation of any of the aircraft controls displayed on the screen is carried out by using the left mouse button (or optional touchscreen). The display windows can be "popped" by pressing , "pushed" by pressing , "moved" by pressing , or "iconized" by pressing . Note: The PFD and SFD displays do not currently support window refreshing. Display processes can be repositioned or resized by modifying the process configuration file (ex. "miniACFS/pfd/data/pfd_config.dat"). For processes which display aircraft controls, the configuration file also contains a "sound_on" option which, when invoked, enables a "click" sound to provide aural feedback on mouse button actions. Note: Running a display process in standalone mode prints the window position upon shutdown. 3.6 Command Line Entries Various commands can be input on the command line. Typing 'help' at the command line produces the following command list: Available Commands ru - Run simulation fr - Freeze simulation re - Reset simulation ex - Exit simulation qu - Exit simulation co <>- Records comment <> to data collection sf # - Sets speed factor to # wd # - Sets wind direction to # (deg) ws # - Sets wind speed to # (knots) tb # - Sets turbulence magnitude to # (0-9) msg# - Where msg# is # of a canned datalink message imp - Allows entry of impromptu uplink message cl - Clear current message hi - Print message history help - to see the command list 4. Scenario Construction The miniACFS uses files for configuring an experiment run. 4.1 Initial Positions (IP) Files containing flight initial position information are stored in the "miniACFS/acfs/scenario" directory. These files may also contain condition based event triggers, such as aircraft malfunctions. The miniACFS can be initialized on the ground or in the air. An example of a scenario file containing an initial position on the ground is as follows: !******************************************************************* ! BASE SCENARIO ! A/C ON GROUND ! SFO END RUNWAY 28R !****************************************************************** !****************************************************************** ! Event: None. !****************************************************************** LEG [ AC_IC: [ CARGO_WEIGHT: 42638.0, PAYLOAD_FILL_RATE: 0.0, AUTO_PAYLOAD_FILL: 0, LEFT_FUEL: 20000., RIGHT_FUEL: 20000., FUEL_FILL_RATE: 0., AUTO_FUEL_FILL: 0, ALTITUDE: 25.0, SPEED: 0.0, FLAP: 0, HEADING: 282.0, LONGITUDE: -122.356865331532, LATITUDE: 37.6135105267167, TIME_ZULU: 61200, ]; FROM_CITY: !San Francisco [ LONGITUDE: -122.1622807, LATITUDE: 37.53271560, ]; TO_CITY: !Los Angeles [ LONGITUDE: -118.431111, LATITUDE: 33.933306, ]; ];! END OF LEG The altitude, latitude, longitude, heading, velocity and flap setting define the aircraft's state at startup. West longitude is specified by a negative number. TIME-ZULU indicates the simulated time at startup. 4.2 Datalink The miniACFS has a datalink capability in which datalink messages can be sent from the operator window to the cockpit. The operator's datalink interface allows for both constructing messages and sending canned messages. Canned messages are stored in "miniACFS/acfs/data/datalink.dat". This file must be processed, by running "miniACFS/acfs/program/dl_create_db" prior to running the simulation. The miniACFS provides for autoloading datalink messages into the FMC (see CDU Scripts) and the MCP. The current configuration displays the datalink message through the CDU (by pressing the "ATC" button on the CDU). [Note: The SSS does not currently support pages corresponding to the "ATC" (or "DATALINK" button, as a result there is no currently active pilot interface to accessing datalink messages]. 4.3 CDU Scripts The miniACFS provides for autoloading datalink messages into the FMC. The file "miniACFS/fmc/data/cdu_script.dat" is used to emulate button presses for each datalink message. 4.4 ATC Simulation The miniACFS simulation has been used with various air traffic control simulations and pseudo plane generators. The miniACFS communicates with the selected ATC simulation program through the "atc-server". The following are ATC and pseudo plane generators that have been used with the miniACFS: * Sector is an ATC simulation that conforms with current ATC displays. * ASLATC, developed by MIT's Aeronautical Systems Laboratory, is an ATC simulation that contains a robust traffic generator. It can be used to generate pseudo aircraft for the miniACFS simulation. * CTAS, the Center Tracon Automation System, is a system being developed at Ames that is considered a next generation ATC system. 4.5 Data Collection During a run, data can be collected to record selected aircraft state and pilot action variables. The amount and rate of data collected can be easily tailored to an experiment by modifying the date collection file, "miniACFS/acfs/work/dcs/dcs_exec.c", and then rebuilding the main acfs (or modsch) process [see programmer's guide]. The output file is stored in the "miniACFS/acfs/output" directory. The filename is in the format "DC_MMDDYY_HHMM.S#" where "MMDDYY" is the month, day and year, "HHMM" is the time in hours and minutes, and "#" is the subject number entered in when starting the simulation (ex. "DC_020597_0938.S01"). 5. Flying Examples 5.1 Programming the miniACFS FMS 1. Go to RTE page. 2. Enter COMPANY RTE (ex. type "SFOLAX01J" into the scratchpad, then press 2L). 3. Go to PERF INIT page (ex. press INIT REF, then press 6L and then press 3L). 4. Enter ZFW (i.e. zero fuel weight) (ex. type "160" into the scratchpad, then press 3L). 5. Enter RESERVES (ex. type "5" into the scratchpad, then press 4L). 6. Go to DEPARR page. 7. Go to the DEPARTURES page (ex. press 1L). 8. Select the PORTE9 departure (ex. press 2L). 9. Select the transition AVE (ex. press 2L). 10. Select Runway 28R (ex. press 1R). 11. Go to RTE page. 12. Activate the flight plan (ex. press 6R from RTE page). 10. Execute the flight plan (ex. press EXEC button). 5.2 Programming the SSS FMS 1. Go to POS INIT page (ex. press 6R on IDENT page). 2. Enter the LAST POS (i.e. last position) into the SET INS POS (ex. press 1R then press 4R). 3. Go to RTE page (ex. press 6R on POS INIT page). 4. Enter COMPANY RTE (ex. type "KSFOKLAX001" into the scratchpad, then press 2L). 5. Go to PERF page (ex. press 6R on RTE page). 6. Enter ZFW (i.e. zero fuel weight) (ex. type "160" into the scratchpad, then press 3L). 7. Enter RESERVES (ex. type "5" into the scratchpad, then press 4L). 8. Go to TAKEOFF page (ex. press 6R twice from PERF page). 9. Enter FLAP (i.e. takeoff flaps) (ex. press "10" into the scratchpad, then press 1L). 10. Go to RTE page (ex. press 6R from TAKEOFF page). 11. Activate the flight plan (ex. press 6R from RTE page). 12. Execute the flight plan (ex. press EXEC button). 5.3 Taking Off 1. Set landing gear down. 2. Set flaps (ex. 15). 3. Set target speed (ex. 180). 4. Set target altitude (ex. 27000). 5. Turn the left flight director on (ex. flip left F/D switch). 6. Turn the autothrottles on (ex. flip A/T switch). 7. Select THR mode. 8. At takeoff speed, pull back on the joystick. Note: Joystick options include a graphical "soft" joystick display or a hardware "flybox" joystick. For simulation without a joystick, select CMDC (to engage autopilot) and then select FLCH (for flight level change). 9. When a positive rate of climb has been established, raise the gear. 10. To engage the FMS, select LNAV and VNAV buttons. 11. Raise flaps according to desired flap schedule.