Вы находитесь на странице: 1из 12

Modelo de Plasticidade 1D com

Encruamento Cinemático

Introdução

Dentro do contexto de pequenas deformações, apresenta-se uma breve descrição do modelo matemático
da teoria de plasticidade, buscando descrever o comportamento de materiais com encruamento
cinemático. Para tanto, faz-se necessário recorrer a ferramentas numéricas capazes de reproduzirem
uma solução com precisão adequada quando comparado ao caso real. O procedimento adotado lida com
um processo de atualização da variável de estado 𝜎𝑛+1 e das variáveis internas representadas por 𝛼𝑛+1
em função das variáveis internas 𝛼𝑛 , para o pseudo-tempo [𝑡𝑛 , 𝑡𝑛+1 ].

Modelo Matemático

Levando-se em conta o modelo uniaxial, a teoria matemática é brevemente apresentada. O modelo


uniaxial, embora simples, fornece os conceitos essências da teoria matemática de plasticidade, além da
fundamentação teórica para o modelo multiaxial.

Uma consideração importante lida com a decomposição aditiva da deformação em duas componentes,
uma elástica e outra plástica (Equação 1):

𝜀 = 𝜀𝑒 + 𝜀𝑝. (1)

Dentro do domínio elástico o material é regido pela lei de Hooke (Equação 2):

𝜎 = E𝜀 𝑒 . (2)

O material admite deformação plástica quando a função de escoamento Φ assume valor igual a zero.
Para o caso de plasticidade cíclica, nota-se o efeito de Bauschinger, que é a mudança de direção do
limite de escoamento do material quando este sofre deformação plástica. Assim, faz-se necessário
incluir este efeito na função de escoamento Φ. Portanto, Φ é função do estado de tensão 𝜎 resultante
do carregamento aplicado ao material, da tensão de escoamento 𝜎𝑦 e do tensor tensão cinemático 𝛽,
conforme apresentado na Equação (3):

ϕ = |𝜎 − 𝛽| − 𝜎𝑦 (𝜀̅𝑝 ) . (3)

Quando o carregamento imposto à estrutura avaliada admite escoamento, o encruamento é regido pela
lei de fluxo plástico (Equação 4):

𝜀̇ 𝑝 = 𝛾̇ 𝑁 (4)

𝜀̅̇𝑝 = 𝛾̇

𝜕𝜙
onde 𝑁 = 𝜕𝜎
é o vetor de fluxo plástico e 𝛾̇ é o multiplicador plástico.

Para reger o efeito causado pelo carregamento cíclico, diversos modelos foram formulados, como por
exemplo na Equação (5), o modelo de Prager (1955):

2
𝛽̇ = 3 𝑎𝜀̇ 𝑝 , (5)

onde 𝑎 é uma constante material.

Em 1966, Armstrong e Frederick propuseram a inserção de um termo ao modelo de Prager (Equação


6), fazendo com que a lei de evolução cinemática assumisse um comportamento não linear.

2
𝛽̇ = 𝑎𝜀̇ 𝑝 − 𝑏𝜀̅̇𝑝 𝛽, (6)
3

onde 𝑏 é uma constante material.

Por fim, estabelece-se a condição de carregamento e descarregamento (Equação 6):

𝛾̇ ≥ 0 , ϕ≤ 0, 𝛾̇ ϕ = 0. (7)

Modelo Numérico – Encruamento Cinemático de Armstrong - Frederick

O algoritmo é composto por dois conjuntos de equações, sendo que ao final de cada iteração
um desses conjuntos é empregado como solução. No primeiro passo, assume-se que o incremento de
deformação dado produz um estado de tensão situado dentro do domínio elástico. Como não é possível
averiguar essa informação à priori, esse passo elástico é também um passo tentativa, assim:
𝑝,𝑡𝑒𝑛𝑡
𝑒,𝑡𝑒𝑛𝑡
𝜀𝑛+1 = 𝜀𝑛𝑒 + Δ𝜀; 𝜀𝑛+1 = 𝜀𝑛𝑝
(8)
𝑝,𝑡𝑒𝑛𝑡
𝑡𝑒𝑛𝑡
𝜎𝑛+1 = 𝑒,𝑡𝑒𝑛𝑡
𝐸𝜀𝑛+1 ; 𝜀̅𝑛+1 = 𝜀̅𝑛𝑝 ; 𝑡𝑒𝑛𝑡
𝛽𝑛+1 = 𝛽𝑛

