Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
COMPUTER DEVICE AND METHOD FOR DETECTING CORRELATIONS WITHIN DATA
Document Type and Number:
WIPO Patent Application WO/2016/134900
Kind Code:
A1
Abstract:
The computer device (10) comprises a receiving unit (1) for receiving numerical data (11) and logical data (12) from the technical system (100), a selection unit (2) for selecting a subset (13) of the numerical data (11), a processing unit (3) for processing the subset of the numerical data (11) and the logical data (12) by converting the subset of the numerical data (11) and the logical data (12) into text-based data and by detecting predefined events in the text-based data, a comparison unit (4) for comparing the detected events with predefined queries, wherein the predefined queries describe correlations between detected events, to provide a comparison result, and a signaling unit (5) for outputting a signal (13) based on the provided comparison result. By converting numerical data and logical data into text-based data, correlations within the data can be easily detected based on predefined queries, which are also in text-based form. Further, a technical system comprising such a computer device and a corresponding method are provided.

Inventors:
FISHKIN ALEXEY (DE)
LATIMER ANTHONY (GB)
MARSDEN ADAM (GB)
ROSHCHIN MIKHAIL (DE)
Application Number:
PCT/EP2016/051509
Publication Date:
September 01, 2016
Filing Date:
January 26, 2016
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
SIEMENS AG (DE)
International Classes:
G06F17/15; G05B23/02; G06F17/30; G06K9/00
Foreign References:
EP2400401A22011-12-28
CN1184931A1998-06-17
Other References:
DAN FELDMAN ET AL: "iDiary: From GPS Signals to a Text-Searchable Diary", ACM TRANSACTIONS ON SENSOR NETWORKS, 11 November 2013 (2013-11-11), 2 Penn Plaza, Suite 701 New York NY 10121-0701 USA, pages 1 - 12, XP055272005, ISSN: 1550-4859, DOI: 10.1145/2814569
S. SARKAR ET AL: "Multi-sensor information fusion for fault detection in aircraft gas turbine engines", PROCEEDINGS OF THE INSTITUTION OF MECHANICAL ENGINEERS, PART G: JOURNAL OF AEROSPACE ENGINEERING, vol. 227, no. 12, 21 December 2012 (2012-12-21), United Kingdom, pages 1988 - 2001, XP055272010, ISSN: 0954-4100, DOI: 10.1177/0954410012468391
Download PDF:
Claims:
Patent claims

1. A computer device (10) for detecting correlations within data received from a technical system (100), the computer device (10) comprising:

a receiving unit (1) for receiving numerical data (11) and logical data (12) from the technical system (100),

a selection unit (2) for determining dependencies between data of the numerical data (11) being described by the logical data (12) and for selecting a subset of the numerical data (11), the subset corresponding to data of the numerical data (11) having dependencies which correspond to predefined conditions ,

a processing unit (3) for processing the subset of the numerical data (11) and the logical data (12) by converting the subset of the numerical data (11) and the logical data

(12) into text-based data and by detecting predefined events in the text-based data,

a comparison unit (4) for comparing the detected events with predefined queries to provide a comparison result, wherein the predefined queries describe correlations between detected events, and

a signaling unit (5) for outputting a signal (13) based on the provided comparison result.

2. The computer device (10) according to claim 1,

wherein the predefined conditions include at least one of a start condition or an availability condition. 3. The computer device (10) according to claim 1 or 2, wherein the signaling unit (5) is adapted to output a signal

(13) when the comparison result is positive.

4. The computer device (10) according to one of claims 1 - 3,

wherein the receiving unit (1) is adapted to receive

numerical sensor data and logical sensor data from a

plurality of sensors of the technical system (100) and/or numerical measurement data and logical data from at least one measurement unit of the technical system (100) .

5. The computer device (10) according to one of claims 1 - 4,

wherein the receiving unit (1) is adapted to receive

operation commands from at least one control unit of the technical system (100), and

wherein the comparison unit (4) is adapted to compare the detected events and the operation commands with predefined queries .

6. The computer device (10) according to one of claims 1 - 5,

wherein a predefined query describes a correlation between a plurality of detected events.

7. The computer device (10) according to claim 6,

wherein the predefined query describes a temporal and/or logical correlation between the plurality of detected events.

8. The computer device (10) according to one of claims 1 - 7,

wherein the processing unit (3) includes a filter for

filtering specific detected events.

9. The computer device (10) according to one of claims 1 - 8,

