E1

Lehrstück


   

Durch zweimaliges Klicken auf den äusseren Balken mit dem Fähnchen unten kann man die Zellen auf- und zuklappen!!!

Klicke auf den rechten äusseren Balken und drücke dann  die "Enter-Taste", wenn der Balken sich schwarz verfärbt hat!

Erst Eingaben

Voreinstellung Eckpunktskoordinaten

Skizzen

[Graphics:HTMLFiles/PrototypStatikTragwerkeOffen_2.gif]

[Graphics:HTMLFiles/PrototypStatikTragwerkeOffen_3.gif]

[Graphics:HTMLFiles/PrototypStatikTragwerkeOffen_4.gif]

Go to▼

Rechnung (in der Reihenfolge der Zeilen Run machen)

p1 = {0, 0} ;

p2 = {10, 0} ;

p3 = p2 ;

p4 = {0, 4} ;

<<Graphics`Arrow` ;

[Graphics:HTMLFiles/PrototypStatikTragwerkeOffen_12.gif]

p1 = {0, 0} ;

p2 = {10, 0} ;

p3 = {11, 2} ;

p4 = {0, 4} ;

<<Graphics`Arrow` ;

[Graphics:HTMLFiles/PrototypStatikTragwerkeOffen_19.gif]

Eingabe von Eckpunktskoordinaten (in der Reihenfolge der Zeilen Run machen)

A1

p1 = {0, 0} ;

A2

p2 = {10, 0} ;

A3

p3 = {11, 2} ;    (* p3 = p2 ist zulässig *)

A4

p4 = {0, 4} ;

inpQKoord=Input["Neue Eckpunktkoordinaten eingeben? Ja ==> input 1, Nein ==> input 0 !!!!"];
If[inpQKoord==1,
Print["Yes = ", inpQKoord];
p1  = Input["p1 eingeben, z.B. {0,0} "];  Print["p1 = ", p1];
p2  = Input["p2 eingeben, z.B. {10,0} "]; Print["p2 = ", p2];
p3  = Input["p3 eingeben, z.B. {11,2} "]; Print["p3 = ", p3];
p4  = Input["p4 eingeben, z.B. {0,4} "];  Print["p4 = ", p4],
inpQKoord = 0; Print["No = ", inpQKoord]; Print["Koordinaten o.k."]];

No = 0

Koordinaten o.k.

E2

Eingabe der Zwischenpunkte

B1

AnzahlZwischenpunkte = 4 ;

inpQZP=Input["Neue Anzahl Zwischenpunkte eingeben? Ja ==> input 1, Nein ==> input 0 !!!!"];
If[inpQZP==1,
Print["Yes = ", inpQZP];
AnzahlZwischenpunkte  = Input["Anzahl Zwischenpunkte, z.B. 4 "],
inpQZP = 0; Print["No = ", inpQZP]; Print["Zwischenpunkte o.k."]];
  Print["Anzahl Zwischenpunkte = ", AnzahlZwischenpunkte]

No = 0

Zwischenpunkte o.k.

Anzahl Zwischenpunkte = 4

E3

{{Eingabe : Mögliche eigene Angabe der Zwischenpunkte :}, {}, {<a href=Überschreibe Zwischenpunkte anz[p1, p2] = 4 ; }} " width="365" height="61" style="vertical-align:middle" />

Lasse den Computer rechnen:

Vorgesenener weiterer Entwicklungsschritt : <a href=Startpunkt (p1 oder p4)   start = p1 ; " width="527" height="17" style="vertical-align:middle" />

B2

startVar = p1 ;   (* Default p1 . Späterer Entwicklungsschritt : p1 oder p4 einsetzen *)

If[startVar == p1, sV = 2 , sV = 1 ; Print["Achtung! Die y-Koordinate ist aus Gründen der Einfachheit gespiegelt worden!"]] ;

p1 = {p1[[1]], (-1)^sV p1[[2]]} ; p2 = {p2[[1]], (-1)^sV p2[[2]]} ; p3 = {p3[[1]], (-1)^sV p3[[2]]} ; p4 = {p4[[1]], (-1)^sV p4[[2]]} ;

