Gelöste Aufgaben/Kw98: Unterschied zwischen den Versionen
Keine Bearbeitungszusammenfassung |
Keine Bearbeitungszusammenfassung |
||
Zeile 184: | Zeile 184: | ||
}} | }} | ||
== | <!--------------------------------------------------------------------------------> | ||
{{MyCodeBlock|title=Prepare for Solver | |||
|text= | |||
Das Gleichungssystem wollen wir als | Das Gleichungssystem wollen wir als | ||
<math>\underline{\underline{A}}\cdot\underline{x}= \underline{b}</math> | ::<math>\underline{\underline{A}}\cdot\underline{x}= \underline{b}</math> | ||
schreiben, also | schreiben, also | ||
<math>\begin{pmatrix}\frac{1}{{{\mathit{EI}}_{1}}} & 0 & 0 & 0 & 0 & 0 & 0 & 0\\ 0 & \frac{{{K}_{A}}}{{{\mathit{EI}}_{1}}} & -1 & 0 & 0 & 0 & 0 & 0\\ \frac{1}{{{\mathit{EI}}_{1}}} & \frac{{{\ell}_{1}}}{{{\mathit{EI}}_{1}}} & \frac{{{\ell}_{1}^{2}}}{2\cdot {{\mathit{EI}}_{1}}} & \frac{{{\ell}_{1}^{3}}}{6\cdot {{\mathit{EI}}_{1}}} & -\frac{1}{{{\mathit{EI}}_{2}}} & 0 & 0 & 0\\ 0 & \frac{1}{{{\mathit{EI}}_{1}}} & \frac{{{\ell}_{1}}}{{{\mathit{EI}}_{1}}} & \frac{{{\ell}_{1}^{2}}}{2\cdot {{\mathit{EI}}_{1}}} & 0 & -\frac{1}{{{\mathit{EI}}_{2}}} & 0 & 0\\ 0 & 0 & 0 & 1 & -\frac{{{k}_{B}}}{{{\mathit{EI}}_{2}}} & 0 & 0 & -1\\ 0 & 0 & 1 & {{\ell}_{1}} & 0 & 0 & -1 & 0\\ 0 & 0 & 0 & 0 & 0 & \frac{1}{{{\mathit{EI}}_{2}}} & \frac{{{\ell}_{2}}}{{{\mathit{EI}}_{2}}} & \frac{{{\ell}_{2}^{2}}}{2\cdot {{\mathit{EI}}_{2}}}\\ 0 & 0 & 0 & 0 & -\frac{{{k}_{C}}}{{{\mathit{EI}}_{2}}} & -\frac{{{\ell}_{2}}\cdot {{k}_{C}}}{{{\mathit{EI}}_{2}}} & -\frac{{{\ell}_{2}^{2}}\cdot {{k}_{C}}}{2\cdot {{\mathit{EI}}_{2}}} & -\frac{{{\ell}_{2}^{3}}\cdot {{k}_{C}}-6\cdot {{\mathit{EI}}_{2}}}{6\cdot {{\mathit{EI}}_{2}}}\end{pmatrix}\cdot\underline{x}=\begin{pmatrix}0\\ 0\\ -\frac{{{\ell}_{1}^{4}}\cdot {{q}_{B}}}{120\cdot {{\mathit{EI}}_{1}}}-\frac{{{\ell}_{1}^{4}}\cdot {{q}_{A}}}{30\cdot {{\mathit{EI}}_{1}}}\\ -\frac{{{\ell}_{1}^{3}}\cdot {{q}_{B}}}{24\cdot {{\mathit{EI}}_{1}}}-\frac{{{\ell}_{1}^{3}}\cdot {{q}_{A}}}{8\cdot {{\mathit{EI}}_{1}}}\\ -\frac{{{\ell}_{1}}\cdot {{q}_{B}}}{2}-\frac{{{\ell}_{1}}\cdot {{q}_{A}}}{2}\\ {{M}_{B}}-\frac{{{\ell}_{1}^{2}}\cdot {{q}_{B}}}{6}-\frac{{{\ell}_{1}^{2}}\cdot {{q}_{A}}}{3}\\ 0\\ 0\end{pmatrix} | ::<math>\begin{pmatrix}\frac{1}{{{\mathit{EI}}_{1}}} & 0 & 0 & 0 & 0 & 0 & 0 & 0\\ 0 & \frac{{{K}_{A}}}{{{\mathit{EI}}_{1}}} & -1 & 0 & 0 & 0 & 0 & 0\\ \frac{1}{{{\mathit{EI}}_{1}}} & \frac{{{\ell}_{1}}}{{{\mathit{EI}}_{1}}} & \frac{{{\ell}_{1}^{2}}}{2\cdot {{\mathit{EI}}_{1}}} & \frac{{{\ell}_{1}^{3}}}{6\cdot {{\mathit{EI}}_{1}}} & -\frac{1}{{{\mathit{EI}}_{2}}} & 0 & 0 & 0\\ 0 & \frac{1}{{{\mathit{EI}}_{1}}} & \frac{{{\ell}_{1}}}{{{\mathit{EI}}_{1}}} & \frac{{{\ell}_{1}^{2}}}{2\cdot {{\mathit{EI}}_{1}}} & 0 & -\frac{1}{{{\mathit{EI}}_{2}}} & 0 & 0\\ 0 & 0 & 0 & 1 & -\frac{{{k}_{B}}}{{{\mathit{EI}}_{2}}} & 0 & 0 & -1\\ 0 & 0 & 1 & {{\ell}_{1}} & 0 & 0 & -1 & 0\\ 0 & 0 & 0 & 0 & 0 & \frac{1}{{{\mathit{EI}}_{2}}} & \frac{{{\ell}_{2}}}{{{\mathit{EI}}_{2}}} & \frac{{{\ell}_{2}^{2}}}{2\cdot {{\mathit{EI}}_{2}}}\\ 0 & 0 & 0 & 0 & -\frac{{{k}_{C}}}{{{\mathit{EI}}_{2}}} & -\frac{{{\ell}_{2}}\cdot {{k}_{C}}}{{{\mathit{EI}}_{2}}} & -\frac{{{\ell}_{2}^{2}}\cdot {{k}_{C}}}{2\cdot {{\mathit{EI}}_{2}}} & -\frac{{{\ell}_{2}^{3}}\cdot {{k}_{C}}-6\cdot {{\mathit{EI}}_{2}}}{6\cdot {{\mathit{EI}}_{2}}}\end{pmatrix}\cdot\underline{x}=\begin{pmatrix}0\\ 0\\ -\frac{{{\ell}_{1}^{4}}\cdot {{q}_{B}}}{120\cdot {{\mathit{EI}}_{1}}}-\frac{{{\ell}_{1}^{4}}\cdot {{q}_{A}}}{30\cdot {{\mathit{EI}}_{1}}}\\ -\frac{{{\ell}_{1}^{3}}\cdot {{q}_{B}}}{24\cdot {{\mathit{EI}}_{1}}}-\frac{{{\ell}_{1}^{3}}\cdot {{q}_{A}}}{8\cdot {{\mathit{EI}}_{1}}}\\ -\frac{{{\ell}_{1}}\cdot {{q}_{B}}}{2}-\frac{{{\ell}_{1}}\cdot {{q}_{A}}}{2}\\ {{M}_{B}}-\frac{{{\ell}_{1}^{2}}\cdot {{q}_{B}}}{6}-\frac{{{\ell}_{1}^{2}}\cdot {{q}_{A}}}{3}\\ 0\\ 0\end{pmatrix} | ||
</math> | </math> | ||
Die Matrix-Elemente sind für die Koeffizientenmatrix | Die Matrix-Elemente sind für die Koeffizientenmatrix | ||
<math>\begin{array}{l} a_{1,1} = 1/EI_{1}\\ a_{2,2} = K_{A}/EI_{1}\\ a_{2,3} = -1\\ a_{3,1} = 1/EI_{1}\\ a_{3,2} = \ell_{1}/EI_{1}\\ a_{3,3} = \ell_{1}^2/(2\cdot EI_{1})\\ a_{3,4} = \ell_{1}^3/(6\cdot EI_{1})\\ a_{3,5} = -1/EI_{2}\\ a_{4,2} = 1/EI_{1}\\ a_{4,3} = \ell_{1}/EI_{1}\\ a_{4,4} = \ell_{1}^2/(2\cdot EI_{1})\\ a_{4,6} = -1/EI_{2}\\ a_{5,4} = 1\\ a_{5,5} = -k_{B}/EI_{2}\\ a_{5,8} = -1\\ a_{6,3} = 1\\ a_{6,4} = \ell_{1}\\ a_{6,7} = -1\\ a_{7,6} = 1/EI_{2}\\ a_{7,7} = \ell_{2}/EI_{2}\\ a_{7,8} = \ell_{2}^2/(2\cdot EI_{2})\\ a_{8,5} = -k_{C}/EI_{2}\\ a_{8,6} = -(\ell_{2}\cdot k_{C})/EI_{2}\\ a_{8,7} = -(\ell_{2}^2\cdot k_{C})/(2\cdot EI_{2})\\ a_{8,8} = -(\ell_{2}^3\cdot k_{C}-6\cdot EI_{2})/(6\cdot EI_{2})\\ \end{array}</math> | ::<math>\begin{array}{l} a_{1,1} = 1/EI_{1}\\ a_{2,2} = K_{A}/EI_{1}\\ a_{2,3} = -1\\ a_{3,1} = 1/EI_{1}\\ a_{3,2} = \ell_{1}/EI_{1}\\ a_{3,3} = \ell_{1}^2/(2\cdot EI_{1})\\ a_{3,4} = \ell_{1}^3/(6\cdot EI_{1})\\ a_{3,5} = -1/EI_{2}\\ a_{4,2} = 1/EI_{1}\\ a_{4,3} = \ell_{1}/EI_{1}\\ a_{4,4} = \ell_{1}^2/(2\cdot EI_{1})\\ a_{4,6} = -1/EI_{2}\\ a_{5,4} = 1\\ a_{5,5} = -k_{B}/EI_{2}\\ a_{5,8} = -1\\ a_{6,3} = 1\\ a_{6,4} = \ell_{1}\\ a_{6,7} = -1\\ a_{7,6} = 1/EI_{2}\\ a_{7,7} = \ell_{2}/EI_{2}\\ a_{7,8} = \ell_{2}^2/(2\cdot EI_{2})\\ a_{8,5} = -k_{C}/EI_{2}\\ a_{8,6} = -(\ell_{2}\cdot k_{C})/EI_{2}\\ a_{8,7} = -(\ell_{2}^2\cdot k_{C})/(2\cdot EI_{2})\\ a_{8,8} = -(\ell_{2}^3\cdot k_{C}-6\cdot EI_{2})/(6\cdot EI_{2})\\ \end{array}</math> | ||
und für die rechte Seite | und für die rechte Seite | ||
<math>\begin{array}{l} b_{1} = 0\\ b_{2} = 0\\ b_{3} = (-(\ell_{1}^4\cdot q_{B})/(120\cdot EI_{1}))-(\ell_{1}^4\cdot q_{A})/(30\cdot EI_{1})\\ b_{4} = (-(\ell_{1}^3\cdot q_{B})/(24\cdot EI_{1}))-(\ell_{1}^3\cdot q_{A})/(8\cdot EI_{1})\\ b_{5} = (-(\ell_{1}\cdot q_{B})/2)-(\ell_{1}\cdot q_{A})/2\\ b_{6} = M_{B}-(\ell_{1}^2\cdot q_{B})/6-(\ell_{1}^2\cdot q_{A})/3\\ b_{7} = 0\\ b_{8} = 0 \end{array}</math> | ::<math>\begin{array}{l} b_{1} = 0\\ b_{2} = 0\\ b_{3} = (-(\ell_{1}^4\cdot q_{B})/(120\cdot EI_{1}))-(\ell_{1}^4\cdot q_{A})/(30\cdot EI_{1})\\ b_{4} = (-(\ell_{1}^3\cdot q_{B})/(24\cdot EI_{1}))-(\ell_{1}^3\cdot q_{A})/(8\cdot EI_{1})\\ b_{5} = (-(\ell_{1}\cdot q_{B})/2)-(\ell_{1}\cdot q_{A})/2\\ b_{6} = M_{B}-(\ell_{1}^2\cdot q_{B})/6-(\ell_{1}^2\cdot q_{A})/3\\ b_{7} = 0\\ b_{8} = 0 \end{array}</math>. | ||
|code= | |code= | ||
<syntaxhighlight lang="lisp" line start=1> | <syntaxhighlight lang="lisp" line start=1> | ||
1 | /* augmented coeff matrix */ | ||
ACM: augcoefmatrix(BCs,ICs); | |||
AA : submatrix(ACM,9); | |||
bb : - col(ACM,9); | |||
for i: 1 thru 8 do | |||
print(simplode(["b[",i,"] = ", string(bb[i][1])]))$ | |||
for i: 1 thru 8 do | |||
for j: 1 thru 8 do | |||
if not AA[i][j] = 0 then | |||
print(simplode(["A[",i,",",j,"] = ", string(AA[i][j])]))$ | |||
</syntaxhighlight> | </syntaxhighlight> | ||
}} | }} | ||
== | <!--------------------------------------------------------------------------------> | ||
{{MyCodeBlock|title=Solving | |||
|text= | |||
Das Lösen des Gleichungssystems liefert | Das Lösen des Gleichungssystems liefert | ||
<math>\begin{array}{l} {{C}_{1,0}}=0,\\{{C}_{1,1}}=246.1 \; N {{m}^{2}},\\{{C}_{1,2}}=703.2\; N m,\\{{C}_{1,3}}=-2404.3\; N,\\{{C}_{2,0}}=127.6 \; N m^3,\\{{C}_{2,1}}=224.7\; N m^2,\\{{C}_{2,2}}=-979.8 \; N m,\\{{C}_{2,3}}=2101.8 N \end{array}</math> | ::<math>\begin{array}{l} {{C}_{1,0}}=0,\\{{C}_{1,1}}=246.1 \; N {{m}^{2}},\\{{C}_{1,2}}=703.2\; N m,\\{{C}_{1,3}}=-2404.3\; N,\\{{C}_{2,0}}=127.6 \; N m^3,\\{{C}_{2,1}}=224.7\; N m^2,\\{{C}_{2,2}}=-979.8 \; N m,\\{{C}_{2,3}}=2101.8 N \end{array}</math>. | ||
|code= | |code= | ||
<syntaxhighlight lang="lisp" line start=1> | <syntaxhighlight lang="lisp" line start=1> | ||
Zeile 226: | Zeile 231: | ||
}} | }} | ||
= | <!--------------------------------------------------------------------------------> | ||
{{MyCodeBlock|title=Post-Processing | |||
|text= | |||
Und die Ergebnisse können wir uns anschauen ... | Und die Ergebnisse können wir uns anschauen ... | ||
Zeile 241: | Zeile 248: | ||
[[Datei:Kw98-24.png|mini|Querkraft ''Q(x)''|alternativtext=|ohne]] | [[Datei:Kw98-24.png|mini|Querkraft ''Q(x)''|alternativtext=|ohne]] | ||
====... für die Lager-Reaktionskräfte:==== | |||
::<math>\begin{array}{l} {{A}_{z}}=2404.3 N,\\{{M}_{A}}=703.2 Nm,\\{{B}_{z}}=743.9 N,\\{{C}_{z}}=2101.8 N,\\{{M}_{C}}=-123.7 Nm\end{array}</math> | |||
|code= | |code= | ||
<syntaxhighlight lang="lisp" line start=1> | <syntaxhighlight lang="lisp" line start=1> | ||
1+1 | /* bearing forces and moments */ | ||
reactForces: [A[z]=Q[1](0), | |||
M[A] = K[A]*Phi[1](0), | |||
B[z] = k[B]*w[2](0), | |||
C[z] = k[C]*w[2](l[2]), | |||
M[C] = M[2](l[2])]; | |||
expand(subst(params,subst(sol, reactForces))); | |||
/* plot displacements */ | |||
fcts: [[ w [1](x), w [2](x-l[1])], | |||
[Phi[1](x),Phi[2](x-l[1])], | |||
[ M [1](x), M [2](x-l[1])], | |||
[ Q [1](x), Q [2](x-l[1])]]; | |||
facts: [EI[1]/(l[1]^4*q[A]),EI[1]/(l[1]^3*q[A]),1/(l[1]^2*q[A]),1/(l[1]^1*q[A])]; | |||
subst(M[B]/l[1]^2,q[A],facts); | |||
textlabels : ["w(x)/(M[B]*l^2/EI[1])→", "w'(x)/(M[B]*l/EI[1])→", "M(x)/M[B]→", "Q(x)/(M[B]/l[1]→"]; | |||
for i: 1 thru 4 do( | |||
f : expand(subst(simple,subst(xi*l[1],x,facts[i]*[subst(sol, fcts[i][1]), | |||
subst(sol, fcts[i][2])]))), | |||
f1 : f[1], f2 : f[2], | |||
toplot : [if xi<=1 then f1 else 0, | |||
if xi < 1 then 0 else f2], | |||
plot2d(toplot,[xi,0,1+subst(simple,l[2]/l[1])], [legend, "sec. I", "sec. II"], | |||
[gnuplot_preamble, "set yrange [] reverse"] , | |||
[xlabel, "x/l[1] ->"], | |||
[ylabel, textlabels[i]]))$ | |||
</syntaxhighlight> | </syntaxhighlight> | ||
}} | }} |
Version vom 31. März 2021, 12:13 Uhr
Aufgabenstellung
Ein Stab ABC ist durch eine lineare veränderliche Streckenlast q mit den Eckwerten qA in A und qB in B sowie dem Moment MB in B belastet. Der Stab (E-Modul: E) besteht aus zwei Sektionen mit den Längen l1 bzw. l2 sowie den Flächenmomenten I1 bzw. I2. Der Stab ist in A durch ein gelenkiges Festlager, in C durch eine Schiebehülse gelagert, in B sind die beiden Sektionen fest miteinander verbunden. Die Feder in A ist eine Drehfester mit Steifigkeit KA, die Federn in B und C sind Translationsfedern mit den Steifigkeiten kB, kC.
Gesucht ist die analytische Lösung für den Euler-Bernoulli-Balken.
Ermitteln Sie für ein Euler-Bernoulli-Modell die analytischen Verläufe der Schnittgrößen und Verschiebungen im Balken für diese Parameter:
Lösung mit Maxima
Die Aufgabe ist ein klassisches Randwertproblem:
- zwei Gebiete, in denen ein Euler-Bernoulli-Balken in AB und BC durch eine Streckenlast q belastet ist (in Bereich II ist die Streckenlast allerdings Null) und somit durch die Differentialbeziehung
berschrieben wird. - Rand- und Übergangsbedingungen in den Punkten A, B, C
Wir verwenden xi und ξi als Koordinaten je Bereich, in der Übersicht sieht das Randwertproblem so aus:
Rand A | Bereich I | Übergang B | Bereich II | Rand C |
---|---|---|---|---|
Header
Diese Aufgabe mit der Methode der Finiten Elemente in KW96 gelöst.
/*******************************************************/
/* MAXIMA script */
/* version: wxMaxima 15.08.2 */
/* author: Andreas Baumgart */
/* last updated: 2017-09-06 */
/* ref: TM-C, Labor 1 */
/* description */
/* */
/*******************************************************/
Declarations
Wir definieren die Parameter
- .
und die Formfunktionen für die Streckenlast
- .
/* system parameter */
units : [mm = m/1000, cm = m/100];
params : [q[A]=3*N/mm, l[1]=700*mm, EI[1] = 2.1*10^11*N/m^2 * 3*cm*(4*cm)^3/12];
simple : [l[2] = 3/4*l[1], EI[2] = EI[1]/2,
K[A]=2*EI[1]/l[1], k[C] = 512/229*EI[1]/l[1]^3, k[B] = EI[1]/l[1]^3,
q[B] = 4*q[A], M[B] = q[A]*l[1]^2];
params : append(params,makelist(lhs(simple[i])=subst(params,rhs(simple[i])),i,1,length(simple)));
params : subst(units,params);
/* form - functions */
phi[0](xi) := 1 - xi;
phi[1](xi) := xi;
Formfunctions
In Bereich I und II gilt dieselbe Bewegungs-Differentialgleichung
- ,
die wir durch Integration lösen und dann bereichsweise anpassen.
So gilt für Bereich II: q0 = 0 und q1 = 0.
Die allgemeine Lösung ist mit
... für Bereich I:
... für Bereich II:
- .
/* solve ....*/
dgl : EI[i]*diff(w(x),x,4) = q[0]*phi[0](x/l[i]) + q[1]*phi[1](x/l[i]);
/* generic solution */
displ : solve(integrate(integrate(integrate(integrate(dgl,x),x),x),x),w(x));
sections: [[i=1, %c4=C[1,0], %c3=C[1,1], %c2=C[1,2], %c1=C[1,3], q[0]=q[A], q[1]=q[B]],
[i=2, %c4=C[2,0], %c3=C[2,1], %c2=C[2,2], %c1=C[2,3], q[0]= 0 , q[1]= 0 ]];
/* section I */
define( w[1](x), subst(sections[1],subst(displ,w(x))));
define(Phi[1](x), diff(w[1](x),x ));
define( M[1](x), -EI[1]*diff(w[1](x),x,2));
define( Q[1](x), -EI[1]*diff(w[1](x),x,3));
/* section II */
define( w[2](x), subst(sections[2],subst(displ,w(x))));
define(Phi[2](x), diff(w[2](x),x ));
define( M[2](x), -EI[2]*diff(w[2](x),x,2));
define( Q[2](x), -EI[2]*diff(w[2](x),x,3));
Boundary Conditions
Für die 2*4 = 8 Integrationskonstanten
suchen wir jetzt die passenden Gleichungen aus Rand- und Übergangsbedingungen.
Zur besseren Übersicht nennen wir die Schnitt-Momente und -Kräfte nach den jeweiligen Knotenpunkten A, B, C und fügen als Index ein + / - hinzu, um die Seite (+: rechts vom Knoten, -: links vom Knoten) zu kennzeichnen.
Aus Rand "A"
Geometrische Randbedingungen
Kraft- und Momenten-Randbedingungen |
Aus Übergang "B"
Geometrische Randbedingungen
Kraft- und Momenten-Randbedingungen |
Aus Rand "C"
Geometrische Randbedingungen
Kraft- und Momenten-Randbedingungen |
Und das liefert das Gleichungssystem aus 8 Gleichungen
für die Integrationskonstanten.
1+1
Prepare for Solver
Das Gleichungssystem wollen wir als
schreiben, also
Die Matrix-Elemente sind für die Koeffizientenmatrix
und für die rechte Seite
- .
/* augmented coeff matrix */
ACM: augcoefmatrix(BCs,ICs);
AA : submatrix(ACM,9);
bb : - col(ACM,9);
for i: 1 thru 8 do
print(simplode(["b[",i,"] = ", string(bb[i][1])]))$
for i: 1 thru 8 do
for j: 1 thru 8 do
if not AA[i][j] = 0 then
print(simplode(["A[",i,",",j,"] = ", string(AA[i][j])]))$
Solving
Das Lösen des Gleichungssystems liefert
- .
1+1
Post-Processing
Und die Ergebnisse können wir uns anschauen ...
... für w(x):
... für Φ(x):
... für M(x):
... für Q(x):
... für die Lager-Reaktionskräfte:
/* bearing forces and moments */
reactForces: [A[z]=Q[1](0),
M[A] = K[A]*Phi[1](0),
B[z] = k[B]*w[2](0),
C[z] = k[C]*w[2](l[2]),
M[C] = M[2](l[2])];
expand(subst(params,subst(sol, reactForces)));
/* plot displacements */
fcts: [[ w [1](x), w [2](x-l[1])],
[Phi[1](x),Phi[2](x-l[1])],
[ M [1](x), M [2](x-l[1])],
[ Q [1](x), Q [2](x-l[1])]];
facts: [EI[1]/(l[1]^4*q[A]),EI[1]/(l[1]^3*q[A]),1/(l[1]^2*q[A]),1/(l[1]^1*q[A])];
subst(M[B]/l[1]^2,q[A],facts);
textlabels : ["w(x)/(M[B]*l^2/EI[1])→", "w'(x)/(M[B]*l/EI[1])→", "M(x)/M[B]→", "Q(x)/(M[B]/l[1]→"];
for i: 1 thru 4 do(
f : expand(subst(simple,subst(xi*l[1],x,facts[i]*[subst(sol, fcts[i][1]),
subst(sol, fcts[i][2])]))),
f1 : f[1], f2 : f[2],
toplot : [if xi<=1 then f1 else 0,
if xi < 1 then 0 else f2],
plot2d(toplot,[xi,0,1+subst(simple,l[2]/l[1])], [legend, "sec. I", "sec. II"],
[gnuplot_preamble, "set yrange [] reverse"] ,
[xlabel, "x/l[1] ->"],
[ylabel, textlabels[i]]))$
Links
- ...
Literature
- ...