C Iteration über mehrere Programmmodule

Aus ITP
Zur Navigation springen Zur Suche springen

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