Gelöste Aufgaben/W8Zt: Unterschied zwischen den Versionen

Aus numpedia
Zur Navigation springen Zur Suche springen
Keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
 
Zeile 14: Zeile 14:
Gesucht ist eine Lösung in Anlehnung an das Verfahren von Ritz - bei dem wir mit Formfunktionen arbeiten, die sich über die gesamte Balkenlänge erstrecken, wir aber im dann mit dem Prinzip der virtuellen Verrückungen arbeiten.
Gesucht ist eine Lösung in Anlehnung an das Verfahren von Ritz - bei dem wir mit Formfunktionen arbeiten, die sich über die gesamte Balkenlänge erstrecken, wir aber im dann mit dem Prinzip der virtuellen Verrückungen arbeiten.
</onlyinclude>
</onlyinclude>
Üblich ist bei [[Randwertprobleme/Methoden zur Lösung von Randwertproblemen/Im Vergleich: das Verfahren von Ritz und die Methode der Finite Elemente|Verfahren von Rayleigh-Ritz]] nämlich sonst das [[Werkzeuge/Gleichgewichtsbedingungen/Arbeitsprinzipe der Analytischen Mechanik/Prinzip vom Minimum der Potentiellen Energie|Prinzip vom Minimum der Potentiellen Energie]].
 
Üblich ist bei [[Randwertprobleme/Methoden zur Lösung von Randwertproblemen/Im Vergleich: das Verfahren von Ritz und die Methode der Finite Elemente|Verfahren von Rayleigh-Ritz]] nämlich sonst das [[Werkzeuge/Gleichgewichtsbedingungen/Arbeitsprinzipe der Analytischen Mechanik/Prinzip vom Minimum der Potentiellen Energie|Prinzip vom Minimum der Potentiellen Energie]]. Die Lösung nach dem Standardverfahren finden Sie hier in [[Gelöste Aufgaben/W8Zu|W8Zu]].


== Lösung mit Maxima ==
== Lösung mit Maxima ==
Mit dem [[Sources/Lexikon/Föppl-Symbol|Föppl-Symbol "<>"]],  
Mit dem [[Sources/Lexikon/Föppl-Symbol|Föppl-Symbol "<>"]], sowie


::<math>\alpha = a/\ell</math>, <math>\beta = 1-\alpha</math> und <math>\xi = x/\ell</math>
::<math>\alpha = a/\ell</math>, <math>\beta = 1-\alpha</math> und <math>\xi = x/\ell</math>

Aktuelle Version vom 19. April 2021, 10:07 Uhr


Aufgabenstellung

Zu den tabellierten Standardlösungen für den Euler-Bernoulli-Blaken berechnen wir eine Näherungslösung für einen beidseitig gelenkig gelagerten Euler-Bernoulli-Balken:


Caption

Gesucht ist eine Lösung in Anlehnung an das Verfahren von Ritz - bei dem wir mit Formfunktionen arbeiten, die sich über die gesamte Balkenlänge erstrecken, wir aber im dann mit dem Prinzip der virtuellen Verrückungen arbeiten.


Üblich ist bei Verfahren von Rayleigh-Ritz nämlich sonst das Prinzip vom Minimum der Potentiellen Energie. Die Lösung nach dem Standardverfahren finden Sie hier in W8Zu.

Lösung mit Maxima

Mit dem Föppl-Symbol "<>", sowie

,  und

ist die analytische Lösung:

.

Bei dieser Lösung hat die unabhängige Koordinate x ihren Ursprung in A - wir verwenden unten einen anderen Ursprung!

Mit den passenden Ansatzfunktionen nach Ritz berechnen Sie eine Näherungslösung des Problems.


Header

Hier arbeiten wir mit Maxima.


/*******************************************************/
/* 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 trialfunctions          */
/*******************************************************/




Declarations

Wir definieren zunächst die Symbole für die virtuellen Arbeiten und die virtuellen Verrückungen - die in Maxima nicht standardmäßig verfügbar sind.

Die Annahme ℓ>0 brauchen wir, damit Maxima Wurzel-Ausdrücke mit diesem Parameter richtig vereinfachen kann.


/* declare variational variables - see 6.3 Identifiers */
declare("δW", alphabetic);
declare("δA", alphabetic);
declare("δΠ", alphabetic);
declare("δV", alphabetic);
declare("δΨ", alphabetic);
declare("δw", alphabetic);

/* declarations */
assume(l>0);




Formfunctions

Als unabhängige Koordinaten des Balkens wählen wir "x" entlang der Neutralen Faser mit Ursprung in der Mitte zwischen A und B.

Wir entscheiden uns zunächst für zwei abhängige Koordinaten des Systems und deren Variationen (δ)

Koordinaten

und wählen V und ψ  als die Verschiebung und Verdrehung (=Neigung) des Querschnitts im Punkt x=0 des Balkens.

Jetzt brauchen wir zwei Ansatzfunktionen, die unseren Koordinaten V und ψ entsprechen. Wir wollen diese beiden anschaulich denken können - wir wählen einfache Polynome: eine achsensymmetrische und eine punktsymmetrische Funktion mit den noch unbestimmten Konstanten cij:

Diese beiden Funktionen müssen

  1. Geometrische Randbedingungen erfüllen und
  2. jeweils mit den Koordinaten V und ψ  verknüpft werden.

Die zugehörigen Gleichungen (= die Randbedingungen) sind

  • und

mit der Lösung

Anstatt der exakten, bekannten Lösung, verwenden wir in diesem Näherungsansatz also nun die Funktion

,
Trial-Functions

die beiden Koordinaten V und ψ müssen wir noch bestimmen. Die Funktionen, die zu V und ψ gehören, sind rechts aufgetragen:

