Gelöste Aufgaben/UEBD: Unterschied zwischen den Versionen

Aus numpedia
Zur Navigation springen Zur Suche springen
Keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
 
Zeile 211: Zeile 211:


Aufgabe UEBC zeigt, welche Ergebnisse die Approximation mit einer Trial-Funktion liefert.
Aufgabe UEBC zeigt, welche Ergebnisse die Approximation mit einer Trial-Funktion liefert.
{{MyTip|titel=Schnittmomenten-Verlauf|text=Probieren Sie aus, wie gut der Ritz-Ansatz den Verlauf des Schnittmoments approximiert!}}
{{MyTip|title=Schnittmomenten-Verlauf|text=Probieren Sie aus, wie gut der Ritz-Ansatz den Verlauf des Schnittmoments approximiert!}}
|code=
|code=
<syntaxhighlight lang="lisp" line start=1>
<syntaxhighlight lang="lisp" line start=1>

Aktuelle Version vom 14. April 2021, 11:05 Uhr


Aufgabenstellung

Der Euler-Bernoulli-Balken AB wird durch eine vertikale Einzelkraft F belastet. Er ist in A fest eingespannt, in B gelenkig gelagert.

UEBC ist eine Variante dieser Aufgabe.

Lageplan

Gesucht ist eine Lösung für die Biegelinie w(x) mit dem Ansatz von Rayleigh-Ritz und zweiTrial-Funktion.


Lösung mit Maxima

Beim Verfahren von Ritz arbeiten wir mit

Um die Lösung dimensionslos zu machen, nutzen wir die analytische Lösung des beidseits gelenkig gelagerten Balkens unter einer mittigen Einzellast (vgl. W8Zu). Hier ist die Neigung des Querschnitts am rechten Rand und die maximale Auslenkung jeweils

.

Damit können wir uns die Lösungen dieses Problems als Vielfaches der analytischen Lösung eines ähnlichen Problems denken.


Header

Das Vorgehen in dieser Aufgabe ist identisch zu UEBC - hier allerdings mit zwei Trial-Functions.


/*******************************************************/
/* MAXIMA script                                       */
/* version: wxMaxima 15.08.2                           */
/* author: Andreas Baumgart                            */
/* last updated: 2017-09-14                            */
/* ref: TM-C, Labor 3 - aus Gross, Augf. TM 2,Biegestab*/
/* description: finds the approx. solution employing   */
/*              two polynomial trial-functions         */
/*******************************************************/




Declarations

Zum Dimensionslos-Machen der Gleichungen brauchen wir später die Größen W, Φ, die wir hier bereits einführen:

.

Daraus folgen später die dimensionslosen Koordinaten des Problems zu

.

/* declare variables */
declare("Π", alphabetic); /* strain energy */

/* make dim'less with load case #1 from Gross e.a. */
dimless: [W   = F*l^3/(48*EI)*q[w],
          Phi = -F*l^2/(6*EI)*(1/2-(1/2)^3)*q[phi],
          x=xi*l,
          a=alpha*l];

Q : [q[w],q[phi]];




Formfunctions

Gesucht ist hier ein Ansatz mit zwei Trial Functions, also

und dem gesuchten Koeffizienten Wi. Die ϕi müssen dabei alle geometrischen Randbedingungen erfüllen:

Diese Funktion zu konstruieren ist nicht ganz trivial. Wir multiplizieren dafür einzelne Terme der Form (x-x0), die die gewünschte Nullstelle für x=x0 erzeugen. An der Stelle x=0 benötigen wir eine doppelte Nullstelle, damit auch die Ableitung an dieser Stelle Null ist.

Für die beiden Trial-Funktionen wählen wir

  • ϕ1 so, dass sie am rechten Rand keine Steigung hat, aber eine Auslenkung am Kraftangriffspunkt, also und
  • ϕ2 so, dass sie am rechten Rand eine Steigung hat, aber keine Auslenkung am Kraftangriffspunkt, also .

Die freien Koeffizienten Ci wählen wir so, dass wir sie anschaulich "denken" können - wir wählen

  • die gesuchte Auslenkung an der Kraft-Einleitungsstelle x=a für 'ϕ1', also

und

  • die gesuchte Neigung am rechten Rand für ϕ2 , also

.

aus W8Zu. Mit den neuen, dimensionslosen Koordinaten Q ist

