Willkommen, Gast
Benutzername: Passwort: Angemeldet bleiben:
  • Seite:
  • 1
  • 2

THEMA: Auflager so schieben, sodass alle Lager gleiche La

Auflager so schieben, sodass alle Lager gleiche La 22 Apr 2017 21:45 #61113

Hallo Leute, ich habe eine Lösung für ein altes Traggerüstproblem gefunden

Im Traggerüstbau hat die Baufirma den Wunsch möglichst wenig Material ein zu setzen. Daraus resultiert, dass das Traggerüst maximal zulässig ausgenutzt werden muss. Bei der Längsträgerlage wird von der Optimierung nur grob gemacht, weil der Schalungsbauer Randbedingungen vorgibt. Bei den Stützen unter dem Jochquerträger ist es das Ziel, ob man noch eine einsparen kann. Der Traggerüstplaner ist damit beschäftigt die Stützen so zu schieben, sodass alle gleich ausgelastet sind. Die Momentenbeanspruchung des Jochquerträgers spielt keine Rolle, denn es gibt nur den regelausgeschotteten HEB360 aus S235 oder den mehrstegigen HEB220 aus S355 - und die sind nie ausgelastet.
Der Lösungsweg war bisher, dass man die Lage der Stützen zuerst geraten hat. Dann hat man eine Stütze nach der anderen leicht geschoben und nach den neuen Auflagerkräften geschaut. Iterativ hat man sich an eine Lösung genähert, die akzeptabel war. Ist der Jochquerträger unsymmetrisch belastet und hat über 8 Stützen, dann musste man Abstriche einkalkulieren, denn man kann nicht ewig rumspielen. Jede Stütze, die der Jochquerträger mehr hat, bedeutete etwa dass der Mittelwert der Auslastungen um 0,5% sank. Es gab dann halt Stützen, die bloß 90% ausgelastet waren, trotz häufigen Stützenschiebens.

Jetzt kam mir ein Geistesblitz, wie man die gleichmäßigen Auflagerkräfte findet. Die Grundformeln lauten:
Xneu= Xalt+dx
J*dA=dx
dA= Aerf-Avorh

Einsetzen ergibt dann die Lösung
Xneu= Xalt+dA*J

Dabei sind
Xneu= die neuen Positionen der Auflager
Xalt= die vorherigen Positionen der Auflager
dx= Auflager verschieben
J= inverse Jacobimatrix
dA= Differenz der Auflagerkräfte zwischen Soll und Ist
dA²= Residuum
Aerf= so sollen die Auflagerkräfte sein
Avorh= die Auflagerkräfte, bei denen sich die Lager an den Stellen Xalt befinden

Ich habe das mal an einem fiktiven Träger überprüft und getestet. Es klappt wirklich, aber ich musste einen Abstrich machen. Ich habe den Parameter a eingeführt, damit ich nicht zu viel auf die alten Lagerpositionen addiere. a hat zwischen 0,1 bis 0,5 gelegen. 0,1 senkt das Residuum nur langsam und 0,5 mäßig.
Xneu= Xalt+a*dA*J
Jahre lang habe viel Zeit verbracht die optimalen Lagerpositionen zu erraten. Oft konnte die Stütze nicht eingespart werden. Mit dieser Formel ist die Lösung innerhalt von 5 Minuten gefunden und die Lagerkräfte unterscheiden sich nur in ihren Nachkommastellen. Baupraktisch werden die Positionen auf ganze 5cm gerundet, aber was Besseres als eine theoretisch perfekte Lösung praxisnah zu runden gibt es nicht.

So viel zur Euphorie, der Störenfried in der Formel ist die inverse Jacobimatrix. In der Jacobimatrix sind die partiellen Ableitungen der Auflagerkräfte nach ihrer Verschiebung in X-Richtung enthalten. Eine Auflagerkraft nach X ab zu leiten ist für den Ingenieur eine gewaltige Herausforderung. Doch da gibt es einen Trick. Eine Ableitung ist über seinen Differenzialquotient definiert. Diesen kann man näherungsweise durch einen Differenzenquotient ersetzen. In der Praxis sieht das dann so aus:
Es gibt das ursprüngliche statische System.
Von diesem fertigt man sich aktualisierende Kopien an. Bei jeder Kopie ist ein Auflager um 0,001 nach rechts verschoben.
Der Computer berechnet alle Systeme und das Ausgangssystem liefert die Lagerkräfte Xalt und die Kopien haben leicht veränderte Xalt. Die Differenzen zwischen beiden lässt man in die Jacobimatrix kopieren.
Aus der Jacobimatrix muss noch die Inverse gebildet werden, wofür man einen ganz normalen Gleichungslöser nimmt.
Nun wird iteriert. Die neuen Lagerpositionen Xneu kopiert man auf die alten. Rechnen - Kopieren - Rechnen - Kopieren... bis das Residuum akzeptabel ist.
Hat man sich so eine Vorlage erst mal gebastelt, dann rutschen die Lager innerhalb von Minuten an ihrer optimalen Stelle.