Após o passo tentativa elástico ser definido, é possível verificar se de fato o passo foi elástico
pela equação de escoamento. Assim, tem-se que a admissibilidade plástica é dado pela Equação (9):

𝑡𝑒𝑛𝑡 𝑡𝑒𝑛𝑡 𝑡𝑒𝑛𝑡 |


𝜙𝑛+1 = |𝜎𝑛+1 − 𝛽𝑛+1 − 𝜎𝑦 (𝜀̅𝑝 ) (9)

𝑡𝑒𝑛𝑡
Se 𝜙𝑛+1 ≤ 0, tem-se que o incremento dado no passo tentativa é de fato elástico, bastando
𝑡𝑒𝑛𝑡 𝑡𝑒𝑛𝑡
apenas a atualização das variáveis, de modo que (∙)𝑛+1 = (∙)𝑛+1 . No entanto, se Se 𝜙𝑛+1 > 0, faz-se
necessário a imposição de um corretor plástico, o que implica em resolver um sistema de equações não
𝑝
lineares tendo como incógnitas 𝜎𝑛+1 , 𝛽𝑛+1 , 𝜀̅𝑛+1 e Δ𝛾̇ . A resolução desse sistema é dado pelo método
de Newton-Raphson, onde o sistema de equações é dado por:

𝜕𝑅𝜎 𝜕𝑅𝜎 𝜕𝑅𝜎 𝜕𝑅𝜎


𝑝
𝜕𝜎𝑛+1 𝜕𝛽𝑛+1 𝜕𝜀̅𝑛+1 𝜕Δ𝛾̇
𝜕𝑅𝛽 𝜕𝑅𝛽 𝜕𝑅𝛽 𝜕𝑅𝛽 𝛿𝜎𝑛+1 𝑅𝜎
𝑝
𝜕𝜎𝑛+1 𝜕𝛽𝑛+1 𝜕𝜀̅𝑛+1 𝜕Δ𝛾̇ 𝛿𝛽𝑛+1 𝑅𝛽
𝑝 = (10)
𝜕𝑅𝜀̅𝑝 𝜕𝑅𝜀̅𝑝 𝜕𝑅𝜀̅𝑝 𝜕𝑅𝜀̅𝑝 𝛿𝜀̅𝑛+1 𝑅𝜀̅𝑝
𝑝
𝜕𝜎𝑛+1 𝜕𝛽𝑛+1 𝜕𝜀̅𝑛+1 𝜕Δ𝛾̇
[ 𝛿Δ𝛾̇ ] [𝑅Δ𝛾̇ ]
𝜕𝑅Δ𝛾̇ 𝜕𝑅Δ𝛾̇ 𝜕𝑅Δ𝛾̇ 𝜕𝑅Δ𝛾̇
𝑝
[ 𝑛+1 𝑛+1 𝜕𝜀̅𝑛+1
𝜕𝜎 𝜕𝛽 𝜕Δ𝛾̇ ]

onde [R] é

𝑡𝑒𝑛𝑡 𝜎 −𝛽
𝜎𝑛+1 − 𝜎𝑛+1 + 𝐸Δ𝛾 |𝜎𝑛+1 −𝛽𝑛+1 |
𝑅𝜎 𝑛+1 𝑛+1
𝑅𝛽 𝐾 𝜎𝑛+1 −𝛽𝑛+1
= 𝛽𝑛+1 − 𝛽𝑛 − H Δ𝛾 |𝜎𝑛+1 −𝛽𝑛+1 | − 𝑏Δ𝛾𝛽𝑛+1 (11)
𝑅𝜀̅𝑝 𝑝 𝑝
[𝑅Δ𝛾̇ ] 𝜀̅𝑛+1 − 𝜀̅𝑛 − Δ𝛾
[ |𝜎𝑛+1 − 𝛽𝑛+1 | − 𝜎𝑦0 ]

Assim que o sistema é resolvido, as demais variáveis são atualizadas.

Modelo Numérico – Resultados e Validação

Para validar o funcionamento do modelo numérico, toma-se por referência o Capítulo 3 do Livro
Non-Linear Mechanics of Materials (Besson et al; Springer) em que são apresentados resultados típicos
de endurecimento cinemático. É feita, portanto, uma comparação entre as figuras apresentadas na
literatura e os gráficos resultantes do modelo implementado, dados valores para 𝜎𝑦 , 𝑏 e 𝐻 𝑘 .
1. Endurecimento Cinemático Linear

