You are on page 1of 9

Curso 3: Análisis No-lineal de Estructuras

2017

Ejemplo 7
Para el siguiente enrejado de tres GDL, conformada por cinco bielas:

Unidades - [Tonf, cm]

Podemos definir las coordenadas de los nodos como:

N1 = [0 600];
N2 = [400 600];
N3 = [0 0];
N4 = [400 300];

Además, considerando las siguientes propiedades de los elementos:

A = 25;
fy = 2.2;
Eo = 220;
Epf = 11;

Y calculamos

Hk = (Eo*Epf)/(Eo-Epf);

Ahora, asumiendo que tenemos un material bilineal con endurecimiento que define la relación de
tensión ( ) vs deformación ( )

y que se puede observar graficamente como:

e_Mat = [0:0.001:0.1]';
sigma_Mat = zeros(length(e_Mat),1);
Et_Mat= zeros(length(e_Mat),1);
ep_Mat = 0;
sigmaB_Mat = 0;
for i=1:length(e_Mat)
[Et_Mat(i),sigma_Mat(i),sigmaB_Mat,ep_Mat] = Estado_MaterialBilinealEC(Eo,Hk,fy,sigmaB_Mat
end % for
plot(e_Mat,sigma_Mat,'LineWidth',1);
grid;
xlabel('\epsilon');ylabel('\sigma');

Determinar la deformación final considerando un análisis elástico de 2do orden, con una metodología
incremental de fuerzas (Control por Fuerzas) usando el siguiente numero de incrementos:

nIncrementos = 20;

Y con fuerzas externas maximas iguales a: F1 = 35, F2 = -80 y F3 = 35

F_Final=1.1*[35 -80 35]';

Solución:

Procedemos a definir la matriz de compatibilidad para cada elemento

Elemento 1:
C_E1 = [0 0 0; 0 0 0; 1 0 0 ; 0 1 0];

Elemento 2:

C_E2 = [0 0 1; 0 0 0; 1 0 0; 0 1 0];

Elemento 3:

C_E3 = [0 0 0; 0 0 0; 0 0 1; 0 0 0];

Elemento 4:

C_E4 = [0 0 0; 0 0 0; 1 0 0; 0 1 0];

Elemento 5:

C_E5 = [0 0 0; 0 0 0; 0 0 1; 0 0 0];

Vamos a comenzar el proceso incremental asumiendo un valor de deformación inicial igual a cero:

U0 = [0 0 0]';
R0 =[0 0 0]';
F_iF = [0 0 0]';

Antes de realizar el procedimiento incremental, se requiere definir el valor de incremento:

dFo=F_Final/nIncrementos;

Se definen dos variables que guardaran los resultados para el desplazamiento vertical de los GDL y de
las fuerzas aplicadas

F = zeros(2*nIncrementos+1,3);
u = zeros(2*nIncrementos+1,3);

Se define la variable que guardan las tensiones y deformaciones en los elementos a nivel local para
cada incremento de fuerza
s_E = zeros(2*nIncrementos+1,5);
e_E = zeros(2*nIncrementos+1,5);

Se definen en cero la deformación plastica acumulada ( ) y la tensión base o back-stress ( ) en


el material:

sigmaB_MatE1 = 0; ep_MatE1 = 0;
sigmaB_MatE2 = 0; ep_MatE2 = 0;
sigmaB_MatE3 = 0; ep_MatE3 = 0;
sigmaB_MatE4 = 0; ep_MatE4 = 0;
sigmaB_MatE5 = 0; ep_MatE5 = 0;
iFF = 0;

Comenzaremos a realizar la carga del sistema mediante incrementos

for iF = 1:2*nIncrementos

Definimos el valor de fuerza correspondiente al incremento iF

i=0;
iFF = iFF +1;
if iFF <= nIncrementos
F_iF = F_iF + dFo;
dF_iter=dFo;
else
F_iF = F_iF - dFo;
dF_iter=-dFo;
end
u_iter = U0;

Comenzamos a iterar para el incremento iF

while norm(dF_iter,2) >= 0.01

Empezamos la iteración:

i=i+1;

Determinamos el estado actual de las componentes de la estructura:

[Kl_E1,Kt_E1,Rl_E1,R_E1,T_E1,sigma_E1,Et_E1,e_E1,sigmaB_MatE1_iter,ep_MatE1_iter] = ..
Estado_Biela(Eo,Hk,fy,sigmaB_MatE1,ep_MatE1,A,C_E1,N1,N2,u_iter);
[Kl_E2,Kt_E2,Rl_E2,R_E2,T_E2,sigma_E2,Et_E2,e_E2,sigmaB_MatE2_iter,ep_MatE2_iter] = ..
Estado_Biela(Eo,Hk,fy,sigmaB_MatE2,ep_MatE2,A,C_E2,N4,N2,u_iter);
[Kl_E3,Kt_E3,Rl_E3,R_E3,T_E3,sigma_E3,Et_E3,e_E3,sigmaB_MatE3_iter,ep_MatE3_iter] = ..
Estado_Biela(Eo,Hk,fy,sigmaB_MatE3,ep_MatE3,A,C_E3,N1,N4,u_iter);
[Kl_E4,Kt_E4,Rl_E4,R_E4,T_E4,sigma_E4,Et_E4,e_E4,sigmaB_MatE4_iter,ep_MatE4_iter] = ..
Estado_Biela(Eo,Hk,fy,sigmaB_MatE4,ep_MatE4,A,C_E4,N3,N2,u_iter);
[Kl_E5,Kt_E5,Rl_E5,R_E5,T_E5,sigma_E5,Et_E5,e_E5,sigmaB_MatE5_iter,ep_MatE5_iter] = ..
Estado_Biela(Eo,Hk,fy,sigmaB_MatE5,ep_MatE5,A,C_E5,N3,N4,u_iter);

Ensamblamos la matriz de rigidez tangente en el estado actual de la estructura:


Kt = Kt_E1+Kt_E2+Kt_E3+Kt_E4+Kt_E5;

Y el vector de fuerzas resistente en el estado actual de la estructura:

R_iter = R_E1 + R_E2 + R_E3 + R_E4 + R_E5;

Calculamos la fuerza desbalanceada ( ) para la iteración

dF_iter = F_iF - R_iter;

Resolvemos el sistema de ecuaciones y determinamos los incrementos de los desplazamientos


requeridos para la iteración

dU_iter = Kt^-1*dF_iter;
u_iter = u_iter + dU_iter;

end % while

Definimos el punto de partida para el siguiente incremento

U0 = u_iter;
R0 = R_iter;

Se modifican el estado anterior para el material:

sigmaB_MatE1 = sigmaB_MatE1_iter; ep_MatE1 = ep_MatE1_iter;


sigmaB_MatE2 = sigmaB_MatE2_iter; ep_MatE2 = ep_MatE2_iter;
sigmaB_MatE3 = sigmaB_MatE3_iter; ep_MatE3 = ep_MatE3_iter;
sigmaB_MatE4 = sigmaB_MatE4_iter; ep_MatE4 = ep_MatE4_iter;
sigmaB_MatE5 = sigmaB_MatE5_iter; ep_MatE5 = ep_MatE5_iter;

Guardamos el estado final despues de iterar para el incremento analizado

u(iFF+1,:) = u_iter(:);
F(iFF+1,:) = R_iter(:);
s_E(iFF+1,:) = [sigma_E1 sigma_E2 sigma_E3 sigma_E4 sigma_E5];
e_E(iFF+1,:) = [e_E1 e_E2 e_E3 e_E4 e_E5];

end %for

Ahora graficamos el resultados para los incrementos definidos:

p_FvsD=plot(u(:,1),F(:,1));
p_FvsD(1).Marker ='o' ; p_FvsD(1).LineWidth=1;
grid; xlabel('u_1');ylabel('F_1');
Ahora graficamos las tensiones y deformaciones a nivel de cada elemento en el sistema de
coordenadas locales para los incrementos definidos:

p_sVSe=plot(e_E(:,1),s_E(:,1),e_E(:,2),s_E(:,2),e_E(:,3),s_E(:,3),e_E(:,4),s_E(:,4),e_E(:,5),s
legend('E_1', 'E_2','E_3','E_4','E_5','Location','northwest');grid;
p_sVSe(1).Marker ='d';
p_sVSe(2).Marker ='+';
p_sVSe(3).Marker ='*'; p_sVSe(3).LineWidth=1;
p_sVSe(4).Marker ='x'; p_sVSe(4).LineWidth=1;
p_sVSe(5).Marker ='s'; p_sVSe(5).LineWidth=1;
xlabel('\epsilon');ylabel('\sigma');
A continuación se presenta la función que genera el estado actual del Material

function [Et_Actual,sigma_Actual,sigmaB_Actual,ep_Actual] = Estado_MaterialBilinealEC(Eo,Hk,fy

Se calcula la tensión trial en el material para la deformación entregada

sigma_Trial = Eo*(e_Paso-ep_Ant);

Ahora, procedemos a verifica si se sobrepaso el criterio de fluencia


( )

if (abs(sigma_Trial - sigmaB_Ant)-fy) <= 0

El material no esta fluyendo, por lo cual

ep_Actual = ep_Ant;
sigmaB_Actual = sigmaB_Ant;
sigma_Actual = sigma_Trial;
Et_Actual = Eo;

else

El material esta fluyendo ya que se sobrepasa el criterio de fluencia y procedemos a calcular el


incremento
de flujo plastico ( )

dLambda = (abs(sigma_Trial-sigmaB_Ant)-fy)/(Eo+Hk);

Y el incremento de deformación plastica ( ) y deformación plastica total acumulada


( )

dep = dLambda*sign(sigma_Trial-sigmaB_Ant);
ep_Actual = ep_Ant + dep;

Por ultimo se corrige las tensiones y se define el módulo tangente del material

sigmaB_Actual = sigmaB_Ant + Hk*dep;


sigma_Actual = sigma_Trial - Eo*dep;
Et_Actual = (Eo*Hk)/(Eo+Hk);
end % if

end % function

y de la biela en 2D

function [Kl_E,Kt_E,Rl_E,R_E,T_E,sigma_E,Et_E,e_E,sigmaB_MatE_iter,ep_MatE_iter] = ...


Estado_Biela (Eo_E,Hk_E,fy_E,sigmaB_MatE,ep_MatE,A_E,C_E,N1_E,N2_E,u_Est)

Se calcula el largo del elemento y las propiedades geometricas y matriz de transformación

L_E = sqrt((N2_E(1) - N1_E(1))^2 + (N2_E(2) - N1_E(2))^2);


cosTheta = (N2_E(1) - N1_E(1))/L_E;
senTheta = (N2_E(2) - N1_E(2))/L_E;
T_E = [ cosTheta senTheta 0 0 ; -senTheta cosTheta 0 0
; 0 0 cosTheta senTheta ; 0 0 -senTheta cosTheta ];

Se extraen los desplazamientos a nivel de los nodos para la biela estudiada en el sistema local

u_E = T_E*C_E*u_Est;

Se calcula la deformación en el estado actual de la estructura de la biela usando la definición para


deformación de ingeniería

e_E = (u_E(3) - u_E(1))/L_E;

Se determina el estado actual del material a nivel del elemento

[Et_E,sigma_E,sigmaB_MatE_iter,ep_MatE_iter] = Estado_MaterialBilinealEC(Eo_E,Hk_E,fy_E,si

Se procede a determinar la matriz de rigidez del elemento biela a la estructura para el estado actual

Kl_E = (A_E*Et_E/L_E)*[1 0 -1 0; 0 0 0 0; -1 0 1 0; 0 0 0 0 ];
Kt_E = C_E'*T_E'*Kl_E*T_E*C_E;
Se determina la fuerza resistente en el estado actual de la estructura en el sistema local y global

Rl_E = [-sigma_E*A_E 0 sigma_E*A_E 0]';


R_E = C_E'*T_E'*Rl_E;

end