Gelöste Aufgaben/Kita: Unterschied zwischen den Versionen
Keine Bearbeitungszusammenfassung |
Keine Bearbeitungszusammenfassung |
||
Zeile 230: | Zeile 230: | ||
<table style="background-color:white; margin-right:14px; border: 1px solid black; border-spacing: 30px;"> | <table style="background-color:white; margin-right:14px; border: 1px solid black; border-spacing: 30px;"> | ||
<tr><th>Richtung</th><th>z</th><th>y</th></tr> | <tr><th>Richtung</th><th>z</th><th>y</th></tr> | ||
<tr><td>Knoten T<br/>Auslenkung<br/>Kippwinkel</td><td><br/><math>W_T</math>,<br/><math>\Phi_T</math></td><td><br/><math>V_T</math>,<br><math>\Psi_T</math></td></tr> | <tr><td>Knoten T<br/>Auslenkung<br/>Kippwinkel</td><td><br/><math>W_T</math>,<br/><math>\Phi_T</math></td><td><br/><math>V_T</math>,<br/><math>\Psi_T</math></td></tr> | ||
<tr><td>Knoten H<br/>Auslenkung<br/>Kippwinkel</td><td><br/><math>W_H</math>,<br/><math>\Phi_H</math></td><td><br/><math>V_H</math>,<br><math>\Psi_H</math></td></tr> | <tr><td>Knoten H<br/>Auslenkung<br/>Kippwinkel</td><td><br/><math>W_H</math>,<br/><math>\Phi_H</math></td><td><br/><math>V_H</math>,<br/><math>\Psi_H</math></td></tr> | ||
<tr><td>Knoten 0<br/>Auslenkung<br/>Kippwinkel</td><td> | <tr><td>Knoten 0<br/>Auslenkung<br/>Kippwinkel</td><td><br/><math> 0 </math>,<br/><math> c_3 </math></td><td><br/><math> 0 </math>,<br/><math> c_7 </math></td></tr> | ||
</table> | </table> | ||
In ''O'' hätten wir auch noch die Variablen <math>\Phi_O</math> und <math>\Psi_O</math> einführen könnten. Die sind allerdings identisch mit <math>c_3</math> und <math>c_7</math>. | In ''O'' hätten wir auch noch die Variablen <math>\Phi_O</math> und <math>\Psi_O</math> einführen könnten. Die sind allerdings identisch mit <math>c_3</math> und <math>c_7</math>. | ||
Alle Unbekannten fassen wir nun in | |||
::<math>\underline{c} = \left(\begin{array}{l}c_{01}\\c_{02}\\\ldots\\c_{15}\\c_{16}\\W_H\\V_H\\\Phi_H\\\Psi_H\\W_T\\V_T\\\Phi_T\\\Psi_T\end{array}\right)</math> | ::<math>\underline{c} = \left(\begin{array}{l}c_{01}\\c_{02}\\\ldots\\c_{15}\\c_{16}\\W_H\\V_H\\\Phi_H\\\Psi_H\\W_T\\V_T\\\Phi_T\\\Psi_T\end{array}\right)</math> | ||
zusammen. | zusammen. |
Version vom 15. September 2022, 13:49 Uhr
Aufgabenstellung
Das skizzierte System ist ein Mast unter einer linear veränderlichen Windlast, der durch drei gleichmäßig über den Umfang verteilten Stäbe abgestützt wird.
Gesucht ist die analytische Lösung für ein Euler-Bernoulli-Modell des elastischen Mastes und der drei Dehnstäbe.
Der Mast steht senkrecht dabei auf einer ebenen Unterlage mit dem festen Gelenklager „O“ und ist durch drei Stäbe abgestützt. Alle Stäbe sind in Punkt „H“ mit dem Mast verbunden und in den Punkten „A“, „B“ und „C“ gelenkig gelagert. Die Lager A, B und C sind gleichmäßig in einem Radius von R um O herum auf der Unterlage verteilt. Die Windlast hat den Maximalwert qT und wirkt in der Ebene, die durch die Punkte A, O und H aufgespannt werden. Für die Geometrie des Masts gilt h1 = 2 h2, h2 = √2 R, außerdem sei die Dehnsteifigkeiten der Stäbe E A2=2 E A1,E A3=E A1.
Der Mast hat ein zylindrisches Profil mit Innen- und Außendurchmesser di, da.
Ein Knicken der drei Stäbe sei ausgeschlossen.
Lösung mit Maxima
Mit Maxima berechnen wir die allgemeine Lösung der Differentialgleichung des Euler-Bernoulli-Balkens und geben die Rand- und Übergangsbedingungen an. Der Mast soll in Längsrichtung nicht signifikant durch die Stabkräfte verformt werden, als Koordinaten der Verschiebung haben hier also nur die Auslenkungen Querrichtung sowie die Verdrehungen um diese Koordinatenrichtungen. Die Stabkräfte berechnen wir aus der Längung der Stäbe, dabei linearisieren wir bezüglich der Mast-Auslenkungen.
Header
Kern der Lösung ist die Berechnung der Integrationskonstanten des Euler-Bernoulli-Balkens. In diesem Beispiel führen wir zusätzliche Abkürzungen als Variablen ein, um die Rand- und Übergangsbedingungen einfacher formulieren zu können.
/*******************************************************/
/* MAXIMA script */
/* version: wxMaxima 21.05.2 */
/* author: Andreas Baumgart */
/* last updated: 2022-08-19 */
/* ref: NMM, Labor 1 */
/* Mast unter linear-veränderlicher Windlast */
/* */
/*******************************************************/
Declarations
Wir übernehmen die Parameter aus der Aufgabenstellung, also
und definieren für die Berechnung der Stabkräfte die Referenzorte von A, B, C und H wie rechts skizziert im x, y, z Koordinatensystem zu
Die Koordinaten der Vektoren, die jeweils in Stablängsrichtung von H zu den Lagerpunkten zeigen, sind dann
die Referenz-Länge aller drei Stäbe ist damit
- .
Und wir schreiben damit die Koordinaten der Einheitsvektoren dieser Stab-Längsrichtungen als
- .
/*******************************************************/
/* declarations */
/* *****************************************************/
/* parameter selection */
params: [EA[2]=2*EA[1],EA[3]=EA[1], h[1] = 2*h[2], h[2]=sqrt(2)*R, EA[1] = α*EI/R^2];
assume(R>0);
/* non-sclar variables */
declare(r,nonscalar,
e,nonscalar);
/* geometry **********************************/
/* points */
geo: [r[H] = matrix([ h[1], 0, 0]),
r[A] = matrix([ 0 , R*sin( 0 ),-R*cos( 0 )]),
r[B] = matrix([ 0 , R*sin(-2*%pi/3),-R*cos(-2*%pi/3)]),
r[C] = matrix([ 0 , R*sin(+2*%pi/3),-R*cos(+2*%pi/3)])];
geo: append(geo, subst(geo, [r[1] = r[A]-r[H],
r[2] = r[B]-r[H],
r[3] = r[C]-r[H]]));
geo: append(geo, [L = sqrt(subst(geo,r[1]).subst(geo,r[1]))]);
/* unit-vecotor coefficients */
geo: append(geo, makelist(e[i]=subst(geo,r[i]/L),i,1,3));
Integration Of Differential Equation for Euler-Bernoulli-Beam
In den Bereichen I und II haben wir jeweils eine Auslenkung des Masts in zwei Richtungen: z und y.
Wir nutzen die Standard-Nomenklatur für den Euler-Bernoulli-Balken und schrieben jeweils die Gleichgewichtsbedingungen
... in z-Richtung als | ... in y-Richtung als | |
---|---|---|
. | . | |
Für die Auslenkungen in z und y-Richtung geben wir hier die Bedeutung der Koordinaten vi(x), wi(x) je Bereich und deren Ableitungen an. Es ist | ||
... die Querschnitts-Auslenkung: | ||
... die Querschnitts-Verdrehung: | ||
... das Biege-Moment: | und | |
... die Querkraft: |
Für die Streckenlasten auf den Mast gilt je Bereich "i" die lineare Funktion:
- ... in z-Richtung: und
- ... in y-Richtung:
wobei an den Knotenpunkten dies gilt:
Mit diesen Ansätzen erhalten wir aus der Integration der Differentialbeziehung für den Euler-Bernoulli-Balken diese generischen (weil mit Integrationskonstanten behaftete) Lösungen:
Richung ... | z | y |
---|---|---|
Bereich I: | ||
Bereich II: |
Wir haben also Bereich I und II für Richtungen z und y mit jeweils 4 integrationskonstanten - das macht insgesamt 16 zu bestimmende Variablen.
/*******************************************************/
/* differential equations for EB-beam */
/* and generic solution */
/* *****************************************************/
dgl: diff(w(x),x,4)=-1/EI*(q[i-1]*(1-x/h[i])+q[i]*x/h[i]);
dgl: integrate(integrate(integrate(integrate(dgl,x),x),x),x);
sectionReplace: [[%c1=c[ 1],%c2=c[ 2],%c3=c[ 3],%c4=c[ 4], q[i-1]= 0 , q[i]=q[H],h[i]=h[1] ],
[%c1=c[ 9],%c2=c[10],%c3=c[11],%c4=c[12], q[i-1]=q[H], q[i]=q[T],h[i]=h[2] ],
[%c1=c[ 5],%c2=c[ 6],%c3=c[ 7],%c4=c[ 8], q[i-1]= 0 , q[i]= 0 ,h[i]=h[1], w(x)=v(x)],
[%c1=c[13],%c2=c[14],%c3=c[15],%c4=c[16], q[i-1]= 0 , q[i]= 0 ,h[i]=h[2], w(x)=v(x)]];
/* create 4 lists for each section */
sol: [makelist(subst(sectionReplace[i],[dgl]),i,1,2),
makelist(subst(sectionReplace[i],[dgl]),i,3,4)];
sol: subst([q[H] = q[T]*h[1]/(h[1]+h[2])],sol);
/* tilt-angles, bending and cross-sec. force */
/* see Gross e.a.: Technische Mechanik 2, p156 */
for dir:1 thru 2 do
for sec:1 thru 2 do
(sol[dir][sec]: append(sol[dir][sec], [[ φ(x) , ψ(x) ][dir] = diff(subst(sol[dir][sec],[w(x),v(x)][dir]),x )]),
sol[dir][sec]: append(sol[dir][sec], [[M[y](x),M[z](x)][dir] = [-1,+1][dir]*EI*diff(subst(sol[dir][sec],[w(x),v(x)][dir]),x,2)]),
sol[dir][sec]: append(sol[dir][sec], [[Q[z](x),Q[y](x)][dir] = [-1,-1][dir]*EI*diff(subst(sol[dir][sec],[w(x),v(x)][dir]),x,3)]));
Forces in Supporting Rods
Die Zugkräfte Si in den drei Dehnstäben erhalten wir aus der Stab-Längung , also
Die Bilder rechts zeigen die Stabkräfte am freigeschnittenen Punkt H des Masts. Bei der Berechnung der Stabkräfte ist die Längung von Stab i. Die Kraft hat als Richtung , also ist
- .
Es fehlt nur noch die Stablängung je Stab – und die bekommen wir aus dem Vergleich der Geometrie des Stabes im verformten und unverformten Zustand.
Analog zur Länge des Stabes im unverformten Zustand ist nun der Ort von H
und die Koeffizienten der Stab-Vektoren sind nun
- .
Die Differenzlänge erhalten wir – nach dem gleichen Schema wie oben – aus
- .
In
steht nun allerdings ein komplizierter, nichtlinearer Ausdruck. Den linearisieren wir, schreiben also
und erhalten damit
/*******************************************************/
/* forces S[i] in supporing rods */
/* S[i] as a function of W[H] and V[H] *****************/
/* *****************************************************/
ΔL: subst(geo,[r[A] - (r[H]+matrix([0,V[H],W[H]])),
r[B] - (r[H]+matrix([0,V[H],W[H]])),
r[C] - (r[H]+matrix([0,V[H],W[H]]))]);
ΔL: makelist(sqrt(ΔL[i].ΔL[i])-subst(geo,L),i,1,3);
displ: [W[H],V[H]];
null : makelist(displ[i]=0,i,1,2);
/* linearize .... */
ΔL: sum(subst(null, diff(ΔL,displ[j]))*displ[j],j,1,2);
S : makelist(EA[i]*ΔL[i]/subst(geo,L),i,1,3);
Boundary- and Transition-Conditions
Aus der Lösung der Differentialgleichungen für zwei Raumrichtungen und zwei Bereiche haben wir 16 Integrationskonstanten, die wir bestimmen müssen. Hinzu kommen VH und WH für den Knoten H. Um hier konsistent zu sein, führen wir für die Knoten H und T – "Top", die Mastspitze – die Koordinaten der Auslenkung und Kippung der Querschnitte ein, also zusammen die 8 Knotenvariablen
Richtung | z | y |
---|---|---|
Knoten T Auslenkung Kippwinkel | , | , |
Knoten H Auslenkung Kippwinkel | , | , |
Knoten 0 Auslenkung Kippwinkel | , | , |
In O hätten wir auch noch die Variablen und einführen könnten. Die sind allerdings identisch mit und .
Alle Unbekannten fassen wir nun in
zusammen.
Für diese 24 Unbekannten brauchen wir nun 24 Gleichungen – Geometriebedingungen und Kräfte-/Momentengleichgewichte.
... aus Rand "O"
Das gelenkige Lager in O erlaubt keine Verschiebung und es nimmt keine Momente auf. Daraus ergeben sich die Geometrische Bedingungen:
und die Kraft- und Momenten-Randbedingungen:
... aus Übergang "H"
Geometrische Bedingungen:
Kraft- und Momenten-Randbedingungen: Hier wird es spannend: durch die drei Stäbe werden Kräfte eingeleitet,
Einfach sind die Momenten-Gleichgewichtsbedingungen am Knoten H - hier wird kein externes Moment eingeleitet, die beiden Schnittmomente müssen gleich sein:
Für die Kraft-Übergangsbedingungen in y- und z-Richtung müssen wir nun allerdings die Seilkräfte mit einbeziehen.
Dabei nehmen wir vom Einheitsvektor nur die Komponente der jeweiligen Raumrichtung, also z.B. aus .
... aus Rand "T"
Geometrische Bedingungen: Für die geometrischen Randbedingen haben wir nur die Gleichungen, die unsere Abkürzungen einführen, also
Kraft- und Momenten-Randbedingungen: Hier ist Rand frei: Kräfte und Momente in T müssen Null sein:
Damit sind wir komplett - wir haben 24 Gleichungen für 24 Unbekannte. Das Gleichungssystem können wir nun als
schreiben - oder mit den oben angegebenen Systemparametern ausgeschreiben als
/******************************************************/
/* Boundary Value Problem Formulation */
/* ****************************************************/
/* point "O" */
BC: [subst(x= 0 , subst(sol[1][1],w(x)) )= 0 ,
subst(x= 0 , subst(sol[2][1],v(x)) )= 0 ,
subst(x= 0 , subst(sol[1][1],φ(x)) )= 0 ,
subst(x= 0 , subst(sol[2][1],ψ(x)) )= 0 ,
/* point "H" - geometry */
subst(x= h[1], subst(sol[1][1],w(x)) )=W[H],
subst(x= h[1], subst(sol[2][1],v(x)) )=V[H],
subst(x= 0 , subst(sol[1][2],w(x)) )=W[H],
subst(x= 0 , subst(sol[2][2],v(x)) )=V[H],
subst(x= h[1], subst(sol[1][1],φ(x)) )=Φ[H],
subst(x= h[1], subst(sol[2][1],ψ(x)) )=Ψ[H],
subst(x= 0 , subst(sol[1][2],φ(x)) )=Φ[H],
subst(x= 0 , subst(sol[2][2],ψ(x)) )=Ψ[H],
/* point "H" - bending moments */
subst(x= h[1], subst(sol[1][1],M[y](x)) )=subst(x= 0 , subst(sol[1][2],M[y](x)) ),
subst(x= h[1], subst(sol[2][1],M[z](x)) )=subst(x= 0 , subst(sol[2][2],M[z](x)) ),
/* point "H" - forces */
subst(x= h[1], subst(sol[1][1],Q[z](x)) )=subst(x= 0 , subst(sol[1][2],Q[z](x)) ) - sum(S[i]*subst(geo,e[i]),i,1,3)[1][3],
subst(x= h[1], subst(sol[2][1],Q[y](x)) )=subst(x= 0 , subst(sol[2][2],Q[y](x)) ) - sum(S[i]*subst(geo,e[i]),i,1,3)[1][2],
/* point "T" (Top) - geometry */
subst(x= h[2], subst(sol[1][2],w(x)) )=W[T],
subst(x= h[2], subst(sol[2][2],v(x)) )=V[T],
subst(x= h[2], subst(sol[1][2],φ(x)) )=Φ[T],
subst(x= h[2], subst(sol[2][2],ψ(x)) )=Ψ[T],
/* point "T" (Top) - bending moment */
subst(x= h[2], subst(sol[1][2],M[y](x)) ) = 0,
subst(x= h[2], subst(sol[2][2],M[z](x)) ) = 0,
/* point "T" (Top) - forces */
subst(x= h[2], subst(sol[1][2],Q[z](x)) ) = 0,
subst(x= h[2], subst(sol[2][2],Q[y](x)) ) = 0];
C: append(makelist(c[i],i,16), [W[H],V[H],Φ[H],Ψ[H],W[T],V[T],Φ[T],Ψ[T]]);
scale: [1,1,1,1,1,1,1,1,1,1,
1,1,EI,EI,EI,EI,1,1,1,1,
EI,EI,EI,EI];
for i:1 thru 24 do BC[i]:BC[i]/scale[i];
ACM: ratsimp(augcoefmatrix(BC,C));
a: submatrix(ACM,25);
b:-col(ACM,25);
Solving
Dieses lineare Gleichungssystem kann man gerade noch analytisch lösen - wir finden die gesuchten Integrationskonstanten und Knotenvariablen
/*******************************************************/
/* solve for integration constants */
/* *****************************************************/
consts: ratsimp(solve(ratsimp(subst(params,BC)),C)[1]);
sol: subst(consts,sol);
toReplace: [x=ξ*h[1],x=ξ*h[2]];
for dir: 1 thru 2 do
for sec: 1 thru 2 do
(print(dir,sec),
for elem: 1 thru 4 do
sol[dir][sec][elem]: lhs(sol[dir][sec][elem])=subst(toReplace[sec],rhs(sol[dir][sec][elem])));
Post-Processing
Die Verläufe der Auslenkung und Schnittkräfte - hier exemplarisch das Biegemoment - können wir nun plotten:
/*******************************************************/
/* post-processing */
/*******************************************************/
/* what is a reasonable size is α ? */
/* geopar: [A[1]= π/ 4*d[r]^2, d[r]=1*cm,
I = π/64*(d[o]^4-d[i]^4), d[o]=10*cm, d[i]=9*cm,
R = h[2]/sqrt(2), h[2]=500*cm,
α = A[1]*R^2/I ] */
sol: ratsimp(subst([α=500],subst(params,sol)));
toPlot: ratsimp([subst(sol[1][1],w(x)/R),subst(sol[1][2],w(x)/R),subst(sol[2][1],v(x)/R),subst(sol[2][2],v(x)/R)]/(q[T]*R^3/6/EI));
plot2d([[parametric, ξ, toPlot[1], [ξ,0,1]],
[parametric, 1+ξ*subst(params,h[2]/h[1]), toPlot[2], [ξ,0,1]],
[parametric, ξ, toPlot[3], [ξ,0,1]],
[parametric, 1+ξ*subst(params,h[2]/h[1]), toPlot[4], [ξ,0,1]]],
[legend, "w(x), sec 1", "w(x), sec 2", "v(x), sec 1", "v(x), sec 2"],
[xlabel, "x/h_1->"],[ylabel, "w(x)/W_0, v(x)/V_0 ->"])$
toPlot: ratsimp([subst(sol[1][1],M[y](x)),subst(sol[1][2],M[y](x)),subst(sol[2][1],M[z](x)),subst(sol[2][2],M[z](x))]/(q[T]*R^2));
plot2d([[parametric, ξ, toPlot[1], [ξ,0,1]],
[parametric, 1+ξ*subst(params,h[2]/h[1]), toPlot[2], [ξ,0,1]],
[parametric, ξ, toPlot[3], [ξ,0,1]],
[parametric, 1+ξ*subst(params,h[2]/h[1]), toPlot[4], [ξ,0,1]]],
[legend, "M_y(x), sec 1", "M_y(x), sec 2", "M_z(x), sec 1", "M_z(x), sec 2"],
[xlabel, "x/h_1->"],[ylabel, "M(x)/M_0 ->"])$
Links
- ...
Literature
- ...