M odelo de Plasticidade 1D
C om Encruam ento C inem atico
𝝈𝒚 [𝑴𝑷𝒂] 𝟏𝟎𝟎 200
150
100

ao [M Pa]
50
0
𝒃 0

Tens~
-50
-100
-150
-200
𝑯𝒌 [𝑴𝑷𝒂] 10000 -1 -0.5 0 0.5 1
D eform a9
c~
ao Total[% ]

a. b.
Figura 1. Validação do modelo numérico para o endurecimento cinemático linear. (a) Resultado da Literatura, (b)
Resultado do modelo implementado.

2. Endurecimento Cinemático Não-Linear

M odelo de Plasticidade 1D
C om Encruam ento C inem atico
𝝈𝒚 [𝑴𝑷𝒂] 𝟏𝟎𝟎 300

200
ao [M Pa]

100

𝒃 0 0
Tens~

-100

-200

-300
𝑯𝒌 [𝑴𝑷𝒂] 10000 -1 -0.5 0 0.5 1
D eform a9
c~
ao Total[% ]

a. b.
Figura 2. Validação do modelo numérico para o endurecimento cinemático não linear. (a) Resultado da Literatura, (b)
Resultado do modelo implementado.

Tanto para o modelo cinemático linear quando para o não linear, os resultados apresentam a
mesma forma e os mesmos limites para uma amplitude de deformação de 1 %, corroborando para a
validação do modelo implementado.

Regressão Não Linear – Modelos de Potência e de Chaboche

Dada a curva tensão deformação para a liga de Alumínio 7050-T7451, retirado da


dissertação de mestrado da aluna Karen Hernández (Figura):
Figura 3.Curva tensão deformação para a liga de Alumínio 7050-T7451 extraído da dissertação de Mestrado da aluna
Karen Hernández.

Dados os modelos de potência (Equação 12) e de Chaboche (Equação 13).

𝜎𝑎 = 𝐾 ′ (𝜀𝑝𝑎 )𝑛′ (12)

𝐻1𝐾 𝐻𝐾
𝜎𝑎 = 𝑏1
tanh(𝑏1 𝜀̅
𝑎 ) + 2 tanh(𝑏2 𝜀̅𝑎 ) +
𝑏2
𝐻3𝐾 𝜀̅𝑎 + 𝜎𝑦0 (13)

Procura-se determinar os parâmetros cinemáticos 𝐾 ′ e 𝑛′ para a Equação (12) e os parâmetros


cinemáticos 𝐻1𝐾 , 𝐻2𝐾 , 𝐻2𝐾 , 𝑏1 , 𝑏2 , dado que 𝜎𝑦0 = 250 𝑀𝑃𝑎. Para isto, os pontos experimentais das
camadas 1, 4 e 7 foram extraídos utilizando a ferramenta Webplotdigitizer e daí realizou-se regressão
não linear, obtendo-se os parâmetros (Tabela 1) que geraram as curvas da Figura (4):

Tabela 1. Parâmetros de encruamento cinemático obtidos via regressão não linear.

Chaboche Potência

𝐻1𝐾 𝐻1𝐾 𝐻1𝐾 𝑏1 𝑏2 𝐾′ 𝑛′

18289.78 871912.99 5658.24 504.35 7604.64 614.72 0.0672


Figura 4. Regressão não linear dos pontos extraídos da Figura (3).

Como pode-se ver na Figura (4), a regressão se mostrada adequada, contemplando as vizinhas
dos pontos obtidos da Figura (3).
ANEXO I – Modelo Elasto-Plástico 1D Com
Endurecimento Cinemático - Cinematico_1D.m
clear
clc

%% Plasticidade - Modelo de Plasticidade com Encruamento Cinematico


% Semestre 02/2017

%% Modelo de Armstrong-Frederick
%% Inicializacao de Variaveis
Incr = 100;
Sigma_y0 = 100; %[MPa]
Young = 200000; %[MPa]
b_armstrong = 400;
H_Hardening = 60000; %[MPa]
% n_Hardening = 1;

