Fault diagnosis system

0Associated
Cases 
0Associated
Defendants 
0Accused
Products 
43Forward
Citations 
0
Petitions 
3
Assignments
First Claim
1. A fault diagnosis system for diagnosing faults in complex equipment, the system including:
 means for storing a set of diagnostic signatures which relates a set of known faults which may occur in the equipment to respective fault symptoms which are deemed indicative of said known faults; and
means for processing said diagnostic signatures and a set of fault symptoms identified for a current state of the equipment, to calculate diagnostic data for identifying a fault causing the current state of the equipment, the diagnostic data including a plurality of values which are indicative of different relative nonzero likelihoods of each of a plurality of different known faults causing the current state of the equipment.
3 Assignments
0 Petitions
Accused Products
Abstract
A fault diagnosis system for diagnosing faults in complex equipment. The system includes means for storing a set of diagnostic signatures which relates a set of known faults which may occur in the equipment to respective fault symptoms which are deemed indicative of said known faults; and means for processing the diagnostic signatures and a set of fault symptoms identified for a current state of the equipment to calculate diagnostic data for identifying a fault causing the current state of the equipment. The diagnostic data includes a plurality of values which are indicative of different relative nonzero likelihoods of each of a plurality of different known faults causing the current state of the equipment.
52 Citations
View as Search Results
Ranged fault signatures for fault diagnosis  
Patent #
US 7,934,125 B2
Filed 12/19/2007

Current Assignee
Applied Materials Incorporated

Sponsoring Entity
Applied Materials Incorporated

Metrics independent and recipe independent fault classes  
Patent #
US 8,010,321 B2
Filed 05/04/2007

Current Assignee
Applied Materials Israel Limited

Sponsoring Entity
Applied Materials Israel Limited

VEHICLE REPAIR/REPLACEMENT INFORMATION MANAGEMENT SYSTEM, AND VEHICLE ABNORMALITY CAUSE INFORMATION MANAGEMENT SYSTEM  
Patent #
US 20110172879A1
Filed 08/11/2009

Current Assignee
Ibaraki Toyota Jidosha Kabushiki Kaisha

Sponsoring Entity
Ibaraki Toyota Jidosha Kabushiki Kaisha

Graphical user interface for presenting multivariate fault contributions  
Patent #
US 7,831,326 B2
Filed 11/15/2007

Current Assignee
Applied Materials Incorporated

Sponsoring Entity
Applied Materials Incorporated

METHOD AND SYSTEM FOR STATE ENCODING  
Patent #
US 20100214069A1
Filed 06/16/2008

Current Assignee
Royal Dutch Shell Plc

Sponsoring Entity
Royal Dutch Shell Plc

Analysis of errors within computer code  
Patent #
US 7,707,559 B2
Filed 08/30/2005

Current Assignee
International Business Machines Corporation

Sponsoring Entity
International Business Machines Corporation

Systems and methods for prioritizing error notification  
Patent #
US 7,689,873 B1
Filed 09/19/2005

Current Assignee
Google LLC

Sponsoring Entity
Google Inc.

FRAMEWORK AND METHOD FOR MONITORING EQUIPMENT  
Patent #
US 20100257410A1
Filed 06/16/2008

Current Assignee
Royal Dutch Shell Plc

Sponsoring Entity
Royal Dutch Shell Plc

Graphical user interface for presenting multivariate fault contributions  
Patent #
US 7,765,020 B2
Filed 05/04/2007

Current Assignee
Applied Materials Israel Limited

Sponsoring Entity
Applied Materials Israel Limited

METHOD AND SYSTEM FOR MANAGING PROCESS JOBS IN A SEMICONDUCTOR FABRICATION FACILITY  
Patent #
US 20100087941A1
Filed 10/02/2008

Current Assignee
Applied Materials Israel Limited

Sponsoring Entity
Applied Materials Israel Limited

COMPUTER APPARATUS AND PROCESSOR DIAGNOSTIC METHOD  
Patent #
US 20100088545A1
Filed 07/31/2009

Current Assignee
Fujitsu Limited

Sponsoring Entity
Fujitsu Limited

SOFTWARE APPLICATION TO ANALYZE EVENT LOG AND CHART TOOL FAIL RATE AS FUNCTION OF CHAMBER AND RECIPE  
Patent #
US 20090287339A1
Filed 02/10/2009

Current Assignee
Applied Materials Israel Limited

Sponsoring Entity
Applied Materials Israel Limited

MULTIVARIATE FAULT DETECTION IMPROVEMENT FOR ELECTRONIC DEVICE MANUFACTURING  
Patent #
US 20090282296A1
Filed 02/09/2009

Current Assignee
Applied Materials Israel Limited

Sponsoring Entity
Applied Materials Israel Limited

SYSTEM FOR EXAMINING EFFECTS AND PROPOSING CONSEQUENTIAL ACTIONS  
Patent #
US 20090327810A1
Filed 07/10/2007

Current Assignee
Selex Communications Limited

Sponsoring Entity
Selex Communications Limited

Ranged fault signatures for fault diagnosis  
Patent #
US 20080125898A1
Filed 12/19/2007

Current Assignee
Harvey Jerry Lynn, Schwarm Alexander T.

Sponsoring Entity
Schwarm Alexander T.

METHOD AND APPARATUS FOR AUTHORING AND OPTIMIZING FLOWCHARTS  
Patent #
US 20080227066A1
Filed 03/15/2007

Current Assignee
International Business Machines Corporation

Sponsoring Entity
International Business Machines Corporation

Graphical user interface for presenting multivariate fault contributions  
Patent #
US 20080276137A1
Filed 11/15/2007

Current Assignee
Schwarm Alexander T., Lin Y. Sean

Sponsoring Entity
Schwarm Alexander T., Lin Y. Sean

Graphical user interface for presenting multivariate fault contributions  
Patent #
US 20080276136A1
Filed 05/04/2007

Current Assignee
Applied Materials Israel Limited

Sponsoring Entity
Applied Materials Israel Limited

Metrics independent and recipe independent fault classes  
Patent #
US 20080276128A1
Filed 05/04/2007

Current Assignee
Applied Materials Israel Limited

Sponsoring Entity
Applied Materials Israel Limited

Analysis of errors within computer code  
Patent #
US 20070050679A1
Filed 08/30/2005

Current Assignee
International Business Machines Corporation

Sponsoring Entity
International Business Machines Corporation

Method for inspection process development or improvement and parts inspection process  
Patent #
US 20070260342A1
Filed 05/08/2006

Current Assignee
Standard Aero Limited

Sponsoring Entity
Standard Aero Limited

EventDriven Data Mining Method for Improving Fault Code Settings and Isolating Faults  
Patent #
US 20120035803A1
Filed 08/04/2010

Current Assignee
GM Global Technology Operations LLC

Sponsoring Entity
GM Global Technology Operations LLC

Computer apparatus and processor diagnostic method  
Patent #
US 8,176,365 B2
Filed 07/31/2009

Current Assignee
Fujitsu Limited

Sponsoring Entity
Fujitsu Limited

APPARATUS AND METHOD FOR PREDICTING MIXED PROBLEMS WITH VEHICLE  
Patent #
US 20120245791A1
Filed 10/28/2011

Current Assignee
Chungbuk National University Industry Academic Cooperation Foundation, Electronics and Telecommunications Research Institute

Sponsoring Entity
Chungbuk National University Industry Academic Cooperation Foundation, Electronics and Telecommunications Research Institute

SYSTEMS AND METHODS FOR USE IN IMPROVING OPERATION OF UTILITY EQUIPMENT  
Patent #
US 20120290103A1
Filed 05/11/2011

Current Assignee
General Electric Company

Sponsoring Entity
General Electric Company

Software application to analyze event log and chart tool fail rate as function of chamber and recipe  
Patent #
US 8,335,582 B2
Filed 02/10/2009

Current Assignee
Applied Materials Israel Limited

Sponsoring Entity
Applied Materials Israel Limited

Method and apparatus for authoring and optimizing flowcharts  
Patent #
US 8,341,610 B2
Filed 03/15/2007

Current Assignee
International Business Machines Corporation

Sponsoring Entity
International Business Machines Corporation

MALFUNCTION ANALYSIS APPARATUS, MALFUNCTION ANALYSIS METHOD, AND RECORDING MEDIUM  
Patent #
US 20130042148A1
Filed 04/26/2011

Current Assignee
NEC Corporation

Sponsoring Entity
NEC Corporation

Eventdriven data mining method for improving fault code settings and isolating faults  
Patent #
US 8,433,472 B2
Filed 08/04/2010

Current Assignee
GM Global Technology Operations LLC

Sponsoring Entity
GM Global Technology Operations LLC

METHOD AND SYSTEM FOR MULTIIED EVENT ZONE IDENTIFICATION IN AN ELECTRICAL GRID  
Patent #
US 20130198124A1
Filed 01/25/2013

Current Assignee
ABB Research Ltd.

Sponsoring Entity
ABB Research Ltd.

Method and system for managing process jobs in a semiconductor fabrication facility  
Patent #
US 8,527,080 B2
Filed 10/02/2008

Current Assignee
Applied Materials Israel Limited

Sponsoring Entity
Applied Materials Israel Limited

Framework and method for monitoring equipment  
Patent #
US 8,612,029 B2
Filed 06/16/2008

Current Assignee
Royal Dutch Shell Plc

Sponsoring Entity
Royal Dutch Shell Plc

Method and system for state encoding  
Patent #
US 8,643,471 B2
Filed 06/16/2008

Current Assignee
Royal Dutch Shell Plc

Sponsoring Entity
Royal Dutch Shell Plc

System and method of software execution path identification  
Patent #
US 8,776,029 B2
Filed 03/23/2012

Current Assignee
ZERODEE INC.

Sponsoring Entity
ZERODEE INC.

DEVICE FOR MAKING AVAILABLE NAVIGATION PARAMETER VALUES OF A VEHICLE  
Patent #
US 20140236395A1
Filed 12/19/2013

Current Assignee
Airbus Operations SL

Sponsoring Entity
Airbus Operations SL

METHOD AND SYSTEM FOR STATE ENCODING  
Patent #
US 20140240095A1
Filed 01/07/2014

Current Assignee
Royal Dutch Shell Plc

Sponsoring Entity
Royal Dutch Shell Plc

Use of prediction data in monitoring actual production targets  
Patent #
US 8,989,887 B2
Filed 02/10/2010

Current Assignee
Applied Materials Israel Limited

Sponsoring Entity
Applied Materials Israel Limited

PROACTIVE AND ADAPTIVE CLOUD MONITORING  
Patent #
US 20150095720A1
Filed 12/01/2014

Current Assignee
Oracle International Corporation

Sponsoring Entity
Oracle International Corporation

Method and system for state encoding  
Patent #
US 9,035,750 B2
Filed 01/07/2014

Current Assignee
Royal Dutch Shell Plc

Sponsoring Entity
Royal Dutch Shell Plc

Malfunction analysis apparatus, malfunction analysis method, and recording medium  
Patent #
US 9,043,645 B2
Filed 04/26/2011

Current Assignee
NEC Corporation

Sponsoring Entity
NEC Corporation

Method and system for multiIED event zone identification in an electrical grid  
Patent #
US 9,202,168 B2
Filed 01/25/2013

Current Assignee
ABB Research Ltd.

Sponsoring Entity
ABB Research Ltd.

Device for making available navigation parameter values of a vehicle  
Patent #
US 9,694,902 B2
Filed 12/19/2013

Current Assignee
Airbus Operations SL

Sponsoring Entity
Airbus Operations SL

Proactive and adaptive cloud monitoring  
Patent #
US 9,842,019 B2
Filed 12/01/2014

Current Assignee
Oracle International Corporation

Sponsoring Entity
Oracle International Corporation

Weighted wedge defuzzification for conceptual system design evaluation  
Patent #
US 6,763,337 B1
Filed 03/03/2000

Current Assignee
Lockheed Martin Corporation

Sponsoring Entity
Lockheed Martin Corporation

Automated diagnostic system  
Patent #
US 6,219,626 B1
Filed 09/08/1998

Current Assignee
Lockheed Martin Corporation

Sponsoring Entity
Lockheed Martin Corporation

Apparatus and method for event correlation and problem reporting  
Patent #
US 6,249,755 B1
Filed 07/15/1997

Current Assignee
VMware Inc.

Sponsoring Entity
System Management Arts Inc.

Automatic invocation of computational resources without user intervention across a network  
Patent #
US 20010051938A1
Filed 07/25/2001

Current Assignee
Jamey Graham, Hart Peter

Sponsoring Entity
Jamey Graham, Hart Peter

Computer system and method for dynamically assessing the market readiness of a product under development  
Patent #
US 6,038,517 A
Filed 01/03/1997

Current Assignee
Teradata US Inc.

Sponsoring Entity
NCR Corporation

Automatic invocation of computational resources without user intervention  
Patent #
US 6,041,182 A
Filed 05/24/1996

Current Assignee
Ricoh Company Limited, Ricoh Corporation

Sponsoring Entity
Ricoh Company Limited, Ricoh Corporation

Diagnostic system utilizing a Bayesian network model having link weights updated experimentally  
Patent #
US 6,076,083 A
Filed 08/21/1996

Current Assignee
BAKER INVENTIONS LLC

Sponsoring Entity
Michelle Baker

Method for automating the development and execution of diagnostic reasoning software in products and processes  
Patent #
US 5,544,308 A
Filed 08/02/1994

Current Assignee
VSE Corporation

Sponsoring Entity
GIORDANO AUTOMATION CORP.

Hidden markov models for fault detection in dynamic systems  
Patent #
US 5,465,321 A
Filed 04/07/1993

Current Assignee
United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration

Sponsoring Entity
United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration

36 Claims
 1. A fault diagnosis system for diagnosing faults in complex equipment, the system including:
 means for storing a set of diagnostic signatures which relates a set of known faults which may occur in the equipment to respective fault symptoms which are deemed indicative of said known faults; and
means for processing said diagnostic signatures and a set of fault symptoms identified for a current state of the equipment, to calculate diagnostic data for identifying a fault causing the current state of the equipment, the diagnostic data including a plurality of values which are indicative of different relative nonzero likelihoods of each of a plurality of different known faults causing the current state of the equipment.  View Dependent Claims (2, 3)
 means for storing a set of diagnostic signatures which relates a set of known faults which may occur in the equipment to respective fault symptoms which are deemed indicative of said known faults; and
 4. A fault diagnosis system according to any preceding claim, wherein the system is arranged to calculate the diagnostic data such that a fault symptom, which is deemed indicative of a relatively high number of known faults in said diagnostic signatures, being present in said current state symptoms and being deemed indicative of a known fault in said diagnostic signatures provides a less positive contribution to a value indicative of likelihood of the corresponding fault being causative, than the contribution to the same value provided by a different fault symptom, which is deemed indicative of a relatively low number of known faults in said diagnostic signatures, being present in said current state symptoms and being deemed indicative of the same fault in said diagnostic signatures.
 35. Computer software arranged to implement a fault diagnosis system for diagnosing faults in complex equipment, the computer software implementing:
 means for storing a set of diagnostic signatures which relates a set of known faults which may occur in the equipment to respective fault symptoms which are deemed indicative of said known faults; and
