Gelöste Aufgaben/UEBK
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.
Der Lösungsansatz ist für ein Randwertproblem ungewöhnlich: weil das System statisch bestimmt ist, kennen wir alle Zustandsgrößen des Systems am linken Rand sowie deren Differentialbeziehungen und können das Randwertproblem al Anfangswertproblem lösen.
Die analytische Lösung kommt aus UEBI.
Gesucht ist die Lösung des Problems as Anfangswertproblem - also durch Integration der Differentialbeziehungen.
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
Header
Auch Randwertprobleme kann man als Anfangswertprobleme lösen.
In diesem Fall sogar besonders einfach. Da das System nämlich statisch bestimmt ist, können wir in A alle Schnittgrößen und geometrischen Randbedingungen berechnen und dann die Differentialgleichungen für Q, M, ϕ und w lösen.
/*******************************************************/
/* MAXIMA script */
/* version: wxMaxima 15.08.2 */
/* author: Andreas Baumgart */
/* last updated: 2019-09-01 */
/* ref: TMC */
/* description: EBB with I(x), A(x) */
/* solved as Initial Value Problem */
/*******************************************************/
Declarations
Die Parameter kopieren wir direkt aus Aufgabe UEBI.
Dazu gehören auch wieder die Referenzgrößen
- .
/************************************************************/
/* declare variational variables - see 6.3 Identifiers */
declare( "ℓ", alphabetic);
declare( "ϕ", alphabetic);
/* system parameters */
params: [q(xi) = 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];
/* make equations of motion dim'less with load case #1 from Gross e.a., same as UEBI */
reference : [W[ref] = q[ref]*ℓ^4/8/EI[ref],
ϕ[ref] = q[ref]*ℓ^3/6/EI[ref],
M[ref] = m*g*ℓ, Q[ref] = m*g,
q[ref] = m*g/ℓ,
EI[ref]=E*b*((H[0]+H[1])/2)^3/12];
Equilibrium Conditions
Auch die Differential-Beziehungen nehmen wir aus UEBI zu
- .
Mit
führen wir dimensionslose Koordinaten ein, die die "Zustandsgrößen" unseres Anfangswertproblems sind. Einsetzten liefert dann vier Differentialgleichungen erster Ordnung - der Übersicht halber lassen wir die Tilden hier gleich wieder weg:
- ,
in symbolischer Schreibweise
- .
/* equations of ""motion */
dgl : [ Q[ref]*diff(Q(xi),xi)/ℓ = - q(xi),
M[ref]*diff(M(xi),xi)/ℓ = + Q[ref]*Q(xi),
ϕ[ref]*E*I(xi)*diff(ϕ(xi),xi)/ℓ = - M[ref]*M(xi),
W[ref]*diff(w(xi),xi)/ℓ = + ϕ[ref]*ϕ(xi)];
dgl1stOrder: solve(dgl, [diff(Q(xi),xi),
diff(M(xi),xi),
diff(ϕ(xi),xi),
diff(w(xi),xi)])[1];
dgl1stOrder: ratsimp(subst(geometry,subst(dimless,subst(params,subst(reference,dgl1stOrder)))));
dgl1stOrder: ratsimp(ev(dgl1stOrder,nouns));
stateVabs : [Q,M,P,W];
dgl1stOrder: subst([xi=t],makelist(subst([Q(xi)=Q,M(xi)=M,ϕ(xi)=P,w(xi)=W],rhs(dgl1stOrder[i])),i,1,4));
Solving
Das ist ein klassisches Anfangswertproblem, wir brauchen nur noch die Anfangswerte:
und das dann in dimensionsloser Schreibweise
- .
Das Anfangswertproblem lösen wir mit dem Runge-Kutta-Verfahren 4.ter Ordnung.
✔ Schießverfahren: |
Das Lösen ist nicht ganz so einfach, wenn wir nicht alle Anfangsbedingungen kennen.
Trotzdem gibt es dann einen Weg: man wählt erst mal beliebige Anfangsbedingungen und variiert dieses so lange, bis man auf der anderen Seite - hier B - die passenden Randbedingungen Q(1)=0, M(1) = 0 trifft. Populär ist diese Lösungsmethode für die Einstellung von Artilerie-Geschützen geworden. Das funktioniert aber auch, wenn man besondere Lösungen sucht - zum Beispiel periodische Lösungen bei Knickformen von Bohrsträngen. |
/********************************/
/* "Anfangs"-Werte */
y0 : [ Q[0] = 1,
M[0] = -ℓ*integrate(xi*ℓ*A(xi)*rho*g,xi,0,1)/M[ref],
ϕ[0] = 0,
w[0] = 0
];
y0 : ratsimp(subst(dimless,subst(params,y0)));
y0 : ev(y0,nouns);
initiVals : makelist(subst(geometry,subst(reference,rhs(y0[i]))),i,1,4);
/********************************/
/* numerical solution of IVP */
locations : subst([t0 = 0, tmax = 1, dt = 0.01],
[t, t0, tmax, dt]);
ivs : rk(dgl1stOrder, stateVabs, initiVals, locations)$
Post-Processing
Die dimensionslosen Funktionsverläufe tragen wir in einem Diagramm auf - sie passen exakt zur analytischen Lösung in UEBI:
/********************************/
/* plot local functions */
XX : makelist(ivs[j][1],j,1,length(ivs))$
QQ : makelist(ivs[j][2],j,1,length(ivs))$
MM : makelist(ivs[j][3],j,1,length(ivs))$
PP : makelist(ivs[j][4],j,1,length(ivs))$
WW : makelist(ivs[j][5],j,1,length(ivs))$
plot2d([[discrete, XX, QQ],[discrete, XX, MM],[discrete, XX, PP],[discrete, XX, WW]],
[gnuplot_preamble, "set yrange [] reverse"],
[xlabel,"x/ℓ->"], [ylabel," <- 1"],
[legend, "Q/Q_ref", "M/M_ref", "ϕ/ϕ_ref", "w/w_ref"]);
Links
Literature
- ...