Epislon_max = 20*Sigma_y0/Young;
% D_Epislon = (3*Sigma_y0/Young)/(Incr);
passo = Epislon_max/Incr;

% f=@(x) mod(x-1,16)+1;
data1 = 0:passo:Epislon_max;
data2 = Epislon_max-(passo):-passo:-Epislon_max;
data3 = -Epislon_max+(passo):passo:-passo;

% Ciclos
ciclos = 1;
data = [];
% data = zeros(1,length(ciclos*[data1 data2 data3]));
for j = 1:ciclos
data = [data, data1, data2, data3];
end
% signal=data(f(1:length(data)));

for i = 1:length(data)-1
D_Epislon(i) = data(i+1) - data(i);
end

Incr = length([data1 data2 data3])*ciclos;

% Deformacao Elastica
Epislon_Elast_Trial = zeros(Incr, 1);
Epislon_Elast = zeros(Incr, 1);

% Deformacao Plastica
Epislon_Plast_Trial = zeros(Incr, 1);
Epislon_Plast = zeros(Incr, 1);

% Deformacao Total
Epislon_Total = zeros(Incr, 1);

% Deformacao Plastica Acumulada


Epislon_Accum_Plast_Trial = zeros(Incr, 1) + 1e-9;
Epislon_Accum_Plast = zeros(Incr, 1) + 1e-9;

% Tensao
B_Cinematico_Trial = zeros(Incr, 1);
Sigma = zeros(Incr, 1);
Sigma_y = zeros(Incr, 1);

% Tensao Cinematica
Sigma_Trial = zeros(Incr, 1);
B_Cinematico = zeros(Incr, 1);

% Funcao de Escoamento
Phi_Trial = zeros(Incr, 1);
Phi = zeros(Incr, 1);

% Multiplicador Plastico
D_Gamma = zeros(Incr, 1);
D_Gamma_Trial = zeros(Incr, 1);

% Passos na correcao Plastica


D_Sigma = zeros(Incr, 1);
D_Cinematico = zeros(Incr, 1);
D_Epislon_Accum_Plast = zeros(Incr, 1);
D_D_Gamma = zeros(Incr, 1);

%% Evolucao da tensao de escoamento


% Modelo Isotropico nao Linear de Ludwick
% Sigma_y_func = @(epislon_p_eq) Sigma_y0 + H_Hardening * (epislon_p_eq)^n_Hardening;
% Modelo Isotropico nao Linear de Ludwick
Sigma_y_func = @(epislon_p_eq) Sigma_y0;

for n=1:Incr - 1

%% 1) Estado Tentativa
% Defomacao Elastica Tentativa
Epislon_Elast_Trial(n+1) = Epislon_Elast(n) + D_Epislon(n);
% Tensao Tentativa
Sigma_Trial(n+1) = Young*Epislon_Elast_Trial(n+1);
% Deformacao Plastica Tentativa
Epislon_Plast_Trial(n+1) = Epislon_Plast(n);
% Deformacao Plastica Acumulada Tentativa
Epislon_Accum_Plast_Trial(n+1) = Epislon_Accum_Plast(n);
% Tensao Cinematica
B_Cinematico_Trial(n+1) = B_Cinematico(n);

%% 2) Admissibilidade Plastica
% Funcao de Escoamento
Sigma_y(n+1) = Sigma_y_func(Epislon_Accum_Plast(n));
% Sigma_y(n+1) = (Sigma_y0 + H_Hardening * (Epislon_Accum_Plast(n))^n_Hardening);
Phi_Trial (n+1) = abs(Sigma_Trial(n+1) - B_Cinematico(n)) - Sigma_y(n+1);

if (Phi_Trial(n+1) <= 0) % Passo Elastico


% Defomacao Elastica Tentativa
Epislon_Elast(n+1) = Epislon_Elast_Trial(n+1);
% Tensao Tentativa
Sigma(n+1) = Sigma_Trial(n+1);
% Deformacao Plastica Tentativa
Epislon_Plast(n+1) = Epislon_Plast_Trial(n+1);
% Deformacao Plastica Acumulada Tentativa
Epislon_Accum_Plast(n+1) = Epislon_Accum_Plast_Trial(n+1);
% Tensao Cinematica
B_Cinematico(n+1) = B_Cinematico_Trial(n+1);
%% Corretor Plastico
else % Passo Plastico
p = 0; % passo Metodo Newton Raphson

