• Nie Znaleziono Wyników

A computer simulation of pilot activity during the blind landing of an airliner

N/A
N/A
Protected

Academic year: 2021

Share "A computer simulation of pilot activity during the blind landing of an airliner"

Copied!
26
0
0

Pełen tekst

(1)

CRANFIELD REPORT AERO N O . 4

1 - ? i

CRANFIELD

INSTITUTE OF TECHNOLOGY

A COMPUTER SIMULATION O F PILOT ACTIVITY

D U R I N G THE BLIND LANDING OF AN AIRLINER

by

(2)

GRANFIELD INSTITUTE OF TECHNOLOGY

A COMPUTER SIMULATION OF PILOT ACTIVITY DURING THE BLIND LANDING OF AN AIRLINER

by

M. J. P r a t t

SUMMARY

A computer program has been written which is intended to simulate pilot activity during the blind landing of an airliner, with lihe purpose of evaluating pilot work loads in the course of an automatic descent. Such a program should permit the location of critical points in the landing p r o -cedure, the determination of the effects of perturbing events on the normal landing sequence, and the prediction of pilot work loads to be expected in future a i r l i n e r s .

The work outlined here is a preliminary attempt at the problena. The report has two main objectives. One is to point out that much of the infor-mation required aa input by a program of this nature i s unavailable, and to indicate the observations necessary for its acquisition. The other is to present a possible basis for the simulation as an object of discussion. It will not be until accurate data is available and a definitive set of logical principles arrived at that a simulation of the blind landing process can produce useful r e s u l t s .

(3)

CONTENTS

P a g e

INTRODUCTION 1

THE SIMULATION PROGRAM 1

2. 1 N a t u r e of the P r o g r a m 1

2. 2 T y p e s of E v e n t 2 2. 3 P i l o t A c t i o n s 3 2 . 4 The E v e n t L i s t 4 2. 5 The O r g a n i s a t i o n a l P r o c e d u r e s 4

2.6 The State of the System 5 2 . 7 The P r e d i c t i o n P h a s e 7 2 . 8 The P r o c e d u r e INFORM 8 2. 9 Data R e q u i r e d , and Initial C o n d i t i o n s 9

DISCUSSION 10 CONCLUSION 11 A c k n o w l e d g e m e n t s 12 R e f e r e n c e 12 Appendix A I d e n t i f i e r s u s e d in the p r o g r a m A l Appendix B Sample t e s t s e q u e n c e B l Appendix C L i s t i n g of the p r o g r a m C I

(4)

1. INTRODUCTION

Automatic blind landing systems have recently been introduced with the intention of permitting civil air transport operations in thick fog without prejudice to safety and regularity. For the passengers, the advent of these systems has meant time saved and inconvenience avoided, while for the operators it has meant improved economics. F o r the pilots of the aircraft, however, it has given rise to a large number of new tasks to be performed during the approach and landing, mainly concerned with the setting up and monitoring of the blind landing equipment. For this reason, the mean levels of pilot activity may be g r e a t e r when a descent i s automatic than when it is manual.

The present computer simulation study of pilot activity during the blind landing of an airliner was prompted by two considerations. The first was the desirability of being able to simulate the effect on the pilot work loads of various abnormal circumstances which might occur in the course of the descent. Secondly, it seemed necessary to be able to predict the pilot work loads to be expected in future a i r l i n e r s , which are likely to be more complex and to have higher approach speeds than aircraft now in

service, and in which the levels of pilot activity may be greater. The program here described is intended to simulate a normal, uneventful blind landing, commencing with departure from the stack, and terminating with touchdown on the runway. Repeated runs should serve to give a statistical indication of the manner in which the work loads of the pilots vary during the descent. It should be possible, at a later stage, to take into account the effects of unforeseen mishaps or malfunctions as perturbations of the normal landing sequence; such events will probably have their most deleterious consequences if they occur at times when one or more pilot activity levels are at a peak.

It must be emphasized from the outset that the simulation program described in this report r e p r e s e n t s only a preliminary step in the process of writing a program which is sufficiently accurate to be of practical use. Much of the information which the program requires is in any case

unavailable, and must be obtained by detailed observation of the manner in which airline pilots c a r r y out their duties in practice. It is hoped that the present study will give some useful indications as to the nature of the observations which should be made.

The other major purpose of the report is the stimulation of

discussion amongst those whose interests, whether practical or theoretical, bear on this subject. Critical and informed appraisal of the logical basis of the simulation is necessary in order to indicate the improvements which will doubtless be needed before it can be usefully applied.

2. THE SIMULATION PROGRAM

2. 1 Nature of the Program

The simulation program i s written in ALGOL, and is based upon the SIMPAC simulation package devised by Callaway (Ref. 1). Whereas SIMPAC

(5)

2

-was intended for use on an Elliott 503 computer, the present program i s written for the I . C . L . 1905, the input and output procedures being peculiar to I.C.L. 1900 ALGOL. Considerable liberties have been taken with the procedures

of SIMPAC in order to achieve an efficient program for this particular application; the mode of operation of the simulation, however, remains basically unchanged.

The program operates upon a list of predicted events; the entries on the list are held in their prospective order of occurrence, the next expected event at any particular simulated time being first on the list, and so on. The simulated time, or clock time, is advanced by unequal

increments, the cycle of operation of the simulation comprising the three following p h a s e s :

(i) advancement of clock time to the time of occurrence of the next event;

(ii) modification of the state of the system in accordance with the nature of that event; and

(iii) prediction, in the light of the updated state of the system, of further future events, which are inserted in the appropriate position on the event list.

The object of the simulation is the calculation, at the occurrence of each event, of the work loads on the pilots. It is assumed that the descent of the aircraft can be divided into several stages, during each of which certain

specified tasks must be performed. The work load for each pilot is defined to be the time necessary for the completion of the remaining tasks in the current stage, divided by the time available before the stage ends. Each work load should therefore be in the interval (0,1); if unity is exceeded, the pilot concerned is overloaded, an appropriate message is printed out, and the simulation stops.

2. 2. Types of Events

The events which occur during Lhe descent have been classified into four types:

Type 1 Type 2 Type 3 Type 4

commencement of a sequential pilot action, completion of a pilot action,

reference event, and interruption.

Events of types 1 and 2 are self-explanatory. A reference event, type 3, r e l a t e s to the motion of the aircraft, and occurs when some specified location or altitude is reached. The time intervals between reference events are therefore functions of aircraft speed and rate of descent, and are assumed to be given a s data at the outset. The previously mentioned self-contained stages of the descent a r e terminated by specific reference events. An interruption, or type 4 event, corresponds to the commencement of a pilot action which is

(6)

initiated by some external intervention, such a s an A. T. C. call from the ground. The completion of such an action is a type 2 event, a s with a

sequential action. Interruptions are taken to occur at times which are subject to some statistical variation whose nature is specified at the outset. The framework of the blind landing sim.ulation is thus provided by the reference events; between these events pilot actions occur which may be either internally o r externally motivated. The program assigns consecutive integer numbers to the reference events in their order of occurrence, starting from zero.

Reference 0 always occurs at zero clock time, and signifies the commence-ment of the simulation, which is terminated when the last reference event, corresponding to touchdown on the runway, is reached.

2. 3. Pilot Actions

The program is written for the case where the aircraft c a r r i e s three pilots. It has been found that the actions performed by the pilots can be classified into three s t r e a m s , the first being largely concerned with the setting up and monitoring of the blind landing equipment, the second with A. T. C. calls and associated actions, and the third with the carrying out of check l i s t s . The actions in each stream form a sequence with a fixed order, and actions in more than one stream may be in progress concurrently, subject to pilot availability. The program assigns consecutive integer numbers in the intervals [101,199], [201,299] and [301, 399 ] to the actions in the three respective s t r e a m s , and in its present form it therefore cannot deal with more than 99

