From 28a8060ee2c83eb0b43fa71198fa60046a1bff07 Mon Sep 17 00:00:00 2001
From: sp89hili <sp89hili@pmd196.csi.tu-darmstadt.de>
Date: Fri, 22 Nov 2024 17:47:21 +0100
Subject: [PATCH] Pu_add estimation of alpha for more accurate radius of race
 at point of contact

---
 @BearImp/calcCap.m  |  37 +++++++--------
 @BearImp/calcGeo.m  | 113 +++++++++++++++++++++++++++++---------------
 @BearImp/calcLoad.m |   2 +-
 BearImpOptions.m    |   2 +
 4 files changed, 95 insertions(+), 59 deletions(-)

diff --git a/@BearImp/calcCap.m b/@BearImp/calcCap.m
index f64b962..94b55a6 100644
--- a/@BearImp/calcCap.m
+++ b/@BearImp/calcCap.m
@@ -214,36 +214,36 @@ 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);
+    C.R_hi = @(v) G.R_ri.*sqrt(1-(tempR_RE/G.R_ri.*cos(v)).^2);
+    C.R_ha = @(v) G.R_ra.*sqrt(1-(tempR_RE/G.R_ra.*cos(v)).^2);
     
     for ii = indices
-        C.I_i = @(v,p) abs(tempR_RE^2.*sin(v))./(-(C.R_hi(v)-tempR_li).*sqrt(1-(tempR_RE.*sin(p).*sin(v)./(C.R_hi(v)+tempR_li)).^2)+tempR_RE.*(1+sin(v).*cos(p))-tempR_li+G.R_bi+B.s(ii));
-        C.I_a = @(v,p) abs(tempR_RE^2.*sin(v))./( (C.R_ha(v)+tempR_la).*sqrt(1-(tempR_RE.*sin(p).*sin(v)./(C.R_ha(v)+tempR_la)).^2)+tempR_RE.*(1-sin(v).*cos(p))-tempR_la-G.R_ba+B.s(ii));
+        C.I_i = @(v,p) abs(tempR_RE^2.*sin(v))./(-(C.R_hi(v)-tempR_li).*sqrt(1-(tempR_RE.*sin(p).*sin(v)./(C.R_hi(v)+tempR_li)).^2)+tempR_RE.*(1+sin(v).*cos(p))-tempR_li+G.R_ri+B.s(ii));
+        C.I_a = @(v,p) abs(tempR_RE^2.*sin(v))./( (C.R_ha(v)+tempR_la).*sqrt(1-(tempR_RE.*sin(p).*sin(v)./(C.R_ha(v)+tempR_la)).^2)+tempR_RE.*(1-sin(v).*cos(p))-tempR_la-G.R_ra+B.s(ii));
         C.C_out(1,ii) = 4 * obj.epsilon_0 * S.epsilon_Oel * integral2(C.I_i,C.phi_1i(ii)+pi/2,C.phi_2i+pi/2, pi,1.5*pi);
         C.C_out(2,ii) = 4 * obj.epsilon_0 * S.epsilon_Oel * integral2(C.I_a,C.phi_1a(ii)+pi/2,C.phi_2a+pi/2,  0,0.5*pi);
     end
 end
 
 function leander_radial(indices)
-    C.c_i(1,indices) =  tempR_li - G.R_bi - tempR_RE - temp_s(1,indices);          % TODO: B.s an der Stelle sinnvoll? ###
-    C.c_a(1,indices) = -tempR_la - G.R_ba + tempR_RE + temp_s(2,indices);          % TODO: B.s an der Stelle sinnvoll? ###
+    C.c_i(1,indices) =  tempR_li - G.R_ri - tempR_RE - temp_s(1,indices);          % TODO: B.s an der Stelle sinnvoll? ###
+    C.c_a(1,indices) = -tempR_la - G.R_ra + tempR_RE + temp_s(2,indices);          % TODO: B.s an der Stelle sinnvoll? ###
     
     for ii = indices
