Gelöste Aufgaben/UEBO: Unterschied zwischen den Versionen

Aus numpedia
Zur Navigation springen Zur Suche springen
Keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
 
(2 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 12: Zeile 12:


Der Euler-Bernoulli-Balken ''AB'' wird durch ein Moment ''M'' zwischen den beiden gelenkigen Lagern belastet. 
Der Euler-Bernoulli-Balken ''AB'' wird durch ein Moment ''M'' zwischen den beiden gelenkigen Lagern belastet. 
<onlyinclude>
<onlyinclude>
[[Datei:EBB-load-case-05.png|alternativtext=|links|200px|Lageplan]]
[[Datei:EBB-load-case-05.png|alternativtext=|mini|links|200px|Lageplan]]
Gesucht ist eine Lösung für die Biegelinie mit dem [[Randwertprobleme/Methoden zur Lösung von Randwertproblemen/Verfahren von Rayleigh-Ritz (EBB)|Ansatz von Ritz]] und zwei Trial-Funktionen.
Gesucht ist eine Lösung für die Biegelinie mit dem [[Randwertprobleme/Methoden zur Lösung von Randwertproblemen/Verfahren von Rayleigh-Ritz (EBB)|Ansatz von Ritz]] und zwei Trial-Funktionen.


(Weg "1" wie in [[Gelöste Aufgaben/UEBH|UEBH]] beschrieben.)</onlyinclude>
(Weg "1" wie in [[Gelöste Aufgaben/UEBH|UEBH]] beschrieben.)
</onlyinclude>


== Lösung mit Maxima ==
== Lösung mit Maxima ==

Aktuelle Version vom 21. April 2021, 05:01 Uhr


Aufgabenstellung

Diese Problemstellung liefert einen Näherungsansatz für eine Standardlösung zum Euler-Bernoulli-Balken.

Der Euler-Bernoulli-Balken AB wird durch ein Moment M zwischen den beiden gelenkigen Lagern belastet. 

Lageplan

Gesucht ist eine Lösung für die Biegelinie mit dem Ansatz von Ritz und zwei Trial-Funktionen.

(Weg "1" wie in UEBH beschrieben.)


Lösung mit Maxima

Beim Verfahren von Ritz arbeiten wir mit


Header

Wir berechnen die Potentielle Energie U des Systems in Abhängigkeit von den generalisierten Koordinaten Wi und erhalten aus

die Gleichung für den gesuchten Koeffizienten Wi der Trial-Funktionen.


/*******************************************************/
/* MAXIMA script                                       */
/* version: wxMaxima 15.08.2                           */
/* author: Andreas Baumgart                            */
/* last updated: 2019-10-13                            */
/* ref: TMC, Labor 4                                   */
/* description: Ritz approach to EBB, load-case 5      */
/*                                                     */
/*******************************************************/

/* declare variables and functions */
declare("Π", alphabetic); /* strain energy */
assume(ℓ>0);
dimless:[x=xi*ℓ,
         a=alpha*ℓ];




Declarations

Um die Lösung dimensionslos zu machen, nutzen wir die analytische Lösung des Problems , hier die Beträge der maximalen Auslenkung des Balkens für a = ℓ und der Verdrehung des Balkens am Momenten-Angriffspunkt für a = ℓ/2:

die maximale Auslenkung des Balkens für a=
die Verdrehung des Balkens am Momenten-Angriffspunkt für a=/2

Dimensionslose Orts-Koordinaten sind

.

/*analytic solution vgl. Lexikon/Euler-Bernoulli-Blaken */
analytic: w(xi) = M*ℓ^2/(6*EI)*(xi^3+xi*(2-6*alpha+3*alpha^2)
/*                                   foeppel-function         */
                       - 3*(if xi<alpha then 0 else xi-alpha)^2);
sectionI : M*ℓ^2/(6*EI)*(xi^3+xi*(2-6*alpha+3*alpha^2));
/* make dim'less with load case #5 */
Phi[C] : subst([xi=1/2],diff(subst([alpha=1/2],sectionI),xi)/ℓ);
W[max] : -subst([alpha=1],subst(solve(
                           diff(subst([alpha=1],sectionI),xi)/ℓ=0,xi)[2],sectionI));




Formfunctions

Bei der Suche nach passenden Trial-Functions ϕ lassen wir uns ebenfalls von der analytischen Lösung des Problems "inspirieren":

Der Funktionsverlauf von wa hat zwei charakteristische Ausprägungen:

... für a=0... für a=ℓ/2
Diese Lösung - mit dem angreifenden Moment in A - hat eine starke symmetrische Komponente bzgl der Stab-Mitte. Diese Lösung - mit dem angreifenden Moment in der Stab-Mitte - ist punktsymmetrisch zum Momenten-Angriffspunkt.

Und so wählen wir unsere Trial-Functions als

.
Trial-Functions

Für α=7∙ℓ/10 sehen sie so aus;

Die Koeffizienten c1 und c2 haben wir dabei so gewählt, dass

.

Mit den neuen, gesuchten Wichtungsfaktoren qw und qϕ ist die Ansatzfunktion zur Lösung mit dem Verfahren von Rayleigh-Ritz damit

Aufgrund der gewählten Skalierungsfaktoren erwarten wir als Ergebnis näherungsweise

  • für α=½: qw ≈ 0 und qϕ ≈ 1,
  • für α= 0: qw ≈ 1 und qϕ ≈ 0.

/* derive trial-function(s) */
phi : [c[1]*xi*(1-xi), c[2]*xi*(1-xi)*(alpha-xi)];
GBC: [subst([xi = 1/2 ],      phi[1]      )= 1,
      subst([xi = 1/2 ], diff(phi[2],xi)/ℓ)= 1];
sol[1] : solve(GBC,[c[1],c[2]])[1];
phi: ratsimp(subst(sol[1],phi));

ansatz: [w(xi) = q[w]*W[max]*phi[1] + q[p]*Phi[C]*phi[2]];

preamble: "set yrange [] reverse";
plot2d(subst([alpha=7/10],[phi[1],phi[2]/ℓ]),[xi,0,1],
  [legend, "ϕ1","ϕ2/ℓ"],
  [gnuplot_preamble, preamble],
  [title, "trial-functions für α=7/10"],
  [xlabel, "ξ →"],
  [ylabel, "<- ϕ"] );




Potential Energy

Für die Gleichgewichtsbedingungen setzten wir Π (aus Abschnitt Euler-Bernoulli-Balken) und A in U ein und schreiben die skalare Gleichung allgemein in Matrizenform an. Dabei müssen wir

berücksichtigen und erhalten mit der Arbeitsfunktion des Moments

das Potential in Matrix-Schreibweise:

.

wobei

.

Einsetzen der Ansatzfunktion in die Formänderungsenergie und die Arbeitsfunktion liefert für die Matrizen A und b:

,
.

/* define potential energy of system */
PMPE : [U = Π - A,
        Π = 1/2*EI/ℓ^3*'integrate('diff(w(xi),xi,2)^2,xi,0,1),
        A = M*Phi(a)];

