Systems and methods for improved fault diagnostics of electrical machines under dynamic load oscillations

Systems and methods are disclosed for improved fault diagnostics of electrical machines under dynamic load oscillations. The systems and methods may rely on one or more different algorithms for performing such fault diagnostics. One example, algorithm may involve determining a ratio of an instantaneous real power and a reactive power of the motor.

FIELD OF DISCLOSURE

The present disclosure is related to power systems, and more particularly to systems and methods for improved fault diagnostics of electrical machines under dynamic load oscillations.

BACKGROUND

Existing electrical signature analysis (ESA)-based broken bar detection, eccentricity detection, and/or bearing failure detection algorithms used in association with motors may fail when there are dynamic load oscillations such as from coal crushers, pumps, compressor loads, etc. that match with the respective fault frequency.

DETAILED DESCRIPTION

Overview

This disclosure relates to, among other things, systems and methods for improved fault diagnostics of electrical machines under dynamic load oscillations. Particularly, the systems and methods described herein may allow for the detection of broken rotor bar faults in induction machines (or other types of machines) with or without low frequency load oscillation, which may interfere with existing broken rotor bar detection techniques. Although broken rotor bar faults may be specifically mentioned herein, the same systems and methods may also be applicable to other types of motor faults as well, such eccentricity faults and bearing fault, as well as any other types of faults under oscillating load conditions.

Generally, the broken rotor bar faults may be identified by monitoring a ratio of two magnitude features (Yfault/Xfault) for deviations from a constant baseline value, which may occur when a broken rotor bar fault occurs with or without load oscillations. If a broken rotor bar fault is not occurring, the ratio should remain constant (or within a threshold error range of the constant value). Similarly, the absolute of the difference of two angle features |Xfault_Ang−Yfault_Ang| may also be monitored for deviations from a constant value, which may occur when a broken bar fault occurs with or without load oscillations. Similar to the ratio, this absolute value of the different should remain constant (or within a threshold error range of the constant value) if the fault does not exist. Certain embodiments of the systems and methods can use a hybrid decision making process that may consider the magnitude of Yfaultalone (which may work in systems without load oscillation and may fail in systems with load oscillation), along with the ratio Yfault/Xfaultand |Xfault_Ang−Yfault_Ang| when a minimum amplitude criteria of Yfaultand/or Xfaultis met (which, in some cases, may occur in systems with load oscillations only) for reliable fault detection. Xfaultmay refer to energy in a band around the broken rotor bar frequency in the Fourier spectrum of the quantity X. Xfault_Angmay refer to an angle of the vector which results from a vectorial sum of all components in a band around the broken rotor bar frequency in the complex FFT of the quantity X. Yfaultand Yfault_Angmay similarly be derived from the quantity Y. X and Y include, but are not limited, to instantaneous real power, and reactive power, respectively.

Some prior conventional methods may exist that rely on these features, however, these prior conventional methods often rely on the assumption that the absolute values remain in certain range for broken bar and for load oscillation. However, this is not accurate when load oscillation coexists with broken rotor bar faults, and hence may not be useful for many field applications. That is, these prior conventional methods may not consider phase shift between broken rotor bar current component and load oscillation current component. By contrast, the systems and methods described herein may not necessarily rely on a specific amplitude range, but instead may rely on the fact that the ratio and angle difference may remain constant irrespective of the amplitude of load oscillation, and may deviate from the baseline value when the broken rotor bar fault occurs with or without load oscillation (due to varying phase difference between broken bar component and load component of current as load phase keep changing with time).

With the above features in mind, numerous approaches may be employed to identify a fault condition. These approaches may be referred to herein as one or more different “algorithms.” A first algorithm may involve determining fault information by calculating a ratio of an energy in fault frequency band of instantaneous real power (Pin) and a reactive power (Qin) of the machine. A second algorithm may involve using voltage space vector oriented dq currents. A third algorithm may involve using rotor flux oriented dq currents. In this, the d-q axis is oriented in the direction of the estimated rotor flux in the machine. Voltage space vector (or current space vector) may be the rotating complex number for the voltage (or current). A fourth algorithm may involve using active parks current vector(s) (APV) and reactive parks current vector(s) (RPV). A fifth algorithm may involve using amplitude and phase demodulated current spectrum. A sixth algorithm may involve instantaneous real and reactive apparent impedance. These approaches may be alternative approaches or one or more of the different approaches may be used in conjunction with one another to serve as additional data points. For example, the results of one approach may be used to validate the results of another approach (and/or more than two approaches may be used to increase confidence in the broken rotor bar fault determination). Additional details about how these different algorithms may be implemented may be provided in association withFIGS.2-10.