-        C.I_i = @(g,t) abs(tempR_li*(tempR_li.*sin(g)+G.R_bi))./(sqrt(tempR_li.^2+G.R_bi.^2+C.c_i(ii').^2+2*G.R_bi*tempR_li.*sin(g)+2*C.c_i(ii')*(tempR_li.*sin(g)+G.R_bi).*cos(t))-tempR_RE);
-        C.I_a = @(g,t) abs(tempR_la*(tempR_la.*sin(g)+G.R_ba))./(sqrt(tempR_la.^2+G.R_ba.^2+C.c_a(ii').^2+2*G.R_ba*tempR_la.*sin(g)+2*C.c_a(ii')*(tempR_la.*sin(g)+G.R_ba).*cos(t))-tempR_RE);
+        C.I_i = @(g,t) abs(tempR_li*(tempR_li.*sin(g)+G.R_ri))./(sqrt(tempR_li.^2+G.R_ri.^2+C.c_i(ii').^2+2*G.R_ri*tempR_li.*sin(g)+2*C.c_i(ii')*(tempR_li.*sin(g)+G.R_ri).*cos(t))-tempR_RE);
+        C.I_a = @(g,t) abs(tempR_la*(tempR_la.*sin(g)+G.R_ra))./(sqrt(tempR_la.^2+G.R_ra.^2+C.c_a(ii').^2+2*G.R_ra*tempR_la.*sin(g)+2*C.c_a(ii')*(tempR_la.*sin(g)+G.R_ra).*cos(t))-tempR_RE);
         C.C_out(1,ii,posBall_conductive) = 4 * obj.epsilon_0.*S.epsilon_Oel.*integral2(C.I_i,-pi/2 + C.g_1i(ii,posBall_conductive),   -C.g_2i, 0, pi/9);
         C.C_out(2,ii,posBall_conductive) = 4 * obj.epsilon_0.*S.epsilon_Oel.*integral2(C.I_a, pi/2 + C.g_1a(ii,posBall_conductive), pi-C.g_2a, 0, pi/9);
     end 
 end
 
 function leander_steffen(indices)
-    C.dA_i = @(p) tempR_li * (G.R_bi + tempR_li*cos(p));
-    C.dA_a = @(p) tempR_la * (G.R_ba + tempR_la*cos(p));
-    C.x_kmi = G.R_bi + C.DeltaR_i;
-    C.x_kma = G.R_ba - C.DeltaR_a;
-    C.h_i = @(p,t,ii) sqrt(G.R_bi^2 + tempR_li^2 + C.x_kmi(ii)^2 + 2*G.R_bi*tempR_li*cos(p) - 2*C.x_kmi(ii)*cos(t).*(G.R_bi+tempR_li*cos(p)))  -  tempR_RE;
-    C.h_a = @(p,t,ii) sqrt(G.R_ba^2 + tempR_la^2 + C.x_kma(ii)^2 + 2*G.R_ba*tempR_la*cos(p) - 2*C.x_kma(ii)*cos(t).*(G.R_ba+tempR_la*cos(p)))  -  tempR_RE;
+    C.dA_i = @(p) tempR_li * (G.R_ri + tempR_li*cos(p));
+    C.dA_a = @(p) tempR_la * (G.R_ra + tempR_la*cos(p));
+    C.x_kmi = G.R_ri + C.DeltaR_i;
+    C.x_kma = G.R_ra - C.DeltaR_a;
+    C.h_i = @(p,t,ii) sqrt(G.R_ri^2 + tempR_li^2 + C.x_kmi(ii)^2 + 2*G.R_ri*tempR_li*cos(p) - 2*C.x_kmi(ii)*cos(t).*(G.R_ri+tempR_li*cos(p)))  -  tempR_RE;
+    C.h_a = @(p,t,ii) sqrt(G.R_ra^2 + tempR_la^2 + C.x_kma(ii)^2 + 2*G.R_ra*tempR_la*cos(p) - 2*C.x_kma(ii)*cos(t).*(G.R_ra+tempR_la*cos(p)))  -  tempR_RE;
     for ii = indices
         x1=double(C.g_1i(ii));
         x2=double(C.g_2i);
@@ -283,8 +283,8 @@ function runSemianalytisch3D(indices)
     
     if AddOn.Parallel_Computing_Toolbox
 
-        tmp_semi_i = @(runSemi) semianalytisch3D(temp_s(1,runSemi), tempR_RE, tempR_li, G.B_i, L.B, -G.R_bi, S.epsilon_Oel,temp_a(1,runSemi),temp_b(1,runSemi),110,110);
-        tmp_semi_a = @(runSemi) semianalytisch3D(temp_s(2,runSemi), tempR_RE, tempR_la, G.B_a, L.B,  G.R_ba, S.epsilon_Oel,temp_a(2,runSemi),temp_b(2,runSemi),110,110);
+        tmp_semi_i = @(runSemi) semianalytisch3D(temp_s(1,runSemi), tempR_RE, tempR_li, G.B_i, L.B, -G.R_ri, S.epsilon_Oel,temp_a(1,runSemi),temp_b(1,runSemi),110,110);
+        tmp_semi_a = @(runSemi) semianalytisch3D(temp_s(2,runSemi), tempR_RE, tempR_la, G.B_a, L.B,  G.R_ra, S.epsilon_Oel,temp_a(2,runSemi),temp_b(2,runSemi),110,110);
 
         parfor runSemi = indices
             C_semi_i(runSemi) = feval(tmp_semi_i, runSemi); %da parfor loop nicht auf nested functions (semianalytisch3D) direkt zugreifen kann