means for processing said diagnostic signatures and a set of fault symptoms identified for a current state of the equipment, to calculate diagnostic data for identifying a fault causing the current state of the equipment, the diagnostic data including a plurality of values which are indicative of different relative nonzero likelihoods of each of a plurality of different known faults causing the current state of the equipment.
 means for storing a set of diagnostic signatures which relates a set of known faults which may occur in the equipment to respective fault symptoms which are deemed indicative of said known faults; and
 36. A computerimplemented method for diagnosing faults in complex equipment, the method comprising:
 storing a set of diagnostic signatures which relates a set of known faults which may occur in the equipment to respective fault symptoms which are deemed indicative of said known faults; and
processing said diagnostic signatures and a set of fault symptoms identified for a current state of the equipment, to calculate diagnostic data for identifying a fault causing the current state of the equipment, the diagnostic data including a plurality of values which are indicative of different relative nonzero likelihoods of each of a plurality of different known faults causing the current state of the equipment.
 storing a set of diagnostic signatures which relates a set of known faults which may occur in the equipment to respective fault symptoms which are deemed indicative of said known faults; and
1 Specification
The invention relates to a fault diagnosis system. More specifically but not exclusively, the invention relates to a fault diagnosis system for use in the diagnosis of faults in complex equipment, such as satellite telecommunications networks.
Satellite telecommunications networks are complex equipment that include many parts, such as the satellite itself, the satellite base or ground station and the mobile transmitter/receivers that operate within the network. Such complex equipment can develop faults that require swift and efficient diagnosis and correction in order to return the network to operational state as soon as possible.
In such complex equipment, it may not be obvious what the fault is. The fault itself will generate a number of symptoms, and it is these symptoms that must be interpreted in order to trace and correct the fault. It should be noted that a single fault can produce a number of symptoms and that any one symptom can be generated by a number of faults.
Expert systems have been proposed as a possible method of diagnosing faults in complex equipment. An expert system requires experts to encode their expertise into machine readable code. This code can then be used to diagnose faults based on the symptoms presented by the equipment. One such expert system is described in U.S. Pat. No. 6,041,182.
However, the expert system approach requires there to be an expert for all the parts of the equipment, which for complex equipment will typically require a significant number of experts and very significant amounts of effort expended by each expert to encode their relevant expertise appropriately. Expert systems are rule based and the system would need to create rules based on the equipment in order to operate effectively. In complex equipment, these rules would be complex and their creation would be time consuming and involved. This would lead to an increase in the costs involved in setting up the expert system, both in terms of actual costs and increased time costs.
Another method of fault diagnosis that has been proposed is the use of a neural net. A neural net is a tool that is effectively trained. For the above example of a satellite telecommunication network the neural net would have to be trained and told what faults exhibited what symptoms. The time involved in creating a neural net for such a complex network would be large. For example, if there are 800 components in the equipment, then there may be about 3000 possible faults. There could be of the order of 2<sup>800 </sup>different configurations. Assuming the need to train the system 1000 times for each fault, and it takes say 1 second per training session, then it will take 3×10<sup>6 </sup>seconds or 800 hours to train each configuration. If the training procedure was performed for every configuration then the time required would be longer than the life of the universe. Whilst for small, fixed systems, neural nets are a good solution for fault diagnosis, other approaches are clearly desirable for complex equipment.
U.S. Pat. No. 5,544,308 describes a system for the automated diagnosis of faults containing repairable parts using a fault/symptom matrix and performing tests in order to identify a suspect list of faults. The system produces lists of suspect faults by discarding possible faults according to a set of criteria. If any suspect faults are found, the system goes on to work out what test would be best to use next to eliminate as many faults from the set as possible. If no suspect faults are found, the system loosens its criteria until there are some suspects, and then performs the test selection, iteratively until only one suspect fault remains. The fault diagnosis provided by the system is not efficient, particularly in relation to complex equipment in which there are large numbers of possible faults and correspondingly large sets of symptoms.
It is therefore an object of the present invention to provide a fault diagnosis system for use in complex equipment which does not suffer from the disadvantages of expert systems or neural nets.
In accordance with the present invention there is provided a fault diagnosis system for diagnosing faults in complex equipment, the system including:
 means for storing a set of diagnostic signatures which relates a set of known faults which may occur in the equipment to respective fault symptoms which are deemed indicative of said known faults; and
 means for processing said diagnostic signatures and a set of fault symptoms identified for a current state of the equipment, to calculate diagnostic data for identifying a fault causing the current state of the equipment, the diagnostic data including a plurality of values which are indicative of different relative nonzero likelihoods of each of a plurality of different known faults causing the current state of the equipment.
The fault diagnosis system of the invention uses the concepts of faults and symptoms. Herein, a fault is a system characteristic that causes part of the system to fail and lose some of its functionality. From the fault description, the maintainer should be able to isolate the faulty component and effect a repair. Herein, a symptom is an element of the system state which is indicative of a fault. One symptom may be present in several faults, and one fault may exhibit several symptoms. Faults essentially have a diagnostic signature of symptoms. Generally, each fault should have a unique diagnostic signature of symptoms.
The system may be arranged to calculate the diagnostic data such that a fault symptom being present in said current state symptoms and being deemed indicative of a known fault in said diagnostic signatures provides a cumulative positive contribution to a value indicative of likelihood of the corresponding fault being causative.
The system may also be arranged to calculate the diagnostic data such that a fault symptom being present in said current state symptoms and being deemed indicative of a known fault in said diagnostic signatures provides a more positive contribution to a value indicative of likelihood of the corresponding fault being causative, than the fault symptom not being present in said current state symptoms.
Preferably, the system may be arranged to calculate the diagnostic data such that a fault symptom, which is deemed indicative of a relatively high number of known faults in said diagnostic signatures, being present in said current state symptoms and being deemed indicative of a known fault in said diagnostic signatures provides a less positive contribution to a value indicative of likelihood of the corresponding fault being causative, than the contribution to the same value provided by a different fault symptom, which is deemed indicative of a relatively low number of known faults in said diagnostic signatures, being present in said current state symptoms and being deemed indicative of the same fault in said diagnostic signatures. In this case, system may be arranged to calculate the diagnostic data such that a fault symptom being present in said current state symptoms and being deemed indicative of a known fault in said diagnostic signatures, provides a contribution to a value indicative of likelihood for the corresponding fault which is normalised relative to the number of known faults of which the fault symptom is deemed indicative of said diagnostic signatures.
The diagnostic signatures may relate the set of known faults which may occur in the equipment to respective fault symptoms which are deemed unrelated to said known faults. The system may be arranged to calculate the diagnostic data such that a fault symptom being present in said current state symptoms and being deemed unrelated to a known fault in said diagnostic signatures provides a cumulative negative contribution to a value indicative of likelihood of the corresponding fault being causative. Alternatively, the system is arranged to calculate the diagnostic data such that a fault symptom being present in said current state symptoms and being deemed indicative of a known fault in said diagnostic signatures provides a more positive contribution to a value indicative of likelihood of the corresponding fault being causative, than a different fault symptom not being present in said current state symptoms and being deemed unrelated to the fault in said diagnostic signatures.
As an alternative, the system may be arranged to calculate the diagnostic data such that a fault symptom being present in said current state symptoms and being deemed indicative of a known fault in said diagnostic signatures provides a more positive contribution to a value indicative of likelihood of the corresponding fault being causative, than a different fault symptom being present in said current state symptoms and being deemed unrelated to the fault in said diagnostic signatures.
The system may be arranged to calculate the diagnostic data such that a fault symptom not being present in said current state symptoms and being deemed indicative of a known fault in said diagnostic signatures provides a more positive contribution to a value indicative of likelihood of the corresponding fault being causative, than a different fault symptom being present in said current state symptoms and being deemed unrelated to the fault in said diagnostic signatures.
The system may also be arranged such that a fault symptom which is deemed unrelated to a known fault has a more positive contribution to a value indicative of likelihood for the fault, when the symptom is not present in said current state symptoms, than the contribution of the same symptom, when present in said current state symptoms, to a value indicative of likelihood for the same fault probability.
Furthermore, the system may be arranged to calculate the diagnostic data such that a fault symptom, which is deemed unrelated to a relatively high number of known faults in said diagnostic signatures, being present in said current state symptoms and being deemed unrelated to a known fault in said diagnostic signatures provides a less negative contribution to a value indicative of likelihood of the corresponding fault being causative, than the contribution to the same value provided by a different fault symptom, which is deemed unrelated to a relatively low number of known faults in said diagnostic signatures, being present in said current state symptoms and being deemed unrelated to the same fault in said diagnostic signatures.
Ideally, the diagnostic signatures relate the set of known faults which may occur in the equipment to respective fault symptoms which are nondiagnostic in relation to said known faults. The diagnostic signatures may identify a fault symptom to be nondiagnostic in relation to a first known fault, and to be indicative of a second known fault. In either case, the system is arranged to calculate the diagnostic data such that a fault symptom being present in said current state symptoms and being deemed nondiagnostic in relation to a known fault in said diagnostic signatures provides a contribution to a value indicative of likelihood of the corresponding fault being causative, which is similar to a contribution provided to the same value by a different fault symptom not being present in said current state symptoms and being deemed nondiagnostic in relation to the fault in said diagnostic signatures.
Advantageously, the system is capable of receiving current state symptoms input by a human operator. The system may prompt the operator for the input of such symptoms or the operator may input the symptoms unprompted. In either case, the system is arranged to calculate values indicative of diagnostic rejection power for different possible symptoms to suggest a current state symptom which is to be input by a human operator in order to improve the diagnosis. Here, the system uses said calculated values indicative of likelihood in calculating said rejection values.
As alternative to receiving current state symptoms, the system may receive an indication of a fault fix input by a human operator, and to recalculate said diagnostic data in response thereto.
The system may calculate values indicative of diagnostic benefit for different possible fault fixes to be performed by a human operator in order to improve the diagnosis. The calculated values are used as being indicative of likelihood in calculating said benefit values.
In addition, the system may store mean time before failure values for equipment components, and is capable of calculating said values indicative of likelihood using said mean time before failure values.
Different diagnostic modes in which said probabilities are calculated using different algorithmic methods may be carried out by the system. In a first diagnostic mode, said probabilities are calculated using a first relationship with said mean time before failure values, and in a second diagnostic mode, said probabilities are calculated using a second relationship with said mean time before failure values. In said second diagnostic mode, said values indicative of likelihood are calculated without reference to said mean time before failure values.
The values indicative of likelihood may be calculated using a weighting function applied to a set of calculated values to produce the said values indicative of likelihood. Such a weighting function may be a substantially monotonic function or an exponential function.
In addition, the values indicative of likelihood are calculated using normalisation across a calculated set of values. Preferably, the system is arranged to be capable of calculating the diagnostic data by calculating a first set of values indicative of likelihood, identifying faults which have relatively small likelihoods of being causative, and performing a recalculation of said diagnostic data whilst taking said faults having relatively small likelihoods of being causative to have an effectively zero likelihood of being causative. In this case, the diagnostic signatures of said faults having relatively small likelihoods of being causative are omitted from said recalculation.
The system may be arranged to calculate sets of diagnostic data in relation to sets of fault symptoms identifying current states of the system in iterative steps using continually improved knowledge of the current state of the system at each step. Additionally, similar symptoms may be associated for ease of diagnosis.
In accordance with a second aspect of the present invention, there is provided computer software arranged to implement the system described above.
In accordance with a further aspect of the present invention, there is provided a computerimplemented method for diagnosing faults in complex equipment, the method comprising:
 storing a set of diagnostic signatures which relates a set of known faults which may occur in the equipment to respective fault symptoms which are deemed indicative of said known faults; and
 processing said diagnostic signatures and a set of fault symptoms identified for a current state of the equipment, to calculate diagnostic data for identifying a fault causing the current state of the equipment, the diagnostic data including a plurality of values which are indicative of different relative nonzero likelihoods of each of a plurality of different known faults causing the current state of the equipment.