actions per s t r e a m . This limitation may be removed by a trivial modification, although this would increase the core storage requirement of the program.

A given action N is characterised by the following attributes:

s t r e a m number : equal to the first digit of N, and given by N t 100, where ALGOL integer division is used;

pilot requirement parameter, P [ N ] : takes the value 2, 3 or 5 if the action i s performed by pilot 1, 2 or 3 respectively. Some actions require the attention of more than one pilot, in which case P [ N ] is taken as the product of the requirement p a r a m e t e r s of the individual pilots involved. For instance, if pilot 2 is required to set a dial while pilot 3 monitors his action, P [ N ] i s set equal to 15;

priority, X[N] : it is assumed that two levels of priority exist for the sequential actions, for which X[N] may be either 1 or 2. If, during the simulation, it is found that the conditions are fulfilled for the commencement of a priority 1 action, except that one or more of the pilots required are engaged on a priority 2 action in another stream, then the latter i s over-ridden in favour of the former. Actions initiated by interruptions have

priority X[N] = 0, and hence automatically override current sequential actions if the required pilots are not available;

starting time, ST[N] : the interval between the time at which the conditions for the commencement of action N are first fulfilled and the time at which it actually commences. The starting time of actions initiated by interruptions is taken to be zero;

(7)

4

-cues required, C0[N], C1[N], C 2 [ N i and C3[N] : before a sequential

action N can be commenced, certain conditions must be fulfilled. The simplest case a r i s e s when the only requirement is that N - 1, the preceding action in the

same stream, has been com,pleted. In some c a s e s , however, the commencement of action N r e q u i r e s specified actions in other streams to have been completed or some particular reference event to have occurred. Such an instance a r i s e s , for example, at the beginning of each new stage in the descent, when all the actions in the previous stage must have been completed and the requisite reference must have occurred to mark the end of that stage and the start of the new one. C0[N], C1[N], C2[N] and C3[N] are given the number of any required reference event and any actions in s t r e a m s 1, 2 and 3 respectively which must have occurred before action N may be undertaken. This system of cue requirements thus provides c r o s s - l i n k s between the stream of reference events and the three action s t r e a m s . If no cue i s required by an action in a given stream from one or more of the other three s t r e a m s , then its cue requirements a r e set equal to 0, 100, 200 or 300 in the relevant s t r e a m s ; any sequential action requires a cue set in its own stream, however, if in no other. An action initiated by an interruption is given cue requirements 0, 400, 400 and 400; since these particular cues can never be set, the computer is thereby prevented from treating such an action as a sequential action.

All the attributes of each pilot action carried out during the blind landing are required as data by the program in its present form. ST and AT are r e a l a r r a y s , while P, X, CO, CI, C2 and C3 are integer a r r a y s .

2.4. The Event List

The event list is of variable length, the number of entries at any given clock time being denoted by the integer variable EVENTS. The events on the list are specified by the elements of an integer a r r a y EVENT[0:EVLIST, 1:2 ], where EVLIST i s the maximum expected length of the list. The first a r r a y

subscript indicates the position on the list of an event, and the second permits two attributes to be assigned to it. The first attribute is the typje number of the event in question, while the second is the number assigned to the particular reference or action with which it is concerned. Thus if EVENT [3, 1] = 2 and EVENT [3, 2] = 307. then the third event on the list is a type ,2 event, the completion of pilot action 307.

Also associated with the event list is the r e a l a r r a y TIME [0:EVLIST]; the element TIME [I] gives the clock time at which the event I on the list is scheduled to occur.

Generally, the number of events on the list is less than EVLIST; the a r r a y s EVENT and TIME then have all their elements corresponding to positions on the list higher than EVENTS, the current length of the list, set equal to zero.

2. 5 The Organisational Procedures

The event list undergoes numerous changes during the course of the simulation, due to the action of the following four procedures:

(8)

INSERT(A, B, C) : this procedure makes a new entry in the appropriate position on the event list. The inserted event is of type B, and relates to the action or reference whose number is C; it is scheduled to occur at clock time A + CLOCK, where CLOCK is the real variable denoting current clock time. The procedure places the new event at a position on the list such that TIME [I - 1 ] ^ A + CLOCK< TIME [I + 1 ], and assigns the value of A + CLOCK to TIME [I].

DELETE (B, C) : this procedure examines the items on the event list in order, and deletes the event of type B which pertains to action C. The list is closed up to fill the resulting gap;

MODIFY : is called into use when all the conditions are fulfilled for a sequential action to commence, except that the required pilots a r e already occupied. The procedure determines the actions upon which they are engaged, and checks whether the new action has a priority such that it can override them. If so, any scheduled events concerned with the overridden actions are deleted from the event list, and the commencement of the new action is entered on the list.

MODIFY i s also invoked upon the occurrence of a type 4 event, or interruption. Actions initiated by such events are assumed to be confined to stream 2, and have a priority such that actions in other s t r e a m s are

automatically overriden if the necessary pilots are not immediately available.

The starting times of any actions which are overriden by the procedure MODIFY are set to zero, so that they will now commence immediately all the required conditions for their performance are once more fuKilled;

NEXT : this integer procedure has the effect of advancing CLOCK to the time of occurrence of the first scheduled event on the event list. If more than one event is scheduled to occur at this time, any eligible type 2 events (completions of pilot actions) are dealt with first. The procedure then assigns the type number of the chosen event to NEXT, and causes the event, to be deleted from the list, so that the remaining events on the list are all moved up one place.

2. 6 The State of the System

The state of the system at any particular clock time is represented by the following entities :

FREE is an integer given by the product of the p a r a m e t e r s 2. 3 or 5 of the currently unoccupied pilots. Thus if only pilot 3 is busy, FREE has the value 6, while if all pilots are unoccupied it is equal to 30;

SET [1:3], ON[ 1:3 ] and PILOTS[1:3] are all integer a r r a y s . If current clock time falls within the period of starting time of an action in stream I, then SET [I ] is assigned the number of that action; it is otherwise zero. Similarly, if an action is currently in p r o g r e s s in stream I, its number is assigned to ON [I], which is otherwise zero. If SET [I] = ON[I] = 0, then PILOTS [I] = 0 ; it otherwise is set equal to the pilot requirement parameter P [ N ] for the action N in p r o g r e s s or about to commence in stream I;

(9)

Q [ 0 : 3 ] is an integer a r r a y , whose four elements are assigned the numbers of the last reference event to have occurred and the last actions to have been completed in s t r e a m s 1, 2 and 3 respectively. The elements Q[I] may be regarded as cues set; they are compared with the cue requirements of the next actions in each stream, in order to determine whether or not these actions can be commenced.

The occurrence of each event in the simulation is brought about by a statement goto ACT [NEXT]. Here the call of the procedure NEXT assigns to NEXT the type number of the first appropriate event on the event list, and the statement causes the program to branch to one of the labels in a switch list ACT := B1,B2, B3,B4. If the next event is of type 1, the program therefore jumps to B l , and so on. Each label on the list heads a sectiun of the program whose execution updates the state of the system in the appropriate manner. In each of the four such sections the number of the action or reference in question has been assigned to ACTION, its type number to TYPE and its stream number to STREAM; these assignments are made during the execution of DELETE, which is called from within the procedure NEXT.

Bl : The program jumps to Bl at the commencement of a sequential action. SET[STREAM] i s set to zero, ON[STREAM] to ACTION, and the element START [STREAM] of a r e a l a r r a y START [1:3] to the current value of CLOCK. The completion of ACTION i s now entered in the event list, and, since a type 1 event causes no alteration in the conditions for the commencement of the other actions, this section of the program is terminated by goto ACT [NEXT].

B2 : A jump to B2 occurs on the completion of a pilot action; Q[STREAM] is then set equal to ACTION. ON [STREAM] and PILOTS [ STREAM ] are set to zero, and FREE is multiplied by the requirement parameter of the disengaged pilots. Since a type 2 event sets a new cue, the

terminal statement is goto PREDICT, causing the program to branch to a section where future actions are predicted on the basis of the new state of the system.

B3 : Q [ o ] is set equal to ACTION, which in this case is the number of a reference event. The simulation is terminated if the event is that corresponding to the alighting of the aircraft on the runway; otherwise, since a new cue has been set, it now jumps to PREDICT.

B4 : An interruption may cause a call of MODIFY, which if necessary isolates and deletes actions in p r o g r e s s or about to commence, so as to free the required pilots for the overriding action. If any deletions occur, the requisite adjustments to FREE and to the elements of SET. ON and

PILOTS are made within MODIFY. The interrupting action now commences immediately, ON[STREAM] being set to ACTION, PILOTS[STREAM ] to P[ACTION], and FREE to FREE * P[ACTION]. The completion of ACTION is now inserted in the event list, and since the operation of MODIFY may have released one or more pilots who were previously unavailable, this section terminates with goto PREDICT.

(10)

2. 7 The Prediction Phase

In the section of the program labelled PREDICT decisions are made, on the basis of the current state of the system, as to which new sequential actions may be inserted in the event list. The first action which has not been completed in each of the three action s t r e a m s is determined by adding 1 to the cue set in the relevant stream. This action may be about to commence, or may be already in p r o g r e s s , in which cases its commencement or completion respectively will already have been entered on the event list. Otherwise, the element of PILOTS for the stream concerned will be zero, indicating that the next action in this stream is available for consideration. If this is the case, then the cue r e q u i r e -ments of the action are checked against the cues actually set. If all four cue requirements are found to be l e s s than, or equal to, the respective cues set, the primary conditions for the commencement of the action are fulfilled. The number of the action is then assigned to the appropriate element of an integer a r r a y W [ l : 3 ] ; the value zero is given to those elements relating to streams in which the next uncompleted action has been excluded from consideration by the foregoing c r i t e r i a .

Next, the actions given by the non-zero elements of W are examined in turn, to find the one having the shortest starting time. The number of this action is assigned to N, and a check i s now made as to the availability of the required pilots, by testing whether FREE is exactly divisible by P[N]. For this purpose, a Boolean function procedure DIV(A, B) is available, which takes the values true or false according as to whether or not A is an integral

multiple of B. If the pilots required for action N are not all available, and N has priority 1, then a call of MODIFY occurs. MODIFY uses the procedure DIV to determine which non-zero elements of the a r r a y PILOTS have a factor in common with P[N], and so locates the s t r e a m s in which the required pilots are engaged. If the actions in these s t r e a m s are all of priority 2, they are overriden and deleted from the event list, the pilots required for action N thus being released. If N can now proceed, either because the necessary pilots were already available or because they have been released by the operation of MODIFY, a Boolean variable PRIORITY is given the value true , enabling the commencement of N to be placed on the event list. At the same time SET [STREAM] is set to N, PI LOTS [STREAM] to P[N] and FREE to FREE i P[N]. Whether action N has been inserted on the list or not,

W[STREAM] is set to zero to prevent its further consideration at this point in the simulation. As the action of MODIFY changes the current state of pilot availability, further actions may have been made available, and if MODIFY has been called the PREDICT section is now re-entered at the beginning.

If any non-zero elements of W remain, the pilot availability criteria are now applied to the action having the next shortest starting time, and so on. Thus it is possible for the commencement of up to three actions to be entered on the event list at the same point in the simulation, provided that all pilots are free at the time and that each action involves a single different pilot. Once all the elements of W have been reduced to zero, the prediction phase ends with the execution of the statement goto ACT [NEXT].

(11)

8

-2.8 The Procedure INFORM

The procedure INFORM(S, A) is called at various points during the simulation, and causes output of a character string S and, if required, certain diagnostic information.

The nature and frequency of the output are determined to some extent by the values of two Boolean variables, TEST and LIST. The program r e q u i r e s as data a value for the integer variable MONITOR, which may be 2, 1 or 0. LIST is true if MONITOR = 2, but otherwise false; TEST is true if MONITOR > 0, but otherwise false.

If both TEST and LIST are false, INFORM is called only at (i) the

occurrence of certain logical e r r o r s , (ii) the deletion of an action in p r o g r e s s , (iii) the end of the simulation, and (iv) entry to the program sections labelled B l , B2, B3 and B4. If TEST is true, it is also called during the procedures INSERT, DELETE and MODIFY, to enable the progress of the simulation to be more closely followed.

The mode of action of INFORM(S, A) is dependent upon the value 0, 1, 2, 3 or 4 assigned to the formal parameter A in the procedure c a l l :

A = 0 causes the simulation to end after the output of S; such a call occurs when the last of the reference events has taken place, or when a pilot work load has exceeded unity;

A = 1 causes S to be output, followed by the number of the action or reference with which the simulation is currently concerned, together with the value of CLOCK. Calls of this kind occur in the procedure MODIFY;

A = 2 causes the same output as A = 1, except that the present value of the work loads of the three pilots a r e also listed. Such a call occurs on entry to the program sections labelled Bl, B2, B3 and B4 (i. e. at the occurrence of each event in the simulation);

A = 3 causes the same output as A = 1, except that the type number of the event is now also given. Such calls occur, but only if TEST is true, in the procedures INSERT and DELETE. If LIST is true the' entire contents of the event list are also printed out, first the action numbers, then the type numbers, and lastly the times at which the events are scheduled to occur;

A = 4 automatically sets LIST to true, and then causes the same output as A = 3. Such a call only a r i s e s if the program has encountered a logical e r r o r , and the simulation is now terminated.

The calculation of pilot work loads takes place within INFORM at the occurrence of each new event. At the beginning of each stage of the descent the counting integer STAGENO is advanced by one, and the elements of a real a r r a y JOBSLEFT [1:3 ] are set equal to the total active time needed by pilots 1, 2 and 3 respectively to complete all the tasks in the new stage. As each event occurs, the three action s t r e a m s are scanned; in those in which the

(12)

appropriate element of ON is non-zero an action is in p r o g r e s s , and the time interval which has elapsed since the last event is subtracted from JOBSLEFT for the relevant pilots. The Ith stage is scheduled to end at a time denoted by PERIOD [I], and the work load for pilot J is therefore calculated as LOAD:= JOBSLEFT [J]/(PERIOD[I] - CLOCK). The time interval between each event and the one preceding it is obtained by setting TAG := CLOCK after each work load calculation; on the next entry to INFORM with A = 2 the interval in question is given by CLOCK - TAG, where CLOCK is the clock time of the new event.

A nainor complication a r i s e s when an action in p r o g r e s s is overridden and deleted. Since this action must now be repeated in its entirety, the active time already spent on it, which has been subtracted from JOBSLEFT for the pilots concerned, must be added on again. This is done within MODIFY

whenever an action in pr og r es s is deleted. At the commencement of any event in stream I, START [I] has been set equal to CLOCK, so that the length of time for which the action has been in progress at any future clock time is given by CLOCK - START [I]. This interval is added on to the appropriate elements of JOBSLEFT if the action is overridden before its completion.

2. 9 Data Required, and Initial Conditions

At the outermost level of the program, the data input are the following nine integers:

RUNS : specifies the required number of runs of the simulation; MONITOR : determines the truth or falsehood of TEST and LIST; EVLIST : the maximum expected length of the event list;

KO : the number of the terminal reference event;

K l , K2, K3 : the numbers of actions in s t r e a m s 1, 2 and 3, plus one; K4 : the number of interrupting events;

K5 : the number of stages into which the descent is divided.

After the declaration of certain variables and a r r a y s , the procedures are declared. More information is now required by the program, firstly the numbers of the reference events terminating the K5 stages of the descent (these are read into STAGE [OiC5 ]), secondly the numbers of those pilot actions which the program is to treat a s being initiated by interruptions (these are read into INT[0dC4]), and lastly a list of all the fixed attributes for each pilot action. The fixed attributes are the elements of P (the pilot requirement parameters), the elements of X (action priorities) and the elements of CO, CI, C2 and C3 (the cue requirements in the reference stream and three action streams). The information read in at this point is common to all runs made at any one session. A dummy action is added to each stream after the last pilot action to be performed; it i s given the impossible cue requirements 0, 400, 400 and 400. If this is not done, the computer may overshoot the end of an action stream, inventing new actions whose attributes, since no values have been assigned to them, are all taken to be zero. Such spurious

(13)

- 10

actions will have, in particular, zero pilot requirement, zero priority and zero cue requirement; they will therefore meet all the conditions for their insertion on the event list during the prediction phase, which is obviously not desirable.

There follows a section of program headed by the label RERUN, in which the initial conditions are imposed for each new run, and all elements of the three a r r a y s comprising the event list are set to zero. Reference 0, scheduled to occur at zero clock time, is then entered on the list. Now, in its present form, the program requires further data, namely:

(i) the times of occurrence of the KO reference events, which are read into the real a r r a y REF[0:KO]. These events are now entered on the event list, and the times at which the various stages of the descent finish are assigned to the elements of the real a r r a y PERIOD [0iC5];

(ii) the times of occurrence of the K4 interrupting events;

(iii) the starting times ST and active times AT of all the pilot actions. As these are read in, the program calculates the total active time of each pilot for each stage of the descent and assigns the results to the r e a l a r r a y WORK[0:K5, 2:5 ], where the first subscript denotes the number of the stage and the second the parameter of the pilot.

The statement goto PREDICT now occurs, which initiates the simulation. All the information required in this section of the program is relevant only to one particular run, and it is this information which is at present subject to the greatest uncertainty. Whereas a separate set of these numbers is now needed a s data for each simulation, it is hoped that in the future they can be provided for each run by sampling from appropriate random distributions. The nature of these distributions can only be discovered by observations of the way airline pilots work in practice, and until the results of such investigations are available, there is little prospect of any useful information being produced by the simulation. Hitherto, the program has been tested on short hypothetical sequences in which references and interruptions occur at fixed times, and actions have fixed starting times and active times.

3. DISCUSSION

As has been indicated, even if its logical basis is sound, the program described cannot produce an accurate simulation without accurate data. The collection of such data must involve extensive observation of airline pilots in action. Much of the information required is concerned with three attributes of the pilot actions, as listed below:

action priority, X[N] : it is necessary that the relative priorities of various c l a s s e s of pilot actions are ascertained. It may be found necessary to use more than two degrees of priority for the sequential actions; on the other hand, only one may suffice. It is believed that the present program will cope with either case without modification;

(14)

given action may be taken as constant. It seems likely, however, that if the pilot work loads approach unity the pilots will perform their tasks more hurriedly. The assumption that active times are functions of work loads is therefore plausible; such a feature can easily be incorporated in the program, but knowledge of the functional dependence will first be required. Statistical variations in the length of time taken to perform a given action may also have to be considered, in which case the nature and parameters of the relevant distributions will be needed;

starting time, ST[N] : the assignment of a value to the starting time of an action poses perhaps the most difficult question of all. Here again, ST[N] is probably a function of the work loads of the pilots involved, and there is also likely to be a statistical variation about some particular mean for each action. A thorough investigation of the origin, nature and statistical dis-tributions of pauses between pilot actions is therefore necessary.

The pilot requirements and cue requirements of the various actions are presumably readily ascertained. The remaining major unknowns concern the times of occurrence of reference events and interruptions. At present, all these times are specified at the outset, but in a representative simulation it may be necessary to arrange for some of them to occur at times which can only be preducted from some situation occurring during the course of a run. Such a modification to the program should present little difficulty. Variations will arise in the times between the occurrence of reference events due to

differences in air speed, rate of descent, meteorological conditions and so on, from one landing to the next. Statistical distributions will therefore be

required for the timing of these events, as also in the case of the interrupting events.

The addition of further types of event to the program, if desired, should be relatively straightforward. A decision-making event, with more than one outcome, could be included, and a perturbation of the normal landing process could be catered for by the occurrence of a malfunction event. Within the limitations imposed by the use of only four event types, however, an

endeavour has been made to write a program which is sufficiently flexible to cope with a wide range of input information.

4. CONCLUSION

It is hoped that the program described in this report may prove a useful first step towards a representative simulation of the blind landing process. The a r e a s have been indicated in which further knowledge is required in order to provide it with suitable input data. Progress should therefore be possible on two fronts; that of the improvement of the logical basis of the simulation, and that of the acquisition of the necessary

(15)

12

-ACKNOWLEDGEMENTS

Thanks are due, for helpful discussion and advice, to the following:

Mr, E. A. Goodman and Mr. B. D. Armstrong of the Blind Landing Experimental Unit, R.A. E. , Bedford; Mr. P . J. Russell, formerly of

B. L. E.U. but now with B. E. A. ; Mr. S. G. Lennox, formerly Senior Lecturer in Matheraatics at Cranfield, but now at the Board of Trade.

The idea of separating the pilot actions into three interacting streams was originated by Mr. Russell.

The work described in this Report was carried out under Ministry of Technology Contract No. C/8002.

REFERENCE

(16)

A P P E N D I X A : I d e n t i f i e r s used in the P r o g r a m

N u m b e r s in b r a c k e t s r e f e r to the s e c t i o n in which each identifier i s f i r s t mentioned. R e a l V a r i a b l e s :

CLOCK

TAG

LOAD

c u r r e n t clock t i m e (2. 5) t i m e of o c c u r r e n c e of l a s t event (2. 8) pilot work load (2. 1, 2. 8)

I n t e g e r V a r i a b l e s :

MONITOR d e t e r m i n e s amount of i n f o r m a t i o n output (2. 8) EVLIST m a x i m u m length of event l i s t (2. 4)

RUN n u m b e r of c u r r e n t r u n of s i m u l a t i o n (2. 9) RUNS n u m b e r of r u n s r e q u i r e d (2. 9)

E V E N T S length of event l i s t at p r e s e n t clock time (2. 4) STAGENO n u m b e r of c u r r e n t stage of d e s c e n t (2. 8)

F R E E p r o d u c t of r e q u i r e m e n t p a r a m e t e r s of unoccupied p i l o t s (2. 6) ACTION n u m b e r of r e f e r e n c e o r pilot action ( 2 . 6 )

T Y P E event type n u m b e r (2. 2, 2. 6) STREAM event s t r e a m n u m b e r (2. 3, 2. 6)

KO total n u m b e r of r e f e r e n c e e v e n t s (2. 9)

K 1 , K 2 , K3 total n u m b e r of pilot a c t i o n s in e a c h s t r e a m , plus one (2.9) K4 total n u m b e r of i n t e r r u p t i o n s (2. 9)

K5 n u m b e r of s t a g e s into which d e s c e n t i s divided (2.9) M, N counting i n t e g e r s

Boolean V a r i a b l e s

T E S T if t r u e , c a u s e s output on e n t r y to INSERT and D E L E T E (2. 8) LIST if t r u e , c a u s e s event l i s t to be p r i n t e d out (2. 8)

PRIORITY i s t r u e if action u n d e r c o n s i d e r a t i o n h a s h i g h e r p r i o r i t y than a l l c u r r e n t a c t i o n s involving the s a m e p i l o t s (2. 7)

OVERLOAD i s t r u e if any pilot work load e x c e e d s unity (2. 8)

MOD i s t r u e if F R E E h a s b e e n changed since e n t r y to p r e d i c t i o n p h a s e (2. 7)

R e a l A r r a y s :

(17)

A2 -REF[0:K0] ST [101 :K 3] AT[101i<:3] PERIOD[0:K5] JOBSLEFT [2:5] WORK [1:K5, 2:5] START [1:3] Integer A r r a y s : EVENT [O :EVLIST, 1:2 ; P[101dK:3] X[101-iC3] C0,C1,C2,C3[101:K3] TNT[1K4] STAGE [O KS] SET [ 1:3 ] ON [1:3] PILOTS [1:3] Q[0:3] W [ 1:3 ]

time of occurrence of reference events (2. 9) starting times of pilot actions (2. 3)

active times of pilot actions (2. 3)

times of references terminating stages of descent (2. 9) active time necessary for pilots 1, 2 &. 3 to perform remaining tasks in present stage; the subscript 4 is not used (2. 8)

total active time for each pilot in each stage of the descent (2. 9)

time of commencement of current actions in streams 1, 2 and 3 (2. 6, 2. 8)

types and action numbers of events on list (2.4) pilot requirements of pilot actions (2. 3)

priorities of pilot actions (2. 3)

cue requirenaents of pilot actions (2. 3)

numbers of actions to be treated as interruptions (2. 9) numbers of specific references terminating descent stages (2. 9)

numbers of actions about to commence in streams 1, 2 and 3 (2. 6)

numbers of actions in progress in streams 1, 2 and (2.6)

pilot requirements of current actions in streams 1, 2 and 3 (2. 6)

cues set (2. 6)

actions available for consideration during prediction phase (2. 7)

(18)

APPENDIX B: Sample Test Sequence

In Fig. Bl is reproduced part of the sequence of actions occurring during the blind landing of an airliner in current service. A number of hypothetical test sequences having a similar structure were used in the development of the simulation program; these sequences were devised so as to include all possible types of event in a fairly short span of simulated time. A typical test sequence is shown in Fig. B2. The interactions between the s t r e a m s of actions and reference events are represented by horizontal lines; the convention is that all events preceding such a horizontal line must have taken place before the next action may be commenced in any of the streams it connects. The numbers in brackets following each action number are the pilot requirement parameters, and a priority 1 action is indicated by means of an asterisk.

The two following pages show, respectively, the data which is input to specify the given test sequence, and the resulting computer output. The output is in the form obtained by setting MONITOR = 0, and therefore contains a minimum of diagnostic information. The general form taken by the input data has been detailed in Section 2. 9; in this case, the data is laid out a s follows:

Line 1 RUNS, MONITOR, EVLIST Line 2 KO, Kl, K2, K3, K4, K5 Line 3 STAGE [1], STAGE [2] Line 4 INT[1], INT[2]

Lines 5-24 P[N], X[N], CO[N], C1[N], C2[N], C3[N], where N runs from 101 to 107, from 201 to 208 and from 301 to 305,

Line 25 REF[1], REF [2], REF [3]

Line 26 Times of occurrence of interruptions (i.e. actions 202 and 204) Lines 27-46 ST[N], AT[N].

(19)

B 2 .

R E F E R E N C E S

ACTIONS

i AIRCRAIT REACHÏB 3Ü00 FT. • fl

1 1

P2 CHECKS MODE IIIDICATOR, (RATE OF DESCEMT OUT, HEIGHT LOCK IN)

F2 CHECKS TRACK

F2 STEERS REQUIRED HEADING

P2 ENOAOES RATE OF DESCENT

P3 MONITORS RATE OF DESCENT

P2 SETS QFE ON FC

P3 MONITORS QFE

P2 SETS 2000 PT. ON HEIGHT ACQUIRE

P3 MONITORS

P2 SELECTS HEIGHT ACQUIRE

P3 MONITORS

P2 ENGAGES HEIGHT ACQUIRE

P3 MONITORS

s 1

PI CHECKS MODE INDICATOR 1 (RATE OF DESCENT OUT, 1 HEIGHT LOCK IH) 1

PI CALLS ATC LEVEL AT 3000 FT. 1

ATO ACKNOWLEDGE WITH 1 FREQUENCE CHANGE 1

PI, P2, P3 LOO FREQUENCY C.JUIGE 1

P3 TUNES TO NEW FREQUENCY 1

PI CALLS ATC FOR REQUIRED QFE |

ATC CALLS CLEAR TO 2000 FT. WITH 1

QFE AND HEADING 1

PI, P2, P3 LOO 1

PI ACKNOWLEDGES 1

ATC CLEAR TO ILË API-ROACH WITH i HEADING AND niOTMlCR TO RUNWAY 1

8

P3 CALLS SET QFE

PI SETS OJE

P3 CHECKS DIFFERENCE BETWEEN PI AND P3 ALTIMETERS

P2 SETS QFE

P 3 CHECKS ALTIMETERS

F I G U R E B l :

(20)

TIME REFS

On m

ACTIONS

l O 2 0 3 0

4 0

-SO

6 0

SYMBOLS:

O I ,ML (§) event & type number

CO

sequential action

I

externally initiated

action

action terminated

before completion

[el pilot requirement

parameter

• priority 1 action

(21)

1 2 20 B 4. 3 107 2 0 8 305 2 2 1 3 2 0 2 204

s

3

3

2

IS

3

30

10

10

2

6

2

5

2

30

6

IS

3

5

30

30

18

2

2

2

2

2

2

0

2

0

2

0

2

2

I

0

2

2

1

2

0

44

41

0

0

0

0

1

1

0

0

0

1 1 1 1 1

0

0

0

1 1

0

100

101

102

103

104

100

400

101

400

104

400

100

105

100

400

100

100

100

100

400

66

2 4 1 4 2 3 3 2 2 5

o ^ INPUT DATA FOR THE TEST O O SEQUENCE OF FIG. B2 1 3 O 4 2 4 O 3 2 4 2 2 2 2 0 O 3 5 1 5 2 4 2 3 200 200 200 200 202 206 400 200 400 202 400 204 205 206 400 200 201 203 206 400 300 300 300 300 302 300 400 300 400 302 400 303 300 300 400 300 301 300 300 400

(22)

0 0 0 0 0 0 0 iif 60/ 65U $8i S«5 •>T^ iTt 0 0 0 0 n 0 0 SJJ i n ••56 ")00 ï*5 5?1 S/1

OUTPUT FOR THE TEST SEqUEN(ï OF F I S . BZ

N . J . P R A T T PROQRAM N')7A HllNP LANDING S I M U L A T I O N RUN 1

R E F E R E N C E O TIME • O.IIO UliKK L O A D S : 0 . 4 6 / C O M M E N C E D 101 Tint • <!.nu UDhK L O A D S : 0.500 C O M M E N C E D 301 TIME • 3.1)0 WDRr L O A D S : O.SIV C O M P L E T E D 101 TIME < 6.0U UORK L O A D S : 0.458 C O M P L E T E D 301 TIME « H.OO WORK L O A D S : 0,«09 COMMEKCEft 102 TIME 9,00 M(>K*> L O A D S ; 0,<129 C O M M E N C E D 201 TIME < 9,00 WOKd L U A D S ; 0,429

C O M P L E T E D 201 TIME > 1 2 , 0 0 UORK L O A D S ; 0,333 0,500 0.500 C O M P L E T E D 102 TIME > 1 3 . 0 0 UORK L O A D S ; 0,353 0.4/1 0.52V C O M M E N C E D 302 TIME > 1 4 , 0 0 WORK L O A D S : 0.3/5 0.500 0.563 INTERRUPT 202 TIME • 1 8 . 0 0 WORK L O A D S ; 0,500 0.333 0 , 4 1 /

302 O V E R R i D D E H IIY 202 TIME ' 1 8 . 0 0

C O M M E N C E D 103 TIME • 2 0 , 0 0 UORK L O A D S ; 0.400 0.800 O./OO C O M P L E T E D 202 TIME •• 2 2 . 0 0 WORK L O A D S ; 0,250 O./SO 0.625 C O M P L E T E D 103 TIME ' 2 3 , 0 0 WORK L O A D S : 0,296 0,/14 0./14 C O M M E N C E D 302 TIME « 2 3 , 0 0 UuRK L O A D S ; 0,286 0,/14 0./14 C O M M E N C E D 104 TIME " 2 6 . 0 0 UURK L U A D S ; 0,500 0.500 0.500 C O M P L E T E » 302 TIME ' 2 8 . 0 0 UURK L O A D S ; O.OOO 0.000 0.000 C O M P L E T E D 104 TIME « 2 8 , 0 0 WiiKK L O A D S ; O.OOO O.OOO (I.OUO R E F E R E N C E 1 TIME •• 3 0 . 0 0 WORK L O A D S ; 0.361 0.444 0.2/8 C O M M E N C E D 105 TIME ' 3 2 . 0 0 MURK L U A D S ; 0.3S2 0.4/1 0.294 C O M M E N C E D 203 TIME • 32.Oy UORK L O A D S ; 0.3»2 0,4/1 0.294 C O M P L E T E D 203 TIME ' 3 6 . 0 0 UORK L O A D S ; 0.300 0,400 0.200

105 O V E R R I D D E N RY 503 TIME • 3 6 . 0 0

C O M M E N C E D 303 TIME • 3 8 , 0 4 UIIKK L U A D S ; 0,321 0.5/1 0 . 5 5 / INTERRUPT 204 TIME ' 4 1 , 0 0 WORK L O A D S ; 0.360 0,520 0.400

303 O V E R R I D D E N BY 204 TIME • 4 1 , 0 0 WWRK L O A D S ; 0.2/3 0.591 0.4S5 WORK L O A D S : 0.2/3 0,591 U . 4 5 5 UORK L U A D S ; 0,2/3 0,591 0.455 UORK L O A D S ; 0.333 0 , 5 0 0 0.556 WORK L O A D S ; 0.333 0.500 0.556 WORK L U A D S : 0.5/5 0 . 4 3 / 0.500 UURK L O A D S : 0.231 UÜRK L O A D S ; 0 . 1 6 / UURK L U A D S : 0.200 WORK L O A D S : 0,2)0 UURK L O A D S ; 0.133 WORK L U A D S ; 0.333 WUKK L O A D S ; 0,333 WURk L U A D S : 0.000 UllKK L U A D S ; O.OOO WUKK L U A D S : O.UUU WORK L O A D S ; O.OOO C O M P L E T E D R E F E R E N C E C O M M E N C E D C O M P L E T E D C O M M E N C E D C O M M E N C E D C O M P L E T E D C O M P L E T E D C O M M E N C E D C O M P L E T E D C O M M E N C E D C O M M E N C E D C U H M E K C t D C O M P L f l E D C O M P L E U D COHPIE 1 tl> R F F E R t N C t END UF Si: 204 2 303 303 105 205 105 205 206 206 106 207 304 20/ 304 106 3 101 Al 1»; TIMf TIME TIME TIME TIME TIME TIME TIME TIME TIME TIME TIME TIME TIME TIME TIML TIME 44. 44 44 48 48 50 S3 54 56 58 60 60 60 62 65 64 66 00 UU 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0.308 0.333 0,400 0.50O 0 . 6 6 / 0 . 6 6 / 0 . 6 6 / 0.500 0,333 0.000 0 . 0 0 0 0.S85 0 . 4 1 / 0.500 0.5/5 0.5011 0.500 0.500 0.250 O.OOO 0.000 O.OOO

(23)

C 1.

APPENDIX C: LISTING OF THE PROGRAM.

This program is written in I.C.L. 1900 ALGOL.

0 ' B E G i N " R E A L ' CLOCK,TAG:

1 'INTEGER' MÜN1 TOR,EVLIST,RUN.RUNS,EVENTS,STAGENO,FREE,AC TI ON,TYPb,STREAM,

2 KÜ,Kl,K2,K3,K4,KS: 2 'BOOLEAN' T E S T , L I S T , P R I O R I T Y ;

3 SELECT INPUT ( 0 ) ; SELECT OUTPUT ( Ü ) ; PAPERTHROW:

1 UNITE TEXT C C M. J . PRATTXXXPROGRAMXM07AXXXBL INDXLANO I NGXS I MUL AT I ON'>') :

8 NEULINE ( 2 ) : .

9 R U N S : = R E A D ; M Ü N I T O R : = R E A O ; E V L I S T : = R E A O ; K O ! « R E A D ; K 1 : « R E A O : Kat-REA";

15 K3:sREAD,' KA: = REAO; KS:«READ: TEST : «MON I TOR>0; LI ST :'MON I T0R>1 ; RUN:«U: 21

21 ' B E G I N " INTEGER' M , N ;

21 'REAL " A R R A Y ' TI MEtO:EVLI ST),REFCO:KG],ST,AT1101:KJ),PERlODtO:Kb 1, 22 JüBSLEFTC2:5],WORKt1:K5,2:5).START(1 ! 3 ) ;