wherein the detected events include at least one of a trend of the detected event, a gap within the detected event, a minimum value of the detected event, a maximum value of the detected event, and an average value of the detected event. 10. The computer device (10) according to one of claims 1 - 9,

further comprising an input unit (6) for receiving input information (14) from a user, the input information including predefined queries.

11. The computer device (10) according to claim 10,

wherein the input information is in text-based form.

12. A technical system (100) comprising

a plurality of sensors (20) for providing numerical data (11) and logical data (12) from the technical system (100), and

a computer device (10) according to one of claims 1 to

11.

13. The technical system (100) according to claim 12,

wherein the technical system (100) is one of a wind turbine, a gas turbine, a steam turbine, a compressor, and a

generator .

14. A method for detecting correlations within data received from a technical system (100), the method comprising:

receiving (301) numerical data (11) and logical data (12) from the technical system (100),

determining (302) dependencies between data of the numerical data (11) being described by the logical data (12), selecting (303) a subset of the numerical data (11), the subset corresponding to data of the numerical data (11) having dependencies which correspond to predefined

conditions ,

processing (304) the subset of the numerical data (11) and the logical data (12) by converting the subset of the numerical data (11) and the logical data (12) into text-based data and by detecting predefined events in the text-based data,

comparing (305) the detected events with predefined queries to provide a comparison result, wherein the

predefined queries describe correlations between detected events, and outputting (306) a signal (13) based on the provided comparison result.

15. A computer program product comprising a program code for executing the method for detecting correlations within data received from a technical system (100) according to claim 14.

Description:
Description

Computer device and method for detecting correlations within data

The present invention relates to a computer device for detecting correlations within data received from a technical system and a technical system comprising such a computer device. Further, the present invention relates to a method for detecting correlations within data received from a technical system and a computer program product comprising a program code for executing such a method.

In several technical systems, for instance rotating equipment like turbines or generators, diagnostics itself and related diagnosis procedures, involve a comprehensive analysis of very large volumes of data for a longer time period,

depending on the complexity of an investigated problem. The data consists of both textual messages from control units in the form of text strings, referred to as events in this domain, and sensor signals, referred to as measurements.

Events from control units, also known as sequences of events, may contain significant information for diagnostics. But analysis based on this information by itself is time and cost expensive and is not related to further information from sensors .

In common systems, methods are used which use either nominal information such as text mining, ontologies, complex event processing, or use numerical data such as discrete and stochastic methods, learning algorithms and generally

mathematics .

It is one object of the present invention to improve the processing of data received from technical systems based on numerical, logical and nominal data. Accordingly, a computer device for detecting correlations within data received from a technical system is provided. The computer device comprises a receiving unit for receiving numerical data and logical data from the technical system, a selection unit for determining dependencies between data of the numerical data being described by the logical data and for selecting a subset of the numerical data, the subset corresponding to data of the numerical data having

dependencies which correspond to predefined conditions, a processing unit for processing the numerical data and the logical data by converting the numerical data and the logical data into text-based data and by detecting predefined events in the text-based data, a comparison unit for comparing the detected events with predefined queries to provide a

comparison result, wherein the predefined queries describe correlations between detected events, and a signaling unit for outputting a signal based on the provided comparison result .

The computer device is based on the idea of converting the received numerical data into text-based data, i.e. nominal data, such that a comparison with text-based queries can be easily performed. Users who have no further knowledge of programming or programming languages can thus formulate text- based queries which can directly be compared with events detected in the converted text-based data. The text-based data may be based on a grammar which can be defined

beforehand. The grammar may define events as well as any kind of correlation using a specific language based on the

grammar .

In order to reduce the amount of numerical data to be

processed, i.e. converted, the selection unit selects a subset of the numerical data to be converted into text-based data. As the receiving unit receives numerical data as well as logical data from the technical system, this selection can be done using dependencies between single data or information of the numerical data. For example, the numerical data include processes being dependent on each other. The logical data describes such dependencies. The selection unit may then select only those data of the numerical data which fulfill predefined conditions, wherein the conditions define such dependencies.

The selection unit, the processing unit, the comparison unit and the signaling unit may be separate units or may be combined, for instance in a central processing unit.

The processing unit, when converting the subset of numerical data and the logical data into text-based data, may perform an analysis of the received subset of numerical and logical data and transform the subset of numerical and logical data into text-based data including the information of the subset numerical and logical data in text-based form. Converting in this context may thus refer to analyzing and transforming numerical and logical data into text-based data. The

processing unit may then examine the text-based data in view of predefined events. The predefined events may be stored in a data base and describe or define for instance specified conditions of the technical system.