Klar ist: die exakte Lösung dieses Lastfalls ist eine Funktion, die im Querkraftverlauf am Kraftangriffspunkt (x=a - ℓ/2) einen Sprung hat. Dagegen ist der Querkraftverlauf unserer Näherungslösung stetig differenzierbar und obendrauf noch konstant!


/**** define form functions ***/
/* coordinates */
coords : [[V,Psi], [δV,δΨ]];	

/* generic polynomials */
define(v[1](x),sum(c[1,2*i]*x^(2*i),i,0,1));
define(v[2](x),sum(c[2,(2*i+1)]*x^(2*i+1),i,0,1));

/* solve for c's to comply with geometric boundary conditions      */
coeffs : append(solve([v[1](0)=V,v[1](+l/2)=0],[c[1,0],c[1,2]])[1],
                solve([subst([x=0],diff(v[2](x),x))=Psi,v[2](+l/2)=0],[c[2,1],c[2,3]])[1]);

/* employ in polynomials */
forms : [w(x)  = expand(subst(coeffs, sum(v[i](x),i,1,2)))];
forms : append(forms,
                 [δw(x) = subst(makelist(coords[1][i]=coords[2][i],i,1,2),subst(forms,w(x)))]);
trials: subst([x=l*xi],makelist(coeff(subst(forms,w(x)), coords[1][i]),i,1,2));

plot2d( [trials[1],trials[2]/l],[xi,-1/2,+1/2], [legend, "φ[1]","φ[2]"]);




Equilibrium Conditions

Mit dem Prinzip der virtuellen Verrückungen ist die Gleichgewichtsbedingung immer

Mit den Beiträgen

und dem Einsetzen der Ansatzfunktionen und deren Variation finden wir

Achtung: hier bezeichnet nun α=-1 den Punkt A, α=+1 den Punkt B.

Diese virtuelle Arbeit des Gesamtsystems spalten wir jetzt nach den virtuellen Verrückungen auf und erhalten zwei unabhängige Gleichungen in V und ψ:

Und die können wir leicht lösen:


/* Virtual Work of system (equilibrium condition) */
parts : [/* virtual work of implied external force F*/
         δA = F*δw(x[F]),
         /*virt. strain energy*/
         δΠ = integrate(EI*diff(w(x),x,2)*diff(δw(x),x,2),x,-l/2,+l/2)];
parts : subst([δw(x[F]) = subst([x=\alpha*l/2], subst(forms,δw(x)))],parts);
parts : subst(forms,parts);

PvV : δW = δA-δΠ;
PvV : subst(forms,subst(parts,PvV));
/* execute differntiation and integration of δW */
PvV : expand(ev(PvV,nouns));

/* pick individual equations */
equs : makelist(coeff(subst(PvV,δW),coords[2][i]),i,1,2);




Solve

In Matrix-Schreibweise stellen wir diesen Ausdruck gewöhnliches lineares Gleichungssystem dar:

mit

sieht das Gleichungssystem wieder handlich aus, die Lösung ist:

Und wissen Sie auch ....:
... warum A hier eine Diagonalmatrix ist? Schauen Sie sich die Koeffizienten bzgl. von α an - was erkennen Sie?

/* Mathematical Model */
ACM : augcoefmatrix(equs,coords[1]);
/* ordinary lineary system of equations*/
ole : [A = submatrix(ACM,3), b = -col(ACM,3)];
/* -> here we employ the shortcut via "solve" */
sol: solve(equs,coords[1])[1];




Post-Process

Die Lösung normieren wir noch für das Post-Processing mit dem Fakto s - der analytischen maximalen Auslenkung im symmetrischen Belastungsfall (wenn F in der Mitte zwischen A und B angreift):

Wir tragen sie für verschiedene Kraft-Angriffspunkte (α=-1,...α=+1) auf:

Parameterstudie: Auslenkung w(a) des Kraft-Einleitungspunktes

/* plot results */
m : 2; scale : F*l^3/(EI*48);
leg : append([legend],makelist(simplode(["α=",(-m+i)/m]),i,0,2*m));
plotfct : expand(subst([x=xi*l],subst(sol,subst(forms,w(x)/scale))));
toplot : makelist(subst([alpha=(-m+i)/m],plotfct),i,0,2*m);
plot2d(subst([alpha=0],toplot),[xi,-1/2,+1/2], [y,-0.05,1.0], leg,
		[title, "displacement w for different positions of F"]);




Post-Process - Vergleich mit analytischer Lösung

Und wir schauen uns für α=1/2 die Verschiebung der Ritz- und analytischen-Lösung im Vergleich an:

Vergleich der Biegelinie für analytische / numerische Lösung
Und wissen Sie auch ...:
... wie der Verlauf der Querkraft im Vergleich Ritz / analytisch aussieht?

/* Vergleich mit analytischer Lösung */
foppl(xi,alpha) := if (xi < alpha) then 0 else xi-alpha;
anplot : F*l^3/(6*EI)*(beta*xi*(1-beta^2-xi^2)+foppl(xi,alpha)^3)/scale;
anplot : subst([beta=1-alpha],anplot);
ritz: subst([xi=xi-1/2],subst(alpha=1/2,expand(subst(sol,makelist(trials[i]*coords[1][i]/scale,i,1,2)))));

plot2d([subst([alpha=3/4],anplot),ritz[1]+ritz[2], ritz[1],ritz[2]],[xi,0,1],
        [legend, "analytic", "Ritz", "V-part", "Ψ-part"],
        [title, "Vergleich analytische / Ritz - Lösung"])





<Links

  • ...

Literature

  • ...