Main Content

faultBands

Generate fault frequency bands for spectral feature extraction

Description

FB = faultBands(F0,N0) generates fault frequency bands FB, using the fundamental frequency of interest F0 and the array of harmonics N0. For instance, to construct fault bands for an induction motor, the mains frequency of 60 Hz is the fundamental frequency of interest.

example

FB = faultBands(F0,N0,F1,N1) constructs fault frequency bands FB, using the distance of the first sideband F1 from the fundamental frequency F0. N1 is the array of the sidebands around F0. If F1 is not specified, then faultBands sets F1 to 10 percent of F0 by default. N1 is equivalent to the 'Sidebands' name-value pair. You can use the 'Type' name-value pair to specify separation between successive sidebands.

example

___ = faultBands(___,Name,Value) allows you to specify additional parameters using one or more name-value pair arguments.

example

[FB,info] = faultBands(___) also returns the structure info containing information about the generated fault frequency bands FB.

example

faultBands(___) with no output arguments plots a bar chart of the generated fault frequency bands FB.

example

Examples

collapse all

For this example, generate frequency bands for analyzing the signal components around the first 5 harmonics of the mains supply frequency.

With the fundamental frequency of 60 Hz, the frequency of the alternating current in the mains power supply, use faultBands to generate the first 5 harmonics of the mains supply.

F0 = 60;
N0 = 1:5;
FB = faultBands(F0,N0)
FB = 5×2

   58.5000   61.5000
  118.5000  121.5000
  178.5000  181.5000
  238.5000  241.5000
  298.5000  301.5000

FB is returned as a 5x2 array with default frequency band width of 5% of F0 which is 3 Hz. The first column in FB contains the values of F-W2, while the second column contains all the values of F+W2 for each harmonic.

For this example, consider an induction motor with broken rotor bars. Under normal operation with load, the rotor speed always lags the speed of the magnetic field allowing the rotor bars to cut magnetic lines of force and produce useful torque. This difference is called slip. Considering a slip value of 0.03 in the system with broken rotors, construct frequency bands for sideband components around the fundamental frequency of 60 Hz.

F0 = 60;
N0 = 1:2;
slip = 0.03;
F1 = 2*slip*F0;
N1 = 1:3;
[FB,info] = faultBands(F0,N0,F1,N1)
FB = 12×2

   47.7000   50.7000
   51.3000   54.3000
   54.9000   57.9000
   62.1000   65.1000
   65.7000   68.7000
   69.3000   72.3000
  107.7000  110.7000
  111.3000  114.3000
  114.9000  117.9000
  122.1000  125.1000
      ⋮

info = struct with fields:
           Centers: [49.2000 52.8000 56.4000 63.6000 67.2000 70.8000 109.2000 112.8000 116.4000 123.6000 127.2000 130.8000]
    HarmonicGroups: [1 1 1 1 1 1 2 2 2 2 2 2]
            Labels: {'1F0-3F1'  '1F0-2F1'  '1F0-1F1'  '1F0+1F1'  '1F0+2F1'  '1F0+3F1'  '2F0-3F1'  '2F0-2F1'  '2F0-1F1'  '2F0+1F1'  '2F0+2F1'  '2F0+3F1'}

Construct frequency bands for analyzing the signal components around the first three harmonics of the electrical mains supply frequency.

With the fundamental frequency of 60 Hz, the alternating current in the mains power supply, use faultBands to visualize the first 3 harmonics of the mains supply.

F0 = 60;
N0 = 1:3;
faultBands(F0,N0)

Figure contains an axes object. The axes object with title Fault Frequency Bands, xlabel Frequency contains 6 objects of type patch, text.

From the plot, observe the following:

  • The fundamental frequency, which is also the first harmonic, 1F0 at 60 Hz

  • The second harmonic, 2F0 at 120 Hz

  • The third harmonic, 3F0 at 180 Hz

To better capture the expected variations of the actual system signals around the nominal fault frequencies, set the widths of each band to 10 Hz.

faultBands(F0,N0,'Width',10)

Figure contains an axes object. The axes object with title Fault Frequency Bands, xlabel Frequency contains 6 objects of type patch, text.

For this example, consider an induction motor with static and dynamic rotor eccentricities. Construct and visualize the frequency bands for the 4 sideband components of an induction motor with 4 pole pairs around the fundamental frequency due to the rotor eccentricities.

F0 = 60;
N0 = 1;
slip = 0.029;
polePairs = 4;
F1 = 2*F0*(1-slip)/polePairs
F1 = 
29.1300
N1 = 0:4;
faultBands(F0,N0,F1,N1)
Warning: Truncated or removed negative fault frequency bands.

