Sunteți pe pagina 1din 22

Universitatea "Dunarea de Jos" din Galati

Facultate de Arhitectura Nave

Structural Analysis
And Hydro-elasticity

Professor: prof.dr.ing. Leonard Domnioru

Student: Pamint Tiberiu-Mircea

Cap1. Expunere Teoretica

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:

Mod declarare: PARASSIGN, <nume>,<REAL sau INT>,<valoare> ;


Mod apelare: Din meniu Cosmos/M sau prin comanda de la consola;
Mod listare variabile: PARLIST, <nume> sau PARLIST,* ;
Mod stergere variabile: PARDEL,<nume> sau PARDEL,* ;

Definire: GEO> PARASSIGN,T,INT,19 ;


GEO> PARASSIGN,B,REAL,45.5;

Listarea tuturor parametrilor: GEO>PARLIST,* ;

Exemple:

Num

Name

Type

Value

INT

19

REAL

45.5

b) Variabile vectori si matrici:

Mod definire:ARRDEF,<nume_matrice[dimensiune]>,<Real sau Int> ;


Mod atribuire valori (tip numerice, expresii, variabile, functii), pentru
fiecare termen in parte: ARRASSIGN,<element matrice>,<valoare>;
Mod listare matrice: ARRLIST,<nume matrice> sau ARRLIST,* ;
Mod stergere matrice: ARRDEL,<nume matrice> sau ARRDEL,* ;

Exemple:

Definire: GEO> ARRDEF,ARRAY[5],INT ;


GEO> ARRDEF,ARRAY1[10][15],REAL ;
Atribuire Valoare: GEO> ARRASSIGN,ARRAY[5],1 ;
GEO> ARRASSIGN,ARRAY[5][5],1.5+ ARRAY[5];
Listarea tuturor elementelor matricei: GEO>ARRLIST,ARRAY ;
Array No.1
ARRAY[5] INT
ARRAY[1] 12
ARRAY[2] 55
ARRAY[3] 87
ARRAY[4] 104
ARRAY[5] 1

c) Functii predefinite standard:

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)

Functia sin hiperbolic

LOG(q)

Logaritm zecimal

COSH(q)

Functia cos hiperbolic

SIGN(q)

Functie semn

TANH(q)

Functia tan hiperbolic

SIN(q)

Functia sinus

FLOOR(q)

Trunchierea la nr. Intreg (inferior)

COS(q)

Functia cosinus

CEIL(q)

Trunchierea la nr. Intreg (superior)

TAN(q)

Functia tangent

RAND(p|q)

Genereaza numere aleatoare (p-q)

d) Functii predefinite de pre-procesare:

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)

Numarul fetei elementului el


asociata cu entitatea 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)

Cel mai apropiat nod


de x,y,z

Coordonata z a centrului de
greutate a fetei fnum pentru
elementul el in sist.coord. cs

NEARPT(x|y|z)

Cel mai apropiat


punct de 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)

en= pt puncte; rg regiuni ; cr curbe ; ph poliedre ; sf suprafee ; pa pri ; vl volume ; nd noduri ; ct


contururi ; el elemente ;

e) Functii de post-procesare:

Post-procesare structurala/deplasari: UX,UY,UZ,URES(let|nd|cs), pentru


deplasari pe directia aleasa(x,y,z,resultanta); RX,RY,RZ(let|nd|cs), pentru
rotirile in jurul axei alese.
o Nd= numarul nodului la care se determina deplasarea;
o 0: valoarea maxima, in valoarea absoluta pe toate
nodurile, a deplasarii;
o -1: valoarea maxima, im sens algebric pe toate nodurile,
a deplasarii;
o -2: valoarea minima, in sens algebric pe toate nodurile, a
deplasarii;
o Lcts: numarul cazului de incarcare sau incementul de
timp la analiza dinamica (=1 static);
o Cs: sistemul de coordonate (=0, daca este cel absolut);

Post-procesare structurala/viteze: VX,VY,VZ,VRES(step|nd), pentru viteze