pu[k_] := k (p2 - p1) ;

po[k_] := k (p3 - p4) ;

az = AnzahlZwischenpunkte ;

<<Graphics`Arrow` ;

[Graphics:HTMLFiles/PrototypStatikTragwerkeOffen_43.gif]

Tabelle der Punktkoordinaten und Skizze ausgeben:

pu[k_] := p1 + k/(az + 1) (p2 - p1) ;

po[k_] := p4 + k/(az + 1) (p3 - p4) ;

Prepend[Table[{k, pu[k], po[k]}, {k, 0, az + 1}], {"k", "pu[k]", "po[k]"}]//MatrixForm//N

( {{k, pu[k], po[k]}, {0., {0., 0.}, {0., 4.}}, {1., {2., 0.}, {2.2, 3.6}}, {2., {4., 0.}, {4.4, 3.2}}, {3., {6., 0.}, {6.6, 2.8}}, {4., {8., 0.}, {8.8, 2.4}}, {5., {10., 0.}, {11., 2.}}} )

<<Graphics`Arrow` ;

tabpu = Table[pu[k], {k, 0, az + 1}] ;

tabpo = Table[po[k], {k, 0, az + 1}] ;

tabPointpupo = Flatten[{Table[Point[pu[k]], {k, 0, az + 1}], Table[Point[po[k]], {k, 0, az + 1}]}] ;

[Graphics:HTMLFiles/PrototypStatikTragwerkeOffen_54.gif]

Skizze der Stäbe

<<Graphics`Arrow`;
tabLineTo=Table[lineTo[k],{k,1,az}];
tabLineFrom=Table[lineFrom[k],{k,0,az}];
tabLines=Flatten[{tabLineTo,tabLineFrom}];
Show[Graphics[Join[{Text["p1",p1,{-1,(-1)^sV }],Text["p2",p2,{0,(-1)^sV }],Text["p3",p3,{0,-1.5 (-1)^sV }],Text["p4",p4,{-1,-1 (-1)^sV }],
          Text["Kraft",p3,{-2,-2},{1,1}],Line[{p1-0.2(p4-p1),p4+0.2(p4-p1)}],
          Thickness[.015],
          Arrow[p3+2{1,1},p3+0.5{1,1}],
          Line[{p1,p2,p3,p4,p1}],tabLines,
          PointSize[0.03],RGBColor[1,0,0],
          Point[p1],Point[p2],Point[p3],Point[p4]},tabPointpupo],PlotRange→All],AspectRatio→Automatic];

[Graphics:HTMLFiles/PrototypStatikTragwerkeOffen_57.gif]

Eingabe Kräfte

Default: Kraft = 0, Aussenkraft bei p3 = { -1, -1 }

kraftU[k_]:={0,0};
kraftO[k_]:={0,0};
kraftO[az+1]={-1,-1};
tabKraftU:=Prepend[Table[{k,kraftU[k]},{k,0,az+1}],{"Nummer","Kraft unten"}];
tabKraftO:=Prepend[Table[{k,kraftO[k]},{k,0,az+1}],{"Nummer","Kraft oben"}];


tabKraft:=Join[tabKraftU,tabKraftO];  tabKraft//MatrixForm

Kraftvektoren überschreiben:

C1

kraftO[az+1]={-1,-3};

C2

kraftU[az+1]={2,1};

(* Willst du z.B. die untere Kraft Nummer 3 kraftU[3] mit (1,-2) überschreiben, so füge nachstehend ohne Anführungszeichen "kraftU[3]={1,-2};" ein. *)

E4

{{Eingabe : Überschreibe dke Kräfte :}, {<a href=Z . B . kraftU[az+1]={2,1};}} " width="246" height="42" style="vertical-align:middle" />

