The present disclosure is generally directed to vibrational data analysis and more specifically, to a method, system, apparatus, and software program for predicting a characteristic of a system based on vibrational data analysis.
Vibration naturally exists in any machine, even under the best operating conditions. In modern smart industry, vibration data is widely measured in many different domains, including manufacturing and automation industries, railways, and robotics. For example, a robotic manipulator, which is widely used in manufacturing industries, is a complex moving mechanical equipment that operates in 3-dimensional space. The equipment contains multiple components: joints, motor, reduction system, gearbox, bearings, among additional components. Vibration sensors may be mounted on machines to measure their vibration. In the best health condition, a machine may have a “normal” vibration pattern. When there is fatigue or degradation of one or more components of the machine, the vibration pattern may change, which can be used for predictive maintenance. A vibration sensor can be applied to detect failures at the system level and/or at the component level. Effective vibration analysis is crucial in condition monitoring and predictive maintenance, which helps to improve machine performance, reduce downtime and increase productivity.
Vibration data is a type of time series sensor data with high sampling rate. The sampling rate usually ranges from hundreds to thousands of measurements per second. In some domains, the sampling rate may go even higher. Real-world vibration data is usually non-stationary, which is hard to model because of its time varying characteristics (frequency contents keep changing along time). Vibration data analysis aims to determine the rate of oscillations, or the frequency components in the vibration data, and monitor the pattern change over time. Therefore, both frequency-domain feature information and time-domain feature information extracted from the vibration data may be important for developing a vibration data analysis method. Time-domain features represent how the vibration is changing or varying over time. Frequency-domain features reveal how much of the original vibration belongs to each given frequency component. Typical features and or characteristics associated with vibration data in the time domain may include a mean, a variance, a skewness, and/or kurtosis. Typical features and or characteristics associated with vibration data in the frequency domain may include an energy distribution over given components calculated using a Fourier-transform-based method or a wavelet-transform-based method. Useful features are expected to capture patterns that may be used to identify the condition (e.g., the “health”) of the equipment. Predictive maintenance methods aim to extract the important features from vibration data and map the features to the condition and/or “health” of the equipment.
Feature engineering is crucial in conventional predictive maintenance methods, which aim to identify important features by selecting features from the extracted temporal and spectral raw features. However, feature engineering usually requires domain knowledge or lots of preliminary analysis which is time and labor consuming.
Deep learning is becoming more and more popular because of its superiority in learning when given enough training data. Convolutional neural network (CNN), originally proposed for image processing and computer vision, is the most popular deep leaning method applied in vibration data analysis. Through frequency analysis method, 1 dimensional (1D) vibration data can be converted to 2D time-frequency representation, which carries both time and frequency domain information. The time-frequency representation can be regarded as an image and used as input for a CNN-based framework for predictive maintenance. This type of framework could automatically extract representative features from the 2D time-frequency representation of the original vibration data. Normal images have a smallest element called a pixel, which is similar to the 2D representation obtained through Fourier-related method. CNN was originally proposed to process image related problems. However, the CNN framework processes images by slides fixed size masks over the image, which may not be suitable for the 2D representation of vibration data with multiresolution.
To convert 1D vibration data to 2D time-frequency representation, Fourier-related and wavelet-related methods can be applied. Fourier-related method works well for stationary signals where the frequency contents are stable. However, real-world vibration data is usually non-stationary, e.g., has dynamic time varying characteristics. Short Time Fourier Transform (STFT) is the Fourier-related method which divides the original vibration signal into a sequence of equal-sized windows and sequentially applies Fourier transform in each window. Thus, STFT detects the frequency information in local sections of the vibration signal and the change over time, where the window size is fixed and pre-determined. To detect lower frequency components requires larger window size because at least one period of the sinusoid needs to fully fit in the selected frame. Usually, the window size is selected based on the smallest frequency that needs to be detected. For example, if the smallest frequency needs to be detected is 10 Hz, then the smallest window size may be 100 ms. A window smaller than 100 ms could not detect the 10 Hz component correctly. Due to the uncertainty principle, there is a trade-off between time and frequency resolution in time-frequency analysis for signal processing, meaning that one cannot achieve high temporal resolution and frequency resolution at the same time. Large window size provides good frequency resolution but results in poor temporal resolution, which though good for low frequency components, may cause information loss in higher frequency components or transient components in the vibration data. Therefore, the window size needs to be adjusted for different frequencies. However, using STFT, the temporal-spectral resolution over the whole 2D time-frequency representation is fixed, which may cause poor temporal resolution at high frequency components or poor spectral resolution at low frequencies. Accordingly, using a Fourier-related method could capture some of the non-stationary pattern in a vibration signal but cannot obtain the complete picture of the signal.
In this invention, a novel application of a functional neural network (FNN) to do vibration data analysis for predictive maintenance is provided. The FNN may automatically extract features from the time-frequency 2D representation of vibration data by regarding each frequency component in the 2D representation as a functional covariate. The novel application of the FNN may effectively capture the important information on the multiresolution representation of the vibration data on the time frequency plane.
Example implementations described herein involve an innovative method for using a functional neural network (FNN) to do vibration data analysis for predictive maintenance. An FNN may be used to automatically extract features from the time-frequency 2D representation of vibration data by regarding each frequency component in the 2D representation as a functional covariate. FNN may be used to effectively capture the important information on a multiresolution representation of the vibration data on a time-frequency plane.
Aspects of the present disclosure include a method for predicting a characteristic of a system. The method may include measuring, at a high sample rate, data relating to an operation of the system over a first time period. The method may also include producing a two-dimensional 2D time-and-frequency input data set by applying a wavelet transform to the measured data. The method may further include generating a set of one or more values associated with one or more system characteristics by processing the 2D time-and-frequency input data set using a functional neural network FNN.
Aspects of the present disclosure include a non-transitory computer readable medium, storing instructions for execution by a processor, which can involve instructions for predicting a characteristic of a system. The instructions for predicting the characteristic of a system may include instructions for measuring, at a high sample rate, data relating to an operation of the system over a first time period. The instructions for predicting the characteristic of a system may include instructions for producing a two-dimensional 2D time-and-frequency input data set by applying a wavelet transform to the measured data. The instructions for predicting the characteristic of a system may include instructions for generating a set of one or more values associated with one or more system characteristics by processing the 2D time-and-frequency input data set using a functional neural network FNN.
Aspects of the present disclosure include a system for predicting a characteristic of a system. The system may include means for measuring, at a high sample rate, data relating to an operation of the system over a first time period. The system may also include means for producing a two-dimensional 2D time-and-frequency input data set by applying a wavelet transform to the measured data. The system may also include means for generating a set of one or more values associated with one or more system characteristics by processing the 2D time-and-frequency input data set using a functional neural network FNN.
Aspects of the present disclosure include an apparatus, which can involve a processor, configured to measure, at a high sample rate, data relating to an operation of the system over a first time period. The processor may also be configured to produce a two-dimensional 21) time-and-frequency input data set by applying a wavelet transform to the measured data. The processor may further be configured to generate a set of one or more values associated with one or more system characteristics by processing the 2D time-and-frequency input data set using a functional neural network FNN.
The following detailed description provides details of the figures and example implementations of the present application. Reference numerals and descriptions of redundant elements between figures are omitted for clarity. Terms used throughout the description are provided as examples and are not intended to be limiting. For example, the use of the term “automatic” may involve fully automatic or semi-automatic implementations involving user or administrator control over certain aspects of the implementation, depending on the desired implementation of one of the ordinary skills in the art practicing implementations of the present application. Selection can be conducted by a user through a user interface or other input means, or can be implemented through a desired algorithm. Example implementations as described herein can be utilized either singularly or in combination and the functionality of the example implementations can be implemented through any means according to the desired implementations.
Example implementations described herein involve an innovative method for using an FNN to do vibration data analysis for predictive maintenance. FNNs may be able to handle irregular time series data with heterogeneous granularity across different time series covariates. For example, in some aspects, an FNN is used to perform vibration data analysis for predictive maintenance, which could automatically extract features from the time-frequency 2D representation of vibration data by regarding each frequency component in the 2D representation as a functional covariate. An FNN could effectively capture information relevant to predictive maintenance based on the multiresolution representation of the vibration data on the time-frequency plane. In some aspects, there are two primary steps for applying FNN to do vibration data analysis for predictive maintenance: 1) preprocessing of vibration data and 2) applying FNN to automatically extract features and map features to predictor (e.g., an output variable). For example, the predictor may be a RUL, or a probability of failure.
Aspects of the invention described herein may improve predictive maintenance based on vibration data.
A preprocessing operation 220 may receive the 1D vibration snapshots 212 from a sensor and apply a preprocessing wavelet transform 222 to convert the 1D vibration snapshots 212 to a 2D representation in a time-frequency plane 224. The 2D representation in a time-frequency plane 224 may include component signals formed through the convolution of the original 1D vibration snapshots 212 with a series of functions at different frequencies generated by a translation and scaling of a source function. In some aspects, a wavelet transform (e.g., preprocessing wavelet transform 222) of a signal may be its inner product with a scaled and shifted version of a given function, which is called a mother wavelet. For example, for a function, f(t), denoting a signal (e.g., 1D vibration snapshots 212) to be analyzed, and ψ denoting the given mother wavelet function, the wavelet transformation of f(t) at a scale a∈+ and translational value b∈ is expressed by the following integral:
where the scale factor a controls the dilation or compression and the translational factor b controls the position of a center of the scaled mother wavelet, ψ, with respect to the signal, f(t), to be analyzed.
After the preprocessing step (e.g., preprocessing wavelet transform 222), the component signals (e.g., the 2D representation in a time-frequency plane 224) may be regarded as functional covariates for providing to the FNN processing 232. The FNN processing 232 may be part of a predicting operation 230 for producing a predictor 234. The predictor 234 may include one or more of a predicted RUL, a probability of failing within a subsequent time period, or a detected anomaly.
As described in relation to
Functional data analysis (FDA) is a rapidly growing branch of statistics specialized in representing and modeling dynamically varying data over a continuum. An FNN may be introduced with the purpose of learning complex mappings between functional covariates and scalar responses from independent and identically distributed random variables (or data samples).
The functional neurons 422 may take the functional covariates Xi(t)=[X(i,1)(t), . . . , X(i,R)(t)]T as input, and may calculate a set of functions 425 including a linear transformation 424 (e.g., Σr=1R∫t∈TWr(βr, t)X(i,r)(t)dt) of the input data based on a parameter function Wr(βr, t) for r=1, . . . , R (e.g., a set of trainable parameters, or weights, associated with each X(i,r) for r=1, . . . , R), where βr is a finite-dimensional vector that quantifies the parameter function Wr(βr,t). The functional neurons 422 may then calculate a scalar value based on an activation function 426
where b∈ is an unknown intercept, and U(⋅) is a nonlinear activation function from to . The calculated scalar values (e.g., based on the activation function 426 H(Xi(t), β)) are the features in the new space which are then supplied into subsequent layers (e.g., the second layer 430) of numerical neurons 432 for further manipulations. In some aspects, additional layers of functional neurons and/or numerical neurons may be included in the FNN. The second layer 430 of numerical neurons 432 (e.g., a last layer of an FNN) may generate an output 442 (e.g., Yi) at an output layer 440. The output 442, Yi, may include one or more of a predicted RUL, a probability of failing within a subsequent time period, or a detected anomaly.
In some aspects, the functional neurons 422 may use multivariate functional principal component (FPCA) and/or best linear unbiased estimator (BLUE) to project the input data to an uncorrelated feature space.
The training data 710 may include training data sets 711-715 (e.g., sets of snapshots (e.g., Xt) and associated predictors (e.g., Yt)). The training data may be based on recorded vibration data and known times to failure from each snapshot, e.g., when predicting a RUL or a probability of failure. Training the FNN 700 may include training a set of weights (e.g., Wr(βr, t)) associated with a set of functional neurons 732. To train the FNN 700, a particular snapshot (e.g., Xt) is selected from the set of training data 710 (e.g., an Xt associated with one of the training data sets 711-715) and processed via vibration data preprocessing (e.g., wavelet transform) 720 to generate input for the FNN 700. The input may be provided to the FNN to produce an output 736 (e.g., a predictor value). The output 736 may then be compared to a predictor associated with the snapshot (e.g., Yt) to determine a difference between the computed output 736 and the known predictor from the set of training data 710 for a backpropagation operation. The backpropagation operation, in some aspects, includes adjusting set of weights based on a magnitude of the difference between the calculated predictor value 736 and the know predictor value from training data 710 and based on a gradient associated with the activation function.
After training the data with the training data 710, the trained FNN 700 may be validated based on a second set of validation data 750. Similarly to the training data 710, the validation data 750 may include validation data sets 751-754 including sets of snapshots and associated predictors. In order to validate the trained FNN, in some aspects, one or more snapshots in the set of validation data may be preprocessed to generate an input data set for the trained FNN 700 as described in relation to vibration data preprocessing (e.g., wavelet transform) 720 and provided to the trained FNN 700 as part of model testing 760 to produce one or more corresponding output(s) 736. The output(s) 736 (e.g., predictor value) may then be compared to the known predictor value associated with each of the one or more snapshots and a determination 770 is made as to whether the computed value is sufficiently close to the known value. If the value is close enough (e.g., if the difference is below a threshold value) the trained FNN 700 is stored as a model file with optimized weights and parameters. If the value is not close enough (e.g., the difference is above a threshold value), another round of training may be initiated using training data 710 or a different set of training data (not shown).
and each snapshot may be processed via vibration data preprocessing (e.g., wavelet transform) 820 in order to generate a 2D time-and-frequency input data set. The 2D time-and-frequency input data set associated with a particular time, ti, (e.g., a snapshot centered at time ti) maybe processed based on the model file 880 to produce an output (e.g., output 950 associated with time to or output 944 associated with time tm in the set of outputs 840.
that is provided to an FNN 940. The FNN 940 may process the input data through a multivariate FCPA 942 to produce a p-dimensional uncorrelated vector 944 that may then be provided as input to a FCNN 946 to produce one or more outputs 950 (e.g., a predictor value associated with one of an RUL, a probability of failure, or an anomaly score).
At 1020, the apparatus may produce a 2D time-and-frequency input data set by applying a wavelet transform to the measured data. In some aspects, applying the wavelet transform includes applying, to each set of time-windows at each of the plurality of scales, a wavelet associated with the range of frequencies corresponding to the scale in the plurality of scales. For example, referring to
Finally, at 1030, the apparatus may generate a set of one or more values associated with one or more system characteristics by processing the 2D time-and-frequency input data set using an FNN. In some aspects, generating the one or more values includes providing the 2D time-and-frequency input data set to the FNN as input, generating, using the FNN, an output data set, and providing the output data set as an input to a fully connected neural network (FCNN), wherein the generated set of one or more values associated with the one or more system characteristics is the output of the FCNN. The output data set, in some aspects, is associated with a set of latent features of the 2D time-and-frequency input data set that may be identified by the FNN. The generated one or more system characteristics may include at least one of an RUL of the system, a probability of failing within a second time period following the first time period, or a detected anomaly (e.g., a value associated with a detected anomaly or an indication of an anomaly in a set of possible anomalies).
At 1120, the apparatus may produce a 2D time-and-frequency input data set by applying a wavelet transform to the measured data. In some aspects, applying the wavelet transform includes applying, to each set of time-windows at each of the plurality of scales, a wavelet associated with the range of frequencies corresponding to the scale in the plurality of scales. For example, referring to
Finally, at 1130, the apparatus may generate a set of one or more values associated with one or more system characteristics by processing the 2D time-and-frequency input data set using an FNN. In some aspects, generating the one or more values includes providing, at 1140, the 2D time-and-frequency input data set to the FNN as input. For example, referring to
At 1150, the apparatus may generate, using the FNN, an output data set. The output data set, in some aspects, is associated with a set of latent features of the 2D time-and-frequency input data set that may be identified by the FNN. For example, referring to
Computer device 1205 can be communicatively coupled to input/user interface 1235 and output device/interface 1240. Either one or both of the input/user interface 1235 and output device/interface 1240 can be a wired or wireless interface and can be detachable. Input/user interface 1235 may include any device, component, sensor, or interface, physical or virtual, that can be used to provide input (e.g., buttons, touch-screen interface, keyboard, a pointing/cursor control, microphone, camera, braille, motion sensor, accelerometer, optical reader, and/or the like). Output device/interface 1240 may include a display, television, monitor, printer, speaker, braille, or the like. In some example implementations, input/user interface 1235 and output device/interface 1240 can be embedded with or physically coupled to the computer device 1205. In other example implementations, other computer devices may function as or provide the functions of input/user interface 1235 and output device/interface 1240 for a computer device 1205.
Examples of computer device 1205 may include, but are not limited to, highly mobile devices (e.g., smartphones, devices in vehicles and other machines, devices carried by humans and animals, and the like), mobile devices (e.g., tablets, notebooks, laptops, personal computers, portable televisions, radios, and the like), and devices not designed for mobility (e.g., desktop computers, other computers, information kiosks, televisions with one or more processors embedded therein and/or coupled thereto, radios, and the like).
Computer device 1205 can be communicatively coupled (e.g., via 10 interface 1225) to external storage 1245 and network 1250 for communicating with any number of networked components, devices, and systems, including one or more computer devices of the same or different configuration. Computer device 1205 or any connected computer device can be functioning as, providing services of, or referred to as a server, client, thin server, general machine, special-purpose machine, or another label.
IO interface 1225 can include but is not limited to, wired and/or wireless interfaces using any communication or IO protocols or standards (e.g., Ethernet, 1202.11x, Universal System Bus, WiMax, modem, a cellular network protocol, and the like) for communicating information to and/or from at least all the connected components, devices, and network in computing environment 1200. Network 1250 can be any network or combination of networks (e.g., the Internet, local area network, wide area network, a telephonic network, a cellular network, satellite network, and the like).
Computer device 1205 can use and/or communicate using computer-usable or computer readable media, including transitory media and non-transitory media. Transitory media include transmission media (e.g., metal cables, fiber optics), signals, carrier waves, and the like. Non-transitory media include magnetic media (e.g., disks and tapes), optical media (e.g., CD ROM, digital video disks, Blu-ray disks), solid-state media (e.g., RAM, ROM, flash memory, solid-state storage), and other non-volatile storage or memory.
Computer device 1205 can be used to implement techniques, methods, applications, processes, or computer-executable instructions in some example computing environments. Computer-executable instructions can be retrieved from transitory media, and stored on and retrieved from non-transitory media. The executable instructions can originate from one or more of any programming, scripting, and machine languages (e.g., C, C++, C#, Java, Visual Basic, Python, Perl, JavaScript, and others).
Processor(s) 1210 can execute under any operating system (OS) (not shown), in a native or virtual environment. One or more applications can be deployed that include logic unit 1260, application programming interface (API) unit 1265, input unit 1270, output unit 1275, and inter-unit communication mechanism 1295 for the different units to communicate with each other, with the OS, and with other applications (not shown). The described units and elements can be varied in design, function, configuration, or implementation and are not limited to the descriptions provided. Processor(s) 1210 can be in the form of hardware processors such as central processing units (CPUs) or in a combination of hardware and software units.
In some example implementations, when information or an execution instruction is received by API unit 1265, it may be communicated to one or more other units (e.g., logic unit 1260, input unit 1270, output unit 1275). In some instances, logic unit 1260 may be configured to control the information flow among the units and direct the services provided by API unit 1265, the input unit 1270, the output unit 1275, in some example implementations described above. For example, the flow of one or more processes or implementations may be controlled by logic unit 1260 alone or in conjunction with API unit 1265. The input unit 1270 may be configured to obtain input for the calculations described in the example implementations, and the output unit 1275 may be configured to provide an output based on the calculations described in example implementations.
Processor(s) 1210 can be configured to measure, at a high sample rate, data relating to an operation of the system over a first time period. The processor(s) 1210 may also be configured to produce a 2D time-and-frequency input data set by applying a wavelet transform to the measured data. Processor(s) 1210 may, in some aspects, be configured to apply, to each set of time-windows at each of the plurality of scales, a wavelet associated with the range of frequencies corresponding to the scale in the plurality of scales. The processor(s) 1210 may further be configured to generate a set of one or more values associated with one or more system characteristics by processing the 2D time-and-frequency input data set using an FNN.
Processor(s) 1210 may, in some aspects, be configured to provide the 2D time-and-frequency input data set to the FNN as input. The processor(s) 1210 may also be configured to generate, using the FNN, an output data set. The processor(s) 1210 may also be configured to provide the output data set as an input to a fully connected neural network (FCNN), wherein the generated set of one or more values associated with the one or more system characteristics is the output of the FCNN.
Some portions of the detailed description are presented in terms of algorithms and symbolic representations of operations within a computer. These algorithmic descriptions and symbolic representations are the means used by those skilled in the data processing arts to convey the essence of their innovations to others skilled in the art. An algorithm is a series of defined steps leading to a desired end state or result. In example implementations, the steps carried out require physical manipulations of tangible quantities for achieving a tangible result.
Unless specifically stated otherwise, as apparent from the discussion, it is appreciated that throughout the description, discussions utilizing terms such as “processing,” “computing,” “calculating,” “determining,” “displaying,” or the like, can include the actions and processes of a computer system or other information processing device that manipulates and transforms data represented as physical (electronic) quantities within the computer system's registers and memories into other data similarly represented as physical quantities within the computer system's memories or registers or other information storage, transmission or display devices.
Example implementations may also relate to an apparatus for performing the operations herein. This apparatus may be specially constructed for the required purposes, or it may include one or more general-purpose computers selectively activated or reconfigured by one or more computer programs. Such computer programs may be stored in a computer readable medium, such as a computer readable storage medium or a computer readable signal medium. A computer readable storage medium may involve tangible mediums such as, but not limited to optical disks, magnetic disks, read-only memories, random access memories, solid-state devices, and drives, or any other types of tangible or non-transitory media suitable for storing electronic information. A computer readable signal medium may include mediums such as carrier waves. The algorithms and displays presented herein are not inherently related to any particular computer or other apparatus. Computer programs can involve pure software implementations that involve instructions that perform the operations of the desired implementation.
Various general-purpose systems may be used with programs and modules in accordance with the examples herein, or it may prove convenient to construct a more specialized apparatus to perform desired method steps. In addition, the example implementations are not described with reference to any particular programming language. It will be appreciated that a variety of programming languages may be used to implement the teachings of the example implementations as described herein. The instructions of the programming language(s) may be executed by one or more processing devices, e.g., central processing units (CPUs), processors, or controllers.
As is known in the art, the operations described above can be performed by hardware, software, or some combination of software and hardware. Various aspects of the example implementations may be implemented using circuits and logic devices (hardware), while other aspects may be implemented using instructions stored on a machine-readable medium (software), which if executed by a processor, would cause the processor to perform a method to carry out implementations of the present application. Further, some example implementations of the present application may be performed solely in hardware, whereas other example implementations may be performed solely in software. Moreover, the various functions described can be performed in a single unit, or can be spread across a number of components in any number of ways. When performed by software, the methods may be executed by a processor, such as a general-purpose computer, based on instructions stored on a computer readable medium. If desired, the instructions can be stored on the medium in a compressed and/or encrypted format.
Moreover, other implementations of the present application will be apparent to those skilled in the art from consideration of the specification and practice of the teachings of the present application. Various aspects and/or components of the described example implementations may be used singly or in any combination. It is intended that the specification and example implementations be considered as examples only, with the true scope and spirit of the present application being indicated by the following claims.