@@ -294,8 +294,8 @@ function runSemianalytisch3D(indices)
     else
 
         for runSemi = 1 : numel(temp_s)/2
-           C_semi_i(runSemi) = semianalytisch3D(temp_s(1,runSemi), tempR_RE, tempR_li, G.B_i, L.B, -G.R_bi, S.epsilon_Oel,temp_a(1,runSemi),temp_b(1,runSemi),110,110);
-           C_semi_a(runSemi) = semianalytisch3D(temp_s(2,runSemi), tempR_RE, tempR_la, G.B_a, L.B,  G.R_ba, S.epsilon_Oel,temp_a(2,runSemi),temp_b(2,runSemi),110,110);
+           C_semi_i(runSemi) = semianalytisch3D(temp_s(1,runSemi), tempR_RE, tempR_li, G.B_i, L.B, -G.R_ri, S.epsilon_Oel,temp_a(1,runSemi),temp_b(1,runSemi),110,110);
+           C_semi_a(runSemi) = semianalytisch3D(temp_s(2,runSemi), tempR_RE, tempR_la, G.B_a, L.B,  G.R_ra, S.epsilon_Oel,temp_a(2,runSemi),temp_b(2,runSemi),110,110);
         end
     end
 
@@ -393,7 +393,6 @@ function C_Zusatz=semianalytisch3D(s,R_WK,R_R,B_R,B,R_L,epsilon_r,varargin)
     elseif  any(r2small)
 %         fprintf('%i Entries of r have been removed \n',sum(r2small))
         r(r2small)=inf;
-    
     end
     
     integrand_t = R_WK^2./(r-R_WK).*cos(T_t);
diff --git a/@BearImp/calcGeo.m b/@BearImp/calcGeo.m
index ba88b49..a067fb8 100644
--- a/@BearImp/calcGeo.m
+++ b/@BearImp/calcGeo.m
@@ -1,4 +1,4 @@
-function calcGeo(obj)
+function calcGeo(obj,options)
 %2.3 LagerGeometrie G = G(L,R,T_Oil)
 %Berechnet verschiedene Größen der Lagergeometrie wie z.B.
 %Berührungswinkel, Rollradien, Elliptizitätsparameter der Hertz'schen
@@ -7,31 +7,36 @@ function calcGeo(obj)
 %    pmd Berechnungstool Lagerimpedanz
 %    Autor: Steffen Puchtler, Julius van der Kuip
 
+arguments
+    obj
+    options.Delta_Tia = 5 % Temperaturerhöhung des Innenrings gegenüber des Außenrings
+    options.alpha = []
+end
 %% Parameter prüfen
 assert(obj.up2date.L,'Lager nicht gesetzt')
 assert(obj.up2date.R,'Lagerspiel noch nicht berechnet')
-L = obj.L; R = obj.R; T_Oil = obj.T_Oil;
-G = struct; 
+L = obj.L; R = obj.R; T_Oil = obj.T_Oil; F_a = obj.F_a;
+G = struct; G.method = obj.method.G;
 
 %% Berechnung
-G.alpha = 0; 
-
-G.Delta_Ta_norm = T_Oil - 20; %Temperaturerhöhung der Welle bezogen auf die Normtemperatur von 20°C (Innenring heißer als Außenring)
-G.Delta_Ti_norm = G.Delta_Ta_norm + 5; %Temperaturerhöhung des Gehäuses bezogen auf die Normtemperatur von 20°C #######Idee: 5°C durch festlegbare Variable ersetzen
+G.Delta_Tia = options.Delta_Tia;                 % Temperaturerhöhung des Innenrings gegenüber des Außenrings
+G.Delta_Ta_norm = T_Oil - 20;                    % Temperaturerhöhung der Welle bezogen auf die Normtemperatur von 20°C (Innenring heißer als Außenring)
+G.Delta_Ti_norm = G.Delta_Ta_norm + G.Delta_Tia; % Temperaturerhöhung des Gehäuses bezogen auf die Normtemperatur von 20°C
+G.Delta_Tm_norm = (G.Delta_Ta_norm + G.Delta_Ti_norm)/2;
 
 G.E_red(1) = 2  ./  ((1-L.RE_A.nu.^2)./L.RE_A.E + (1-L.ring.nu.^2)/L.ring.E);
