PK zzPBH mimetypetext/x-wxmathmlPK zzP$h
format.txt
This file contains a wxMaxima session.
.wxmx files are .xml-based files contained in a .zip container like .odt
or .docx files. After changing their name to end in .zip the .xml and
other files inside them can can be extracted using any .zip file viewer.
The reason why part of a .wxmx file still might seem to make sense in a
ordinary text viewer is that the text portion of .wxmx by default
isn't compressed: This way if only one line of the text changes this won't
(with a high probability) change the value of half of the bytes of the
.zip archive making the .wxmx file more version-control-friendly.
wxMaxima can be downloaded from https://github.com/andrejv/wxmaxima.
PK zzP3= content.xml
kill(all);relative representation of b and hh is kept dimensionalb is defined through the upsilon = b/h ratiot is defined through the epsilon = t/h ratiob : h * upsilon;t : h * epsilon;Dimensions are declared positive, in order to simplify abs(x) with xassume( upsilon>0, epsilon>0, h>0);for the sake of simplicity, wall thickness is assumed constant.two coordinate systems are employed:OXY is centered at the web midpointGxy is centered at the (initially unknown) section center of gravityprofile nodal point coordinates according to the OXY reference systemXA : b $ YA: h/2$XB : 0 $ YB: h/2$XC : 0 $ YC:-h/2$XD : b $ YD:-h/2$(x,y) coordinates for points along the profile segments are parametrically definedwith respect to a normalized arlength coordinate xi that spans from 0 to 1 while moving along the segment from the first to the second endpoint.The Gxy centroidal coordinate system is here employed, with unknown XG,YG. x_AB(xi) := (XB-XG)*xi + (XA-XG)*(1-xi);y_AB(xi) := (YB-YG)*xi + (YA-YG)*(1-xi)$x_BC(xi) := (XC-XG)*xi + (XB-XG)*(1-xi)$y_BC(xi) := (YC-YG)*xi + (YB-YG)*(1-xi)$x_CD(xi) := (XD-XG)*xi + (XC-XG)*(1-xi)$y_CD(xi) := (YD-YG)*xi + (YC-YG)*(1-xi)$profile segment length functionsdefine( dl_dxi_AB(xi), sqrt( diff(x_AB(xi),xi)^2 + diff(y_AB(xi),xi)^2 ));define( dl_dxi_BC(xi), sqrt( diff(x_BC(xi),xi)^2 + diff(y_BC(xi),xi)^2 ));define( dl_dxi_CD(xi), sqrt( diff(x_CD(xi),xi)^2 + diff(y_CD(xi),xi)^2 ));Area calculation by integration along the section(not robust for curved segment)area : integrate(t * dl_dxi_AB(xi) ,xi,0,1) + integrate(t * dl_dxi_BC(xi) ,xi,0,1) + integrate(t * dl_dxi_CD(xi) ,xi,0,1);First order (or "statical") moments of area, with respect to the Center of GravityMx : integrate(y_AB(xi) * t * dl_dxi_AB(xi) ,xi,0,1) + integrate(y_BC(xi) * t * dl_dxi_BC(xi) ,xi,0,1) + integrate(y_CD(xi) * t * dl_dxi_CD(xi) ,xi,0,1);My : integrate(x_AB(xi) * t * dl_dxi_AB(xi) ,xi,0,1) + integrate(x_BC(xi) * t * dl_dxi_BC(xi) ,xi,0,1) + integrate(x_CD(xi) * t * dl_dxi_CD(xi) ,xi,0,1);the first order moment of area is known to be nullif the reference system is centroidal; such condition is employedto evaluate the center of gravity coordinates with respect to OXYlinsolve([Mx=0,My=0],[XG,YG]), globalsolve=true;second order moments of area, with respect to GxyJxx : fullratsimp( integrate(y_AB(xi)^2 * t * dl_dxi_AB(xi) ,xi,0,1) + integrate(y_BC(xi)^2 * t * dl_dxi_BC(xi) ,xi,0,1) + integrate(y_CD(xi)^2 * t * dl_dxi_CD(xi) ,xi,0,1) );Jyy : fullratsimp( integrate(x_AB(xi)^2 * t * dl_dxi_AB(xi) ,xi,0,1) + integrate(x_BC(xi)^2 * t * dl_dxi_BC(xi) ,xi,0,1) + integrate(x_CD(xi)^2 * t * dl_dxi_CD(xi) ,xi,0,1) );Jxy : integrate(x_AB(xi)*y_AB(xi) * t * dl_dxi_AB(xi) ,xi,0,1) + integrate(x_BC(xi)*y_BC(xi) * t * dl_dxi_BC(xi) ,xi,0,1) + integrate(x_CD(xi)*y_CD(xi) * t * dl_dxi_CD(xi) ,xi,0,1);due to the symmetric nature of the cross section, the product (not "mixed") momentof area is zero.we now define the alpha,beta coefficients of the equationd sigma_z--------- = alpha(x,y,...) Sy - beta(x,y,...) *Sx dzMaterial is assumed homogeneous and isotropic along the section.define( alpha(x,y) , fullratsimp ( (-Jxy * x + Jyy*y)/(Jxx*Jyy-Jxy^2) ));define( beta(x,y) , fullratsimp ( (-Jxx * x + Jxy*y)/(Jxx*Jyy-Jxy^2) ));for each point along the section, the axial stress component variation with increasing z is defined.Such variation causes a disequilibrium that induces the compensating shear actions. define( dsigmaz_dz(x,y) , fullratsimp( alpha(x,y) * Sy - beta(x,y) * Sx ) );shear stress at the A end, which is a free surface in the case of an open section.In the case of a closed thin wall section, such value is generally nonzero, and it is to be treated as an unknown parameter.tau_A : 0;AB segment : The tau_iz shear stress component is evaluated as a function of thenormalized arc length coordinate xi, based on the axial equilibrium of the portionof section spanning from A (xi=0) to the current point along the segmentdefine( tau_AB(xi), fullratsimp( ( tau_A *t + integrate( dsigmaz_dz(x_AB(dummy),y_AB(dummy)) * t * dl_dxi_AB(dummy), dummy,0,xi ) )/t ));
*xi12*epsilon*h2*upsilon3+26*epsilon*h2*upsilon2+4*epsilon*h2*upsilonBC segment: the shear stress component is evaluated as for segment AB; at the B segment end, the shear stress transmitted from the previous segment is applied. define( tau_BC(xi), fullratsimp( ( tau_AB(1) *t + integrate( dsigmaz_dz(x_BC(dummy),y_BC(dummy)) * t * dl_dxi_BC(dummy), dummy,0,xi ) )/t ));BC segment: the shear stress component is evaluated as for segments AB and CD.define( tau_CD(xi), fullratsimp( ( tau_BC(1) *t + integrate( dsigmaz_dz(x_CD(dummy),y_CD(dummy)) * t * dl_dxi_CD(dummy), dummy,0,xi ) )/t ));check : is tau_iz equal to zero at the D end??tau_D : fullratsimp(tau_CD(1));wow. ok.further check : let's plot the tau_iz variation along the cross section segments.sample dimensions are required for extracting numerical results to be plotted.dim : [h=80,upsilon=40/80,epsilon=6/80];Shear resultants Sx,Sy are applied for plotting purposes s.t. the nominal shear stress, avaluated as the load divided by the area, is unitary.wxplot2d( ev( [ tau_AB(xi), tau_BC(xi), tau_CD(xi) ],dim, Sy=area*1, Sx=0, infeval ), [xi,0,1], [legend,"AB","BC","CD"] );I evaluate the peak value for the actual shear stress vs. nominal stress ratio along the BC segment, and along the section.here, tmp is the evaluation of the stress tmp : ev( tau_BC(xi), Sy=area*1, Sx=0 ,infeval )$linsolve( diff( tmp, xi )=0, xi)$fullratsimp(ev(tmp , %));%,dim,numer;wxplot2d( ev( [tau_AB(xi),tau_BC(xi),tau_CD(xi)], dim, Sy=0, Sx=area*1 ,infeval ), [xi,0,1], [legend,"AB","BC","CD"] );I evaluate the peak value for the actual shear stress vs. nominal stressratio along the AB segment, and along the section. tmp : ev( tau_AB(xi), Sx=area*1, Sy=0 ,infeval )$linsolve( diff( tmp, xi )=0, xi)$fullratsimp(ev(tmp , %));%,dim,numer;in order to evaluate resultants, a unit vector is to be defined for eachsegment that orients the tau_iz actions along the plane.vx = - diff ( x, s) = -diff (x, xi) / diff (l, xi);vy = - diff ( y, s) = -diff (y, xi) / diff (l, xi);those vectors are a function of xi (and should be defined accordingly) in the case of curved segments.the negative sign is due to the opposite "inward" and "growing s" directions; tau_zi are oriented inward, whereas the[ diff ( x, s) , diff ( y, s) ]vector is oriented towards growing svx_AB : - diff(x_AB(xi),xi)/dl_dxi_AB(xi);vy_AB : - diff(y_AB(xi),xi)/dl_dxi_AB(xi);vx_BC : - diff(x_BC(xi),xi)/dl_dxi_BC(xi);vy_BC : - diff(y_BC(xi),xi)/dl_dxi_BC(xi);vx_CD : - diff(x_CD(xi),xi)/dl_dxi_CD(xi);vy_CD : - diff(y_CD(xi),xi)/dl_dxi_CD(xi);x component of the resultant force of the tau_iz stress distribution. Fx : integrate( vx_AB * tau_AB(xi) * t * dl_dxi_AB(xi) + vx_BC * tau_BC(xi) * t * dl_dxi_BC(xi) + vx_CD * tau_CD(xi) * t * dl_dxi_CD(xi), xi,0,1 );y component of the resultant force of the tau_iz stress distribution. Fy : integrate( vy_AB * tau_AB(xi) * t * dl_dxi_AB(xi) + vy_BC * tau_BC(xi) * t * dl_dxi_BC(xi) + vy_CD * tau_CD(xi) * t * dl_dxi_CD(xi), xi,0,1 )$Fy : fullratsimp(Fy);axial z component of the resultant moment of the tau_iz stress distribution.MGz : integrate( (vx_AB * (-y_AB(xi)) + vy_AB * (+x_AB(xi))) * tau_AB(xi) * t * dl_dxi_AB(xi) + (vx_BC * (-y_BC(xi)) + vy_BC * (+x_BC(xi))) * tau_BC(xi) * t * dl_dxi_BC(xi) + (vx_CD * (-y_CD(xi)) + vy_CD * (+x_CD(xi))) * tau_CD(xi) * t * dl_dxi_CD(xi), xi,0,1 )$MGz : fullratsimp(MGz);The evaluation follows of the shear center coordinates (e,f), based on an equal resultant moment condition with respect to the CoG.eq : MGz = Sx * (-f) + Sy * (+e);eq_res : rhs(eq) - lhs(eq);such equation holds for null shear components, we now impose that such null residualcondition is also constant for arbitrary varying Sx, Syev( eq_res, Sx=0, Sy=0);linsolve( [ diff(eq_res,Sx)=0, diff(eq_res,Sy)=0],[e,f] ), globalsolve=true;check based on comparison with known results from literature, e.g.https://theconstructor.org/structural-engg/analysis/shear-centre-with-examples/3677/fullratsimp( ( -(XG + b^2*h^2*t/4/Jxx) ) - ( e ) );okthe shear contribution to the elastic strain energy per unit beam length is evaluated in the following dU_dz : integrate( tau_AB(xi)^2/2/G * t* dl_dxi_AB(xi) + tau_BC(xi)^2/2/G * t* dl_dxi_BC(xi) + tau_CD(xi)^2/2/G * t* dl_dxi_CD(xi), xi,0,1 );a nominal counterpart is defined, that contains the three corrective chi factorsdU_dz_nom : (chi_x * Sx^2 + chi_y * Sy^2 + chi_xy *Sx*Sy)/2/G/area;eq : dU_dz = dU_dz_nom;eq_res : lhs(eq) - rhs(eq);such residual - which is null for null Sx,Sy - has to remain invariant with varying Sx, Sy.However, it is simpler to set it as an invariant in Sx^2, Sy^2, Sx*Syi.e.diff(eq_res, Sx^2 )=0diff(eq_res, Sy^2 )=0diff(eq_res, Sx*Sy)=0since it is not allowed to differentiate any expression with respect to non-atomic terms as Sx^2,Sy^2,Sx*Sy, a workaround is applied in the followingconsisting in a change of variable.eq_res : ratsubst( Sxq , Sx^2 , eq_res )$eq_res : ratsubst( Syq , Sy^2 , eq_res )$eq_res : ratsubst( SxSy , Sx*Sy , eq_res )$eq_res;check: no residual Sx, Sy terms within eq_resdiff( eq_res , Sx);diff( eq_res , Sy);okfinal value for the three corrective shear strain energy coefficients: their valuehas to be an invariant with respect to the value of the shear components.linsolve( [ diff(eq_res, Sxq) =0, diff(eq_res, Syq) =0, diff(eq_res, SxSy)=0 ], [ chi_x, chi_y, chi_xy]), globalsolve=true;ev([ chi_x, chi_y, chi_xy] , dim ,numer);ev([ chi_x, chi_y, chi_xy] , dim ,numer);
PK zzPkm9H H
image1.pngPNG
IHDR X W bKGD IDATxg|Te_Ҥ%tDH"*) 0Y][%3* L("K5$$3XN{~xE3saB!UBd
!pk2B5B!ܚB!nMB&P![A( Bd
!pkz
f˖RJ{yzFy
!prz^z5nʕ+}}z_nq9>B'Mg̘ѵk3,X0!!
J(ܹs+'BvdɒF=zI&ٳgoРsKNuB{SgGŨRÇ6Lu'"{q7 ;5:B8 }
!oHB&P!9sɓ⣇M@:tV}zIX^Bhzuٴi{ԋv+W&LO?۷O]Wo#3B!pŅ{wOo?8q܍B!p &LiӚ'>fCBB^|Ha]dB;*U:yd̙˖-{zx|
l۶}B7ߤza Iі6R9#B
?|,Y<<<2g|ܹG@ϟڵ^'$=p
jMn,}d)[ҥK˕+>}e˖'O|y{Qlll%}56R9#BٸqcMAtҹsqk}w|3B8'N_IG˕+wܹgt;K3z!p6R9#Bd
!pk2B5B!ܚB!nMB8ԋf͚?SLϯ^0A(>jIII˗ԩӃo۶K.Cyr1tPQ݁>!vh8LHH Zl٤I u^TBtȑO?4}H
72BYK3g͘1hoDF*gBh{R/^6uK!v^.]TXRHө nn_~=44ѳR^ o>>>~ƌ[hڜ.On,}dk')$25+@줓cY ..+DEQ5kR5k:PFFknc[?ٶ]ؽ_R%jԠV-jԠHr<<ؽ{Y5[dy֬Y_;v,G͚59roc++S^+*M
m6 *Mغ-[۩WaˮRUsΝUҠS3,mֺu)Slʕ+#G}io/lΝ5kѣmVBՑSDFknc[?lƍxxа!
P%JNع[ٴ#GV
iԈ5|-D/o=tOFknc[?ni?\JF|
Rdn,!mش뉎~}7O(YRu2+}"ϺD/tRŊBJ_BHJԷXOӬZM4nLT,w:Waֱv-Y퍷7
/x(111Gs`קo#5ؽdrhޜO>ɖMu22^DFҸ1ZѼ9o:VZ~׳>aD/:~x&M~7{}6R]sK;wXd
U+ZeƮ]c*~
RVhUcYKO_~}̙Lm6s/ ZEDQ[Ӫŋ%Ȇ
r}{:t\9ձY^?GŋVuϞ=%5y'UFknc[?p+Vp!S.:Ъs%Rƞ=DDh9sұ#;'GfZ^#F{J}o\Yr2#իg|)r%ngngBԉUOҷX5f+F.tH3 'ƍ˖Q>>nMLcm6s)1ofq*ݻC23 tK0{6Ӿ==zPLBFknc[?Wp>VΖ-l}$Ds2{6Уm6[t4ӧ3s&%KKdϮ:Ӟ=̞͂Ԫ͛6LnGFknc[?-%'b'rݻGٲ3 p6L¹sM>*:ѷXO3/3}:'SЮUK8ԱcL?ШР@nAFknc[?mq:0` *$@|D>*p: V-Ձ\Tz0Zt4,ɩSYڵ4k&SPWgҠݻS6c%uKw/lDMXP]dɒEu&Hum,},~9{AK> cI@ зXO1e>;w2>#]:ՙxu'O2b+VЫfHZ71w)(tU,3gr wP3ƭ[ȑt7]x3x03J:Өo#uK6gNAԩ*űc<2x5́MNtWPƍT,^-:zJ^8}Z Tg@[:sVۗݻ B Kabc)WpNdV->chVu !\K̚LBZݫ:x9nng<ʕ%/ȐAu&!\TjmKϞr?''=;GaAx<;^TA8A~`LSHA.:E¼.G˕R!$&R͚<2B'5+!!_Ԯê AjnJAINu !S{[