22 ' I N T E G E R " ARRAY' EVENTt0:EVLIST.1:2],P,X,C0,C1,C2,CJl1:K3],INTt1:K4J, 23 STAGEC0:K5],SET,ON,PI LOTS tl:31,Q[0:31;

23 'SWITCH' ACT:=B1,B2,B3.B4; 24

2A 'PROCEDURE' INFORM(S,A>: 'INTEGER' A; 'STRING' S; 28 ' B E G I N " R E A L ' H; 'INTEGER' I,J,K;

29 WRITE TEXT ( S ) ; 31 'IF' A>0 'THEN'

31 'BEGIN' PRINT ( A C T I O N , 3 . 0 ) : WRITE TEXT C C X X X T I M E X s ' ) ' ) : 34 PRINT (CLUCK,3.2);

35 'IF' A=2 'THEN'

35 ' H E 6 I N " R t A L ' LOAD: 'BOOLEAN' OVERLOAD: 36 'IF' ACTIÜN=SIAGEISTA6EN0] 'THEN' 37 'BEGIN' SIAGEN0:»STAGEN0+1;

39 'IF' STAGENO 'LE' K5 • T H E N " F 0 R ' 1:«2.3,5 'DO' JOBS LEFT[I]:«WORK[STAGENO,1 J 40 ' E N D " E L S t '