-G.D_RE(1) = L.D_RE * (1 + L.RE_A.alpha_t * ((G.Delta_Ti_norm + G.Delta_Ta_norm) / 2));
+G.D_RE(1) = L.D_RE * (1 + L.RE_A.alpha_t * G.Delta_Tm_norm);
 
-if ~L.allBallsSameMaterial % Materialparameter für alle WK Materialien berechnet
+if ~L.allBallsSameMaterial % Materialparameter für alle WK Materialien berechnen
     G.E_red(2) = 2  ./  ((1-L.RE_B.nu.^2)./L.RE_B.E + (1-L.ring.nu.^2)/L.ring.E);
-    G.D_RE(2) = L.D_RE * (1 + L.RE_B.alpha_t * ((G.Delta_Ti_norm + G.Delta_Ta_norm) / 2));
+    G.D_RE(2) = L.D_RE * (1 + L.RE_B.alpha_t * G.Delta_Tm_norm);
 end
 
 G.D = (L.D - R.e_ar) * (1 + L.ring.alpha_t * G.Delta_Ta_norm);
 G.d = (L.d + R.e_ir) * (1 + L.ring.alpha_t * G.Delta_Ti_norm);
+G.R_RE = G.D_RE/2;
 
 G.d_m = (G.d + G.D)/2;
-G.R_RE = G.D_RE/2;
 
 b_li = (L.D-L.d-2*L.D_RE-L.c)/2; %Breite von Innenring (bezogen auf Durchmesser)
 b_la = b_li; 
@@ -40,33 +45,63 @@ G.b_la = b_la*(1+L.ring.alpha_t*G.Delta_Ta_norm);
 
 G.P_d = G.D-G.d-2*G.D_RE-G.b_li-G.b_la;
 
-G.B_i=L.B_i*(1+L.ring.alpha_t*G.Delta_Ti_norm);
-G.B_a=L.B_a*(1+L.ring.alpha_t*G.Delta_Ta_norm);
-
-G.R_li = L.f_i*G.D_RE;%Laufbahnradius des Innenrings (Dowson S.48) %der im Lagerquerschnitt gemessene Laufbahnrillenradius des Außenrings
-G.R_la = L.f_a*G.D_RE;%Laufbahnradius des Außenrings
+G.B_i = L.B_i*(1+L.ring.alpha_t*G.Delta_Ti_norm);
+G.B_a = L.B_a*(1+L.ring.alpha_t*G.Delta_Ta_norm);
+
+G.R_li = L.f_i*G.D_RE; %Laufbahnradius des Innenrings (Dowson S.48) %der im Lagerquerschnitt gemessene Laufbahnrillenradius des Außenrings
+G.R_la = L.f_a*G.D_RE; %Laufbahnradius des Außenrings
+
+G.b = L.f_i + L.f_a - 1; % Harris B
+if ~isempty(options.alpha)
+    G.alpha = options.alpha;
+elseif ~F_a || G.method.alphaForRaceRadius == 'zero'
+    G.alpha = 0;
+elseif G.method.alphaForRaceRadius == 'estimate'
+    if G.P_d > 0
+        G.alpha_0 = acos(1 - G.P_d/(2*G.D_RE*G.b));
+    else
+        G.alpha_0 = 0;
+    end
+    G.k_ax_est = interp1([0 0.02 0.08 0.14 0.2],[0 50   250  500  760]*1e3,G.b,'spline')*6894.757; % Harris.2001 Fig. 7.5, p. 247
+    alpha = pi/3; % Stable start value
+    numberOfIterations = 1;
+    while true
+        cosAlphaRatioTerm = (cos(G.alpha_0)/cos(alpha) - 1);
+        alpha_next = alpha + (            F_a/(L.Z*L.D_RE^2*G.k_ax_est) - sin(alpha)*cosAlphaRatioTerm^1.5               )  /  ... Harris.2001 (7.34), p. 247
+                             ( cos(alpha)*cosAlphaRatioTerm^1.5  +  1.5*tan(alpha)^2*cosAlphaRatioTerm^0.5*cos(G.alpha_0) );
+        if abs(alpha-alpha_next) <= 10*eps(alpha)
+            break
+        elseif numberOfIterations >= 1000
+            warning('Estimation of mounted contact angle did not converge')
+            break
+        else
+            alpha = alpha_next;
+            numberOfIterations = numberOfIterations + 1;
+        end
+    end
+    G.alpha = alpha_next;
+end
 
 G.R_bi = (G.d + G.b_li) / 2; %Minimaler innerer Rillenradius