The fault diagnosis system of the present invention monitors and stores the current state of the system under diagnosis. It also holds a repository of diagnostic knowledge, detailing known ways the system can fail, and what the characteristics of each failure are. Whenever requested, the fault diagnosis system performs a diagnosis, in which the likelihoods of all possible faults are calculated given the current state of the system.
The fault diagnosis system maintains a data set called the Symptom Vector which contains the current state of symptoms on the system. The fault diagnosis system also holds the list of all known faults and all known symptoms, and a pattern which correlates the faults with the symptoms. This can be maintained in one or both of two forms: the Fault Exemplar, which holds all fault signature information, and the Diagnostic Exemplar, which holds the fault signature information in a preprocessed form which has improved diagnostic power, ready for quick diagnosis.
When requested, the fault diagnosis system premultiplies the Symptom Vector by the Diagnostic Exemplar, to give a vector of scores for each fault, in an effective manner in terms of processing cost. The highest scoring fault is the most likely to be the causative one. Algorithms used in the fault diagnosis system convert this vector of scores into a vector of probabilities.
The fault diagnosis system deals with automatic symptoms, which are produced by sensors in the system being diagnosed, and continually maintains the state of the Symptom Vector as the state of the system alters. It also deals with manual symptoms, which are to be input by a human operator diagnosing the system, referred to herein as the maintainer. The processor uses algorithms for identifying the best manual symptom or symptoms to be characterised by the maintainer. Further algorithms used by the fault diagnosis system allow tradeoffs between the relative benefits of fixing faults against investigating symptoms.
Further features and advantages of the invention will become apparent from the following description of preferred embodiments of the invention, given by way of example only and made with reference to the accompanying drawings, wherein:
FIG. 1 is a schematic diagram of complex equipment and a fault diagnosis system therefor;
FIG. 2 is a flow diagram illustrating steps carried out by the fault diagnosis system in an embodiment of the invention; and
FIGS. 3 to 5 illustrate user interfaces presented to a maintainer in accordance with an embodiment of the invention.
Referring to FIG. 1, complex equipment 2, for example a satellite communications network, typically includes a control and monitoring system 4, for example one or more computing platforms, various equipment components C1, C2, C3 . . . and various sensors S1, S2, S3 . . . . for sensing symptoms relating to the components. Sensors may also be used to sense ambient conditions, such as atmospheric temperature, atmospheric pressure, etc. Fault symptoms may be derived from any of the sensors or directly from any of the components. The equipment 2 may include inbuilt fault diagnosis software 6, or a fault diagnosis instrument, for example a laptop computer, running fault diagnosis to software in accordance with an embodiment of the invention. The fault diagnosis software embodies the fault diagnosis system of the present invention.
It is to be noted that the control and monitoring system 4 also includes one or more interfaces (not shown) for interfacing with the complex equipment. It will be appreciated that the interfaces may be multilevel, each level of interface being designed for individual users of the diagnostic system. For example, there may be a requirement for a maintainer interface in addition to a developer interface and a user interface.
It will also be appreciated that the profile of each user may include a particular set up of available windows, buttons, menus and toolbars, and that each user may have more than one profile according to the tasks to be completed.
Referring to FIG. 2, the fault diagnosis system performs various steps, to be described in further detail below. Each of Steps 100 to 118 is as described in the text of the flow diagram, and will be understood further from the procedures explained in further detail below.
The fault diagnosis system stores diagnostic signatures in a matrix, termed the Fault Exemplar. The Fault Exemplar is a two dimensional matrix of symptoms and faults comprising a set of fault diagnostic signatures which represent the system fault behaviour. The faults label the columns of the matrix, and the symptoms label the rows. Each cell in the matrix can have one of three different states:
The symptom is always present when the fault occurs. “1” represents this.
The symptom is never present when the fault occurs. “0” represents this.
The symptom is sometimes present when the fault occurs. “*” represents this.
The fault diagnosis system algorithm manipulates the Fault Exemplar matrix, which represents the raw diagnostic information, into a Diagnostic Exemplar matrix, which is used to diagnose the system. This manipulation is carried out in Step 100 of FIG. 2. The Diagnostic Exemplar contains only floating point numbers, generally having various fractional values between −1 and +1.
Alternatively, the fault diagnosis system may store the Diagnostic Exemplar matrix in precomputed form. Both the Fault Exemplar and the Diagnostic Exemplar hold diagnostic signatures which relate a known fault which may occur in the equipment to respective fault symptoms which are deemed indicative of said known faults.
A diagnostic symptom can have one of three values: it can be present, it can be absent, or it can be unknown. If the symptom value is 1 (if present), or 0 (if absent), in both cases it is diagnostic (being considered within a diagnosis). If it is unknown, then it is nondiagnostic, and is not considered within the diagnosis. This is represented in the following table.<tables id="TABLEUS00001" num="1"><table frame="none" colsep="0" rowsep="0"><tgroup align="left" colsep="0" rowsep="0" cols="4"><colspec colname="OFFSET" colwidth="7PT" align="left"/><colspec colname="1" colwidth="49PT" align="left"/><colspec colname="2" colwidth="91PT" align="center"/><colspec colname="3" colwidth="70PT" align="left"/><thead><row><entry/><entry/></row><row><entry/><entry namest="OFFSET" nameend="3" align="center" rowsep="1"/></row><row><entry/><entry/><entry>Diagnostic</entry><entry>Symptom is</entry></row><row><entry/><entry>Symptom State</entry><entry>processor value</entry><entry>diagnostic</entry></row><row><entry/><entry namest="OFFSET" nameend="3" align="center" rowsep="1"/></row></thead><tbody valign="top"><row><entry/><entry>Present</entry><entry>1</entry><entry>Yes</entry></row><row><entry/><entry>Absent</entry><entry>0</entry><entry>Yes</entry></row><row><entry/><entry>Unknown</entry><entry><not applicable></entry><entry>No</entry></row><row><entry/><entry namest="OFFSET" nameend="3" align="center" rowsep="1"/></row></tbody></tgroup></table></tables>
If the symptom's state is detectable (either present or absent), and characterises one or more faults, then the symptom is incorporated into the diagnostic knowledge and included in the Fault Exemplar (and hence the Diagnostic Exemplar), since the symptom is “diagnostic”. If the state of the symptom is not capable of being known, or characterises none of the known faults, then it is excluded from the diagnostic knowledge (and hence from the Diagnostic Exemplar), and the symptom is “nondiagnostic”.
The Diagnostic Exemplar is also a matrix, which contains real numbers in the range −1 to +1. The “1”s, “0”s and “*”s of the Fault Exemplar have been reduced to an easily managed form which the computer can quickly process. An algorithm is used to convert the Fault Exemplar to the Diagnostic Exemplar.
This conversion algorithm is best understood by an example. In the following example, there are four possible faults: f<sub>1</sub>, f<sub>2</sub>, f<sub>3</sub>, and f<sub>4</sub>, and nine possible symptoms: s<sub>1</sub>, s<sub>2</sub>, . . . , to s<sub>9</sub>.
Fault f<sub>1 </sub>produces symptoms s<sub>1</sub>, s<sub>3</sub>, s<sub>5</sub>, s<sub>7</sub>, s<sub>9</sub>.
Fault f<sub>2 </sub>produces symptoms s<sub>1</sub>, s<sub>2</sub>, s<sub>3</sub>.
Fault f<sub>3 </sub>produces symptoms s<sub>4</sub>, s<sub>5</sub>.
Fault f<sub>4 </sub>produces symptoms s<sub>3</sub>, s<sub>4</sub>, s<sub>5</sub>, s<sub>6</sub>, s<sub>7</sub>, s<sub>8</sub>, s<sub>9</sub>.
The algorithmic conversion may now be described using a matrix representation, where the first column corresponds to the fault signature of f<sub>1</sub>, the second to that of f<sub>2 </sub>and so on. The first row represents s<sub>1 </sub>etc. The set of fault signatures can be represented by the following matrix, called M<sub>0</sub><sup>T</sup>:—<maths id="MATHUS00001" num="1"><math overflow="scroll"><mrow><msubsup><mi>M</mi><mn>0</mn><mi>T</mi></msubsup><mo>=</mo><mrow><mo>(</mo><mtable><mtr><mtd><mn>1</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mn>1</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>1</mn></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>1</mn></mtd></mtr><mtr><mtd><mn>1</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>1</mn></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>1</mn></mtd></mtr><mtr><mtd><mn>1</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>1</mn></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>1</mn></mtd></mtr><mtr><mtd><mn>1</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>1</mn></mtd></mtr></mtable><mo>)</mo></mrow></mrow></math></maths>
This matrix, M<sub>0</sub><sup>T</sup>, is the Fault Exemplar.
The conversion algorithm manipulates the transpose of M<sub>0</sub><sup>T</sup>, which is M<sub>0</sub>, and has contents:<maths id="MATHUS00002" num="2"><math overflow="scroll"><mrow><msub><mi>M</mi><mn>0</mn></msub><mo>=</mo><mrow><mo>(</mo><mtable><mtr><mtd><mn>1</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>1</mn></mtd></mtr><mtr><mtd><mn>1</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>1</mn></mtd></mtr></mtable><mo>)</mo></mrow></mrow></math></maths>
Next, the algorithm produces the matrix M<sub>1</sub>, which contains the symptoms normalised by their discrimination power, by normalising each column to sum to 1. A symptom that appears on several faults is not as useful at discriminating as one which is unique to a fault or appears in a smaller number of fault signatures. Thus, s<sub>2 </sub>only appears as a symptom of f<sub>2</sub>, and has more weight than S<sub>3</sub>, which appears on faults f<sub>1</sub>, f<sub>2 </sub>and f<sub>4</sub>.<maths id="MATHUS00003" num="3"><math overflow="scroll"><mrow><msub><mi>M</mi><mn>1</mn></msub><mo>=</mo><mrow><mo>(</mo><mtable><mtr><mtd><mn>0.5</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0.333333</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0.333333</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0.5</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0.5</mn></mtd></mtr><mtr><mtd><mn>0.5</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>0.333333</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0.5</mn></mtd><mtd><mn>0.333333</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0.333333</mn></mtd><mtd><mn>0.5</mn></mtd><mtd><mn>0.333333</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>0.5</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>0.5</mn></mtd></mtr></mtable><mo>)</mo></mrow></mrow></math></maths>
The next stage is to normalise across the matrix, so that each of the rows sums to 1, which produces the matrix M<sub>2</sub>.<maths id="MATHUS00004" num="4"><math overflow="scroll"><mtable><mtr><mtd><mrow><mrow><msub><mi>M</mi><mn>2</mn></msub><mo>=</mo></mrow><mo></mo><mi/></mrow></mtd></mtr><mtr><mtd><mrow><mi/><mo></mo><mrow><mo>(</mo><mtable><mtr><mtd><mn>0.230769</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0.153846</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0.153846</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0.230769</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0.230769</mn></mtd></mtr><mtr><mtd><mn>0.272727</mn></mtd><mtd><mn>0.545454</mn></mtd><mtd><mn>0.181818</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0.6</mn></mtd><mtd><mn>0.4</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0.08</mn></mtd><mtd><mn>0.12</mn></mtd><mtd><mn>0.08</mn></mtd><mtd><mn>0.24</mn></mtd><mtd><mn>0.12</mn></mtd><mtd><mn>0.24</mn></mtd><mtd><mn>0.12</mn></mtd></mtr></mtable><mo>)</mo></mrow></mrow></mtd></mtr></mtable></math></maths>
This matrix when multiplied by a Symptom Vector “rewards” symptoms present in the current state matching fault symptoms present in signatures.
Next a matrix N<sub>0 </sub>is defined using M<sub>0</sub>, but replacing all 1's for 0's and 0's for 1's.<maths id="MATHUS00005" num="5"><math overflow="scroll"><mrow><msub><mi>N</mi><mn>0</mn></msub><mo>=</mo><mrow><mo>(</mo><mtable><mtr><mtd><mn>0</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>1</mn></mtd></mtr><mtr><mtd><mn>1</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>1</mn></mtd></mtr><mtr><mtd><mn>1</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd></mtr></mtable><mo>)</mo></mrow></mrow></math></maths>
This matrix is normalised down the columns to produce N<sub>1</sub>:—<maths id="MATHUS00006" num="6"><math overflow="scroll"><mrow><msub><mi>N</mi><mn>1</mn></msub><mo>=</mo><mrow><mo>(</mo><mtable><mtr><mtd><mn>0</mn></mtd><mtd><mn>0.333333</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0.5</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0.333333</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0.333333</mn></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0.5</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>0.333333</mn></mtd><mtd><mn>0.5</mn></mtd><mtd><mn>0.333333</mn></mtd><mtd><mn>0.5</mn></mtd></mtr><mtr><mtd><mn>0.5</mn></mtd><mtd><mn>0.333333</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0.333333</mn></mtd><mtd><mn>0.5</mn></mtd><mtd><mn>0.333333</mn></mtd><mtd><mn>0.5</mn></mtd></mtr><mtr><mtd><mn>0.5</mn></mtd><mtd><mn>0.333333</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd></mtr></mtable><mo>)</mo></mrow></mrow></math></maths>
Now N<sub>2 </sub>is produced from N<sub>1 </sub>by normalising along the rows:—<maths id="MATHUS00007" num="7"><math overflow="scroll"><mtable><mtr><mtd><mrow><msub><mi>N</mi><mn>2</mn></msub><mo>=</mo></mrow></mtd></mtr><mtr><mtd><mrow><mi/><mo></mo><mrow><mo>(</mo><mtable><mtr><mtd><mn>0</mn></mtd><mtd><mn>0.222222</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0.333333</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0.222222</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0.222222</mn></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0.157895</mn></mtd><mtd><mn>0.315789</mn></mtd><mtd><mn>0.105263</mn></mtd><mtd><mn>0.157895</mn></mtd><mtd><mn>0.105263</mn></mtd><mtd><mn>0.157895</mn></mtd></mtr><mtr><mtd><mn>0.142857</mn></mtd><mtd><mn>0.095238</mn></mtd><mtd><mn>0.285714</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0.095238</mn></mtd><mtd><mn>0.142857</mn></mtd><mtd><mn>0.095238</mn></mtd><mtd><mn>0.142857</mn></mtd></mtr><mtr><mtd><mn>0.6</mn></mtd><mtd><mn>0.4</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd></mtr></mtable><mo>)</mo></mrow></mrow></mtd></mtr></mtable></math></maths>
This matrix, when multiplied by a Symptom Vector and subtracted, “penalises” symptoms present in the current state which do not match symptoms present in fault signatures.
Finally, a matrix M<sub>3 </sub>is produced from M<sub>2 </sub>and N<sub>2</sub>.<FORM>M<sub>3</sub>=M<sub>2</sub>−N<sub>2 </sub></FORM>
The contents of M<sub>3 </sub>are:—<maths id="MATHUS00008" num="8"><math overflow="scroll"><mrow><msub><mi>M</mi><mn>3</mn></msub><mo>=</mo><mstyle><mtext></mtext></mstyle><mo></mo><mrow><mo>(</mo><mtable><mtr><mtd><mn>0.230760</mn></mtd><mtd><mrow><mo></mo><mn>0.222222</mn></mrow></mtd><mtd><mn>0.153846</mn></mtd><mtd><mrow><mo></mo><mn>0.333333</mn></mrow></mtd><mtd><mn>0.153846</mn></mtd><mtd><mrow><mo></mo><mn>0.222222</mn></mrow></mtd><mtd><mn>0.230769</mn></mtd><mtd><mrow><mo></mo><mn>0.222222</mn></mrow></mtd><mtd><mn>0.230769</mn></mtd></mtr><mtr><mtd><mn>0.272727</mn></mtd><mtd><mn>0.545454</mn></mtd><mtd><mn>0.181818</mn></mtd><mtd><mrow><mo></mo><mn>0.157895</mn></mrow></mtd><mtd><mrow><mo></mo><mn>0.315789</mn></mrow></mtd><mtd><mrow><mo></mo><mn>0.105263</mn></mrow></mtd><mtd><mrow><mo></mo><mn>0.157895</mn></mrow></mtd><mtd><mrow><mo></mo><mn>0.105263</mn></mrow></mtd><mtd><mrow><mo></mo><mn>0.157895</mn></mrow></mtd></mtr><mtr><mtd><mrow><mo></mo><mn>0.142857</mn></mrow></mtd><mtd><mrow><mo></mo><mn>0.095238</mn></mrow></mtd><mtd><mrow><mo></mo><mn>0.285714</mn></mrow></mtd><mtd><mn>0.6</mn></mtd><mtd><mn>0.4</mn></mtd><mtd><mrow><mo></mo><mn>0.095238</mn></mrow></mtd><mtd><mrow><mo></mo><mn>0.142857</mn></mrow></mtd><mtd><mrow><mo></mo><mn>0.095238</mn></mrow></mtd><mtd><mrow><mo></mo><mn>0.142857</mn></mrow></mtd></mtr><mtr><mtd><mrow><mo></mo><mn>0.6</mn></mrow></mtd><mtd><mrow><mo></mo><mi>.04</mi></mrow></mtd><mtd><mn>0.08</mn></mtd><mtd><mn>0.12</mn></mtd><mtd><mn>0.08</mn></mtd><mtd><mn>0.24</mn></mtd><mtd><mn>0.12</mn></mtd><mtd><mn>0.24</mn></mtd><mtd><mn>0.12</mn></mtd></mtr></mtable><mo>)</mo></mrow></mrow></math></maths>
M<sub>3 </sub>is the Diagnostic Exemplar in this example. The Diagnostic Exemplar includes a set of diagnostic signatures of faults, with significantly improved diagnostic power than the Fault Exemplar.
The fault diagnosis system builds up a current state representation for each symptom represented within the Fault Exemplar. The diagnostic system builds up a column vector of the system's current set of fault symptoms. This corresponds to Step 102. If present, then the symptom is given the value 1, if absent, then it is given the value of 0. The column vector of symptom states is known as the Symptom Vector. Diagnostic symptoms are present in the Symptom Vector, nondiagnostic symptoms are not.
An (extremely simple) exemplary four symptom Symptom Vector is:<maths id="MATHUS00009" num="9"><math overflow="scroll"><mrow><mo> </mo><mrow><mo>(</mo><mtable><mtr><mtd><mn>1</mn></mtd></mtr><mtr><mtd><mn>1</mn></mtd></mtr><mtr><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mn>0</mn></mtd></mtr></mtable><mo>)</mo></mrow></mrow></math></maths>
However, it will be appreciated that the Symptom Vector is generally more complex than that illustrated above, that is, the Symptom Vector is a column vector comprising a plurality of rows, each element being “1” or “0”.
The fault diagnosis system uses a diagnostic algorithm which performs a matrix multiplication of the Diagnostic Exemplar, by the Symptom Vector. This is illustrated in Step 104. This results in a set of scores, which are probabilities which represent likelihoods of each of the faults being present in the current state of the equipment and diagnosis. A perfectly matching fault will have a score of 1 (that is, all expected symptoms are present and no unexpected symptoms). The reverse of this (all of the expected symptoms absent, and all of the unexpected symptoms present) would give a score of −1. All other scores fall in between. Better matches give values closer to 1, and worse matches give values closer to −1. A Symptom Vector of all 1s or all 0s will give a score of 0 to all faults.
In the following example the Diagnostic Exemplar is tested against sets of Symptom Vectors replicating fault signatures except that a “0” is entered (symptom not present) for each nondiagnostic symptom in the respective fault signatures. Let S<sub>1 </sub>be the fault signature for fault f<sub>1</sub>, and S<sub>2</sub>, S<sub>3</sub>, S<sub>4 </sub>be for f<sub>2</sub>, f<sub>3</sub>, f<sub>4</sub>. Then<maths id="MATHUS00010" num="10"><math overflow="scroll"><mrow><msub><mi>S</mi><mn>1</mn></msub><mo>=</mo><mrow><mrow><mrow><mo>(</mo><mtable><mtr><mtd><mn>1</mn></mtd></mtr><mtr><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mn>1</mn></mtd></mtr><mtr><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mn>1</mn></mtd></mtr><mtr><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mn>1</mn></mtd></mtr><mtr><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mn>1</mn></mtd></mtr></mtable><mo>)</mo></mrow><mo></mo><mstyle><mtext> </mtext></mstyle><mo></mo><msub><mi>S</mi><mn>2</mn></msub></mrow><mo>=</mo><mrow><mrow><mrow><mo>(</mo><mtable><mtr><mtd><mn>1</mn></mtd></mtr><mtr><mtd><mn>1</mn></mtd></mtr><mtr><mtd><mn>1</mn></mtd></mtr><mtr><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mn>0</mn></mtd></mtr></mtable><mo>)</mo></mrow><mo></mo><mstyle><mtext> </mtext></mstyle><mo></mo><msub><mi>S</mi><mn>3</mn></msub></mrow><mo>=</mo><mrow><mrow><mrow><mo>(</mo><mtable><mtr><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mn>1</mn></mtd></mtr><mtr><mtd><mn>1</mn></mtd></mtr><mtr><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mn>0</mn></mtd></mtr></mtable><mo>)</mo></mrow><mo></mo><mstyle><mtext> </mtext></mstyle><mo></mo><msub><mi>S</mi><mn>4</mn></msub></mrow><mo>=</mo><mrow><mo>(</mo><mtable><mtr><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mn>1</mn></mtd></mtr><mtr><mtd><mn>1</mn></mtd></mtr><mtr><mtd><mn>1</mn></mtd></mtr><mtr><mtd><mn>1</mn></mtd></mtr><mtr><mtd><mn>1</mn></mtd></mtr><mtr><mtd><mn>1</mn></mtd></mtr><mtr><mtd><mn>1</mn></mtd></mtr></mtable><mo>)</mo></mrow></mrow></mrow></mrow></mrow></math></maths><maths id="MATHUS000102" num="10.2"><math overflow="scroll"><mrow><mrow><msub><mi>M</mi><mn>3</mn></msub><mo></mo><msub><mi>S</mi><mn>1</mn></msub></mrow><mo>=</mo><mrow><mrow><mrow><mo>(</mo><mtable><mtr><mtd><mn>1</mn></mtd></mtr><mtr><mtd><mrow><mo></mo><mn>0.17703</mn></mrow></mtd></mtr><mtr><mtd><mrow><mo></mo><mn>0.31429</mn></mrow></mtd></mtr><mtr><mtd><mrow><mo></mo><mn>0.2</mn></mrow></mtd></mtr></mtable><mo>)</mo></mrow><mo></mo><mstyle><mtext> </mtext></mstyle><mo></mo><msub><mi>M</mi><mn>3</mn></msub><mo></mo><msub><mi>S</mi><mn>2</mn></msub></mrow><mo>=</mo><mrow><mo>(</mo><mtable><mtr><mtd><mn>0.16239</mn></mtd></mtr><mtr><mtd><mn>1</mn></mtd></mtr><mtr><mtd><mrow><mo></mo><mn>0.52381</mn></mrow></mtd></mtr><mtr><mtd><mrow><mo></mo><mn>0.92</mn></mrow></mtd></mtr></mtable><mo>)</mo></mrow></mrow></mrow></math></maths><maths id="MATHUS000103" num="10.3"><math overflow="scroll"><mrow><mrow><msub><mi>M</mi><mn>3</mn></msub><mo></mo><msub><mi>S</mi><mn>3</mn></msub></mrow><mo>=</mo><mrow><mrow><mrow><mo>(</mo><mtable><mtr><mtd><mrow><mo></mo><mn>0.17949</mn></mrow></mtd></mtr><mtr><mtd><mrow><mo></mo><mn>0.47368</mn></mrow></mtd></mtr><mtr><mtd><mn>1</mn></mtd></mtr><mtr><mtd><mn>0.2</mn></mtd></mtr></mtable><mo>)</mo></mrow><mo></mo><mstyle><mtext> </mtext></mstyle><mo></mo><msub><mi>M</mi><mn>3</mn></msub><mo></mo><msub><mi>S</mi><mn>4</mn></msub></mrow><mo>=</mo><mrow><mo>(</mo><mtable><mtr><mtd><mrow><mo></mo><mn>0.00855</mn></mrow></mtd></mtr><mtr><mtd><mrow><mo></mo><mn>0.81818</mn></mrow></mtd></mtr><mtr><mtd><mn>0.23810</mn></mtd></mtr><mtr><mtd><mn>1</mn></mtd></mtr></mtable><mo>)</mo></mrow></mrow></mrow></math></maths>
The effect of premultiplying a Symptom Vector with the Diagnostic Exemplar, is to produce a vector of fault scores. It can be seen that the score of the fault corresponding to the Symptom Vector in each case is 1 (100%), and that the scores of the other faults are significantly lower.
Therefore, a basic diagnosis is achieved by sorting the faults in order of score, and picking the one with the highest score. The score is a basic value indicating a likelihood of the fault being causative of the current system state.
Although the score is helpful in identifying faults, a better understanding of the likelihood of a fault is obtained by generating weighted probabilities to each of the possible faults. Step 106 illustrates applying a weight score vector to generate a Probability Vector. The fault diagnosis system calculates probabilities by weighting each score by a monotonic function, and normalising, so the total probabilities sum to unity. Preferably, an exponential weighting function is used. This provides a significantly more meaningful result. The probabilities are improved values indicating likelihood of faults being causative, and are used in much of the subsequent processing.
It should be understood that the values generated, whether scores or weighted probabilities, are relative. A fault with a higher score or probability is more likely to be the best match to the symptoms presented.
In one embodiment, a weighting function of<maths id="MATHUS00011" num="11"><math overflow="scroll"><mfrac><msup><mi>e</mi><mi>Bs</mi></msup><mrow><mi>A</mi><mo>+</mo><msup><mi>e</mi><mi>Bs</mi></msup></mrow></mfrac></math></maths>is used, where “s” is the score, and where “A” and “B” are calculated from the number of symptoms and faults. However, it has been found that this weighting function has a poor performance when a number of the scores are close to 1.
In a preferred embodiment, a weighting function of e<sup>20s </sup>is used. This has been found to give better results in a broad range of scenarios, especially where there are several results with scores close to 1. The effect of this function is to separate out items with scores that differ by 0.1 with a difference in probability of about a factor of 10.
After the generation of a Probability Vector, it is possible to end the fault diagnosis as indicated by Step 108. However, by doing so at this stage, there is no indication of the additional benefit which can be achieved if user observed symptoms are also input to the system.
In certain cases, it can not be stated definitely whether a fault produces a certain symptom or not. Therefore, the algorithm preferably can cope with a symptom which may or may not appear for a given fault, in which case the symptom is nondiagnostic in relation to that fault (although it may be indicative of a different fault when present).
There are several reasons for symptoms not always appearing with a fault:
1. The symptom may be difficult for unskilled maintainers to identify.
2. The symptom may be part of a cluster of symptoms monitoring different thresholds on the same measurement. The fault may cause an intermediate state of the system to appear, which can only be approximately estimated in the laboratory.
3. The mechanism providing the symptom may be subject to noise or drift.
4. There may be insufficient knowledge about the system to ascertain whether the fault produces the symptom.
The presence or absence of such “possible” symptoms should not affect the diagnosis and are therefore treated as nondiagnostic for one or more faults. The following example, based upon the previous one, shows how the algorithm copes with such nondiagnostic symptoms.
As in the previous example, there are four possible faults: f<sub>1</sub>, f<sub>2</sub>, f<sub>3</sub>, and f<sub>4</sub>, and 9 possible symptoms: s<sub>1</sub>, s<sub>2</sub>, . . . , to s<sub>9</sub>.
Fault f<sub>1 </sub>always produces symptoms s<sub>1</sub>, s<sub>3</sub>, s<sub>5</sub>, s<sub>7</sub>, s<sub>9</sub>.
Fault f<sub>2 </sub>always produces symptoms s<sub>1</sub>, s<sub>2</sub>, s<sub>3 </sub>and may produce s<sub>8</sub>, s<sub>9</sub>.
Fault f<sub>3 </sub>always produces symptoms s<sub>4</sub>, s<sub>5</sub>. And may produce s<sub>1</sub>, s<sub>2</sub>, s<sub>3</sub>.
Fault f<sub>4 </sub>always produces symptoms s<sub>3</sub>, s<sub>4</sub>, s<sub>5</sub>, s<sub>6</sub>, s<sub>7</sub>, s<sub>8</sub>, s<sub>9</sub>.
The algorithmic process may now be described using a matrixlike representation, where the first column is a fault signature which corresponds to f<sub>1</sub>, the second to f<sub>2 </sub>and so on. The first row represents s<sub>1</sub>, etc. The above set of faults and symptoms can be represented by the following pattern of symbols, which is the new Fault Exemplar. It is a matrixlike representation, but can not be called a matrix because it has nonnumeric values, which can not be manipulated by conventional matrix methods. A “1” means that a fault produces a symptom, a “0” means that a fault does not produce a symptom, and a means that the system is nondiagnostic for the fault in question.<maths id="MATHUS00012" num="12"><math overflow="scroll"><mrow><mrow><mi>Fault</mi><mo></mo><mstyle><mtext> </mtext></mstyle><mo></mo><mi>Exemplar</mi></mrow><mo>=</mo><mrow><mo>(</mo><mtable><mtr><mtd><mn>1</mn></mtd><mtd><mn>1</mn></mtd><mtd><mo>*</mo></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><mn>1</mn></mtd><mtd><mo>*</mo></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mn>1</mn></mtd><mtd><mn>1</mn></mtd><mtd><mo>*</mo></mtd><mtd><mn>1</mn></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>1</mn></mtd></mtr><mtr><mtd><mn>1</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>1</mn></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>1</mn></mtd></mtr><mtr><mtd><mn>1</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>1</mn></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><mo>*</mo></mtd><mtd><mn>0</mn></mtd><mtd><mn>1</mn></mtd></mtr><mtr><mtd><mn>1</mn></mtd><mtd><mo>*</mo></mtd><mtd><mn>0</mn></mtd><mtd><mn>1</mn></mtd></mtr></mtable><mo>)</mo></mrow></mrow></math></maths>
From this the same MT matrix is formed as before, where each “*” is replaced by “0”:—<maths id="MATHUS00013" num="13"><math overflow="scroll"><mrow><msubsup><mi>M</mi><mn>0</mn><mi>T</mi></msubsup><mo>=</mo><mrow><mo>(</mo><mtable><mtr><mtd><mn>1</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mn>1</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>1</mn></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>1</mn></mtd></mtr><mtr><mtd><mn>1</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>1</mn></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>1</mn></mtd></mtr><mtr><mtd><mn>1</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>1</mn></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>1</mn></mtd></mtr><mtr><mtd><mn>1</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>1</mn></mtd></mtr></mtable><mo>)</mo></mrow></mrow></math></maths>and into a matrix P<sup>T </sup>holding “1”s only where the “*” information is found, and “0”s elsewhere:<maths id="MATHUS00014" num="14"><math overflow="scroll"><mrow><msup><mi>P</mi><mi>T</mi></msup><mo>=</mo><mrow><mo>(</mo><mtable><mtr><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd></mtr></mtable><mo>)</mo></mrow></mrow></math></maths>
The fault diagnosis system manipulates the transpose of M<sub>0</sub><sup>T </sup>and P<sup>T </sup>which are M<sub>0 </sub>and P. M<sub>0 </sub>has contents:<maths id="MATHUS00015" num="15"><math overflow="scroll"><mrow><msub><mi>M</mi><mn>0</mn></msub><mo>=</mo><mrow><mo>(</mo><mtable><mtr><mtd><mn>1</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>1</mn></mtd></mtr><mtr><mtd><mn>1</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>1</mn></mtd></mtr></mtable><mo>)</mo></mrow></mrow></math></maths>
P has contents:<maths id="MATHUS00016" num="16"><math overflow="scroll"><mrow><mi>P</mi><mo>=</mo><mrow><mo>(</mo><mtable><mtr><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>1</mn></mtd></mtr><mtr><mtd><mn>1</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd></mtr></mtable><mo>)</mo></mrow></mrow></math></maths>
Next, the fault diagnosis system produces the matrix M<sub>1 </sub>from M<sub>0</sub>, containing the symptoms normalised by their discrimination power. Thus, each column is made to sum to 1. A symptom that appears on several faults is not as useful at discriminating as one which is unique to a fault, or to a smaller number of faults. Since, s<sub>2 </sub>only appears as a symptom of f<sub>2</sub>, it thus has more weight than s<sub>3</sub>, which appears on faults f<sub>1</sub>, f<sub>2 </sub>and f<sub>4</sub>.<maths id="MATHUS00017" num="17"><math overflow="scroll"><mrow><msub><mi>M</mi><mn>1</mn></msub><mo>=</mo><mrow><mo>(</mo><mtable><mtr><mtd><mn>0.5</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0.333333</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0.333333</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0.5</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0.5</mn></mtd></mtr><mtr><mtd><mn>0.5</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>0.333333</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0.5</mn></mtd><mtd><mn>0.333333</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0.333333</mn></mtd><mtd><mn>0.5</mn></mtd><mtd><mn>0.333333</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>0.5</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>0.5</mn></mtd></mtr></mtable><mo>)</mo></mrow></mrow></math></maths>
The next stage is to normalise across the matrix, so that each of the rows sums to 1, to produce the matrix M<sub>2</sub>.<maths id="MATHUS00018" num="18"><math overflow="scroll"><mrow><msub><mi>M</mi><mn>2</mn></msub><mo>=</mo><mrow><mo>(</mo><mtable><mtr><mtd><mn>0.230769</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0.153846</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0.153846</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0.230769</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0.230769</mn></mtd></mtr><mtr><mtd><mn>0.272727</mn></mtd><mtd><mn>0.545454</mn></mtd><mtd><mn>0.181818</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0.6</mn></mtd><mtd><mn>0.4</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0.08</mn></mtd><mtd><mn>0.12</mn></mtd><mtd><mn>0.08</mn></mtd><mtd><mn>0.24</mn></mtd><mtd><mn>0.12</mn></mtd><mtd><mn>0.24</mn></mtd><mtd><mn>0.12</mn></mtd></mtr></mtable><mo>)</mo></mrow></mrow></math></maths>
This matrix when multiplied by a Symptom Vector “rewards” symptoms present in the current state matching symptoms present in fault signatures, as before, and also “rewards” symptoms present in the current state matching symptoms which are nondiagnostic in fault signatures.
Next a matrix N<sub>0 </sub>is defined which is the one's complement of M<sub>0</sub>, made by replacing all 1's for 0's and 0's for 1's.<maths id="MATHUS00019" num="19"><math overflow="scroll"><mrow><msub><mi>N</mi><mn>0</mn></msub><mo>=</mo><mrow><mo>(</mo><mtable><mtr><mtd><mn>0</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>1</mn></mtd></mtr><mtr><mtd><mn>1</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>1</mn></mtd></mtr><mtr><mtd><mn>1</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd></mtr></mtable><mo>)</mo></mrow></mrow></math></maths>
The matrix N′<sub>0 </sub>is produced which is N<sub>0</sub>−P<maths id="MATHUS00020" num="20"><math overflow="scroll"><mrow><msubsup><mi>N</mi><mn>0</mn><mi>′</mi></msubsup><mo>=</mo><mrow><mo>(</mo><mtable><mtr><mtd><mn>0</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>1</mn></mtd></mtr><mtr><mtd><mn>1</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd></mtr></mtable><mo>)</mo></mrow></mrow></math></maths>
This matrix is normalised down the columns to produce N<sub>1</sub>:—<maths id="MATHUS00021" num="21"><math overflow="scroll"><mrow><msub><mi>N</mi><mn>1</mn></msub><mo>=</mo><mrow><mo>(</mo><mtable><mtr><mtd><mn>0</mn></mtd><mtd><mn>0.5</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0.5</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0.333333</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0.5</mn></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0.5</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>0.333333</mn></mtd><mtd><mn>0.5</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0.333333</mn></mtd><mtd><mn>0.5</mn></mtd><mtd><mn>0.5</mn></mtd><mtd><mn>1</mn></mtd></mtr><mtr><mtd><mn>1</mn></mtd><mtd><mn>0.5</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd></mtr></mtable><mo>)</mo></mrow></mrow></math></maths>
Notice that symptom 3 has no representation at all in this matrix, and is normalised to all zero.
Now N<sub>2 </sub>is produced from N<sub>1 </sub>by normalising along the rows:—<maths id="MATHUS00022" num="22"><math overflow="scroll"><mrow><msub><mi>N</mi><mn>2</mn></msub><mo>=</mo><mrow><mo>(</mo><mtable><mtr><mtd><mn>0</mn></mtd><mtd><mn>0.272727</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0.272727</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0.181818</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0.272727</mn></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0.214286</mn></mtd><mtd><mn>0.428571</mn></mtd><mtd><mn>0.142857</mn></mtd><mtd><mn>0.214286</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0.142857</mn></mtd><mtd><mn>0.214286</mn></mtd><mtd><mn>0.214286</mn></mtd><mtd><mn>0.428571</mn></mtd></mtr><mtr><mtd><mn>0.666667</mn></mtd><mtd><mn>0.333333</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd></mtr></mtable><mo>)</mo></mrow></mrow></math></maths>
This matrix, when multiplied by a Symptom Vector and subtracted, “penalises” symptoms present in the current state which do not match fault signatures, as before, and also “penalises” symptoms present in the current state matching symptoms which are nondiagnostic in fault signatures.
Finally, a matrix M<sub>3 </sub>is produced from M<sub>2 </sub>and N<sub>2</sub>. M<sub>3</sub>=M<sub>2</sub>−N<sub>2 </sub>
The contents of M<sub>3 </sub>are:—<maths id="MATHUS00023" num="23"><math overflow="scroll"><mrow><msub><mi>M</mi><mn>3</mn></msub><mo>=</mo><mrow><mo>(</mo><mtable><mtr><mtd><mn>0230769</mn></mtd><mtd><mrow><mo></mo><mn>0272727</mn></mrow></mtd><mtd><mn>0153846</mn></mtd><mtd><mrow><mo></mo><mn>0272727</mn></mrow></mtd><mtd><mn>0153846</mn></mtd><mtd><mrow><mo></mo><mn>0181818</mn></mrow></mtd><mtd><mn>0230769</mn></mtd><mtd><mrow><mo></mo><mn>0272727</mn></mrow></mtd><mtd><mn>0230769</mn></mtd></mtr><mtr><mtd><mn>0272727</mn></mtd><mtd><mn>0545455</mn></mtd><mtd><mn>0181818</mn></mtd><mtd><mrow><mo></mo><mn>0214286</mn></mrow></mtd><mtd><mrow><mo></mo><mn>0428571</mn></mrow></mtd><mtd><mrow><mo></mo><mn>0142857</mn></mrow></mtd><mtd><mrow><mo></mo><mn>0214286</mn></mrow></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>06</mn></mtd><mtd><mn>04</mn></mtd><mtd><mrow><mo></mo><mn>0142857</mn></mrow></mtd><mtd><mrow><mo></mo><mn>0214286</mn></mrow></mtd><mtd><mrow><mo></mo><mn>0214286</mn></mrow></mtd><mtd><mrow><mo></mo><mn>0428571</mn></mrow></mtd></mtr><mtr><mtd><mrow><mo></mo><mn>0666667</mn></mrow></mtd><mtd><mrow><mo></mo><mn>0333333</mn></mrow></mtd><mtd><mn>008</mn></mtd><mtd><mn>012</mn></mtd><mtd><mn>008</mn></mtd><mtd><mn>024</mn></mtd><mtd><mn>012</mn></mtd><mtd><mn>024</mn></mtd><mtd><mn>012</mn></mtd></mtr></mtable><mo>)</mo></mrow></mrow></math></maths>
M<sub>3 </sub>is the Diagnostic Exemplar in this example. The Diagnostic Exemplar includes diagnostic signatures of faults, with significantly improved diagnostic power than the Fault Exemplar. The effect of a nondiagnostic symptom being present or not present is neutral.
The Diagnostic Exemplar has the property, that when it multiplies a Symptom Vector, it rewards symptoms which match faults, but penalises symptoms which do not match faults. Note that there are zeroes in the position where a “*” was in the Fault Exemplar, so these are neither rewarded nor penalised. In a perfect match, where symptoms match a fault perfectly, and no symptoms are present which do not match, then a score of “1” (or 100%) will be given. If the symptoms are the antithesis of a set for a fault, then a score of “−1” (or −100%) will be given. A Symptom Vector of all “1”s or all “0”s will give a score of “0” to all faults.
The Diagnostic Exemplar, when multiplying a Symptom Vector, has the following characteristics:
1. If a symptom is present in the Symptom Vector where expected in the fault signature, it has a positive contribution to the fault score.
2. If no symptom is present in the Symptom Vector where expected in the fault signature, it has a neutral contribution to the fault score.
3. If no symptom is present in the Symptom Vector where no symptom is expected in the fault signature, it has a neutral contribution to the fault score.
4. If a symptom is present in the Symptom Vector where no symptom is expected in the fault signature, it has a negative contribution to the fault score.
5. If a symptom is either present or not present in the Symptom Vector where expected that it may occur in the fault signature, it has a neutral contribution to the fault score.
In this example a Diagnostic Exemplar is tested against sets of Symptom Vectors replicating fault signatures. Let S<sub>1 </sub>be the Symptom Vector replicating the fault signature for fault f<sub>1</sub>, and S<sub>2</sub>, S<sub>3</sub>, S<sub>4 </sub>be for f<sub>2</sub>, f<sub>3</sub>, f<sub>4</sub>. Then<maths id="MATHUS00024" num="24"><math overflow="scroll"><mrow><msub><mi>S</mi><mn>1</mn></msub><mo>=</mo><mrow><mrow><mrow><mo>(</mo><mtable><mtr><mtd><mn>1</mn></mtd></mtr><mtr><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mn>1</mn></mtd></mtr><mtr><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mn>1</mn></mtd></mtr><mtr><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mn>1</mn></mtd></mtr><mtr><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mn>1</mn></mtd></mtr></mtable><mo>)</mo></mrow><mo></mo><mstyle><mtext> </mtext></mstyle><mo></mo><msub><mi>S</mi><mn>2</mn></msub></mrow><mo>=</mo><mrow><mrow><mrow><mo>(</mo><mtable><mtr><mtd><mn>1</mn></mtd></mtr><mtr><mtd><mn>1</mn></mtd></mtr><mtr><mtd><mn>1</mn></mtd></mtr><mtr><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mn>0</mn></mtd></mtr></mtable><mo>)</mo></mrow><mo></mo><mstyle><mtext> </mtext></mstyle><mo></mo><msub><mi>S</mi><mn>3</mn></msub></mrow><mo>=</mo><mrow><mrow><mrow><mo>(</mo><mtable><mtr><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mn>1</mn></mtd></mtr><mtr><mtd><mn>1</mn></mtd></mtr><mtr><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mn>0</mn></mtd></mtr></mtable><mo>)</mo></mrow><mo></mo><mstyle><mtext> </mtext></mstyle><mo></mo><msub><mi>S</mi><mn>4</mn></msub></mrow><mo>=</mo><mrow><mo>(</mo><mtable><mtr><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mn>1</mn></mtd></mtr><mtr><mtd><mn>1</mn></mtd></mtr><mtr><mtd><mn>1</mn></mtd></mtr><mtr><mtd><mn>1</mn></mtd></mtr><mtr><mtd><mn>1</mn></mtd></mtr><mtr><mtd><mn>1</mn></mtd></mtr><mtr><mtd><mn>1</mn></mtd></mtr></mtable><mo>)</mo></mrow></mrow></mrow></mrow></mrow></math></maths><maths id="MATHUS000242" num="24.2"><math overflow="scroll"><mrow><mrow><msub><mi>M</mi><mn>3</mn></msub><mo></mo><msub><mi>S</mi><mn>1</mn></msub></mrow><mo>=</mo><mrow><mrow><mrow><mo>(</mo><mtable><mtr><mtd><mn>1</mn></mtd></mtr><mtr><mtd><mrow><mo></mo><mn>0.17703</mn></mrow></mtd></mtr><mtr><mtd><mrow><mo></mo><mn>0.31429</mn></mrow></mtd></mtr><mtr><mtd><mrow><mo></mo><mn>0.2</mn></mrow></mtd></mtr></mtable><mo>)</mo></mrow><mo></mo><mstyle><mtext> </mtext></mstyle><mo></mo><msub><mi>M</mi><mn>3</mn></msub><mo></mo><msub><mi>S</mi><mn>2</mn></msub></mrow><mo>=</mo><mrow><mrow><mrow><mo>(</mo><mtable><mtr><mtd><mn>0.16239</mn></mtd></mtr><mtr><mtd><mn>1</mn></mtd></mtr><mtr><mtd><mrow><mo></mo><mn>0.52381</mn></mrow></mtd></mtr><mtr><mtd><mrow><mo></mo><mn>0.92</mn></mrow></mtd></mtr></mtable><mo>)</mo></mrow><mo></mo><mstyle><mtext> </mtext></mstyle><mo></mo><msub><mi>M</mi><mn>3</mn></msub><mo></mo><msub><mi>S</mi><mn>3</mn></msub></mrow><mo>=</mo><mrow><mrow><mrow><mo>(</mo><mtable><mtr><mtd><mrow><mo></mo><mn>0.17949</mn></mrow></mtd></mtr><mtr><mtd><mrow><mo></mo><mn>0.47368</mn></mrow></mtd></mtr><mtr><mtd><mn>1</mn></mtd></mtr><mtr><mtd><mn>0.2</mn></mtd></mtr></mtable><mo>)</mo></mrow><mo></mo><mstyle><mtext> </mtext></mstyle><mo></mo><msub><mi>M</mi><mn>3</mn></msub><mo></mo><msub><mi>S</mi><mn>4</mn></msub></mrow><mo>=</mo><mrow><mo>(</mo><mtable><mtr><mtd><mrow><mo></mo><mn>0.00855</mn></mrow></mtd></mtr><mtr><mtd><mrow><mo></mo><mn>0.81818</mn></mrow></mtd></mtr><mtr><mtd><mn>0.23810</mn></mtd></mtr><mtr><mtd><mn>1</mn></mtd></mtr></mtable><mo>)</mo></mrow></mrow></mrow></mrow></mrow></math></maths>
The effect of premultiplying a Symptom Vector with a Diagnostic Exemplar, is to produce a vector of fault scores. It can be seen that the fault score of the fault with an exact match to the fault signature in each case is “1” (100%), and that the fault scores of the other faults are much lower.
It is also instructive to test the Diagnostic Exemplar against Symptom Vectors replicating fault signatures except that a “1” is entered (symptom is present) for each nondiagnostic symptom in the respective fault signatures.<maths id="MATHUS00025" num="25"><math overflow="scroll"><mrow><msubsup><mi>S</mi><mn>2</mn><mi>′</mi></msubsup><mo>=</mo><mrow><mrow><mrow><mo>(</mo><mtable><mtr><mtd><mn>1</mn></mtd></mtr><mtr><mtd><mn>1</mn></mtd></mtr><mtr><mtd><mn>1</mn></mtd></mtr><mtr><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mn>1</mn></mtd></mtr><mtr><mtd><mn>1</mn></mtd></mtr></mtable><mo>)</mo></mrow><mo></mo><mstyle><mtext> </mtext></mstyle><mo></mo><msubsup><mi>S</mi><mn>3</mn><mi>′</mi></msubsup></mrow><mo>=</mo><mrow><mrow><mrow><mo>(</mo><mtable><mtr><mtd><mn>1</mn></mtd></mtr><mtr><mtd><mn>1</mn></mtd></mtr><mtr><mtd><mn>1</mn></mtd></mtr><mtr><mtd><mn>1</mn></mtd></mtr><mtr><mtd><mn>1</mn></mtd></mtr><mtr><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mn>0</mn></mtd></mtr></mtable><mo>)</mo></mrow><mo></mo><mstyle><mtext> </mtext></mstyle><mo></mo><msub><mi>M</mi><mn>3</mn></msub><mo></mo><msubsup><mi>S</mi><mn>2</mn><mi>′</mi></msubsup></mrow><mo>=</mo><mrow><mrow><mrow><mo>(</mo><mtable><mtr><mtd><mn>0.06993</mn></mtd></mtr><mtr><mtd><mn>1</mn></mtd></mtr><mtr><mtd><mrow><mo></mo><mn>0.6286</mn></mrow></mtd></mtr><mtr><mtd><mrow><mo></mo><mn>0.56</mn></mrow></mtd></mtr></mtable><mo>)</mo></mrow><mo></mo><mstyle><mtext> </mtext></mstyle><mo></mo><msub><mi>M</mi><mn>3</mn></msub><mo></mo><msubsup><mi>S</mi><mn>3</mn><mi>′</mi></msubsup></mrow><mo>=</mo><mrow><mo>(</mo><mtable><mtr><mtd><mrow><mo></mo><mn>0.00699</mn></mrow></mtd></mtr><mtr><mtd><mn>0.357146</mn></mtd></mtr><mtr><mtd><mn>1</mn></mtd></mtr><mtr><mtd><mrow><mo></mo><mn>0.72</mn></mrow></mtd></mtr></mtable><mo>)</mo></mrow></mrow></mrow></mrow></mrow></math></maths>
The effect of multiplying these Symptom Vectors with the Diagnostic Exemplar, is to produce a vector of scores. It can be seen that adding the “possible” nondiagnostic symptoms has had no effect on the score for faults 2 and 3. Note however that scores for other faults have gone up or down as the pattern looks more or less like the respective fault signatures.
The fault diagnosis system uses as inputs a mixture of automatic symptoms and manual symptoms.
Automatic symptoms are those, which are generated in software from events coming from the system being diagnosed. Examples are a command is set, or a threshold has exceeded a value.
Manual symptoms are those which require human input to set them. Examples are something is leaking, making an unusual noise, or is damp. The fault diagnosis system has a manmachine interface (MMI), such as a touch screen or display, for receiving maintainer input specifying a manual symptom in the current state of the equipment. The system may prompt the user to input the symptoms or the user may input the symptoms unprompted.
Automatic symptoms are continually generated by the system. On the other hand, manual symptoms require human intervention, and take a certain amount of time and effort to investigate. A system which required the user to find the value of all of the (many hundred) symptoms before giving a diagnosis, particularly as most of them would be irrelevant to the fault, would be highly inconvenient in use.
The fault diagnosis system calculates a list of the most effective manual symptoms and notifies the maintainer of one or more suggested manual symptoms to be identified. The system calculates a rejection value of each as yet unknown symptom for the known faults, which indicates the percentage of faults which the symptom could be expected to reject if its state is determined, on a probabilistic basis, i.e. if presented with the same situation over and over again.
The fault diagnosis system uses an algorithm whereby the most appropriate symptom can be ascertained, given the current diagnosis. The algorithm uses a vector of probabilities with the possible manual symptoms to be identified. This is illustrated by Step 110 in FIG. 2. The algorithm is shown by example, rather than by formula.
The vector of scores is taken, and then converted to a vector of probabilities, using the weighting function and normalisation as before.
The probability calculation is illustrated in the following table:<tables id="TABLEUS00002" num="2"><table frame="none" colsep="0" rowsep="0"><tgroup align="left" colsep="0" rowsep="0" cols="4"><colspec colname="OFFSET" colwidth="14PT" align="left"/><colspec colname="1" colwidth="49PT" align="center"/><colspec colname="2" colwidth="84PT" align="center"/><colspec colname="3" colwidth="70PT" align="center"/><thead><row><entry/><entry/></row><row><entry/><entry namest="OFFSET" nameend="3" align="center" rowsep="1"/></row><row><entry/><entry/><entry/><entry>Normalised</entry></row><row><entry/><entry>Score = s</entry><entry>Perceived probability = e<sup>20s</sup></entry><entry>probability</entry></row><row><entry/><entry namest="OFFSET" nameend="3" align="center" rowsep="1"/></row></thead><tbody valign="top"><row><entry/></row></tbody></tgroup><tgroup align="left" colsep="0" rowsep="0" cols="4"><colspec colname="OFFSET" colwidth="14PT" align="left"/><colspec colname="1" colwidth="49PT" align="char" char="."/><colspec colname="2" colwidth="84PT" align="char" char="."/><colspec colname="3" colwidth="70PT" align="center"/><tbody valign="top"><row><entry/><entry>0.1</entry><entry>7.4</entry><entry>0.00003</entry></row><row><entry/><entry>0.6</entry><entry>162754.8</entry><entry>0.73103</entry></row><row><entry/><entry>0.55</entry><entry>59874.1</entry><entry>0.26894</entry></row><row><entry/><entry>−0.1</entry><entry>0.1</entry><entry>0.00000</entry></row><row><entry/><entry>Sum</entry><entry>222636.4</entry></row><row><entry/><entry namest="OFFSET" nameend="3" align="center" rowsep="1"/></row></tbody></tgroup></table></tables>and there are four possible manual symptoms HS<sub>1</sub>, HS<sub>2</sub>, HS<sub>3</sub>, HS<sub>4 </sub>represented as Fault Vectors where:—<maths id="MATHUS00026" num="26"><math overflow="scroll"><mrow><msub><mi>HS</mi><mn>1</mn></msub><mo>=</mo><mrow><mrow><mrow><mo>(</mo><mtable><mtr><mtd><mo>*</mo></mtd></mtr><mtr><mtd><mn>1</mn></mtd></mtr><mtr><mtd><mn>1</mn></mtd></mtr><mtr><mtd><mn>0</mn></mtd></mtr></mtable><mo>)</mo></mrow><mo></mo><mstyle><mtext> </mtext></mstyle><mo></mo><msub><mi>HS</mi><mn>2</mn></msub></mrow><mo>=</mo><mrow><mrow><mrow><mo>(</mo><mtable><mtr><mtd><mo>*</mo></mtd></mtr><mtr><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mn>1</mn></mtd></mtr><mtr><mtd><mo>*</mo></mtd></mtr></mtable><mo>)</mo></mrow><mo></mo><mstyle><mtext> </mtext></mstyle><mo></mo><msub><mi>HS</mi><mn>3</mn></msub></mrow><mo>=</mo><mrow><mrow><mrow><mo>(</mo><mtable><mtr><mtd><mo>*</mo></mtd></mtr><mtr><mtd><mn>1</mn></mtd></mtr><mtr><mtd><mo>*</mo></mtd></mtr><mtr><mtd><mn>0</mn></mtd></mtr></mtable><mo>)</mo></mrow><mo></mo><mstyle><mtext> </mtext></mstyle><mo></mo><msub><mi>HS</mi><mn>4</mn></msub></mrow><mo>=</mo><mrow><mo>(</mo><mtable><mtr><mtd><mn>1</mn></mtd></mtr><mtr><mtd><mo>*</mo></mtd></mtr><mtr><mtd><mo>*</mo></mtd></mtr><mtr><mtd><mn>0</mn></mtd></mtr></mtable><mo>)</mo></mrow></mrow></mrow></mrow></mrow></math></maths>
In the above Fault Vectors, HS<sub>1 </sub>is present for faults F<sub>2 </sub>and F<sub>3</sub>, not present for F<sub>4</sub>, and possible for F<sub>1</sub>. Likewise HS<sub>2 </sub>is present for F<sub>3</sub>, absent for F<sub>2</sub>, and unknown for F<sub>1 </sub>and F<sub>4</sub>, and so on.
A measure is required to find the best one (HS<sub>2</sub>, which distinguishes between the leading contenders for the fault). HS, is no good because both of the likely faults exhibit the symptom. HS<sub>3 </sub>is a little better although fault 3 has a possible value for one crucial symptom, but it has a good mark for the other one. HS<sub>4 </sub>does not give any information for the two leading faults. A preferred algorithm thus gives good marks to HS<sub>2</sub>, poor marks to HS<sub>4 </sub>and HS<sub>1</sub>, and intermediate marks to HS<sub>3</sub>.
A “good” symptom should reject as much of the Fault Exemplar as possible. Thus, given the current normalised probability for a fault and the Fault Vector for each symptom, the probability of getting a symptom of zero multiplied by the amount rejected when getting an answer of zero is summed with the probability of getting a symptom of 1 multiplied by the amount rejected. The answer is the overall amount rejected. The calculation is shown in the following table.<tables id="TABLEUS00003" num="3"><table frame="none" colsep="0" rowsep="0"><tgroup align="left" colsep="0" rowsep="0" cols="5"><colspec colname="1" colwidth="77PT" align="left"/><colspec colname="2" colwidth="35PT" align="center"/><colspec colname="3" colwidth="35PT" align="center"/><colspec colname="4" colwidth="35PT" align="center"/><colspec colname="5" colwidth="35PT" align="center"/><thead><row><entry/></row><row><entry namest="1" nameend="5" align="center" rowsep="1"/></row><row><entry/><entry>HS<sub>1</sub></entry><entry>HS<sub>2</sub></entry><entry>HS<sub>3</sub></entry><entry>HS<sub>4</sub></entry></row><row><entry namest="1" nameend="5" align="center" rowsep="1"/></row></thead><tbody valign="top"><row><entry/></row></tbody></tgroup><tgroup align="left" colsep="0" rowsep="0" cols="5"><colspec colname="1" colwidth="77PT" align="left"/><colspec colname="2" colwidth="35PT" align="center"/><colspec colname="3" colwidth="35PT" align="center"/><colspec colname="4" colwidth="35PT" align="center"/><colspec colname="5" colwidth="35PT" align="char" char="."/><tbody valign="top"><row><entry>Fault Vector Contents</entry><entry>*</entry><entry>*</entry><entry>*</entry><entry>1</entry></row><row><entry/><entry>1</entry><entry>0</entry><entry>1</entry><entry>*</entry></row><row><entry/><entry>1</entry><entry>1</entry><entry>*</entry><entry>*</entry></row><row><entry/><entry>0</entry><entry>*</entry><entry>0</entry><entry>0</entry></row><row><entry>Probability of 0 </entry><entry>0.5</entry><entry>0.5</entry><entry>0.5</entry><entry>0</entry></row><row><entry>Corresponding to Fault </entry></row><row><entry>Vector</entry></row><row><entry/><entry>0</entry><entry>1</entry><entry>0</entry><entry>0.5</entry></row><row><entry/><entry>0</entry><entry>0</entry><entry>0.5</entry><entry>0.5</entry></row><row><entry/><entry>1</entry><entry>0.5</entry><entry>1</entry><entry>1</entry></row><row><entry>Prob0  Calculated from</entry><entry>0.000015</entry><entry>0.731045</entry><entry>0.134485</entry><entry>0.499985</entry></row><row><entry>above Vector and</entry></row><row><entry>probabilities</entry></row><row><entry>Rejection of 0 </entry><entry>0</entry><entry>0</entry><entry>0</entry><entry>1</entry></row><row><entry>Corresponding to Fault</entry></row><row><entry>Vector</entry></row><row><entry/><entry>1</entry><entry>0</entry><entry>1</entry><entry>0</entry></row><row><entry/><entry>1</entry><entry>1</entry><entry>0</entry><entry>0</entry></row><row><entry/><entry>0</entry><entry>0</entry><entry>0</entry><entry>0</entry></row><row><entry>Rej0  Calculated from</entry><entry>0.99997</entry><entry>0.26894</entry><entry>0.73103</entry><entry>0.00003</entry></row><row><entry>above Vector and</entry></row><row><entry>probabilities</entry></row><row><entry>Probability of 1 </entry><entry>0.5</entry><entry>0.5</entry><entry>0.5</entry><entry>1</entry></row><row><entry>Corresponding to Fault</entry></row><row><entry>Vector</entry></row><row><entry/><entry>1</entry><entry>0</entry><entry>1</entry><entry>0.5</entry></row><row><entry/><entry>1</entry><entry>1</entry><entry>0.5</entry><entry>0.5</entry></row><row><entry/><entry>0</entry><entry>0.5</entry><entry>0</entry><entry>0</entry></row><row><entry>Prob1  Calculated from</entry><entry>0.999985</entry><entry>0.268955</entry><entry>0.865515</entry><entry>0.500015</entry></row><row><entry>above Vector and</entry></row><row><entry>probabilities</entry></row><row><entry>Rejection of 1  Fault</entry><entry>0</entry><entry>0</entry><entry>0</entry><entry>0</entry></row><row><entry>Vector</entry></row><row><entry/><entry>0</entry><entry>1</entry><entry>0</entry><entry>0</entry></row><row><entry/><entry>0</entry><entry>0</entry><entry>0</entry><entry>0</entry></row><row><entry/><entry>1</entry><entry>0</entry><entry>1</entry><entry>1</entry></row><row><entry>Rej1  Calculated from</entry><entry>0</entry><entry>0.73103</entry><entry>0</entry><entry>0</entry></row><row><entry>above Vector and</entry></row><row><entry>probabilities</entry></row><row><entry>Prob0 * Rej0 + Prob1 *</entry><entry>0.000</entry><entry>0.393</entry><entry>0.098</entry><entry>0.000</entry></row><row><entry>Rej1 Power of Rejection</entry></row><row><entry namest="1" nameend="5" align="center" rowsep="1"/></row></tbody></tgroup></table></tables>
The table of calculations shows that HS<sub>1 </sub>had a rejection value of 0.000, HS<sub>2 </sub>had 0.393, HS<sub>3 </sub>had 0.098 and HS<sub>4 </sub>had 0.000.
The optimal mark for rejection is 0.5, where on average half of the faults are rejected by a value of 0, and half by a value of 1, thus HS<sub>2 </sub>is quite “good”.
A fix of a fault can be effective as it will eliminate that fault from the analysis. So, in some senses, a fault fix can be thought of as a diagnostic step, just as much as the investigation of a symptom. This corresponds to Step 112 of FIG. 2.
The fault diagnosis system includes an algorithm to allow the diagnostic benefit of fault fixes to be compared on the same scale as investigating symptoms which require “Human Intervention”. This corresponds to Step 114.
To compare the benefits of fault fixing and investigation, the algorithm defines an estimate of the cost in time to investigate then fix a fault given optimal conditions, namely:<FORM>C<sub>FIX</sub>(N)=C<sub>F</sub>+C<sub>M </sub>log<sub>2 </sub>N </FORM>
 C<sub>FIX</sub>(N) is the cost of identifying and fixing a fault, given that there are N possible candidate faults, where:
 C<sub>F </sub>is the average cost of fixing the fault, in minutes;
 log<sub>2 </sub>N is the estimated number of measures required, given that notionally, the best that can be expected is that each measure will split the population of remaining faults in two; and
 C<sub>F </sub>is the average symptom investigation time, in minutes.