40 'BEGIN' H : = C L 0 C K - T A G ;

42 'FOR' I:«1,2,3 'DO' 43 'BEGIN' J ; n O N [ I ] : 45 ' I F ' J # 0 • T H E N " F O R ' K : » 2 , 3 , 5 ' D O ' 4 6 ' I F ' D I V ( P I L O T S [ n . K ) ' T H E N ' 46 J Ü B S L E F T t K J : « J O B S L E F T C K ] - H 46 ' E N D ' 46 'END'; 47 T A C : » C L 0 C K ; 4 8 W H I T E T E X T C C X X X W O R K X L O A D S IX ' ) ' ) ; 49 H : = P E R I O O [ S T A G E N O ] - C L O C K ; O V E R L O A D : « ' F A L S E ' ; .

51 'FOR' I:»2,3.5 'DO'

52 'BEGIN' L Ü A D : = ' I F ' h>8-8 'THEN' JOBSLEFT I I]/H ' E L S E " I F ' JOBSLEFT[ I]<»-» 'THEN' 0.Ü 53 'tLSE' 9.999;

54 PRINT ( L O A D . 1 , 3 ) :

55 'IF' L0AD>1 'OR' LOA0<0 'THEN' OVERLOAD:»'TRUE' 55 'END';

56 'IF' OVERLOAD 'THEN' INFORM C C P I L O T X O V E R L O A D ' ) ' . 1 ) 56 'END';