inpQKraft=Input["Neue Kräfte rechts eingeben? Ja ==> input 1, Nein ==> input 0 !!!!"];
If[inpQKraft==1,
Print["Yes = ", inpQKraft];
kraftO[az+1]  = Input["Kraft rechts oben eingeben, z.B. {-1,-3} "];  
kraftU[az+1]  = Input["Kraft rechts unten eingeben, z.B. {2,1} "],
inpQKraft = 0; Print["No = ", inpQKraft]; Print["Kräfte o.k."]];
Print["Kraft rechts oben = ", kraftO[az+1]];
Print["Kraft rechts unten = ", kraftU[az+1]];

No = 0

Kräfte o.k.

Kraft rechts oben =  {-1, -3}

Kraft rechts unten =  {2, 1}

Neue Ausgabe:

tabKraft//MatrixForm

Reaktionskräfte von der Wand

E5

{{Kräfte rechts verändern}, {<a href=Kraft rechts oben neu eingeben}, {Kraft rechts unten neu eingeben}} " width="222" height="58" style="vertical-align:middle" />

F1

reaktion = 1 ;

Skizze mit Kräften

<<Graphics`Arrow` ;

tabLineTo = Table[lineTo[k], {k, 1, az}] ;

tabLineFrom = Table[lineFrom[k], {k, 0, az}] ;

tabLines = Flatten[{tabLineTo, tabLineFrom}] ;

[Graphics:HTMLFiles/PrototypStatikTragwerkeOffen_78.gif]

Gleichungen

gU[k_]:= (xL[k](pu[k]-pu[k-1]) + xL[k+1](pu[k+1]-pu[k]) + xF[k] stabFrom[k] + xT[k] stabTo[k] + kraftU[k]=={0,0});
gO[k_]:= (yL[k](po[k]-po[k-1]) + yL[k+1](po[k+1]-po[k]) + xF[k-1] stabFrom[k-1] + xT[k] stabTo[k] + kraftO[k]=={0,0});

gU[0]=  (kAussenP1[p1x,p1y] + xL[1](pu[1]-pu[0])+ xF[0] stabFrom[0] + xT[0] stabTo[0] + kraftU[0]=={0,0});
gO[0]=  (kAussenP4[p4x,p4y] + yL[1](po[1]-po[0])+ xT[0] stabTo[0] + kraftU[0]=={0,0});
gU[az+1]=  (xL[az+1](pu[az+1]-pu[az]) + xT[az+1] stabTo[az+1] + kraftU[az+1]=={0,0});
gO[az+1]=  (yL[az+1](po[az+1]-po[az]) + xT[az+1] stabTo[az+1] + xF[az] stabFrom[az] + kraftO[az+1]=={0,0});

gleichungen=Join[Table[gU[k],{k,1,az}],Table[gO[k],{k,1,az}],{gU[0],gO[0],gU[az+1],gO[az+1]}];
{gleichungen}//Transpose//MatrixForm

varTotal = Join[{p1x, p1y, p4x, p4y}, Table[xL[k], {k, 1, az + 1}], Table[yL[k], {k, 1, az + 1}], Table[xF[k], {k, 0, az + 1}], Table[xT[k], {k, 0, az}] ]

{p1x, p1y, p4x, p4y, xL[1], xL[2], xL[3], xL[4], xL[5], yL[1], yL[2], yL[3], yL[4], yL[5], xF[0], xF[1], xF[2], xF[3], xF[4], xF[5], xT[0], xT[1], xT[2], xT[3], xT[4]}

Output Gleichungen

solv = Solve[gleichungen, varTotal]//N ; solvOut = solv//Transpose//MatrixForm   (* Streckungsfaktoren mal Stabvektoren ergeben die Kraftvektoren, noch nicht angezeigt *)

Solve :: svars : Equations may not give solutions for all \"solve\" variables.  Mehr…

(Faktoren zu den Kräften)

solv1 = Flatten[solv] ;

Output Skizze

If[reaktion == 1, p01x = p1x/.solv1 ; p01y = p1y/.solv1 ; p04x = p4x/.solv1 ; p04y = 0, p01x = p1x/.solv1 ; p01y = 0 ; p04x = p4x/.solv1 ; p04y = p4x, p4y/.solv1] ;

<<Graphics`Arrow` ;

