C Iteration über mehrere Programmmodule
Hinweise
guter Artikel in Forum
s.a. SOFiSTiK - Handbuch "Basisfunktionalitäten" Abschn. 9.6
Bei solchen Berechnungen ist "echte" Kontrolle nicht möglich. Daher sind Plausibilitätskontrollen der Weg. Zu allererst gilt es "Kontrolllastfälle" zu berechnen. Hierbei wird getestet, ob das System plausible Ergebnisse liefert. Eine Möglichkeit sind die Verformungen, eine weitere die Schnittgrößen.
Bei der Iteration gilt es zu kontrollieren, ob auch tatsächlich die korrekten Arbeitslinien entsprechend der Laststellungen verwendet werden.
Auch eine grafische Darstellung der Federwege und Federkräfte ist eine gute Kontrollmöglichkeit. Federn, welche bereits das Fließnievau erreicht haben und deren Steifigkeit nicht erhöht wurde, können keine weiteren Kräfte aufnehmen, aber die Verformungen steigen ggf. weiter an.
Um die Zwischenschritte der Iteration zu kontrollieren, muss das Häkchen bei "Calculation (nicht gleich starten!)...Datei...Anwenderoptionen...Alle Iterationsschritte ausgeben bei ITER - Schleifen" gesetzt sein. GGf. kann man auch in der Schleife mit txa Texte ausgeben.
Beispiel
Bei der Berechnung von Schienenspannungen müssen für jede Laststellung die Steifigkeiten der Federn angepasst werden. Außerdem ist bei der anschließenden nichtlinearen Berechnung die jeweils vorherige Laststellung als Primärlastfall zu berücksichtigen.
Entweder man "tippert" viel, oder man steckt diesen Algorithmus in eine Iteration:
!#!Kapitel weitere Lastsellungen
+prog template urs:10
kopf Definition für die Iteration
sto#lastst 2 $ Laststellung
sto#plf 101 $ Primärlastfall
sto#lf #plf+1 $ aktuelle Lastfallnummer
sto#lc 22 $ aktuelle Belastung
ende
!#!Kapitel Iteration
+prog aqua iter 99 urs:8
kopf Neudefinition der Federarbeitslinien
let#lastst 2 $ Laststellung
#include steuaqua #include neudefinition
ende
+PROG ASE iter 99 urs:9
KOPF nicht lineare Berechnung
#include steuase #include berechnungase
ende
+prog template iter 99 urs:11
kopf Neunummerierung oder Abbruch
if #lc<#lfnrn
sto#lastst #lastst+1 $ Laststellung
sto#plf #plf+1 $ Primärlastfall
sto#lf #plf+1 $ aktuelle Lastfallnummer
sto#lc #lc+1 $ aktuelle Belastung
else
exit_iteration
endif
ende