57 'IF' A>2 'THEN'

57 'BEGIN' WRITE TEXT C C X X X T Y P E X X ' ) ' ) ; PR I NT (1YPE . 1 , 0 ) ; 60 'IF' LIST 'OR' AxA 'THEN'

60 'BEGIN' NkWLINE ( 2 ) : SPACE ( 2 ) ;

63 'FOR' I:=1 'STEP' 1 'UNTIL' EVENTS 'DO' PRINT (EVENT(I,21.3.0);

65 NkULINE ( 1 ) ; SPACE ( 2 ) ;

67 'FOR' l:»1 'STEP' 1 'UNTIL' EVENTS '00' PRINT (EVENT[I , 1 ] . 3 . 0 ) : 69 N h W LIN E ( 1 ) ; SPACE ( 2 ) ;

71 'l-OR' I:»1 'SlEP' 1 'UNTIL' EVENTS 'DO' PRINT ( T l M E C n , 3 , 0 ) 72 'END';

73 'IF' A=4 'IHEN-'GOTU' EXIT 73 'END';

74 N t ' W L l N E (^1

7t> ' t N 0 " E L S E " G U I O ' EXIT

74 'END' I N F O R M ;

(24)

74 'PROCEDURE' INSERT(A.B.C): 'VALUE' A,B,C: 'REAL' Ai 'INTEGER' B.C; 79 ' B E G I N " R f A L ' T: 'INTEGER' i;

80 T : " A * C L 0 C K ;

82 I:»EVENTS:«£VENTS*1; 83 'FOR' l:»l-1 ,'WHILE' T<TIMEII1 'DO' 84 ' B E G I N " I N T E G E R ' J: J : « U 1 ; 86 TIMEtJl :*TIME( n : 87 EVENT(J.I):»EVENTII.1); 88 EVENT!J.2]:-EVENT[I.2] 88 'END'; 89 I:«I«i: T i M E ( n : « T : 91 E V E N T d . n . - ' T Y P E i ' B : EVENTC 1. 2] :«ACTION: «C; 93 'IF' TEST 'THEN' INFORM C C X X X I N S E R T ' ) ' , 3) 93 'END' INSERT:

