Documente Academic
Documente Profesional
Documente Cultură
Structural Analysis
And Hydro-elasticity
1) Introducere
Limbajul de macro-comenzi al programului FEM Cosmos/M permite definirea
variabilelor, functiilor si procedurilor utilizator (UDV, UDF, UDP), atat pentru faza de
preprocesare, cat si la post-procesarea analizelor FEM. Acest limbaj de programare
permite utilizatorului extinderea si automatizarea functiilor programului la: realizarea
modelului CAD, realizarea modelului FEM, aplicarea conditiilor de margine, specificarea
incarcarilor, rularea analizelor FEM, vizualizarea si evaluarea rezultatelor.
In limbajul Cosmos/M se folosesc urmatorii operatori matematici standard: adunare,
scadere, nmultire, impartire si ridicare la putere (+,-,*,/,^). Regulile de aplicare a
operatorilor matematici sunt aceleasi de la algebra.
Limbajul Cosmos/M permite definirea urmatoarelor tipuri de parametrii utilizator:
variabile simple, matrici i vectori, functii utilizator, asupra carora se pot aplica operatorii
matematici standard.
2) Parametri
Campurile necesare definirii unui parametru (variabila simpla, matrice, functie) se
caracterizeaza prin: identificator (nume), tip (real sau intreg), valoare(numeric sau
expesie).
Fiecare parametru trebuie sa aiba un nume distinct de maxim 10 caractere
alfanumerice, avand ca prim caracter o litera.
Tipuri de parametri:
a) Variabile simple:
Exemple:
Num
Name
Type
Value
INT
19
REAL
45.5
Exemple:
Functie
Definitie
Functie
Definitie
SQRT(q)
Radacina patrata
ASIN(q)
Functia arcsin
ABS(q)
Valoare absoluta
ACOS(q)
Functia arccos
EXP(q)
Functie exponentiala
ATAN(q)
Functia arctangent
LOG(q)
Logaritm natural
SINH(q)
LOG(q)
Logaritm zecimal
COSH(q)
SIGN(q)
Functie semn
TANH(q)
SIN(q)
Functia sinus
FLOOR(q)
COS(q)
Functia cosinus
CEIL(q)
TAN(q)
Functia tangent
RAND(p|q)
Functie
Definitie
XND(nd|cs)
Cordonata x a nodului
nd in sistemul de
coordonate cs
YND(nd|cs)
Cordonata y a nodului
nd in sistemul de
coordonate cs
ZND(nd|cs)
Cordonata z a nodului
nd in sistemul de
coordonate cs
XPT(pt|cs)
Cordonata x a
punctului pt in
sistemul de
coordonate cs
ELFACE(el|en|lab)
YPT(pt|cs)
Cordonata y punctului
pt in sistemul de
coordonate cs
XELF(el|fnum|cs)
Coordonata x a centrului de
greutate a fetei fnum pentru
elementul el in sist.coord. cs
ZPT(pt|cs)
Cordonata z a
punctului pt in
sistemul de
Functie
LISTSEL(en|lab)
1-True,0-False
PRIMMAX(en)
EXIST(en,lab)
1-True,0-False
YELF(el|fnum|cs)
Definitie
Se verifica accesibiliatea
entitatii en cu indexul lab
Indexul maxim al entitatii en
din baza de date
Se verifica existenta entitatii
en cu indexul lab in baza de
date
Coordonata y a centrului de
greutate a fetei fnum pentru
coordonate cs
elementul el in sist.coord. cs
NEARND(x|y|z)
Coordonata z a centrului de
greutate a fetei fnum pentru
elementul el in sist.coord. cs
NEARPT(x|y|z)
VOLUME(el)
Volumul elementului el
NDEL(el|pos)
Nodul de pe pozitia
pos a elementului el
WEIGHT(el)
Greutatea elementului el
ZELF(el|fnum|cs)
e) Functii de post-procesare:
o
o
o
o
o
GEO> PARASSIGN,X,REAL,11.5
GEO> PARASSIGN,I,INT,5
GEO> FUNCDEF,QUAD(X),REAL,X*X-2*X+1
GEO> PARASSIGN,Y,REAL,SQRT(QUAD(X))
GEO> FUNCDEF,NUM(I),INT,2*I*I-I
GEO> PARASSIGN,J,INT,NUM(I)
GEO> PARLIST, *
Listeare functiilor UDF se face prin comanda: FUNCLIST,<nume> sau
FUNCLIST,* ;
Stergerea functiilor UDF se face prin comanda: FUNCLIST,<nume> sau
FUNCLIST,*;
Semnificatie
Egal cu
Diferit cu
Mai mic cu
Mai mic sau egal cu
Mai mare decat
Mai mare sau egal cu
Si
Sau
a) Comnezile IF si ELSEIF
Cele doua structuri de control IF si ELSEIF folosesc o conditie logica sau o
combinatie de conditii logice, pentru a determina selectia instructiunilor ce vor
urma sa fie executate.
Instructiunea IF:
#IF (conditie)
Instructiune 1
Instructiune 2
Instructiune 3
Instructiune 4
#ENDIF
Structura de instructiuni IF-ELSE:
#IF (conditie)
Instructiune 1
Instructiune 2
#ELSE
Instructiune 3
Instructiune 4
#ENDIF
Structura de instructiuni IF-ELSEIF-ELSE
#IF (conditie1)
Instructiune 1
Instructiune 2
#ELSEIF (conditie2)
Instructiune 3
Instructiune 4
#ELSE
Instructiune 4
Instructiune 5
#ENDIF
b) Comanda LOOP
Comanda LOOP realizeaza un numar de cicluri pentru un set de comenzi.
Sintaxa de apelare:
PARASSIGN,ITER,INT,0
#LOOP<eticheta>,<numar maxim de cicli>
PARASSIGN,ITER,INT,ITER+1
Instructiune 1
Instructiune 2
Instructiune 3
Instructiune 4
#LABEL <eticheta>
Se pot introduce comenzi de control IF si GOTO in cadrul secventei de
instructiuni, permitand stoparea ciclarii si salt la o referinta exteriore structurii
#GOTO <eticheta>
.
.
#LABEL <eticheta>
4) Definirea GEO-macrourilor
Limbajul COSMOS/M permite definirea unui subprogram (macro) care sa includa
comenzi standar, expresii parametrice si structuri de control. Argumentele
subprogramului include atat variabilele de intrare cat si de iesire.
Apelarea subprogramelor se realizeaza prin folosirea comnezii CALLMACRO, ce
paote fi apelata interactiv din meniul COSMOS/M sau prin linie-comanda de la
consola (GEO>).
Macro comenzile au anumite restrictii legate de nume si argumente:
Secventa Cod
parassign,dsw,real,<dsw>
parassign,Lenght,real,<Lenght>
parassign,Hw,real,<Hw>
parassign,sgn,int,1
$macro,sin_press1
...
CALLMACRO,sin_shell1,dsw,Lenght,Hw,sgn
$ENDM
Semnificatie
Setarea valorilor constantelor:
Dsw pescajul mediu al navei;
Lenght lungimea navei/valului
cvasi-static
Hw inaltimea valului cvasistatic
Sgn orientarea presiunii
Definirea macrocomenzii
sin_press1, care in interiorul sau
apeleaza macrocomanda
sin_shell1 pentru argumentii: dsw,
Lenght, Hw, sgn;
$macro,sin_shell1,dsw,Lenght,Hw,sgn
parassign,csid,int,0
parassign,i,int,0
....
$ENDM
#endif
parassign,fnum,int,0
parassign,z,real,ZELF(i|fnum|csid)
parassign,x,real,XELF(i|fnum|csid)
parassign,Tief,real,(dsw+Hw/2*COS((2*PI*x/Lenght)))
parassign,pval,real,((Tief-z)*1.025*9.81)
parassign,fnum,int,5
#if (pval>0)
parassign,pval,real,(pval*sgn)
PEL,i,pval,fnum,i,1,4
#endif
parassign,i,int,0
#loop LB1 ELMAX
parassign,i,int,i+1
...
#label LB1
Definirea macrocomenzii
sin_shell1, cu argumentii: dsw,
Lenght, Hw, sgn;
Definirea parametrilor:
Csid pentru identificarea
sistemului de coordinate;
i pentru parametrul ce va fi
incrementat in structura LOOP;
Conditie logica cu 2 argumente:
exist(EL|i) verifica exista
elementului cu indexul i;
listsel(EL|i) verifica
accesibiliatea entitatii el cu
indexul i;
Cap2. Aplicatii
I)
Sub actiunea celor 2 presiunii, cea hidrostatica data de apa calma, si presiunea
marfii din interiorul tancului, cadrul ajunge la tensiunea maxima de 210.05 MPa,
in zonele brachetilori interiori, restul elementelor fiind foarte putin afectate
ajungand la tensiuni intre 1 si 131 MPa.
II)
Modelul rezista sub actiunea presiunii marfii din interiorul tancului de marfa si a
presiunii hidrostatice din apa calma, avand tensiuni maxime pe brachetii din zona
centrala. Tensiunile maxime sunt egale cu 79 MPa.
III)
Dimensiuni principale:
Lungime model: 42 m ;
Latime model (semilatime nava): 21.5 m;
Inaltime model (inaltime de constructie): 21.7 m;
Frame spacing: 1 m;
Densitate cargo: 1.56 t/m3 (zahar);
Material constructie: Otel235;
Analiza Mars2000:
Pentru aflarea pescajului navei dupa definirea presiunii marfii din cargo holds:
In cadrul analizei statice in apa calma sau obtinut tensiunile maxime de 3612 MPa
in zona prova si pupa a suportului central.
De asemenea in cadrul analizei am obtinut deplasari maxime de 733.84 mm.
In cadrul analizei statice in apa calma sau obtinut tensiunile maxime de 3612.6
MPa in zona prova si pupa a suportului central.
De asemenea in cadrul analizei am obtinut deplasari maxime de 733.84 mm.