diff --git a/@BearImp/calcCap.m b/@BearImp/calcCap.m index 672d6ee1a3ae13176701993b051769fd0222a58a..144e93fc2779503034c65cf5684e47603ffbb120 100644 --- a/@BearImp/calcCap.m +++ b/@BearImp/calcCap.m @@ -90,6 +90,8 @@ for posBall_conductive=1:L.numberOfConductiveBalls if any(B.noContactInd,'all') % Wenn Kraftfreie Wälzkörper vorhanden switch method.unloadedRE case 'neglect' + case 'stateOfTheArt' + stateOfTheArt(find(contactInd==0)) case 'Leander_Parallel' leander_parallel(B.noContactInd) case 'Leander_Radial' @@ -113,6 +115,8 @@ for posBall_conductive=1:L.numberOfConductiveBalls case 'neglect' case 'k-factor' C.C_Hertz(:,contactInd,posBall_conductive) = C.k_C .* obj.epsilon_0 .* C.epsilon_primeOil(:,contactInd) .* temp_A(:,contactInd) ./ H.h_minth(:,contactInd); + case 'stateOfTheArt' + stateOfTheArt(find(contactInd==1)) case 'Leander_Parallel' leander_parallel(B.contactInd) case 'Leander_Radial' @@ -169,6 +173,19 @@ function calcZg C.g_2a = acos(L.B_a/(2*tempR_la)); end +function stateOfTheArt(indices) + y_max_i = @(x) G.R_y(1).*(1-x.^2./2./G.R_x(1).^2); + y_max_a = @(x) G.R_y(2).*(1-x.^2./2./G.R_x(2).^2); + for ii = indices + h_i = @(x,y) B.s(ii) + x.^2./2./G.R_x(1) + y.^2./2./G.R_y(1); + h_a = @(x,y) B.s(ii) + x.^2./2./G.R_x(2) + y.^2./2./G.R_y(2); + C.C_out(1,ii) = 4 * obj.epsilon_0 * S.epsilon_Oel * integral2(@(x,y) 1./h_i(x,y),temp_a(1,ii),G.R_x(1),temp_b(1,ii),y_max_i); + C.C_out(2,ii) = 4 * obj.epsilon_0 * S.epsilon_Oel * integral2(@(x,y) 1./h_a(x,y),temp_a(2,ii),G.R_x(2),temp_b(2,ii),y_max_a); + end +end + + + function leander_parallel(indices) C.R_hi = @(v) G.R_bi.*sqrt(1-(tempR_RE/G.R_bi.*cos(v)).^2); C.R_ha = @(v) G.R_ba.*sqrt(1-(tempR_RE/G.R_ba.*cos(v)).^2); diff --git a/@BearImp/calcFilm.m b/@BearImp/calcFilm.m index 7e8f86f27d2856e0a55bc3b183fcfc978b691bd6..58d2468ce2911e2272559d4c201f86467d070632 100644 --- a/@BearImp/calcFilm.m +++ b/@BearImp/calcFilm.m @@ -70,14 +70,18 @@ H.G = H.alpha_p.*E_red_tmp; H.W = Q_temp./(E_red_tmp .* R_x_temp.^2); switch method - case 'Hamrock/Dowson' + case {'Hamrock/Dowson','Hamrock/Dowson_withoutThermCorr'} k_tmp = [G.k_i;G.k_a]; H.H_0 = 2.69 * H.G.^0.53 .* H.U.^0.67 .* H.W.^-0.067 .* (1-0.61*exp(-0.73.*k_tmp)); 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.C_korr = 3.94 ./ (3.94 + H.L.^0.62); + if strcmp(method,'Hamrock/Dowson') + H.C_korr = 3.94 ./ (3.94 + H.L.^0.62); + else + H.C_korr = 1; + end H.h_0 = H.h_0raw .*H.C_korr; H.h_minth = H.h_min.*H.C_korr; @@ -130,7 +134,7 @@ switch isPreCalc % Bereichs liegt M = H.W.*(2.*H.U).^(-3/4); switch method - case 'Hamrock/Dowson' + case {'Hamrock/Dowson','Hamrock/Dowson_withoutThermCorr'} rangeLoadParM = [25,500]; % Quelle: Non-Dimensional Groups, Marian 2020, Fig7 rangeViscParL = [5,15]; diff --git a/@BearImp/calcLoad.m b/@BearImp/calcLoad.m index 093be59c1a5ca5d2f52629f8492972556d7d0c4f..4c3ec037e160ede73c889226dc657d17a05d0afd 100644 --- a/@BearImp/calcLoad.m +++ b/@BearImp/calcLoad.m @@ -34,7 +34,7 @@ if strcmp(B.method,'dynamic') B.m_RE = 4./3.*pi.*(L.D_RE/2).^3.*B.rhoRE; % mass in kg B.Q_centri = B.m_RE.*B.v_cage.^2./(G.d_m./2); % Zentripetalkraft - B.Q_intp1 = logspace(log10(1e-31),log10(1000*sqrt(F_r^2+F_a^2)),360);%15 + B.Q_intp1 = logspace(log10(1e-31),log10(5000*sqrt(F_r^2+F_a^2)),360);%15 B.delta_intp1 = nan(L.Z,length(B.Q_intp1)); for IndBall = 1 : L.Z @@ -61,7 +61,7 @@ B.delta_s=deltaShaft(psi,F_r,F_a,B,G,L,B.delta_s,AddOn)'; if L.allBallsSameMaterial for IndPosBearing=1:B.numOfCagePositions - B.Q(IndPosBearing) = totalReactionForcePerBallForXYZ(B,L,G,B.delta_s(:,IndPosBearing),L.IndBall_conductive,psi(IndPosBearing)); + B.Q(IndPosBearing) = max(totalReactionForcePerBallForXYZ(B,L,G,B.delta_s(:,IndPosBearing),L.IndBall_conductive,psi(IndPosBearing)),eps); % limit to 2.2204e-16 N end else @@ -75,7 +75,7 @@ else B.extendedTotalReactionForce=true; for IndPosBearing=1:B.numOfCagePositions - B.Q(posBall_conductive,IndPosBearing)=totalReactionForcePerBallForXYZ(B,L,G,B.delta_s(:,IndPosBearing),L.IndBall_conductive(posBall_conductive),B.psi_conductive(posBall_conductive,IndPosBearing)); + B.Q(posBall_conductive,IndPosBearing) = max(totalReactionForcePerBallForXYZ(B,L,G,B.delta_s(:,IndPosBearing),L.IndBall_conductive(posBall_conductive),B.psi_conductive(posBall_conductive,IndPosBearing)),eps); % limit to 2.2204e-16 N end end end diff --git a/possibleMethods.m b/possibleMethods.m index e34c17c0d200706d4beed3d41273e967f937cfe6..e96d4efc7c916f03ccbc9e8ab72066fcf25e95f5 100644 --- a/possibleMethods.m +++ b/possibleMethods.m @@ -20,11 +20,11 @@ classdef possibleMethods s = {'static','dynamic'}; end function s = H - s = {'Hamrock/Dowson','Moes'}; + s = {'Hamrock/Dowson','Hamrock/Dowson_withoutThermCorr','Moes'}; end function s = C - s.unloadedRE = { 'neglect','Leander_Parallel','Leander_Radial','LeanderSteffen','TobiasSteffen_Kugelfläche','TobiasSteffen_Laufbahnfläche','semianalytisch3D'}; - s.outsideArea = {'k-factor','neglect','Leander_Parallel','Leander_Radial','LeanderSteffen','TobiasSteffen_Kugelfläche','TobiasSteffen_Laufbahnfläche','semianalytisch3D'}; + s.unloadedRE = { 'neglect','stateOfTheArt','Leander_Parallel','Leander_Radial','LeanderSteffen','TobiasSteffen_Kugelfläche','TobiasSteffen_Laufbahnfläche','semianalytisch3D'}; + s.outsideArea = {'k-factor','neglect','stateOfTheArt','Leander_Parallel','Leander_Radial','LeanderSteffen','TobiasSteffen_Kugelfläche','TobiasSteffen_Laufbahnfläche','semianalytisch3D'}; end function s = Default