Sunteți pe pagina 1din 10

Elemento cuadrilátero isoparamétrico de 9 nodos.

Dentro del grupo de los elementos lagrangianos se encuentra el elemento cuadrilátero de 9


nodos. Es un elemento bicuadrático completo.
Funciones de forma

1
N1  1   1    
4
1 N5  
1
1   2  1   
N 2   1   1     2
4
1    1   2  
1
1 N6 
N 3  1   1     2
4
N 7  1   2  1   
1
1
N 4   1   1     2
4
N 8   1    1   2  
Figura 1. Conectividad nodal 1
2
N 9  1   2 1   2 
Derivadas de las funciones de forma
N1 N1
 0.25 1  2 1     0.25 1   1  2  
 
N 2 N 2
 0.25 1  2 1     0.25 1   1  2  
 
N 3 N 3
 0.25 1  2 1     0.25 1   1  2  
 
N 4 N 4
 0.25 1  2 1     0.25 1   1  2  
 
N 5 N 5
  1     0.5 1   2  1  2 
 
N 6 N 6
 0.5 1  2  1   2    1    
 
N 7 N 7
  1     0.5 1   2  1  2 
 
N 8 N 8
 0.5 1  2  1   2    1    
 
N 9 N 9
 2 1   2   2 1   2 
 
Cálculo de la matriz cinemática
 i 0
1 
La matriz cinemática estará conformada por tantos módulos de la forma Bi  0  i 
J 
 i i 

 x y x y 
como nodos tenga el elemento, donde J      ;
     
Ni N Ni N
i  b1  b2 i ;  i  c1  c2 i y además se tiene
   
y y x x
b1  ; b2  ; c1  ; c2  . Con lo cual el cálculo del Jacobiano estará dado
   

por: J  b1c1  b2c2 . Teniendo en cuenta que x  x  ,  =xi Ni  ,  ; y  y  ,   yi Ni  , 

es posible calcular cada término de la matriz cinemática y organizarla según:


 
 N1 N N N N N 
 b1  b2 1 0 b1 2  b2 2 0 b1 n  b2 n 0 
       
1  N N N N N N 
B  0 c1 1  c2 1 0 c1 2  c2 2 0 c1 2  c2 n 
J        
 N1 N N N N N N N N N N N 
 c1  c2 1 b1 1  b2 1 c1 2  c2 2 b1 2  b2 2 c1 n  c2 n b1 n  b2 n 
             
 nodo1 nodo 2 nodo n 
De forma general se puede utilizar el siguiente algoritmo de MATLAB para calcular la matriz
cinemática y la matriz de rigidez de un elemento isoparamétrico de 9 nodos:

%% Definición de la matriz constitutiva de Tensión plana


E=2.1e7; miu= 0.20;
C=[ E/(1-miu^2) miu*E/(1-miu^2) 0;
miu*E/(1-miu^2) E/(1-miu^2) 0;
0 0 E/(2*(1+miu))];
%% Definición de las coordenadas de los 9 puntos de Gauss
pg=(3/5)^0.5;
pgshi = [-1 1 1 -1 0 1 0 -1 0]*pg; pgeta = [-1 -1 1 1 -1 0 1 0 0]*pg;
wshi = [ 5 5 5 5 8 5 8 5 8]/9; weta = [ 5 5 5 5 5 8 5 8 8]/9;

%% Ingreso o lectura de las coordenadas nodales del elemento


Corx = [6 5 1.5 2 5.5 3.25 1.75 4.0 1.500];
Cory = [3 4 3.5 2 3.5 3.75 2.75 2.5 3.125];

%% Cálculo de la matriz de rigidez del elemento


ke=zeros(18,18);
for ipg=1:9
shi = pgshi(ipg);
eta = pgeta(ipg);

%% Funciones de Forma
N1= 0.25*(1-shi)*(1-eta)*shi*eta;
N2= -0.25*(1+shi)*(1-eta)*shi*eta;
N3= 0.25*(1+shi)*(1+eta)*shi*eta;
N4= -0.25*(1-shi)*(1+eta)*shi*eta;
N5= -0.5*(1-shi^2)*(1-eta)*eta;
N6= 0.5*(1+shi)*(1-eta^2)*shi;
N7= 0.5*(1-shi^2)*(1+eta)*eta;
N8= -0.5*(1-shi)*(1-eta^2)*shi;
N9= (1-shi^2)*(1-eta^2);

N = [N1 N2 N3 N4 N5 N6 N7 N8 N9];

