Randbedingungen behandeln th> tr> | |
---|---|
Element th> | Beschreibung th> tr> |
Knotenkraftinkrement td> | Geben Sie die Anzahl der Ladeknoten, die Ladeknotennummer und den Ladeinkrementwert td> tr> an |
Knotenverschiebungsbeschränkung td> | Verschiebungsbeschränkung Geben Sie die Anzahl der Knoten und die Beschränkungsknotennummer an (vollständige Einschränkung: Nur Verschiebung = 0 kann behandelt werden) td> tr> |
Program name | Description |
---|---|
py_fem_gfrmAL.py td> | Planare Skelettgeometrie Nichtlineares Strukturanalyseprogramm td> tr> |
python3 py_fem_gfrmAL.py inp.txt out.txt nnmax
inp.txt td> | : Eingabedatendatei (durch Leerzeichen getrennte Daten) td> tr> |
out.txt td> | : Ausgabedatendatei (leere getrennte Daten) td> tr> |
nnmax td> | : Anzahl der Ladeschritte td> tr> |
npoin nele nsec npfix nlod # Basic values for analysis
E A I # Material properties
..... (1 to nsec) ..... #
node_1 node_2 isec # Element connectivity, material set number
..... (1 to nele) ..... #
x y # Node coordinate of node
..... (1 to npoin) ..... #
lp fix_x fix_y fix_r # Restricted node number
..... (1 to npfix) ..... #
lp df_x df_y df_r # Loaded node and loading conditions (load increment)
..... (1 to nlod) ..... # (omit data input if nlod=0)
npoin, nele, nsec td> | : Anzahl der Knoten, Anzahl der Elemente, Anzahl der Querschnittsmerkmale td> tr> |
npfix, nlod td> | : Anzahl der Rückhalteknoten, Anzahl der Ladeknoten td> tr> |
E, A, I td> | : Elastizitätskoeffizient, Querschnittsfläche, sekundäres Querschnittsmoment td> tr> |
Knoten_1, Knoten_2, isec td> | : Knoten 1, Knoten 2, Abschnittskennlinie td> tr> |
x, y td> | : x-Koordinate, y-Koordinate td> tr> |
lp, fix_x, fix_y, fix_r td> | : Knotennummer, x / y / Drehrichtungsbeschränkung (0: frei, 1: vollständige Einschränkung) td> tr> |
lp, df_x, df_y, df_r td> | : Knotennummer, x · y · Rotationslast td> tr> |
npoin nele nsec npfix nlod nnmax
(Each value of above)
sec E A I
sec : Material number
E : Elastic modulus
A : Section area
I : Moment of inertia
..... (1 to nsec) .....
node x y fx fy fr kox koy kor
node : Node number
x : x-coordinate
y : y-coordinate
fx : Load in x-direction
fy : Load in y-direction
fr : Moment load
kox : Index of restriction in x-direction (0: free, 1: fixed)
koy : Index of restriction in y-direction (0: free, 1: fixed)
kor : Index of restriction in rotation (0: free, 1: fixed)
..... (1 to npoin) .....
elem i j sec
elem : Element number
i : Node number of start point
j : Node number of end point
sec : Material number
..... (1 to nele) .....
* nnn=0 iii=0 lam=0.0
node fp-x fp-y fp-r dis-x dis-y dis-r dr-x dr-y dr-r
node : Node number
fp-x : Total load in x-direction
fp-y : Total load in y-direction
fp-r : Total load in rotation
dis-x : Displacement in x-direction
dis-y : Displacement in y-direction
dis-r : Displacement in rotation
dr-x : Un-balanced force in x-direction
dr-y : Un-balanced force in y-direction
dr-r : Un-balanced force in rotation
..... (1 to npoin) .....
elem N_i S_i M_i N_j S_j M_j
elem : Element number
N_i : Axial force of node-i
S_i : Shear force of node-i
M_i : Moment of node-i
N_j : Axial force of node-j
S_j : Shear force of node-j
M_j : Moment of node-j
..... (1 to nele) .....
* nnn=1 iii=xx lam=xxx
node fp-x fp-y fp-r dis-x dis-y dis-r dr-x dr-y dr-r
node : Node number
fp-x : Total load in x-direction
fp-y : Total load in y-direction
fp-r : Total load in rotation
dis-x : Displacement in x-direction
dis-y : Displacement in y-direction
dis-r : Displacement in rotation
dr-x : Un-balanced force in x-direction
dr-y : Un-balanced force in y-direction
dr-r : Un-balanced force in rotation
..... (1 to npoin) .....
elem N_i S_i M_i N_j S_j M_j
elem : Element number
N_i : Axial force of node-i
S_i : Shear force of node-i
M_i : Moment of node-i
N_j : Axial force of node-j
S_j : Shear force of node-j
M_j : Moment of node-j
..... (1 to nele) .....
.... .... ....
* nnn=nnmax-1 iii=xx lam=xxx
node fp-x fp-y fp-r dis-x dis-y dis-r dr-x dr-y dr-r
..... (1 to npoin) .....
elem N_i S_i M_i N_j S_j M_j
..... (1 to nele) .....
n=(total degrees of freedom) time=(calculation time)
fp-x, fp-y, fp-r td> | : Last in x-Richtung, Last in y-Richtung, Last in Drehrichtung td> tr> |
dis-x, dis-y, dis-r td> | : Verschiebung in x-Richtung, Verschiebung in y-Richtung, Rotationsverschiebung td> tr> |
dr-x, dr-y, dr-r td> | : Unausgeglichene Kraft in x-Richtung, Unausgeglichene Kraft in y-Richtung, Unausgeglichene Kraft in Drehrichtung td> tr> |
N, S, M td> | : Axialkraft, Scherkraft, Moment td> tr> |
n td> | : Gesamtfreiheitsgrade (Quelle simultaner Gleichungen) td> tr> |
Zeit td> | : Berechnungszeit td> tr> |
Program name | Description |
---|---|
inp_gfrm_canti.txt td> | Cantilever FEM Analyseeingabedaten td> tr> |
inp_gfrm_cable.txt td> | Cantilever mit Kabel Eingabedaten für die Strahl-FEM-Analyse td> tr> |
inp_gfrm_arch.txt td> | Eingabe der Arch FEM-Analyse Daten td> tr> |
inp_gfrm_lee.txt td> | Eingabe der Frame-FEM-Analyse Daten td> tr> |
py_fig_gfrm.py td> | Last-Verschiebungs-Kurve Zeichenprogramm (matplotlib) td> tr> |
py_fig_gfrm_mode.py td> | Programm (matplotlib) td> tr> |
Im Programm zur Erstellung von Last- / Verschiebungskurven py_fig_gfrm.py wurde die Eingabe über die Befehlszeile aufgrund des Versuchs, sie vielseitig zu gestalten, ziemlich verwirrend. p>
Mit dem Erstellungsprogramm py_fig_gfrm_mode.py für das Verschiebungsmodusdiagramm ist es relativ einfach, etwas Vielseitiges nur mit dem Verschiebungsmodus zu realisieren, aber es wird ziemlich kompliziert, wenn versucht wird, Randbedingungen festzulegen. Da ich nur 4 Diagramme erstellen möchte, gebe ich die Eingabedatei im Programm an und verarbeite jede Datei einzeln. p>
Der Pfeil, der die Last angibt, wird als Pfeil geschrieben. mit Pfeil p> ``` ax.arrow(x,y,u,v,head_length=hl, ....) ``` Schreiben Sie eine Anweisung wie
. Wenn Sie beispielsweise einen vertikalen Pfeil zeichnen, sollten Sie beachten, dass die Länge vom Schwanz bis zur Pfeilspitze (v + head_length) beträgt. Die tatsächliche Korrespondenz ist wie folgt. p> ``` uu=0.0 vv=(ymax-ymin)*0.1 x1=xx[lnod-1] y1=yy[lnod-1]+vv hl=vv*0.4 hw=hl*0.5 ax.arrow(x1,y1,uu,-(vv-hl), lw=2.0,head_width=hw, head_length=hl, fc='#555555', ec='#555555') ```
Das Symbol für das feste Ende an der Basis des vertikalen Einwegbalkens wird mit fill (... hatch = '///') gezeichnet. Hier gibt Füllung einen rechteckigen Bereich an. Da jedoch kein Rand erforderlich ist, wird in Füllung Linienbreite = 0,0 angegeben, um zu verhindern, dass der Rand gezeichnet wird. Die tatsächliche Korrespondenz ist wie folgt. p> ``` lp=1; x1=x[lp-1]; y1=y[lp-1] px=[x1-2*scl,x1+2*scl,x1+2*scl,x1-2*scl] py=[y1,y1,y1-1*scl,y1-1*scl] ax.fill(px,py,fill=False,linewidth=0.0,hatch='///') ax.plot([x1-2*scl,x1+2*scl],[y1,y1],color='#000000',linestyle='-',linewidth=1.5) ```
# FEM calculation by Arc-Length method
python py_fem_gfrmAL.py inp_gfrm_canti.txt out_gfrm_canti.txt 70
python py_fem_gfrmAL.py inp_gfrm_cable.txt out_gfrm_cable.txt 290
python py_fem_gfrmAL.py inp_gfrm_arch.txt out_gfrm_arch.txt 310
python py_fem_gfrmAL.py inp_gfrm_lee.txt out_gfrm_lee.txt 160
# Drawing of Load-displacement curve
python py_fig_gfrm.py out_gfrm_canti.txt 11 11 -411.07 1000 1000 \$u/L\$ $\v/L\$ \$u/L\$\,$\v/L\$ \$P/P_{cr}\$ LL
python py_fig_gfrm.py out_gfrm_cable.txt 12 11 -1644.3 1000 1000 \$u/L\$ \$v/L\$ \$u/L\$\,\$v/L\$ \$P/P_{cr}\$ LL
python py_fig_gfrm.py out_gfrm_arch.txt 21 21 -666.4 -500 -500 \$u/R\$ \$v/R\$ \$u/R\$\,\$v/R\$ \$P\\cdot\(R^2/EI\)\$ UL
python py_fig_gfrm.py out_gfrm_lee.txt 13 13 -166.6 1000 -1000 \$u/L\$ \$v/L\$ \$u/L\$\,\$v/L\$ \$P\\cdot\(L^2/EI\)\$ LL
# Drawing of displacement mode
python py_fig_gfrm_mode.py
python py_fig_gfrm.py out.txt node-L node-D nd-L nd-u nd-v leg-u leg-v x-Label y-Label loc
out.txt td> | : FEM-Ausgabedatendatei (leere getrennte Daten) td> tr> |
Knoten-L td> | : Laden der Knotennummer zum Zeichnen einer Lastverschiebungskurve td> tr> |
Knoten-D td> | : Knotennummer der Verschiebungszeichnung zum Zeichnen einer Lastverschiebungskurve td> tr> |
nd-L td> | : Numerischer Wert (einschließlich Vorzeichen) für die Lastlosigkeit td> tr> |
nd-u td> | : Numerischer Wert (einschließlich Vorzeichen) für dimensionslose Verschiebung in x-Richtung td> tr> |
nd-v td> | : Numerischer Wert (einschließlich Vorzeichen) für dimensionslose Verschiebung in y-Richtung td> tr> |
leg-u td> | : Beschriftung in x-Richtung (für Legende) td> tr> |
leg-v td> | : Verschiebungsbezeichnung in y-Richtung (für Legende) td> tr> |
x-Label td> | : x-Achsen-Label (Verschiebung) td> tr> |
y-Label td> | : y-Achsen-Label (Laden) td> tr> |
loc td> | : Position der Legendenzeichnung td> tr> |
Cantilever (inp_gfrm_canti.txt) th> tr>, der eine axiale Druckkraft erhält |
---|
L=1,000mm, E=200,000MPa, A=100m$^2$, I=833m$^4$
Initial deflection $v_0$=1mm Buckling load $P_{cr}=\pi^2 EI / 4 L^2$=411.07N |
Cantilever (inp_gfrm_cable.txt) th> tr>, dessen Spitze von einem Kabel gezogen wird |
---|
Column: L=1,000mm, E=200,000MPa, A=100m$^2$, I=833m$^4$
Cable: L=1,000mm, E=200,000MPa, A=28.3$^2$ Initial deflection $v_0$=5mm Buckling load $P_{cr}=\pi^2 EI / L^2$=1644.3NN |
Asymmetrisch unterstützter Bogen (inp_gfrm_arch.txt) unter vertikaler konzentrierter Last th> tr> |
---|
R=500mm, Center angle=215$^\circ$, E=200,000MPa, A=100m$^2$, I=833m$^4$ |
Frame, der vertikale konzentrierte Last empfängt (inp_gfrm_lee.txt) th> tr> |
---|
L=1000mm, E=200,000MPa, A=100m$^2$, I=833m$^4$ |
das ist alles
Recommended Posts