SOFiSTiK Forum

It is currently Fri Apr 19, 2019 4:40 pm

All times are UTC




Post new topic Reply to topic  [ 14 posts ] 
Author Message
PostPosted: Wed Jan 09, 2019 9:12 am 
Offline

Joined: Wed Jan 09, 2019 8:54 am
Posts: 8
Hallo zusammen,
ich schreibe gerade meine Masterarbeit und bearbeite dabei eine Sofistik-Datei. Ich muss zugeben, dass ich mich mit Sofistik vorher nicht sonderlich viel beschäftigt habe und somit nur das Gröbste weiß.
Zu meinem Problem:
Es geht um eine Hohlkastenbrücke, bei der das Lastmodell 1 bzw. insbesondere die Tandemlast als Wanderlast in Querrichtung untersucht werden soll. Jetzt gibt es hierbei diesen schönen Zusatz, dass ich bei einem Hohlkasten ja im Prinzip zwei Auflager habe und die Einzellasten der Tandemlast in Auflagernähe abgemindert werden dürfen. Ich habe allerdings keine Ahnung, wie ich das programmieren kann bzw. ich habe schon rumprobiert, indem ich versucht habe, if-Bedingungen in die Schleife einzubauen. Allerdings hat das alles nicht geklappt. Ich muss zugeben, dass ich auch nicht wirklich weiß, wie und an welcher Stelle ich solche Bedingungen in eine Schleife einbaue.
Ich würde mich freuen und wäre sehr dankbar, wenn mir irgendjemand helfen könnte!!

Ein Teil einer Schleife der Wanderlasten sieht folgendermaßen aus (ohne Berücksichtigung der Abminderung der auflagernahen Einzellasten):

let#1 1
let#dy 0.0
loop 12
lf 500+#1 typ none $ Wanderlast TS Spur 1-3
area typ pg p1 937.5 x1 20.0 Y1 -5.575+#dy z1 0 p2 937.5 DXY 0.4 0.4
area typ pg p1 937.5 x1 20.0 Y1 -5.575+2.0+#dy z1 0 p2 937.5 DXY 0.4 0.4

area typ pg p1 937.5 x1 21.2 Y1 -5.575+#dy z1 0 p2 937.5 DXY 0.4 0.4
area typ pg p1 937.5 x1 21.2 Y1 -5.575+2.0+#dy z1 0 p2 937.5 DXY 0.4 0.4

...

let#1 #1+1
let#dy #dy+0.25
endloop

Vielen Dank im Voraus!
Lieben Gruß!


Top
 Profile  
 
PostPosted: Thu Jan 10, 2019 9:59 am 
Offline

Joined: Tue Jun 20, 2006 9:32 am
Posts: 428
Hallo,

wenn ich es richtig verstanden habe, darf die Last abgemindert werden, solange Y1 ein bestimmtes Maß nicht überschreitet (Anfang) bzw. ein bestimmtes Maß überschritten hat (Ende).

Code:
let#1 1
let#dy 0.0
let#ANFA 1.0
let#ENDE 3.0
let#FAKT 1.0
loop 12
lf 500+#1 typ none $ Wanderlast TS Spur 1-3

