Documentation

Rolling Element Bearings Calculations Framework

vibeREB.framework© for iOS®/iPadOS®


  • Created: 20 Feb, 2010
  • Update: 25 Nov, 2020

If you have any questions that are beyond the scope of this help file, Please feel free to email via info@rotovibes.com


Description

vibeREB© framework is an iOS®/iPadOS® library that provides fault frequency calculations for rolling element bearings. The framework has two modes of operation:

  • Calculate the rolling element bearing fault frequencies using the bearing geometry, and
  • Calculate the rolling element bearing fault frequencies using a database of more than 3,000 bearings

  • The library also includes a method to calculate the bearing damage indicator by using the vibration signal


    Installation

    Follow the steps below to install the vibeREB.framework

    1. Drag and drop the vibeREB.framework file into your Xcode project
    2. Select the "Embed & Sign" option in the Framworks, Libraries and Embedded Content menu

    Framework Anatomy

    1. Fault Frequency calculations based on the Bearing's geometry
    2. 
      ...
      
      //-------------------------------------------------------------------------
      //Calculates bearing fault frequency multiplier value from bearing geometry
      //-------------------------------------------------------------------------
      //pd: pitch diamter
      //bd: ball diameter
      //nb: number of rolling elements
      //alpha: contact angle
      //x_bpfi: ball pass frequency inner race multiplier
      //x_bpfo: ball pass frequency outer race multiplier
      //x_bsf: ball frequency
      //x_ftf: cage frequency
      
      +(double)x_bpfi:(int)nb pd:(double)pitch_diam bd:(double)ball_diam alpha:(double)contact_angle;
      +(double)x_bpfo:(int)nb pd:(double)pitch_diam bd:(double)ball_diam alpha:(double)contact_angle;
      +(double)x_bsf:(int)nb pd:(double)pitch_diam bd:(double)ball_diam alpha:(double)contact_angle;
      +(double)x_ftf:(int)nb pd:(double)pitch_diam bd:(double)ball_diam alpha:(double)contact_angle;
      
      
      //------------------------------------------------------------------
      //Calculates bearing fault frequency CPM value from bearing geometry
      //------------------------------------------------------------------
      //pd: pitch diameter
      //bd: ball diameter
      //nb: number of rolling elements
      //alpha: contact angle
      //bpfi: ball pass frequency inner race multiplier
      //bpfo: ball pass frequency outer race multiplier
      //bsf: ball frequency
      //ftf: cage frequency
      //rs: running speed (RPM)
      
      +(double)bpfi:(int)nb pd:(double)pitch_diam bd:(double)ball_diam alpha:(double)contact_angle rs:(double)runningSpeed;
      +(double)bpfo:(int)nb pd:(double)pitch_diam bd:(double)ball_diam alpha:(double)contact_angle rs:(double)runningSpeed;
      +(double)bsf:(int)nb pd:(double)pitch_diam bd:(double)ball_diam alpha:(double)contact_angle rs:(double)runningSpeed;
      +(double)ftf:(int)nb pd:(double)pitch_diam bd:(double)ball_diam alpha:(double)contact_angle rs:(double)runningSpeed;
      
      
      //-------------------------------------------------------------------------------
      //Estimates bearing fault frequency multiplier value from bearing Number of balls
      //-------------------------------------------------------------------------------
      //nb: number of rolling elements
      //est_bpfi: ball pass frequency inner race multiplier
      //est_bpfo: ball pass frequency outer race multiplier
      //est_ftf: cage frequency
      
      +(double)est_bpfi:(int)nb;
      +(double)est_bpfo:(int)nb;
      +(double)est_ftf:(int)nb;
      
      
      //------------------------------------------------------------------------
      //Estimates bearing fault frequency CPM value from bearing Number of balls
      //------------------------------------------------------------------------
      //nb: number of rolling elements
      //est_bpfi: ball pass frequency inner race multiplier
      //est_bpfo: ball pass frequency outer race multiplier
      //est_ftf: cage frequency
      //rs: running speed (RPM)
      
      +(double)est_bpfi:(int)nb rs:(double)runningSpeed;
      +(double)est_bpfo:(int)nb rs:(double)runningSpeed;
      +(double)est_ftf:(int)nb rs:(double)runningSpeed;
      
      ...
        

      In your project import vibeREB/vibereb.h and use as follow:

      
      #import "vibeREB/vibereb.h"
      ...
      
      //sample calculation of the fault frequencues from bearing geometry
      double x_bpfi = [vibereb x_bpfi:numberOfBalls pd:pitch_diameter bd:ball_diameter alpha:contact_angle];
      double x_bpfo = [vibereb x_bpfo:numberOfBalls pd:pitch_diameter bd:ball_diameter alpha:contact_angle];
      double x_bsf = [vibereb x_bsf:numberOfBalls pd:pitch_diameter bd:ball_diameter alpha:contact_angle];
      double x_ftf = [vibereb x_ftf:numberOfBalls pd:pitch_diameter bd:ball_diameter alpha:contact_angle];
      
      NSLog(@"xBPFI=%g, xBPFO=%g, xBSF=%g, xFTF=%g", x_bpfi, x_bpfo, x_bsf, x_ftf);
      ...
      

      In your project console you should see:


    3. Fault Frequency calculations based on the Bearing's database
    4. 
      ...
      
      //------------------
      //Bearing info array
      //------------------
      // returns an array with all the bearings database in the form: {BearingNumber, BPFO, BPFI, BSF, FTF, Nb, Manufacturer}
      // can be used to search bearings by model number
      
      +(NSArray*) bearingArray;
      
      
      //-------------------
      //Bearing info string
      //-------------------
      // returns a string with all the bearings database in the form: BearingNumber, BPFO, BPFI, BSF, FTF, Nb, Manufacturer
      
      +(NSString*) bearingArrayStr;
      
      
      //------------------------------------------------------
      //Bearing fault frequency finder by bearing model number
      //------------------------------------------------------
      // returns the bearing fault frequencies in the format {BPFO, BPFI, BSF, FTF, Nb}
      
      +(NSArray*) bearingArraySearch:(NSString*)bearingModel;
      
      ...
      

      To use the bearing database information use: [vibereb bearingArray]

      
      #import "vibeREB/vibereb.h"
      ...
      // returns an array with all the bearings database in the form: {BearingNumber, BPFO, BPFI, BSF, FTF, Nb, Manufacturer}
      
      NSLog(@"%@", [vibereb bearingArray]);
      ...
      

      In your project console log you should see:

      To search in the bering database and result the matches use: [vibereb bearingArraySearch:(*NSString)]

      
      #import "vibeREB/vibereb.h"
      ...
      // returns an array with the search matches of the bearings database in the form: {BearingNumber, BPFO, BPFI, BSF, FTF, Nb, Manufacturer}
      
      NSLog(@"%@", [vibereb bearingArraySearch:@"6201"]);
      ...
      

      For this example, you should see in your console log:


    5. Bearing Damage Indicator using bearing's fault frequencies
    6. 
      ...
      
      //-----------------------------------------------------------------
      //Bearing Damage Indicator (0-10) using bearing's fault frequencies
      //-----------------------------------------------------------------
      
      +(int)bd_ff_indicator:(NSArray*)rawData withSamplingRate:(int)sampRate withNumberOfSamples:(int)numSamples withBPFI:(double)x_bpfi withBPFO:(double)x_bpfo withBSF:(double)x_bsf withFTF:(double)x_ftf;
      
      ...
      

    Changelog

    See what's new added, changed, fixed, improved or updated in the latest versions.

    Version 1.01 (25 Nov, 2020)

    • Added Updated the bearing model database
    • Updated Optimized for iOS®14

    Version 1.0 (20 Feb, 2010)

    Initial Release for iOS® based on previous developments for C++/Windows