% i) Dada a Estimativa
Sigma(n+1) = Sigma_Trial(n+1);
Epislon_Accum_Plast(n+1) = Epislon_Accum_Plast_Trial(n+1);
% D_Gamma(n+1) = D_Gamma_Trial(n+1);
D_Gamma(n+1) = 0;
% Tensao Cinematica
B_Cinematico(n+1) = B_Cinematico_Trial(n+1);

Erro = 1;
while(Erro>1e-3)
p = p + 1;

% Sigma(n+1) = Sigma(n+1);
% Epislon_Accum_Plast(n+1) = Epislon_Accum_Plast(n+1);
% D_Gamma(n+1) = D_Gamma(n+1);
% % Tensao Cinematica
% B_Cinematico(n+1) = B_Cinematico(n+1);
% ii) Resolver o Sistema Linearizado
Rsigma_Dsigma = 1 + Young * D_Gamma(n+1) * ( (1/abs( Sigma(n+1) -
B_Cinematico(n+1) )) - ((Sigma(n+1) - B_Cinematico(n+1))^2/(abs(Sigma(n+1) -
B_Cinematico(n+1))^3)) );
Rsigma_DCinematico = Young * D_Gamma(n+1) * (-(1/abs( Sigma(n+1) -
B_Cinematico(n+1) )) + ((Sigma(n+1) - B_Cinematico(n+1))^2/(abs(Sigma(n+1) -
B_Cinematico(n+1))^3)) );
Rsigma_D_Gama = Young*(Sigma(n+1) - B_Cinematico(n+1))/abs(Sigma(n+1) -
B_Cinematico(n+1));

RCinematico_Dsigma = - H_Hardening * D_Gamma(n+1) * ( (1/abs( Sigma(n+1) -


B_Cinematico(n+1) )) - ((Sigma(n+1) - B_Cinematico(n+1))^2/(abs(Sigma(n+1) -
B_Cinematico(n+1))^3)) );
RCinematico_DCinematico = 1 - H_Hardening * D_Gamma(n+1) * (- (1/abs( Sigma(n+1)
- B_Cinematico(n+1) )) + ((Sigma(n+1) - B_Cinematico(n+1))^2/(abs(Sigma(n+1) -
B_Cinematico(n+1))^3))) + b_armstrong*D_Gamma(n+1);
RCinematico_D_Gama = - H_Hardening * (Sigma(n+1) -
B_Cinematico(n+1))/abs(Sigma(n+1) - B_Cinematico(n+1)) + b_armstrong*B_Cinematico(n+1);

RD_Gama_Dsigma = ((Sigma(n+1) - B_Cinematico(n+1))/abs(Sigma(n+1) -


B_Cinematico(n+1)));
RD_Gama_DCinematico = -((Sigma(n+1) - B_Cinematico(n+1))/abs(Sigma(n+1) -
B_Cinematico(n+1)));

A = [Rsigma_Dsigma Rsigma_DCinematico 0 Rsigma_D_Gama;


RCinematico_Dsigma RCinematico_DCinematico 0 RCinematico_D_Gama;
0 0 1 -1;
RD_Gama_Dsigma RD_Gama_DCinematico 0 0];

R_Sigma = Sigma(n+1) - Sigma_Trial(n+1) + Young*D_Gamma(n+1) * ((Sigma(n+1)


- B_Cinematico(n+1))/abs(Sigma(n+1) - B_Cinematico(n+1)));
R_B = B_Cinematico(n+1) - B_Cinematico(n) - H_Hardening * D_Gamma(n+1) *
((Sigma(n+1) - B_Cinematico(n+1))/abs(Sigma(n+1) - B_Cinematico(n+1))) +
b_armstrong*D_Gamma(n+1)*B_Cinematico(n+1);
R_Epislon_Accum_Plast = Epislon_Accum_Plast(n+1) - Epislon_Accum_Plast(n) -
D_Gamma(n+1);
R_D_Gamma = abs(Sigma(n+1) - B_Cinematico(n+1)) -
Sigma_y_func(Epislon_Accum_Plast(n+1));

R_b = [R_Sigma; R_B; R_Epislon_Accum_Plast; R_D_Gamma];


% Solucao Sistema Linearizado
x = A\-(R_b);

% Passos
D_Sigma(p+1) = x(1);
D_Cinematico(p+1) = x(2);
D_Epislon_Accum_Plast(p+1) = x(3);
D_D_Gamma(p+1) = x(4);

