Gelöste Aufgaben/UEBI: Unterschied zwischen den Versionen
Keine Bearbeitungszusammenfassung |
Keine Bearbeitungszusammenfassung |
||
Zeile 24: | Zeile 24: | ||
Um zur analytischen Lösung zukommen, müssen wir berücksichtigen, dass | Um zur analytischen Lösung zukommen, müssen wir berücksichtigen, dass | ||
<math>E\,I(x) \cdot \displaystyle \frac{d^2}{dx^2}w(x) = -M(x)</math>. | ::<math>E\,I(x) \cdot \displaystyle \frac{d^2}{dx^2}w(x) = -M(x)</math>. | ||
Wir müssen also hier die Abhängigkeit der Querschnittseigenschaften von "''x''" in der Differentialbeziehung berücksichtigen. Das macht die Sache deutlich komplizierter als vorher. | Wir müssen also hier die Abhängigkeit der Querschnittseigenschaften von "''x''" in der Differentialbeziehung berücksichtigen. Das macht die Sache deutlich komplizierter als vorher. | ||
== | <!--------------------------------------------------------------------------------> | ||
{{MyCodeBlock|title=Header | |||
|text= | |||
Wir haben die Differential-Beziehungen | Wir haben die Differential-Beziehungen | ||
<math>\begin{array}{rcl} | ::<math>\begin{array}{rcl} | ||
Q' &=&-q\\ | Q' &=&-q\\ | ||
M' &=&+Q\\ | M' &=&+Q\\ | ||
Zeile 41: | Zeile 42: | ||
für die Querkraft ''Q'', das Moment ''M'', die Verkippung der Querschnitte ''ϕ'' und die Auslenkung ''w''. Dabei ist die ortsabhängige Streckenlast | für die Querkraft ''Q'', das Moment ''M'', die Verkippung der Querschnitte ''ϕ'' und die Auslenkung ''w''. Dabei ist die ortsabhängige Streckenlast | ||
<math>q(x) = A(x)\, \rho \, g \text{ mit } A(x) = b \cdot h(x).</math> | ::<math>q(x) = A(x)\, \rho \, g \text{ mit } A(x) = b \cdot h(x).</math> | ||
Die Höhe des Balkens ist linear veränderlich, nämlich | Die Höhe des Balkens ist linear veränderlich, nämlich | ||
<math>h(x) = h_0\, (1-\xi) + h_1 \, \xi \text{ mit } \xi = \displaystyle \frac{x}{\ell}</math>. | ::<math>h(x) = h_0\, (1-\xi) + h_1 \, \xi \text{ mit } \xi = \displaystyle \frac{x}{\ell}</math>. | ||
|code= | |code= | ||
<syntaxhighlight lang="lisp" line start=1> | <syntaxhighlight lang="lisp" line start=1> | ||
1 | /*******************************************************/ | ||
/* MAXIMA script */ | |||
/* version: wxMaxima 18.10.1 */ | |||
/* author: Andreas Baumgart */ | |||
/* last updated: 2019-09-30 */ | |||
/* ref: TM-C, Balken mit linear-veränderlicher Höhe */ | |||
/* description: finds the analytic solution for */ | |||
/* problem */ | |||
/*******************************************************/ | |||
/* declare variational variables - see 6.3 Identifiers */ | |||
declare( "ℓ", alphabetic); | |||
declare( "ϕ", alphabetic); | |||
</syntaxhighlight> | </syntaxhighlight> | ||
}} | }} | ||
<!--------------------------------------------------------------------------------> | |||
{{MyCodeBlock|title=Declarations | |||
|text= | |||
Diese Abkürzungen führen wir ein: | Diese Abkürzungen führen wir ein: | ||
<math>\displaystyle m = \rho\,\frac{h_0+h_1}{2}\,b \, \ell \, g</math>, | ::<math>\displaystyle m = \rho\,\frac{h_0+h_1}{2}\,b \, \ell \, g</math>, | ||
::<math>h_1 = \alpha \, h_0</math>. | |||
<math> | Für die Ergebnisse setzten wir dann exemplarisch | ||
::<math>\displaystyle \alpha = \frac{1}{2}</math> | |||
an - sonst werden die Ausdrücke zu umfangreich. | |||
|code= | |||
<syntaxhighlight lang="lisp" line start=1> | |||
/* make equations of motion dim'less with load case #6 */ | |||
reference : [Phi[ref] = W[ref]/ℓ, W[ref] = q[ref]*ℓ^4/(8*E I[ref]), | |||
M[ref] = m*g*ℓ, Q[ref] = m*g, | |||
q[ref] = m*g/ℓ, EI[ref]=E*b*((H[0]+H[1])/2)^3/12]; | |||
/* system parameters */ | |||
params: [q[0] = A(xi)*rho*g, | |||
A(xi) = b*h(xi), | |||
I(xi) = b*h(xi)^3/12, | |||
h(xi) = H[0]*(1-xi)+ H[1]*xi]; | |||
params: append(params, | |||
solve((H[0]+H[1])/2*b*ℓ*rho=m, rho)); | |||
geometry : [alpha=1/2]; | |||
dimless: [x = xi*ℓ, H[0]=b, H[1]=alpha*b]; | |||
sections: [%c4=C[0], %c3=C[1], %c2=C[2], %c1=C[3]]; | |||
</syntaxhighlight> | </syntaxhighlight> | ||
}} | }} | ||
== | <!--------------------------------------------------------------------------------> | ||
{{MyCodeBlock|title=Dimensionless Form of Differential Equations | |||
|text= | |||
Beim Aufintegrieren der Differentialgleichungen stören die vielen dimensionsbehafteten Parameter. Viel einfacher werden die Gleichungen, wenn wir sie in dimensionsloser Form - mit dimensionsloser Auslenkung, Kippwinkel, Biegemoment und Querkraft anschreiben, also | Beim Aufintegrieren der Differentialgleichungen stören die vielen dimensionsbehafteten Parameter. Viel einfacher werden die Gleichungen, wenn wir sie in dimensionsloser Form - mit dimensionsloser Auslenkung, Kippwinkel, Biegemoment und Querkraft anschreiben, also | ||
<math>\begin{array}{lcc} | ::<math>\begin{array}{lcc} | ||
w &= W_{ref}&\cdot& \tilde{w}\\ | w &= W_{ref}&\cdot& \tilde{w}\\ | ||
\phi &= \Phi_{ref}&\cdot& \tilde{\phi}\\ | \phi &= \Phi_{ref}&\cdot& \tilde{\phi}\\ | ||
Zeile 92: | Zeile 116: | ||
Wir wählen dazu als Referenzlösung den [[Sources/Lexikon/Euler-Bernoulli-Balken/Standard-Lösungen#Kragbalken Streckenlast|Kragbalken mit konstantem Querschnitt unter konstanter Streckenlast]], mit der maximalen Auslenkung | Wir wählen dazu als Referenzlösung den [[Sources/Lexikon/Euler-Bernoulli-Balken/Standard-Lösungen#Kragbalken Streckenlast|Kragbalken mit konstantem Querschnitt unter konstanter Streckenlast]], mit der maximalen Auslenkung | ||
<math>W_{ref} = \displaystyle \frac{q_{ref} \, \ell^4}{8\,E\,I_{ref}}</math>. | ::<math>W_{ref} = \displaystyle \frac{q_{ref} \, \ell^4}{8\,E\,I_{ref}}</math>. | ||
Als Referenz-Werte für die Streckenlast wählen wir hier die Werte unseres Balkens in ''x=ℓ/2'', demnach | Als Referenz-Werte für die Streckenlast wählen wir hier die Werte unseres Balkens in ''x=ℓ/2'', demnach | ||
<math>\begin{array}{ll} | ::<math>\begin{array}{ll} | ||
q_{ref} &= A_{ref}\,\rho\,g \text{ mit } A_{ref} = b\cdot h(\displaystyle\frac{\ell}{2})\\ | q_{ref} &= A_{ref}\,\rho\,g \text{ mit } A_{ref} = b\cdot h(\displaystyle\frac{\ell}{2})\\ | ||
I_{ref} & = \displaystyle \frac{b\cdot h(\displaystyle\frac{\ell}{2})^3}{12} | I_{ref} & = \displaystyle \frac{b\cdot h(\displaystyle\frac{\ell}{2})^3}{12} | ||
Zeile 103: | Zeile 127: | ||
Die Differentialgleichungen werden dadurch und mit der dimensionslosen Ortskoordinate | Die Differentialgleichungen werden dadurch und mit der dimensionslosen Ortskoordinate | ||
<math>\xi = \displaystyle\frac{x}{\ell}</math> | ::<math>\xi = \displaystyle\frac{x}{\ell}</math> | ||
viel einfacher, nämlich | viel einfacher, nämlich | ||
<math>\begin{array}{rcl} | ::<math>\begin{array}{rcl} | ||
\displaystyle \frac{\partial}{\partial\xi}\tilde{Q} &=& - \displaystyle\frac{4-2\xi}{3}\\ | \displaystyle \frac{\partial}{\partial\xi}\tilde{Q} &=& - \displaystyle\frac{4-2\xi}{3}\\ | ||
\frac{\displaystyle\partial}{\displaystyle\partial\xi} \tilde{M} &=&+\tilde{Q}\\ | \frac{\displaystyle\partial}{\displaystyle\partial\xi} \tilde{M} &=&+\tilde{Q}\\ | ||
Zeile 114: | Zeile 138: | ||
\end{array}</math>. | \end{array}</math>. | ||
Damit es übersichtlicher wird, lassen wir die Tilden über den gesuchten dimensionslosen Funktionen gleich wieder weg.< | Damit es übersichtlicher wird, lassen wir die Tilden über den gesuchten dimensionslosen Funktionen gleich wieder weg. | ||
|code= | |||
<syntaxhighlight lang="lisp" line start=1> | |||
/******************************************************/ | |||
/* Boundary Value Problem Formulation */ | |||
/* field */ | |||
dgl : [ Q[ref]*diff(Q(xi),xi)/ℓ = - q(xi), | |||
M[ref]*diff(M(xi),xi)/ℓ = + Q[ref]*Q(xi), | |||
E*I(xi)*diff(Phi[ref]*ϕ(xi),xi)/ℓ = - M[ref]*M(xi), | |||
diff(W[ref]*w(xi),xi)/ℓ = + Phi[ref]*ϕ(xi)]; | |||
dgl: subst(reference,dgl); | |||
</syntaxhighlight> | </syntaxhighlight> | ||
}} | }} | ||
<!--------------------------------------------------------------------------------> | |||
{{MyCodeBlock|title=Integration Of Differential Equation | |||
|text= | |||
Die Differentialbeziehungen lösen wir nun sukzessive zu | Die Differentialbeziehungen lösen wir nun sukzessive zu | ||
<math>\displaystyle Q(\xi)=\frac{\xi^2 - 4 \xi + 3\,C_3}{3}</math>, | ::<math>\displaystyle Q(\xi)=\frac{\xi^2 - 4 \xi + 3\,C_3}{3}</math>, | ||
::<math>\displaystyle M(\xi)= \frac{{{\xi}^{3}}-6 {{\xi}^{2}}+9 {C_3} \xi+9 {C_2}}{9}</math>. | |||
<math>\displaystyle M(\xi)= \frac{{{\xi}^{3}}-6 {{\xi}^{2}}+9 {C_3} \xi+9 {C_2}}{9}</math>. | |||
Bis hier ist alles wie gehabt - aber jetzt steht das ortsveränderliche Flächenmoment ''I(ξ)'' im Nenner. Maxima liefert | Bis hier ist alles wie gehabt - aber jetzt steht das ortsveränderliche Flächenmoment ''I(ξ)'' im Nenner. Maxima liefert | ||
<math>\displaystyle \phi(\xi)) = \frac{6 {{\xi}^{3}}+\left( 2 {C_1}-24\right) \, {{\xi}^{2}}+\left( -54 {C_3}-8 {C_1}+96\right) \xi+54 {C_3}-27 {C_2}+8 {C_1}-96}{2 {{\xi}^{2}}-8 \xi+8}</math> | ::<math>\displaystyle \phi(\xi)) = \frac{6 {{\xi}^{3}}+\left( 2 {C_1}-24\right) \, {{\xi}^{2}}+\left( -54 {C_3}-8 {C_1}+96\right) \xi+54 {C_3}-27 {C_2}+8 {C_1}-96}{2 {{\xi}^{2}}-8 \xi+8}</math> | ||
und im nächsten Schritt schließlich | und im nächsten Schritt schließlich | ||
<math>\displaystyle w(\xi) = \frac{3 {{\xi}^{3}}+\left( 2 {C_1}-6\right) \, {{\xi}^{2}}+\left( \left( 72-54 {C_3}\right) \ln{\displaystyle \left( -\frac{\xi-2}{2}\right) }-4 {C_1}+2 {C_0}\right) \xi+\left( 108 {C_3}-144\right) \ln{\displaystyle \left( -\frac{\xi-2}{2}\right) }+54 {C_3}+27 {C_2}-4 {C_0}-48}{2 \xi-4}</math>. | ::<math>\displaystyle w(\xi) = \frac{3 {{\xi}^{3}}+\left( 2 {C_1}-6\right) \, {{\xi}^{2}}+\left( \left( 72-54 {C_3}\right) \ln{\displaystyle \left( -\frac{\xi-2}{2}\right) }-4 {C_1}+2 {C_0}\right) \xi+\left( 108 {C_3}-144\right) \ln{\displaystyle \left( -\frac{\xi-2}{2}\right) }+54 {C_3}+27 {C_2}-4 {C_0}-48}{2 \xi-4}</math>. | ||
Darin enthalten sind die unbekannten - also gesuchten - Integrationskonstanten | Darin enthalten sind die unbekannten - also gesuchten - Integrationskonstanten | ||
<math>C_0, C_1, C_2, C_3</math>. | ::<math>C_0, C_1, C_2, C_3</math>. | ||
|code= | |code= | ||
<syntaxhighlight lang="lisp" line start=1> | <syntaxhighlight lang="lisp" line start=1> | ||
1 | /******************************************************/ | ||
/* integrate differential equations */ | |||
displ : ratsimp(integrate(subst(dimless,ratsimp(subst(params,solve(dgl[1],Q(xi))))),xi)); | |||
displ : append(displ, ratsimp(integrate(subst(displ,solve(dgl[2],M(xi))),xi))); | |||
displ : append(displ, ratsimp( | |||
integrate( | |||
ratsimp(subst(dimless,subst(geometry,subst(displ, subst(params,solve(dgl[3],'diff(ϕ(xi),xi))))))),xi | |||
))); | |||
displ : append(displ, ratsimp( | |||
integrate( | |||
subst(displ, | |||
solve(dgl[4],w(xi)) | |||
), | |||
xi))); | |||
displ : ratsimp(subst(sections, subst(geometry,displ))); | |||
</syntaxhighlight> | </syntaxhighlight> | ||
}} | }} | ||
== | <!--------------------------------------------------------------------------------> | ||
{{MyCodeBlock|title=Boundary Conditions | |||
|text=Diese Unbekannten bestimmen wir aus den Randbedingungen, nämlich | |||
::<math>\begin{array}{rcl} | |||
<math>\begin{array}{rcl} | |||
w(0) &=& 0\\ | w(0) &=& 0\\ | ||
\phi(0) &=& 0\\ | \phi(0) &=& 0\\ | ||
Zeile 166: | Zeile 208: | ||
und damit | und damit | ||
<math>\begin{array}{rcl} | ::<math>\begin{array}{rcl} | ||
0&=&C_3-1\\ | 0&=&C_3-1\\ | ||
0&=&9 {C_3}+9 {C_2}-5\\ | 0&=&9 {C_3}+9 {C_2}-5\\ | ||
Zeile 172: | Zeile 214: | ||
0&=&-54 {C_3}-27 {C_2}+4 {C_0}+48 | 0&=&-54 {C_3}-27 {C_2}+4 {C_0}+48 | ||
\end{array} | \end{array} | ||
</math>. | </math>. | ||
|code= | |code= | ||
<syntaxhighlight lang="lisp" line start=1> | <syntaxhighlight lang="lisp" line start=1> | ||
1 | /******************************************************/ | ||
/* part II: boundary conditions */ | |||
node[A]: [ w(0) = 0, | |||
ϕ(0) = 0]; | |||
node[B]: [ Q(1) = 0, | |||
M(1) = 0]; | |||
BCs : [subst(node[B],subst([xi=1],displ[1])), | |||
subst(node[B],subst([xi=1],displ[2])), | |||
subst(node[A],subst([xi=0],displ[3])), | |||
subst(node[A],subst([xi=0],displ[4]))]; | |||
scale: [3, 9, 8, 4]; | |||
BCs : expand(ratsimp(scale*BCs)); | |||
</syntaxhighlight> | </syntaxhighlight> | ||
}} | }} | ||
== | <!--------------------------------------------------------------------------------> | ||
{{MyCodeBlock|title=Solving | |||
|text= | |||
Zum Lösen bringen wir die Gleichungen in die Form | Zum Lösen bringen wir die Gleichungen in die Form | ||
<math>\begin{pmatrix}0 & 0 & 0 & -3\\ | ::<math>\begin{pmatrix}0 & 0 & 0 & -3\\ | ||
0 & 0 & -9 & -9\\ | 0 & 0 & -9 & -9\\ | ||
0 & -8 & 27 & -54\\ | 0 & -8 & 27 & -54\\ | ||
Zeile 202: | Zeile 252: | ||
die wir lösen zu | die wir lösen zu | ||
<math>\begin{array}{lcc} | ::<math>\begin{array}{lcc} | ||
C_0&=& - \displaystyle\frac{3}{2},\\ | C_0&=& - \displaystyle\frac{3}{2},\\ | ||
C_1&=& + \displaystyle\frac{15}{4},\\ | C_1&=& + \displaystyle\frac{15}{4},\\ | ||
C_2&=& - \displaystyle\frac{4}{9},\\ | C_2&=& - \displaystyle\frac{4}{9},\\ | ||
C_3&=& + 1 | C_3&=& + 1 | ||
\end{array}</math>. | \end{array}</math>. | ||
|code= | |code= | ||
<syntaxhighlight lang="lisp" line start=1> | <syntaxhighlight lang="lisp" line start=1> | ||
1 | /* integration constants = unknowns */ | ||
X : [C[0],C[1],C[2],C[3]]; | |||
ACM: augcoefmatrix(BCs,X); | |||
/* system matrix and rhs */ | |||
AA : submatrix(ACM,5); | |||
bb : - col(ACM,5); | |||
/* print OLE */ | |||
print(subst(params,AA),"*",transpose(X),"=",subst(params,bb))$ | |||
/******************************************************/ | |||
/* solving */ | |||
D : ratsimp(determinant(AA))$ | |||
[ P, L, U] : ratsimp(get_lu_factors(lu_factor(AA)))$ | |||
cc : ratsimp(linsolve_by_lu(AA,bb)[1])$ | |||
sol : makelist(X[i] = cc[i][1],i,1,4)$ | |||
</syntaxhighlight> | </syntaxhighlight> | ||
}} | }} | ||
<!--------------------------------------------------------------------------------> | |||
{{MyCodeBlock|title=Post-Processing | |||
|text= | |||
Die Ergebnisse schauen wir uns in dimensionsloser Form an, wobei wir die Standard-Lösungen für den Balken unter konstanter Streckenlast ansetzen. | Die Ergebnisse schauen wir uns in dimensionsloser Form an, wobei wir die Standard-Lösungen für den Balken unter konstanter Streckenlast ansetzen. | ||
Zeile 245: | Zeile 307: | ||
[[Datei:UEBI-34.png|mini|Querkraftverlauf ''Q(x)''|alternativtext=|ohne]]</li> | [[Datei:UEBI-34.png|mini|Querkraftverlauf ''Q(x)''|alternativtext=|ohne]]</li> | ||
</ul> | </ul> | ||
|code= | |||
<syntaxhighlight lang="lisp" line start=1> | |||
/******************************************************/ | |||
/* post-processing */ | |||
/* bearing forces and moments */ | |||
reactForces: [M[A] = M[ref]*M(0), | |||
Q[z] = Q[ref]*Q(0)]; | |||
reactForces: ratsimp(subst(sol, subst(subst([xi=0],displ),subst(reference,reactForces)))); | |||
/* plot displacements */ | |||
fcts: [ w (xi), | |||
ϕ (xi), | |||
M (xi), | |||
Q (xi)]; | |||
textlabels : ["← w(x)/w[rez]", "← w'(x)/ϕ[ref]", "M(x)/(m*g*ℓ) →", "Q(x)/(m g) →"]; | |||
for i: 1 thru 4 do( | |||
f : ratsimp(subst(geometry,subst(sol, subst(geometry,subst(dimless,subst(displ,subst(params,fcts[i]))))))), | |||
preamble: if i<=2 then "set yrange [] reverse" else "set yrange []", | |||
plot2d(f, [xi,0,1], [legend, false], | |||
[gnuplot_preamble, preamble], | |||
[xlabel, "x/ℓ →"], | |||
[ylabel, textlabels[i]]) )$ | |||
/******************************************************/ | |||
/* print tabular values */ | |||
for i: 1 thru 4 do( | |||
f : ratsimp(subst(geometry,subst(sol, subst(geometry,subst(dimless,subst(displ,subst(params,fcts[i])))))*facts[i])), | |||
N :100, | |||
print("table for",textlabels[i]), | |||
for j: 0 thru N do ( | |||
t : j/N, | |||
print(float(t),";",expand(float(subst([xi=t],f)))) | |||
))$ | |||
</syntaxhighlight> | </syntaxhighlight> | ||
}} | }} | ||
Zeile 365: | Zeile 457: | ||
1.0 ; 0.5116753749604923 | 1.0 ; 0.5116753749604923 | ||
</syntaxhighlight> | </syntaxhighlight> | ||
}} | |||
{{MyDataBlock | |||
|title=Datenpunkte für die Auftragung von ''w(x)'' | |||
|text=Hier gibt's die Datenpunkte für ''w(x)'' zum Herunterladen. | |||
|data= | |||
<syntaxhighlight lang="none" line start=1> | |||
123</syntaxhighlight> | |||
}} | }} | ||
Version vom 16. April 2021, 18:21 Uhr
Aufgabenstellung
Der Euler-Bernoulli-Balken AB wird durch seine Gewichtskraft belastet. Er ist in A fest eingespannt und hat eine konstante Breite b sowie eine zwischen A und B linear veränderliche Höhe h.
In UEBF haben wir eine Näherungslösung für dieses Problem berechnet.
Gesucht ist die analytische Lösung des Problems.
Gegeben sind für den Balken:
- Länge ℓ, Breite b,
- E-Modul E, Dichte ρ und
- die Höhe h0=b und h1 jeweils in A und B; dazwischen ist die Höhe linear veränderlich.
Lösung mit Maxima
Um zur analytischen Lösung zukommen, müssen wir berücksichtigen, dass
- .
Wir müssen also hier die Abhängigkeit der Querschnittseigenschaften von "x" in der Differentialbeziehung berücksichtigen. Das macht die Sache deutlich komplizierter als vorher.
Header
Wir haben die Differential-Beziehungen
für die Querkraft Q, das Moment M, die Verkippung der Querschnitte ϕ und die Auslenkung w. Dabei ist die ortsabhängige Streckenlast
Die Höhe des Balkens ist linear veränderlich, nämlich
- .
/*******************************************************/
/* MAXIMA script */
/* version: wxMaxima 18.10.1 */
/* author: Andreas Baumgart */
/* last updated: 2019-09-30 */
/* ref: TM-C, Balken mit linear-veränderlicher Höhe */
/* description: finds the analytic solution for */
/* problem */
/*******************************************************/
/* declare variational variables - see 6.3 Identifiers */
declare( "ℓ", alphabetic);
declare( "ϕ", alphabetic);
Declarations
Diese Abkürzungen führen wir ein:
- ,
- .
Für die Ergebnisse setzten wir dann exemplarisch
an - sonst werden die Ausdrücke zu umfangreich.
/* make equations of motion dim'less with load case #6 */
reference : [Phi[ref] = W[ref]/ℓ, W[ref] = q[ref]*ℓ^4/(8*E I[ref]),
M[ref] = m*g*ℓ, Q[ref] = m*g,
q[ref] = m*g/ℓ, EI[ref]=E*b*((H[0]+H[1])/2)^3/12];
/* system parameters */
params: [q[0] = A(xi)*rho*g,
A(xi) = b*h(xi),
I(xi) = b*h(xi)^3/12,
h(xi) = H[0]*(1-xi)+ H[1]*xi];
params: append(params,
solve((H[0]+H[1])/2*b*ℓ*rho=m, rho));
geometry : [alpha=1/2];
dimless: [x = xi*ℓ, H[0]=b, H[1]=alpha*b];
sections: [%c4=C[0], %c3=C[1], %c2=C[2], %c1=C[3]];
Dimensionless Form of Differential Equations
Beim Aufintegrieren der Differentialgleichungen stören die vielen dimensionsbehafteten Parameter. Viel einfacher werden die Gleichungen, wenn wir sie in dimensionsloser Form - mit dimensionsloser Auslenkung, Kippwinkel, Biegemoment und Querkraft anschreiben, also
- .
Wir wählen dazu als Referenzlösung den Kragbalken mit konstantem Querschnitt unter konstanter Streckenlast, mit der maximalen Auslenkung
- .
Als Referenz-Werte für die Streckenlast wählen wir hier die Werte unseres Balkens in x=ℓ/2, demnach
- .
Die Differentialgleichungen werden dadurch und mit der dimensionslosen Ortskoordinate
viel einfacher, nämlich
- .
Damit es übersichtlicher wird, lassen wir die Tilden über den gesuchten dimensionslosen Funktionen gleich wieder weg.
/******************************************************/
/* Boundary Value Problem Formulation */
/* field */
dgl : [ Q[ref]*diff(Q(xi),xi)/ℓ = - q(xi),
M[ref]*diff(M(xi),xi)/ℓ = + Q[ref]*Q(xi),
E*I(xi)*diff(Phi[ref]*ϕ(xi),xi)/ℓ = - M[ref]*M(xi),
diff(W[ref]*w(xi),xi)/ℓ = + Phi[ref]*ϕ(xi)];
dgl: subst(reference,dgl);
Integration Of Differential Equation
Die Differentialbeziehungen lösen wir nun sukzessive zu
- ,
- .
Bis hier ist alles wie gehabt - aber jetzt steht das ortsveränderliche Flächenmoment I(ξ) im Nenner. Maxima liefert
und im nächsten Schritt schließlich
- .
Darin enthalten sind die unbekannten - also gesuchten - Integrationskonstanten
- .
/******************************************************/
/* integrate differential equations */
displ : ratsimp(integrate(subst(dimless,ratsimp(subst(params,solve(dgl[1],Q(xi))))),xi));
displ : append(displ, ratsimp(integrate(subst(displ,solve(dgl[2],M(xi))),xi)));
displ : append(displ, ratsimp(
integrate(
ratsimp(subst(dimless,subst(geometry,subst(displ, subst(params,solve(dgl[3],'diff(ϕ(xi),xi))))))),xi
)));
displ : append(displ, ratsimp(
integrate(
subst(displ,
solve(dgl[4],w(xi))
),
xi)));
displ : ratsimp(subst(sections, subst(geometry,displ)));
Boundary Conditions
Diese Unbekannten bestimmen wir aus den Randbedingungen, nämlich
und damit
- .
/******************************************************/
/* part II: boundary conditions */
node[A]: [ w(0) = 0,
ϕ(0) = 0];
node[B]: [ Q(1) = 0,
M(1) = 0];
BCs : [subst(node[B],subst([xi=1],displ[1])),
subst(node[B],subst([xi=1],displ[2])),
subst(node[A],subst([xi=0],displ[3])),
subst(node[A],subst([xi=0],displ[4]))];
scale: [3, 9, 8, 4];
BCs : expand(ratsimp(scale*BCs));
Solving
Zum Lösen bringen wir die Gleichungen in die Form
- ,
die wir lösen zu
- .
/* integration constants = unknowns */
X : [C[0],C[1],C[2],C[3]];
ACM: augcoefmatrix(BCs,X);
/* system matrix and rhs */
AA : submatrix(ACM,5);
bb : - col(ACM,5);
/* print OLE */
print(subst(params,AA),"*",transpose(X),"=",subst(params,bb))$
/******************************************************/
/* solving */
D : ratsimp(determinant(AA))$
[ P, L, U] : ratsimp(get_lu_factors(lu_factor(AA)))$
cc : ratsimp(linsolve_by_lu(AA,bb)[1])$
sol : makelist(X[i] = cc[i][1],i,1,4)$
Post-Processing
Die Ergebnisse schauen wir uns in dimensionsloser Form an, wobei wir die Standard-Lösungen für den Balken unter konstanter Streckenlast ansetzen.
Für
finden wir
- ... für w(ξ):
- ... für ϕ(ξ):
- ... für M(ξ):
- ... für Q(ξ):
/******************************************************/
/* post-processing */
/* bearing forces and moments */
reactForces: [M[A] = M[ref]*M(0),
Q[z] = Q[ref]*Q(0)];
reactForces: ratsimp(subst(sol, subst(subst([xi=0],displ),subst(reference,reactForces))));
/* plot displacements */
fcts: [ w (xi),
ϕ (xi),
M (xi),
Q (xi)];
textlabels : ["← w(x)/w[rez]", "← w'(x)/ϕ[ref]", "M(x)/(m*g*ℓ) →", "Q(x)/(m g) →"];
for i: 1 thru 4 do(
f : ratsimp(subst(geometry,subst(sol, subst(geometry,subst(dimless,subst(displ,subst(params,fcts[i]))))))),
preamble: if i<=2 then "set yrange [] reverse" else "set yrange []",
plot2d(f, [xi,0,1], [legend, false],
[gnuplot_preamble, preamble],
[xlabel, "x/ℓ →"],
[ylabel, textlabels[i]]) )$
/******************************************************/
/* print tabular values */
for i: 1 thru 4 do(
f : ratsimp(subst(geometry,subst(sol, subst(geometry,subst(dimless,subst(displ,subst(params,fcts[i])))))*facts[i])),
N :100,
print("table for",textlabels[i]),
for j: 0 thru N do (
t : j/N,
print(float(t),";",expand(float(subst([xi=t],f))))
))$
Plot Data
Datenpunkte für die Auftragung von w(x)
Hier gibt's die Datenpunkte für w(x) zum Herunterladen.
toggle: data listing →
table for ← w(x)/w[rez]
0.0 ; 0.0
0.01 ; 7.481203031248985*10^-5
0.02 ; 2.984924700020887*10^-4
0.03 ; 6.698993034749879*10^-4
0.04 ; 0.001187879040283986
0.05 ; 0.00185126660292937
0.06 ; 0.002658885214942354
0.07 ; 0.003609546289359847
0.08 ; 0.004702049317703514
0.09 ; 0.005935181759589655
0.1 ; 0.007307718933097404
0.11 ; 0.008818423906038287
0.12 ; 0.01046604738827592
0.13 ; 0.01224932762526032
0.14 ; 0.01416699029293324
0.15 ; 0.01621774839421548
0.16 ; 0.01840030215723649
0.17 ; 0.02071333893554073
0.18 ; 0.02315553311047674
0.19 ; 0.02572554599601331
0.2 ; 0.02842202574623001
0.21 ; 0.03124360726574977
0.22 ; 0.03418891212340282
0.23 ; 0.0372565484694203
0.24 ; 0.04044511095649053
0.25 ; 0.04375318066501066
0.26 ; 0.04717932503291399
0.27 ; 0.05072209779045508
0.28 ; 0.0543800389003753
0.29 ; 0.05815167450388911
0.3 ; 0.06203551687296655
0.31 ; 0.06603006436941357
0.32 ; 0.07013380141128575
0.33 ; 0.07434519844720817
0.34 ; 0.07866271193920962
0.35 ; 0.08308478435471277
0.36 ; 0.08760984416838222
0.37 ; 0.09223630587454254
0.38 ; 0.09696257001097904
0.39 ; 0.1017870231949183
0.4 ; 0.1067080381721125
0.41 ; 0.1117239738799426
0.42 ; 0.1168331755255615
0.43 ; 0.1220339746801493
0.44 ; 0.1273246893904267
0.45 ; 0.1327036243086318
0.46 ; 0.1381690708422802
0.47 ; 0.1437193073250795
0.48 ; 0.1493525992104727
0.49 ; 0.1550671992894059
0.5 ; 0.160861347933972
0.51 ; 0.1667332733687484
0.52 ; 0.1726811919717323
0.53 ; 0.1787033086069086
0.54 ; 0.1847978169906433
0.55 ; 0.1909629000942185
0.56 ; 0.1971967305850093
0.57 ; 0.2034974713089322
0.58 ; 0.2098632758170441
0.59 ; 0.2162922889392689
0.6 ; 0.2227826474085497
0.61 ; 0.229332480538859
0.62 ; 0.2359399109607717
0.63 ; 0.2426030554186048
0.64 ; 0.2493200256333157
0.65 ; 0.2560889292357581
0.66 ; 0.2629078707751271
0.67 ; 0.2697749528078152
0.68 ; 0.2766882770722823
0.69 ; 0.2836459457558966
0.7 ; 0.2906460628602184
0.71 ; 0.2976867356715562
0.72 ; 0.3047660763442248
0.73 ; 0.3118822036044391
0.74 ; 0.3190332445833526
0.75 ; 0.3262173367883804
0.76 ; 0.3334326302226785
0.77 ; 0.340677289663329
0.78 ; 0.3479494971096025
0.79 ; 0.3552474544135462
0.8 ; 0.3625693861060849
0.81 ; 0.3699135424327804
0.82 ; 0.3772782026145832
0.83 ; 0.3846616783500371
0.84 ; 0.392062317576676
0.85 ; 0.3994785085108331
0.86 ; 0.4069086839865492
0.87 ; 0.4143513261159026
0.88 ; 0.4218049712949479
0.89 ; 0.4292682155813812
0.9 ; 0.4367397204721419
0.91 ; 0.4442182191116147
0.92 ; 0.4517025229634247
0.93 ; 0.4591915289818366
0.94 ; 0.4666842273215563
0.95 ; 0.4741797096282359
0.96 ; 0.4816771779554077
0.97 ; 0.4891759543576916
0.98 ; 0.4966754912143446
0.99 ; 0.5041753823419752
1.0 ; 0.5116753749604923
Datenpunkte für die Auftragung von w(x)
Hier gibt's die Datenpunkte für w(x) zum Herunterladen.
toggle: data listing →
123
Links
- ...
Literature
- ...