Documente Academic
Documente Profesional
Documente Cultură
STRUCTURAL ANALYSIS
AND HYDROELASTICITY
2015
GALATI
Capitolul I
Modele 3D-FEM de analiza a rezistentei locale
1.1 Modelele 3D-CAD
A. Petrolier
Rezultate
B. Portcontainer
Rezultate
C.
Dupa ce am generat modelul 3D-FEM, am extins pe lungimea navei, zona centrala
aproximativ 70-75% si 25-30% zona de la extremitati. Apoi am echilibrat nave in apa calma si
la asezarea statica pe val folosind GEO-commands.
Mai intai am calculat pescajul, iar dupa prima analiza am citit forta de reactiune si am
facut corectiile de pescaj.
Capitolul II
Elemente ale limbajului de programare GEO-macro al Cosmos/M
Limbajul Cosmos/M permite definirea urmtoarelor tipuri de parametrii utilizator:
variabile simple, matrici i vectori, funcii utilizator, asupra crora se pot aplica
operatorii
matematici standard.
Fiecare utilizator isi poate crea propriile subprograme, respectiv macrouri ce se
includ n fiierul GEOMACRO.MAC din directorul c:\cosmosm i care sunt apelabile
direct din interfaa GEOSTAR.
2.1 Parametrii: variabile simple, masive, functii UDF
Un parametru (variabil simpl, matrice, funcie) se caracterizeaz prin:
identificator (nume), tip (real sau ntreg), valoare (expresie).
Fiecare parametru trebuie s aib nume distinct, ce conin maxim 10 caractere
alfanumerice (A-Z, 0-9). Primul caracter al identificatorului trebuie s fie o liter.
Suplimentar n limbajul Cosmos/M exist identificatori rezervai pentru variabile
i
funcii predefinite ale programului, a cror nume nu poate fi realocat (ex. PTMAX,
CRMAX, SFMAX, etc.).
Linia de comentariu n limbajul Cosmos/M se declar folosind C* la nceput
de linie comand.
A. Variabile simple
Declararea variabilelor utilizator se face prin comanda:
PARASSIGN, <nume>, <tip, REAL sau INT>, <valoare>
ce poate fi apelat interactiv din meniul Cosmos/M (Control >Parameter>Assign
Parameter) sau prin linie-comand de la consol (GEO>).
Obs. Valoarea parametrului poate fi numeric sau o expresie din variabile i funcii.
Listarea variabilelor utilizator se face prin comanda:
PARLIST,<nume>
ce poate fi apelat interactiv din meniul Cosmos/M (Control >Parameter>List
Parameter) sau prin linie-comand de la consol (GEO>).
Pentru afiarea tuturor variabilelor utilizator definite se utilizeaz comanda:
PARLIST,*
Obs. Variabilele predefinite nu pot fi listate direct, fiind necesar atribuirea lor unor
variabile utilizator, folosind comanda PARASSIGN.
Comanda PARLIST afieaz pe ecran numrul variabilei, numele, tipul i
valoarea numeric pentru fiecare parametru, ce pot fi copiate folosind comanda copy
de la fereastra tip Windows de listare.
instruciune n+1
...
instruciune p
#ENDIF
Structura IF-ELSE permite programului selecia a dou seturi de comenzi,
funcie de
evaluarea condiiei logice True/False, avnd sintaxa:
#IF (condiie)
instruciune 1
...
instruciune m
#ELSE
instruciune m+1
...
instruciune n
#ENDIF
n cazul cnd se realizeaz selecia dup mai multe condiii logice, folosirea
unui numr mare de comenzi IF imbricate conduce la generarea unei
structuri de comenzi greu de verificat. n acest caz se recomand folosirea
structurii de control IF-ELSEIF-ELSE, avnd pentru trei condiii succesive
urmtoarea sintax:
#IF (condiie 1)
instruciune 1
...
instruciune m
#ELSEIF (condiie 2)
instruciune m+1
...
instruciune n
#ELSEIF (condiie 3)
instruciune n+1
...
instruciune p
#ELSE
instruciune p+1
...
instruciune q
#ENDIF
Comanda LOOP
Comanda LOOP realizeaz un numr de cicluri pentru un set de comenzi, cu
sintaxa:
PARASSIGN,ITER,INT,0
#LOOP <etichet> <numrul maxim de cicli>
PARASSIGN,ITER,INT,ITER+1
instruciune 1
...
instruciune m
#LABEL <etichet>
Obs. Ciclarea n comanda LOOP se realizeaz implicit cu un increment unitar.
Se pot introduce comenzi de control IF i GOTO n cadrul setului de
instruciuni, permind chiar stoparea ciclrii i salt la o referin n
exteriorul structurii LOOP. Nu se admit referine din exteriorul comenzi LOOP
la blocul de instruciuni din interiorul ciclului.
Comanda GOTO
Comanda #GOTO asigur saltul necondiionat la o etichet precizat, fr a
mai parcurge setul curent de instruciuni, avnd urmtoare sintax:
#GOTO <etichet>
...
#LABEL <etichet>
#if (exist(EL|i) && listsel(EL|i)) // verifica daca elementele exista si sunt accesibile
parassign,fnum,int,0
parassign,z,real,ZELF(i|fnum|csid) // variabila va primi coordonata z al centrului de
greutate de pe fata
//elementului
parassign,pval,real,((Tief-z)*1.025*9.81) //valoarea presiunii se va calcula in functie
de pozitia
//elemetului repectiv si
acceleratia gravitationala a apei
parassign,fnum,int,5
#if (pval>0) //verifica daca valoare presiunii este mai mare decat 0 si daca e
adevarat
parassign,pval,real,(pval*sgn)
PEL,i,pval,fnum,i,1,4 // se aplica presiune egala cu pval pe elementul i pe fata
fnum
#endif
#endif
#label LB1
$ENDM
C* *****End