-G.R_ba = (G.D - G.b_la) / 2; %Maximaler äußererRillenradius
+G.R_ba = (G.D - G.b_la) / 2; %Maximaler äußererRillenradius                 %  unabh. von alpha
 
-G.sigmarho_i = (2./G.R_RE + 1./G.R_bi - 1./G.R_li);
-G.sigmarho_a = (2./G.R_RE - 1./G.R_ba - 1./G.R_la);
+G.R_ri = G.R_bi + G.R_RE*(1-cos(G.alpha)); % Race radius at point of contact
+G.R_ra = G.R_ba - G.R_RE*(1-cos(G.alpha));
 
-G.costau_i = (1./G.R_bi + 1./G.R_li) ./ G.sigmarho_i;
-G.costau_a = (-1./G.R_ba + 1./G.R_la) ./ G.sigmarho_a;
+G.sigmarho_i = (2./G.R_RE + 1./G.R_ri - 1./G.R_li);
+G.sigmarho_a = (2./G.R_RE - 1./G.R_ra - 1./G.R_la);                         % abh. von alpha
+G.R_si = 1 ./ G.sigmarho_i;                                                                     % in calcFilm
+G.R_sa = 1 ./ G.sigmarho_a;                                                 % abh. von alpha    % in calcFilm
 
-G.R_xi = 1 ./ ( 1./G.R_RE + 1./G.R_bi );
-G.R_xa = 1 ./ ( 1./G.R_RE - 1./G.R_ba );
-G.R_x  = [G.R_xi;G.R_xa];
+G.R_xi = 1 ./ ( 1./G.R_RE + 1./G.R_ri );
+G.R_xa = 1 ./ ( 1./G.R_RE - 1./G.R_ra );
+G.R_x  = [G.R_xi;G.R_xa];                                                   % abh. von alpha    % in calcFilm & calcCap
 
 G.R_yi = 1 ./ ( 1./G.R_RE - 1./G.R_li );
 G.R_ya = 1 ./ ( 1./G.R_RE - 1./G.R_la );
 G.R_y  = [G.R_yi;G.R_ya];
 
-G.R_si = 1 ./ G.sigmarho_i;
-G.R_sa = 1 ./ G.sigmarho_a;
-
-G.gamma = G.D_RE  *cos(G.alpha) ./ G.d_m;
+G.gamma = G.D_RE  *cos(G.alpha) ./ G.d_m;                                   % abh. von alpha   % in calcFilm
 
 integralF = @(phi,k) (1 - (1-1/k.^2).*sin(phi).^2).^-0.5;
 integralE = @(phi,k) (1 - (1-1/k.^2).*sin(phi).^2).^0.5;
@@ -74,24 +109,24 @@ integralE = @(phi,k) (1 - (1-1/k.^2).*sin(phi).^2).^0.5;
 fraktF = @(k) integral( @(phi) integralF(phi,k),0,pi/2 );
 fraktE = @(k) integral( @(phi) integralE(phi,k),0,pi/2 );
 
-G.F_i = ((G.gamma/(1-G.gamma)+G.D_RE/(2*G.R_li))/(2+G.gamma/(1-G.gamma)-G.D_RE/(2*G.R_li)));
-G.F_a = ((-G.gamma/(G.gamma+1)+G.D_RE/(2*G.R_la))/(2-G.gamma/(1+G.gamma)-G.D_RE/(2*G.R_la)));
+G.F_i = (( G.gamma/(1-G.gamma)+G.D_RE/(2*G.R_li))/(2+G.gamma/(1-G.gamma)-G.D_RE/(2*G.R_li)));
+G.F_a = ((-G.gamma/(1+G.gamma)+G.D_RE/(2*G.R_la))/(2-G.gamma/(1+G.gamma)-G.D_RE/(2*G.R_la)));     % abh. von alpha
 
 k_i_fkt = @(k_i) (1-2/(k_i^(2)-1)*((fraktF(k_i)/fraktE(k_i))-1)-G.F_i);