93

93 'PROCEDURE' D E L E T E ( B , C ) : 'VALUE' B,C; 'INTEGER' B,C; 97 ' B E G I N " I N T E G E R ' i; 'BOOLEAN' OUT;

98 OUT:»'FALSE';

100 'fOR' I:«1 'SIEP' 1 'UNTIL' EVENTS ' 0 0 " I F " N O T ' OUT 'THEN' 101 ' B E C I N " I F ' EVENTtI,11»B 'AND' EVENTlI.21"C 'THEN' OüTt-'TRUE' 102 'tNO"ÉLSE' 1 0 2 ' B E G I N " I N T E 6 E R ' J : J : « I - 1 : 104 T I M E ( J ] : s l I M E i n : 1 0 5 E V E N T ( J . 1 ] : « E V E N T [ I , 1 ] : 1 0 6 E V E N T [ J . 2 ] : « E V E N T ( I . 2 ] 1 0 6 ' E N D ' ; 107 TIME[EVENTS]:>Ü.O; 108 EV£NT[EVENTS,1]:-EVENT[EVENTS,2]t«0; 109 EVENTS:"EVENTS-1;

110 TYPEt=B; ACTI0N:«C; STREAM!«C'/'100:

113 'IF' TEST 'THEN' I N F O R M C C X X X O E L E T E ' ) ' , 3 ) 113 'END' DELETE;