In some cases, the first algorithm may not necessarily involve a direct instantaneous real power and reactive power ratio. Instead, a frequency domain transform of instantaneous real and reactive power may be performed, and the energy in a frequency band corresponding to fault from both frequency domain transforms may be determined. Finally, the ratio may be determined.

In some cases, the current demodulation-based method may be beneficial in that it can be used in systems when voltage signals are not measured. The real and reactive power-based method may be beneficial in that it may involve lower number mathematical operations and may not require any motor circuit parameters.

In some embodiments, machine learning and high dimensional anomaly detection may be used to detect anomaly when frequency spectrum becomes spread out in a random fashion due to load oscillation. Several different types of machine learning approaches for classification may be employed.

A first example machine learning approach may involve the use of regression analyses.) Yfaultvalues are calculated for different operating conditions. Yfaultis the total power in the reactive power frequency spectrum in a band around the broken rotor fault frequency. A regression based analysis may be used where a polynomial curve may be fitted to this cluster of Yfaultvalues. The slope of the fitted polynomial for broken rotor case may be different in the two cases with and without load pulsation. Secondly, the slopes are compared to determine whether the slope is on the trajectory with load oscillation or the other one. Thirdly, once it is determined that there is load oscillation, R2values are compared to examine the of fit of the polynomial curve. Lower R2values may indicate presence of broken rotor. Larger spread in the direction of the slope may indicate a larger load oscillation.

A second example machine learning approach may include statistical distance and high dimensional anomaly detection. This second approach may involve comparing the difference between the distributions of the calculated features without computing geometric features of the clusters. The following operations may be employed. First, calculate either of the following statistical distance metrics to test how different the test distribution is form the baseline distribution. Kullbeck-Liebler divergence, Mahalanobis Distance, Bhattacharya Distance, etc. Second, compute the probability of the test cluster and baseline cluster being sampled from the same distribution, using the divergence/distance metrics. Lower probability values may indicate a potential anomaly. Third, use nearest neighbor distances to calculate overlap between test cluster and baseline cluster. Clusters themselves may be high dimensional in nature consisting of multiple frequency features extracted from current, voltage, real and reactive power and/or any combination of these, which capture load oscillation as well as operating condition parameters to capture variations in load and supply conditions. In addition to frequency features and operating condition parameters, we also consider specific physics-based features for each fault under investigation. An example would be Xfault, Yfaultand their angles Xfault_Ang, Yfault_Angfor broken rotor. Similarly, for bearing and eccentricity faults, there may be specific regions in the frequency spectrum which may be related to the geometry of the motor/bearing and may be considered as a physics-based feature.

A third example machine learning approach may include neural networks. This third approach may directly compute probability using a trained network. The following operations may be employed. First, train an ANN-based classifier using reference data from lab/field tests. Second, use the trained network to estimate the probability of the test point belonging to the baseline class. Third, lower probability values may indicate a potential anomaly.

Turning to the figures,FIG.1depicts a schematic diagram of an example system100, in accordance with one or more example embodiments of the disclosure. In some embodiments, the system100may include a motor102associated with one or more loads104and one or more electrical sources106. The system100may also include a local processing device108and/or a remote processing device110. In some cases, the local processing device108and/or remote processing device110may include an IED, relay, controller, or any other device associated with processing logic. For example, the local processing device108and/or the remote processing device110may include at least one or more processors, memory, and one or more analysis modules. The local processing device108and/or the remote processing device110may similarly include any other elements described inFIG.11as well. The one or more analysis modules may be configured to perform any of the operations described herein, such as any operations associated with monitoring and diagnosis of fault conditions in power system (for example, methods and/or operations described with respect toFIGS.2-10, as well as any other methods and/or operations described herein).

FIG.2depicts an example flowchart200, in accordance with one or more example embodiments of the disclosure. The flowchart200may illustrate operations involving in association with the first algorithm as described above. The flowchart200may begin with operation202, which may involve obtaining data and performing calculations based on that data. For example, the data that is obtained may include voltage and/or current data from the motor. However, the data may include any other types of data as well. The calculations may involve calculating at least instantaneous real power (Pin) and reactive power (Qin) Pinavg, Qinavg, frequency, Vunb, a power factor (PF), Xfault, Xfault_Ang, Yfaultand Yfault_Ang. Xfaultmay refer to energy in a band around the broken rotor bar frequency in the fourier spectrum of the quantity X. Xfault_Angmay refer to an angle of the vector which results from a vectorial sum of all components in a band around the broken rotor bar frequency in the complex FFT of the quantity X. Yfaultand Yfault_Angmay similarly be derived from the quantity Y. X and Y include, but are not limited to, instantaneous real power, and reactive power, respectively.

