C Iteration über mehrere Programmmodule: Unterschied zwischen den Versionen

Aus ITP
Zur Navigation springen Zur Suche springen
(Die Seite wurde neu angelegt: „ == Hinweise == guter [http://www.sofistik.com/forum/viewtopic.php?f=3&t=2852&p=8374&hilit=ITER#p8374 Artikel in Forum] s.a. SOFiSTiK - Handbuch "Basisfunktio…“)
 
 
(6 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt)
Zeile 11: Zeile 11:
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.
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 [[G Berechnung von Schienenspannungen|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 [[C Neudefinition von Federkennwerten|Neudefinition der Federarbeitslinien]]
let#lastst 2    $ Laststellung
<nowiki>#include steuaqua
#include neudefinition</nowiki>
ende
+PROG ASE '''iter 99''' urs:9
KOPF nicht lineare Berechnung
<nowiki>#include steuase
#include berechnungase</nowiki>
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
[[Kategorie:Allgemeines zu CADINP]]
[[Kategorie:Allgemeines zu CADINP]]

Aktuelle Version vom 19. Oktober 2022, 04:39 Uhr

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