113

113 'PROCEDURE' MODIFY:

1 U ' n F G I N " I N T E G E R ' C.H.I.J.K; ' BOOLE AN " ARRAY ' D11:31; 115 'IF' TEST 'THEN' INFORM C C X X X C H E C K X P R I OR I T Y X O F X ' ) ' , 1 ) ; 117 0 : = A C T I 0 N ; H : « T Y P E ;

119 'fOR' I:s1,2,3 'DO' 120 'BEGIN' DlIlts'FALSE';

122 'IF' P l L O l S C n m O ' T H E N " F O R ' J:"4,9,25 'DO'

123 'IF' DIV(PILOTS[1)*P[ACTI0N],J) 'THEN' D ( n : > ' T R U E ' 123 'END';

124 ' I F " N O T ' PRIURITY 'THEN' 124 'BEGIN' PRIORI IY:«'TRUE';

126 'FOR' I:»1,2,J ' O Ü " I F ' D C n 'THEN' 1 2 / 'BEGIN' J:xSE1 I n ^ O N i n :

129 'IF' XtJj 'LE' XlACTION) 'THEN' PR I OR ITY:»'FALSE' 129 'END'

129 'END';

130 'IF' PRIORITY 'THEN'

130 'FOR' I:«1,2,3 ' D U " I F ' D I M 'THEN' 131 'BEGIN' J t ^ S E I [ I ] 4 U N ( I ) ;

133 'IF' TEST 'OR' SETtll«ü 'THEN' 133 'UEGIN' SPACE ( 2 ) ; PRINT ( J , 3 , 0 ) ; 136 INFORM C C O V E R R I D O E N X B Y ' ) ' ,1) 136 'END'; 137 S I { J ) : » 0 . Ü ; 138 FRE£:»FREE*P(J]; 1 3 9 ' I F ' S E T t l J ' O ' T H E N ' 1 3 9 ' B E G I N ' D t L E I t ( 2 , J ) ; 1 4 1 ' F O R ' K-.a^.i,') ' D ü " I f ' D I V ( P I L O T S ( I ) , K ) ' T H E N ' 142 J U B S L E F H K ) :»JOBSLEf TlKl + CLOCK-STARTlI) 142 'END'-FLSt' DELETE ( 1 , J ) ; 143 S L T [ n : = Ü N l I ] : « P l L O T S l I J : « 0 : 144 ACTI0N;«G; TYPE:«H 145 'END' 145 'END' M O D I F Y ; 145 145 • INTEGER''PROCEDURE' NEXT; 146 'BEGIN'•INTEGER' I . J , K ; 'BOOLEAN' BB; 1 4 / C L U C K : = I I M E M j ; B B : « ' T R U E ' ; 15U ' M ) R ' K ; » 1 , K 0 ' W H I L E ' BB ' A N D ' A B S ( C L O C K - T I M E I K ] ) < « - 8 ' D O ' 1 5 1 ' I F ' E V t N I U , 1 J « 2 ' T H E N ' B B : » ' F A L S E ' : 1 5 2 I : = ' I f ' Bh ' T H E N ' E V E N T 1 1 , H ' E L S E ' 2 ; 1 5 3 J : « ' l f ' BB ' i H t N ' E V E M C / J ' E L S E ' E VEN T t K - 1 , 2 J : 1 5 4 ' I f ' I ' O ' T H E N ' INFORM C C t V E N I X L I S IXEMPTY ' ) ' , 4 ) ; 155 n H E T l ( l , J ) ; 1 5 6 N t X I : < l 1 5 6 ' r N O * N E X i ;

(25)

C 3.

156 156 159 159 159 161 163 165 165 166 171 172 173 173 176 177 179 183 184 187 188 190 190 191 192 193 195 195 196 197 • B 0 0 L E A N " P R 0 C E D U R E ' 0 I V ( A , B ) ; Dl V! «ABS ( A / B - A ' / ' B X 8 - 8 ; 'INTEGER' A . B : STAGEIO]:sO: •FOR' M:«1 'STEP' 'FOR' M:»1 'STEP' 'FOR' M:«101 301 'STEP' 1 'BEGIN' P[H] C 2 t M ] : « R E A D : 'END';