The power of rejection of a symptom, r<sub>S</sub>, is defined above. The investigation of a symptom will split the population of potential faults into two, those who have the symptom and those who do not. These are represented by probabilities p<sub>S </sub>and (1−p<sub>S</sub>) or q<sub>S</sub>. But, r<sub>S</sub>=2p<sub>S</sub>(1−p<sub>S</sub>). This can be rearranged to<maths id="MATHUS00027" num="27"><math overflow="scroll"><mrow><msub><mi>p</mi><mi>s</mi></msub><mo>=</mo><mrow><mfrac><mn>1</mn><mn>2</mn></mfrac><mo></mo><mrow><mrow><mo>(</mo><mrow><mn>1</mn><mo></mo><msqrt><mrow><mn>1</mn><mo></mo><mrow><mn>2</mn><mo></mo><msub><mi>r</mi><mi>s</mi></msub></mrow></mrow></msqrt></mrow><mo>)</mo></mrow><mo>.</mo></mrow></mrow></mrow></math></maths>Note that this is an approximation, as the nondiagnostic (“*”) values are not considered.
Once the symptom investigation has been performed and input by the maintainer, the population of N faults will be split into two. One population with p<sub>S</sub>N faults remaining, and the other with q<sub>S</sub>N. The probability of these two occurrences is p<sub>S </sub>for the former and q<sub>S </sub>for the latter. The expected time to fix the system after making the measurement is therefore:<FORM>C<sub>2</sub>=p<sub>S</sub>(C<sub>F</sub>+C<sub>M </sub>log<sub>2</sub>(p<sub>S</sub>N))+q<sub>S</sub>(C<sub>F</sub>+C<sub>M </sub>log<sub>2</sub>(q<sub>S</sub>N)) </FORM>
The progress of the measurement is therefore the estimated cost of fixing the fault before applying the symptom investigation less the cost of fixing after application. This is:—<FORM>C<sub>FIX</sub>(N)−C<sub>2</sub>=C<sub>F</sub>+C<sub>M </sub>log<sub>2 </sub>N−p<sub>S</sub>(C<sub>F</sub>+C<sub>M </sub>log<sub>2</sub>(p<sub>N</sub>))−q<sub>S</sub>(C<sub>F</sub>+C<sub>M </sub>log<sub>2</sub>(q<sub>S</sub>N)) </FORM>
Rearranging terms, this becomes:—<FORM>C<sub>FIX</sub>(N)−C<sub>2</sub>=−C<sub>M</sub>(p<sub>S </sub>log<sub>2 </sub>p<sub>S</sub>+q<sub>S </sub>log<sub>2 </sub>q<sub>S</sub>) </FORM>
When either p<sub>S </sub>or q<sub>S </sub>are zero, then the expression becomes zero. When they are both 0.5, then this reduces to C<sub>M</sub>.
Thus, the progress of the step can be calculated. Its cost is known, therefore the value of the investigation of the symptom is the ratio of the two. The information relating to suggested investigation(s) and/or fix(es) is presented to a user or maintainer in Step 116.
The user or maintainer may find a given fault by following investigations. Alternatively, the user or maintainer may find the fault by fixing faults in turn until the given fault's symptoms disappear. The last fault fixed is then known to the be the one.
When a user or maintainer performs a fault fix, this may result in fixing the causative fault, and there is therefore a chance that there would be no more diagnostic work to be done. The other alternative, is that the fault was not the one fixed, in which case, the number of possible faults has been reduced by one. Just fixing a fault is quite effective when there are for example just two or three faults remaining. Let the probability that the fault is the causative one be p<sub>F</sub>, and the probability that it is not the causative one be q<sub>F</sub>. The expected time to fix the system after fixing the fault is therefore:<FORM>C<sub>2</sub>=p<sub>F</sub>.0+q<sub>F</sub>(C<sub>F</sub>+C<sub>M </sub>log<sub>2</sub>(N−1)). </FORM>
This formula can give too much weight to faults which have little chance of being causative. The following formula is preferred, to take account of the possibility that a fault may have little chance of being the causative fault:<FORM>C<sub>2</sub>=p<sub>F</sub>.0+q<sub>F</sub>(C<sub>F</sub>+C<sub>M </sub>log<sub>2</sub>(N−Np<sub>F</sub>)). </FORM>
The diagnostic progress is therefore:<FORM>C<sub>FIX</sub>(N)−C<sub>2</sub>=C<sub>F</sub>+C<sub>M </sub>log<sub>2 </sub>N−q<sub>F</sub>(C<sub>F</sub>+C<sub>M </sub>log<sub>2</sub>(N−Np<sub>F</sub>)). </FORM>
Rearranging to:<FORM>C<sub>FIX</sub>(N)−C<sub>2</sub>=p<sub>F</sub>C<sub>F</sub>+C<sub>M</sub>(p<sub>F </sub>log<sub>2 </sub>N−q<sub>F </sub>log<sub>2 </sub>q<sub>F</sub>). </FORM>
The diagnostic progress of the fault fix is therefore calculated, and its benefit and value calculated in the same terms as that of a symptom investigation.
The previous calculations require a reliable estimate for the number of faults remaining. This is not immediately obvious, as all faults are always potential candidates, and they are given varying degrees of probability, depending on their scores. Therefore, an estimate of the number of likely faults is made.
Let there be M faults in total, but the population of likely faults be N. Consider the case where there are N equally likely faults, and M−N faults with zero probability. If the faults are ranked in order of likelihood, and the centroid, C, of the faults calculated. The centroid for the N faults would be C=(N+1)/2, thus N=2C−1. The centroid can be calculated for all fault distributions, and gives a measure of the remaining number:<maths id="MATHUS00028" num="28"><math overflow="scroll"><mrow><mi>C</mi><mo>=</mo><mrow><munderover><mo>∑</mo><mrow><mi>r</mi><mo>=</mo><mn>1</mn></mrow><mi>M</mi></munderover><mo></mo><mstyle><mtext> </mtext></mstyle><mo></mo><msub><mi>rp</mi><mi>r</mi></msub></mrow></mrow></math></maths>
This method can be seen to give a good estimate of the value where there is a population of N equally likely faults. It also gives a good result when the faults form a triangular distribution as in the table below, where there are 5 faults, and the probabilities form a triangular distribution.<tables id="TABLEUS00004" num="4"><table frame="none" colsep="0" rowsep="0"><tgroup align="left" colsep="0" rowsep="0" cols="2"><colspec colname="OFFSET" colwidth="42PT" align="left"/><colspec colname="1" colwidth="175PT" align="center"/><tbody valign="top"><row><entry/><entry/></row><row><entry/><entry namest="OFFSET" nameend="1" align="center" rowsep="1"/></row><row><entry/><entry>r</entry></row></tbody></tgroup><tgroup align="left" colsep="0" rowsep="0" cols="6"><colspec colname="OFFSET" colwidth="42PT" align="left"/><colspec colname="1" colwidth="49PT" align="center"/><colspec colname="2" colwidth="14PT" align="center"/><colspec colname="3" colwidth="49PT" align="center"/><colspec colname="4" colwidth="14PT" align="center"/><colspec colname="5" colwidth="49PT" align="center"/><tbody valign="top"><row><entry/><entry>1</entry><entry>2</entry><entry>3</entry><entry>4</entry><entry>5</entry></row><row><entry/><entry namest="OFFSET" nameend="5" align="center" rowsep="1"/></row></tbody></tgroup><tgroup align="left" colsep="0" rowsep="0" cols="7"><colspec colname="OFFSET" colwidth="21PT" align="left"/><colspec colname="1" colwidth="21PT" align="left"/><colspec colname="2" colwidth="49PT" align="center"/><colspec colname="3" colwidth="14PT" align="center"/><colspec colname="4" colwidth="49PT" align="center"/><colspec colname="5" colwidth="14PT" align="center"/><colspec colname="6" colwidth="49PT" align="center"/><tbody valign="top"><row><entry/><entry>pr</entry><entry>0.4</entry><entry>0.3</entry><entry>0.2</entry><entry>0.1</entry><entry>0</entry></row><row><entry/><entry>r.pr</entry><entry>0.4</entry><entry>0.6</entry><entry>0.6</entry><entry>0.4</entry><entry>0</entry></row><row><entry/><entry namest="OFFSET" nameend="6" align="center" rowsep="1"/></row></tbody></tgroup></table></tables>
Using values from the table, C=0.4+0.6+0.6+0.4≧2, and N=2C−1≦3.
Components of a system can fail from two distinct mechanisms. Firstly, hey wear out, and secondly, they can fail due to external damage.
When components fail due to wear and tear, the components with the lowest Mean Time Before Failure (MTBF) will fail more often than those with a high MTBF. When components fail due to damage, the components can fail with equal likelihood.
Accordingly, the fault diagnosis system can store the MTBF values for all faults. Under “Wear and Tear” normalisation mode, the MTBF is used to qualify the probability. (The perceived probability is multiplied by the number of expected faults in 100,000 hours.) Under “Damage” normalisation mode, the MTBF is not taken into consideration.
This has been applied to the previous example, and MTBF figures have been applied. In this case, the more common fault, F<sub>3</sub>, is seen to be more likely under “Wear and Tear” normalisation, even though it is less likely under “Damage” normalisation.<tables id="TABLEUS00005" num="5"><table frame="none" colsep="0" rowsep="0" pgwide="1"><tgroup align="left" colsep="0" rowsep="0" cols="7"><colspec colname="1" colwidth="21PT" align="left"/><colspec colname="2" colwidth="28PT" align="center"/><colspec colname="3" colwidth="35PT" align="center"/><colspec colname="4" colwidth="56PT" align="center"/><colspec colname="5" colwidth="42PT" align="center"/><colspec colname="6" colwidth="49PT" align="center"/><colspec colname="7" colwidth="42PT" align="center"/><thead><row><entry/></row><row><entry namest="1" nameend="7" align="center" rowsep="1"/></row><row><entry/><entry/><entry/><entry/><entry/><entry/><entry>Normalised </entry></row><row><entry/><entry/><entry/><entry/><entry>Normalised</entry><entry>Perceived</entry><entry>probability</entry></row><row><entry/><entry>MTBF</entry><entry/><entry>Perceived</entry><entry>probability</entry><entry>probability *</entry><entry>(Wear and</entry></row><row><entry>Fault</entry><entry>(hours)</entry><entry>Score = s</entry><entry>probability = e<sup>20s</sup></entry><entry>(Damage)</entry><entry>100000/MTBF</entry><entry>Tear)</entry></row><row><entry namest="1" nameend="7" align="center" rowsep="1"/></row></thead><tbody valign="top"><row><entry/></row></tbody></tgroup><tgroup align="left" colsep="0" rowsep="0" cols="7"><colspec colname="1" colwidth="21PT" align="left"/><colspec colname="2" colwidth="28PT" align="char" char="."/><colspec colname="3" colwidth="35PT" align="char" char="."/><colspec colname="4" colwidth="56PT" align="char" char="."/><colspec colname="5" colwidth="42PT" align="center"/><colspec colname="6" colwidth="49PT" align="char" char="."/><colspec colname="7" colwidth="42PT" align="center"/><tbody valign="top"><row><entry>F1</entry><entry>30,000</entry><entry>0.1</entry><entry>7.4</entry><entry>0.000</entry><entry>246.6667</entry><entry>0.000</entry></row><row><entry>F2</entry><entry>500,000</entry><entry>0.6</entry><entry>162754.8</entry><entry>0.731</entry><entry>325509.6</entry><entry>0.214</entry></row><row><entry>F3</entry><entry>50,000</entry><entry>0.55</entry><entry>59874.1</entry><entry>0.269</entry><entry>1197482</entry><entry>0.786</entry></row><row><entry>F4</entry><entry>100,000</entry><entry>−0.1</entry><entry>0.1</entry><entry>0.000</entry><entry>1</entry><entry>0.000</entry></row><row><entry>Sum</entry><entry/><entry/><entry>222636.4</entry><entry/><entry>1523239</entry></row><row><entry namest="1" nameend="7" align="center" rowsep="1"/></row></tbody></tgroup></table></tables>
Completely unskilled users of the fault diagnosis system may choose which normalisation strategy to employ. Even skilled personnel may not be able to say whether the cause of a fault was “Damage” or “Wear and Tear”. In these cases, an indeterminate strategy is used, where a normalisation between the two is chosen. In this case, the perceived probability is normalised, for example by {square root}{square root over (1000000/MTBF)}. The effect of this can be seen in the table below, where it is compared with the two previous normalisation strategies.<tables id="TABLEUS00006" num="6"><table frame="none" colsep="0" rowsep="0" pgwide="1"><tgroup align="left" colsep="0" rowsep="0" cols="8"><colspec colname="1" colwidth="21PT" align="left"/><colspec colname="2" colwidth="28PT" align="center"/><colspec colname="3" colwidth="35PT" align="center"/><colspec colname="4" colwidth="56PT" align="center"/><colspec colname="5" colwidth="42PT" align="center"/><colspec colname="6" colwidth="42PT" align="center"/><colspec colname="7" colwidth="49PT" align="center"/><colspec colname="8" colwidth="49PT" align="center"/><thead><row><entry/></row><row><entry namest="1" nameend="8" align="center" rowsep="1"/></row><row><entry/><entry/><entry/><entry/><entry/><entry>Normalised</entry><entry/><entry/></row><row><entry/><entry/><entry/><entry/><entry>Normalised</entry><entry>probability</entry><entry>Perceived</entry><entry>Normalised</entry></row><row><entry/><entry>MTBF</entry><entry/><entry>Perceived</entry><entry>probability</entry><entry>(Wear and</entry><entry>probability *</entry><entry>probability</entry></row><row><entry>Fault</entry><entry>(hours)</entry><entry>Score = s</entry><entry>probability = e<sup>20s</sup></entry><entry>(Damage)</entry><entry>Tear)</entry><entry>100000/MTBF</entry><entry>(Indeterminate)</entry></row><row><entry namest="1" nameend="8" align="center" rowsep="1"/></row></thead><tbody valign="top"><row><entry/></row></tbody></tgroup><tgroup align="left" colsep="0" rowsep="0" cols="8"><colspec colname="1" colwidth="21PT" align="left"/><colspec colname="2" colwidth="28PT" align="char" char="."/><colspec colname="3" colwidth="35PT" align="char" char="."/><colspec colname="4" colwidth="56PT" align="char" char="."/><colspec colname="5" colwidth="42PT" align="center"/><colspec colname="6" colwidth="42PT" align="center"/><colspec colname="7" colwidth="49PT" align="char" char="."/><colspec colname="8" colwidth="49PT" align="center"/><tbody valign="top"><row><entry>F1</entry><entry>30,000</entry><entry>0.1</entry><entry>7.4</entry><entry>0.000</entry><entry>0.000</entry><entry>42.7</entry><entry>0.000</entry></row><row><entry>F2</entry><entry>500,000</entry><entry>0.6</entry><entry>162754.8</entry><entry>0.731</entry><entry>0.214</entry><entry>230170.0</entry><entry>0.462</entry></row><row><entry>F3</entry><entry>50,000</entry><entry>0.55</entry><entry>59874.1</entry><entry>0.269</entry><entry>0.786</entry><entry>267765.3</entry><entry>0.538</entry></row><row><entry>F4</entry><entry>100,000</entry><entry>−0.1</entry><entry>0.1</entry><entry>0.000</entry><entry>0.000</entry><entry>0.4</entry><entry>0.000</entry></row><row><entry>Sum</entry><entry/><entry/><entry/><entry/><entry/><entry>497989.4</entry></row><row><entry namest="1" nameend="8" align="center" rowsep="1"/></row></tbody></tgroup></table></tables>
It can be seen that the resultant answer is somewhere between the two, perhaps not quite as good an estimate, when more information is available, but a reasonable answer is provided. Thus, with less knowledge, a less focussed result is obtained. Once extra knowledge is added, the diagnosis becomes more accurate. Such extra knowledge may be input to the fault diagnosis system by a user or maintainer of the monitored system to which the fault diagnosis system is connected as shown in step 118 of FIG. 2. For example, an experienced user of the monitored system may have knowledge which can direct or affect diagnosis in respect of a particular fault. Such user experience may be input via a checkbox on the screen and has the effect of modifying the diagnosis.
A problem can arise when many faults in an area have similar symptom sets that differed in obvious detail; in other words a diagnosis can be accurate to the general area, but give insignificant score differences between faults that differ significantly in detail. The fault diagnosis system is able to “focus” on the area of interest, and consider only the important symptoms.
Faults which have a negative score are extremely unlikely to be candidates for a fault to match the symptom presented. They have more symptoms which do not match the pattern presented than which do. Therefore, negative scoring faults can be safely eliminated from the diagnosis. If this is done, then some symptoms will subsequently have no effect on the diagnosis.
They may have “0” for all remaining faults (or in exceptional cases, they may have “1” for all remaining faults). Such symptoms are not benefiting the diagnosis and can also be eliminated. The elimination of negatively scoring faults, and subsequent elimination of symptoms that have no effect, is termed cropping. Afterwards, the diagnosis is much improved, because the fault diagnosis system is operationally “concentrating” upon the part of the diagnosis which is relevant, and is not being skewed by irrelevant information.
In the fault diagnosis system, automatic cropping can optionally be selected. If cropping is used, the process of diagnosis is extended. Every time a diagnosis is requested, an initial diagnosis is performed, then cropping is done, and then another diagnosis. The results of the second diagnosis are then presented to the user. Once the next stage of diagnosis has been entered, the system reinstates the entire set of faults and symptoms, so that any changes to the diagnosis caused by symptoms with human intervention will correctly change the course of the diagnosis. The user input of Step 118 is then fed back to Step 102 and the rest of the steps are repeated until the fault has been diagnosed and possibly fixed.
When finding a diagnosis, it is possible that there are multiple faults in the system. This would be evidenced by two dissimilar faults having strong scores of 0.5 to 0.7, but no fault having a score close to 1. The fault diagnosis system may be arranged to eliminate one of the faults from consideration, and to diagnose the system ignoring that fault and its attendant symptoms.
This is done by deleting the fault from the diagnostic information and removing all symptoms which are associated with it (i.e. which have “1” for that fault), and keeping all symptoms which are not associated with it (i.e. which have 0 for that fault). Those that have “*” are a little more involved. If the symptom is nondiagnostic, then it may be associated, so the symptom is removed. If the symptom is diagnostic and the value in the Symptom Vector is “1”, then the symptom is removed. If the symptom is diagnostic and the value in the Symptom Vector is “0”, then the symptom stays.
When preferring a diagnosis, it is possible that a fault does match the symptoms fairly well, but it has been investigated, and the maintainer knows for certain that the fault is not present. In this case, it would be useful to eliminate the fault from consideration as it may be skewing the diagnosis. This is done by deleting the fault from the diagnostic information but keeping all symptoms.
Note that when both cropping and eliminating, the faults and symptoms are not deleted from the underlying diagnostic information, as they may be needed for future fault diagnosis. They should be marked as removed. Cropping the diagnosis is less permanent than eliminating a fault/symptom from the diagnosis, so the two cases are handled by different mechanisms.
FIGS. 3 to 5 illustrate exemplary graphical user interfaces provided by the fault diagnosis system in one embodiment of the invention, during a fault diagnosis. The user interfaces may for example be provided on a touchscreen display or suchlike.
Referring to FIG. 3, the interface 200 includes a ranked list 202 of possible faults placed in order of calculated probability, after a first pass diagnosis. The interface 200 also includes a ranked list 204 of user actions, including possible manual symptom investigations and/or fault fixes, placed in order of value in the process, which is calculated from the diagnostic benefit and the time cost of the action, both of which are also listed for reference by the maintainer. The interface 200 also includes a set of mode options, including user action mode (investigate only, investigate and fix), normalisation mode (damage, wear and tear), diagnosis mode (normal, focussed), and weighting mode (score weighting 1, score weighting 2). The interface 200 also includes estimates of the time remaining until completion of the diagnosis 208, calculated using an “optimistic” algorithm, and a “pessimistic” algorithm, and various thresholds 210 which may be set by the user to specify the operation of the fault diagnosis system.
Referring to FIG. 4, the ranked list 202 of possible faults placed in order of calculated probability, after a subsequent (third, fourth, etc.) pass diagnosis, has been reduced to three faults of equal probability. The ranked list 204 of user actions, now includes different and differently ordered possible manual symptom investigations and three optional fault fixes, placed in lower order of value in the process due to the relatively long time the fault fixes are estimated to take in relation to the time taken for the most prominent symptom investigations. Note the calculated estimates of time 208 have been reduced significantly.
Referring to FIG. 5, the ranked list 202 of possible faults, after a subsequent (third, fourth, etc.) pass diagnosis, has now been reduced to a single fault. The ranked list 204 of user actions now includes only a single fault fix. Hence, the fault has been diagnosed.
The invention described provides a fault diagnosis system that is capable of quickly and relatively simply diagnosing faults from symptoms generated in complex systems, devices and networks such as satellite telecommunications networks. Furthermore, the fault diagnosis system described is not limited to use in telecommunications networks. The fault diagnosis system may be used in relation to any complex equipment requiring fault diagnosis, including but not limited to both civil and military aircraft, any military system of any significant size (including tanks, other land vehicles, weapon systems, aircraft systems, avionics systems, communications systems, data dissemination systems, ship systems, control systems) and various civilian applications such as power distribution systems, communications systems, air traffic control systems.
Note that in the above examples, only relatively small numbers of faults and symptoms are used to explain the operation of the fault diagnosis system. In a real example of a fault diagnosis system for a complex system, the number of faults and symptoms would be significantly larger; typically at least one hundred or more, and in more complex systems, a thousand or more, faults would be involved, and one hundred or more, and in more complex systems, a thousand or more symptoms would be involved. However, the same algorithms as described above would be applicable.
Note that in the above examples, the Diagnostic Exemplar is constructed, and the Symptom Vector multiplies the Diagnostic Exemplar, such that the contributions made by a fault symptom being present in the current state symptoms and being deemed indicative of a known fault, or being present and being deemed unrelated to a known fault, provide a positive and negative contribution respectively to the score and probability calculated for the corresponding fault. However, in alternative embodiments, the Diagnostic Exemplar is constructed such that contributions may both be positive, or both be negative, with one being more positive and the other being more negative, respectively. The same applies to relationships between the other types of values in the Diagnostic Exemplar, and the results provided by the operation of the Symptom Vector thereon.
Note also that a zero contribution is provided in various of the cases, for example when a symptom is either present in the current state or not present in the current state and nondiagnostic in the diagnostic signatures, or when a symptom is not present in the current state symptoms and deemed indicative of the fault in the corresponding fault exemplar. A zero contribution is more positive than a negative contribution, and more negative than a positive contribution. Alternatively, these various cases may also be arranged to provide nonzero contributions which are similar and/or substantially neutral in effect on the score and probability calculated for the corresponding fault.
The fault diagnosis system of the present invention also includes additional features which provide further benefits. For example, it may be possible to ‘associate’ similar symptoms, such as those associated with noise or temperature, which relate to one or more faults.
Moreover, it may be possible to modify other parts of a system when a particular fault is being fixed. For example, when an engine is taken out for repair, other associated components, such as the starter motor, gearbox or clutch, could be the subject of a precautionary check to ensure that all is in order prior to replacing the engine. This lessens the likelihood of having to remove the engine again within a short period to fix one of the associated components.
External data may be input into the fault diagnosis system, for example, Failure Modes, Effects and Criticality Analysis (FMECA) data in accordance with the Ministry of Defence Standard DEFSTAN0060.
In FIGS. 3 to 5, the cost to investigate a symptom is given in minutes. However, it will readily be appreciated that any other suitable cost function could be used, for example, the cost given could be the actual cost in relation to the time to investigate the symptom or fix the fault. Furthermore, the user may define the parameters which are used as a method of determining the most efficient or costeffective way of investigating the symptom or fixing the fault. The user may include a weighting factor in the defined parameters.
The fault diagnosis system may also include data relating to rate of change of symptoms, known generally as ‘trend analysis’. The fault diagnosis system may, in addition, include a process for feeding data generated back into the system as a reference for future use.
Data relating to the ageing of symptoms may also be incorporated into the fault diagnosis system. For example, if a symptom exists for a long time, it may not be important and therefore can be discounted. If a symptom exists and has not been checked for a long time, it too may be unimportant and can be discounted. However, such a symptom may become more relevant and needs to be checked.
Although the present invention has been described as performing substantially single level diagnostics, it will be appreciated that by including multilevel diagnostics, a depth of analysis can be obtained from the fault diagnosis system. For example, if a pilot receives an indication that there is a fault in an engine (top level), he can use the fault diagnosis system to drill down to an appropriate level where he can obtain the necessary detailed information to perform a situational assessment about the engine fault.
The invention has been described with reference to identifying an existing failure in a system being monitored by the fault diagnosis system, but the invention could also include a predicted diagnosis module which predicts possible failure. This could lead to a selffix system where a fault is predicted and fixed before it occurs.
In addition, an assessment of the impact of a fault on the monitored system could also be implemented. For example, three assessment levels could be given, namely, ‘action’, ‘hold’ and ‘ignore’. This would allow the user of the system being diagnosed to make decisions concerning the availability of the system for its next mission or sortie.
The data obtained from one or more of these assessment levels could then be used as an input to the predicted diagnosis module or as data being fed back as reference data into the system as mentioned above.
Although the invention has been described with reference to an active system, it could also be used as a diagnostic assessability tool for systems during development. This would provide the ability to recognise and distinguish faults from displayed symptoms during development. In particular, it would be possible to determine if there are sufficient correctly located sensors to achieve satisfactory fault diagnosis and give the flexibility of redesign if required. For example, as a diagnostic assessability tool, the invention could determine if it is possible to distinguish one fault from another if they have substantially the same symptoms and then allow modification of the system prior to its completion.
The above embodiments are to be understood as illustrative examples of the invention. Further embodiments of the invention are envisaged. For example, whilst in the above embodiment the fault diagnosis system is implemented by the use of fault diagnosis software, the fault diagnosis system may also be implemented in hardcoded form, such as in the form of an integrated circuit.
It is to be understood that any feature described in relation to any one embodiment may be used alone, or in combination with other features described, and may also be used in combination with one or more features of any other of the embodiments, or any combination of any other of the embodiments. Furthermore, equivalents and modifications not described above may also be employed without departing from the scope of the invention, which is defined in the accompanying claims.