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 System (FMS). 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. 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 System (FMS). * 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. For more information regarding the SSS and miniACFS simulators see "http://olias.arc.nasa.gov/~johnk/sss/sss.html". 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 can also 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 sample.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/sample.cshrc file for example). 6. Modify the /etc/services file to include the following services: # # miniACFS 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 sfd4-server 7230/tcp # ECL SFD4 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 fms-server 7600/tcp # ECL FMS service cds-server 7605/tcp # ECL CDS service cdu1-server 7610/tcp # ECL CDU1 service cdu2-server 7615/tcp # ECL CDU2 service audio1-server 7640/tcp # ECL AUDIO1 service audio2-server 7650/tcp # ECL AUDIO2 service dts-server 7700/tcp # TP DTS service dd-server 7710/tcp # TP DD service # PACS/CTAS/SECTOR/ASLATC Services atc-server 7020/tcp # new CTAS??? ctas-server 101101/tcp # CTAS communications manager aslatc-server 7030/tcp sector-server 7040/tcp monitor-server 7045/tcp (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 run on either a single or distributed SGI workstations. To run on more than one machine: 1. Modify the "LOGICALS" file in "miniACFS/LOGICALS". "LOCALHOST" is the keyword which specifies that the server host name is the same as the host name. 2. Configure the "miniACFS/command/sim" (or "sim.") script to run the server scripts (ex. "serv_pfd1") of the desired processes, with the configuration file name (ex. "pfd_config.dat") as an optional argument (ex. "serv_pfd1 pfd_config.dat"). The server scripts will run the corresponding process (ex. "pfd1_exec") on the host specified in the "LOGICALS" file. [Note: Running on remote hosts will require configuration of the "~/.rhosts" file]. 3. To configure the "miniACFS/command/sim" (or "sim.") script to run on dual-headed machines, set the DISPLAY environment variable (ex "setenv DISPLAY 0.0") prior to running the server script. The server script will pass the currently defined DISPLAY variable to the host selected in the "LOGICALS" file. 3. Configure the "miniACFS/command/cleanup" (or "cleanup.") script to use remote shell commands for cleaning up the server processes in the event of an abnormal shutdown. The miniACFS is configured to use either a graphical or hardware joystick. To use the "flybox" hardware joystick: 1. Turn on the "flybox_enable" option and turn off the "softstick_enable" option in "miniACFS/ast/data/ast_config.dat". 2. Plug the serial connection into port #1 or #2 (or both if using two joysticks for dual cockpit operation). [Note: The following requires root privilege]. If using port 1 (SGI alt console), you may need to: a. Turn off the "respawn" option in "/etc/inittab". For example, change: t1:23:respawn:/sbin/getty ttyd1 co_9600 # alt console to: t1:23:off:/sbin/getty ttyd1 co_9600 # alt console b. Type in "init q" to activate change in inittab (or reboot). c. Change the permission of /dev/ttyd1 to 666. For example: chmod 666 /dev/ttyd1 3. For additional information on the "FlyBox", contact BG Systems: 3272 Bryant Street, Palo Alto, CA 94306 Tel (415) 858-2628, Fax (415) 858-2685, http://www.bgsystems.com/products/FlyBox.html 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" (or "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. To run with a scenario file, type in "sim" followed by the scenario file name (ex. "sim ksfo28r.dat"). To run with a default IP point, type in "sim" followed by the default IP number (ex. "sim 1"). Note: Running "sim" without specifying a scenario file name, or a default IP number, results in simulation intializing at a default IP point (currently default IP number 11). 4. Wait for "Enter ru(n) >" prompt. 5. OPTIONAL: Setting the "Subject Number" and "Exp. Condition". If you wish to set the "Subject Number", enter "sn" followed by the subject number (ex. "sn 1"). Note: The "Subject Number" appears in the data collection output file. If you wish to set the "Exp. Condition", enter "ec" followed by the experiment condition number (ex. "ec 14"). Note: The "Exp. Condition" enables different software options for various experimental conditions (default is 0). 6. Type "run". 3.2 Shutting Down the Simulation A response of "ex" (or "exit") to the "Input>" 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 "Input>" 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 primary simulation display processes: * Primary Flight Display processes: pfd1_exec, pfd2_exec * Secondary Flight Display processes: sfd1_exec, sfd2_exec, sfd3_exec, sfd4_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 . Display processes can be repositioned or resized by modifying the process configuration file specified in the "sim" command. For example, the command "serv_pfd1 pfd_config.dat" specifies that the configuration file "miniACFS/pfd/data/pfd_config.dat" is to be used to set the configurable display variables for "pfd1_exec". If no configuration file is specified, the default display parameters are used. 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 fail - pca surface failure ip # - Sets initial position to # (or scenario file name) sn # - Sets subject number to # ec # - Sets experimental condition to # 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 message imp - Allows entry of impromptu uplink message cl - Clear current message cc - Ctas Connection 1: on 0: off ds - Datalink Setup 0: cdu only 1: cdu + ddr hi - Print message history help - to see this message 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/host/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 [ SIM_IC: [ INIT_MAGVAR: 16.0, ]; 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, CALL_SIGN: "NASA12", FMS_INIT_SCRIPT: 200, ]; FROM_CITY: !San Francisco [ LONGITUDE: -122.1622807, LATITUDE: 37.53271560, ]; TO_CITY: !Los Angeles [ LONGITUDE: -118.431111, LATITUDE: 33.933306, ]; ];! END OF LEG An example of a scenario file containing an initial position in the air (which also contains optional ATC information) is as follows: !***************************************************** ! CTAS 1 Scenario - Northeast of CEDAR CREEK ! !**************************************************** ! ! LEG 1 ! LEG [ SIM_IC: [ INIT_MAGVAR: 8.0, SECTOR_ACID: 62, SECTOR_CTRL: 62, ]; 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: 33000.0, SPEED: 280.0, FLAP: 0.0, HEADING: 82.0, LONGITUDE: -99.2, LATITUDE: 32.2, CALL_SIGN: "NASA12", FMS_INIT_SCRIPT: 100, ]; FROM_CITY: [ LONGITUDE: -122.37333, LATITUDE: 37.61833, ]; TO_CITY: [ LONGITUDE: -97.041453, LATITUDE: 32.896432, ]; ];! END OF LEG 1 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. If TIME-ZULU is not specified, the current time is used. 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/host/data/datalink.dat". This file must be processed by running "dl_create_db" , in the "miniACFS/host/program" directory, prior to running the simulation. The miniACFS provides for the autoloading of datalink messages into the FMS (see CDU Scripts) and the MCP. The current configuration accesses the datalink message through the CDU (by pressing the "ATC" button on the CDU). [Note: The SSS accesses datalink messages by pressing the "DATALINK" button on the CDU]. Prior to receiving datalink messages, logon to an ATC system. 1. Go to ATC page (ex. press ATC) [or DATALINK for the SSS]. 2. Enter FLT NO (ex. type "NASA1" into the scratchpad, then press 2L). 3. Enter LOGON TO (ex. type "EXP", for experimental, into the scratchpad, then press L1). 4. Select the SEND prompt to send the logon datalink message (ex. press R1). 4.3 CDU Scripts The miniACFS provides for autoloading datalink messages into the FMS. The file "miniACFS/fms/data/cdu_script.dat" is used to emulate button presses for each datalink message. The "FMS_INIT_SCRIPT" field, in the scenario file, can to used to run the specified autoloading script at initialization. 4.4 ATC Simulation The miniACFS simulation has been used with various air traffic control simulations and pseudo plane generators. The miniACFS can be made to communicate with select ATC simulation programs through the "atc-server". The miniACFS can also be made to communicate with other miniACFS simulations by specifying "MULTICAST" in place of the selected "atc-server". The following ATC and pseudo plane generators 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. * PAS, the Pseudo Aircraft System, is a pseudo plane generator which is normally used with CTAS. 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/host/work/dcs/dcs_exec.c", and then rebuilding the main host (or modsch) process [see programmer's guide]. The output file is stored in the "miniACFS/host/output" directory. The filename is in the format "DC_MMDDYY_HHMM." where "MMDDYY" is the month, day and year, and "HHMM" is the time in hours and minutes. 5. Flying Examples The following is an example for programming the FMS, after initializing the simulation with the "ksfo28r" scenario file, along with a sample procedure for taking off. 5.1 Programming the miniACFS FMS 1. Go to RTE page (ex. press RTE). 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 (ex. press DEP ARR). 7. Go to the DEPARTURES page (ex. press 1L). 8. Select the PORTE1 departure (ex. press NEXT PAGE, then press 3L). 9. Select the transition AVE (ex. press 2L). 10. Select Runway 28R (ex. press 2R). 11. Go to RTE page (ex. press RTE). 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 "25" 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. 25). 3. Set target speed (ex. 145). 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 flap schedule.