% iii) Calcular as Incognitas


Sigma(n+1) = Sigma(n+1) + D_Sigma(p+1);
B_Cinematico(n+1) = B_Cinematico(n+1) + D_Cinematico(p+1);
Epislon_Accum_Plast(n+1) = Epislon_Accum_Plast(n+1) +
D_Epislon_Accum_Plast(p+1);
D_Gamma(n+1) = D_Gamma(n+1) + D_D_Gamma(p+1);

% iv) Testar Convergencia


% Funcao de Escoamento
Phi (n+1) = abs(Sigma(n+1) - B_Cinematico(n+1)) -
Sigma_y_func(Epislon_Accum_Plast(n+1));

Erro = abs(Phi (n+1))/Sigma_y_func(Epislon_Accum_Plast(n+1));

end

%% 4) Atualizar Outras Variaveis

Epislon_Plast(n+1) = Epislon_Plast(n) + D_Gamma(n+1) * ((Sigma(n+1) -


B_Cinematico(n+1))/abs(Sigma(n+1) - B_Cinematico(n+1)));
Epislon_Elast(n+1) = Epislon_Elast_Trial(n+1) - D_Gamma(n+1) * ((Sigma(n+1) -
B_Cinematico(n+1))/abs(Sigma(n+1) - B_Cinematico(n+1)));

Sigma_y(n+1) = Sigma_y_func(Epislon_Accum_Plast(n+1));
% Sigma_y(n+1) = (Sigma_y0 +
H_Hardening*(Epislon_Accum_Plast(n+1))^n_Hardening);

end

Epislon_Total(n+1) = Epislon_Elast(n+1) + Epislon_Plast(n+1);


end

figure(1)
h1 = plot(Epislon_Total*100, Sigma);
hold on
set(h1, 'LineWidth', 2);
hold on
set(gca, 'FontSize', 20);
% axis([0 (Epislon_Total(n+1)*100) 0 (Sigma(n+1) + 100)])
% Informacoes do grafico
title({'\makebox[4in][c]{Modelo de Plasticidade 1D}';...
'\makebox[4in][c]{Com Encruamento Cinematico}'}, 'interpreter', 'latex',
'FontSize', 24)
ylabel('Tens\~{a}o [MPa]', 'interpreter', 'latex', 'FontSize', 24);
xlabel('Deforma\c{c}\~{a}o Total [\%]', 'interpreter', 'latex', 'FontSize', 24);
% legenda1 = legend('$${i_{1} = 10}$$', '$${i_{2} = 100}$$', '$${i_{3} = 1000}$$',
'Location','southeast');
% set(legenda1,'interpreter', 'latex', 'FontSize', 18);
grid on

figure(2)
h2 = plot(1:Incr, Epislon_Total*100);
set(h2, 'LineWidth', 2);
grid on
hold on
set(gca, 'FontSize', 20);
% Informacoes do grafico
title({'\makebox[4in][c]{Modelo de Plasticidade 1D}';...
'\makebox[4in][c]{Com Encruamento Cinematico}'}, 'interpreter', 'latex',
'FontSize', 24)
ylabel('Deformac\c{c}\~{a}o Total [\%]', 'interpreter', 'latex', 'FontSize', 24);
% ylabel('Deforma\c{c}\~{a}o Plast. Acum. [\%]', 'interpreter', 'latex', 'FontSize',
24);

xlabel('Pseudo-Tempo [$${t_{n}}$$]', 'interpreter', 'latex', 'FontSize', 24);


% legenda1 = legend('$${i_{1} = 10}$$', '$${i_{2} = 100}$$', '$${i_{3} = 1000}$$',
'Location','southeast');
% set(legenda1,'interpreter', 'latex', 'FontSize', 18);
% grid on

% legenda1 = legend('$${H_{1}=1500 [MPa]}$$', '$${H_{2}=2500 [MPa]}$$',


'Location','southeast');
% set(legenda1,'interpreter', 'latex', 'FontSize', 18);
ANEXO II – Regressão Não Linear 1D -
karen_regressao.m
clear
clc

%% Plasticidade - Regressao

File_Camada4 = fopen('Camada_4.txt', 'r');


Data_Camada4 = fscanf(File_Camada4, '%f %f', [2, inf])';
fclose(File_Camada4);