-k_a_fkt = @(k_a) (1-2/(k_a^(2)-1)*((fraktF(k_a)/fraktE(k_a))-1)-G.F_a);
+k_a_fkt = @(k_a) (1-2/(k_a^(2)-1)*((fraktF(k_a)/fraktE(k_a))-1)-G.F_a);     % abh. von alpha
 
-G.k_i = fzero(k_i_fkt,5);
-G.k_a = fzero(k_a_fkt,5);
-G.k = [G.k_i;G.k_a];
+G.k_i = fzero(k_i_fkt,5);                                                                       % in calcFilm
+G.k_a = fzero(k_a_fkt,5);                                                                       % in calcFilm
+G.k = [G.k_i;G.k_a];                                                        % abh. von alpha    % in calcFilm & calcCap
 
 G.fraktF_i = fraktF(G.k_i);
 G.fraktF_a = fraktF(G.k_a);
-G.fraktE_i = fraktE(G.k_i);
-G.fraktE_a = fraktE(G.k_a);
+G.fraktE_i = fraktE(G.k_i);                                                                     % in calcFilm
+G.fraktE_a = fraktE(G.k_a);                                                 % abh. von alpha    % in calcFilm
 
-G.K_pi = pi.*G.k_i.*G.E_red.*(G.fraktE_i./(4.5*G.sigmarho_i.*G.fraktF_i.^3)).^0.5;
-G.K_pa = pi.*G.k_a.*G.E_red.*(G.fraktE_a./(4.5*G.sigmarho_a.*G.fraktF_a.^3)).^0.5;
-G.K_p= 1./(1./G.K_pi.^(2/3)+1./G.K_pa.^(2/3)).^1.5;
+G.K_pi = pi.*G.k_i.*G.E_red.*(G.fraktE_i./(4.5*G.sigmarho_i.*G.fraktF_i.^3)).^0.5;              % in calcLoad
+G.K_pa = pi.*G.k_a.*G.E_red.*(G.fraktE_a./(4.5*G.sigmarho_a.*G.fraktF_a.^3)).^0.5;              % in calcLoad
+G.K_p= 1./(1./G.K_pi.^(2/3)+1./G.K_pa.^(2/3)).^1.5;                         % abh. von alpha    % in calcLoad
 
 G.Deltapsi = 2*pi./L.Z;
 G.psi_ = (0:L.Z-1) .* G.Deltapsi;
diff --git a/@BearImp/calcLoad.m b/@BearImp/calcLoad.m
index 0c36b03..2fde930 100644
--- a/@BearImp/calcLoad.m
+++ b/@BearImp/calcLoad.m
@@ -206,7 +206,7 @@ end
 
 function Q_total_y_perball_cont=totalReactionForcePerBallOnlyY(G,IndBall,delta_s,psi_run)
    delta_nury = (G.R_ba-G.R_RE-cos(psi_run(IndBall))*delta_s(1))/cos(atan(sin(psi_run(IndBall))*delta_s(1)/ ...
-                (G.R_ba-G.R_RE-cos(psi_run(IndBall))*delta_s(1))))-G.R_RE-G.R_bi - G.D_RE; %- G.D_RE richtig?
+                (G.R_ba-G.R_RE-cos(psi_run(IndBall))*delta_s(1))))-G.R_RE-G.R_bi - G.D_RE;
    Q_total_y_perball_cont = abs((delta_nury<0)*(delta_nury))^(3/2)*G.K_p;
 end
 
diff --git a/BearImpOptions.m b/BearImpOptions.m
index c226ce0..2310484 100644
--- a/BearImpOptions.m
+++ b/BearImpOptions.m
@@ -28,6 +28,7 @@ classdef BearImpOptions < handle & dynamicprops & matlab.mixin.CustomDisplay & m
 
     methods (Static,Hidden) 
         function possibleOption = Possible
+            possibleOption.G.alphaForRaceRadius = {'zero','estimate'};
             possibleOption.T = {'linear','Vogel'};
             possibleOption.B = {'static','dynamic'};
             possibleOption.H.filmThicknessFormula = {'Hamrock/Dowson','Moes'};
@@ -43,6 +44,7 @@ classdef BearImpOptions < handle & dynamicprops & matlab.mixin.CustomDisplay & m
 
         function defaultOption = Default
         % Gibt ein Rechenmethoden-Struct mit den Default-Methoden aus
+            defaultOption.G.alphaForRaceRadius = 'estimate';
             defaultOption.T = 'Vogel';
             defaultOption.B = 'dynamic';
             defaultOption.H.filmThicknessFormula = 'Hamrock/Dowson';
-- 
GitLab