% Derivadas de las funciones de forma


dNdshi=[eta*(shi/4 - 1/4)*(eta - 1) + (eta*shi*(eta - 1))/4; ...
eta*(shi/4 + 1/4)*(eta - 1) + (eta*shi*(eta - 1))/4; ...
eta*(shi/4 + 1/4)*(eta + 1) + (eta*shi*(eta + 1))/4; ...
eta*(shi/4 - 1/4)*(eta + 1) + (eta*shi*(eta + 1))/4; ...
-eta*shi*(eta - 1); ...
- (eta^2 - 1)*(shi/2 + 1/2) - (shi*(eta^2 - 1))/2; ...
-eta*shi*(eta + 1); ...
- (eta^2 - 1)*(shi/2 - 1/2) - (shi*(eta^2 - 1))/2; ...
2*shi*(eta^2 - 1)];

dNdeta=[ eta*shi*(shi/4 - 1/4) +shi*(shi/4 - 1/4)*(eta - 1); ...


eta*shi*(shi/4 + 1/4) +shi*(shi/4 + 1/4)*(eta - 1); ...
eta*shi*(shi/4 + 1/4) +shi*(shi/4 + 1/4)*(eta + 1); ...
eta*shi*(shi/4 - 1/4) +shi*(shi/4 - 1/4)*(eta + 1); ...
- eta*(shi^2/2 - 1/2)- (shi^2/2 - 1/2)*(eta - 1); ...
-2*eta*shi*(shi/2 + 1/2); ...
- eta*(shi^2/2 - 1/2) - (shi^2/2 - 1/2)*(eta + 1); ...
-2*eta*shi*(shi/2 - 1/2); ...
2*eta*(shi^2 - 1)];

%% Cálculo del Jacobiano


b1=dot(cory,dNdeta); b2=dot(cory,dNdshi);
c1=dot(corx,dNdshi); c2=dot(corx,dNdeta);

J=b1*c1-b2*c2;

%% Cada módulo de la matriz cinemática en una celda de un arreglo cell


Baux=cell(1,9);

for i=1:9

Baux{1,i}=
[b1*dNdshi(i)-b2*dNdeta(i) 0 ;
0 c1*dNdeta(i)-c2*dNdshi(i) ;
c1*dNdeta(i)-c2*dNdshi(i) b1*dNdshi(i)-b2*dNdeta(i)];
end

%% Armado (concatenación) de la matriz cinemática


B=[Baux{1,:}]/J

%% Cálculo de la matriz de rigidez


kpg=B'*C*B*J*wshi(ipg)*weta(ipg);
ke=ke+kpg;
end
Para calcular la matriz de rigidez de otro elemento es suficiente con remplazar las
coordenadas nodales en los vectores Corx y Cory

Análisis de peso propio

Consideremos un elemento con dimensiones 1 x 1 x 0.10 m, el cual está apoyado en la base


de tal manera que las acciones sean axiales, y es sometido a peso propio

Así, los nodos 1, 2 y 5 tienen restringido el desplazamiento vertical y los nodos 1, 8 y 4 tienen
restringido el desplazamiento horizontal, el archivo de entrada de datos restric.txt quedará escrito
como
1 2 0.0
2 2 0.0
5 2 0.0
1 1 0.0
8 1 0.0
4 1 0.0

Mientras que el archivo de datos generales quedará escrito como:


9 1 0.10 1 2.1e7 0.25 2.4 9.81