pe directia aleasa(x,y,z,resultanta); WX,WY,WZ(step|nd), pentru viteze
unghiulare dupa axa aleasa.
o Nd= numarul nodului la care se determina viteza in
sistemul global de axe carteziene;
o 0: valoarea maxima, in valoarea absoluta pe toate
nodurile, a vitezei;
o -1: valoarea maxima, im sens algebric pe toate nodurile,
a vitezei;
o -2: valoarea minima, in sens algebric pe toate nodurile, a
vitezei;
o step: incrementul de timp la care se determina viteza;

Post-procesare structurala/acceleratii: AX,AY,AZ,ARES(step|nd), pentru


viteze pe directia aleasa(x,y,z,resultanta); BX,BY,BZ(step|nd), pentru
acceleratii unghiulare dupa axa aleasa.

o
o
o
o
o

Nd= numarul nodului la care se determina acceleratia in


sistemul global de axe carteziene;
0: valoarea maxima, in valoarea absoluta pe toate
nodurile, a acceleratiei;
-1: valoarea maxima, im sens algebric pe toate nodurile,
acceleratiei;
-2: valoarea minima, in sens algebric pe toate nodurile,
acceleratiei;
step: incrementul de timp la care se determina
acceleratia;

Post-procesare structurala/deformatii specifice: EPSX, EPSY, EPSZ,


EPSRES(let|el), pentru deplasari pe directia aleasa(x,y,z,resultanta);
GMXY,GMYZ,GMZX(let|el), pentru rotirile in jurul axei alese.
o El = numarul elementului la care se determina
deformatia specifica, in sistemul de coordonate folosit la
definirea elementului si a analizei;
o 0: valoarea maxima, in valoarea absoluta pe toate
elementele, a deformatiei specifice;
o -1: valoarea maxima, im sens algebric pe toate toate
elementele, a deformatiei specifice;
o -2: valoarea minima, in sens algebric pe toate toate
elementele, a deformatiei specifice;
o Lcts: numarul cazului de incarcare sau incementul de
timp la analiza dinamica (=1 static);

Post-procesare structurala/reactiuni: RFX, RFY, RFZ, RFRES (let|nd|cs),


pentru reactiuni pe directia aleasa(x,y,z,resultanta); RMX, RMY, RMZ,
RMRES(let|nd|cs), pentru momente de reactiune pe axa specificata.
o nd = numarul nodului la care se determina fortele de
reactiune, in sistemul de coordonate folosit la definirea
elementului si a analizei;
o 0: valoarea maxima, in valoarea absoluta pe toate
nodurile, a reactiunii;
o -1: valoarea maxima, im sens algebric pe toate toate
nodurile, a reactiunii;
o -2: valoarea minima, in sens algebric pe toate toate
nodurile, a reactiunii;
o Lcts: numarul cazului de incarcare sau incementul de
timp la analiza dinamica (=1 static);
o Cs: sistemul de coordonate (=0, daca este cel absolut);

Post-procesare structurala/frecvente proprii: FREQ(mode) pentru obtinerea


valorii frecventei proprii pentru modul precizat (la analiza la vibratii
libere), sau pentru obtinerea valorii factorului de incarcare la flambaj (la
analiza la stabilitate);

f) Functii definite de utilizator (UDF)

Se realizeaza cu comanda: FUNCDEF,<nume>,<REAL sau INT>,


definirea expresiei ce poate fi apelata prin meniu Cosmos/M sau linia de
comanda.
Exemplu:

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,*;

3) Structuri de control si repetitive


Pasii de calcul ai algoritmilor din Cosmos/M:

Comenzi secventiale: Definirea elementelor;


Structuri de control: Conditii logice precum GOTO, IF-ELSEIF-ELSE;
Structuri repetitive: Comenzi repetitive pentru blocuri de comenzi LOOP;

Limitele utilizarii acestor structuri:

Pot fi utilizate doar prin utilizarea modului GEO de macro-comenzi si nu poate fi


utilizat interactiv prin GEOSTAR;
Numele sa contina max 10 caractere;
Poate contine maxim 500 de linii de comanda;
Operator
==
!=
<
<=
>
>=
&&
||

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

LOOP, dar nu se admit referinte din exteriorul comenzii loop la blocul de


instructiuni din interiorul ciclului.
c) Comanda GOTO
Comanda GOTO asigura saltul neconditional la o eticheta precizata, fara a mai
parcurge setul curent de instruciuni.
Sintaxa de apelare:

