import matplotlib
if not hasattr(matplotlib.RcParams, "_get"):
matplotlib.RcParams._get = dict.get
2 april: TOZ differentiaalvergelijkingen met SymPy#
Gegeven is de volgende constructie:
Fig. 227 #
Bekijk je eigen indiening in WebLab.
Opgave
Welke voorwaarden gelden op \(x=0\)?
Voor … kan je elke waarde ongelijk aan \(0\) invullen die je van tevoren kan bepalen enkel op basis van het model op \(x=0\).
Well done!
Try again! You selected at least one incorrect option.
Try again! You missed at least one correct option.
Opgave
Welke voorwaarden gelden op \(x=4\)?
Voor … kan je elke waarde ongelijk aan \(0\) invullen die je van tevoren kan bepalen enkel op basis van het model op \(x=4\).
Well done!
Try again! You selected at least one incorrect option.
Try again! You missed at least one correct option.
Opgave
Welke voorwaarden gelden op \(x=9\)?
Voor … kan je elke waarde ongelijk aan \(0\) invullen die je van tevoren kan bepalen enkel op basis van het model op \(x=9\).
Well done!
Try again! You selected at least one incorrect option.
Try again! You missed at least one correct option.
Opgave
Welke voorwaarden gelden op \(x=15\)?
Voor … kan je elke waarde ongelijk aan \(0\) invullen die je van tevoren kan bepalen enkel op basis van het model op \(x=15\).
Well done!
Try again! You selected at least one incorrect option.
Try again! You missed at least one correct option.
Opgave
Bepaal de functie van de doorzakking van de constructie (w1_oplossing, w2_oplossing, w3_oplossing) in \(\rm{m}\). Vind daarnaast de maximale opbolling (de grootste verplaatsing omhoog in negatieve \(z\)-richting, opgeslagen als max_opbolling) en waar deze optreedt (max_opbolling_x) in \(\rm{m}\) volgens het gegeven assenstelsel (dus een negatieve waarde voor max_opbolling).
Uitwerking
import sympy as sym
sym.var('x')
sym.var('C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12');
q1 = 0 # 0 < x < 4, kN/m
q2 = 15 # 4 < x < 9, kN/m
q3 = 15 # 9 < x < 15, kN/m
V1 = sym.integrate(-q1,x)+C1 # kN
M1 = sym.integrate(V1,x)+C2 # kNm
kappa1 = M1 / 64000 # 1/m
phi1 = sym.integrate(kappa1,x)+C3 # rad
w1 = sym.integrate(-phi1,x)+C4 # m
V2 = sym.integrate(-q2,x)+C5 # kN
M2 = sym.integrate(V2,x)+C6 # kNm
kappa2 = M2 / 64000 # 1/m
phi2 = sym.integrate(kappa2,x)+C7 # rad
w2 = sym.integrate(-phi2,x)+C8 # m
V3 = sym.integrate(-q3,x)+C9 # kN
M3 = sym.integrate(V3,x)+C10 # kNm
kappa3 = M3 / 64000 # 1/m
phi3 = sym.integrate(kappa3,x)+C11 # rad
w3 = sym.integrate(-phi3,x)+C12 # m
Eq1 = sym.Eq( w1.subs(x, 0), 0)
Eq2 = sym.Eq( M1.subs(x, 0), 0)
Eq3 = sym.Eq( w1.subs(x, 4), w2.subs(x,4))
Eq4 = sym.Eq( M1.subs(x, 4), 0)
Eq5 = sym.Eq( M2.subs(x, 4), 0)
Eq6 = sym.Eq( -V1.subs(x, 4)+ 20 + V2.subs(x, 4), 0)
Eq7 = sym.Eq( w2.subs(x, 9), 0)
Eq8 = sym.Eq( w3.subs(x, 9), 0)
Eq9 = sym.Eq( M2.subs(x, 9), M3.subs(x, 9))
Eq10 = sym.Eq(phi2.subs(x, 9), phi3.subs(x, 9))
Eq11 = sym.Eq( w3.subs(x, 15), 0)
Eq12 = sym.Eq( M3.subs(x, 15), 0)
sol = sym.solve((Eq1, Eq2, Eq3, Eq4, Eq5, Eq6, Eq7, Eq8, Eq9, Eq10, Eq11, Eq12), (C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12))
display(sol)
w1_oplossing = w1.subs(sol) # m
w2_oplossing = w2.subs(sol) # m
w3_oplossing = w3.subs(sol) # m
phi1_oplossing = phi1.subs(sol)
phi2_oplossing = phi2.subs(sol)
phi3_oplossing = phi3.subs(sol)
plot([w1_oplossing, w2_oplossing, w3_oplossing], [(0, 4), (4, 9), (9, 15)], 'w(x)')
plot([phi1_oplossing, phi2_oplossing, phi3_oplossing], [(0, 4), (4, 9), (9, 15)], 'phi(x)')
plot([phi3_oplossing], [(0, 25)], 'phi(x)')
eq13 = sym.Eq(phi3_oplossing, 0)
sol2 = sym.solve(eq13, x)
display(sol2)
display(sol2[0].evalf())
display(sol2[1].evalf())
display(sol2[2].evalf())
max_opbolling_x= sol2[2] # m
max_opbolling = w3_oplossing.subs(x, max_opbolling_x) # m
display(max_opbolling)
display(max_opbolling.evalf())