PMPE: subst([Phi(a) = subst([xi=alpha],diff(subst(ansatz,w(xi))/ℓ,xi))],
      subst(ansatz,
      subst(PMPE[3],subst(PMPE[2], PMPE[1]))));
PMPE : expand(ev(PMPE,nouns));

/* unknowns */
Q : [q[w],q[p]];




Equilibrium Conditions

Diese Gleichung erfüllt die Gleichgewichtsbedingungen

,

wenn

.

/* equilibrium condition */
eom : makelist(expand(diff(subst(PMPE,U)/(M^2*ℓ/(6*EI)),Q[i])),i,1,2);

A :   funmake('matrix, makelist(makelist(coeff(eom[i],Q[j]),j,1,2),i,1,2));
b : - funmake('matrix, makelist([subst(makelist(Q[j]=0,j,1,2),eom[i])],i,1,2));

print(A,"∙",transpose(Q),"=",b)$




Solving

Auflösen der Gleichungen nach den unbekannten Koordinaten qw und qϕ liefert

.

Damit ist die gesuchte Näherungs-Lösung

.

/* solve */
sol[2] : ratsimp(solve(equcon,[W,Phi]))[1];
/* ... or in dimensionless coordinates */
sol[3] : ratsimp(solve(subst(dimless[1],equcon),[q[w],q[phi]]))[1];
/* approximated solution */
ritz : w(xi)=ratsimp(subst(sol[2],subst(dimless[2],rhs(trial))));




Post-Processing

Verlauf der Koordinaten qw, qϕ

Die gesuchten Koordinaten  qw und qΦ sind dimensionslos. Wir können sie direkt für verschiedene Werte von α auftragen.

Wir sehen:

  • für α=½: die Lösung wird - wie erwartet - nur durch ϕ2 beschreiben - also qw ≈ 0 und qϕ ≈ 1; allerdings ist die Qualität der Lösung mit qϕ = 1/4 sehr schlecht - hier drückt der Sprung in der Momenten-Kennlinie der analytischen Lösung auf das Ergebnis (s.u.).
  • für α= 0: die Lösung wird - wie erwartet - primär durch ϕ1 beschreiben, also qw ≈ 1 und qϕ ≈ 0. Hier zeigt die Lösung mit qw = 1.3 und qϕ = -0.5 einen recht großen Lösungs-Anteil der punktsymmetrischen Trial-Function.
Parameterstudie Biegelinie

Und so sieht die normierte Biegelinie des Balkens im Vergleich von Ritz-Näherung zu analytischer Lösung für verschiedene Werte von a aus:

Die dicken Linien gehören zu Näherung nach dem Ritz-Ansatz, die dünnen zur analytischen Lösung. Je weiter der Momenten-Angriffspunkt in die Balken-Mitte rückt und besonders für α=1/2 liefert der Ritz-Ansatz kein überzeugendes Ergebnis. Hier müssten wir mehr Trial-Functions "spendieren".

Vergleich: analytische / numerische Lösung für den Biegemomenten-Verlauf.

/* post-processing */
/* plot solutions */
preamble: "set yrange [] reverse";

plot2d([subst(sol[2],q[w]),subst(sol[2],q[p])],[alpha,0,1],
  [legend, "q[w]", "q[Φ]"],
  [gnuplot_preamble, preamble],
  [xlabel, "α →"],
  [ylabel, "q[w],q[Φ] →"] );

/* plot w(x) for different αs */
/* and compare analytic with Ritz-solution */

leg : append([legend], makelist(simplode (["α = ",i,"/10"]),i,1,9,2));
toPlot : [makelist(subst([alpha=i/10],ratsimp(subst(ritz,w(xi))/W[max])), i,1,9,2),
          makelist(subst([alpha=i/10],ratsimp(subst(analytic,w(xi))/W[max])), i,1,9,2)];
plot2d(append(toPlot[1],toPlot[2]),[xi,0,1],
  leg,
  [color, green, blue, red, magenta, black],
  [style, [lines,3], [lines,3], [lines,3], [lines,3], [lines,3], [lines,1], [lines,1], [lines,1], [lines,1], [lines,1]],
  [gnuplot_preamble, preamble],
  [xlabel, "x/ℓ →"],
  [ylabel, "w(x)/W →"] );




Post-Processing - Nachtrag

Wieso die Näherungslösung - besonders für α=½ - so schlecht ist, erkennt man beim Auftragen der Biegemomente im Stab für

  • die analytische Lösung
und
  • die numerische Lösung
.

/* Vergleich der Momenten-Kennlinien */
displacements : M*ℓ^2/(6*EI)*[[(xi^3+xi*(2-6*alpha+3*alpha^2)), (xi^3+xi*(2-6*alpha+3*alpha^2) - 3*(xi-alpha)^2)],
                             [((3*alpha^2-6*alpha+2)*xi+(-9*alpha^2+12*alpha-3)*xi^2+(6*alpha^2-6*alpha+1)*xi^3)]];
bendingmoments: subst([xi=t],subst([alpha=1/2],-EI*diff(displacements,xi,2)/ℓ^2/M));

plot2d([[parametric, t, bendingmoments[1][1], [t, 0, 1/2]],
        [parametric, t, bendingmoments[1][2], [t, 1/2, 1]],
        [parametric, t, bendingmoments[2][1], [t,  0 , 1]]],
        [color, red, red, blue],
        [style, [lines,1], [lines,1], [lines,3]],
        [legend, "analytic, section I", "analytic, section II", "Rayleigh-Ritz"],
        [xlabel, "x/ℓ →"],
        [ylabel, "M(x)/M →"] );





Links

  • ...

Literature

  • ...