,

und damit

.
Trial-Functions

Für α=2/3 sehen die Trial-Funktionen so aus:


/* derive trial-function(s) */
trial: w(x) = sum(c[i]*x^i,i,0,4);
GBC: [subst([x=0],subst(trial,w(x)))=0,
      subst([x=0],diff(subst(trial,w(x)),x))=0,
      subst([x=l],subst(trial,w(x)))=0,
      subst([x=a],subst(trial,w(x)))=W,
      subst([x=l],diff(subst(trial,w(x)),x))=Phi];

C: makelist(c[i],i,0,4);
sol[1] : solve(GBC,C)[1];
trial: ratsimp(subst(sol[1],trial));

/* trial functions */
fcts: ratsimp([1,1/l]*subst(dimless,
         makelist(coeff(expand(subst(trial,w(x))),[W,Phi][i]),i,1,2)));
plot2d(subst([alpha=2/3],fcts),[xi,0,1],
  [title, "trial-fcts for α = 2/3"],
  [legend, "w", "Φ"],
  [xlabel, "α →"],
  [ylabel, "w,ϕ →"],
  [style, [lines,3]] );




Potential Energy

Für die Gleichgewichtsbedingungen setzten wir Π und A in U ein und schreiben die skalare Gleichung allgemein in Matrizenform an. Dabei müssen wir

berücksichtigen und erhalten

.

/* define potential energy of system */
PMPE : [U = Π - A,
        Π = 1/2*EI*'integrate('diff(w(x),x,2)^2,x,0,l),
        A = F*w(a)];

/* equations of motion */
PMPE: subst(w(a) = subst(a,x,subst(trial,w(x))),
  subst(trial,
    subst(PMPE[3],subst(PMPE[2], PMPE[1]))));
PMPE : ev(PMPE,nouns);




Equilibrium Conditions

Diese Gleichung erfüllt die Gleichgewichtsbedingungen

,

wenn

.

Das Gleichungssystem dazu ist


/* equilibrium condition */
equcon: ['diff(U,W) = 0,'diff(U,Phi) = 0];
equcon: subst(PMPE,equcon);
equcon: ev(equcon,nouns);
equcon: subst(dimless,equcon);




Solving

Diese Gleichgewichtsbedingung erfüllt

.

/* solve for dim'less coordinates Q */
sol[2] : solve(equcon,Q)[1];




Post-Processing

Auslenkung und Kippung w(x), ϕ(x) der Querschnitte

Wir schauen uns zunächst die Absenkung des Kraftangriffspunktes w(a) und die Neigung w'(l) für verschiedene Werte von a (α)  an:

Wie der Verlauf der approximierten Biegelinie aussieht, schauen wir uns jetzt an - und zwar für verschiedene Werte von α:

Parameterstudie für α

Sie sehen, dass für α=6/10 die Auslenkung dieses Systems nur knapp die Hälfte der maximalen Auslenkung eines beidseitig gelenkig gelagerten Balkens beträgt - hier in unserer Approximation mit zwei Trial-Funktion.

Aufgabe UEBC zeigt, welche Ergebnisse die Approximation mit einer Trial-Funktion liefert.

Schnittmomenten-Verlauf:
Probieren Sie aus, wie gut der Ritz-Ansatz den Verlauf des Schnittmoments approximiert!

/* plot displacement of w(a) */
preamble: "set yrange [] reverse";
plot2d(subst(sol[2],Q),[alpha,0,1],
  [legend, "w", "Φ"],
  [xlabel, "α →"],
  [ylabel, "w/W,w'/Φ →"],
  [gnuplot_preamble, preamble],
  [style, [lines,3]] );

/* plot displacement of w(xi) for different values of alpha */
toPlot : ratsimp(subst(sol[2],subst(dimless,
                 subst(trial,w(x)/subst([q[w]=1],subst(dimless,W))))));
toPlot : makelist(subst([alpha=i/10],toPlot), i,2,8,2);
leg : append([legend], makelist(simplode (["α = ",i,"/10"]),i,2,8,2));
plot2d(toPlot,[xi,0,1],
  leg,
  [xlabel, "x/l →"],
  [ylabel, "w(x)/W →"],
  [gnuplot_preamble, preamble],
  [style, [lines,3]] );





Links

  • ...

Literature

  • ...