#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:

Numele unui macro poate avea maxim 10 caractere;


Numarul de argumente 0-10;
Numele unui argument sa fie de maxim 10 caractere;
Argumentele unui macro nu pot fi decat variabile simple ( nu se admit matrici sau
functii);
Nu se poate folosi un numar in locul unui argument la apelarea unui macro
(asignarea numarului la variabila relationata argumentului se face prin comanda
PARASSIGN);
Toate argumentele unui macro trebuie definite aprioric prin comanda
PARASSIGN;
Numarul maxim de variabile simple definite este de 50;
Numarul maxim de functii definite local este de 50;
Numarul maxim de matrici definite local este de 10;
Macrocomenzile pot apela celelalte macrocomenzi fara restrictii, dar nu se pot
apela pe ele insusi;

5) Exemplu Macrocomanda Pentru Calculul Presiunii Din Val Cvasi-Static Sinusoidal

C* ******Hydrostatic pressure sin free surface KN/m2


$macro,sin_press1
parassign,dsw,real,<dsw>
parassign,Lenght,real,<Lenght>
parassign,Hw,real,<Hw>
parassign,sgn,int,1
CALLMACRO,sin_shell1,dsw,Lenght,Hw,sgn
$ENDM
$macro,sin_shell1,dsw,Lenght,Hw,sgn
parassign,csid,int,0
parassign,i,int,0
#loop LB1 ELMAX
parassign,i,int,i+1
#if (exist(EL|i) && listsel(EL|i))
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
#endif
#label LB1
$ENDM
C* ******End

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

#if (exist(EL|i) && listsel(EL|i))

#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

C* ******Hydrostatic pressure sin free surface KN/m2


C* ******End

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;

Atribuirea de valori pentru


constantele:
Z cota elementului cu
indexul i;
X abscisa elementului cu
indexul i;
Tief cota suprafetei libere;
Pval presiunea din val;
Fnum fata elementului;
Conditie logica cu un singur
argument si 2 instructiuni care
verifica daca presiunea din val
calculata este mai mare ca 0,
apoi atribuie acea presiune
elementului cu index i;
Atribuire valoare 0, variabilei i
ce urmeaza sa fie incrementata
in blocul instructiunii LOOP.
Instructiune repetiva LOOP, cu
numar de pasi egal cu indexul
elementului maxim.
Incrementarea variabilei i,
inaintea inceperii blocului de
instructiuni.

Linie de comentariu din


limbajul Cosmos/M.

Cap2. Aplicatii
I)

Sectiune cadru pentru un petrolier simplificat

a) Model 3D cadru petrolier + boundary conditions and loads

b) Verificarea cadrului transversal prezentat anterior sub actiunea presiunii marfii


si a presiunii hidrostatice

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)

Sectiune a unui petrolier simplificat extins pe 40 de m

a) Model 3D + boundary conditions and loads

b) Verificarea modelului prezentat anterior sub actiunea presiunii marfii si a presiunii


hidrostatice

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)

Sectiune a unui vrachier extins pe 42 de m

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:

a) Model 3D + boundary conditions and loads (fara elementele de tip RBAR)

Pentru aflarea pescajului navei dupa definirea presiunii marfii din cargo holds:

Vom definini forta de greutate folosind acceleratia gravitationala ( g= 9.81 m/s2 );


Vom alege 2 noduri ( N1 0,0,0 si N2 42000,0,0) care vor fi blocate pe dz;
Vom rula analiza , si vom verifica reactiunile in cele 2 noduri (cazul nostru suma
reactiunilor RZ= 36000000 N = 36000 kN);
Folosind formula RZ*2/g obtinem deplasamentul ( 7200 t );
Folosind valorile de : Cb=1 , densitate=1.025 , Lungime si Latime; obtinem
pescajul navei, T=7.78m;
Avand pescajul alegem o inaltime a valului Hw= 7 m ( < T );

b) Model 3D + boundary conditions and loads (cu elementele de tip RBAR)

c) Analiza la presiune in apa calma

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.

d) Analiza la presiune in val cvasi-static ( Hw = 7 m )

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.

S-ar putea să vă placă și