Documentation
Rolling Element Bearings Calculations Framework
vibeREB.framework© for iOS®/iPadOS®
- Version: 1.01
- Author: David Bukowitz
- 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:
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
- Drag and drop the vibeREB.framework file into your Xcode project
- Select the "Embed & Sign" option in the Framworks, Libraries and Embedded Content menu
Framework Anatomy
- Fault Frequency calculations based on the Bearing's geometry
- Fault Frequency calculations based on the Bearing's database
- Bearing Damage Indicator using bearing's fault frequencies
...
//-------------------------------------------------------------------------
//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:
...
//------------------
//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:
...
//-----------------------------------------------------------------
//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