Figure contains an axes object. The axes object with title Fault Frequency Bands, xlabel Frequency contains 14 objects of type patch, text.

To avoid truncating negative fault frequency bands, set 'Folding' to true to fold them onto the positive frequency axis.

faultBands(F0,N0,F1,N1,'Folding',true)

Figure contains an axes object. The axes object with title Fault Frequency Bands, xlabel Frequency contains 18 objects of type patch, text.

Observe that the sideband frequencies 1F0-3F1 and 1F0-4F1 are now visible on the positive axis.

Input Arguments

collapse all

Fundamental frequency of interest, specified as a positive scalar. faultBands constructs the fault frequency bands around the fundamental frequency F0. For instance, to construct fault bands for a faulty induction motor, the mains frequency of 60 Hz is the fundamental frequency of interest. Similarly, to generate fault bands for a faulty gear train, the input shaft frequency is the fundamental frequency.

You can specify F0 in either hertz or orders.

Harmonics of the fundamental frequency, specified as a vector of positive integers. Specify fault bands around the fundamental frequency F0 and its harmonics by N0. N0 is equivalent to the 'Harmonics' name-value pair with a default value of 1.

Distance of the first sideband from the fundamental frequency, specified as a positive scalar. If F1 is not specified, then faultBands assumes a value of 10 percent of the fundamental frequency for F1.

Sidebands of the fundamental frequency and its harmonics, specified as a vector of nonnegative integers. N1 is equivalent to the 'Sidebands' name-value pair with a default value of 0.

Name-Value Arguments

Specify optional pairs of arguments as Name1=Value1,...,NameN=ValueN, where Name is the argument name and Value is the corresponding value. Name-value arguments must appear after other arguments, but the order of the pairs does not matter.

Before R2021a, use commas to separate each name and value, and enclose Name in quotes.

Example: ...,'Harmonics',[1,3,5]

Harmonics of the fundamental frequency to be included, specified as the comma-separated pair consisting of 'Harmonics' and a vector of positive integers. The default value is 1. Specify 'Harmonics' when you want to construct the frequency bands with more harmonics of the fundamental frequency.

Sidebands around the fundamental frequency and its harmonics to be included, specified as the comma-separated pair consisting of 'Sidebands' and a vector of nonnegative integers. The default value is 0. Specify 'Sidebands' when you want to construct the frequency bands with sidebands around the fundamental frequency and its harmonics.

Width of the frequency bands centered at the nominal fault frequencies, specified as the comma-separated pair consisting of 'Width' and a positive scalar. The default value is 5 percent of the fundamental frequency. Avoid specifying 'Width' with a large value so that the fault bands do not overlap.

Separation value between successive sidebands, specified as the comma-separated pair consisting of 'Type' and either 'additive' or 'multiplicative'. Specify 'Type' as:

  • 'additive', to set the separation between successive sidebands to F1.

  • 'multiplicative', to set the separation between successive sidebands proportional to both the harmonic order and the sideband value.

Logical value specifying whether negative nominal fault frequencies have to be folded about the frequency origin, specified as the comma-separated pair consisting of 'Folding' and either true or false. If you set 'Folding' to true, then faultBands folds the negative nominal fault frequencies about the frequency origin by taking their absolute values such that the folded fault bands always fall in the positive frequency intervals. The folded fault bands are computed as [max(0, |F|W2), |F|+W2], where W is the 'Width' name-value pair and F is one of the nominal fault frequencies.

Output Arguments

collapse all

Fault frequency bands, returned as an Nx2 array, where N is the number of fault frequencies. FB is returned in the same units as F0, in either Hertz or orders. The generated fault bands, [FW2, F+W2], are centered depending on the sideband specification as follows:

  • If you do not specify the sidebands, then the fault bands are centered at F=n0F0, where the integer n0 ranges through the elements of the array of harmonics, N0.

  • If you specify sidebands using N1 or the 'Sidebands' name-value pair, then fault bands are centered at:

    • F=n0F0±n1F1, when 'Type' is specified as 'additive'. Here, the integer n1 ranges through the elements of the array of sidebands, N1.

    • F=n0(F0±n1F1), when 'Type' is specified as 'multiplicative'.

Information about the fault frequency bands in FB, returned as a structure with the following fields:

  • Centers — Center fault frequencies

  • Labels — Labels describing each frequency

  • HarmonicGroups — Harmonic group numbers equal to the harmonic order of each frequency band to be able to identify fault bands associated with the nominal fault frequency F=n0F0, where the integer n0 ranges through the elements of the array of harmonics, N0

Version History

Introduced in R2019b