# Documentation

## Rolling Element Bearings Calculations Framework

• 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;

...
``````