Once these calculations are performed in operation202, the flowchart200may proceed to operation204and/or operation206. Operations204and206may represent different approaches for monitoring for a broken rotor bar fault. For example, Operation204may be associated with prior methods as described above. That is, operation204may involve monitoring the Yfaulton its own for deviations from a baseline value. If a deviation that is a threshold amount away from the baseline is detected, then a broken rotor bar fault may be identified (as shown in operation210). If a deviation that is a threshold amount away from the baseline is not detected, then it may be determined that a broken rotor bar fault does not exist (as shown in operation212).

Operations206and208may be associated with the systems and methods described herein that may involve monitoring the ratio (Yfault/Xfault) and the angle (|Xfault_Ang−Yfault_Ang|) instead of just the amplitude of Yfault. That is, Operation208may involve establishing a baseline level and monitoring Yfault/Xfaultand |Xfault_Ang−Yfault_Ang| values. Additionally, operation206may involve performing a data filtering process to avoid processing noise data in operation208. That is, a minimum amplitude criterion may be used as the filter in operation206. However, any other criterion may be used as well. Similar to operation204, if a deviation that is a threshold amount away from the baseline is detected, then a broken rotor bar fault may be identified (as shown in operation210). If a deviation that is a threshold amount away from the baseline is not detected, then it may be determined that a broken rotor bar fault does not exist (as shown in operation212).

FIG.3depicts an example flowchart300, in accordance with one or more example embodiments of the disclosure. The flowchart300may illustrate additional operations involved in association with the first algorithm as described above. Operation302may involve calculating Pinand Qinfor the motor. Reactive power may represent electrical energy stored that is stored and flows back to the system. Real power may be the power actually consumed due to a load. In some cases, the instantaneous real power and reactive power data may be time domain data. The instantaneous real power and reactive power may be determined using the voltage and current data associated with the motor. For example, the instantaneous real power and reactive power may be determined using Equations 1 and 2 presented below.
Pin=Va*Ia+Vb*Ib+Vc*Ic(Equation 1)
Qin=√{square root over (3)}*(Va*Ib−Vb*Ia)  (Equation 2)
where Vaand Iamay represent voltage and current data for a first phase of the motor, respectively, Vband Ibmay represent voltage and current data for a second phase of the motor, respectively, and Vcand Icmay represent voltage and current data for a third phase of the motor, respectively.

Operation304may involve performing a frequency domain transformation of the determined instantaneous real power and reactive power. For example, the frequency domain transformation may involve performing a Fast Fourier Transform (FFT) of the time domain instantaneous real power and reactive power. However, the frequency domain transformation may be performed using any suitable method.

Operation306may involve estimating a speed of the motor, a slip of the motor, and/or a broken rotor bar frequency of the motor. In some cases, the speed of the motor, the slip of the motor, and/or the broken rotor bar frequency of the motor may be determined using Equations 3-5 presented below.

fslip⁢_⁢rated=fratedP2-ratedrpm60,
fratedmay represent the rated fund frequency of the machine, and ratedrpmmay represent the rpm of the machine at full load when supplied with fratedfrequency.

Operation308may involve determining Xfault, Xfault_Ang, Yfaultand Yfault_Ang. Xfaultmay refer to energy in a band around the broken rotor bar frequency in the Fourier spectrum of the quantity X. Xfault_Angmay refer to an angle of the vector which results from a vectorial sum of all components in a band around the broken rotor bar frequency in the complex FFT of the quantity X. Yfaultand Yfault_Angmay similarly be derived from the quantity Y. X and Y include but are not limited to instantaneous real power, and reactive power, respectively.

FIG.4depicts an example flowchart400, in accordance with one or more example embodiments of the disclosure. The flowchart400may illustrate additional operations involved in association with the second algorithm as described above. Operation402may involve calculating a voltage space vector angle. In some cases, the voltage space vector angle may be determined based on the voltage data associated with the phases of the motor (for example, Va, Vb, and Vc) using voltage phase-locked loop (PLL).

Operation404may involve transforming current data associated with the phases of the motor (for example, Ia, Ib, and Ic) into Idand Iq. In some case, the d-axis may be aligned to the voltage space vector angle.

