Willkommen,
Gast
|
|
|
|
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 |
Bitte Anmelden oder Registrieren um der Konversation beizutreten. |
|
sehr schön gemacht
Folgende Benutzer bedankten sich: cebudom
|
Bitte Anmelden oder Registrieren um der Konversation beizutreten. |
|
Interessant!
Volständig bin ich aber noch nicht ganz dabei. Hast Du einen Quellcode dafür? |
Bitte Anmelden oder Registrieren um der Konversation beizutreten. |
|
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. |
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
Letzte Änderung: von WMFlord. Grund: Datei fehlte
|
|
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. |
Bitte Anmelden oder Registrieren um der Konversation beizutreten. |
|
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. |
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
Letzte Änderung: von WMFlord. Grund: Wie lade ich eine Datei hoch?
|
|
|
Copyright © 2022 diestatiker.de | ein Service von Planungsbüro Uhrmacher | Aunkofener Siedlung 17 - D-93326 Abensberg
Telefon: 0 94 43/90 58 00, Telefax: 0 94 43/90 58 01 | E-Mail: office[@]diestatiker.de | Alle Rechte vorbehalten