Computer device in this context may refer for instance to a personal computer or workstation but also to mobile devices like smartphones or tablet PCs. The computer device may comprise a display unit such as a monitor for displaying the output signal to a user. According to an embodiment, the predefined conditions include at least one of a start condition or an availability

condition .

Thus, for example only when specific numerical data are available, i.e. fulfill a logical operation of being

available, the specific numerical data are included into the subset. As another example, numerical data might need to fulfill a specific start condition being indicated by a logical operation. Also other predefined conditions are possible .

According to a further embodiment, the signaling unit is adapted to output a signal when the result of the comparison is positive.

The comparison unit may perform a comparison of the events of the text-based data and the predefined queries which may also be in text form. If the query describes a correlation between two events, the comparison unit determines whether both events are fulfilled. If yes, the signal unit outputs a signal. The signal may be for instance a warning signal informing a user about the occurrence of the combination of the events.

According to a further embodiment, the receiving unit is adapted to receive numerical sensor data and logical sensor data from a plurality of sensors of the technical system and/or numerical measurement data and logical data from at least one measurement unit of the technical system.

The technical system may comprise at least one sensor sensing for instance a temperature, speed, rotation or any other kind of condition or status being measurable by sensors. In addition or alternatively, the technical system may comprise measurement units for measuring information within the technical system. The data from a plurality of sensors may be handled as multiple data over time.

According to a further embodiment, the receiving unit is adapted to receive operation commands from at least one control unit of the technical system, and the comparison unit is adapted to compare the detected events and the operation commands with predefined queries.

In addition to sensor data or measurement data, operation commands can be taken into account when comparing the received numerical data, after conversion, with predefined queries. For instance, a query may define that the user wants to be informed if a specific operation command has been issued and a specific event, i.e., a specific condition or status, of the technical system occurs.

According to a further embodiment, a predefined query

describes a correlation between a plurality of detected events .

The queries may also describe more than two events which need to be fulfilled before resulting in an output signal. These events may have a relation to each other, but may also be independent from each other.

According to a further embodiment, the predefined query describes a temporal correlation between the plurality of detected events. According to this embodiment, at least two events may have a temporal correlation. The temporal correlation may be an offset between two or more events or may describe that the two or more events occur at the same time. Also a combination of these correlations may be described, e.g., two events occur at the same time and the third event a predefined time interval later.

According to a further embodiment, the predefined query describes a logical correlation between the plurality of detected events.

A logical correlation may correspond to any known logic operations like AND, NOR, NAND, XOR and so on. Also a

combination of temporal and logical correlations may be described by the predefined queries.

According to a further embodiment, the processing unit includes a filter for filtering specific detected events. According to this embodiment, specific detected events may be ignored by filtering. Thus, it may be defined in a query that some events need to be fulfilled whereas other events are ignored.

According to a further embodiment, the detected events include at least one of a trend of the detected event, a gap within the detected event, a minimum value of the detected event, a maximum value of the detected event, and an average value of the detected event.

If an event describes a changing or varying signal like temperature, voltage, current, speed or the like, the

processing unit may determine the kind of change when

detecting the events. These changes or variations within the signals can be part of predefined queries which then describe a varying event and not only a static event. However, a detected event can also correspond to a threshold such as a minimum value or maximum value.

A trend of an event may also be detected when the event describes a changing or varying signal having some drops or peaks. The trend may be detected as a trend over a specific time, i.e. over the time interval, the trend may be detected although there are some distortions (upward or downward) within the time interval.

According to a further embodiment, the computer device further comprises an input unit for receiving input

information from a user, the input information including predefined queries.

The input unit may be for example a monitor, a keyboard, a mouse, a touchpad or any other kind of input unit.

According to a further embodiment, the input information is in text-based form. As the input information is in text-based form, also users having no deeper knowledge of programming languages can define and input queries.

The above described computer device provides a simple

approach to combine text-based information, i.e. predefined queries from users and operation commands from control units of the technical system, as well as numerical data and logical data from sensors. By filtering and preprocessing huge amounts of numerical data and logical data, which can be done directly by a diagnosis engineer, not a programmer, the comparison of the numerical data in combination with the logical data and the text-based queries can be easily

performed. The computer device thus provides a user friendly way to represent rules, i.e. queries and comparison results, based on sensor measurements and their characteristics without any advanced knowledge of mathematics. An automated correlation of various sensor measurements can be performed by using various logical operators (AND, OR, NOT, etc.) as well as temporal correlations (after, before, coincides, etc.) for high-dimensional data. By placing together both information sources, i.e. numerical and text-based data, from any technical system, e.g. from rotating equipment, in the form of events in order to process them within one computer device, knowledge can be shared among various diagnosis engineers in well-known language without further knowledge of mathematics or programming languages. According to a further aspect, a technical system is