This transformation may be performed by converting the three phase currents and voltages into a rotating complex number as follows {right arrow over (I)}=Id+jIq=Ia+αIb+α2Icwhere

α=ej⁢2⁢π3.
The d and q axes may be aligned in any direction. If it is aligned in the direction of the voltage space vector as mentioned above, I=(Ia+αIb+α2Ic)e−jθwhere θ is the instantaneous angle of the voltage space vector calculated using the PLL.

Operation406may involve calculating a frequency domain transform of Idand Iq. For example, the frequency domain transformation may involve performing a Fast Fourier Transform (FFT) of Idand Iq. However, the frequency domain transformation may be performed using any other suitable method.

Operation408may involve estimating a speed of the motor, a slip of the motor, and/or a broken rotor bar frequency of the motor. Operation410may involve determining Xfault, Xfault_Ang, Yfaultand Yfault_Ang. Similar to the first algorithm, the speed of the motor, a slip of the motor, and/or a broken rotor bar frequency of the motor, as well as Xfault, Xfault_Ang, Yfaultand Yfault_Angmay be determined.

FIG.5depicts an example flowchart500, in accordance with one or more example embodiments of the disclosure. The flowchart500may illustrate additional operations involved in association with the third algorithm as described above. The third algorithm may be similar to the second algorithm, but may involve using the rotor flux angle instead of the voltage space vector angle. Operation502may involve calculating a rotor flux angle. In some cases, the rotor flux angle may be determined based on the voltage and current data associated with the phases of the motor (for example, Va, Vb, Vc, and Ia, Iband Ic) and motor electrical circuit parameters such as inductances and resistances.

Operation504may involve transforming current data associated with the phases of the motor (for example, Ia, Ib, and Ic) into Idand Iq. In some case, the d-axis may be aligned to the rotor flux angle.

Operation506may involve calculating a frequency domain transform of Idand Ig. For example, the frequency domain transformation may involve performing a Fast Fourier Transform (FFT) of Idand Iq. However, the frequency domain transformation may be performed using any other suitable method.

Operation508may involve estimating a speed of the motor, a slip of the motor, and/or a broken rotor bar frequency of the motor. Operation510may involve determining Xfault, Xfault_Ang, Yfaultand Yfault_Ang. Similar to the first algorithm, the speed of the motor, a slip of the motor, and/or a broken rotor bar frequency of the motor, as well as Xfault. Xfault_Ang, Yfaultand Yfault_Angmay be determined.

FIG.6depicts an example flowchart600, in accordance with one or more example embodiments of the disclosure. The flowchart600may illustrate additional operations involved in association with the fourth algorithm as described above. That is, the flowchart600may involve determining active parks current vector(s) (APV) and reactive parks current vector(s) (RPV).