IF (#dy<=#ANFA)
   let#FAKT 0.90
ELSEIF (#dy>=#ENDE)
   let#FAKT 0.90
ELSE
   let#FAKT 1.00
ENDIF
area typ pg p1 #FAKT*937.5 x1 20.0 Y1 -5.575+#dy       z1 0 p2 #FAKT*937.5 DXY 0.4 0.4
area typ pg p1 #FAKT*937.5 x1 20.0 Y1 -5.575+2.0+#dy z1 0 p2 #FAKT*937.5 DXY 0.4 0.4

area typ pg p1 #FAKT*937.5 x1 21.2 Y1 -5.575+#dy       z1 0 p2 #FAKT*937.5 DXY 0.4 0.4
area typ pg p1 #FAKT*937.5 x1 21.2 Y1 -5.575+2.0+#dy z1 0 p2 #FAKT*937.5 DXY 0.4 0.4

...

let#1 #1+1
let#dy #dy+0.25
endloop

_________________
Schöne Grüße

Philipp Loosmann


Top
 Profile  
 
PostPosted: Fri Jan 11, 2019 2:25 pm 
Offline

Joined: Wed Jan 09, 2019 8:54 am
Posts: 8
Hallo!

Dankeschön für die schnelle Antwort!
Ja genauso war das gemeint und es scheint zu klappen :D
Jetzt muss ich mir das mal mit den genauen Werten angucken und die ganze Datei anpassen.

Wenn es jetzt zwei Bereiche innerhalb der Querschnittsbreite sind, müsste ich das ja auch so machen können, richtig? (Also mit Anfang 1 und 2 und Ende 1 und 2)

let#1 1
let#dy 0.0
let#ANFA1 -4.0
let#ANFA2 3.0
let#ENDE1 -3.0
let#ENDE2 4.0
let#FAKT 1.0
loop 12
lf 500+#1 typ none $ Wanderlast TS Spur 1-3

if (#dy>=#ANFA1)
let#FAKT 0.9
elseif (#dy<=#ENDE1)
let#FAKT 0.9
elseif (#dy>=#ANFA2)
let#FAKT 0.9
elseif (#dy<=#ENDE2)
let#FAKT 0.9
else
let#FAKT 1.0
endif

...

Vielen, vielen, vielen Dank!! Sie haben mir echt sehr geholfen!

Schöne Grüße
Linda


Top
 Profile  
 
PostPosted: Mon Jan 14, 2019 10:50 am 
Offline

Joined: Wed Dec 10, 2008 1:35 pm
Posts: 77
Vorsicht bei der Modellierung der auflagernahen Einzellasten in einem Gesamtmodell:

Die Abminderung bis 2,0d vom Auflagerrand gilt nur für den Nachweis der Querkraft V_Rd,c.
Für alle anderen Nachweise insbesondere V_Rd,max (Druckstrebe) und Momentenbeanspruchung gilt diese Abminderung aber nicht!

Dahs heißt für unterschiedliche Nachweise sind unterschiedliche Lastfälle zu verwenden.

Außerdem ist auf eine ausreichende Netzfeinheit im Bereich des Auflagers zu achten, ansonsten kann der FE-Ansatz die Spitzenwerte glätten.

Grüße
gmay


Top
 Profile  
 
PostPosted: Mon Jan 14, 2019 6:01 pm 
Offline

Joined: Wed Jan 09, 2019 8:54 am
Posts: 8
Guten Abend,

vielen Dank für den Hinweis!!
Das werde ich berücksichtigen :)

Jetzt habe ich aber noch ein ein Problem mit der Abminderung. Und zwar hab ich ja keine einheitliche Abminderung in den jeweiligen Bereichen, sondern hängt es ja von dem jeweiligen Abstand zum Auflager ab..das heißt die Abminderung verläuft ja linear, richtig?
Wie kann ich sowas denn bei den Bedingungen berücksichtigen?

Vielen Dank im Voraus für die Hilfe!

Liebe Grüße
Linda


Top
 Profile  
 
PostPosted: Tue Jan 15, 2019 12:48 pm 
Offline

Joined: Wed Dec 10, 2008 1:35 pm
Posts: 77
Ich würde eine derartige Abminderung entweder mit Hilfe der Funktionen MIN(x,y,..),MAX(x,y,..) oder mit Variablenfelder (siehe Sofistik Handbuch "Interpolation und Tabellen") lösen:

(1) MIN(x,y,..),MAX(x,y,..)
Code:
let#d  ...   $ Wert für d in der Formel
let#dy1 ...  $ y-Position des ersten Auflagers
let#dy2 ...  $ y-Position des zweiten Auflagers

let#dy ...   $ aktuelle y-Position

let#av min(abs(#dy-#dy1),abs(#dy-#dy2))      $ kleinster Abstand zu einem Auflager
let#beta #av/(2*#d)
let#beta max(min(1,#beta),0.25)               $ nur Werte zwischen 0,25 und 1,0 zulassen (=0,5d bis 2,0d)

(2) Interpolation
Code:
LET#beta_y -9.0,-4.0,-3.5,-3.0,3.0,3.5,4.0,9.0     $ y-Positionen
LET#beta_v 1.0,1.0,0.25,1.0,1.0,0.25,1.0,1.0       $  Abminderungswerte für die obigen y-Positionen (dazwischen wird interpoliert)
LET#tab_beta 'TAB(beta_y,beta_v)'

let#dy ...   $ aktuelle y-Position
let#beta #tab_beta(#dy)  $ Abminderung für aktuelle y-Position


Top
 Profile  
 
PostPosted: Tue Jan 15, 2019 10:03 pm 
Offline

Joined: Wed Jan 09, 2019 8:54 am
Posts: 8
Oh super, vielen Dank für die Tipps!!
Das werde ich mir mal genauer angucken und so probieren.

Dankeschön!! :D


Top
 Profile  
 
PostPosted: Sat Jan 26, 2019 3:47 pm 
Offline

Joined: Wed Jan 09, 2019 8:54 am
Posts: 8
Hallo,

ich brauche wohl nochmal eine kleine Hilfe.
Die Vorschläge finde ich alle super und verständlich und es müsste so auch eigentlich funktionieren, allerdings kam ich nie auf die Ergebnisse, die ich erhalten sollte.
Ich habe jetzt schon einige Tage daran rumprobiert, weil mir auch immer wieder neue Einfälle kamen, woran es vielleicht liegen könnte, aber nichts hat funktioniert. Bin schon regelrecht verzweifelt.
Aber jetzt habe ich glaube ich den Fehler gefunden:

Und zwar habe ich in beiden Varianten die Funktion bzw. das #beta von der Variable #dy abhängig gemacht. Allerdings ist das in meinem Fall ja nicht richtig...
Ich habe ja folgende Wanderlast:

...
area typ pg p1 #beta*937.5 x1 20.0 Y1 5.575-#dy z1 0 p2 #beta*937.5 DXY 0.4 -0.4
area typ pg p1 #beta*937.5 x1 20.0 Y1 5.575-2.0-#dy z1 0 p2 #beta*937.5 DXY 0.4 -0.4

area typ pg p1 #beta*937.5 x1 21.2 Y1 5.575-#dy z1 0 p2 #beta*937.5 DXY 0.4 -0.4
area typ pg p1 #beta*937.5 x1 21.2 Y1 5.575-2.0-#dy z1 0 p2 #beta*937.5 DXY 0.4 -0.4


area typ pg p1 #beta*625 x1 20.0 Y1 5.575-2-1-#dy z1 0 p2 #beta*625 DXY 0.4 -0.4
area typ pg p1 #beta*625 x1 20.0 Y1 5.575-2.0-1-2-#dy z1 0 p2 #beta*625 DXY 0.4 -0.4

area typ pg p1 #beta*625 x1 21.2 Y1 5.575-2-1-#dy z1 0 p2 #beta*625 DXY 0.4 -0.4
area typ pg p1 #beta*625 x1 21.2 Y1 5.575-2.0-1-2-#dy z1 0 p2 #beta*625 DXY 0.4 -0.4


area typ pg p1 #beta*312.5 x1 20.0 Y1 5.575-2-1-2-1-#dy z1 0 p2 #beta*312.5 DXY 0.4 -0.4
area typ pg p1 #beta*312.5 x1 20.0 Y1 5.575-2.0-1-2-2-1-#dy z1 0 p2 #beta*312.5 DXY 0.4 -0.4

area typ pg p1 #beta*312.5 x1 21.2 Y1 5.575-2-1-2-1-#dy z1 0 p2 #beta*312.5 DXY 0.4 -0.4
area typ pg p1 #beta*312.5 x1 21.2 Y1 5.575-2.0-1-2-2-1-#dy z1 0 p2 #beta*312.5 DXY 0.4 -0.4
...

und da ist ja das "Y1" jeweils meine aktuelle Position und nicht mein #dy (das dient ja ausschließlich für die Schritte der Wanderlast) und somit müsste ich die Werte ja eigentlich von dem Y1 abhängig machen anstatt von der Variable #dy. Sehe ich das richtig?

Jetzt ist meine Frage: Geht das überhaupt irgendwie??

Ich wäre sehr dankbar für einen Tipp oder eine Erklärung, wie ich das anstellen kann!!


Viele Grüße und ein schönes Wochenende :)


Top
 Profile  
 
PostPosted: Mon Jan 28, 2019 7:03 am 
Offline

Joined: Tue Jun 20, 2006 9:32 am
Posts: 428
Hallo,

stellen Sie doch bitte noch die Zeilen zur Berechnung von #beta ein.
Das Codefragment ist doch recht kryptisch aus der Ferne.

_________________
Schöne Grüße

Philipp Loosmann


Top
 Profile  
 
PostPosted: Mon Jan 28, 2019 6:49 pm 
Offline

Joined: Wed Jan 09, 2019 8:54 am
Posts: 8
Guten Abend,

entschuldigung, natürlich! Das habe ich nicht bedacht :)
Hier sind meine zwei Varianten der Eingabe für #beta:

1. Variante:
let#1 1

let#d 0.55
let#dy 0.0 $ aktuelle y-Position
let#dy1 -3,825 $ y-Position des ersten Auflagers rechter Anschnitt
let#dy2 -3,425 $ y-Position des ersten Auflagers linker Anschnitt
let#dy3 3,425 $ y-Position des zweiten Auflagers rechter Anschnitt
let#dy4 3,825 $ y-Position des zweiten Auflagers linker Anschnitt

let#av min(abs(#dy-dy1),abs(#dy-#dy2),abs(#dy-#dy3),abs(#dy-dy4))
let#beta #av/(2*#d)
let#beta max(min(1,#beta),0.25)

loop 12
lf 500+#1 typ none

...(s. vorheriger Beitrag)

2. Variante:

let#1 1

let#beta_y
-7.125,-4.925,-4.100,-3.150,-2.325,2.325,3.150,4.100,4.925,7.125
let#beta_v
1.0,1.0,0.25,0.25,1.0,1.0,0.25,0.25,1.0,1.0
let#tab_beta 'TAB(beta_y,beta_v)'

let#dy 0.0
let#beta #tab_beta(#dy)

loop 12
lf 500+#1 typ none

... (s. vorherigen Beitrag)

In rot sind jetzt die Stellen gekennzeichnet, die ich meinte. Also dass das ja nicht das #dy sein muss, weil meine aktuelle Position ja Y1 ist (Abschnitt vorheriger Beitrag) und #dy nur mein Intervall für die Wanderlast.
Verstehen Sie, was ich meine?
Falls nicht, versuche ich das nochmal anders zu erklären.

Besten Dank für Ihre Hilfe!! Ich bin Ihnen sehr dankbar!

Schöne Grüße
Linda


Top
 Profile  
 
PostPosted: Tue Jan 29, 2019 10:49 am 
Offline

Joined: Tue Jun 20, 2006 9:32 am
Posts: 428
Hallo,

#beta sollte also von Y1 abhängig sein:
1.) nach den Kopfzeilen von SOFiLOAD folgendes definieren
Code:
#DEFINE FUNK
let#beta_y
-7.125,-4.925,-4.100,-3.150,-2.325,2.325,3.150,4.100,4.925,7.125
let#beta_v
1.0,1.0,0.25,0.25,1.0,1.0,0.25,0.25,1.0,1.0
let#tab_beta 'TAB(beta_y,beta_v)'

let#beta #tab_beta(#EING)
#ENDDEF


2. innerhalb der Schleife:
Code:
let#EING 5.575-#dy
#include FUNK
area typ pg p1 #beta*937.5 x1 20.0 Y1 #EING z1 0 p2 #beta*937.5 DXY 0.4 -0.4

let#EING 5.575-2.0-#dy
#include FUNK
area typ pg p1 #beta*937.5 x1 20.0 Y1 #EING z1 0 p2 #beta*937.5 DXY 0.4 -0.4

let#EING 5.575-#dy
#include FUNK
area typ pg p1 #beta*937.5 x1 21.2 Y1 #EING z1 0 p2 #beta*937.5 DXY 0.4 -0.4

let#EING 5.575-2.0-#dy
#include FUNK
area typ pg p1 #beta*937.5 x1 21.2 Y1 #EING z1 0 p2 #beta*937.5 DXY 0.4 -0.4

let#EING 5.575-2-1-#dy
#include FUNK
area typ pg p1 #beta*625 x1 20.0 Y1 #EING z1 0 p2 #beta*625 DXY 0.4 -0.4

let#EING 5.575-2.0-1-2-#dy
#include FUNK
area typ pg p1 #beta*625 x1 20.0 Y1 #EING z1 0 p2 #beta*625 DXY 0.4 -0.4

let#EING 5.575-2-1-#dy
#include FUNK
area typ pg p1 #beta*625 x1 21.2 Y1 #EING z1 0 p2 #beta*625 DXY 0.4 -0.4

let#EING 5.575-2.0-1-2-#dy
#include FUNK
area typ pg p1 #beta*625 x1 21.2 Y1 #EING z1 0 p2 #beta*625 DXY 0.4 -0.4


So in etwa kann ich mir das vorstellen. Testen kann ich es leider nicht.
Und es hat noch Optimierungspotential.

_________________
Schöne Grüße

Philipp Loosmann


Top
 Profile  
 
PostPosted: Wed Jan 30, 2019 12:36 pm 
Offline

Joined: Wed Jan 09, 2019 8:54 am
Posts: 8
Hallo,

es hat geklappt!! Vielen Dank für Ihre Hilfe!
Die Variante mit der Interpolationstabelle hat zwar nicht ganz funktioniert, aber ich habe die Idee mit der anderen Variante ausprobiert und bekomme endlich die Ergebnisse, die ich schon lange erhofft habe.

Ich habe allerdings noch zwei kleine Verständnisfragen.
1. zum Befehl #DEFINE FUNK:
Wofür steht das "FUNK" dabei? Hätte man auch andere Ausdrücke wählen können?
2. zum minimalen Abstand "min(abs(#EING-#dy1)":
Steht das "abs" bei Sofistik immer für Abstand? Also ist das so ein allgemein vorgegebener "Ausdruck" für den Betrag von bspw. (#EING-#dy1).
Habe danach länger gesucht aber nichts passendes dazu gefunden.

Also besten Dank nochmal, Sie haben mir sehr weitergeholfen!!

Schöne Grüße
Linda


Top
 Profile  
 
PostPosted: Wed Jan 30, 2019 12:44 pm 
Offline

Joined: Tue Jun 20, 2006 9:32 am
Posts: 428
Hallo,

schön zu lesen, dass es geklappt hat.

zu 1.) FUNK ist ein Bezeichner und kann (fast) beliebig definiert werden. Die Restriktionen hierzu stehen im Handbuch.

zu 2.) ABS() bezeichnet die Absolut-Funktion, d.h. es wird der Betrag einer Zahl zurück gegeben:
let#A ABS(-3) $ #A wird mit 3 belegt

Es gibt ein sehr gutes Handbuch. Einfach mal F1 drücken im Teddy, wenn der Cursor in der entsprechenden Zeile steht.

_________________
Schöne Grüße

Philipp Loosmann


Top
 Profile  
 
PostPosted: Wed Jan 30, 2019 2:17 pm 
Offline

Joined: Wed Jan 09, 2019 8:54 am
Posts: 8
Ja, ich bin echt erleichtert.

Ach okay super, dann weiß ich bescheid :)

Dankeschön!!


Top
 Profile  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 14 posts ] 

All times are UTC


Who is online

Users browsing this forum: No registered users and 7 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Group