Abstract:
Inflight training apparatus is provided for military aircraft radar warning receivers that is plug compatible with the standard receiver processor to provide realistic training scenarios responsive to pilot maneuvering while recording the pilot&#39;s actions for post flight analysis. The training apparatus includes inertial navigation equipment to indicate position and attitude of the training aircraft, a memory in which is stored position and types of enemy radars and threats that would be encountered on an actual combat mission, and a processor which receives inputs from the inertial navigation equipment, memory and radar warning receiver control panel to control the standard receiver video display to generate the training scenario thereon. The training display moves, rotates, and is blanked simulating the effects of aircraft altitude and attitude as the aircraft turns, banks and performs other maneuvers which may be navigational or evasive maneuvers.

Description:
FIELD OF THE INVENTION 
     This invention relates in general to aircraft training systems. 
     BACKGROUND OF THE INVENTION 
     In the prior art, equipment for providing training for particular aircraft systems have generally been simulators located on the ground at training facility locations. There are only a few training locations at which a limited number of expensive simulators are located and these locations are remote from most operational aircraft bases which are located all over the world. In addition to there being an insufficient number of simulators to provide frequent training to all air crew members, the aircraft crew members to be trained must leave their operations units in order to receive such training. In many cases reduction in aircrew manpower for even a few days of training is unacceptable. 
     Prior art ground based simulators can provide only a small amount of realism and cannot provide the realism of an actual flight. 
     Some inflight training arrangements are available at one or two training ranges where the air crewmen fly over the training range and receive realistic radar warning displays with inflight realism. Inflight training range training has limitations, however, in that the air crewmen must leave their operations bases, all air crewmen cannot receive frequent training, the training scenario is limited and expensive to change, and the training scenario is relatively short unlike actual combat missions. 
     Thus, existing ground based aircraft training simulators and inflight training range facilities both have limitations which limit their usefulness. 
     SUMMARY OF THE INVENTION 
     The present invention solves the aforementioned shortcomings of the prior art inflight training range facilities and ground located simulator training systems. The present invention permits frequent inflight training of air crewmen while at their assigned airbases. Further, the inflight training scenarios can simulate actual combat missions both in duration and the threats experienced. In addition, the reactions of the pilot and/or other air crewmen in response to the training scenario are recorded for future analysis of their performance. Analysis permits improving the performance of the air crewmen. 
     More particularly, the embodiment of the present invention disclosed herein is a military combat aircraft radar warning receiver simulator which is used to provide inflight training with realistic training scenarios which may include scenarios that duplicate those to be encountered on actual combat or reconnaissance missions. In operation the radar warning receiver processor is removed from the aircraft and the simulator installed in its place. The simulator is plug compatible with the existing radar warning receiver processor thereby minimizing modifications to the aircraft. This permits frequent training of aircraft crewmen at their operations bases in their own combat aircraft during routine flights and eliminates the need for having to go to remote training facilities. 
     The aircrew whose aircraft is quickly and easily equipped with a preprogrammed radar warning receiver simulator initialize the simulator, take off, and fly to a predetermined point over friendly territory where the simulator is then enabled. The initialization process causes the simulator to function as if the location at which the simulator is initialized is the airbase where the aircraft is either stationed or operating from. The purpose is to assure that during the training flight the aircraft doesn&#39;t actually enter enemy airspace. At airbase locations such as in the United States, the simulator may be initialized before take-off. No matter which case, the scenario on the radar warning receiver video display is the same as if the aircraft was flown from its operations base on an actual combat or reconnaissance mission. 
     As the simulator equipped aircraft is flown over its planned training course simulating a combat or reconnaissance flight as defined by direction distance, time and altitude, the location of simulated enemy search, threat and aircraft radars are appropriately displayed on the receiver video display. As the training aircraft travels straight, turns or performs other maneuvers, the display of the radars on the video display changes accordingly in a realistic manner. 
     The simulator may include an altimeter to sense the aircraft altitude and includes inertial navigation equipment to sense the location and attitude of the aircraft. Data from these elements within the simulator can be used by the computer located in the simulator to provide realistic terrain blanking dependent on the aircraft altitude and provides display rotation and blanking as the aircraft turns, rolls and performs evasive maneuvers. The display blanking may be simulating antenna pattern dead spots around the aircraft. 
     As is well known, the aircraft pilot and crew member operating the radar warning receiver respond to the radar warning display and perform course changes, evasive maneuvers and activate appropriate counter measures for self protection. These actions are recorded and analyzed subsequent to the training flight. The analysis permits improving the responses and techniques used to evade threats and thereby improve the chances of surviving actual combat and reconnaissance missions. 
    
    
     The invention will be more readily understood from the following description of an illustrative embodiment of the invention when read with reference to the accompanying drawing in which: 
     FIG. 1 is a detailed block diagram of our unique radar warning simulator; 
     FIG. 2 is an overall block diagram of the system computer program; and 
     FIGS. 3A through 3F are the program flow charts for the system computer program. 
    
    
     GENERAL DESCRIPTION 
     The Radar Warning Receiver (RWR) of the preferred embodiment of the present invention is found in military combat aircraft. The RWR receives and processes radar signals from such threats as search radars, anti aircraft radar, missile site radar and intercept aircraft radar and provides a video display identifying the direction, type of radar thereby identifying the type of threat, and the approximate range of the radar from the aircraft. The pilot and/or other cooperating air crewmen, depending on the type of aircraft, take evasive maneuvers, alter flight path and utilize appropriate passive or active countermeasures such as chaff, flares and electronic countermeasures jammers in response to the audio and video output from the RWR. Such actions increase the chances of survival of the aircraft and its crew in a combat or reconnaissance environment. 
     Due to the importance of the RWR, it is important that the pilot and other air crewmen operating the RWR must receive frequent and realistic training both of which are not readily available with ground based simulators and inflight training over training ranges, both of which are usually remote from the operations bases. 
     With the preferred embodiment of the invention disclosed herein, an inflight RWR simulator is provided which is relatively small and self-contained; is easily programmed on the ground for an infinite variety of training scenarios which may duplicate combat and reconnaissance missions in complexity and time duration; is utilized at operations bases within the aircraft; and is used to provide frequent, realistic inflight training. The preprogrammed RWR simulator is quickly and easily exchanged for the plug-in processor module of the RWR equipment within the aircraft and the crew receives training in their own assigned aircraft without being temporarily reassigned to remote bases for training. 
     Once the plug compatible pre-programmed RWR simulator is installed in an aircraft, the RWR simulator is either initialized before takeoff or subsequent to takeoff at some point remote from the airbase. In either case, initialization causes the simulator to commence functioning as if the aircraft were just leaving the airbase. The simulator may be initialized at an airborne point remote from the base to assure that during the simulated mission the aircraft does not pass over unfriendly or enemy territory. This is not a problem when starting the simulated training mission from airbases in the United States where the simulator may be initialized before takeoff. However, at airbases close to unfriendly or hostile countries, the aircraft must be flown some distance away from the hostile country before the simulator is initialized to assure that the aircraft does not pass over hostile territory. This must be done as the aircraft would be flying course headings for given periods of time as if the aircraft had taken off from the airbase on a mission over hostile territory. During the training flight various types of search, threat and intercept aircraft radar are displayed on the RWR video screen and the RWR equipment is operated in the same manner as if the aircraft were on an actual reconnaissance or combat mission. In a well known manner, the pilot of the aircraft, and other cooperating crewmen will make course changes, altitude changes, take evasive maneuvers and utilize on-board countermeasures equipment just as they would do during an actual mission to prevent being shot down. The only difference is that flares and chaff most likely will not be ejected from the aircraft. The video and audio outputs of the RWR control equipment on the aircraft in response to the simulator can be realistic to the point that blanking occurs for terrain blanking depending upon the altitude of the aircraft and blanking due to antenna pattern dead spots around the aircraft depending upon the attitude of the aircraft as it flies level or undergoes various evasive or other maneuvers. In addition, the display will change and appropriate audio signals will be provided to the operator reflecting the change in received radar signal status of missile radar sites in their acquisition, firing and homing modes of operation. 
     Actions of the pilot and other air crewmen responsive to the training scenario are recorded for evaluation after the training flight. In this manner techniques may be developed and the crews develop a high degree of proficiency in the utilization of their defensive equipment to thereby maximize their chances of surviving actual reconnaissance and combat missions. 
     To prepare a training scenario, a file is placed in a memory of the simulator for the flight to be simulated. Each threat radar has many entries in the memory file. These entries indicate the type of threat radars, the distances from the point at which the RWR simulator is initialized to each radar, how close the aircraft must be to the radar before the radar is turned on, changes in radar operating mode or frequency, altitude the aircraft must be at before certain weapons systems associated with specific radars are utilized, terrain blanking information, antenna dead spot information, audible sounds generated for different threat radars reflecting their operational status and other similar information. Internal to the simulator is a self-contained inertial navigation system, altimeter, a microprocesor and the memory containing the training scenario file and the operational program for the simulator. The inertial navigation system indicates the position of the aircraft with respect to the earth to the processor. The altimeter indicates the altitude of the aircraft to the processor. The processor relates the present position of the aircraft to the position of simulator initialization point and checks the scenario file. Information for threat radars that would be displayed on the RWR video display are utilized to present the appropriate audio and video display signals on the RWR. The display is updated frequently to accurately reflect the motion of the aircraft. The processor also utilizes the inertial guidance system signals when the aircraft is diving, rolling or performing other maneuvers to appropriately change the RWR display just as it would appear in a real non-simulated situation. Further, the processor utilizes the antenna dead spot information and, terrain blanking information then can be stored in memory, as well as aircraft altitude information, to appropriately blank the display of threat radars to accurately simulate blanking. 
     To better understand the description of the system block diagram shown in FIG. 1 and the computer program flow charts shown in the remaining figures, a description of the controls on the RWR must first be given. There are ten buttons or switches, including multiple position rotary switches, on the RWR control panel which are listed and described immediately hereinafter. 
     1. AADefeat--This button is utilized by the RWR operator to either enable or disable the display of radars associated with anti-aircraft weapons systems. This control would typically be used when the combat aircraft is flying at high altitude where conventional low altitude effective anti-aircraft weapons systems are ineffective and the display of their radars would only clutter up the RWR video display. 
     2. Target Separate--In actual operation occasions arise where the RWR display of two or more radars the display of which is overlapped on the RWR video display. While this button is depressed by the RWR operator the overlapped displays of the two or more radar sources is separated so that the operator can determine the type of radars. 
     3. Unknown Enable--In operation the radar warning receiver receives radar signals from various radar types, many of which are identified by the receiver as being threat radars of a specific kind. However, signals may be received from other radars which the receiver cannot identify as being of any type of known threat. These unknown radars will not be shown on the RWR video display unless the Unknown Enable button is operated. 
     4. Priority Switch--This is a two-position switch which causes the RWR receiver to display either the five or sixteen highest priority threat radars. The RWR operator may use this switch to display only the five highest priority radars to avoid possible confusion by having sixteen radars displayed. 
     5. Gate Switch--This switch does not affect the operation of the inflight training system of the present invention so is not described here. 
     6. Test--This is a four-position rotary switch having an off position and the remaining three positions are used to test all lamps on the receiver, put various characters on the video display to assure its operation and a system test checking various computer programs within the system. 
     7. Missile Launch--This button is operated by the equipment operator and causes the RWR to display friendly radars for limited training purposes. 
     8. Altitude Priority--This switch causes the RWR to display all threat radars, threat radars for weapons systems that can only affect the aircraft at high altitudes, or threat radars for weapons systems that can only affect the aircraft at low altitudes. 
     9. Diamond Hand-off--On the RWR video display there is usually a diamond encircling the highest priority threat at any moment in time. As the highest priority threat changes the diamond automatically transfers to the newest highest priority threat. The RWR operator also receives audio signals for the threat so marked by the diamond. When the operator depresses and holds down this button, the diamond moves from one threat radar to another threat radar in descending order of the threat priority at approximately one second intervals. Upon the diamond marking a display of a threat radar of interest, the key is released and the diamond remains marking the threat of interest. Accordingly, an audio tone is provided the operator for the threat of interest. To return the diamond to the highest priority threat, this key is momentarily operated. 
     10. Mode--This is a multi-position rotary switch, one position of which is entitled Priority Open. When the switch is in this position, the following operation is provided. When the RWR operator has placed the previously described Priority Switch in the position such that only the five highest priority threat radars are displayed, if there are more than five threat radars a lamp is lit to inform the operator that there are more than five threats and the operator may then operate the Priority Switch to cause up to sixteen threats to be displayed. A second position of the Mode switch is entitled Search Radar and causes search radars to be displayed at the outer periphery of the display. Other positions of the Mode switch cause the receiver to display only those threats located in front of the aircraft and operating in designated radio frequency bands. Still other positions of the switch are utilized to display the radars for infrared tracking weapons. 
     DETAILED DESCRIPTION 
     Turning now to FIG. 1, therein is shown a detailed block diagram of our novel radar warning receiver training system which is plug compatible with radar warning receiver equipment already existing in combat aircraft. Our novel training apparatus comprises data processing system 10, inertial guidance unit 11, and driver and interface circuit 12 which are physically all contained within a single housing. These three units are described in greater detail hereinafter. 
     Data processing system 10 contains a scenario memory 14 which is a bubble memory that will not lose its stored contents if power to this memory is interrupted. Memory 14 has a training scenario stored therein prior to the warning receiver training apparatus being installed in a combat aircraft for training purposes. As mentioned previously an almost infinite variety of training scenarios may be created to provide realistic training for combat aircrews at their assigned airbases. The complexity of the training scenarios is limited only by the number of storage bits within the memory 14. In addition, as a combat aircraft goes through a training flight utilizing our novel radar warning receiver training equipment, the flight path and maneuvers the aircraft is taken through by the pilot responsive to the training scenario are also recorded in scenario memory 14 to be read out at the end of the training flight for evaluation. 
     Processor 15 is a 16-bit general purpose computer which functions under control of the program stored within program memory 17. Memory 17 is an electronic Programmable Read Only Memory (PROM) well known in the art, which may be erased and reprogrammed with a new program. Utilizing a programmable computer our novel radar warning receiver equipment can be updated to provide training scenarios with increased capability and new types of threats. Random Access Memory  (RAM) 16 is used as a scratch pad memory to temporarily store information being read out of and written into scenario memory 14 and to provide scratch pad memory to processor 15 as it functions under control of the program stored in memory 17. Information and program written into and read out of memories 16 and 17 is coupled to and from processor 15 via buss 18. Flow charts for the program are shown in FIGS. 3A through 3F which are described further in this specification. 
     The program source listing stored in program memory 17 is at the end of this specification and Table A located in this specification just prior to the program source listing is an index that correlates the steps in the program flow charts of FIGS. 3A through 3F with the program source listing. 
     Inertial guidance unit 11 is a commercially available unit containing standard apparatus and provides outputs indicating change in aircraft attitude (δθ X , Y, Z) and change in aircraft velocity (δV X , Y, Z). These outputs are pulse trains representing the attitude and velocity changes in the aircraft body frame. Inertial guidance unit 11 is the key to providing realism with our novel radar warning receiver training apparatus. The inertial guidance equipment senses the aircraft&#39;s movements during the training flight and provides information which is processed with data processing system 10 to change the radar warning receiver video display to properly reflect aircraft motion during the training flight. In addition, it is the information from the inertial guidance unit 11 that is stored in scenario memory 14 for evaluation of the aircraft flight path and evasive maneuvering following the training flight. 
     Within inertial guidance unit 11 are three sets of gyros 22 and accelerometers 23 that sense angular rates and acceleration about the X, Y and Z Cartesian coordinates. As motion of the aircraft is sensed by inertial guidance unit 11, the error signals from gyros 22 and accelerometers 23 are applied to gyro-loop electronics 24 which attempts to hold the accelerometer pendulum and gyro gimbal nulled in a manner well known in the art. These signals are also used as the analog rate signals within unit 11. Accelerometer integrator 25 and gyro integrator 26 convert the respective analog signals input thereto from units 23 and 24 into digital pulse trains that are input to comparator logic 27. Comparator logic circuit 27 adds the pulse trains from integrators 25 and 26 to a 12.8 KHz reference signal. The 12.8 KHz reference signal is needed to provide an accurate time base for the data sampling interval. These pulse trains then represent the incremental changes in attitude δθ X , Y, Z and incremental changes in velocity δV X , Y, Z experienced by the inertial guidance platform. 
     Driver and interface circuit 12 functions as the interface between data processing 10, inertial guidance unit 11, and radar warning receiver 13. Acting in many ways like the radar warning receiver processor which our novel training equipment replaces on a plug compatible basis, circuits within driver and interface circuit 12 generate the characters seen on the radar warning display and provide the necessary voltages to drive the cathode ray tube of receiver 13. Other circuits temporarily store information from the inertial guidance unit 11 to be input to data processing system 10. In addition, information regarding the status of the control buttons and switches on the radar warning receiver control panel are applied via driver interface circuit 12 to data processing system 10 as software interrupts; and lamps on the control panel of receiver 13 are lit under control of data processing system 10 via driver interface circuit 12. 
     Processor 15 operates on an interrupt basis in a manner well known in the art. All interrrupts are applied to processor 15 via input lead 19 from service controller 35 displayed via interface circuit 12. Service controller 35 performs two functions. The first of these functions is to take a 5 MHz input from clock 28 and divide same by 10 to provide the 2 microsecond time clock signals used to control the system. The second function is to receive all interrupt information from inertial guidance unit 11 and radar warning receiver 13. The order of priority of these interrupts is also determined by controller 35 which causes processor 15 to be interrupted in accordance with predetermined interrupt priorities. The order of interrupt priority from the highest priority to the lowest priority for the RWR control panel only is: (1) Display Information, (2) New Information for Display, (3) Read Sensor Data, (4) Switch Interrupts, (5) Information to Lamps, and (6) Sensor Data Available. 
     Interrupts from inertial guidance unit 11 are applied via the interface portion of interface and data adder 36 and service controller 35 to processor 15. Interrupt information from radar warning receiver 13 is information indicating the status of the switches on the receiver control panel within the aircraft. As the switches are operated each sends an indication to data latch interface 37 within interface circuit 12. The switch or control information is stored within data latch interface 37 and is then input to service controller 35 as shown. Service control 35 analyzes all received interrupts and orders them for priority input to processor 15 as mentioned previously. 
     In operation RAM 32 performs two basic functions. First, RAM 32 is used to store inertial sensor information applied thereto via interface 36 from guidance unit 11 to be read out to processor 15 which uses the sensor information to update the radar warning receiver 13 display. After processor 15 processes sensor information stored in RAM 32 under control of the program stored in program memory 17, processor 15 generates signals for an updated display on the cathode ray tube (CRT) of radar warning receiver 13 and stores same in another portion of RAM 32. The display information stored in RAM 32 by processor 15 is periodically read out to update the display on receiver 13. To perform this update function, processor 15 knows in what address locations of RAM 32 are stored the display information to be updated. Processor 15 first generates the address in RAM 32 for the updated information and applies same via leads 21 to address buffer 29. Address buffer 29 applies this address via address buss 45 to addressing inputs of RAM 32. With specific address locations within RAM 32 being accessed, the updated information is applied via data buss 20 to be stored in the particular memory locations within RAM 32. 
     To periodically update the video display of radar warning receiver 13, RAM 32 has its display information periodically read out therefrom under the control of X-Y address counter 30 and ISA address counter 31 both of which are driven by clock 28. Counters 30 and 31 typically generate sequential addresses which read out all display information stored within RAM 32. The first information to be read out of RAM 32 is a binary word indicating the specific location on the video display of receiver 13 at which an alpha-numeric or other symbol is to be displayed. This position information read out of RAM 32 is applied via data buss 20 to be stored within X-Y position latches 38 which then input same to adder 39. Next the specific alpha-numeric or other character that is to be displayed at the specific X-Y location is read out of RAM 32 and input to Character PROM 34. At the same time Address Generator 33 is responsive to counts from clock 28 to sequentially and cyclically energize each of the alpha-numeric or other characters stored within PROM 34. Only that alpha-numeric or other character identified by the information also input to PROM 34 from RAM 32 will cause a digital code to be output from PROM 34 to adder 39 identifying the character. Adder 39 is responsive to both the information input to it from PROM 34 indicating the character to be displayed, and from the X-Y position latches 38 indicating the position on the receiver 13 video display at which the selected characters are to be displayed to generate another digital signal which when applied respectively to digital to analog converters 40 and 41, generates the X and Y deflection signals for the CRT display of receiver 13. In this manner, the selected character is displayed at the appropriate location on the CRT. This process is repeated for each character displayed on the CRT of receiver 13 and occurs cyclically for refresh purposes. As the aircraft performs maneuvers, or just travels in a straight line, its change in position is sensed by inertial guidance unit 11 and processor 15 responds to these changes in information to change the information stored in RAM 32 to appropriately change the display on the CRT of receiver 13. In this manner the operator of the RWR in the aircraft receives a very realistic video display which accurately simulates real operations. 
     At the same time, processor 15 is responsive to interrupts applied via lead 19, service controller 35 and data latch interface 37 indicating the state of switches and controls on the control panel of radar warning receiver 13 to display only particular threats, to light particular lamps on the panel of receiver 13 and to provide particular audio tones to the receiver operator. 
     As RAM 32 is cyclically read out under the control of counters 30 and 31, information in this memory is read out. As information regarding a particular character to be displayed is read out of RAM 32, the code identifying the particular character is applied to character PROM 34 and the position information is stored in X-Y position latches 38. The position information stored in latches 38 is input to adder 39. Character PROM 34 responds both to the character identifying signal input thereto from RAM 32 and a cyclical count from address generator 33 to generate the signals necessary to display the particular character on the CRT of radar warning receiver 13. These character display signals are also input to adder 39 which sums this signal with the position information. The output from adder 39 is via digital to analog converters 40 and 41 and then applied to the X and Y CRT deflection circuits in receiver 13. The result is that the particular character is displayed at the appropriate location on the face of the CRT of receiver 13. 
     During a training flight the flight path taken by the aircraft, including any evasive maneuvers, is reflected by signals output from inertial guidance unit 11. The signals from unit 11 not only are used by processor 15 as previously described and receiver 13, but also loads this information into an assigned portion of scenario memory 14. Subsequent to the training flight, the plug in piece of apparatus comprising data processing system 10, inertial guidance unit 11 and display drive and interface circuit 12 which are plug compatible with the standard radar warning receiver equipment which it replaces, is taken out of the aircraft and the flight data stored within scenario memory 14 during the training flight is read out and analyzed to provide information to the pilot as to the particular maneuvers and flight path he took the aircraft through during the training flight. In this manner the pilot is able to sharpen his combat flying skills and increase his chances for survival in actual combat. 
     Turning now to FIG. 2, therein is shown a general block diagram of the computer program stored in program memory 17 and utilized by processor 15. The more detailed flow charts for the program are shown in FIGS. 3A through 3F which are described further in this specification. As may be seen in FIG. 2, the computer program is broken into four major portions entitled Background Processing, Real Time Clock Processing, Control Panel Processing, and Inertial Sensor Processing. As the name Control Panel Processing implies, this portion of the computer program processes information received from the radar warning receiver control panel via operated switches and returns signals to the control panel to light appropriate lamps. The Inertial Sensor Processing portion of the computer program processes the inputs received from inertial guidance unit 11. As noted on FIG. 2 by the arrow with the title Increasing Processor Priority, the Inertial Sensor Processing has the highest priority and will preempt or interrupt all other program operations for processing by processor 15. Control Panel Processing is the next highest priority, Real Time Clock Processing has the third highest priority and Background Processing has the lowest priority. As noted on FIG. 2, the jagged lines between the four major blocks of computer programming denote program interrupts. 
     Basically, the background processing software arranges scenario threats in a threat priority order and does what processing is necessary to appropriately move scenario interceptor aircraft and other threats on the video display of the radar warning receiver. The real time clock processing software periodically updates the video display and reviews the priority threat list in view of the priority set by the operator of the radar warning receiver using controls thereon. The control panel processing portion of the program responds to the operation of controls and switches on the control panel of the radar warning receiver to cause other portions of the computer program to perform such functions as suppressing the display of unknown radar sources, suppressing the display of anti-aircraft artillery radar sources when the aircraft is at a high enough altitude to be outside the effective range and to separate the display of two targets that are so close as to be overlayed on the display. The control panel processing also handles lighting of lamps on the radar warning receiver control panel and provides an audio tone to the receiver operator for such functions as when a missile is launched against the aircraft. The inertial sensor processing program processes the outputs from inertial guidance unit 11 to compensate inertial sensor data for known errors and to compute rotation matrices keeping track of the aircraft attitude with relationship to the center of the earth. There is a fifth portion of the scenario program entitled Initialize Software which is utilized only at the beginning of the training scenario and allows the inertial guidance unit 11 to locate the spin axis of the earth relative to the attitude of the aircraft and to get the latitude of the aircraft. This operation is slightly different than the customary gyro compassing performed in other inertial navigational systems. 
     FIGS. 3A through 3F show more detailed flow charts for the computer program stored within memory 17 of data processing system 10. FIG. 3A shows the Background Processing flow chart which includes a block entitled &#34;Calculate New AI Position&#34; 47. This latter block is disclosed in greater detail in FIG. 3E. FIG. 3B is the real time clock processing flow chart and FIG. 3C is the control panel processing flow chart. FIG. 3D is the inertial processing flow chart wherein is a block entitled &#34;Compute Gravity Vector Components&#34; 130, which block is disclosed in further detail in FIG. 3F and entitled &#34;Gravity Routine.&#34; 
     Table A, which is located further in this specification immediately prior to the computer program listing itself, is a formal index which shows the correlation between the computer program listing and the flow chart diagram of FIG. 2. For instance, referring to Table A, that part of the computer program associated with the block on FIG. 2 entitled &#34;Initialize Software&#34; is first shown. Thereafter are the computer program subheadings under each of the blocks of FIG. 2. For example, under &#34;Examine Threat&#34; is seen IDLE, and under &#34;Move Threat If Necessary&#34; is seen MOVE and SQRT. This correlation may be seen all the way throughout Table A. 
     Turning now to FIG. 3A, therein is shown the detailed program flow chart for the background processing. From FIG. 2 it may be seen that the background processing software has the lowest processor priority and, accordingly, the processing of the background processing software is often interrupted by other portions of the program. When all interrupt processing has been completed then microprocessor 15 returns to the background processing software. As the background processing software is often interrupted, and the real time clock processing and control panel processing software may also be interrupted by the inertial sensor processing software which has a higher priority, microprocessor 15 functions in a manner that when its processing of some software is interrupted the instructions and other data stored in registers at the moment of interrupt are stored to be recalled to continue the processing upon return from interrupt. 
     The purpose of the background processing software is to maintain and periodically update a threat radar list in a priority order. As microprocessor 15 processes background processing software it works its way down the threat radar list from highest priority to lowest priority. The highest priority threat is at the top of the list while the lowest priority threat is at the bottom of the list. The priority of a threat radar is determined by a numerical value called the range ratio and as the range ratio value decreases the priority of the threat radar increases. The value of the range ratio is computed by microprocessor 15 from an equation wherein the range ratio equals the slant range divided by the effective weapons range. From the information stored in scenario memory 14 the slant range to each threat radar is computed and then compared to the effective weapon range of each threat to get the range ratio. Microprocessor 15 organizes a threat priority list to keep the highest priority threat first. This updating is necessary to account for the flight path of the aircraft on which is located the radar warning receiver and also the movement of aircraft interceptors having threat radars. 
     The background processing software is shown in FIGS. 3A and 3E with the flow chart shown in FIG. 3E being an expansion of the flow chart block entitled &#34;Calculate New AI Position&#34; 47 in FIG. 3A. The block diagram of the software starts at IDLE and the program represented by block 45 points to the highest priority threat. Thereafter, the threat list is analyzed in descending order of threat priority and the threat priority list is reordered as threat priorities change as determined by the calculation of the range ratio of each threat. 
     Once the highest priority threat is determined by block 45, the program represented by block 46 first determines whether the threat is an aircraft interceptor (AI) the source position of which will continuously change. If the threat is not an aircraft interceptor the program goes directly to block 48 to calculate the updated range ratio of the highest priority threat, which range ratio will change as the training aircraft changes position on the face of the earth. In the event that the highest priority threat is an aircraft interceptor we exit from block 46 through that portion of the program represented by block 47 wherein the new position of the aircraft interceptor is calculated. This is necessary as the aircraft interceptor is continuously changing position. Microprocessor 15 uses the updated aircraft interceptor position to determine if the aircraft interceptor has passed the training aircraft and is no longer a threat. In this event the aircraft interceptor is no longer a threat and is removed from the threat table. Once the new position of the aircraft interceptor is calculated, the new range ratio of the aircraft interceptor is calculated by that portion of the program represented by block 48 in the flow chart. 
     Once the updated range ratio of the highest priority threat is calculated as just described, we pass via IDLE 2 to block 49 which points to the next lowest priority threat within the threat table. Block 50 represents that portion of the software which determines whether the next lowest priority threat pointer points to a threat which is past the end of the priority list. If the answer to this question is &#34;yes&#34;, the software returns via IDLE to blocks 45 through 48 to perform the functions just described restarting at the beginning of the threat table. 
     In the event that the next lowest priority threat is not past the end of the priority list, the software progresses to make a decision as reflected in block 51 as to whether or not the next lowest priority threat is an aircraft interceptor. In the event that this next lowest priority threat is not an aircraft interceptor, the software continues to block 53 to calculate the range ratio. 
     In the event that the next lowest priority is an aircraft interceptor, we go to block 52 where the new position of the aircraft interceptor (next lowest priority threat) is calculated before passing on to block 53 to again calculate the range ratio. When the next lowest priority threat is not an aircraft interceptor the program bypasses block 52. The functions performed in blocks 51 through 53 are identical to those functions performed by blocks 46 through 48 previously described. Once the range ratio is calculated for the next lowest priority threat we enter that portion of the software represented by block 54 wherein the range ratio for the next lowest priority threat is compared to the range ratio of the highest priority threat. In the event that the range ratio of the next lower priority threat is not greater than or equal to the range ratio of the previously processed higher priority threat we pass via IDLE 3 to block 56 to determine if the threat that was previously analyzed was the highest priority threat. If the previously processed threat is not the highest priority threat, block 57 is bypassed to go to block 58 which causes microprocessor 15 to reorder the threat table interchanging the lower priority threat R5 with the previously higher priority threat R4. If the previously processed threat R4 is the highest priority threat the program goes to block 57 which causes microprocessor 15 to now place the highest priority pointer on threat R5 instead of threat R4 before continuing on to block 58 to interchange threats R4 and R5 in the threat list. Once this is done we pass to IDLE 2 which cycles the program back to the block 49 to repeat the steps thereafter for the next lower priority threat in the threat table. This sequence is repeated until all threats have been processed. If the range ratio of higher priority threat R4 is equal to or greater than the range ratio of threat R5 the program goes via IDLE 4 and block 55 to repeat the processing starting at IDLE 2. In this manner, the threat priority table is periodically checked and reordered as appropriate to keep it updated. Microprocessor 15 utilizes the updated priority threat list to determine which threats should be displayed on the video display in response to other software which is described hereinafter. 
     That portion of the computer program represented by blocks 47 and 52, both entitled &#34;Calculate New AI Position,&#34; is shown in a more detailed block diagram in FIG. 3E which is now described. As the title &#34;Updates Aircraft Interceptor Position&#34; implies, this program subroutine is used only for threats which have a non-zero velocity. These non-zero velocity threats are mobile threats, generally aircraft interceptors, whose latest position must periodically be calculated and the range ratio recalculated. When the decision made in decision blocks 46 and 51 of FIG. 3A is &#34;yes&#34;, the computer program subroutine represented by the flow chart in FIG. 3E is called up. Immediately upon starting the subroutine, a decision is made by block 59 as to whether or not the previously calculated time to intercept a mobile threat is less than or equal to zero. This means that the mobile threat has reached and/or has passed the training aircraft. Based upon principles of modern aerial warfare, an assumption is made that the intercept aircraft, once having passed the training aircraft, cannot turn around and reintercept the training aircraft. Thus, if the previous time to intercept was equal to or less than zero, a &#34;yes&#34; decision is made and we exit from the subroutine with no further processing. When the previous time to intercept is greater than zero the intercept aircraft is still converging on the training aircraft so the program computes the current range vector as represented by block 60. After the range vector for the intercept aircraft is updated then the distance or range of the intercept aircraft is computed in block 61. Thereafter, the vector difference of the intercept aircraft and training aircraft velocities are computed using the direction vectors and distances of both aircraft as represented by block 62. Once this difference has been computed the time to intercept between the intercept aircraft and the training aircraft is calculated as represented by block 63 and the computed time is saved in a register as represented by block 64. Upon the revised time to intercept of an intercept aircraft being less than or equal to zero, that intercept aircraft is no longer a threat and the program exits from block 65 to block 71 to set an inactive threat flag on the aircraft interceptor and then exits from the subroutine. However, upon the revised time to intercept being greater than zero the program goes to block 66 to calculate a new range vector for the intercept aircraft at the new computed time to intercept. 
     As the training aircraft will most likely take evasive maneuvers to avoid contact with the intercept aircraft, the velocity vector for the intercept aircraft under consideration must be updated and this function is now done as represented by block 67. The next step in the program is to calculate the time since the last update of the intercept time as represented by block 68. This updated time is the elapsed time since the program made calculations with regards to a specific intercept aircraft and is utilized to determine how far along the velocity vector the intercept aircraft has moved for the elapsed time as represented in block 70. At this time all calculations with regards to a specific intercept aircraft are complete and we exit from the subroutine to calculate the range ratios as represented in blocks 48 and 53 of FIG. 3A. 
     The next major subroutine of the system software is the real time clock processing subroutine the detailed flow chart for which is shown in FIG. 3B. The primary purpose of the real time clock processing subroutine is to keep track of the elapsed time for the training mission and to cause periodic display refresh of the video display on the radar warning receiver with the training scenario. 
     The first step is to determine if one second has elapsed in the mission time as represented by block 72. If one second has elapsed the program goes to the step represented by block 73 and the mission time is incremented by one second. The incremented mission time is then compared to the time at which the video display was last refreshed to determine if the display should be refreshed as represented by block 74. The program also goes directly to block 74 if one second has not elapsed as shown by block 72. If it is not time to refresh the video display, which is refreshed two times a second, the program exits from the subroutine to return from interrupt to process lower priority program. If it is determined by the program represented by block 74 that it is time to refresh the display, the next question to be determined is if the training scenario has been started by the pilot. If the training scenario has not been started by the pilot, there is no need to go through with display processing and we exit from the subroutine. In the event, however, that the scenario has been started we go to the portion of the program represented by block 76 and a transform matrix is computed to get into the display coordinate system. To accomplish this transformation a vector in the scenario frame, which vector is derived with the background processing program subroutine, is first transformed into a space stable reference frame where the rotation of the earth is first accounted for. Next the partially transformed vector in the space stable reference frame is transformed into a strapdown frame by the inertial sensor processing and finally is transformed into the display coordinates. 
     Once scenario vectors have been transformed by the display transform matrix represented by block 76 into the display coordinate system software the program goes down through the threat priority list starting with the highest priority threat as indicated by block 77 to determine if the particular threat is to be displayed. 
     As previously described, different types of threats will not be displayed as indicated by the settings of controls on the radar warning receiver control panel. 
     The program as represented by decision block 78 next decides whether or not the threat being processed is beyond three times the weapon range of the weapon associated with the particular threat radar. If the training aircraft is beyond three times the weapon range that weapon is not a serious threat and will be disregarded by not displaying the threat. If this decision is &#34;yes&#34;, the program goes directly to decision block 85 which is described hereinafter. In the event that the training aircraft is within three times the weapons range, the assumption is made that the threat radar associated therewith will be in view on the video display of the radar warning receiver so the program progresses to block 79 to determine if the threat being processed is an active threat. There are cases where the threat may not be active, such as the threat being an aircraft interceptor which has gone past the training aircraft. Another such case is that the training aircraft may not be within the turn-on slant range of the weapon yet. Upon the threat being an active threat the program goes to block 87 which causes the program to display the threat as is described further in the specification. In the event the threat is not an active threat the program goes to block 80 to decide whether or not the weapon is a latent threat. A latent threat is one that will soon be an active threat such as a training aircraft soon to be within the turn-on slant range of the weapon. If the weapon is a latent threat the program passes to block 82 which will be described hereinafter. In the event the weapon is not a latent threat the program passes to block 81. A weapon that is not a latent threat, such as an aircraft interceptor which has already passed the training aircraft, will not receive any further consideration. This type of threat is to be removed from the threat list. To accomplish this, the program represented by block 81 sets a program flag which causes the threat to be removed from the threat list. The program then progresses to block 82 which checks to see if the non-active and non-latent threat is presently being displayed. If it is being displayed the program causes the display to be removed from the video display. The program next progresses to block 83 where a decision must be made following the display of each threat radar in a descending order of threat priority as to whether the number of threats being displayed exceeds a number indicated by the pilot using switches on the radar warning receiver control panel. If the maximum number of threats is already being displayed no further time is wasted processing threats that will not be displayed and the program exits from block 83 and go directly to block 85 which is described hereinafter. However, in the event the maximum number of displayed threats is not exceeded the program goes from block 83 to block 84 to determine if the end of the threat list has been reached. The determination that all threats have not been processed causes the program to go to block 88 which causes the program to cycle back to block 78 to process the next threat in the threat list. This process continues down through the threat list in a descending order of priority until either all threats are displayed or until the indicated maximum number of threats are displayed. 
     Upon the threat list being exhausted the program goes to block 85. The program associated with block 85 makes a determination whether or not all threats in the threat list were processed on a previous displayed refresh cycle. If all threats were not processed any leftover threats from the previous refresh cycle are deleted as indicated by block 86 before the diamond hand-off is processed. Upon all threats in the threat list having been processed on a previous refresh cycle, the program processes the diamond hand-off as represented by block 89. Once the video display of the radar warning receiver is current, displaying only those threats as indicated by settings of the controls of the receiver, then the diamond hand-off must be associated with a particular threat radar displayed on the receiver video display as indicated by the operator. As previously described, the operator operates one of the controls to move the diamond displayed on the video screen from one threat radar to another. Once the diamond processing is completed the real time clock processing subroutine is finished and the microprocessor returns to processing a lower priority subroutine of the computer software. 
     The program subroutine having the second highest priority is the control panel processing subroutine which responds to the operations of all controls on the radar warning receiver control panel and returns all signals to the control panel to provide the audible and visual outputs. The detailed flow chart for the control panel processing subroutine is shown in FIG. 3C and is now described. Upon there being a change in any of the controls on the radar warning receiver control panel an interrupt is generated indicating that this control panel subroutine needs processing. Due to the priority of the subroutines noted in FIG. 2 the control panel processing subroutine will interrupt and take precedence over the background processing subroutine of FIG. 3A and real time clock processing subroutine of FIG. 3B, but will not take priority over the inertial sensor processing subroutine of FIG. 3D. As previously described with reference to FIG. 1 the various switches and controls on the radar warning receiver control panel each have an associated latch within circuit 37 of the display driver and interface circuit 12. It is these latches within circuit 37 which are tied to data buss 20 and are read by processor 15 utilizing the software of the control panel processing subroutine per block 90 in FIG. 3C. The software reflected by decision block 91 first determines whether or not there has been change in the mode switch on the radar warning receiver control panel. Upon there being no change in the setting of the mode switch we go to block 93, but if there has been a change in the mode switch we go block 92 to set up a new mode state as indicated by the new setting of the mode switch before going to block 93. The software represented by block 93 determines whether or not the diamond hand-off button has been operated. If the diamond hand-off button has not been operated we bypass the steps represented by blocks 94 through 98 and go to block 99. However, if the diamond hand-off button has been operated we go to block 94 to determine if this button was operated with a short push or a long push. This is necessary for a short push on the button causes the diamond to float and mark only the current highest priority threat; whereas a long push causes the diamond to circulate through each of the threats in descending priority order at a one second interval allowing the operator to momentarily listen to the pulse repetition interval (PRI) of each of the threats. Upon the diamond hand-off button being released after a long push, the now circulating diamond will stop whenever it presently is located on the display and the operator will continue listening to the PRI of the marked threat. Upon the program determining that the operation of the diamond hand-off button was a short push we go to block 95 to determine if the diamond is already locked onto a threat; that is, already in the floating mode. Upon the diamond being locked onto a given threat by a previous long push and subsequent release of the diamond hand-off button the program goes to block 96 and the causes the diamond to float again to mark only the highest priority threat. If the diamond was not locked onto a threat a short push causes the program to go to block 98 to change the state of the diamond causing it to lock onto the highest priority threat presently being marked. Similarly, if it was determined in block 94 that the operation of the diamond hand-off button was not a short push, we go to block 97 to determine if the operation of the button was a long push. Upon determination that the operation of the button is a long push we go to block 98 and the software again causes the diamond to lock onto the threat currently being marked with the diamond when the button is released. Thus, a short push on the diamond hand-off button causes one of two things to happen. If the diamond hand-off button is operated with a short push when the highest priority threat is being marked in the floating mode, the diamond will only lock onto the highest priority threat. In the alternative, if the diamond hand-off button is operated with a short pulse when the diamond is marking a displayed threat other than the highest priority threat, the diamond will revert to the floating mode marking the highest priority threat. 
     In block 99 of the computer program flow chart the program next determines whether or not the altitude priority rotary switch has been operated changing the altitude priority of threat radars. Upon there being no change in the altitude priority of targets we go directly, via the circle marked with a capital letter &#34;A&#34;, to block 101. Upon there being a change in the altitude priority we go to block 100 instead and the threat priority table is changed to reflect the altitude priority selected by the switch. For example, there are certain weapon systems which can only threaten the aircraft at high altitudes and need not be displayed if the aircraft is flying at very low altitudes. If any of these high altitude threats are being displayed and the altitude priority switch indicates that only weapon systems which can threaten the aircraft at low attitudes are to be displayed, the high altitude weapon system threat radar display must be removed from the threat list and, accordingly, removed from the display. 
     The control panel processing subroutine next progresses, via the circle marked with a capital &#34;A&#34;, to block 101 which determines if the missle launch button on the receiver control panel has been operated. As previously described, this button is operated to cause the receiver to display friendly radars for limited training purposes. If the missile launch button has not been operated the program goes to block 105 which will be described further in the specification. In the event the missile launch button has been operated, the program goes to block 102 to determine whether or not the radar warning receiver equipped with our novel training equipment has been placed in the training scenario mode. In the event that the receiver is not in the training scenario mode the program goes to block 104 and causes a capital &#34;T&#34; to be displayed indicating that the training mode that has been selected by the operation of the missile launch button. In contrast, in a radar warning receiver equipped with our novel equipment the operation of the missile launch button while the equipment is in the scenario mode causes the program to go to block 103 which initializes the scenario to restart the training scenario from the beginning. 
     The program next determines in block 105 whether or not there has been a change in the setting of the test switch. As described previously, the test switch is a four-position rotary switch having an off position with the remaining three positions being used to test all lamps on the receiver and to cause various characters to be displayed on the video display to assure its operation. In addition, a systems test checking various programs within the system is also performed. In the event there has been no change in the setting of the test switch the program goes to block 107 to check the operation of the gate switch as is described further in this specification. However, in the event that the test switch has been operated the program goes to block 106 and causes the particular test selected by the switch to be enabled. Then the program also goes on to check the status of the gate switch as indicated by block 107. 
     As previously described, if there has been no change in the setting of the test switch, there is no need to set up a test so the program went directly to block 107 to determine if there is a change in the setting of the gate switch. The program also went to this step in the program if a new test had been selected and the selected test has been set up in response to the program. In the event there has been no change in the setting of the gate switch the program goes directly to block 109. However, in the event there has been a change in the test switch the program goes to block 108 which causes the newly selected gate function to be implemented before the program goes to block 109. Block 109 determines the present state of the two-position Priority Switch which causes the receiver to display either the five or sixteen highest priority threat radars. Upon there being no change in the operation of the Priority Switch the program exits from block 109 to point &#34;B&#34; which takes the program into block 111. In the event that the Priority Switch has been operated to the other of its two positions the program goes to block 110 to cause the display to display only five or sixteen threat radars as indicated by the new position of this switch. Once this function has been completed, the program then progresses via point &#34;B&#34; to block 111. 
     The next radar warning receiver control panel input to be checked is the Unknown Enable button. As described briefly heretofore, received radar signals that cannot be identified as being associated with a known threat are normally not displayed to avoid cluttering of the video display. However, to provide flexibility the Unknown Enable button may be operated which alternately causes the unknown radar types to be displayed or not displayed on the video display. Once this is done the program progresses to block 113. 
     Block 113 determines if there has been a change in the Target Separate button on the radar warning receiver control panel. As previously described the operation of this button causes two overlapped radar displays to be separated so that the operator can determine the type of radars. Upon there being no change in the operation of the Target Separate button, the program progresses directly to block 115. However, if there is a change in the state of the Target Separate button, the program progresses to block 114 which either causes the overlapped threat displays to be separated if the button is newly operated, or to overlap the two displayed threats if the button has been released. 
     The program then progresses on to block 115 to determine if there has been a change in the setting of the AA Defeat switch on the receiver control panel. This switch is typically operated when the aircraft is operating at high altitudes where low altitude effective anti-aircraft weapons systems are ineffective and the display of their radars would only clutter up the receiver video display. If there has been no change in the state of the AA Defeat button the program exits as the control panel processing subroutine is completed. In the event that there has been a change in the setting of the AA Defeat switch the program progresses to block 116 which either places flags next to the AA threat radars in the list or removes these flags, which in turn either causes these AA threat radars to be displayed or supressed, depending upon the state of the switch. After this function has been completed the program again exits as the control panel processing subroutine is completed. 
     Turning now to FIG. 3D, therein is shown the block diagram for the inertial sensor processing subroutine. Program block 130 within this figure is blown up in greater detail in the flow chart entitled &#34;Gravity Routine&#34; shown in FIG. 3F. The inertial sensor processing subroutine processes inputs from the inertial sensor unit to keep track of the motion of the aircraft relative to a space stable reference frame. One hundred twenty-eight times a second an interrupt is generated for the inertial sensor processing subroutine. As noted in FIG. 2, the inertial sensor processing subroutine has the highest processor priority and will interrupt the processing of any of the other three subroutines. Upon an interrupt being generated for the inertial sensor subroutine, the program goes into its first step represented by block 117. Block 117 causes registers to be set aside to save the information for whatever other subroutine processing is interrupted. Upon the inertial sensor processing subroutine being completed the program can return to the interrupted subroutine and, using the information stored in the registers, picks up within the subroutine at the point of interruption. The program next progresses to block 118 which causes the inertial sensor processing interrupts to be counted. The program then proceeds to block 119 to determine if the interrupt count made per block 118 is an odd or even number. An odd interrupt count causes the program to progress to block 120 wherein the program causes the service count or interrupts to merely accumulate. Thereafter the program progresses to block 121 which causes the information stored in the registers set aside per block 117 to be restored for continuation of processing of an interrupted subroutine. The program then exits from the inertial sensor processing subroutine to commence processing a previously interrupted subroutine. As odd interrupts are generated at a rate of 128 times a second for the inertial sensor processing subroutine are only accumulated and no further processing takes place, effectively the rate is 64 times a second as processing only continues with the inertial sensor processing subroutine for even service counts of interrupts. 
     In the event the service count of interrupts is an even number, rather than odd, we exit from block 119 to block 122 wherein the program compensates the inertial sensor data for known sensor errors such as gyro drift, scale factor unbalance, accelerometer bias, alignment uncertaintities of the gyro and mass unbalance of the gyro. These are known factors which are constants to be used to compensate for the known sensor errors. In reality these known error factors change a small amount in flight but error introduced by treating them as constants is not large enough to be of any real concern. The program next progresses to block 123 wherein velocity and angle differences introduced by actual movement of the aircraft are determined to get revised information regarding the motion of the aircraft. The next step in the subroutine is to compute the rotation matrix as shown in block 124. This rotation matrix is called a quaternion rotation matrix and is used to get the attitude of the aircraft in the space stable reference frame referenced to the center of the earth. The next step in the inertial sensor processing subroutine is reflected by block 125 wherein a decision is made if the phase of the service count of the interrupts is equal to four. Every eighth second the program goes to block 126 wherein the quaternion is normalized to round off errors that are introduced by the finite word length in the computer before going on to block 127. Block 127 is also reached directly from block 125 in the event that this interrupt count is not four. In block 127 the quaternions are rotated reflecting the aircraft position. This is done in order to keep track of the training aircraft in the reference frame referenced to the center of the earth to properly provide a display of threat radars as the aircraft is flown and maneuvered by its pilot. The program next progresses to block 128 to compute the direction cosine matrix using the quaternions. 
     The next step in the program is to update the gravity vector if the service count is equal to eight. At this one-eighth second rate the program goes to block 130 to compute the gravity vector components at the aircraft position in the reference frame. Between these one-eighth second intervals the program goes directly to point &#34;A&#34; which takes us into block 131. We also go to block 131 via point &#34;A&#34; after the gravity vector components are computed. The fine details of the computation of the magnitude of the gravity vector of block 130 are described further in this specification with the detailed description of the gravity routine program flowchart shown in FIG. 3F. 
     In block 131 the body axis acceleration of the training aircraft is transformed into the reference frame. Once this is done the program progesses to block 132 where the gravity components are subtracted out. Next the program goes to block 133 where the aircraft velocity vectors in the reference frame are accumulated and used to compute an overall velocity vector in the reference frame. The next step in the subroutine is in block 134 which is used to check the service count pulse equal to 12 to create a one-eighth second time interval at which the position of the aircraft is updated. If the service count of interrupts is not equal to 12 the program goes directly to block 136, and if the service count of interrupts is equal to 12 we go to block 135 which is completed before going into block 136. In block 135 the X, Y and Z components of velocity are integrated with respect to time get the aircraft velocity in the space stable reference frame. Once this is completed the program progresses to block 136 which causes the information taken from an interrupted subroutine and stored in registers until the interrupt was completed to be restored and we exit from the inertial sensor processing subroutine. The microprocessor then commences processing a previously interrupted subroutine starting at the point at which it was interrupted. 
     In FIG. 3F is shown the computer program flowchart for the gravity routine which is only shown as block 130 in FIG. 3D. In computing the gravity vector components a procedure is utilized whereby the approximate gravity is completed from the sense of acceleration received from the inertial sensor. The first step in the gravity routine is block 137 wherein the vertical unit vector is completed. To accomplish this the computation X, Y and Z position of the training aircraft in the reference frame is utilized. Once this has been done the program performs the next step represented by block 138 of computing the sensed acceleration magnitude. Information received from the inertial sensor unit is accumulated over one second periods to be used to compute the sensed acceleration magnitude. The magnitude of the computed sensed acceleration is then analyzed in block 139 to determine if the sense of acceleration magnitude is what it is expected to be if all the training aircraft were doing were proceeding at constant velocity subject only to the earth&#39;s gravity. Upon the answer to this determination being &#34;no&#34;, the program proceeds to block 147 which is described further in the specification. Upon the answer to this determination being &#34;yes&#34;, the program progresses from block 139 to block 140 and the computed sensed acceleration magnitude is input to a low pass gravity filter wherein the sensed magnitude is integrated over five minutes to filter out any vibration and similar effects. Thereafter, the program progresses to block 141 in which the program looks at the rate of change of the gravity vector. A rate of change occurs as the training aircraft changes altitude. For example, if the training aircraft were gaining altitude there is a positive vertical component of velocity which causes the gravity vector to be of a decreasing magnitude. Similarly, if the training aircraft were losing altitude there is a negative vertical component of velocity which causes the gravity vector to increase in magnitude. It is the rate of change of the gravity vector that is of interest. 
     Once the rate of change of the gravity vector is determined the program proceeds to block 142 wherein the information derived in block 141 is checked to determine if the gravity change is consistent with the vertical velocity of the training aircraft. In the event that the rate of gravity change is consistent with the vertical velocity of the training aircraft, the program goes to block 147 which is described further in this specification. However, in the event that the gravity change is inconsistent with the vertical velocity, the program progresses to block 143. For example, if the output of the gravity change filter shows that the gravity vector is increasing but we have a positive vertical velocity, there is a problem and the information is inconsistent. For this inconsistent information the program represented by block 143 takes the vertical velocity component to zero by putting the vertical velocity component through a low pass centripedal force filter which forces the component towards zero. The program then progresses to block 144 via &#34;A&#34; to determine if the output from the centripedal force filter is positive. When the output is positive we make the assumption that the acceleration we are sensing is due to the gravity vector and proceed to block 145. In block 145 the program takes a cross product of a vector along the axis of the training aircraft with the vertical vector to compensate for the fact that the attitude of the aircraft may not precisely be what is calculated by the computer. This must be done as the vertical vector may not be purely vertical yielding tangental acceleration and causing misalignment of the gravity vector. The result is the computer eventually losing track of the aircraft. If the cross product is zero, the computer is tracking the aircraft. In the event that the cross product taken by the program represented by block 145 is not zero the program progresses to block 146 wherein the cross product is used as an input to a software implemented quaternion low-pass filter which forces the cross product towards zero and thereby assures that the computed vertical vector is actually vertical. 
     The next step in the program is represented by block 147 which is reached from blocks 139, 142 or 146. At this step the program sums the output of the centripedal force filter with the output of the gravity filter and performs a scalar product multiplication on the sum to get the gravity vector. Once this step is complete the gravity routine is finished and the program returns to block 131 within the inertial sensor processing subroutine shown in FIG. 3D. 
     The above completes the description of the computer program flowcharts shown in FIGS. 3A through 3F. The computer program written from these flowcharts may be found further in the specification in Appendix A. Table A preceeding the computer program shows the correlation between the program and the flowchart diagrams of FIGS. 2 and 3A through 3F. 
     Sometime in the future radar warning receivers will most likely not be a separate equipment within military aircraft but instead will be integrated with the electronic countermeasures and other equipments. Accordingly, there will not be a separate module that can be removed from the aircraft and replaced with the training module disclosed herein as the preferred embodiment. In such future integrated systems other inertial navigation systems within the aircraft will provide inputs to our novel equipment. Similarly, for another but not all inclusive example, other microprocessors and memories within the aircraft electronic systems will provide the storage and processing now provided within out system. Such changes are within the ability of those skilled in the art to implement while staying within the scope of our invention. 
     While what is described hereinabove is the applicants&#39; preferred embodiment of their invention it is obvious that one skilled in the art may make numerous changes without departing from the scope of the invention. 
     
                       TABLE A______________________________________INITIALIZE SOFTWARESTARTALIGN .0.ALIGN 1COMPSNGDBL, MURWCD, DZML30ATTUDEENRMDZML30, DMUL30ROTATEDZML30, DMUL30EROTDZML30SRDCMDZML30DVXFMROWVC3DZML30, DMUL30ALIGN 2COMPSNGDBL, MURWCD, DZML30ATTUDEENRMDZML30, DMUL30ROTATEDZML30, DMUL30EROTDZML30SRDCMDZML30LSQALIDMUL30, DZML30, V3NRMDZML30, DMUL30, DSQRT, DDIV30DDIV30, DSQRT, DDIVSTEP 1DZML30, DMUL30, DSQRT, DDIV30STEP 2DZML30, DMUL30, DSQRT, DDIV30STEP 3DZML30, DMUL30, DSQRT, DDIV30INIROTINRSRVEROTDZML30INIPOSDMUL30, DZML30SCNINIDZML30, NAV.0.EXAMINE THREATIDLEMOVE THREAT IF NECESSARYMOVESQRTCOMPUTE THREAT PRIORITYRNGPRISQRTUPDATE THREAT PRIORITY LISTIDLEPOINT TO NEXT THREATIDLEADVANCE MISSION CLOCKRTCSRVTRANSFORM THREATS TO AIRCRAFT REFERENCERTCSRVSCNSTP, SCNDISDISPLAY THREATS SATISFYINGCONTROL PANEL CRITERIARTCSRVRMVTHRDPPUSHDSPOCTDPPOPMISINT, DPPUSHRMVTHR DPPUSHSRCRDRRMVTHRDPPUSHDSPTHRDPPOP, SQRT, SEPAROAOARTNUNKRDRRMVTHRDPPUSHDSPTHRDPPOP, SQRT, SEPAROAOARTNAAARDRRMVTHRDPPUSHDSPTHRDPPOP, SQRT, SEPAROAOARTNDISPLAY THREATSXRDRRMVTHRDPPUSHDSPTHRDPPOP, SQRT, SEPAROAOARTNBLKRDRRMVTHRDPPUSHREAD CONTROL PANEL SWITCHESCPSRVSETUP DISPLAY CRITERIACPSRVDPPUSH, DPPOP, DSPDMPINITIALIZE SCENARIOCPSRVSCNPOSDZML30, DMUL30, DSQRT, DDIV30SCNINIDZML30, NAV.0.READ ATTITUDE AND VELOCITY CHANGESSTRAPRDSTRPCOMPENSATE INPUT FOR SENSOR ERRORSSTRAPCOMPSNGDBL, MURWCD, DZML30VERTDZML30, DSQRT, DDIV30, DMUL30, INRSRVEROTDZML30TRANSFORM INPUT INTO SPACE STABLE FRAMESTRAPATTUDEENRMDZML30, DMUL30ROTATEDZML30, DMUL30EROTDZML30SRDCMDZML30DVXFMROWVC3DZML30, DMUL30GRAVDZML30, DMUL30, DSQRT, DDIV30INTEGRATE VELOCITY TO OBTAIN POSITIONSTRAPNAVDZML30, DMUL30COMPENSATE FOR EARTH ROTATIONSTRAPNAVDZML30, DMUL30______________________________________ ##SPC1## ##SPC2## ##SPC3## ##SPC4## ##SPC5## ##SPC6## ##SPC7## ##SPC8## ##SPC9## ##SPC10## ##SPC11## ##SPC12## ##SPC13## ##SPC14## ##SPC15##