provided. The technical system comprises a plurality of sensors for providing numerical data and logical data from the technical system, and a computer device as described above .

According to an embodiment, the technical system is one of a wind turbine, a gas turbine, a steam turbine, a compressor, and a generator. The sensors of the technical systems may be any sensors for detecting and/or monitoring conditions of the technical system, in particular of rotating equipment.

According to a further aspect, a method for detecting

correlations within data received from a technical system is provided. The method comprises receiving numerical data and logical data from the technical system, determining

dependencies between data of the numerical data being

described by the logical data, selecting a subset of the numerical data, the subset corresponding to data of the numerical data having dependencies which correspond to predefined conditions, processing the numerical data and the logical data by converting the numerical data and the logical data into text-based data and by detecting predefined events in the text-based data, comparing the detected events with predefined queries to provide a comparison result, wherein the predefined queries describe correlations between detected events, and outputting a signal based on the provided

comparison result.

According to a further aspect, the invention relates to a computer program product comprising a program code for executing the above-described method for detecting

correlations within data received from a technical system when run on at least one computer.

A computer program product, such as a computer program means, may be embodied as a memory card, USB stick, CD-ROM, DVD or as a file which may be downloaded from a server in a network. For example, such a file may be provided by transferring the file comprising the computer program product from a wireless communication network.

The embodiments and features described with reference to the apparatus of the present invention apply mutatis mutandis to the method of the present invention. Further possible implementations or alternative solutions of the invention also encompass combinations - that are not explicitly mentioned herein - of features described above or below with regard to the embodiments. The person skilled in the art may also add individual or isolated aspects and features to the most basic form of the invention.

Further embodiments, features and advantages of the present invention will become apparent from the subsequent

description and dependent claims, taken in conjunction with the accompanying drawings, in which:

Fig. 1 shows a first example of a representation of a

computer device for detecting correlations within data received from a technical system;

Fig. 2 shows a second example of a representation of a computer device for detecting correlations within data received from a technical system; and

Fig. 3 shows an embodiment of a sequence of method steps for detecting correlations within data received from a technical system.

In the Figures, like reference numerals designate like or functionally equivalent elements, unless otherwise indicated.

Fig. 1 illustrates a first example of a computer device 10. The computer device 10 comprises a receiving unit 1 for receiving numerical data 11 and logical data 12 from sensors 20 of a technical system 100. The receiving unit 1 may be coupled to sensors or may be coupled to a sending unit of the technical system 100.

A selection unit 2 determines dependencies between data of the numerical data 11. The dependencies are described by the logical data 12. The selection unit 2 selects a subset of the numerical data 11. The subset corresponds to data of the numerical data 11 having dependencies which correspond to predefined conditions. A processing unit 3 processes the numerical data 11. The processing unit 3 converts the numerical data 11 into text- based data and detects predefined events in the text-based data. A comparison unit 4 compares the detected events with predefined queries to provide a comparison result.

The predefined queries are input as input information 14 to an input unit 6. The predefined queries describe correlations between detected events, for instance temporal or logical correlations. A signaling unit 5 outputs a signal 13 based on the provided comparison result. The signal 13 can be a warning signal to indicate a specific combination of events.

In Fig. 2, a second example of a computer device 10 is illustrated. Here, the processing unit 3 is shown in detail. The remaining parts of the computer device 10 of Fig. 1 can also be present, although not shown in Fig. 2.

The numerical data 11 and the logical data 12 are stored in a data base 7. The processing unit 3 comprises a further data base 21 in which predefined events as well as queries can be stored .

The numerical data 11 and the logical data 12 can be

retrieved by a mathematical processing unit 8. The

mathematical processing unit 8, which comprises a processor 16, determines mathematical events such as average values, minimum values or maximum values. In a processing recognition unit 9, which comprises an event emitter 17 for detecting further events, trends of the data 11 or gaps within the data 11 can be recognized. The processing recognition unit 9 is adapted to detect logical or temporal characteristics of the events . In an event processing unit 15, which comprises a processor 18, logic rules can be applied by a logic rules converter 19. Thus, the detected events can be preprocessed before being supplied to the comparison unit 4 which is not shown in Fig. 2.

The finally detected events can be shown on a display unit 22. Also the comparison result can be displayed on the display unit 22.