1 'UNTIL' K5 'PO' STAGE(H]t>READ: 1 'UNTIL' K4 'DO' I N T ( M ] : « R E A D ; ' S T E P ' 1 ' U N T I L ' K I , 2 0 1 ' S T E P ' 1 ' U N T I L ' K 2 . • U N T I L ' K 3 ' D O ' « R E A D : X [ M ] : > R E A D : C O ( M ] : « R E A D ; C I ( M ] : « R E A D ; C3[M]:«REA0 RERUN: EVENTS 'FOR' Q[0]:« 'IF' R WRITE 'FOR' 'BEGIN EVENTC 'END' ; INSERT 'FOR' 'BEGIN INSERT 'END' ; 'FOR 'BEGIN

RUN:«RUN«1; CLOCK:>REF[0):«0.0: FREEi'SO: :«STAGENO:«o:

M:«1.2.3 'DO' ONCMJ:»SETCM J:«PILOTS{MJ:«O; 0: Q(1]:«100: Q[21:>200: Q(3]:«300:

UN«1 'THEN' PAPERTHROW:

TEXT C C R U N X X ' ) ' ) : PRINT (RUN,2.0): NEWLINE M:»0 'STEP' 1 'UNTIL' EVLIST 'DO'

TIMElMI:sO.O; M,1]:-EVENT[M.2]:«0 ( 0 , 3 , 0 ) ; M:«1 'STEP' 1 'UNTIL' KO '00* ' RtF(M]:«READ: (REF[M],3,M) (2): H:«1 'STEP' PERIODtM]; 1 'UNTIL' K5 'DO' •REF(STAGE(M]]: 199 200 201 203 203 204 207 208 209 210 211 212 212 213 216 217 218 216 219 223 224 ni> 225 226 227 228 229 229 231 231 232 233 236 237 238

•FOR' N:>2,3,5 'DO' UORKtH.Nlt'O.O 'END';

•FOR' H!«1 'STEP' 1 'UNTIL' K4 'DO' INSERT(READ, 4,INTIM]); 'FOR' M:»101 'STEP' 1 'UNTIL' K1,201 'STEP' 1 'UNTIL' K2, 301 'STEP' 1 'UNTIL' K3 'DO'

' B E G I N " INTEGER' L; ST(M]:«READ: AT(M]:«READ: 'IF' M«1Ü1 'OR' M=201 'OR' Ma301 'THEN^ N:«0; •IF^ C0tM]«SlAGElNl 'THEN' N : « N * 1 :

'FOR' L:»2,3,5 ' 0 0 " ^ ' DIV(P[H),L) 'THEN' WORK I N, L 1 : «WORK I N, L 1 •AT I Ml 'END';

'GOTO' PREDICT;

B1:INF0RM C ( ' C O M M E N C E D ' ) ' , 2 ) :

SETCSTREAM):»0; ONI STREAM]:«ACT I UN; STARTISTHIAM J:«CLU(K; I NSERT(AT[ACT I ON],2,ACT I O N ) ;

'GOTO' A C T [ N E X T ] ;

B2iINF0RM ('('COMPLETED')',2);

QISTREAM] : « A C 1 I O N ; ON[STREAM] : «0 ; FREE : = fREE*PI AtT1 O N ) ; P I LO I SISTREAM):»0; •GOTO' PREDICi;

BirlNFORM ('('REFERENCE')',2);

Q I O J : = A C T I O N ;

'IF' A C T I O N « K O 'THEN' INFORM C C E N O X O F X S 1 MUL ATlON') " . 0 ) ; 'GOTO' PRtOICl; B 4 : I ! < F Ü R M C C I N T E R R U P T ' ) • , 2 ) ; ' 1 F " N 0 T ' DIV(FREE,P(ACTIÜN]) 'THEN' 'bEGIN' PKIORITY:='TRUE'; MODIFY 'END'; S1REAM:=ACTlON'/'lOO; O N l S T R E A M J : « A C T I O N ; F R E £ : « F R E E ' / ' P l A C T I Ü N j ; P U O I S t S t K f » M J : » P t A C T I O N J ; I N S E R M A T I A C T I U N ] , 2 , A C T I O N ) ; ' I f ' A C T I 0 N - Q I S T R K A H ] > 1 ' T H E N ' INFORM ( ' C P R E MA UJHEXI NT E R R U P T ' ) ' , 4 ) ; ' i i O T O ' P R E D I C i ;

(26)

239 PREDICT:'BEGIN*'REAL* T.* 'INTEGERE I; 'BOOLEAN^ MOD;

241 'INTEGER^'ARRAY' U(1]31:

242 'FOR' H:«1.2.3 '00^ 244 'BEGIN' I:«4[M1«1;

246 ' I F ' PILOTS(M]a0 'AND' C O d l •LE* Q ( 0 ] •AND' C K l l ' L E ' Q d l 'AND' 246 C 2 d l ' L E ' 0 ( 2 1 'AND' C 3 d ] ' L E ' 0 ( 3 1 'THEN' U ( H ] : « I ' E L S E ' U [ M ] : « 0

246 «ENO^:

247 REPEATr^IF' U(11»W[2]«UC3]»0 'THEN' 247 'BEGIN* T:»»5: MOD: •• FALSE '»

250 'FOR' H:"1,2.3 '00' 251 'BEGIN' l:«W[H};

253 'If' I#0 'AND' STtlKT 'THEN' 253 •BEGIN^ Ti-STdl:

255 N:«ACTI0N:-I 255 •END'

255 'END';

256 PRIORITY:«'FALSE':

257 'IF' DIV<FREE.PIN)) 'THEN* PRIORITYl»'TRUE'•ELSE * 257 'BEGIN' HOD>>'TRUE'I

259 MODIFY 259 'END';

260 SIREAM:«N'/'100; 261 'IF' PRIORITY 'THEN'

261 'BEGIN' SET[STREAM]t"N; 263 PIL0TS(STREAH]:«P[N1! 264 FREE:«FREE'/'P(N]; 265 INSERT<ST[Nlf1.N) 265 'END'; 266 W(STREAM]:-0:

267 'IF' 1-100 'AND' PRIORITY 'THEM^^GOTO' PREDICT! 268 •GOTO^ REPEAT

268 'END' 268 'END'; 269 'GOTO' ACTINEXTl; 270

270 EXIT!'IF' RUNIKRUNS 'THEN"G0T0* RERUN 270 'END';

271 FREE I N P U T : FREE OUTPUT 272 'END' PROGRAM

Cytaty

Powiązane dokumenty

Diploma work is aimed on comparative analysis and justification of the choice model of estimation SIS, and developing of analytical and

Niepokojący dla dalszego funkcjonowania konwencyjnego systemu ochrony praw człowieka wydaje się fakt, że tak dojrzała demokracja, jak ta panująca w Zjednoczonym Królestwie,

− sprzedawca powinien wyznaczyć kupującemu odpowiedni dodatkowy termin do zapłacenia zaległości, z zagroŜeniem, iŜ w razie bezskutecznego upływu

So, where the mechanisms of social funding, are organically built into the system of economic motives and incentives (Schumpeter called them &#34;unsurpassed in strength and

The difference between Rotation = 1 (with rotation) and Rotation = 0 (without rotation) is that in the first case the stages will deactivate in the same order in which they

There are new technical means, methods of work and education for people with disabilities, making it possible to use a computer, depending on the degree of

The idea of stability in Bayesian robust analysis was developed in M¸ eczarski and Zieli´ nski [5], with some additional results in M¸ eczarski [4] and in Boraty´ nska and M¸

In this paper a cyber attack detection and estimation al- gorithm is presented for a platoon of vehicles using a Cooperative Adaptive Cruise Control (CACC) algorithm and a