Nonlinear¶
CalcpadCE worksheets in this section present geometrically nonlinear truss analysis, where the equilibrium equations are written in the deformed configuration so that large displacements and snap-through behaviour are captured naturally.
The system of equations is implicit in the joint displacements and is therefore solved iteratively β by fixed-point iteration, Newton-Raphson, the secant method, and the built-in Root solver based on a modified Anderson-BjΓΆrck bracketing scheme.
A symmetric two-bar Biot truss demonstrates the four numerical methods on a system that is linearly unstable: the equilibrium has to be derived for the deformed length \(l'(v) = \sqrt{(l + u)^2 + v^2}\) and the vertical reaction \(F_y(v) = E A \cdot \Delta l(v) / l \cdot v / l'(v)\) is then balanced against the applied load. A shallow Von-Mises truss extends the same formulation to a tube section with a small initial rise, where the load-displacement curve passes through a limit point and the post-buckling branch is followed. A prestressed asymmetric Biot truss combines geometric nonlinearity with a bilinear elastic-plastic material law, so that the element stiffness \(E A\) switches from \(E_0 A\) to \(E_1 A\) once the strain exceeds the yield value \(\varepsilon_y\), and a global Newton-Raphson loop updates the Jacobi matrix at each iteration.
A small SVG drawing library, svg_drawing.cpd, is included by each worksheet to render the undeformed and deformed configurations, supports and applied forces directly into the report.
Material and Geometric Nonlinear Analysis of Prestressed Asymmetric Biot Truss¶
Combined material and geometric nonlinear analysis of a prestressed three-joint truss with a bilinear elastic-plastic stress-strain law, solved by a global Newton-Raphson iteration that updates the Jacobi matrix and the axial stiffness \(E A\) at each step.
'<h4>Input data</h4>
#deg
#hide
Ξ΄z = 10^-12
Precision = 10^-9
x_J = [0; 3; 9]*m
y_J = [0; 0; 0]*m
#show
x_J','y_J', 'n_J = len(x_J)
'<h4>Elements - [J1; J2]</h4>
#hide
E_J = [1; 2|2; 3]
#show
transp(E_J)', 'n_E = n_rows(E_J)', 'J_1(e) = E_J.(e; 1)', 'J_2(e) = E_J.(e; 2)
'Element endpoint coordinates
x_1(e) = x_J.J_1(e)','y_1(e) = y_J.J_1(e)', 'x_2(e) = x_J.J_2(e)','y_2(e) = y_J.J_2(e)
'Element lengths - 'l(e) = sqrt((x_2(e) - x_1(e))^2 + (y_2(e) - y_1(e))^2)
'Element directions -'c(e) = (x_2(e) - x_1(e))/l(e)','s(e) = (y_2(e) - y_1(e))/l(e)
'Transformation matrix
t(e) = [c(e); s(e)| - s(e); c(e)]
T(e) = add(t(e); add(t(e); matrix(4; 4); 1; 1); 3; 3)
'<h4>Supports - [Joint; cx; cy]</h4>
#hide
c_J = [1; 10^20kN/m; 10^20kN/m|3; 10^20kN/m; 10^20kN/m]
#show
c_J
n_c = n_rows(c_J)
'<h4>Material - steel</h4>
'We assume bi-linear material model
'Initial modulus of elasticity -'E_0 = 206GPa
'Yield stress -'f_y = 500MPa
'Ultimate tensile stress -'f_u = 600MPa
'Yield strain -'Ξ΅_y = f_y/E_0|β°
'Ultimate strain -'Ξ΅_u = 20β°
'Modulus of elasticity after yield -'E_1 = (f_u - f_y)/(Ξ΅_u - Ξ΅_y)|GPa
'Idealized stress-strain curve -'Ο(Ξ΅) = if(Ξ΅ < Ξ΅_y; E_0*Ξ΅; f_y + E_1*(Ξ΅ - Ξ΅_y))
'<!--'PlotWidth = 200','PlotHeight = 150'-->
$Plot{Ο(Ξ΅) @ Ξ΅ = 0β° : Ξ΅_u}
'<h4>Cross section β circular with diameter'Ξ¦ = 20mm'</h4>
'Area -'A = Ο*Ξ¦^2/4|cm^2
'Stiffness
'Initial -'EA_0 = E_0*A', 'EA = EA_0
'After yield -'EA_1 = E_1*A
'<h4>Load - [Joint, Fx, Fy]</h4>
#hide
F_J = join_rows([2; 0kN; -70kN])
#show
F_J', 'n_F = n_rows(F_J)
'Prestressing force -'P = 20kN
'Initial stress -'Ο_P = P/A|MPa
'Initial strain -'Ξ΅_P = Ο_P/E_0
#include svg_drawing.cpd
#hide
Z = vector(2*n_J)*mm
w = max(x_J)
h = max(y_J)
W = 320
k = W/w
H = (h + 3m)*k
r = 3
x1(j) = (x_J.j + Z.(2*j - 1))*k
y1(j) = (h - y_J.j + Z.(2*j))*k
#def svg$ = '<svg viewbox="'-2.5m*k' '-1m*k' '(w + 5m)*k' 'H'" xmlns="http://www.w3.org/2000/svg" version="1.1" style="font-family: Georgia Pro Cond; font-size:11px; width:'W + 100'pt; height:'H + 100*H/W'pt">
#def thin_style$ = style="stroke:darkcyan; stroke-width:1; fill:none"
#def pin_style$ = style="stroke:red; stroke-width:1; fill:white"
#def thick_style$ = style="stroke:darkcyan; stroke-width:3; fill:none"
#def load_style$ = style="stroke:deepskyblue; stroke-width:1; fill:deepskyblue;"
#show
#val
svg$
#def frame$
#for i = 1 : n_E
#hide
x1 = x1(J_1(i))
y1 = y1(J_1(i))
x2 = x1(J_2(i))
y2 = y1(J_2(i))
#show
line$(x1; y1; x2; y2; main_style$)
dimh$(x1;x2;H-1.5m*k;'(x2-x1)/k'm)
#loop
#for i = 1 : n_c
#hide
j = c_J.(i; 1)
x1 = x1(j)
y1 = y1(j) + r
Ξ΄ = w/30*k*sign(x1 - w/2*k)
x2 = x1 - Ξ΄
y2 = y1 - abs(Ξ΄)
x3 = x1 + Ξ΄
y3 = y1 + abs(Ξ΄)
#show
line$(x2; y3; x3; y3; thick_style$)
line$(x2; y3; x1; y1; thin_style$)
line$(x3; y3; x1; y1; thin_style$)
#loop
#for i = 1 : n_F
#hide
Ξ΄ = 0.5m*k
j = F_J.(i; 1)
F_x = F_J.(i; 2)/kN
F_y = F_J.(i; 3)/kN
#show
#if F_x β 0
#hide
Ξ΄_x = 3*Ξ΄*sign(F_x)
Ξ΄_y = 0.2*Ξ΄
x1 = x1(j) + r*sign(F_x)
y1 = y1(j)
#show
'<polygon points="'x1 - Ξ΄_x','y1' 'x1','y1' 'x1 - Ξ΄_x/5','y1 - Ξ΄_y' 'x1 - Ξ΄_x/5','y1 + Ξ΄_y' 'x1','y1'" load_style$ />
texth$(x1-2*Ξ΄_x/3;y1-2*Ξ΄_y;Fx='F_x'kN)
#end if
#if F_y β 0
#hide
Ξ΄_x = 0.2*Ξ΄
Ξ΄_y = 3*Ξ΄*sign(F_y)
x1 = x1(j)
y1 = y1(j) + r*sign(F_y)
#show
'<polygon points="'x1','y1 + Ξ΄_y' 'x1','y1' 'x1 - Ξ΄_x','y1 + Ξ΄_y/5' 'x1 + Ξ΄_x','y1 + Ξ΄_y/5' 'x1','y1'" load_style$ />
textv$(x1-2*Ξ΄_x;y1+2*Ξ΄_y/3;Fy='F_y'kN)
#end if
#loop
#for j = 1 : n_J
circle$(x1(j); y1(j); r; pin_style$)
#if abs(Z.(2*j)) > Ξ΄z*mm
textv$(x1(j)-0.2*Ξ΄; y1(j)+1.8*Ξ΄;'Z.(2*j)'mm)
#end if
#if abs(Z.(2*j - 1)) > Ξ΄z*mm
texth$(x1(j)+1.5*Ξ΄; y1(j)+0.8*Ξ΄;'Z.(2*j - 1)'mm)
#end if
#loop
#end def
frame$
'</svg>
#equ
'<h4>Finite element formulation</h4>
'<!--'u = 0','v = 0','z = [0; 0]'-->
'We will formulate a 2D truss element with 3rd order geometric nonlinearity. The equilibrium equations will be derived in local CS, for the deformed state of the structure, assuming large displacements, as follows:
'<img style="height:115pt; width:198pt;" src="./Images/nonlin-truss-element.png" alt="nonlin-truss-element.png">
#noc
'Relative displacements -'u = u_2 - u_1', 'v = v_2 - v_1', 'z = [u; v]
#equ
'Length and elongation of the element in deformed state
lβ²(e; z) = sqrt((l(e) + z.1)^2 + z.2^2)','Ξl(e; z) = lβ²(e; z) - l(e)', 'Ξ΅(e; z) = Ξl(e; z)/l(e) + Ξ΅_P
'Directions of the displaced axis of the element in the deformed state
c_d(e; z) = (l(e) + z.1)/lβ²(e; z)', 's_d(e; z) = z.2/lβ²(e; z)
'Axial force in element -'N(e; z) = Ο(Ξ΅(e; z))*A
'Horizontal reactive force at the right end -'F_x(e; z) = N(e; z)*c_d(e; z)
'Vertical reactive force at the right end -'F_y(e; z) = N(e; z)*s_d(e; z)
'Partial derivatives of element end reactive forces
Fβ²_x1(e; z) = (1/l(e) - z.2^2/lβ²(e; z)^3)', ' _
Fβ²_x2(e; z) = (z.2*(l(e) + z.1)/lβ²(e; z)^3)
Fβ²_y1(e; z) = Fβ²_x2(e; z)', ' _
Fβ²_y2(e; z) = (1/l(e) - (l(e) + z.1)^2/lβ²(e; z)^3)
'We are not going to linearize the above equations by Taylor series. We will use them further directly in their implicit form.
'<h4>Solution by Newton-Raphsonβs method</h4>
'We will express the parameters of the system as a function of the vector of t he unknown displacements:
Z = vector(2*n_J)*mm
'Initial deflection at the intermediate joint -'Z.(n_J + 1) = 100mm
'Extracting displacements for joint <var>j</var> -'z_J(j) = [Z.(2*j - 1); Z.(2*j)]
'Relative displacements for element <var>e</var> -' _
z_e(e) = t(e)*(z_J(J_2(e)) - z_J(J_1(e)))
'Element reactive forces partial vector -' _
F_e(e) = t(e)*[F_x(e; z_e(e)); F_y(e; z_e(e))]
'Partial element Jacobi matrix
J_e(e) = t(e)*[ _
Fβ²_x1(e; z_e(e)); Fβ²_x2(e; z_e(e))| _
Fβ²_y1(e; z_e(e)); Fβ²_y2(e; z_e(e))]
'Target precision -'Ξ΅_max = 10^-5
#hide
#for n = 1 : 100
z_J(j) = [Z.(2*j - 1); Z.(2*j)]
'Global load vector
F = vector(2*n_J)*kN
s = -1
'Add internal forces
#for e = 1 : n_E
#for k = 1 : 2
j = E_J.(e; k)
j_2 = 2*j
F.(j_2 - 1) = F.(j_2 - 1) + take(1; F_e(e))*s
F.(j_2) = F.(j_2) + take(2; F_e(e))*s
s = -s
#loop
#loop
'Add support rections
#for i = 1 : n_c
j = c_J.(i; 1)
j_2 = 2*j
F.(j_2 - 1) = F.(j_2 - 1) + c_J.(i; 2)*Z.(j_2 - 1)
F.(j_2) = F.(j_2) + c_J.(i; 3)*Z.(j_2)
#loop
'Add external loads
#for i = 1 : n_F
j = F_J.(i; 1)
j_2 = 2*j
F.(j_2 - 1) = F.(j_2 - 1) + F_J.(i; 2)
F.(j_2) = F.(j_2) + F_J.(i; 3)
#loop
'Global Jacobi matrix
J = symmetric(2*n_J)*kN/m
'Add element Jacobi matrices
#for e = 1 : n_E
Ξ΅ = Ξ΅(e; z_e(e))
EA = if(Ξ΅ < Ξ΅_y; EA_0; max(EA_0/10; EA_1))
#for i = 1 : 2
#for j = 1 : 2
k = if(i β‘ j; EA; -EA)
i_1 = 2*E_J.(e; i) - 1
j_1 = 2*E_J.(e; j) - 1
add(k*J_e(e); J; i_1; j_1)
#loop
#loop
#loop
'Add support springs
#for i = 1 : n_c
j = c_J.(i; 1)
C_x = c_J.(i; 2)
C_y = c_J.(i; 3)
j_1 = 2*j - 1
j_2 = 2*j
J.(j_1; j_1) = J.(j_1; j_1) + C_x
J.(j_2; j_2) = J.(j_2; j_2) + C_y
#loop
Z_0 = Z
Ξ΄Z = clsolve(J; F)|mm
Z = Z_0 - Ξ΄Z
Ξ΅ = norm_e(Ξ΄Z)/norm_e(Z)
#if Ξ΅ < Ξ΅_max
#break
#end if
#loop
#show
'Iteratively calculate the following equations of the Newton-Raphsonβs method:
#noc
Z_0 = Z','Ξ΄Z = clsolve(J(Z); F(Z))|mm','Z = Z_0 - Ξ΄Z','Ξ΅ = norm_e(Ξ΄Z)/norm_e(Z) < Ξ΅_max
#equ
'Convergence reached at iteration -'n'. Relative error -'Ξ΅
'<h4>Results</h4>
'<p><strong>Joint displacements</strong> -'Z(j) = round(z_J(j)/Ξ΄z)*Ξ΄z'</p>
#novar
#for j = 1 : n_J
#if norm_1(Z(j)) > Ξ΄z*mm
#val
'<p>Joint <b>J'j'</b> - <var>Z</var><sub>'j
#equ
'</sub> ='Z(j)'</p>
#end if
#loop
#varsub
'<p><strong>Reactions in supports</strong></p>
r(i) = row(c_J; i)','j(i) = take(1; r(i))', ' _
R(i) = -z_J(j(i))*last(r(i); 2)
#novar
#for i = 1 : n_c
#val
'<p>Joint <b>J'j(i)'</b> - <var>R</var><sub>'i
#equ
'</sub> ='R(i)'</p>
#loop
#varsub
'Element yield capacity -'N_y = f_y*A
'Element ultimate capacity -'N_u = f_u*A
'<p><strong>Element axial forces</strong> -'N_e(e) = N(e; z_e(e))'</p>
#novar
#for e = 1 : n_E
#val
'<p>Element <b>Π'e'</b> - <var>N</var><sub>'e'
#equ
'</sub> ='N_e(e)'</p>
#loop
#varsub
#val
#hide
k = W/w
Ξ΄ = 0.5m*k
#show
svg$
'<polygon points="'0','0' '0','-3*Ξ΄' '-0.2*Ξ΄','-2.4*Ξ΄' '0.2*Ξ΄','-2.4*Ξ΄' '0','-3*Ξ΄'" load_style$/>
'<polygon points="'W','0' 'W','-3*Ξ΄' 'W - 0.2*Ξ΄','-2.4*Ξ΄' 'W + 0.2*Ξ΄','-2.4*Ξ΄' 'W','-3*Ξ΄'" load_style$/>
'<polygon points="'r','0' '-3*Ξ΄','0' '-2.4*Ξ΄','-0.2*Ξ΄' '-2.4*Ξ΄','0.2*Ξ΄' '-3*Ξ΄','0'" load_style$/>
'<polygon points="'W + r','0' 'W + 3*Ξ΄','0' 'W + 2.4*Ξ΄','-0.2*Ξ΄' 'W + 2.4*Ξ΄','0.2*Ξ΄' 'W + 3*Ξ΄','0'" load_style$/>
texth$(-2*Ξ΄;-0.5*Ξ΄;Rx='take(1; R(1))'kN)
texth$(W+2*Ξ΄;-0.5*Ξ΄;Rx='take(1; R(2))'kN)
texth$(2*Ξ΄;-3.2*Ξ΄;Ry='take(2; R(1))'kN)
texth$(W-2*Ξ΄;-3.2*Ξ΄;Ry='take(2; R(2))'kN)
frame$
'</svg>
#equ
βxJ = [0βmβ3βmβ9βm] , βyJ = [0βmβ0βmβ0βm] , nJ = lenβ(ββxJβ)β = 3
transpβ(βEJβ)β = 12 23 , nE = nrowsβ(βEJβ)β = 2 , J1β(βeβ)β = EJ.e,1 , J2β(βeβ)β = EJ.e,2
Element endpoint coordinates
x1β(βeβ)β = βxJ.J1ββ(βeβ)β , y1β(βeβ)β = βyJ.J1ββ(βeβ)β , x2β(βeβ)β = βxJ.J2ββ(βeβ)β , y2β(βeβ)β = βyJ.J2ββ(βeβ)β
Element lengths - lβ(βeβ)β =   β β(βx2ββ(βeβ)β β x1ββ(βeβ)ββ)β2 + β(βy2ββ(βeβ)β β y1ββ(βeβ)ββ)β2
Element directions - cβ(βeβ)β = x2ββ(βeβ)β β x1ββ(βeβ)βlββ(βeβ)β , sβ(βeβ)β = y2ββ(βeβ)β β y1ββ(βeβ)βlββ(βeβ)β
Transformation matrix
tβ(βeβ)β = [cββ(βeβ)β; sββ(βeβ)β | -sββ(βeβ)β; cββ(βeβ)β]
Tβ(βeβ)β = addβ(βtββ(βeβ)β; addβ(βtββ(βeβ)β; matrixβ(β4; 4β)β; 1; 1β)β; 3; 3β)β
cJ = 11020βkNβββm1020βkNβββm 31020βkNβββm1020βkNβββm
nc = nrowsβ(βcJβ)β = 2
We assume bi-linear material model
Initial modulus of elasticity - E0 = 206βGPa
Yield stress - fy = 500βMPa
Ultimate tensile stress - fu = 600βMPa
Yield strain - Ξ΅y = fyE0 = 500βMPa206βGPa = 2.43ββ°
Ultimate strain - Ξ΅u = 20ββ°
Modulus of elasticity after yield - E1 = fu β fyΞ΅u β Ξ΅y = 600βMPa β 500βMPa20ββ° β 2.43ββ° = 5.69βGPa
Idealized stress-strain curve - Οβ(βΞ΅β)β = {if Ξ΅ < Ξ΅y: E0βΒ·βΞ΅
else: fy + E1βΒ·ββ(βΞ΅ β Ξ΅yβ)β
Area - A = ΟβΒ·βΞ¦24 = 3.14βΒ·ββ(β20βmmβ)β24 = 3.14βcm2
Stiffness
Initial - EA0 = E0βΒ·βA = 206βGPaβΒ·β3.14βcm2 = 64716.8βkN , EA = EA0 = 64716.8βkN
After yield - EA1 = E1βΒ·βA = 5.69βGPaβΒ·β3.14βcm2 = 1787.76βkN
FJ = 20βkN-70βkN , nF = nrowsβ(βFJβ)β = 1
Prestressing force - P = 20βkN
Initial stress - ΟP = PA = 20βkN3.14βcm2 = 63.66βMPa
Initial strain - Ξ΅P = ΟPE0 = 63.66βMPa206βGPa = 0.000309
We will formulate a 2D truss element with 3rd order geometric nonlinearity. The equilibrium equations will be derived in local CS, for the deformed state of the structure, assuming large displacements, as follows:
Relative displacements - u = u2 β u1 , v = v2 β v1 , βz = [u; v]
Length and elongation of the element in deformed state
lβ²β(βe; zβ)β =   β β(βlββ(βeβ)β + z1β)β2 + z22 , Ξlβ(βe; zβ)β = lβ²ββ(βe; zβ)β β lββ(βeβ)β , Ξ΅β(βe; zβ)β = Ξlββ(βe; zβ)βlββ(βeβ)β + Ξ΅P
Directions of the displaced axis of the element in the deformed state
cdβ(βe; zβ)β = lββ(βeβ)β + z1lβ²ββ(βe; zβ)β , sdβ(βe; zβ)β = z2lβ²ββ(βe; zβ)β
Axial force in element - Nβ(βe; zβ)β = Οββ(βΞ΅ββ(βe; zβ)ββ)ββΒ·βA
Horizontal reactive force at the right end - Fxβ(βe; zβ)β = Nββ(βe; zβ)ββΒ·βcdββ(βe; zβ)β
Vertical reactive force at the right end - Fyβ(βe; zβ)β = Nββ(βe; zβ)ββΒ·βsdββ(βe; zβ)β
Partial derivatives of element end reactive forces
Fβ²x1β(βe; zβ)β = 1lββ(βeβ)β β z22lβ²ββ(βe; zβ)β3 , Fβ²x2β(βe; zβ)β = z2βΒ·ββ(βlββ(βeβ)β + z1β)βlβ²ββ(βe; zβ)β3
Fβ²y1β(βe; zβ)β = Fβ²x2ββ(βe; zβ)β , Fβ²y2β(βe; zβ)β = 1lββ(βeβ)β β β(βlββ(βeβ)β + z1β)β2lβ²ββ(βe; zβ)β3
We are not going to linearize the above equations by Taylor series. We will use them further directly in their implicit form.
We will express the parameters of the system as a function of the vector of t he unknown displacements:
βZ = vectorβ(β2βΒ·βnJβ)ββΒ·βmm = vectorβ(β2βΒ·β3β)ββΒ·βmm = [0βmmβ0βmmβ0βmmβ0βmmβ0βmmβ0βmm]
Initial deflection at the intermediate joint - βZ4 = 100βmm
Extracting displacements for joint j - zJβ(βjβ)β = [βZ2βΒ·βj β 1; βZ2βΒ·βj]
Relative displacements for element e - zeβ(βeβ)β = tββ(βeβ)ββΒ·ββ(βzJββ(βJ2ββ(βeβ)ββ)β β zJββ(βJ1ββ(βeβ)ββ)ββ)β
Element reactive forces partial vector - Feβ(βeβ)β = tββ(βeβ)ββΒ·β[Fxββ(βe; zeββ(βeβ)ββ)β; Fyββ(βe; zeββ(βeβ)ββ)β]
Partial element Jacobi matrix
Jeβ(βeβ)β = tββ(βeβ)ββΒ·β[Fβ²x1ββ(βe; zeββ(βeβ)ββ)β; Fβ²x2ββ(βe; zeββ(βeβ)ββ)β | Fβ²y1ββ(βe; zeββ(βeβ)ββ)β; Fβ²y2ββ(βe; zeββ(βeβ)ββ)β]
Target precision - Ξ΅max = 10-5
Iteratively calculate the following equations of the Newton-Raphsonβs method:
βZ0 = βZ , βΞ΄Z = clsolveβ(βJββ(ββZβ)β; Fββ(ββZβ)ββ)β , βZ = βZ0 β βΞ΄Z , Ξ΅ = normeβ(ββΞ΄Zβ)βnormeβ(ββZβ)β < Ξ΅max
Convergence reached at iteration - n = 33 . Relative error - Ξ΅ = 7.27Γ10-6
Joint displacements - Zβ(βjβ)β = round(zJββ(βjβ)βΞ΄z)βΒ·βΞ΄z
Joint J2 - Z2 = Zββ(β2β)β = [-44.7βmmβ772.72βmm]
Reactions in supports
rβ(βiβ)β = rowβ(βcJ; iβ)β , jβ(βiβ)β = takeβ(β1; rββ(βiβ)ββ)β , Rβ(βiβ)β = -zJββ(βjββ(βiβ)ββ)ββΒ·βlastβ(βrββ(βiβ)β; 2β)β
Joint J1 - R1 = Rββ(β1β)β = [-179.81βkNβ-47.01βkN]
Joint J3 - R2 = Rββ(β2β)β = [179.81βkNβ-22.99βkN]
Element yield capacity - Ny = fyβΒ·βA = 500βMPaβΒ·β3.14βcm2 = 157.08βkN
Element ultimate capacity - Nu = fuβΒ·βA = 600βMPaβΒ·β3.14βcm2 = 188.5βkN
Element axial forces - Neβ(βeβ)β = Nββ(βe; zeββ(βeβ)ββ)β
Element Π1 - N1 = Neββ(β1β)β = 185.86βkN
Element Π2 - N2 = Neββ(β2β)β = 181.27βkN
Nonlinear Analysis of a Von-Mises Truss π¬¶
Shallow Von-Mises truss with circular pipe section, animated load-displacement curve passing through a limit point, solved by fixed-point iteration, Newton-Raphson, the secant method and the built-in Root solver.
'(solved by four different numerical methods)
'<h4>Input data</h4>
'Half span -'a = 2m', ''Height -'h = -0.5m
'Cross section - circular pipe with diameter'Ξ¦ = 100mm'and thickness't = 4mm
'Material - steel. Modulus of elasticity -'E = 210GPa
'Vertical force -'F_y = 2000kN
#include svg_drawing.cpd
#hide
v = 0mm
L = a/2cm
H = h/cm
H_lin = H
H_nl = H
k = L/10
W = 2*(L + 6*k)
Y = H
F_y,max = 2500kN
v_max = abs(2.26*h)
#def svg$ = '<svg viewbox="'-6*k' 'Y' 'W' 'abs(H)'" xmlns="http://www.w3.org/2000/svg" version="1.1" style="font-family: Georgia Pro; font-size:7px; width:'420'pt; height:'400*abs(H)/L'pt">
#def thin_style$ = style="stroke:darkcyan; stroke-width:1; fill:none;"
#def dash_style$ = style="stroke:#ddd; stroke-width:1; stroke-dasharray: 7 3; fill:none;"
#def ghost_style$ = style="stroke:#ddd; stroke-width:1; fill:white;"
#def lin_style$ = style="stroke:#ccc; stroke-width:2; fill:none;"
#def pin_style$ = style="stroke:red; stroke-width:1; fill:white;"
#def thick_style$ = style="stroke:darkcyan; stroke-width:3; fill:none;"
#def load_style$ = style="stroke:deepskyblue; stroke-width:1; fill:deepskyblue;"
#show
#def frame$
line$(0; 0; L; H; dash_style$)
line$(L; H; 2*L; 0; dash_style$)
line$(0; 0; L; H_lin; lin_style$)
line$(L; H_lin; 2*L; 0; lin_style$)
circle$(L; H_lin; 2.5; ghost_style$)
line$(0; 0; L; H_nl; main_style$)
line$(L; H_nl; 2*L; 0; main_style$)
#hide
x1 = 0
y1 = k/10
#show
#for i = 1 : 2
#hide
Ξ΄ = 0.8*k
x2 = x1 - Ξ΄
y2 = y1 - abs(Ξ΄)
x3 = x1 + Ξ΄
y3 = y1 + abs(Ξ΄)
#show
line$(x2; y3; x3; y3; thick_style$)
line$(x2; y3; x1; y1; thin_style$)
line$(x3; y3; x1; y1; thin_style$)
#hide
x1 = x1 + 2*L
#show
#loop
'<polygon points="'L','H_nl - 4*Ξ΄' 'L','H_nl - 0.32*Ξ΄' 'L - 0.32*Ξ΄','H_nl - 1.4*Ξ΄' 'L + 0.32*Ξ΄','H_nl - 1.4*Ξ΄' 'L','H_nl - 0.32*Ξ΄'" load_style$ />
texth$(L+20;H_nl-3.2*Ξ΄;Fy='F_y'kN)
dimh$(0; L; (1-2*sign(H_nl))*k; 'a'm)
dimh$(L; 2*L; (1-2*sign(H_nl))*k; 'a'm)
#if H_nl < 0
dimv$(L - k; H_nl; 0; 'h + v'm)
#else
dimv$(L - k; 0; H_nl; 'h + v'm)
#end if
circle$(0; 0; 2.5; pin_style$)
circle$(L; H_nl; 2.5; pin_style$)
circle$(2*L; 0; 2.5; pin_style$)
#end def
#val
svg$
frame$
'</svg>
#equ
'<h4>Linear Solution</h4>
'Strut length -'l = srss(a; h)
'Area -'A = Ο*(Ξ¦^2 - (Ξ¦ - 2*t)^2)/4|cm^2
'Axial stiffness -'EA = E*A
'Axial forces in bars -'N(F) = F*l/(2*h)', 'N(F_y)
'Vertical displacement -'v_l(F) = -sqrt((l + (N(F)*l)/EA)^2 - a^2) - h|mm
v_l(F_y)
'<h4>Nonlinear Solution</h4>
'The vertical displacement is the only unknown - <var>v</var> = ?
'We will use 3-rd order geometric nonlinearity theory for the solution. The equilibrium equations are then derived for the deformed state of the structure, as follows:
'Length and elongation in deformed state
lβ²(v) = sqrt(a^2 + (h + v)^2)','Ξl(v) = lβ²(v) - l
'Horizontal reaction -'F_x(v) = EA*(Ξl(v)/l)*(a/lβ²(v))
'Vertical reaction -'F_y(v) = EA*(Ξl(v)/l)*((h + v)/lβ²(v))
'Vertical reaction derivative -'Fβ²_yv(v) = EA*(1/l - a^2/lβ²(v)^3)
'<h4>1. Fixed point iteration method</h4>
'Relative strain -'Ξ΅ = F_y/(2*EA)
'Relative precision -'Ξ΄_max = 10^-5
'Initial value -'v_0 = 1mm
'We express the unknown vertical displacement at the middle joint as a function of the vertical force:
v = sqrt(1/(1/l - Ξ΅/(h + v_0))^2 - a^2) - h|mm
#hide
n = 0
#repeat 100
n = n + 1
v_0 = v
v = sqrt(1/(1/l - Ξ΅/(h + v_0))^2 - a^2) - h|mm
Ξ΄ = abs(v - v_0)
#if Ξ΄ < Ξ΄_max*abs(v)
#break
#end if
#loop
#show
'After calculating the above expression iteratively'n'times, we get:
v
'Relative error -'Ξ΄ = abs(v - v_0)/abs(v)
'<h4>2. Newton-Raphsonβ²s method</h4>
'Initial value -'v_0 = 0mm
'We repeatedly calculate the following expression:
v = v_0 - (2*F_y(v_0) - F_y)/Fβ²_yv(v_0)
#hide
n = 0
#repeat 100
n = n + 1
v_0 = v
v = v_0 - (2*F_y(v_0) - F_y)/(2*Fβ²_yv(v_0))
Ξ΄ = abs(v - v_0)
#if Ξ΄ < Ξ΄_max*abs(v)
#break
#end if
#loop
#show
'After'n'iterations we get:'v
'Relative error -'Ξ΄ = abs(v - v_0)/abs(v)
'<h4>3. Secant method</h4>
'Slope reduction factor -'Ξ± = 1
'Initial value -'v_0 = 0mm
'Force value -'F_y0 = 2*F_y(v_0)
'We calculate the first approximation using Newton-Raphsonβ²s method
v_1 = v_0 - Ξ±*((F_y0 - F_y)/(2*Fβ²_yv(v_0)))
'Force value -'F_y1 = 2*F_y(v_1)
'The next approximation is evaluated by the formula:
v_2 = v_1 - Ξ±*(F_y1 - F_y)*((v_1 - v_0)/(F_y1 - F_y0))
'We continue the calculations iteratively until we reach convergence.
#hide
n = 0
#repeat 100
n = n + 1
v_0 = v_1
v_1 = v_2
F_y0 = 2*F_y(v_0)
F_y1 = 2*F_y(v_1)
v_2 = v_1 - Ξ±*(F_y1 - F_y)*((v_1 - v_0)/(F_y1 - F_y0))
Ξ΄ = abs(v_2 - v_1)
#if Ξ΄ < Ξ΄_max*abs(v_2)
#break
#end if
#loop
#show
'After'n'iterations we get:'v_2
'Relative error -'Ξ΄ = abs(v_2 - v_1)/abs(v_2)
'<h4>4. Solution with Calcpad <small>(modified Anderson-Bjorkβ²s method)</small></h4>
v = $Root{2*F_y(v) = F_y @ v = 0mm : 200m}
'System behavior graph (force-displacement)
'<!--'PlotWidth = 400','PlotHeight = 180','ReturnAngleUnits = 1'-->
#def plot$
#hide
v_2 = v
Fβ² = 2*Fβ²_yv(v)
dv = min(2000kN/Fβ²; v_max/6)
v_1(v) = min(max(0mm; v_2 + (1 - 2*v/v_max)*dv); v_max)
F_1(v) = F_y + Fβ²*(v_1(v) - v_2)
#show
$Plot{F_y & 2*F_y(v) & v_1(v)|F_1(v) & v_l(F_y)|F_y & v_2|F_y @ v = 0mm : v_max}
#end def
plot$
'<h4>Results</h4>
'Axial forces in bars -'N = Ξl(v)/l*EA
'Rotation angle -'Ξ± = atan2(l; v)
'Reactions in supports
'Horizontal -'R_x = F_x(v)'='N*cos(Ξ±)
'Vertical -'R_y = F_y(v)'='N*sin(Ξ±)
#hide
L = a/2cm
k = L/10
Ξ΄ = 0.7*k
#show
#val
#def results$
#hide
N = round(Ξl(v)/l*EA)
Ξ± = atan2(l; v)
R_x = F_x(v)'='N*cos(Ξ±)
R_y = F_y(v)'='N*sin(Ξ±)
H_lin = (h + v_l(F_y))/cm
H_nl = (h + v)/cm
Y = H + 2*k
#show
svg$
'<polygon points="'0','0' '0','-4*Ξ΄' '-0.32*Ξ΄','-2.8*Ξ΄' '0.32*Ξ΄','-2.8*Ξ΄' '0','-4*Ξ΄'" load_style$/>
'<polygon points="'2*L','0' '2*L','-4*Ξ΄' '2*L - 0.32*Ξ΄','-2.8*Ξ΄' '2*L + 0.32*Ξ΄','-2.8*Ξ΄' '2*L','-4*Ξ΄'" load_style$/>
'<polygon points="'-0.32*Ξ΄','0' '-4*Ξ΄','0' '-2.8*Ξ΄','-0.32*Ξ΄' '-2.8*Ξ΄','0.32*Ξ΄' '-4*Ξ΄','0'" load_style$/>
'<polygon points="'2*L + 0.32*Ξ΄','0' '2*L + 4*Ξ΄','0' '2*L + 2.8*Ξ΄','-0.32*Ξ΄' '2*L + 2.8*Ξ΄','0.32*Ξ΄' '2*L + 4*Ξ΄','0'" load_style$/>
texth$(-4*Ξ΄;-Ξ΄;Rx='round(R_x)'kN)
texth$(2*L+4*Ξ΄;-Ξ΄;Rx='round(R_x)'kN)
texth$(3.2*Ξ΄;-3.2*Ξ΄;Ry='round(R_y)'kN)
texth$(2*L-3.2*Ξ΄;-3.2*Ξ΄;Ry='round(R_y)'kN)
texth$(L/2;0;N='N'kN)
texth$(3*L/2;0;N='N'kN)
frame$
'</svg>
#end def
results$
#hide
n = 51
#show
'<style>.fr{display:none;}</style>
#for j = 1 : n
#hide
F_y = F_y,max*(j - 1)/(n - 1)
v = $Root{2*F_y(v) = F_y @ v = 0mm : 200m}
#show
'<div class="fr" id="fr-'j'">
plot$
results$
'</div>
#loop
'<script>(function(){$("#fr-1").show();var i=1;var fr=$("#fr-1");setInterval(function(){fr.hide();if(++i>'n')i=1;fr=$("#fr-"+i);fr.show();}, 100);})();</script>
#equ
(solved by four different numerical methods)
Half span - a = 2βm , 'Height - h = -0.5βm
Cross section - circular pipe with diameter Ξ¦ = 100βmm and thickness t = 4βmm
Material - steel. Modulus of elasticity - E = 210βGPa
Vertical force - Fy = 2000βkN
Strut length - l = srssβ(βa; hβ)β = srssβ(β2βm; -0.5βmβ)β = 2.06βm
Area - A = ΟβΒ·ββ(βΞ¦2 β β(βΞ¦ β 2βΒ·βtβ)β2β)β4 = 3.14βΒ·ββ(ββ(β100βmmβ)β2 β β(β100βmm β 2βΒ·β4βmmβ)β2β)β4 = 12.06βcm2
Axial stiffness - EA = EβΒ·βA = 210βGPaβΒ·β12.06βcm2 = 253338βkN
Axial forces in bars - Nβ(βFβ)β = FβΒ·βl2βΒ·βh , Nββ(βFyβ)β = Nββ(β2000βkNβ)β = -4123.11βkN
Vertical displacement - vlβ(βFβ)β = - (l + Nββ(βFβ)ββΒ·βlEA)2 β a2 β h
vlββ(βFyβ)β = vlββ(β2000βkNβ)β = 164.16βmm
The vertical displacement is the only unknown - v = ?
We will use 3-rd order geometric nonlinearity theory for the solution. The equilibrium equations are then derived for the deformed state of the structure, as follows:
Length and elongation in deformed state
lβ²β(βvβ)β =   β a2 + β(βh + vβ)β2 , Ξlβ(βvβ)β = lβ²ββ(βvβ)β β l
Horizontal reaction - Fxβ(βvβ)β = EAβΒ·βΞlββ(βvβ)βlβΒ·βalβ²ββ(βvβ)β
Vertical reaction - Fyβ(βvβ)β = EAβΒ·βΞlββ(βvβ)βlβΒ·βh + vlβ²ββ(βvβ)β
Vertical reaction derivative - Fβ²yvβ(βvβ)β = EAβΒ·β(1l β a2lβ²ββ(βvβ)β3)
Relative strain - Ξ΅ = Fy2βΒ·βEA = 2000βkN2βΒ·β253338βkN = 0.00395
Relative precision - Ξ΄max = 10-5
Initial value - v0 = 1βmm
We express the unknown vertical displacement at the middle joint as a function of the vertical force:
v = 1(1l β Ξ΅h + v0)2 β a2 β h = 1(12.06βm β 0.00395-0.5βm + 1βmm)2 β β(β2βmβ)β2 β β(β-0.5βmβ)β = 838.68βmm
After calculating the above expression iteratively n = 7 times, we get:
v = 1105.47βmm
Relative error - Ξ΄ = | v β v0 || v | = | 1105.47βmm β 1105.46βmm || 1105.47βmm | = 7.98Γ10-6
Initial value - v0 = 0βmm
We repeatedly calculate the following expression:
v = v0 β 2βΒ·βFyββ(βv0β)β β FyFβ²yvββ(βv0β)β = 0βmm β 2βΒ·βFyββ(β0βmmβ)β β 2000βkNFβ²yvββ(β0βmmβ)β = 276.68βmm
After n = 37 iterations we get: v = 1105.46βmm
Relative error - Ξ΄ = | v β v0 || v | = | 1105.46βmm β 1105.46βmm || 1105.46βmm | = 9.67Γ10-10
Slope reduction factor - Ξ± = 1
Initial value - v0 = 0βmm
Force value - Fy0 = 2βΒ·βFyββ(βv0β)β = 2βΒ·βFyββ(β0βmmβ)β = 0βkN
We calculate the first approximation using Newton-Raphsonβ²s method
v1 = v0 β Ξ±βΒ·βFy0 β Fy2βΒ·βFβ²yvββ(βv0β)β = 0βmm β 1βΒ·β0βkN β 2000βkN2βΒ·βFβ²yvββ(β0βmmβ)β = 138.34βmm
Force value - Fy1 = 2βΒ·βFyββ(βv1β)β = 2βΒ·βFyββ(β138.34βmmβ)β = 1273.37βkN
The next approximation is evaluated by the formula:
v2 = v1 β Ξ±βΒ·ββ(βFy1 β Fyβ)ββΒ·βv1 β v0Fy1 β Fy0 = 138.34βmm β 1βΒ·ββ(β1273.37βkN β 2000βkNβ)ββΒ·β138.34βmm β 0βmm1273.37βkN β 0βkN = 217.28βmm
We continue the calculations iteratively until we reach convergence.
After n = 37 iterations we get: v2 = 1105.46βmm
Relative error - Ξ΄ = | v2 β v1 || v2 | = | 1105.46βmm β 1105.46βmm || 1105.46βmm | = 2.28Γ10-7
v = $Root{2βΒ·βFyββ(βvβ)β = Fy; v β [0βmm; 200βm]} = 1105.46βmm
System behavior graph (force-displacement)
Axial forces in bars - N = Ξlββ(βvβ)βlβΒ·βEA = Ξlββ(β1105.46βmmβ)β2.06βmβΒ·β253338βkN = 3451.3βkN
Rotation angle - Ξ± = atan2β(βl; vβ)β = atan2β(β2.06βm; 1105.46βmmβ)β = 28.2Β°
Reactions in supports
Horizontal - Rx = Fxββ(βvβ)β = Fxββ(β1105.46βmmβ)β = 3303.25βkN = NβΒ·βcosβ(βΞ±β)β = 3451.3βkNβΒ·βcosβ(β28.2Β°β)β = 3041.6βkN
Vertical - Ry = Fyββ(βvβ)β = Fyββ(β1105.46βmmβ)β = 1000βkN = NβΒ·βsinβ(βΞ±β)β = 3451.3βkNβΒ·βsinβ(β28.2Β°β)β = 1630.99βkN
Third Order Geometric Nonlinearity Analysis of a Double-Strut Biot System¶
Symmetric two-bar Biot truss in third-order geometric nonlinearity: the deformed length \(l'(v) = \sqrt{l^2 + v^2}\) enters the equilibrium directly and the vertical displacement is found by four different numerical methods.
'(solved by four different numerical methods)
'<h4>Input data</h4>
'Strut length -'l = 2m
'Material - steel. Modulus of elasticity -'E = 210GPa
'Cross section - circular with diameter'Ξ¦ = 20mm
'Area -'A = Ο*Ξ¦^2/4|cm^2
'Axial stiffness -'EA = E*A
'Vertical force -'F_y = 20kN
#include svg_drawing.cpd
#hide
L = l/2cm
H = 0
k = L/10
#def svg$ = '<svg viewbox="'-5*k' '-5*k' '2*(L+5*k)' '10*k + H'" xmlns="http://www.w3.org/2000/svg" version="1.1" style="font-family: Georgia Pro; font-size:8px; width:'450'pt; height:'150'pt">
#def thin_style$ = style="stroke:darkcyan; stroke-width:1; fill:none"
#def pin_style$ = style="stroke:red; stroke-width:1; fill:white"
#def thick_style$ = style="stroke:darkcyan; stroke-width:3; fill:none"
#def load_style$ = style="stroke:deepskyblue; stroke-width:1; fill:deepskyblue;"
#show
#def frame$
line$(0; 0; L; H; main_style$)
line$(L; H; 2*L; 0; main_style$)
#hide
x1 = 0
y1 = k/10
#show
#for i = 1 : 2
#hide
Ξ΄ = 0.8*k
x2 = x1 - Ξ΄
y2 = y1 - abs(Ξ΄)
x3 = x1 + Ξ΄
y3 = y1 + abs(Ξ΄)
#show
line$(x2; y3; x3; y3; thick_style$)
line$(x2; y3; x1; y1; thin_style$)
line$(x3; y3; x1; y1; thin_style$)
#hide
x1 = x1 + 2*L
#show
#loop
'<polygon points="'L','H - 4*Ξ΄' 'L','H - 0.32*Ξ΄' 'L - 0.32*Ξ΄','H - 1.4*Ξ΄' 'L + 0.32*Ξ΄','H - 1.4*Ξ΄' 'L','H - 0.32*Ξ΄'" load_style$ />
texth$(L+20;H-3.2*Ξ΄;Fy='F_y'kN)
dimh$(0; L; H+2*k; 'l'm)
dimh$(L; 2*L; H+2*k; 'l'm)
circle$(0; 0; 2.5; pin_style$)
circle$(L; H; 2.5; pin_style$)
circle$(2*L; 0; 2.5; pin_style$)
#end def
#val
svg$
frame$
'</svg>
#equ
'<h4>Solution</h4>
'Because of the symmetry, the horizontal displacement in the middle is'u = 0m'.
'The vertical displacement is the only unknown - <var>v</var> = ?
'Since the system is linearly unstable, we use 3-rd order geometric nonlinearity theory for the solution. The equilibrium equations are then derived for the deformed state of the structure, as follows:
'Length and elongation in deformed state
lβ²(v) = sqrt((l + u)^2 + v^2)','Ξl(v) = lβ²(v) - l
'Horizontal reaction -'F_x(v) = EA*(Ξl(v)/l)*((l + u)/lβ²(v))
'Vertical reaction -'F_y(v) = EA*(Ξl(v)/l)*(v/lβ²(v))
'Vertical reaction derivative -'Fβ²_yv(v) = EA*(1/l - (l + u)^2/lβ²(v)^3)
'<h4>1. Fixed point iteration method</h4>
'Relative strain -'Ξ΅ = F_y/(2*EA)
'Relative precision -'Ξ΄_max = 10^-4
'Initial value -'v_0 = 200mm
'We express the unknown vertical displacement at the middle joint as a function of the vertical force:
v = sqrt(1/(1/l - Ξ΅/v_0)^2 - (l + u)^2)|mm
#hide
n = 0
#repeat 100
n = n + 1
v_0 = v
v = sqrt(1/(1/l - Ξ΅/v_0)^2 - (l + u)^2)|mm
Ξ΄ = abs(v - v_0)
#if Ξ΄ < Ξ΄_max*abs(v)
#break
#end if
#loop
#show
'After calculating the above expression iteratively'n'times, we get:
v
'Relative error -'Ξ΄ = abs(v - v_0)/abs(v)
'<h4>2. Newton-Raphsonβ²s method</h4>
'Initial value -'v_0 = 200mm
'We repeatedly calculate the following expression:
v = v_0 - (2*F_y(v_0) - F_y)/Fβ²_yv(v_0)
#hide
n = 0
#repeat 100
n = n + 1
v_0 = v
v = v_0 - (2*F_y(v_0) - F_y)/(2*Fβ²_yv(v_0))
Ξ΄ = abs(v - v_0)
#if Ξ΄ < Ξ΄_max*abs(v)
#break
#end if
#loop
#show
'After'n'iterations we get:'v
'Relative error -'Ξ΄ = abs(v - v_0)/abs(v)
'<h4>3. Secant method</h4>
'Slope reduction factor -'Ξ± = 1
'Initial value -'v_0 = 200mm
'Force value -'F_y0 = 2*F_y(v_0)
'We calculate the first approximation using Newton-Raphsonβ²s method
v_1 = v_0 - Ξ±*((F_y0 - F_y)/(2*Fβ²_yv(v_0)))
'Force value -'F_y1 = 2*F_y(v_1)
'The next approximation is evaluated by the formula:
v_2 = v_1 - Ξ±*(F_y1 - F_y)*((v_1 - v_0)/(F_y1 - F_y0))
'We continue the calculations iteratively until we reach convergence.
#hide
n = 0
#repeat 100
n = n + 1
v_0 = v_1
v_1 = v_2
F_y0 = 2*F_y(v_0)
F_y1 = 2*F_y(v_1)
v_2 = v_1 - Ξ±*(F_y1 - F_y)*((v_1 - v_0)/(F_y1 - F_y0))
Ξ΄ = abs(v_2 - v_1)
#if Ξ΄ < Ξ΄_max*abs(v_2)
#break
#end if
#loop
#show
'After'n'iterations we get:'v_2
'Relative error -'Ξ΄ = abs(v_2 - v_1)/abs(v_2)
'<h4>4. Solution with Calcpad <small>(modified Anderson-Bjorkβ²s method)</small></h4>
v = $Root{2*F_y(v) = F_y @ v = 0mm : 200m}
'System behavior graph (force-displacement)
'<!--'v_2 = v','PlotWidth = 250','PlotHeight = 150'-->
$Plot{F_y & 2*F_y(v) & v_2|F_y @ v = 0mm : 200mm}
'<h4>Results</h4>
'Axial forces in bars -'N = Ξl(v)/l*EA
'Rotation angle -'Ξ± = atan2(l; v)'Β°
'Reactions in supports
'Horizontal -'R_x = F_x(v)'='N*cos(Ξ±)
'Vertical -'R_y = F_y(v)'='N*sin(Ξ±)
#hide
H = v/cm
Ξ΄ = 0.8*k
#show
#val
svg$
'<polygon points="'0','0' '0','-4*Ξ΄' '-0.32*Ξ΄','-2.8*Ξ΄' '0.32*Ξ΄','-2.8*Ξ΄' '0','-4*Ξ΄'" load_style$/>
'<polygon points="'2*L','0' '2*L','-4*Ξ΄' '2*L - 0.32*Ξ΄','-2.8*Ξ΄' '2*L + 0.32*Ξ΄','-2.8*Ξ΄' '2*L','-4*Ξ΄'" load_style$/>
'<polygon points="'-0.32*Ξ΄','0' '-4*Ξ΄','0' '-2.8*Ξ΄','-0.32*Ξ΄' '-2.8*Ξ΄','0.32*Ξ΄' '-4*Ξ΄','0'" load_style$/>
'<polygon points="'2*L + 0.32*Ξ΄','0' '2*L + 4*Ξ΄','0' '2*L + 2.8*Ξ΄','-0.32*Ξ΄' '2*L + 2.8*Ξ΄','0.32*Ξ΄' '2*L + 4*Ξ΄','0'" load_style$/>
texth$(-4*Ξ΄;-Ξ΄;Rx='R_x'kN)
texth$(2*L+4*Ξ΄;-Ξ΄;Rx='R_x'kN)
texth$(3*Ξ΄;-3.2*Ξ΄;Ry='R_y'kN)
texth$(2*L-3*Ξ΄;-3.2*Ξ΄;Ry='R_y'kN)
texth$(L/2;0;N='N'kN)
texth$(3*L/2;0;N='N'kN)
frame$
'</svg>
#equ
Because of the symmetry, the horizontal displacement in the middle is u = 0βm .
The vertical displacement is the only unknown - v = ?
Since the system is linearly unstable, we use 3-rd order geometric nonlinearity theory for the solution. The equilibrium equations are then derived for the deformed state of the structure, as follows:
Length and elongation in deformed state
lβ²β(βvβ)β =   β β(βl + uβ)β2 + v2 , Ξlβ(βvβ)β = lβ²ββ(βvβ)β β l
Horizontal reaction - Fxβ(βvβ)β = EAβΒ·βΞlββ(βvβ)βlβΒ·βl + ulβ²ββ(βvβ)β
Vertical reaction - Fyβ(βvβ)β = EAβΒ·βΞlββ(βvβ)βlβΒ·βvlβ²ββ(βvβ)β
Vertical reaction derivative - Fβ²yvβ(βvβ)β = EAβΒ·β(1l β β(βl + uβ)β2lβ²ββ(βvβ)β3)
Relative strain - Ξ΅ = Fy2βΒ·βEA = 20βkN2βΒ·β65973.4βkN = 0.000152
Relative precision - Ξ΄max = 10-4 = 0.0001
Initial value - v0 = 200βmm
We express the unknown vertical displacement at the middle joint as a function of the vertical force:
v = 1(1l β Ξ΅v0)2 β β(βl + uβ)β2 = 1(12βm β 0.000152200βmm)2 β β(β2βm + 0βmβ)β2 = 110.24βmm
After calculating the above expression iteratively n = 13 times, we get:
v = 134.51βmm
Relative error - Ξ΄ = | v β v0 || v | = | 134.51βmm β 134.5βmm || 134.51βmm | = 7.6Γ10-5
Initial value - v0 = 200βmm
We repeatedly calculate the following expression:
v = v0 β 2βΒ·βFyββ(βv0β)β β FyFβ²yvββ(βv0β)β = 200βmm β 2βΒ·βFyββ(β200βmmβ)β β 20βkNFβ²yvββ(β200βmmβ)β = 106.93βmm
After n = 4 iterations we get: v = 134.51βmm
Relative error - Ξ΄ = | v β v0 || v | = 9Γ10-6
Slope reduction factor - Ξ± = 1
Initial value - v0 = 200βmm
Force value - Fy0 = 2βΒ·βFyββ(βv0β)β = 2βΒ·βFyββ(β200βmmβ)β = 65.48βkN
We calculate the first approximation using Newton-Raphsonβ²s method
v1 = v0 β Ξ±βΒ·βFy0 β Fy2βΒ·βFβ²yvββ(βv0β)β = 200βmm β 1βΒ·β65.48βkN β 20βkN2βΒ·βFβ²yvββ(β200βmmβ)β = 153.46βmm
Force value - Fy1 = 2βΒ·βFyββ(βv1β)β = 2βΒ·βFyββ(β153.46βmmβ)β = 29.67βkN
The next approximation is evaluated by the formula:
v2 = v1 β Ξ±βΒ·ββ(βFy1 β Fyβ)ββΒ·βv1 β v0Fy1 β Fy0 = 153.46βmm β 1βΒ·ββ(β29.67βkN β 20βkNβ)ββΒ·β153.46βmm β 200βmm29.67βkN β 65.48βkN = 140.89βmm
We continue the calculations iteratively until we reach convergence.
After n = 4 iterations we get: v2 = 134.51βmm
Relative error - Ξ΄ = | v2 β v1 || v2 | = | 134.51βmm β 134.51βmm || 134.51βmm | = 1.57Γ10-6
v = $Root{2βΒ·βFyββ(βvβ)β = Fy; v β [0βmm; 200βm]} = 134.51βmm
System behavior graph (force-displacement)
Axial forces in bars - N = Ξlββ(βvβ)βlβΒ·βEA = Ξlββ(β134.51βmmβ)β2βmβΒ·β65973.4βkN = 149.03βkN
Rotation angle - Ξ± = atan2β(βl; vβ)β = atan2β(β2βm; 134.51βmmβ)β = 3.85 Β°
Reactions in supports
Horizontal - Rx = Fxββ(βvβ)β = Fxββ(β134.51βmmβ)β = 148.69βkN = NβΒ·βcosβ(βΞ±β)β = 149.03βkNβΒ·βcosβ(β3.85β)β = 148.69βkN
Vertical - Ry = Fyββ(βvβ)β = Fyββ(β134.51βmmβ)β = 10βkN = NβΒ·βsinβ(βΞ±β)β = 149.03βkNβΒ·βsinβ(β3.85β)β = 10βkN
Spotted an error? Edit these examples.