An example of a grammar being used for describing events and correlations between events will be explained in the

following. It should be noted that also other grammar can be used or that the described grammar can be extended.

The grammar for describing events and correlations can be context free. An "event" and its definition are considered to be a term of a category signal. The following are examples of the language, i.e. grammar, which can extend an event processing technology "Drools

Fusion" :

<formulaHeader> = <logicalExpression>;

::= (<signalVariable> :)? signal (Strin <attributes>*

$<identifier> : [A-Z]

<attributes> = : internal

period (once | <time>)

off

switch (on off, <variableList>)

<variableList> ::= <variable> , (variable)* <temporalExpression> ::= not <temporalExpression>

I <temporalExpression> and <temporalExpression> I <temporalExpression> or <temporalExpression> I <temporalExpression>

I <eventExpression>

I ( <temporalExpression> )

<eventExpression> ::= (<variable> :)? <eventEmitter>

<temporalConstraint>?

<eventEmitter> ::= truth (<logicalExpression>)

I trend ( (up I down) , <dataExpression>)

I comparison ( (== I ! = I > I >= I < I <=) ,

<numericExpression>, <numericExpression>)

I range (<numericExpression>, (>|>=),

<numericExpression>, (<|<=),

<numericExpression>)

I gap (<numericExpression> | <logicalExpression>)

<logicalExpression> ::= ! <logicalExpression>

I <logicalExpression> (== | !=)

<logicalExpression>

I <logicalExpression> && <logicalExpression>

I <logicalExpression> | | <logicalExpression>

I <numericComparison>

I <logicalCalculation> <filterList>

I (true I false)

I ( <logicalExpression> ) <filterList>

<logicalCalculation> ::= <logicalIf>

I <isAvailable>

<numericComparison> ::= <numericExpression>

(== I ! = I >= I > I <= I <) <numericExpression>

I <numericExpression> ((==|<=|<)

<numericExpression>) + <logicalIf> ::= if (<logicalExpression>,

<logicalExpression>, <logicalExpression>) I if (<logicalExpression>, <logicalExpression>) I if (<logicalExpression>)

<isAvailable> ::= isAvailable (<logicalExpression> |

<numericExpression>)

<numericExpression> ::= - <numericExpression>

I <numericExpression> (*|/) <numericExpression>

I <numericExpression> (+|-) <numericExpression>

I <numericCalculation> <filterList>

I <inputSignalIdentifier> <filterList>

I (Integer | Number)

I ( <numericExpression> ) <filterList>

<numericCalculation> ::= <numericlf>

I <sdFunction>

I <smaFunction>

I <emaFunction>

I <meanFunction>

I <absFunction>

I <minFunction>

I <maxFunction>

I <sumFunction>

I <powFunction>

I <integralFunction>

I <countTrueFunction>

I <countPointsFunction>

I <gradientFunction>

<numericlf> ::= if (<logicalExpression>,

<numericExpression>, <numericExpression>) I if (<logicalExpression>, <numericExpression>)

<sdFunction> ::= sd (<numericCalculation>

( , <numericCalculation>) *)

I sd (<numericCalculation>, <movingWindowLength>)

<smaFunction> ::= sma (<numericCalculation>,

<movingWindowLength>)

<emaFunction> ::= ema (<numericCalculation>,

<movingWindowLength>)

I ema (<numericCalculation>, Float,

<movingWindowLength>)

<meanFunction> ::= mean (<numericCalculation>

( , <numericCalculation>) *)

<absFunction> ::= abs (<numericCalculation>)

<minFunction> ::= min (<numericCalculation>

( , <numericCalculation>) *)

I min (<numericCalculation>,

<movingWindowLength>)

<maxFunction> ::= max (<numericCalculation>

(,< numericCalculation>) * )

I max (<numericCalculation>,

<movingWindowLength>)

<sumFunction> ::= sum (<numericCalculation>,

<movingWindowLength>)

<powFunction> ::= pow (<numericCalculation>,

<numericCalculation>)

<integralFunction> ::= integral (<numericCalculation>,

<movingWindowLength>)

<countTrueFunction> ::= countTrue (<logicalExpression>,

<movingWindowLength>)

<countPointsFunction> ::= countPoints (<numericCalculation> | <logicalExpression>, <movingWindow imeLength>)

I countPoints (<numericCalculation> |

<logicalExpression>)

<gradientFunction> ::= gradient (<numericCalculation>)

<movingWindowLength> ::= <@>? (Integer | <time>)

<Exclamation>?

<movingWindow TimeLength> ::= <@>? <time> <Exclamation>?

<filterList> ::= <filter>* <filter> ::= : ignorable | : ignorable (true | false)

once I : once (true | false)

expires (<time>)

maxwait (<time>)

at (Integer | <time>)

<time> (specifies Drools notation) ::= (Digit+'d')

(Digit+'h')? (Digit+'m')? (Digit+'s')?

(Digit+ 'ms ' ) ?

I (Digit+'h') (Digit+'m')?

(Digit+ ' s ' ) ? (Digit+ 'ms ' ) ?

I (Digit+'m') (Digit+'s')? (Digit+ ' ms ' ) ?

I (Digit+'s') (Digit+ ' ms ' ) ?

I Digit+'ms'

<temporalConstraint>? ::= <startConstraint>?

I <endConstraint>?

I <lastConstraint>?

I <finishedConstraint>?

I <unfinishedConstraint>?

I <durationConstraint>?

I <maxGapConstraint>?

<startConstraint> ::= : start (correlationCondition

( , correlationCondition) * ) I : s (correlationCondition

( , correlationCondition) * )

<endConstraint> ::= : end (correlationCondition

(, constraintOperator) * )

: e (correlationCondition

( , correlationCondition) * ) constraintOperator ::= after [<time> (, <time>)?]? variable

Colon (start I s I end I e)

I before [<time> (, <time>)?]? variable

Colon (start I s I end I e)

I coincides [<time>] ? variable Colon

(start I s I end | e)

I over <time>

<lastConstraint> ::= : last ( Integer | * )

<finishedConstraint> ::= : finished

<unfinishedConstraint> ::= : unfinished

<durationConstraint> ::= : duration ((>= | <=) <time>)

I : duration (>= <time>, <= <time>)

<maxGapConstraint> ::= : maxgap (<time>)

The above listed grammar can be used to define various events, correlations between these events as well as queries, which will be described in the following. The term "rule" refers to predefined events.

A formula consists of two parts, a header and a formula expression, separated by a "=" symbol. The formula header has the form "signal ( "event name")"; there can be a reference definition for this formula before the expression ("$sl:"). After the expression with leading colon, optional attributes are located in arbitrary order: • ": internal" means that the current signal is used only as an intermediate internal event, generated for other rules within the current bunch of formulas

• ": period (once | ime)" applies a filter with the following meaning: "How long it takes after previous event match to consider next match of this formula"

• "once" means that the rule will execute only one time Temporal expressions include temporal operands, such as AND, OR, NOT operators (not case-sensitive) and parenthesis:

• AND has a greater priority than OR

• NOT refers directly to the next operand, i.e. NOT A

AND B means (NOT A) AND B;

· To assign NOT for expression it is necessarily to use explicit parenthesis

• Temporal operand (dataExpression) is an event emitter An event emitter includes:

• Optional variable definition with the meaning

"process" (such an event always starts with "$" symbol)

• If the variable is specified, a colon symbol is required after the variable definition

· Definition of process event emitter

• Optional emitter attributes with a leading colon symbol and an arbitrary order

Event emitter attributes include:

· ": start ()" or "s()" - correlation conditions of the event start are located between parenthesizes, separated by comma

• Operators "after", "before", "coincides" with optional temporal constraints. Temporal constraints contain references to a binding point as a variable and a bound of an event ("start" or "end") into brackets. • "over lh" specifies the time window of the event start (whether the event must start within a specified time interval relative to the current moment of time)

• If into parenthesis nothing is specified, then this attribute is equivalent to the absence of the start () attribute

• ": end() " of "e()" - correlation conditions of the event end are located between parenthesizes, separated by comma

· Operators "after", "before", "coincides" are the same in usage as described above for the start () section

• "over lh" specifies the time window of the event end (whether the event must end within a specified time interval relative to the current moment of time)

· ": last (count) " - window by event count (how many such last events should be considered) ;

• by default for all event emitters constraint ":last(l)" is applied, i.e. such a formula correlate only with the last event from the series, so it is not necessary to specify constraint ":last(l)" explicitly;

• to correlate all events, generated by an emitter, it is necessary to use ":last(*)"

• ":finished" - the process described by the event must have been finished by the moment of the formula

activation to consider this event

• ":!finished" - the process described by the event must be unfinished by the moment of the formula activation

• ": duration ()" - describes a minimal and maximal duration of the process

· ": duration (>= time)" - describes a minimal process duration after that the process will be recognized

• ": duration (<= time)" - describes a maximal process duration during which the process can be still recognized

· ": duration (>= time, <= time)" - describes both minimal and maximal durations of the process

• ": maxgap ( time) " - means that an emitter restricted with this constraint expects a maximal gap in data to be not greater than the specified time interval. If the emitter does not receive any data within the specified time interval, it assumes that the process is finished, and waits for a new process to start again

· if the maxgap ( ) constraint is omitted, the emitter waits for the next data indefinitely signal ( "Simple finished trend event for last 10 values, which expires in lm")

Event process emitter (event process generator) describes:

• Identifier of operation (e.g. truth, comparison etc . )

• Operation parameters into parenthesizes

(mathematical expressions, and special expressions, depending on the emitter type)

Truth supports a process while the expression in parenthesis evaluates to true. This can be used as a primary emitter to match processes.

Gap emits events when the data expression contains gaps in the data.

• Time duration constraint for the gap emitter has only a >= constraint operator; because of library

implementation <= operator drools will emit superfluous events

Logical expressions contain the following operations:

· Logical operators (!, &&, | |)

• Logical constants (true, false)

• Comparisons of logical values (==, !=)

• Numeric comparisons

• Comparison of the two numeric values using standard comparison operators

• Chained comparison of several numeric values using ==, <, <= operators

• Logical functions • if (A, B, C) evaluates to B or C depending on value of A

• isAvailable (A) evaluates to true if A is available at the moment of the calculation and evaluates to false otherwise

• Operands for these operations can be

• Logical values and constants

• Results of the inner operations

• Logical expressions can be prioritized using parenthesizes

• Some of operands, such as sub expressions and functions, can be specified with a filter

Mathematical expressions of the event emitters include the following operations:

• Arithmetical operations (*, /, +, -)

• Aggregating functions

• Has a mathematical expression as a first parameter. The result of the calculation of this expression will be used as a data source for an aggregating operation

• "sd" - standard deviation function

• "sma", "ema" - average functions

• "mean" - average function of several data expressions

"integral" - Riemann integral

• Operands for these operations can be

• Numbers

• Identifiers of the data source

• Results of the inner operations

· Mathematical expressions can be prioritized using parenthesizes

• Some of the operands, such as a data source identifier, a sub expression and aggregating functions, can be specified with filters

Filters define the behavior of data expression values emitting in the case that new input values cannot be calculated or there are no available values in the data source .

• "ignorable" - means that the result of the data expression specified with this filter can be ignored during other calculations, if its new value is undefined (cannot be calculated)

• "once" - means that the last calculated value of data expression will be used only once; the expression will wait for the next available value to calculate a new result · "expires" - means that the result value of the data expression will always be undefined, if the last value was calculated earlier than the specified timeout

• Timeout of expiration

• "at" - means that the result of the data expression will be taken from the historical values from the specified index starting from 0 (last value) or from a specified time point in the past

• "maxwait" - means that the result of the expression will be produced with specified lateness to handle late data arrival

The If function has two overloading for numeric values and three for logical values:

• With 3 parameters - if the first parameter

calculates to true, the if function emits the result of the second parameter, otherwise the if function emits the result of the third parameter

• With 2 parameters - if the first parameter

calculates to true, the if function emits the result of the second parameter, otherwise the if function emits nothing (effectively filters values of the second parameter)

• With 1 parameter (available only for logical expressions) - if the first parameter calculates to true, the if function emits the value of the first parameter, otherwise emits nothing (effectively filters out values of the first parameter when it does not equal to true) The IsAvailable function calculates if a value is available at the moment of calculation.

The standard deviation function has three overloading:

· For number of input expression - calculates a standard deviation for all input values at the moment of the calculation

• For moving window by time - calculates a standard deviation value within the time interval

· For moving window by data values count - calculates a standard deviation value for the last data values from the series

• Time or count parameter may be started from @ (at sign) to distinguish the window length from the regular input · Time or count parameter may be specified with exclamation mark suffix which means that the function will not calculate values until the sliding window is fulfilled

The simple moving average function calculates an unweighted average of the previous datum points. It has two overloading:

• By time - calculates an average value within the time interval

• By data values count - calculates an average value for the last data values from the series

· Time or count parameter may be specified with exclamation mark which means that the function will not calculate values until the sliding window is fulfilled

The exponential moving average function calculates a weighted average value of the data expression and applies weighting factors which decrease exponentially. The weighting for each older datum point decreases exponentially, never reaching zero. It has four overloading:

• By time - calculates an exponential moving average value within the time interval

• By data values count - calculates an exponential moving average value for the last data values from the series • With specified alpha parameter [0,1] and by time length

• With specified alpha parameter [0,1] and by data values count

· Time or count parameter may be specified with exclamation mark which means that the function will not calculate values until the sliding window is fulfilled.

The mean function calculates the average value of several data expressions.

The abs function calculates the absolute value of the data expression . The max function calculates the maximal value of several data expressions .

• For number of input expression - calculates the maximal value for all input values at the moment of the calculation

· For moving window by time - calculates the maximal value within the time interval

• For moving window by data values count - calculates the maximal value for the last data values from the series

• Time or count parameter may be started from @ (at sign) to distinguish the window length from the regular input

• Time or count parameter may be specified with exclamation mark suffix which means that the function will not calculate values until the sliding window is fulfilled The min function calculates the minimal value of several data expressions .

• For number of input expression - calculates the minimal value for all input values at the moment of the calculation

· For moving window by time - calculates the minimal value within the time interval

• For moving window by data values count - calculates the minimal value for the last data values from the series • Time or count parameter may be started from @ (at sign) to distinguish the window length from the regular input

• Time or count parameter may be specified with exclamation mark suffix which means that the function will not calculate values until the sliding window is fulfilled.

The sum function calculates a sum value of values within the moving window. It has several overloads:

• For moving window by time - calculates the minimal value within the time interval

• For moving window by data values count - calculates the minimal value for the last data values from the series

• Time or count parameter may be started from @ (at sign) to distinguish the window length from the regular input · Time or count parameter may be specified with exclamation mark suffix which means that the function will not calculate values until the sliding window is fulfilled.

The pow function calculates the power of data expressions, includes two parameters:

• First parameter - base of power

• Second - exponent

The integral function calculates a Riemann integral of the previous datum points (time is applied in seconds) . It has two overloading:

• For moving window by time - calculates the integral within the time interval

• For moving window by data values count - calculates the integral value for the last data values from the series

• Time or count parameter may be started from @ (at sign) to distinguish the window length from the regular input

• Time or count parameter may be specified with exclamation mark suffix which means that the function will not calculate values until the sliding window is fulfilled.

The CountPoints function calculates a count of the previous non null datum points. It has two overloading: • For moving window by time - calculates the count within the time interval

• Without second parameter - calculates the count for data values from the beginning of the processing

· Time parameter may be started from @ (at sign) to distinguish the window length from the regular input

• Time parameter may be specified with exclamation mark suffix which means that the function will not calculate values until the sliding window is fulfilled.

The CountTrue function calculates a count of true values within a moving window. It has two overloading:

• For moving window by time - calculates the integral within the time interval

· For moving window by data values count - calculates an integral value for the last data values from the series

• Time or count parameter may be started from @ (at sign) to distinguish the window length from the regular input

• Time or count parameter may be specified with exclamation mark suffix which means that the function will not calculate values until the sliding window is fulfilled.

The gradient function calculates a speed of an input value changing (time is applied in seconds) .

It should be noted that this grammar is only an example and can be reformulated as well as extended.

Fig. 3 shows an embodiment of a sequence of method steps for detecting correlations within data received from a technical system 100.

In a first step 301, numerical data 11 and logical data 12 are received from the technical system 100.

In a second step 302, dependencies between data of the numerical data 11 are determined, wherein the dependencies are described by the logical data 12. In a third step 303, a subset of the numerical data 11 is selected. The subset corresponds to data of the numerical data 11 having dependencies which correspond to predefined conditions.

The numerical data 11 and the logical data 12 are processed in a fourth step 304 by converting the numerical data 11 and the logical data 12 into text-based data and by detecting predefined events in the text-based data. This can be done using the above grammar.

In a fifth step 305, the detected events are compared with predefined queries to provide a comparison result, wherein the predefined queries describe correlations between detected events. The queries can also be formulated using the above described grammar.

In a sixth step 306, a signal 13 is outputted based on the provided comparison result.

Although the present invention has been described in

accordance with preferred embodiments, it is obvious for the person skilled in the art that modifications are possible in all embodiments.

Reference Numerals:

1 receiving unit

2 selection unit

3 processing unit

4 comparison unit

5 signaling unit

6 input unit

7 data base

8 mathematical processing unit

9 process recognition unit

10 computer device

11 numerical data

12 logical data

13 signal

14 input information

15 event processing unit

16 processor

17 event emitter

18 processor

19 logic rules converter

20 sensors

21 data base

22 display unit

100 technical system

301-304 method steps