Operation602may involve calculating Vα, Vβ, Iα, and Iβ. In some cases, Vα, Bβ, Iα, and Iβmay be determined using Va,Vb, Vc, Ia, Ib, Ic. The α-β quantities may be but dq equivalent quantities in the stationary reference frame. Vαand Vβmay be the same as Vdand Vqin the stationary reference frame (for example, with a θ value of 0.

Operation604may involve determining the APV and RPV. In some cases, these values may be determined using Equations 6-7 presented below. Variables included within these equations may be determined in Equations 8-10, which are also presented below.
APV=√{square root over (Iαp2+Iβp2)}  (Equation 6)
APV=√{square root over (Iαq2+Iβq2)}  (Equation 7)
where the variables are calculated as below:
Pin=VαIα+VβIβ(Equation 8)
Qin=VβIα−VαIB(Equation 9)
Ip=Vαβin/(Vα2+Vβ2)  (Equation 10)
Iβp=VβPin/(Vα2+Vβ2)  (Equation 11)
Iαq=VβQin/(Vα2+Vβ2)  (Equation 12)
Iβq=−VαQin/(Vα2+Vβ2)  (Equation 13).

Operation606may involve calculating a frequency domain transform of APV and RPV. For example, the frequency domain transformation may involve performing a Fast Fourier Transform (FFT) of APV and RPV. However, the frequency domain transformation may be performed using any other suitable method.

Operation608may involve estimating a speed of the motor, a slip of the motor, and/or a broken rotor bar frequency of the motor. These values may also be determined using Equations 3-5 presented above. Operation610may involve determining Xfault, Xfault_Ang, Yfaultand Yfault_Ang. Similar to the first algorithm, the speed of the motor, a slip of the motor, and/or a broken rotor bar frequency of the motor, as well as Xfault, Xfault_Ang, Yfaultand Yfault_Angmay be determined.

FIG.7depicts an example flowchart700, in accordance with one or more example embodiments of the disclosure. The flowchart700may illustrate additional operations involved in association with the fifth algorithm as described above. That is, the flowchart700may involve using the amplitude and phase demodulated current spectrum.

Operation702may involve a determination as to whether current values have been measured for multiple phases of the motor (for example, Ia, Ib, Ic) (This method may be performed if voltages are not measured and only currents are measured, so the conditional check can be if currents are measured, and voltages are not measured). If the current values have been measured, the flowchart700may proceed to operation704. If not, the flowchart700may proceed to operation706. Operation704may involve applying envelope analysis or Concordia transform to calculated amplitude and phase demodulated signal. Operation706may involve using a Hilbert transform.

Operation708may involve calculating a frequency domain transform of amplitude and phase demodulated current spectrums. For example, the frequency domain transformation may involve performing a Fast Fourier Transform (FFT) of amplitude and phase demodulated current spectrums. However, the frequency domain transformation may be performed using any other suitable method.

Operation710may involve estimating a speed of the motor, a slip of the motor, and/or a broken rotor bar frequency of the motor. These values may also be determined using Equations 3-5 presented above. Operation712may involve determining Xfault, Xfault_Ang, Yfaultand Yfault_Ang. Similar to the first algorithm, the speed of the motor, a slip of the motor, and/or a broken rotor bar frequency of the motor, as well as Xfault, Xfault_Ang, Yfaultand Yfault_Angmay be determined.

FIG.8depicts an example flowchart800, in accordance with one or more example embodiments of the disclosure. The flowchart800may illustrate additional operations involved in association with the sixth algorithm as described above.

Operation806may involve calculating a frequency domain transform of amplitude and phase demodulated current spectrums. For example, the frequency domain transformation may involve performing a Fast Fourier Transform (FFT) of amplitude and phase demodulated current spectrums. However, the frequency domain transformation may be performed using any other suitable method.

Operation808may involve estimating a speed of the motor, a slip of the motor, and/or a broken rotor bar frequency of the motor. These values may also be determined using Equations 3-5 presented above. Operation810may involve determining Xfault, Xfault_Ang, Yfaultand Yfault_Ang. Similar to the first algorithm, the speed of the motor, a slip of the motor, and/or a broken rotor bar frequency of the motor, as well as Xfault, Xfault_Ang, Yfaultand Yfault_Angmay be determined.

FIG.9Ais an example process flow diagram of an illustrative method900. At block902, the method900may include receiving, by a processor, operational data associated with a motor. Block904of the method900may include determining, by the processor, using one or more algorithms, and based on the operational data, processed data, wherein the one or more algorithms include at least one of: determining a ratio of an instantaneous real power and a reactive power of the motor. Block906of the method900may include determining, by the processor, a frequency domain transform of the processed data. Block908of the method900may include calculating, by the processor, a fault index corresponding to a first type of motor failure. Block910of the method900may include determining, by the processor and based on the fault index, a baseline of operation for the motor. Block912of the method900may include determining, by the processor, a deviation from the baseline, wherein the deviation is above a threshold amount. Block914of the method900may include causing to send, by the processor and based on determining the deviation, an alert indicative of a fault in the motor.

FIG.9Bis an example process flow diagram of an illustrative method950. At block952, the method950may include receiving, by a processor, operational data associated with a motor. Block954of the method950may include determining, by the processor, using one or more algorithms, and based on the operational data, processed data, wherein the one or more algorithms include at least one of: estimate the position based on direct and quadrature current components in a rectangular coordinate system aligned to a voltage space vector or a rotor flux vector. Block956of the method950may include determining, by the processor, a frequency domain transform of the processed data. Block958of the method950may include calculating, by the processor, a fault index corresponding to a first type of motor failure. Block960of the method950may include determining, by the processor and based on the fault index, a baseline of operation for the motor. Block962of the method950may include determining, by the processor, a deviation from the baseline, wherein the deviation is above a threshold amount. Block964of the method950may include causing to send, by the processor and based on determining the deviation, an alert indicative of a fault in the motor.

The operations described and depicted in the illustrative process flow ofFIGS.9A-9Bmay be carried out or performed in any suitable order as desired in various example embodiments of the disclosure. Additionally, in certain example embodiments, at least a portion of the operations may be carried out in parallel. Furthermore, in certain example embodiments, less, more, or different operations than those depicted inFIGS.9A-9Bmay be performed.

One or more operations of the process flow ofFIGS.9A-9Bmay have been described above as being performed by a user device, or more specifically, by one or more program modules, applications, or the like executing on a device. It should be appreciated, however, that any of the operations of process flow ofFIGS.9A-9Bmay be performed, at least in part, in a distributed manner by one or more other devices, or more specifically, by one or more program modules, applications, or the like executing on such devices. In addition, it should be appreciated that processing performed in response to execution of computer-executable instructions provided as part of an application, program module, or the like may be interchangeably described herein as being performed by the application or the program module itself or by a device on which the application, program module, or the like is executing.

FIG.10is a block diagram of an example of a machine or system1000for falling conductor protection in accordance with one or more example embodiments of the disclosure.

In other embodiments, the machine1000may operate as a standalone device or may be connected (e.g., networked) to other machines. In a networked deployment, the machine1000may operate in the capacity of a server machine, a client machine, or both in server-client network environments. In an example, the machine1000may act as a peer machine in peer-to-peer (P2P) (or other distributed) network environments. The machine1000may be a server (e.g., a real-time server), a computer, an automation controller, a network router, a switch or bridge, or any machine capable of executing instructions (sequential or otherwise) that specify actions to be taken by that machine. Further, while only a single machine is illustrated, the term “machine” shall also be taken to include any collection of machines that individually or jointly execute a set (or multiple sets) of instructions to perform any one or more of the methodologies discussed herein, such as cloud computing, software as a service (SaaS), or other computer cluster configurations.

The machine (e.g., computer system)1000may include a hardware processor1002(e.g., a central processing unit (CPU), a graphics processing unit (GPU), a hardware processor core, or any combination thereof), a main memory1004and a static memory1006, some or all of which may communicate with each other via an interlink (e.g., bus)1008. The machine1000may further include a power management device1032, a graphics display device1010, an input device1012(e.g., a keyboard), and a user interface (UI) navigation device1014(e.g., a mouse). In an example, the graphics display device1010, input device1012, and UI navigation device1014may be a touch screen display. The machine1000may additionally include a storage device (i.e., drive unit)1016, a signal generation device1018(e.g., an emitter, a speaker), a fault detection device ice1019, a network interface device/transceiver1020coupled to antenna(s)1030, and one or more sensors1028, such as a global positioning system (GPS) sensor, a compass, an accelerometer, or other sensor. The machine1000may include an output controller1034, such as a serial (e.g., universal serial bus (USB), parallel, or other wired or wireless (e.g., infrared (IR), near field communication (NFC), etc.) connection to communicate with or control one or more peripheral devices (e.g., a printer, a card reader, etc.)).

The storage device1016may include a machine readable medium1022on which is stored one or more sets of data structures or instructions1024(e.g., software) embodying or utilized by any one or more of the techniques or functions described herein. The instructions1024may also reside, completely or at least partially, within the main memory1004, within the static memory1006, or within the hardware processor1002during execution thereof by the machine1000. In an example, one or any combination of the hardware processor1002, the main memory1004, the static memory1006, or the storage device1016may constitute machine-readable media.

The fault detection device1019may carry out or perform any of the operations and processes (e.g., the flow diagrams described with respect toFIGS.2-3and5-10) described above.

Although specific embodiments of the disclosure have been described, numerous other modifications and alternative embodiments are within the scope of the disclosure. For example, any of the functionality described with respect to a particular device or component may be performed by another device or component. Further, while specific device characteristics have been described, embodiments of the disclosure may relate to numerous other device characteristics. Further, although embodiments have been described in language specific to structural features and/or methodological acts, it is to be understood that the disclosure is not necessarily limited to the specific features or acts described. Rather, the specific features and acts are disclosed as illustrative forms of implementing the embodiments. Conditional language, such as, among others, “can,” “could,” “might,” or “may,” unless specifically stated otherwise, or otherwise understood within the context as used, is generally intended to convey that certain embodiments could include, while other embodiments may not include, certain features, elements, and/or operations. Thus, such conditional language is not generally intended to imply that features, elements, and/or operations are in any way required for one or more embodiments.

Other examples of programming languages include, but are not limited to, a macro language, a shell or command language, a job control language, a script language, a database task or search language, or a report writing language. In one or more example embodiments, a software component comprising instructions in one of the foregoing examples of programming languages may be executed directly by an operating system or other software component without having to be first transformed into another form.