Mein Beispiel hat folgende Daten:
16m langer Balken HEB360 mit 10 Lager und 13 Einzellasten ohne Eigengewicht. Die Lager haben eine Federsteifigkeit von 80000kN/m. Die Lasten sind an den Positionen: 0; 2; 4; 5; 6; 7; 8; 9; 10; 11; 12; 14; 16m und haben die Last 240; 250; 260; 270; 280; 290; 300; 310; 320; 330; 340; 350; 360kN. Und das sind die Lagerpositionen mit der Lagerkraft von 389,98 bis 390,02:
0,536
3,703
5,391
6,666
8,119
9,253
10,618
11,638
13,644
15,970
Der Administrator hat öffentliche Schreibrechte deaktiviert.

Auflager so schieben, sodass alle Lager gleiche La 25 Apr 2017 07:16 #61150

sehr schön gemacht
Der Administrator hat öffentliche Schreibrechte deaktiviert.
COM_KUNENA_THANKYOU: cebudom

Auflager so schieben, sodass alle Lager gleiche La 25 Apr 2017 10:20 #61152

Interessant!
Volständig bin ich aber noch nicht ganz dabei. Hast Du einen Quellcode dafür?
Der Administrator hat öffentliche Schreibrechte deaktiviert.

Auflager so schieben, sodass alle Lager gleiche La 25 Apr 2017 15:45 #61154

Der Quellcode lautet:
Ws.Cells(5, 5) = Ws.Cells(18, 17)
Ws.Cells(6, 5) = Ws.Cells(19, 17)
Ws.Cells(7, 5) = Ws.Cells(20, 17)
Ws.Cells(8, 5) = Ws.Cells(21, 17)
Ws.Cells(9, 5) = Ws.Cells(22, 17)
Ws.Cells(10, 5) = Ws.Cells(23, 17)
Ws.Cells(11, 5) = Ws.Cells(24, 17)
Ws.Cells(12, 5) = Ws.Cells(25, 17)
Ws.Cells(13, 5) = Ws.Cells(26, 17)
Ws.Cells(14, 5) = Ws.Cells(27, 17)
und erspart mir dieses lästige copypasten der Lagerpositionen. Deine Frage lautete aber nach den richtigen Quellcode, der die optimalen Lagerpositionen findet. Diesen gibt es nicht, denn der übrige Quellcode wird nur zum Berechnen des statischen Systems gebraucht. Die Lageroptimierung habe ich in Excel gemacht. Doppelklick in die Zelle und man sieht die Formel - und dafür braucht man keinerlei Programmierkenntnisse.

Ich habe da nochmal ein zweites Beispiel gerechnet. Leider lief das nicht ganz so optimal, da die Iteration manchmal divergiert. Da habe ich leider eine Wissenlücke, warum das so ist. Weiterhin gibt es mehrere Lösungen. Vielleicht kann mir ja ein Numerikfreak sagen, wie man so iteriert, sodass die Lösung konvergiert.
Letzte Änderung: 25 Apr 2017 15:46 von WMFlord. Begründung: Datei fehlte
Der Administrator hat öffentliche Schreibrechte deaktiviert.

Auflager so schieben, sodass alle Lager gleiche La 25 Apr 2017 16:19 #61156

Leider lief das nicht ganz so optimal, da die Iteration manchmal divergiert. Da habe ich leider eine Wissenlücke, warum das so ist.
Manchmal ist das so. Man glaubt das System muß konvergieren und dann tut es das doch nicht. Machnmal ist es eine kleine Unstetigkeit, die man ggf finden kann, wenn man mit einem Debugger schrittweise den Quellcode überprüft. Das liegt dann oft auch nicht am Wissen, sondern läßt sich nur mit Suchen und Probieren herausfinden.
Das kann man dann mit den Entwicklungsumgebungen machen. Dies ("kleine") Delphi, was ich Dir mal empfohlen habe, gibt es jetzt übrigens dauerhaft kostenlos.

Die Datei hängt bei Deinem Post aber nicht dran.
Der Administrator hat öffentliche Schreibrechte deaktiviert.

Auflager so schieben, sodass alle Lager gleiche La 25 Apr 2017 16:38 #61157

Ich glaub man musste noch auf einfügen klicken. Ob sie jetzt hochgeladen ist, weiß ich nicht...
Wie lade ich eine Datei hoch?

Zu den Delphi habe ich noch leider keinen Zugang gefunden. Der Anfang in Unbekanntes ist für mich leider oft unmöglich. Auch dass ich Action Script beherrsche, wünsche ich mir, aber den Anfang fand ich nicht.
Letzte Änderung: 25 Apr 2017 16:39 von WMFlord. Begründung: Wie lade ich eine Datei hoch?
Der Administrator hat öffentliche Schreibrechte deaktiviert.
  • Seite:
  • 1
  • 2