File_Camada1_7 = fopen('Camadas_1_e_7.txt', 'r');


Data_Camada1_7 = fscanf(File_Camada1_7, '%f %f', [2, inf])';
fclose(File_Camada1_7);

x = [Data_Camada4(:,1)' Data_Camada1_7(:,1)']/100;
y = [Data_Camada4(:,2)' Data_Camada1_7(:,2)'];

sigma_y0 = 250;

% Modelo da funcao

xx = 0:1e-4:1/100;
xx_a = 1e-4:1e-4:1/100;

modelfun = @(b, xx) b(1)*power(xx,b(2));


modelfun2 = @(Param, xx) (sigma_y0 + Param(1)/Param(4)*tanh(Param(4).*xx) +
Param(2)/Param(5)*tanh(Param(5).*xx) + Param(3)*xx);

% Chutes iniciais para os coeficientes


beta0 = [500 0.04];
beta02 = [0.001 0.001 0.001 0.001 0.001];

%% Usando lsqcurvefit
[b,resnorm,~,exitflag,output] = lsqcurvefit(modelfun,beta0,x,y);
[Param,resnorm2,~,exitflag2,output2] = lsqcurvefit(modelfun2,beta02,x,y);

mdl = nlinfit(x,y,modelfun2, beta02);

H1 = Param(1);
H2 = Param(2);
H3 = Param(3);
b1 = Param(4);
b2 = Param(5);

H11 = mdl(1);
H22 = mdl(2);
H33 = mdl(3);
b11 = mdl(4);
b22 = mdl(5);

% Chaboche
yy_chaboche_mdl = sigma_y0 + H11/b11*tanh(b11.*xx) + H22/b22*tanh(b22.*xx) + H33*xx;
% yy_chaboche = sigma_y0 + H1/b1*tanh(b1.*xx) + H2/b2*tanh(b2.*xx) + H3*xx;

% yy = b(1)*power(xx,b(2));

figure(1)
% Grafico Experimental
h3 = plot (100*x, y, 'o');
set(h3, 'LineWidth', 3);
set(gca, 'FontSize', 20);
hold on
% Grafico via lsqcurvefit modelfunc
h4 = plot (xx*100, modelfun(b, xx));
set(h4, 'LineWidth', 3);
set(gca, 'FontSize', 20);
hold on
%
% % Grafico via lsqcurvefit modelfunc
% h5 = plot (xx*100, modelfun2(Param, xx));
% set(h5, 'LineWidth', 3);
% set(gca, 'FontSize', 20);
% hold on

% % Grafico via lsqcurvefit modelfunc


% h6 = plot (xx*100, yy_chaboche);
% set(h6, 'LineWidth', 3);
% set(gca, 'FontSize', 20);
% hold on

% Grafico via lsqcurvefit modelfunc


h7 = plot (xx*100, yy_chaboche_mdl);
set(h7, 'LineWidth', 3);
set(gca, 'FontSize', 20);
hold on

% Informacoes do grafico
% Funcao 1
s1 = '$${{\sigma_{a}}}$$ = ';
s2 = num2str(b(1), '%.2f');
s5 = '$${({\varepsilon_{pa}})}$$';
s6 = num2str(b(2), '$${{^{%.2f}}}$$');
str_model_fun1= [s1 s2 s5 s6];

% s11 = '$${{\sigma_{a}}}$$ = ';


% s22 = num2str(Param(1), '%.2f');
% s55 = '$${({\varepsilon_{pa}})}$$';
% s66 = num2str(b(2), '$${{^{%.2f}}}$$');
% str_model_fun2= [s11 s22 s55 s66];

title({'\makebox[4in][c]{}';...
'\makebox[4in][c]{}'}, 'interpreter', 'latex', 'FontSize', 24)
ylabel('Amplitude de Tens\~{a}o$${, \sigma_a}$$ [MPa]', 'interpreter', 'latex',
'FontSize', 24);
xlabel('Amplitude de Deforma\c{c}\~{a}o Plastica$${, {\varepsilon_{pa}}}$$ [\%]',
'interpreter', 'latex', 'FontSize', 24);
legenda1 = legend('Experimental', str_model_fun1, 'Chaboche', 'Location','southeast');
set(legenda1,'interpreter', 'latex', 'FontSize', 18);

Вам также может понравиться