Skip to content
Snippets Groups Projects
Commit c57af912 authored by Puchtler, Steffen's avatar Puchtler, Steffen
Browse files

Merge branch 'Pu_SolveSomeFilmThicknessIssues' into 'master'

Pu solve some film thickness issues

See merge request pmd_smartbearings/bearimp!23
parents 9fa7b110 1a35f08c
No related branches found
No related tags found
No related merge requests found
......@@ -68,6 +68,8 @@ R_y_temp(:,1,:) = G.R_y(:,ballMaterialInd);
H.U = T.eta_0 .* H.u ./ (E_red_tmp .* R_x_temp);
H.G = H.alpha_p.*E_red_tmp;
H.W = Q_temp./(E_red_tmp .* R_x_temp.^2);
H.L = H.G .* H.U.^0.25;
H.M = H.W.*(2.*H.U).^(-3/4);
switch method
case {'Hamrock/Dowson','Hamrock/Dowson_withoutThermCorr'}
......@@ -76,9 +78,9 @@ switch method
H.H_min = 3.63 * H.G.^0.49 .* H.U.^0.68 .* H.W.^-0.073 .* (1- exp(-0.68.*k_tmp));
H.h_0raw = H.H_0 .*R_x_temp; % without correction factors
H.h_min = H.H_min.*R_x_temp;
H.L = T.eta_0 .* T.alpha_etaT .* H.u.^2 ./ (4*S.lambda);
H.L_therm = T.eta_0 .* T.alpha_etaT .* H.u.^2 ./ (4*S.lambda);
if strcmp(method,'Hamrock/Dowson')
H.C_korr = 3.94 ./ (3.94 + H.L.^0.62);
H.C_korr = 3.94 ./ (3.94 + H.L_therm.^0.62);
else
H.C_korr = 1;
end
......@@ -88,7 +90,6 @@ switch method
case 'Moes'
H.lamda = R_x_temp./R_y_temp;
H.L = H.G .* H.U.^0.25;
H.N = H.W .* H.lamda.^0.5 .* H.U.^(-0.75);
H.C_RI = 145 * (1+0.796 * H.lamda .^(14/15)) .^(-15/7);
......@@ -106,33 +107,23 @@ switch method
H.h_0 = H.H_0 .*R_x_temp .* H.U.^(0.5);
end
switch isPreCalc
case 1
if isPreCalc
varargout{1} = H.h_0;
case 0
switch possibleMethods.addDefault(obj.method).B
case 'static'
return
end
if strcmp(possibleMethods.addDefault(obj.method).B,'static')
assume(ndims(H.h_0) <= 2,'h_0 must be two dimensional to calculate film for static load distribution') % probably obsolete
B.s=zeros(2,B.numOfCagePositions,L.numberOfConductiveBalls);
B.s(1,B.noContactInd') = B.intersectionBall(1,B.noContactInd)';
B.s(2,B.noContactInd') = B.intersectionBall(2,B.noContactInd)';
if length(size(H.h_0)) <= 2
B.s(1,B. contactInd) = B.intersectionBall(1,B.contactInd) + H.h_0(1,B.contactInd);
B.s(2,B. contactInd) = B.intersectionBall(1,B.contactInd) + H.h_0(2,B.contactInd); % s beschreibt den Abstand von WK zu Laufbahnen, unter Berücksichtigung des Schmierfilms in der Lastzone
else
B.s(1,B. contactInd') = B.intersectionBall(1,B.contactInd') + H.h_0(1,B.contactInd');
B.s(2,B. contactInd') = B.intersectionBall(1,B.contactInd') + H.h_0(2,B.contactInd'); % s beschreibt den Abstand von WK zu Laufbahnen, unter Berücksichtigung des Schmierfilms in der Lastzone
end
end
% Überprüfen, ob die Schmierfilmberechnung innerhalb des vorgegeben
% Bereichs liegt
M = H.W.*(2.*H.U).^(-3/4);
switch method
case {'Hamrock/Dowson','Hamrock/Dowson_withoutThermCorr'}
rangeLoadParM = [25,500]; % Quelle: Non-Dimensional Groups, Marian 2020, Fig7
......@@ -146,18 +137,18 @@ switch method
rangeViscParL = [1,25];
end
if max(rangeLoadParM) < max(M,[],'all') || min(rangeLoadParM) > min(M,[],'all')
warning(['The force for the lubricant film thickness calculation (%f to %f) is outside the permissible range (%f to %f), ' ...
if max(rangeLoadParM) < max(H.M,[],'all') || min(rangeLoadParM) > min(H.M,[],'all')
warning(['The force for the lubricant film thickness calculation (%.2f to %.2f) is outside the permissible range (%.0f to %.0f), ' ...
'which means that the calculated lubricant film is no longer meaningful!'], ...
min(M,[],'all'), max(M,[],'all'), min(rangeLoadParM), max(rangeLoadParM))
min(H.M,[],'all'), max(H.M,[],'all'), min(rangeLoadParM), max(rangeLoadParM))
end
if max(rangeViscParL) < max(H.L,[],'all') || min(rangeViscParL) > min(H.L,[],'all')
warning(['The viscosity parameter for the lubricant film thickness calculation (%f to %f) is outside the permissible range (%f to %f), ' ...
warning(['The viscosity parameter for the lubricant film thickness calculation (%.2f to %.2f) is outside the permissible range (%.0f to %.0f), ' ...
'which means that the calculated lubricant film is no longer meaningful!'], ...
min(H.L,[],'all'), max(H.L,[],'all'), min(rangeViscParL), max(rangeViscParL))
end
end
%% Attribute ändern
obj.H = H;
obj.B = B;
......
......@@ -84,8 +84,8 @@ if strcmp(B.method,'dynamic')
assert(any(max(B.Q_intp1) > max(B.Q) & min(B.Q_intp1) < min(B.Q)), 'The interpolated lubricant film thicknesses are extrapolated outside the calculated range! This leads to inaccurate results.')
end
B. contactInd = B.Q~=0; % Indices of rolling elements under load (Q not equal to 0)
B.noContactInd = B.Q==0; % Indices of rolling elements that are not loaded
B. contactInd = abs(B.Q) > 2*eps; % Indices of rolling elements under load (Q not equal to 0)
B.noContactInd = abs(B.Q) <= 2*eps; % Indices of rolling elements that are not loaded
B.Q_contInd=B.Q; %##um leichter B.Q_contInd anzupassen, falls doch nur ~=0 berechnet werden sollen
for posBall_conductive=1:L.numberOfConductiveBalls
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment