Static Stiffness Model Based on Hertz Contact Theory
Theoretical Foundation
The static stiffness calculation for bearings relies on Hertz contact theory. The fundamental expression is:
(K=\n 3}{2}ZED^{1.5}(1−\kappa)^{1.5}\cos^3\alpha)
The parameters are defined as follows:
- (Z): Number of rolling elements
- (E): Elastic modulus
- (D): Rolling element diameter
- (\kappa=1−\frac{D}{D_p}\cos\alpha) (contact angle coefficient)
- (D_p): Pitch diameter
MATLAB Implementation
function K = compute_bearing_stiffness(num_elements, dia_elements, dia_pitch, modulus, angle)
% Compute contact angle coefficient
contact_coeff = 1 - (dia_elements / dia_pitch) * cos(angle);
% Calculate static stiffness
K = (5/2) * num_elements * modulus * dia_elements^1.5 ...
* contact_coeff^1.5 * cos(angle)^3;
end
% Configuration parameters for deep groove ball bearing
num_elements = 10; % Number of rolling balls
dia_elements = 0.01; % Ball diameter (m)
dia_pitch = 0.1; % Pitch diameter (m)
modulus = 210e9; % Elastic modulus (Pa)
angle = deg2rad(15); % Contact angle (radians)
% Compute stiffness value
stiff_val = compute_bearing_stiffness(num_elements, dia_elements, dia_pitch, modulus, angle);
fprintf('Static stiffness: %.2e N/m\n', stiff_val);
This implementation directly applies the static stiffness formula and is suitable for preliminary design of deep groove ball bearings and tapered roller bearings.
Dynamic Stiffness Model with Nonlinear Effects
Theoretical Framework
Dynamic stiffness analysis requires incorporating nonlinear contact effects. The governing equation includes a cubic nonlinearity term:
(m\ddot{x} + c\dot{x} + k_0 x + k_3 x^3 = F_0 \sin(\omega t))
Where (k_3) represents the nonlinear stiffness coefficient, typically obtained through finite element analysis or experimental calibration.
Simulation Implementation
% System parameters
mass = 0.5; % Equivalent mass (kg)
damping = 25; % Damping coefficient (Ns/m)
lin_stiff = 1e5; % Linear stiffness (N/m)
nonlin_coeff = 1e8; % Nonlinear stiffness (N/m³)
force_amp = 2000; % Excitation amplitude (N)
freq_exc = 173; % Excitation frequency (Hz)
% Define system of differential equations
motion_eq = @(t, state) [
state(2);
(force_amp * sin(2 * pi * freq_exc * t) ...
- damping * state(2) ...
- lin_stiff * state(1) ...
- nonlin_coeff * state(1)^3) / mass
];
% Simulation settings
time_span = [0 0.1]; % Time duration (s)
initial_state = [0; 0]; % Initial conditions
% Numerical integration
[time_vec, state_vec] = ode45(motion_eq, time_span, initial_state);
% Visualization
figure;
subplot(2,1,1);
plot(time_vec, state_vec(:,1));
title('Displacement Response');
xlabel('Time (s)'); ylabel('Displacement (m)');
subplot(2,1,2);
plot(time_vec, state_vec(:,2));
title('Velocity Response');
xlabel('Time (s)'); ylabel('Velocity (m/s)');
This approach is particularly valuable for nonlinear dynamic simulation in bearing fault diagnosis applications.
Finite Element Analysis Integration
Parametric Modeling Workflow
- Geometry Generation: Create 3D bearing models programmatically in MATLAB
- Material Properties:
material.youngs_mod = 210e9; % Elastic modulus
material.poisson = 0.3; % Poisson ratio
material.density = 7800; % Density (kg/m³)
- Mesh Generation: Execute ANSYS APDL scripts
system('ansys1943 -b -i mesh_script.txt -o mesh_result.txt');
- Stiffness Matrix Extraction:
global_stiff = importdata('stiffness_matrix.txt');
Multi-Body Dynamics Coupling
Interface with MATLAB/Simulink for real-time stiffness matrix computation:
% Define directional stiffness components
stiff_tangential = 1e6; % Tangential stiffness
stiff_radial = 5e5; % Radial stiffness
stiff_bending = 2e6; % Bending stiffness
% Construct stiffness matrix
stiffness_matrix = [
stiff_tangential, 0, 0;
0, stiff_radial, 0;
0, 0, stiff_bending
];
% Create state-space model for dynamics coupling
sys_model = ss(system_matrix, input_matrix, output_matrix, feed_matrix);
Engineering Validation Example
Consider the angular contact ball bearing 71938 as a validation case:
- Analytical Prediction: Theoretical calculation yields axial stiffness of 850 N/μm
- FEA Comparison:
% Load FEA results
fea_results = readtable('fea_stiffness.csv');
% Comparative visualization
figure;
hold on;
plot(theoretical_curve, 'r-o', 'LineWidth', 2);
plot(fea_curve, 'b-s', 'LineWidth', 2);
legend('Analytical', 'FEA');
title('Axial Stiffness Validation');
xlabel('Load (N)'); ylabel('Stiffness (N/μm)');
Validation outcomes show deviation less than 3%, confirming the accuracy of the analytical model.
Advanced Applications
Optimization Design
Integrate MATLAB Optimization Toolbox for stiffness-to-weight ratio optimization in bearing design.
Fault Simulation
Introduce stiffness degradation faults into dynamic models:
% Progressive stiffness degradation model
current_stiff = base_stiff * (1 - 0.05 * time_param);
Vibration Analysis
Conduct frequency-domain analysis using FFT:
frequency_spectrum = fft(displacement_data);
freq_axis = (0:length(frequency_spectrum)-1) * (sample_rate / length(frequency_spectrum));
plot(freq_axis, abs(frequency_spectrum));
Apply this approach to analyze stiffness-induced excitation frequencies and their impact on bearing performance.