ADA165145
ADA165145
ADA165145
llmllllllmlllI
EIIIIIIIEEEIII
EhEEE|EE
111
1 4. 128 12.5
'o111111-
B~B
.1 L1.8
11II111llli .liii ~.
11111.25 II
.|
- %
__ , @ -'~
Wf)
Princeton University
--1 --
.. d
I
: DTIC
• III~ELECTEml
-DTI
L- S%B N%NIjjV.
C Department of
LMechanical and
Aerospace Engineering
ISA!
4-.°
- - - .-- . - * *- i . - *
- -- - -
J,
~11TV
L ASS!FIED
CL. ASSIFICAT10m OF T I PA CE '~,~D' ,Id
/9/9 ' /H
PAGE BEFORE~ CO\IPLETriG FORM4
*REPORT NUMBER 2.GV CESI N1 3. RE' iPIN~T-5 CATALC-O NUM6 R
N/A I /A
A. TILE (nd Sutill) 5.TYPE OF REPORT 6 PERIOD COVERED
9. PERFORMING ORGANIZATION NAME AND ADDRESS 10. PROGRAM ELEMENT. PROJECT. TASK
AREA & WORK UNIT NUMSERS
Princeton University
MAE Department N/A
Princeton, NJ 08544 ____________
Unclassi fied
IS.. DECLASSIFICATION/DOWNGRADING
SCH EDULE
I17. DISrRI 9.1TION STATEMENT (of the abstract entered In Block 20. 1! diffeent If*-" Report)
NA
M0 ASTRAcC&t
cu. revw. se~ It .e*
-cl euidewtly by block nurrbevj
1 7 i <,0-
rR - rfL-
D IF 0.4 1473 EOIrnoOFOI NOV 55IS 0115dtETE 8A U3NCLASS IF IFD
Chien Y. Huang
0June 30, 1984
PRINCETON UNIVERSITY
Department of Mechanical and Aerospace Engineering
Princeton, NJ 08544
.,o.
THE VIEW, OPINIONS, AND/OR FINDINGS CONTAINED IN THIS REPORT ARE
THOSE OF THE AUTHOR(S) AND SHOULD NOT BE CONSTRUED AS AN OFFICIAL
DEPARTMENT OF THE ARMY POSITION, POLICY, OR DECISION, UNLESS SO
"5-.DESIGNATED BY OTHER DOCUMENTATION.
5.%
ABSTRACT
An expert system that provides fault detection and limited fault tol-
Accesion For
NTIS CRA&
DTIC TAB 0
Unannqunced 5
Justification.
BY......................
.. .. .
Distribution I
A- Availability Codes
Avail and I or
Dist Spetal
",' ii-
~ .~ page
Appendix page
Table page
1. The Rules. ... ...... ....... ...... ..... 12
2. Some Utility Procedures of FDIES. ..... ....... ... 16
LIST OF FIGURES
Figure page
1. Fault Detection and Identification Expert System ... ...... 3
2. The Generic Aircraft .. ..... ....... ...... .. 4
3. An Example of Output from BULLETIN. ..... ........ 6
4. An Example of Adding an Entry to TIGER.DATA .. ....... 7
5. Typical Entry of an Inter-equiv Table. ..... ........ 8
6. Searching in Rule Space. ...... .. .. ...... ...... 1
7. Flow Chart of FDIES. .... ...... ....... .... 14
8. Case 1: Faulty Tank. .... ....... ...... .... 19
9. Case 1I: Differing Readings. ....... ...... .... 20
10. Case III: Abnormal Engine .. ...... ....... .... 21
-iv-
1. INTRODUCTION
demands for higher performance. This trend has resulted in the design
safe and successful flight. The general strategy used to ensure online
load, which calls for an intelligent decision-maker that can oversee the
* status of each system and take appropriate actions based on the incom-
-A
z'cm n- * I * ,. • * .. I -
i i i i i
l .. . . .*. n
L ,
+'iin . .=
The alternative that Al offers to the previous problem, therefore, is
~,The
* long-term objectives of the present work are to develop and con-
figure necessary hardware and software for a system that will tackle
the issues just raised. The ultimate goal is to test the functionality
for the generic aircraft used in our study. Section 3 describes the sys-
tem databases, which are the knowledge source for the expert system.
sample run of FDIES for three cases. Finally Section 7 contains the
r4
-2-
Jpi.;6
" PILOT
THE EXPERT-
STATIC % SYSTEM DYNAI C
DATABASE DATABASE
RULE SPACE
CONTROLS
2. SYSTEM BASELINE
components are located in five sections of the aircraft: left wing, right
wing, nose, tail, and cockpit (Fig. 2). A sixth section, rotor, is
IN-
'A.
left wing
____. ,+ cockpit
are at the tip of the left-wing and at the nose. Static pressure sensors
are at the roots of the each wing. Engines are mounted on the wings as
-r well in the tail section. Ailerons are split into two independent sections,
one at tip and other at the mid-section of the wing. All control sur-
-4
S
'4
and other pertinent data are all available (as property lists) to the ex-
pert system in a database called TIGER.DATA. The current readings
by the Al community. Its advantages are ease 'of constructing and mod-
ifying the databases (in form of lists), as well as good symbolic manip-
-5-
|4
3. SYSTEM DATABASES
tem's current structure and status from two databases: one dynamic
stage. BULLETIN also keeps a list of abnormal devices, that is, any
devices that are either faulty or "down." Any alert on the abnormal be-
(left-wing
((airspeed-sensor self 50. phys-equiv 50. analy-equiv 50.)
(engine ok)...)
right-wing
((engine down)
(tank ok)...)
abnormal-devices
((left-wing aileron-1 new-alert)
(right-wing engine down)))
-6-
4. ': : : -'":,.':. -"i¢, ' "--. -. . - ;'- :". -'" ',.-., " ..... , :.:' -: .. , ,; :' .:£. ;,)-
The static database, TIGER.DATA, possesses a complete record of
name under the device's name. This is fashioned after Minsky's frame
(device actuator-1
IN left-wing
((status ok)
(power-source batt-l-node)
(function actuator)
(location middle)
(same-location (engine temp-sensor rpm-sensor ...))
(related-devices (actuator-2))
*(gain 10.0)
(linked-to ((stick-1 stick-2) (aileron-i aileron-2)))
(physical-equiv actuator-2)))
FDIES will record the device "actuator-l" under the left-wing in its
middle of the left wing; that at the same location we find also "engine",
(actuator-I) is lost, the devices of the first list may still be able to
perform their functions if they have other links (actuator-2), but the
devices on the second-list are uncontrollable by the lost device (but are
-7
I',.-:';'' ' .:'...,..;. :''''' ". . ' "- . , ,.,'.". ",'r' ,",.",."- - "-." -'."-.'./ .". .'---".
the first list will be marked as "broken-link", whereas those on the
rect to declare devices for one section in other sections, yet it is cru-
cial for the expert system to know how devices are linked, we include a
lustrated in Fig. 5
(device inter-equiv
'V, OF left-wing
((batt-1 (nose batt-i))
(batt-2 (nose batt-2))
devices (many of which are in other sections) and mark them "unusa-
-8-
zed,
In summary, FDIES's knowledge is contained in BULLETIN and
%.,
4..
'
-9-
K'
.4,
The expert system currently utilizes ten rules ,which are divided
into four groups, to handle failures. Group 1 consists of Rules #1, #2,
and #10. They are used to mark devices in the databases as "down" or
' faulty or to restore them to normal status, respectively. They also are
*, responsible for propagating the effects of the fault to the devices which
are linked to the failed one. Group 2 has Rules #3 and #4; they are
devices in the same location are also abnormal. If not, then Rule #6 is
called. It Rule #6 is not applicable, it will try Rule #7. Rule#8 will ap-
The "if" parts of these rules are not compared exhaustively against
the current alerts. FDIES retrieves and applies only those rules which
are pertinent to the situation. Usually one or two will suffice. This is a
-10-
0C Rule#40-0
Ruleil1 Rule#2 RuleflO Rule#8 Ruie4!6
Ru1e#7
-22
TABLE 1
The Rules
' RULE#1:
IF a device is alerted as down,
THEN mark it "down". This also has the side effect
., of marking the "linked-to" devices as "unusable" or
"broken-link."
" I RULE#2:
IF a device is alerted as faulty,
THEN mark it faulty.
~RU LE#3:
RIF a device's reading is different from that of its
- I equivalent,
THEN check both against the third equivalent's read-
ing (if it exists). If two agree, then the third one is
I declared faulty (by issuing an alert on the
-,, BULLETIN). If none are the same, then the rule
fails.
RULE#4:
IF a device's behavior is different from its analytical
"I equivalent,
THEN see if a new gain or bias can be found by ap-
- plying the routine "generate-and-test."
, RULE#5:
IF a device's reading is considered abnormal,
I.T7HEN check to see if other devices in the common lo-
, Ication are abnormal as well. If so, apply Rule #8;
R otherwise apply Rule #6.
IRULE#6:
IF a device's reading is considered abnormal, and it
I has been determined that some devices in the same
location are normal,
I THEN check to see if related devices are abnormal. If
I so, apply Rule #8; otherwise apply Rule #7.
-12-
2
r I1
I TABLE 1 (concluded)
I RULE#7:
IF a device's reading is abnormal, and some related
devices have been determined to be normal,
ITHEN the device is faulty; issue an alert to this ef-
_.fect. (Implicitly, this has the side-effect of removing
any action caused by the abnormality; e.g., an en-
I gine shutdown due to false reading of a temperature
sensor).
RULE#8:
IF devices common to a particular characteristic are
.I all found to be abnormal,
THEN declare all of them to be faulty and report the
nature of the problem.
RULE#9:
IF the alert is a request by the pilot to check a de-
vice's value,
THEN compare what the expert system knows to what
the pilot believes. This command is usually confined
to display devices that are in the cockpit.
RULE#10:
IF the alert says that a device has returned to nor-
mal,
THEN restore the status of the device to "ok" (in-
cluding its "linked-to" devices).
the aircraft. At present, it can only decide when an alert may be false,
-13-
J ..
ISSUE
NECESSARY
ALERTS
CALL
REPORTER
APPLY
PRIORITYP ALERTS
0
RULES
NO RECONFIGURE
CONTROLS
NO
-14-
REPORTER checks the BULLETIN database for irregularities and warn-
ings. If any are found, REPORTER issues an alert of the proper type
stack). FDIES then "pops" the top alert off the stack and applies the
rules which belong to that particular alert (by using the procedure
APPLY-RULES). FDIES iterates to make sure that all alerts (which are
often issued within the rule being applied) are processed.
.0
-.. 1
50,,.
r
TABLE 2
16-
V...........................................................................-.-
% . --
*: 6. A SAMPLE RUN OF THE EXPERT SYSTEM
ty. We have divided the output roughly into three columns. The first
column shows the operator input to the system. The second one, in
- FDIES. The third column displays comments which are in capital letters
The first one is the simple case of a device (left wing tank) being
-
I found faulty (Fig. 8). In this situation, FDIES put the tank on the ab-
normal device list and declared its "link-to" devices (engine, level-sen-
check with their analytical equivalent showed that sensor-2 was faulty,
vice list. Finally the third one (Fig. 10) was concerned with a device
(left wing engine) being declared abnormal. Since there was no sup-
porting evidence that anything else was wrong, FDIES placed the en-
wz 0
0 .-
o -
ow0
U. w w . )>zt
w w w 4. u A
IL 1- 0 le SM-
CL z 1.-< ;
0. E 4c
di W. - C W z w
4w (A -l 0W -O(.3
ad- t z a.. SM WC >Za
co > 4t. tQ I- a
4I w a I
CAC
U I LL B. in 90 1- x w
w 0 0
w 4
<-
-
KI-
x ~ o
N 4-
tR
-
0
IL
CI -j
~~SM~~ 34..-E W W-
~ 5 -) ----
k. SM le 0W4
win 1 c- a,
:It I' I xn U) in-X
W L V 5L
zM~ SM >- 0-i~ n M4
U) =-400- . E (A a.. -I z 0 41 m
'i-mm
U~ -C41C - LA J -z~ Z < ,-*m
>IW -
w CE S W0 A
XX
.J~p KU).. 5 m t4 z 2; -
0 5. - 0 1 0 Z aia 0 k%5 a.-
a 90 t tQ. x t C a- tQ t. 0 E 00
4 K -4~~~ ZNN.3.4
0 -- o CA
M
a
*4
E ~ Ol~'*C
Z4W'354
-
N-
C
>#-- C 4 - 06-nt
Cs N
v C
E 0SaIQ 0 0C 0 04
*CCQtQLC 4 J 0 -'- -
4J W w
-l 41 -W
e.C0 4- C )
mmt- 0- v - Vm
CLa.- I,
- 91 0)N 0.-.
41 C4N
in
L E0
X 3~.m Ul
0 LL -L U
on 1L 1
.34E1a L. . 00C O e
c c 41 L): 4- +)): 1
II
E 0 V.30~' L.3 CCL--
C
~ 41-
41-di
I
4)t
C ~
~410 c
~ ~ L ~ 4+ OCS4E
0. E~
0me~
43 03 E ~ .-
- C 3IV~) L 0 E4NVL L
43 43 LL 06L 1 0-
n5 0 5 M
. 00- C1 ,
* L.
CCL C S- +31
4 ~~ ~ ~ L mom44, 0. 414-
m
C
c0 N
5.m £1 C3
04) 0)
E .- 0 CC4+0 C.0 I
L 4J4 LC4I IOC L.C4 L
*0 C .0-. ~ 4.' 01-55 +3
41 . LL- .
- CIO- C- + t a
4.' VILIC--a CC
+1 V31 0
* NS s Se- Es 1
4) NVIS-0 W
49 0 6 CL
be-
'A
L&J
44
:1 0 4
<.1 0 0
in I-. 4 0 4
i-u z 0 -
W A ) 4 .- n 4)
Iu-A3 I- z 0 - - 0-
41 0 4- I- Z I-
W I.- U) woo tOI * W
w _* IIx4fL .. . 0 W .
uw m Z >W oz -
Tw N
C 0- w V) - (n 0-X 4J W
IuZ m an L w UMI- II " u
41 w 0 z CA a. Z W ) O- > .< 0
00W x 4- Wl m - OZX - -4)-x
L-
C u C Uw a) 04 WAZ W0 U)
S
:W0 4IQ 0 :I X44 <1) C c Up It
W03 (A 10 SL 0I- = 0- Z -z m d .- 0 w0 I
Wj1 l0 I ZO 0: 4c 4.3W ),a1W z tL 0
LI~~~~> LL C .0 ) 44 0) 41))4
e 0.r.a4 L FA
0~ ) -CM ID44) .4o 0 v
4) 4 4 4) )0e 0. 0.aC M . m
4)4)4. Is
vU,.1 LO 0 - I -)0
4M
:CZ EIn0.L-O >#.. .)
0 1 -. 4) +)t II Q0Lmj0
0 4)4 1 )CEI L t014- - inI
0+
- L N 04) 0 . 0uC+
-L mm
2. -' 811 4 JJ
IC L - C 4)4.2 00: , _0
L n> 0- 00 L 4) . 0. tR) C- 0I. a -
-0 t) V- W C.SE '-,i 0 l 0 L L4) )
4 JLm -:I 4) .v
0~c. 4) 4100 R-J L *v L
C. IC- 0 ISD . - IL 3- 0-
o)vI '- 01 0 0-S- V L. E~0 Nt 0
)V1 C In
-D m0_.-x--S0 In in
C. 004-0 0-0 LOICt
am- >V C 10E IL l( m~ VI- I~- +4)0.V
Wl- X-) 0) 0. C C- L U.C 05
-. 01-- -i-m 0) L.- -O +'4
C IM OCZO Si-4)4) O -- no. C >0-
4 - a. CSE -,u41 0 5
do.. C. %) S ) :a
C -0 4J- cm-:3 4041 C 4.'
L)14~
0.E4JL.-iL-I;;
4)04) .4VC).C U ~ SI 0
CI-L~ X- L. I. I W)14
. l C 0 wl- W
MC-'
:;>. 00 W0- MJ1.
4) 4. LiaC0a,-
0 to :PC 3 04 0 0 - --- 1-mO min 4mm n -
0.0 +.J50W+ 0 .- v.Si- 4J 4CC4 .LL CA j .a- m-S
1- 0m- "a 1 9 J0a -Ci 1 4 C -* - 0 Vu4) *a.
- - SC
soM- L---o " - "m - .- ov
Ii +4) 0.0VJSL SO
LC~ UW .
IO)0 0 4V 4) S -01 0UI -V0
C 0 C CCIO C E01 iOS mE- a4S-
OC.'- >I- i- W) .i- -~
0.4Jl 00
4) 1))4
CO- L-0.. L..- 4- o C
-- m.7
4 i0V04)4JC
4) 0; E) 0C 41 ))).)
.g0.CU4J4 L.OC *J
E. 0. 0~ LL>V4 0Ia*iv
C- 00 vI4 mo a i-S -4J 4-V
C ) a- 0-
0 in- S 4)I v ~ 0) ). 44-+ 0 4)L
01)C C0S) C EV - at - a C) 0
Oa.'4 S-04 -a 0 L a a -a -a Ca 0
g- t- 0 - - -a) -a -a .80+'
4) 4v C 0 1- 1 Si
I-W CC
L L L
v 415
0d
o
-. >
-
0. .0
*.~...
.
-JL
LL. - w
1 4
:i L 0
(A 4Zcn
0. N 0- 0
(O CC I W< 0 u
WWL. L1- w i> wA -
cCA0 50u- 0 z
-3
_w z 01)Wm 0 w z
-ACIZ X M CL 4( w 0
"WW V)WX 0 * c
LL. . w-f 0 XI ... w 0~ 04
0 L'. W.. 0 LM04c 3a - (A
0- -1 . t- wA - 4 -
4t0 =J V.J A.C>( 7 . 0W U
0.43W Ot
4- w-i x -z -. ..- C
4W
z ox >CI 0 MI 4> x
ZU
x.- - 44 > W I
:101- > (A. ;./ t-O W/0 <
I.- I. -OL our 03 4 I- -
u - v 4( t j 0 0 Zo- 1 0
trI
WZ -. >1-
14- 0~t w 1 -4- -IZ *1
a UWI- 4 V - W xi " 0
ZI~ - C- - 0 Wme R
tw< tQ 0-g
a mIt .. z UIA.LZ tugmi t ).O z 03
*OmIA WO C M 0 www C * t Z Mu w
z W.
i nm0 tR Ct w l 0 _ Af(. tv -4
3 < -
t1
*et.g 0 4 *ae Is cg
- - g*~ ~ C C C CCW b-- LC C
i00n 0
-5 74- 4) 4- I
CL
.- Jc I. I L o CY CC
1- O
00 1 OIn 0 In1
>14 0E)C-go
L. Cj-46
06136~ ix C Rs
t 0s. - IWI>,- C) V .0(
tR IRm
a) 9LIQ 1 )E in (A4 L. L Ri
0 )I) . .L1 C Q ULc 41 -
.ccEE no - -.005r- 0) :1
v --
0 ~0X~ 00.
~ ~ ~ ~ ~ 4- 4a 4 cm
fM-Cm
Q
C-I
C
l
40-'
C1
V
v -i R- )0 Rt)
al 41 v al
S U -
0Ix
.0 'U A V
1%z
0 1
m W LI
90 w0 w
4c i 1-W
w 1- 4( L AI Wz> I-(
0 cow .- z C
Oa W W0- 5
0 z- .ca 0 =3. I. wA(
can V00 c 4i
.--
A~~ 4 W NI W cefl
LfC1 IV) w ) IIW- Z<<2
= _iuJ c=W00 0ww
4c - - >WO .-.
C 1 -, WW
X= W~ (A u CL 0
ILmoi x~ - .I-w i
-<0
o
w wZ WW> ~ V11 Li
W 0 4o UO-- vI 0
4wD <I-Z~
xuO Z-0 4W a uW I m ZI- 7
W-W3
; W w- 4 wujw :,( -00. C
X >lr 1.a00 - C 0.Z-4 0 _rnw
(A.C3,0I- .-ALw a: Z:
z0 me
W
4 OWWW ..- 00 W-16- ZZZ
lot
0 0.
4j 0. 4-- -
m tmin
CD a.62C00
23 >, C (
1 - 400
cN0 -f 43- -
m I
II- C-1
41 -o -43
m Q4-
02.'a.> 00 , 0
* Y 62. .3..J c-ODO26
0 L 4 434
-Noa ~21- 0
L. v6 2 I
0C %
14
.30 0. 03 - .x43 0
0 .&c 0 4)" 10i 0-
)in 62 414.C
0 C L L in
- . Im I C 0 4 L 0-
%-a. .043 -431 In m 0 L V)2
pLUI
*6 I CL %-in6U C
VU 4) 0C 6226 V3-4 M0IV
* 48
1 433 1 1 W-,'A
43 U216 . L C34E64E43
I 4J- 4 . 0.3 aa 00 0 262L V
c2 43%-%- a) 0 - ::243.gata 62:
C 6l .3a
tv~ LL Cn4
0-4I- 0 4 j6.41 04
0244 41 43 cU
-- --
C~7 E.E6.
3 L. >- 0
3 00 N~. 03
.3~
.0- -a- -aL-
I
43 I 6
0 0 4 . 0
>
4A-0
62 >14
-'~~
o 06
.0 I
6 43 .3 .
a o a.
7. CONCLUSIONS AND FUTURE WORK
the features of fault tolerance has been developed. The former is ex-
data.
Looking ahead, there is' a great deal of work yet to be done. Nota-
ble is the addition of the function that will be able to reconfigure the
"1 also will study teaching methodologies that will enable experts to aug-
ment our knowledge base on fault detection. Implementation of these fa-
-22-
I '.,.-% %-
BIBLIOGRAPHY
- 3
I,
.' ~~ ~ ~ - ~ ~ peni A.- w-.'.-,--
rently recognizes.
-24-
Lt -t'.
'~pheric-pressure-ind-i atmospheric-pressure-ind-2 fuel-
V gauge-i fuel-gauge-2 horizon-ind-i horizon-ind-2 altitude-
batt-2-node.
ROTOR: main-rotor transmission engine tank level-sensor-i temp-
sensor rpm-sensor pressure-sensor swashplate
batt- I -node.
25-
Appendix B
(setq bulletin
'Oeft-wing
((airspeed-sensor-I self 100.0 phys-equiv 100.0 analy-equiv 100.0)
airspeed-sensor-2 self 100.0 phys-equiv 100.0 analy-equiv 100.0)
static-sensor-I sell 12.0 phys-equiv 12.0 analy-equiv 12.5~
static-sensor-2 self 12.0 phys-equiv 12.0 analy-equiv 12.5)
level-sensor-i self 1000.0)
temp-sensor sell 500.0)
rpm-sensor sell 10000.0)
pressure-sensor 100.0)
aileron-i self ok)
aileron-2 self ok)
actuator-i sell ok)
actuator-2 self ok)
tank self ok)
4 engine Ok)
r5 batt-i-node sell 24.0)
batt-2-node self 24.0))
righ-wing
((stai-esrisl120py-qi120aay-qv125
(static-sensor-2 self 12.0 p hys-equiv 12.0 analy-equiv 12.5)
level-senisor-i self 1000.0)
temp-sensor self 500.0)
rpm--sensor self 10000.0)
pressure-sensor 100.0)
aileron-i self ok)
alleron-2 self ok)
actuator-I self ok)
actuator-2 self ok)
tank self ok)
engine self ok)
batt-i-node sell 24.0)
batt-2-node self 24.0))
nose
((airspeed-sensor-i sell 100.0 phys-equiv 100.0 analy-equlv 100.0)
airspeed-sensor-2 self 100.0 phys-equiv 100.0 analy-equiv 100.0)
batt-1 self 24.0)
batt-2 self 24.0)
gyro-i.i sel 1.0)_
gyro-1.2 self 2.1)
1gyro-1.3 sef05
gyro-2.i sel:f 10)
gyro-2.2 self 2.1)
RYro 2.3 self 0.5)
antenna self ok)
radar- I sell ok)
accelerometer-I sell 5.0)
accelerometer-2 self 2.0)
((temp-sensor self 500 0)
rpm--sensor self 10000.0)
pressure--sensor sell 100.0)
rudder sell ok)
lelevator-I self ok)
-26-
elevator-2 self ok)
actuator-I self ok)
actuator-2 self ok)
actuator-3 self ok)
actuator-4 self ok)
batt-1-node self 24.0)
* (batt-2-node self 24.0))
cockpit
((airspeed-ind-I self 100.0 phys-equiv 100.0)
airspeed-ind-2 self 100.0 phys-equiv 100.0)
climb-rate-ind -I self 0.5 phys-equiv 0.5
climb-rate-ind-2 self 0.5 phys-equiv 0.5
engines-rpm-ind-I self (10000.0 10000.0 10000.0) phys-equiv (10000.0 10000.0 10000.0))
engines-rpm-ind-2 self (10000.0 10000.0 10000.0) phys-equiv (10000.0 10000.0 10000.0))
manifold-pressure-ind-i self (100.0 100.0 100.0) phys-equiv (100.0 100.0 100.0))
manifold-pressure-ind-2 self (100.0 100.0 100.0) phys-equiv (100.0 100.0 100.0))
engines-temp-ind-I self (500.0 500.0 500.0) phys-equiv (500.0 500.0 500.0))
engines-temp-ind-2 self (500.0 500.0 500.0) phys-equiv (500.0 500.0 500.0))
atmospheric-pressure-ind-I self 11.5 phys-equiv 11.5)
atmospheric-pressure-ind-2 self 11.5 phys-equiv 11.5)
fuel-gauge-I self 1000.0 phys-equiv 1000.0)
fuel-gauge-2 self 1000.0 phys-equiv 1000.0)
altitude-ind-1 self 1000.0 phys-equiv 1000.0)
* sltitude-ind-2 self 1000.0 phys-equiv 1000.0)
stick-I self ok
stick-2 self ok)
pedal-I self ok)
pedal-2 self ok)
radio-I self ok)
horizon-ind-I self ok)
horizon-ind-2 self ok)
display-driver-I self ok)
display-driver-2 self ok)
A/DI-8 self ok)
A/D9-16 self ok)
A/D17-24 self ok)
A/D15-32 self ok)
batt-1-node self 24.0)
batt-2-node self 24.0))
rotor
((level-sensor-1 self 1000.0)
temp-sensor self 500.0)
rpm-sensor self 10000.0)
pressure-sensor self 100.0)
engine self ok)
,swashplate self ok)
main-rotor self ok)
batt-I-node self 24.0))
abnormal-devices
'-example (section-name device-name status (down, faulty or new-alert))
(nil)))
-27-
U-
Appendix C
THE TIGER.DATA DATABASE
This appendix contains the static database declarations which are made
A -28-
-29-
%
(device engine
IN Ieft-win
((Status ok)
power-source batt-l-node)
Sfunction propulsion)
location middle)
same-location (temp-sensor rpm-sensor pressure-sensor aileron-2 actuator-I
actuator-2))
(linked-ta ((tank) (temp-sensor rpm-sensor pressure-sensor)))))
(device temp-sensor
IN left-wi*
.r: ((status ok)
(function sensor)
(location middle)
(same-location (engine rpm-sensor pressure-sensor aileron-2 actuator-I actuator-2))
(related-devices (rmp-sensor pressure-sensor))
(linked-to ((engine A/DO)))))
(device rpm-sensor
.9. IN left-wing
((status 0k)
* (power-source batt-l-node)
(function sensor)
(location middle)
(same-location (engine temp-sensor pressure-sensor aileron-2 actuator-i actuator-2))
(related-devices (temp-sensor pressure-sensor))
(linked-to ((engine A/D7)))))
(device pressure-sensor
IN left-wing
((status ok)
(power-source batt-l-node)
~function sensor)
Ilocation middle)
d (same-location (engine rpm-sensor pressure-sensor aileron-2 actuator-i actuator-2))
~related-devices (temp-sensor rpm-sensor))
Ilinked-to ((engine A/D5)))))
(device batt-I-node
IN left-win
((status okf
(function battery)
(location root)
(mie-location (static-press ure -sensor- I static-pressure--sensor-2 tank
level -sensor-I1))
(linked-to ((batt -1) (airspeed -sensor- I static-pressure--sensor- I actuator-I
engine level-sensor- I temp-sensor rpm-sensor pressure -sensor)))))
(device batt-2-node
INleft-wi
-30.
.4e ,
9...-
-' 9' , - -'r - L - . ,- l,-,. - ,' _. % .-.
A,1)3 (cockpit A/D 1-8))
A/D4 (cockpit A/D25-32))
A/D5 (cockpit A/D 1-8)
'A/D6 (cockpit A/D 1-8))
A/'D7 (cockpit A/D 1-8))
IAAD8 (cockpit A/D1-8))
stick-i (cockpit stick-i)
stick-2 (cockpit stick-2))
I3
RIGHT-WING ***
-32-
(same-location (engine temp-sensor rpm-sensor pressure-sensor aileron-2
actuator-I))
(related-devices (actuator-i))
(gain 10.0)
(linked-to ((stick-i stick-2) (aileron)))
(physical-equiv actuator-I)))
(device tank
IN right-wing
((status ok)
(function storage)
(location root)
(same-location (static-pressure-sensor-1 satic-pressure-sensor-2
level-sensor-i batt-l-node batt-2-node))
(related-devices (level-sensor-1))
(linked-to (0 (engine level-sensor-i)))))
(device level-sensor-I
[N right-wing
((status ok)
(power-source batt-1-node)
(function sensor)
(location root)
(same-location (static-pressure -sensor-1 static-pressure-sensor-2 tank
* batt-l-node batt-2-node))
(linked-to ((tank A/D5)))))
(device engine
IN right-wing
((status ok)
(power-source batt- l-node)
function propulsion)
location middle)
.same-location (temp-sensor rpm-sensor pressure-sensor aileron-2 actuator-I
actuator-2))
(linked-to ((tank) (temp-sensor rpm-sensor pressure-sensor)))))
(device temp-sensor
IN right-wing
((status ok)
power-source batt- l-node)
function sensor)
location middle)
same-location (engine rpm-sensor pressure-sensor aileron-2 actuator-1 actuator-2))
related-devices (rmp-sensor pressure-sensor))
linked-to ((engine A/D6)))))
(device rpm-sensor
IN right-wing
((status ok)
power-source batt- 1-node)
function sensor)
location middle)
same-location (engine temp-sensor pressure-sensor aileron-2 actuator-I actuator-2))
related-devices (temp-sensor pressure-sensor))
linked-to ((engine A/D?)))))
(device pressure-senscr
IN right-wing
((status ok)
(power-source batt-i-node)
(function sensor)
(location middle)
(same-location (engine rpm-sensor pressure-sensor aileron-2 actuator-I actuator-2))
(related-devices (temp-sensor rpm-sensor))
-33-
(linked-to ((engine AA)8)))))
(device batt-i-node
IN right-wing
((status ok)
(function battery)
(location root)
(same -location (static-pressure -sensor-iI tatlc-pressure-sensor-2 tank
level-sensor-I))
(linked-to ((batt-i) (saaic--press ure -sensor- 1 actuator-i
engine level-sensor-i temp-sensor rpm--sensor pressure--sensor))
(device batt-2-node
IN right-wing
((status ok)
(function battery)
(same-location (xtatic-pressure -sensor- I static-pressure-sensor-i tank
level-sensor-I))
(linked-to ((batt-2) (airspeed-sensor-2 static-pressure-sensor-2 actuator-2)))))
(device inter-equiv
OF right-wing
((batt-I (nose batt-i))
batt-2 (nose batt-2))
A/D3 (cockpit A/fl1-8))
A/D4 (cockpit A/D25-32))
* A/fl5 (cockpit A/fl 1-8))
A/D6 (cockpit A/D9- 16)
'A/D7 (cockpit A/1)9-16))
A/fl8 (cockpit A/fl9-16)
stick-I (cockpit stick-I))
stick-2 (cockpit stick-2))))
7I..
-34-
-I
- -.-.-. - -I- - . . ..---.--
^**********$# NOSE SECTION
(device airspeed-sensor-i
* ~ IN nose
((status ok)
Spower-source batt-i)
function sensor)
same-location (airspeed -sensor-2 batt -1 batt-2 gyro- 1.1
gyro-l.2 gyro-l.3 gyro-2.i gyro-2.2 gyro-2.3 accelerometer-I
acceleromeler-2 radar-, antenna))
related-devices (airspeed-sensor-i))
~linked-to ((A/ni))
physical-equiv airpseed-sensor-2)
~analytical -equiv Jif-needed-sensori)))
(device airspeed--senisor-2
IN nose
((status ok)
power-source batt-2)
(flunction !qensor)
(same-locaticr (airspeed--sensor- I batt-i batt-2 gyro-1.i
gyro-1.2 gyro-i.3 gyro-2.1 gyro-2.2 gyro-2.3 accelerometer-i
accelerometer-2 radar-i antenna))
* (related-devices (airspeed-sensor-i))
(linked-to ((A4)2)))
(physical-equwv airs pe ed-sensor-i1)
(analytical-equiv if-nieeded-sensori)))
(device batt-i
IN nose
((status ok)
function battery)
samne-location (airspeed-sensor-i airspeed-sensor-2 batt-2 gyro-i.i
gyro-i.2 gyro-i.3 gyro-2.1 gyro-2.2 gyro-2.3 accelerometer-i
accelerometer-2 radar-i antenna))
(linked-to (0 (batt-i-wing batt-i-rwinig batt-i-tail batt-i-cockpit
batt- i-rotor airspeed -sensor-i1 gyro-I accelerometer radar-i)))))
(device batt-2
IN nose
* ((status ok)
(function battery)
(same-location (airspeed-sensor-i airspeed--sensor-2 batt-i gyro-i.1
gyro-i.2 gyro-1.3 gyro-2.1 gyro-2.2 gyro-2.3 accelerometer-i
accelerometer-2 radar-i antenna))
(linked-to (0 (batt-2-lwing batt-2-rwing batt-2-tail batt-2-cockpit
airspeed-sensor-2 gyro-2)))))
(device gyro-i.i
IN nose
((status ok)
power-source batt-i)
function sensor)
isame-location (airspeed -sensor- I airspeed-sensor-2 batt-i bott-2
gyro-1.2 gyro-1.3 gyro-2.i gyro-2.2 gyro-2.3 accelerometer-i
accelerometer-2 radar-i antenna))
(related-devices (gyro-1.2 gyro-1.3))
(linked-to ((A/Do)))
(pysical-equiv gyro-2. 1)))
(device gyro-i.2
IN nose
((status ok)
(power-source batt-i)
* -35-
.7.'
.JV.
~functioni sensor)
same-location (airspeed-sensor-I airspeed-sensor-2 batt-I batt-2 gyro-l.l
gyro-i.3 gyro-2.1 gyro-2.2 gyro-2.3 accelerometer-i
accelerometer-2 radar-i antenna))
related-devices (gy~ro-1.l gyro-1.3))
linked-to ((A/D4)))
pysical-equiv gyro-2.2)))
(device gyro- 1.3
[N nose
((status ok)
Spower-source batt-1)
function sensor)
isame-location (airspeed -sensor- I airspeed -sensor-2 batt-I batt-2 gyro-i.i
gyro- 1.2 gyro-2. I gyro-2.2 gyro-2.3 accelerometer-i
(reate-deice (accelerometer-2 radar-i antenna))
(relatd-devies (rro-1.1 gyro-i.2))
(lned-to ((AAI)5) )
(physical-equiv gyro- 2.3)))
(device gyro-2. I
IN nose
((status ok)
Spower-source batt-2)
function sensor)
* - same-location (airspeed-sensor-i airspeed-sensor-2 batt-i batt-2 gyro-i.1
* gyro-1.2 gyro-1.3 gyro-2.2 gyro-2.3 accelerometer-i
accelerometer-2 radar-i antenna))
irelated-devices (gy~ro-2.2 gyro-2.3))
(linked-to ((A/D6)))
r (physical-equiv gyro-1.1)))
(device gyro-2.2
IN nose
((status ok)
(power-source batt-2)
(function sensor)
(same-location (airspeed -sensor- I airspeed-sensor-2 batt-1 batt-2 gyro-i.I
gyro-1.2 gyro-1.3 gyro-2.i gyro-2.3 accelerometer-I
accelerometer-2 radar-i antenna))
(related-devices (yo-2.1 gyro-2.3))
* linked-to ((A/D7) )r
physical-equiv gyro- 1.2)))
(device gyro-2.3
I(power-source
IN nose
((status ok)
ifunction sensor)
batt-2)
(same-location (airspeed -sensor- I airspeed -sensor-2 batt-i batt-2 gyro-i.i
-36-
(linked-to ((A/Dg)))))
(device accelerometer-2
IN nose
((status ok)'
(poer-source batt-2)
fuction sensor)
same-location (airspeed-sensor-i airspeed-sensor-2 batt- 1 batt-2 gyro- 1.1
gyro-1.2 gyro-i.3 gyro-2.1 gyro-2.2 gyro-2.3 accelerometer-i
radar-i antenna)
Srelated-devices (accelerometer-i1))
Ilinked-to ((A/D 10)))))
(device radar-i
IN nose
((status ok)
(ower-source batt- i)
(function sensolr) pe
sno-Iarpe
(same-location (arpe-esriarpe-sensor-2 batt- 1 batt-2 gyro- 1.1
gyro-1.2 gyro-1.3 gyro-2.1 gyro-2.2 gyro-2.3 accelerometer-i
accelerometer-2 antenna))
(linked-to ((parallel-input)))))
(device antenna
4 IN nose
((status ok)
function communication)
same-location (airspeed-sensor-i airspeed-sensor-2 batt- 1 batt-2 gyro- 1.1
gyro-1.2 gyro-1.3 gyro-2.1 gyro-2.2 gyro-2.3 accelerometer-i
accelerometer-2 radar-i))
(linked-to ((radio)))))
(device inter-equiv
OF nose
((batt-l-lwing (tail batt-i-node))
batt-i-rwing (ih-wing batt-1-node))
batt-i-i (tail batt-l-nde))
batt-i-cockpit (cockpit batt-i-node))
batt-i-rotor (rotor batt---node))
batt-2-wing (tail batt-2-node))
batt-2-rwi ng (right-wing batt-2-node))
-' batt-2-tail (tail batt-2-node))
batt-2-cockpit (cockpit batt-2-node))
AAD1 cockpit A/D9- 16))
A/*D2 cockpit A/9-16)
A/D3 cockpit A/Dg-16)
A/D4 cockpit AAD9- 16))
A/D5 Icockpit A,'D9- 16)
A/D6 cockpit A/D25:32)
A/V7 cockpit &/D25-32)
AA)8 cockpit A/D2) 3
A/D9 kcockpit A/D 17-24))
A%'I0 (cockpit A/D17-24))
radio (cockpit radio))
Iparalell-input (cockpit parallel-input))))
000 TAIL SECTION 000000000
(device engine
IN tail
((status ok)
(power-source batt-i-node)
(function propulsion)
(same-location (temp-sensor rpm-sensor pressure-sensor rudder actuator-i
actuator-2 actuator-3 actuator-4))
-37-
related-devices (temp-sensor rpm-sensor pressure-sensor))
Slinked-to ((tank) (temp-sensor rpm-sensor pressure-sensor)))))
(device temp-sensor
[N tail
((status ok)
4 (power-source batt-1-nodle)
(function sensor)
(samie-location (engine rpm-sensor pressure-sensor rudder actuator-I
actua*tor-2 actuator-3 actuator-4))
Srelated-devices (rpm-sensor pressure-sensor))
liked-to ((engine A/Di)))))
(device rpmn-sensor
IN tail
((status ok)
(power-source batt- 1-node)
(function sensor)
(same-location (engine temp-sensor pressure -sensor rudder actuator-i
actuator-2 actuator-3 actuator-4))
Srelated-devices (temp-sensor pressure-sensor))
ilinked-to ((engine A/D2)))))
* (device pressure-sensor
IN tail
* ((status ok)
( power-source batt- 1-node)
Sfunction sensor)
same-location (engine temp-sensor rpm--sensor rudder actuator-i
actuator-2 actuator-3 actuator-4))
(related-devices (temp-sensor rpm-sensor))
(linked-to ((engine A/D3)))))
(device rudder
IN tail
((status ok)
Sfunction effector)
same-location (engine temp--sensor rpm-sensor pressure-sensor actuator-I
actuator-2 actuator-3 actuator-4))
(linked-to ((actuator- 1 actuator-2)))))
(device actuator-i
IN tail
((status ok)
(power-source batt- 1-node)
fuain ac0.0) r
gaiunn actutor
Isame-location (engine temp--sensor rpm-sensor pressure-sensor rudder
actuator-2 actuator-3 actuator-4))
Slinked-to ((pedal-i pedal-2) (rudder)))
physical-equiv actuator-2)))))
* (device act uator-2
IN tail
((status ok)
hower-source batt-2-node)
function actuator)
gain 10.0)
raame-location (engine temp-sensor rpm-sensor pressure--sensor rudder
[
actuator-I actuator-3 actuator-4))
(linked-to ((pedal-i pedal-2) (rudder)))
(pysical-equiv actuator-i)))))
(device elevator-i
IN
tail -6
I3
((status ok)
(location right)
(function effector)
(lnked-to ((actuator-2)))))
-. - (device elev''or-2
IN tall
((status ok)
i location left)
function effector)
linked-to ((actuator-2)))))
(device actuator-3
IN tal
((ttsok)
=towr-source batt- i-node)
tfunction actuator)
tgain 10.0)
(same-location (engine temp--sensor rpm-sensor pressure-sensor rudder
-~ actuator-I actuator-2 actuator-4))
(linked-to ((stick-i stick-2) (elevator-i elevator-2)))
(pysical-equiv actuator-4)))))
(device actuator-4
IN tail
* ((status ok)
Spower-source batt-2-node)
function actuator)
gain 10.0)
Isame-location (engine temp-sensor rpm-sensor pressure-sensor rudder
actuator-i actuator-2 actuator-3))
(linked-to ((stick-I stick-2) (elevator-i elevator-2)))
(physical-equiv actuator-3)))))
(device batt-l-node
(sttus ok)
* (function battery)
(linked-to ((batt-i) (actuator-I actuator-3 engine temp-sensor rpm-sensor
pressure-sensor)))))
(device batt-2-node
h~J IN tail
((status ok)
(function battery)
(linked-to ((batt-2) (actuator-2 actuator-4)))))
(device inter-equiv
OF tUL
((batt-I-node (nose batt-l))
batt-2-node (nose batt-2))
AA)1 (cockpit A/fl17-24)
A/D2 (cockpit A/D 17-24)
A/D3 (cockpit A/fl17-24))
stick-I (cockpit stick-)
stick-2 (cockpit stick-2)
pedal-I (cockpit pedal-I)
pedal-2 (cockpit pedal-21)
pV.
- *****eeee~COCKPITSECION O*****~
(device stick-i
IN cockpit
((status ok)
(function control)
9 lnked-to (0 (actuator-I actuator-2 actuator-3 aetuator-4)))
hyxical-equiv stick-2)))
SN
(device peda-i
IN cockpit
((status ok)
(function control)
( linked-to (0 (actuator-I actuator-2 c))) r- ctaor4
(hyuical-equv sedal-2)))
(device pedal-2
IN cockpit
((status ok)
(function control)
4 (linked-to (Q (actuator--5 actuator-C)))
UphysicaI-equiv pedal-i)))
(device reai-I
IN cockpit
((status ok)
(function comnt cation
=inked-to (0 (antena)))))cuto-6)
* ~(device aie-md-
IN cockpit
((status ok)
(po'wer-source batt- i-node)
(function domsplaon
(linked-to ((d)spay-ier))))
L
* (device .Jrspeed-ind-I
IN cockpit
((status ok)
ower-source batt-2-node)
function display)
linked-to ((display-driver-)))
1hysical-equiv airspeed-ind-i)))
* (device cimrte-ind-i
IN cockpit
(status ok)
hower-source batt- I-node)
(function display)
(linked-to ((display-driver-I)))
(physical-equiv cimrte-ind-2)))
(device climb-rate-ind-2
IN cockpit
((status ok)
(ower-source batt-2-iode)
U dis-I0-
link...........................,*
dipa-d.e-1) d-to~ (.-.*****.tein
phyzicl-equi 2)))*.
(linked-to ((dispay-driver-2)))
(phyzical-.qulv atmospheic-prewir'e-ind-l)))
(device fuel-gauge-I
IN cockpit
(status ok)
~pwer-source batt- I-node)
function dis(PIaY)
bnked-to (display-driver-i
(physlral-equiv fuei-gauge-2M
(device fuel-gauge-2
IN cockpit
((status ok)
poe-ource batt-2-node)
fnc oniplay)
inked-to ((display-driver-2))M
(device horizon-iad-I
IN cockpit
((status ok)
$ower-source batt- I-node)
function didlay rvr-)
inked to ipa-rv-1)
*h iphysical-equiv horizon-ind-2)))
OW
(device horizon-tad-I
IN cockpit
(status ok)
(power-source batt-2-node)
(function display)
(linked-to ((dispiay-driver-2)))
(physical-equiv horizon-ind- 1)))
Lpower-source
(device altitude-ind-i
IN cockpit
((status ok)
batt- 1-node)
function display)
linked- to ((display-driver-i))
thysical-equiv altitude-mnd!))
(device altitude-ind-2
IN cockpit
(tatus ok)
(power-source batt-2-node)
(function display)
(linked-to ((display-driver-2)))
fphyslca]-equiv altitude -ind-I ,)
(device display-driver-I
*Di cockpit
(status ok)
(pwer-source batt-i-node)
(function driver)
(linaked-to ((000a-iot of devices 000)
(hysical-equiv display--driver-2)))
OW
(device dispiay-driver-2
IN cockpit
((status ok
Pover-source batt-2-node)
fcton driver)
Ilinked-to ( a lot of devices ~)
4 2-
lay)
"nk~ed-todis((display-drtver-2)))
Sfuncton
byuical-equiv climb-rate-ind-I)))
(device engines-rpm-lnd-l
[N cockpit
((status ok)
ower-zource batt- 1-node)
~ed-to ((diplay-driver-I)))
fiphysical-equiv engines-rpzn-ind-2)))
2 (device englnes-rpm-Ind-2
IN cockpit
((status ok) btt-uo)
function dIsplay)
linked-to ((display-driver-2)))
hysicai-equiv engines-rpm-Imd-i)))
(device manifold-pressure-IUnd-i
IN cockpit
((status ok)
(power-source batt- 1-node)
~function displ A
(linked-to ((diplay-driver-I)))
(phyuical-equiv rnanifold-pressu.-e-ind-2)))
(device znanifold-pressure-ind-2
[N cockpit
((Status ok)
(power-source batt-2-node)
(unction display)
(philysical-ec'ii ranilold-pressure-ind-I)))
(device engines-temp-Ind-I
IN cockpit
(powe=r-sonurce batt- 1-node)
(function display)
(linked-to ((display-driver-)))
(physical-equiv engines-temp-ind-2)))
(device englaes-temp-Ind-2
[N cockpit
((status ok)
(power -source batt-2-node)
* (function display)
~ed-to ((display-driver-2)))
(hysical-equlv engines-temp-ind-i)))
(device atmospheric-pressure-mnd-I
[N cockpit
((status ok)
(ower-source bat t- I-node)
(function display)
(nked-to ((M play-driver-I)))
1hyuical--equiv atxnospberc-preusure-ind-2)))
(device atniospberte-pressure-ind-2
IN cockpit
(sxtatus ok)
Spower-source lbatt-2-node)
ftunction display)
-41-
***_54 *%*--r-.'Z'.*
(phyuical-..quiv display-driver-i)))
(device A/D1-Oa
IN cockpit
((status ok)
rw-ource bett-i-node)
(linked-to ((sensor- 1 sensor-2 2ensor-S sensor-4 sensor-5 sensor-6 sensor-?
sensor-O)))
(device A/DQ-16
IN cockpit )
a -1 v d
k)
(status
~function converter)
(linked-to ((sensor-O sensor-lO sensor-11 sex-3or-12 sensor-iS sensor-14
.ensor-25 sensor- 16)))))
(device ",~17-24
IN cockpit
((status ok) bt--oe
(power-source atIne
(function converter)
(linked-to ((sensor-i? sensor-lB sensor-19 sensor-20 sensor-21 sensor-22
* sensor-23 sensor-24)))))
(device A"D25-32
IN cockpit
((statux ok)
Spower-2ource bett-2-iode)
function converter)
linked-to ((sensor-25 sensor-26 sensor-2? sensor-28 sensor-29 sensor-30
sensor-S I)))))
(device batt-l-node
IN cockpit
((status ok)
Sfunction battery)
ilinked-to ((batt-i) (radio-I airspeed-ind-I climb-rate-mad-I fuel-gauge-i
engines-rpm-mnd-I mnanifold-pressure-nd -1
engines-temp-ind-I horizon-id-I altitude-ind-I
display-driver-I A/Dl-fl A/D9-16 A/D17-24)))))
(device batt-2-node
IN cockpit
((status ok)
(linked-to ((batt-2) (airspeed-ind-2 climb-rate-ind-2 fuel-gauge-2
engines-rprn-ind-2 mnanifold -pressure-ind-2
engines-temp-lnd-2 horizon-ind-2 altitude-ind-2
display-driver-2 A/D25-32)))))
(device inter-quv
OF cockpit
(btt-I (nose batt-I))
batt-2 (nose batt-2))
actuator-I (left-wing actuator))
act uator-2 (right-wing actuator))
actuator-S (tail actuator-)
actuator-4 (tail act uator-2)
V.actuator-5 (tatil actuator-S)
V.. actuator-C (talJ-actuator-4)
*sensor-I Qeft-wing airpseed -sensor-I1))
sensr-2 left-wing static-pressure-sensor1)
sensor-3 (left-wing level--sensor-I1))
%&unsor-4 (eft-wing ternp-sensor))
-43-
--- --- --
Ai
44
A _".
MAIN-ROTOR (HELICOPTER ONLY) ***.*****
(device main-rotor
IN rotor
((status ok)
* (device transmission
1N rotor
((status ok)
* (function driver)
(linked-La ((engine) (main-rotor)))))
(device engine
[N rotor
((status ok)
Spower-source batt- 1-node)
funcition propulsion)
linked-to ((tank) (transmission temp-sensor rpm-sensor pressure--sensor)))))
(device tank
IN rotor
((status ok)
(function storage)
* (liked-to (Q(Jergine level-sensor-I)))))
(device level-sensor-i
IN rotor
(power-source batt-node-1)
(function sersor)
(linked-to ((ank A4)M)))))
(vice temp-sensor
[N rotor
((status ok)
(pwe-source batt-1-node)
(functio sensor)
(linked-to ((engine A'l6)))
0 (device rpm-sensor
IN rotor
((status ok)
powe-source batt- 1-node)
luc~nsensor)
linked-to ((engine A./D7)))))
(device pressure-sensor
IN rotor
((status ok)
Sp er-source batt-1-node)
fuction sensor)
linked-to ((engine AA)8)))))
(vice mwashplate
[N rotor
((status ok)
(function effector)
-: (linked-to ((collective-.stick)))))
* (device batt-1-node
IN rotor
((status ok)
(function battery)
V - 4.5-
4 (linked-La ((bttL-l) (engine level-sensor-I temp--sensor rpm-sensor
pressure-sensor)))))
IA/D5
(device inter-equlv
OF rotor
((batt-1 (nose. batt-l))
(cockpit A/l7-24)
A/D6 (cockpit U/D17-24~
A/f? cockpit A/D 17-24
jA/8
lockitA/)33-401
collective-stick (cockpit collective-stick-1)
(cockpit collective-stick-2))))
04
Appendix D
This appendix contains the source listing for the ten rules presently
(rules rule#l
F (down ?device)
THEN (mark-device (car ?device) (cadr ?device) 'down))
(rules rule2
IF (faulty ?device)
THEN (mark-device (car ?device) (cadr ?device) 'faulty)) Hff
(rules rule#3
IF (different ?device reading) IF
from its physical equivalent is implicit here.
THEN (prog (temp-then section device) THEN
' (setq section (car ?device))
(setq device (cadr ?device))
-the device must have analytical equivalent
(cond ((null (setq temp-then (ook-up section device 'analy-equiv)))
(print '(no analytical equiv present... rule#3 failed)))
"'f it does then check to see to which reading it is equal.
(t (cond ((same (look-up section device 'self) temp-then)
(mark-device section
(retrieve section device 'physical-equiv) 'faulty))
((same (look-up section device 'phys-equiv) temp-then)
(mark-device section device 'faulty))
(t (print '(no readings are the same... rule#3 failed))))))))
(rules rule#4
IF (different ?device behavior)
THEN (generate-and-test ?device))
(rules rule#5
IF (abnormal ?device reading)
THEN (prog (other-devices device-list) THIA
-'first find the other devices in the same location
"(etq other-devices (retrieve (car ?device) (cadr ?device) 'same-location))
-11fevery device is on the abnormal list then apply rule#8
(setq device-list other-devices)
loop
(cond ((null device-list)
(return (eval '(use-rule rule#8
(common ,(cons ?device other-devices) location)))))
((null (on-abnormal-list (list (car ?device) (car device-list))))
.. ,/ (return (eval '(use-rule rule#6
-.- (abnormal ,?device reading not-same-loc)))))
(t (setq device-list (cdr device-list))))
(go loop)))
*--
.
(rules rule#6
IF (abnormal ?device reading not-same-loc)
THEN (prog (other-devices device-list)
(setq other-devices (retrieve (car ?device) (cadr ?device) 'related-devices))
'f"irstL check if there are related devices. Most of cases it will.
-'If not apply rule#7
(cond ((null other-devices)
(return (eval '(use-rule rule#7 (abnormal ,?device reading no-related)
(setq device-list other-devices)
- 47 -
THEN
...
loop
"-all devices on the list must be abnormal list to declare that
'all related devices faulty.
(cond ((null device-list)
(return (eval '(use-rule rule#8
(abnormal ,Icons ?device other-devices) related-dev
((null (on-abnorma-list (list (car ?device) (car device-list))))
(return (eval '(use-rule rule#7 (abnormal ,?device reading no-related)
! . ,,,(,o (g l(t
loop)))(setq device-list (cdr device-list))))
(rules rule#7I
[F (abnormal ?device reading no-related) IF
-H"fairplane's behavior is also abnormal, something serious is happening
"-so many other rules will take care of the situation. Ignore the alert for now
THEN (cond ((on-abnormal-list 'airplane-behavior)) THEN
-otherwise declare the device faulty.
(t (issue-alert '(faulty ,?device)))))
(rules rule#8
IF (common ?device ?commonality)
THEN (do ((device-list ?device (cdr device-list)) THIK
(a-device (car ?device)))
-'after all devices have been declared faulty, report the
* -nature of the problem.
((null device-list)
(cond ((equal ?commonality 'location)
(setq temp (list (car a-device)
(retrieve (car a-device) (cadr a-device) 'location)))
(print '(structural damage in ,(car a-device) ,temp)))
((equal ?comrnionality 'related)
(print '(these related devices are down: .?device)))))
-,issue alert for each of the devices.
(issue-alert *(faulty ,(car device-lis.)))))
(rules rule#9
IF check ?device .%alue)
THEN (prog(temp) THff
(setq temp (car ?device))
-first check if the device is in the cockpit
(cond ((not (equal 'cockpit terip))
(return (print
'(check command must refer to a device in the cockpit))))
-'then check if the device is in bulletin
((null (setq temp (look-up temp (cadr ?device) 'self)))
(return (print '(carnot check the device in question))))
"'f nally check if the value is the same as reported.
((same .value temp)
(return (print '(.?device is OK))))
ark faulty if all fails
(t (issue-alert '(faulty ,?device))))))
PS
(rules rule#10
[F
THEN (normal
(restore ?device)
evice)) TH
''Put the rule number on the property list
defprop down (rule#l) rule-number)
defprop faulty (rule#2) rule-number)
" defprop different (rule#3 rule#4) rule-number)
* defprop abnormal (rule#5) rule-number)
% (defprop common (rule#8) rule-number)
defprop check (rule#9) rule-number)
defprop normal (rule# 10) rule-number)
- 48 -
. •- . =,•, - .°
. . . .. -. . . . . .-. . _
Appendix E
This appendix contains the complete program listing for the FDIES. It
inc!udes the main procedure FDIES as well as all the available utility
-"49 -
.0 .
(cond ((equal section 'abnormal-devices)
i (do (device-list (cadr news) (cdr device-list)))
((null device-list))
"is this item a new alert?
(cond ((equal "new-alert (get-abnormal-status (car device-list)))
-f1 yes, issue the alert. Otherwise do nothing
setq section (get-abnormal-?device (car device-list)))
tissue-alert '(abnormal ,section reading))
'Once alert is issued remove it from the abnormal list.
('placa device-list nil)))))
"if this is a section name, check for differences
(t (do ((device-list (cadr news) (cdr device-list))
(phys-equiv-value) (self-value))
((null device-list))
'(does a physical equivalent exdst? If no do nothing
(cond ((null (setq phys-equiv-value (get-p-equv (car device-list)))))
-are they numbers. If no do nothing as well
((null (and (numbp (setqphys-equiv-value))))
(numbp self-value (get-s-value (car device-list))))
- Otherwise check ifself-value and equiv value are same
yes do nothing. If no issue alert.
-"if
(t (cond ( same self-value phys-equiv-value))
(issue-alert '(different ,(list section
(get-d-name (car device-list)))
reading)))))))))))
(defun my-gc 0
(do ((news bulletin (cddr news)))
((null news))
cond ((equal (car news) 'abnormal-devices)
(return (rplaca (cdr news) (remove nil (cadr news))))))))
'-Some auxiliary functions
(defun get-abnormal-status (a-list)
(car (reverse a-list)))
(defun get-abnormal-?device (a-list)
(reverse (cdr (reverse a-list))))
(defun get-p-equiv (a-list)
(cadr (member "phys-equiv a-list)))
-50-
It"€''9% "
(defun pop (stack-name)
-check which of the stack the value must be popped.
(cond ((equal stack-name 'high-priority)
(progl (car high-p-stack)
(setq high-p-stack (cdr high-p-stack))))
(t (progi (car p-stack)
(setq p-stack (cdr p-stack))))))
(defun apply-rules (alert)
"find out what rules are applicable
(do ((starting-rules (get (car alert) 'rule-number) (cdr starting-rules))
(?device) (?commonality) (?value))
"if no rules do nothing
((null starting-rules))
-apply use-rules iteratively until all rules are exhausted.
(eval '(use-rule ,(car starting-rules) ,alert))))
(defmacro use-rule (rule# alert)
R"frst check if the rule is applicable
(cond ((similar (get rule# "if) alert)
--if so get the then part and evaluate it on the return (due to macro)
(get rule# 'then))
(t (print *(,rule# does not apply)))))
OW
"-List of files:
"-sections: makes FDIES aware of sections being dealt.
"is-section: checks to see if an element is part of section database already.
-mark-device: marks device as well as those on the linked-to list to
whatever status specified.
~or
OW unusable.
-mark: used by mark-devices to accomplish its goal
-get-new-section: gets the section that the device really belongs to.
-51-
' , ;i , .%, . N
., ,..,,.., -.. . .. .-. ,.-.-:..,....-. ... . ..
(eval '(change ,section ,device status to ,value))
'-finally mark the devices on the first list of linked-to devices
-as broken-link
(mark section (caar temp) value-i)
-and the devices on the second list as unusable.
(mark section (cadar temp) value-2)))))
'-iUst of files
'device: specifies the characteristics(facts) of a device. The facts
are attached to the property list of the section under
the name of the device.
~change: changes the value of the facts known.
"-find-value: finds the value of the given slot.
'-what-is: returns the value of the fact presently in the system.
'-retrieve: same as what-is except not a macro.
'-add-fact: apppends additional facts about a particular device.
-is-present-i: checks the presence of given section, device and slot. If
'- true returns the slot as specified. Otherwise returns nil.
"is-present-2: checks the presence of given section and device. If true
returns the facts associated with the device.
-add-value: add value to the existing slot given the section and device.
~device-description: returns the "frame" or description of the device given.
'-get-all-devices: returns all devices attached to the section.
tp52
,..
(defmacro what-is (section device slot)
-example (what-is left-wing engine linked-to)
,(car (find-value (get section device) slot)))
'-List of files
'rules: inserts rules on the property list according to their
rule number.
-similar: Checks whether two patterns are similar. Has side-effect
of setting variables preceded by ? to prope: values.
'-check-list: used by "similar" to check two lists for similarity.
'-change-bulletin: command used to make changes on the bulletin.
-53-
I.'':' , . -t . -. - .. - -. - . . -. - . -. - .. . . . . . . ..
, -'
. -"
,e ,'
-' ' ." .- ., , . *. . .. . , , ,.,.
. , ., ., . . . . , , . . *. *,
. . . . . .. . , . . . .
-generate-and-test: right now does nothing. Supposed to find if a device can
be salvaged by a different gain or bias.
-look-up: looks up the entry specified in the database
',restore: restores the device's condition to normal (or ok)
..same: compares two values. Return true if they are within 10. of
the larger value.
-add-abnormal-devices: used in monitor mode to add new abnormal alerts on the
bulletin.
,-on-abnormal-list: checks if the device given is on the abnormal--devices list.
(defmacro rules (rule-number if if-part then then-part)
" ,example (rules rule#l if (whatever premises) then (whatever conclusions))
(putprop rule-number if-part 'if)
(defprop ,rule-number ,then-part then))
p.'. - 54
6%
((null news) nil)
'_otherwise look for it!
(cond ((equal (car news) section-name)
(return (do ((device-list (cadr news) (cdr device-list)))
'-again if the entry is not found, return nil
((null device-list) (return nil))
--same section. find the matching device name!
(cond ((equal (get-d-name (car device-list)) device-name)
'Found it! return the value. Otherwise do nothing.
(return (cadr (member type (car device-list))))))))))))
(defun restore (section-device)
fIrst remove the device from the abnormal-devices list
(do ((device-list (cadr (member 'abnormal-devices bulletin)) (cdr device-list)))
-if the device is not found, do nothing
((null device-list))
'-Otherwise set the entry to nil which will be removed later by a
'garbage-collector-like procedure.
(cond ((equal section--device (get-abnormal-?device (car device-list)))
(rplaca deice-list 0))))
-now change the status of the device in the bulletin and in the database.
(mark-device (car section-device) (cadr section-device) 'ok))
(defun same (value-i value-2)
'-if equal then they are certainly the same.
(cond ((equal value-i value-2) t)
'-otherwise it better be within 10% of the larger one.
((greaterp value-I value-2)
(greaterp 0.1 (quotient (diff value-I value-2) value-i)))
(t (greaterp 0.1 (quotient (diff value-2 value-i) value-2)))))
(deftnacro add-abnormal-devices (section device status-quo)
(prof (device-list)
(setq device-list (cadr (member 'abnormal-devices bulletin)))
return " (nconc device-list (list (list section device status-quo))))))
(defun on-abnormal-list (section-de ice)
(do ((a-list (cadr (member 'abnormal-devices bulletin)) (cdr a-list)))
-if it is not on the abnormal-devices list, return nil
((null a-list) nil)
'-check each entry for equality. Return true if found, otherwise keep looking.
(cond ((null (car a-list)))
((equal (get-abnormal-?device (car a-list)) section-device)
(return t)))))
- 55 -
..... . ... .. . .
-T I(