tabLineTo = Table[lineTo[k], {k, 1, az}] ;

tabLineFrom = Table[lineFrom[k], {k, 0, az}] ;

tabLines = Flatten[{tabLineTo, tabLineFrom}] ;

[Graphics:HTMLFiles/PrototypStatikTragwerkeOffen_95.gif]

Last Output

Hier kommt der Output!

Last Output

Print["Kraftvektoren: " ];

Print["Kraft links aussen unten: ",(kAussenP1[p1x,p1y]/. solv)//Transpose//MatrixForm];

Print["Kraft links aussen oben: ",(kAussenP4[p4x,p4y]/. solv)//Transpose//MatrixForm];

Print["Stabkräfte unten: ", (Table[xL[N[k]](pu[k]-pu[k-1]),{k,0,az+1}]/. solv) //Transpose//MatrixForm];

Print["Stabkräfte oben: ",
(Table[yL[N[k]](po[k]-po[k-1]),{k,0,az+1}]/. solv)//Transpose//MatrixForm];

Print["Kräfte schräge Stäbe: ", (Table[xF[N[k]] stabFrom[k],{k,0,az+1}]/. solv)//Transpose//MatrixForm];

Print["Kräfte fast senkrechte Stäbe: ", (Table[xT[N[k]] stabTo[k],{k,0,az+1}]/. solv)//Transpose//MatrixForm];

Kraftvektoren:

Kraft links aussen unten:  ( {{-1.39087}, {-1.63424}} )

Kraft links aussen oben:  ( {{2.76171}, {0}} )

Stabkräfte unten:  ( {{( {{2 xL[0.]}, {0}} )}, {( {{0.0853175}, {0}} )}, {( {{-1.71726}, {0}} )}, {( {{-0.380952}, {0}} )}, {( {{-2.41667}, {0}} )}, {( {{-1.5}, {0}} )}} )

Print["Grösse (Länge) der Kräfte: " ];

Print["Kraft links aussen unten: ", Norm[kAussenP1[p1x,p1y]]/. solv];

Print["Kraft links aussen oben: ",Norm[kAussenP4[p4x,p4y]]/. solv];

Print["Stabkräfte unten: ", {Table[Norm[xL[N[k]](pu[k]-pu[k-1])],{k,0,az+1}]/. solv}//Transpose//MatrixForm];

Print["Stabkräfte oben: ",
{Table[Norm[yL[N[k]](po[k]-po[k-1])],{k,0,az+1}]/. solv}//Transpose//MatrixForm];

Print["Kräfte schräge Stäbe: ", {(Table[Norm[xF[N[k]] stabFrom[k]],{k,0,az+1}]/. solv)}//Transpose//MatrixForm];

Print["Kräfte fast senkrechte Stäbe: ", {Table[Norm[xT[N[k]] stabTo[k]],{k,0,az+1}]/. solv}//Transpose//MatrixForm];

Grösse (Länge) der Kräfte:

Kraft links aussen unten:  {2.14599}

Kraft links aussen oben:  {2.76171}

Stabkräfte unten:  ( {{( {{2 Abs[xL[0.]]}, {0.0853175}, {1.71726}, {0.380952}, {2.41667}, {1.5}} )}} )

Stabkräfte oben:  ( {{( {{5^(1/2) Abs[yL[0.]]}, {2.80698}, {1.61272}, {3.07238}, {1.24781}, {3.59368}} )}} )

Kräfte schräge Stäbe:  ( {{( {{2.5037}, {2.9375}, {3.56323}, {4.51374}, {6.05218}, {(8 Abs[xF[5.]])/5^(1/2)}} )}} )

Kräfte fast senkrechte Stäbe:  ( {{( {{0.502128}, {2.35362}, {2.63143}, {3.00419}, {3.53874}, {5^(1/2) Abs[xT[5.]]}} )}} )

Show[showAll] ;

[Graphics:HTMLFiles/PrototypStatikTragwerkeOffen_113.gif]


Created by Mathematica  (December 15, 2006) Valid XHTML 1.1!