Recordando, el 9 representa el tipo de elemento usado (elemento cuadrilátero isoparamétrico de 9


nodos; 1 es el tipo de análisis (tensión plana); 0.10 representa el espesor del problema; 1 es el
número de materiales que se emplea en el ejemplo; 2.1e7 es el módulo de Young del material en
Kpa; 0.25 es el coeficiente de Poisson; 2.4 es la densidad del material en Ton/m3; y finalmente
9.81 m/seg2 representa la aceleración de la gravedad.
El archivo de coordenadas nodales del elemento, coord..txt estará escrito como:
0.0 0.0
1.0 0.0
1.0 1.0
0.0 1.0
0.5 0.0
1.0 0.5
0.5 1.0
0.0 0.5
0.5 0.5

En este caso se tiene que el orden de la fila da el número del nodo y los datos consignados son,
respectivamente, las coordenadas en direcciones x e y. Así, por ejemplo, las coordenadas del
nodo 6 son 1.0 y 0.5.
El archivo de conectividad nodal, en el cual se define cada elemento y se asigna el material con el
cual queda discretizado el elemento, malla.txt, quedará escrito como:
1 2 3 4 5 6 7 8 9 1

En este caso los primeros 9 números corresponden a la numeración global de los nodos que
conforman el elemento, y el número final de ese registro es el identificador del material que se
asigna al elemento. La numeración de la conectividad nodal corresponde a la secuencia definida
en la figura 1. Es decir, las coordenadas nodales y la conectividad nodal deben estar
perfectamente correlacionadas, para el caso de mallas con un gran número de elementos es
conveniente utilizar un software mallador, en el caso del curso se utilizará el GID.
Teniendo en cuenta, que el análisis que se está realizando es únicamente a peso propio, el archivo
de cargas, cargas.txt, debe generarse y quedará vacio, de lo contrario el script de MATLAB, se
detendrá por no encontrar el archivo.

El script de MATLAB, internamente solucionará el vector de fuerzas equivalentes debido a las


fuerzas de volumen para cada elemento, y luego ensamblará el vector de fuerzas equivalentes
debido a fuerzas volumétricas global. La ecuación que se debe resolver en cada elemento es
fb( e )  t  N T bdA , la cual se resuelve utilizando la integración por cuadraturas de Gauss y
A
Legendre y de acuerdo al número de puntos de integración del tipo de elementos que se esté
utilizando, para este caso se está utilizando 9 puntos de integración (3 en cada dimensión) y se
1 1
resuelve en un ciclo anidado con la siguiente fórmula fb( e )  t  N T bdA  t   N T b J d d y
1 1
A

1 1
aplicando la integración numérica se tendrá: t   N T b J d d  wi w j N T (i , j )b J (i , j )
1 1

 0 
donde b    es el vector de fuerzas volumétricas por unidad de volumen, definido por la
  g 
multiplicación de la densidad del material,  , y la aceleración de gravedad, g , actuando en el

N 0 N2 0 N9 0
sentido negativo del eje y. N   1
N9 
es la matriz de funciones de
0 N1 0 N2 0

forma del elemento.


for i=1:numelem

corx=nudo(elements(i,1:9),1); % vectores de coordenadas nodales de


cory=nudo(elements(i,1:9),2); % cada elemento
bf=[0 -romat(elements(i,10))*grav]; % Fuerzas volumétricas por unidad
fbee=zeros(18,1); % de volumen
for ipg=1:9

shi=pgs(ipg);
eta=pgr(ipg);

b1=dot(dnr,cory) ; c1=dot(dns,corx);
b2=dot(dns,cory) ; c2=dot(dnr,corx);

J=c1*b1-c2*b2;

N1 = 0.25*(1-shi)*(1-eta)*shi*eta; N5 = -0.5*eta*(1-eta)*(1-shi^2);
N2 = -0.25*(1+shi)*(1-eta)*shi*eta; N6 = 0.5*shi*(1+shi)*(1-eta^2);
N3 = 0.25*(1+shi)*(1+eta)*shi*eta; N7 = 0.5*eta*(1+eta)*(1-shi^2);
N4 = -0.25*(1-shi)*(1+eta)*shi*eta; N8 = -0.5*shi*(1-shi)*(1-eta^2);
N9 = (1-shi^2)*(1-eta^2);

N = [N1 0 N2 0 N3 0 N4 0 N5 0 N6 0 N7 0 N8 0 N9 0;...
0 N1 0 N2 0 N3 0 N4 0 N5 0 N6 0 N7 0 N8 0 N9];

fbpg = ws(ipg)*wr(ipg)*N'*bf'*J;
fbee = fbee+fbpg;

end
fbe(:,i) = ee*fbee;
end
Una vez ejecutada la rutina anterior el vector de fuerzas volumétricas equivalentes del elemento
analizado estará representado como:
 f b1x   0 
 1  
 f b y   0.0654 
 f b 2x   0 
 2  
 f b y   0.0654 
 f 3  0 
 b3x   
 f b y   0.0654 
 f 4  0 
 bx   
 f b 4y   0.0654 
 5 
f 0 
f b   b5x    
 f b y   0.2616 
 6  
 fb x   0 
 f 6   0.2616 
 b 7y   
 fb x   0 
 f 7   0.2616 
 b 8y   
 fb x   0 
 8  
 f b y   0.2616 
 f b 9x   0 
 9  
 f b y   1.0464 

Visualización de los esfuerzos

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