Ir ao conteúdo

Posts recomendados

Postado

Preciso imprimir um gráfico onde o eixo y é D(50y) e o eixo x é alpha.

E o Valor da Média de alpha deve ser de 0.10, 0.20, 0.30, 0.40, 0.50, 0.60, 0.70, 0.80.

Alguém consegue me ajudar a organizar esse código?

import numpy as np
import matplotlib.pyplot as plt
from scipy.stats import norm
from scipy.special import erf

# Nº de anos de vida útil
nt=50
# Tempo até a despassivassão da armadura
td=np.zeros(nt)
# Probabilidade de falha até o tempo de despassivassão
Pf=np.zeros(nt)

# Cálculo da probabilidade de falha
# Nº de simulações de Monte Carlo
n=np.int(1e6)
# Dados de entrada determiní­sticos
D0=269.9482 #Coeficiente de difusão de referência [m2/ano] medido 
#no instante t0 [anos] 
EA=5000.00 #EA é a ativação de energia para a difusão do cloreto [kcal/mol]
R = 1.00 #R é a constante universal dos gases perfeitos
t0 =np.float(28./365.) #anos
tl =np.float(28./365.) #t′ a idade do concreto quando exposto aos íons [anos]

for i in range(nt):
    t=np.float(i+1)
    # Geracão das variáveis aleatórias do problema
    # Concentrassão crí­tica de cloretos
    mediaCcr=0.40;
    desvioCcr=0.10*mediaCcr; #0.10 coeficiente de variação, razão entre desvio padrão e média
    Ccr=np.random.normal(mediaCcr,desvioCcr,n);
    # Concentração superficial de cloretos #lognormal
    mediaCs=2.07;
    desvioCs=0.23*mediaCs;
    zetaCs=(np.log(1.+(desvioCs/mediaCs)**2))**(1./2.);
    lambdaCs=np.log(mediaCs)-1/2*zetaCs**2;
    Cs=np.random.lognormal(lambdaCs,zetaCs,n);
    # Cobrimento da armadura 
    mediaxc=60.00;
    desvioxc=0.05*mediaxc;
    xc=np.random.normal(mediaxc,desvioxc,n);
    # Temperatura média anual
    mediaTemp=18.; 
    desvioTemp=0.20*mediaTemp;
    Temp=np.random.normal(mediaTemp,desvioTemp,n);
    # alpha = fator de envelhecimento do concreto
    mediaalpha=0.10, 0.20, 0.30, 0.40, 0.50, 0.60, 0.70, 0.80; #mm
    desvioalpha=0.10*mediaalpha;
    alpha=np.random.normal(mediaalpha,desvioalpha,n);
    # Cálculo do fator ke
    ke=np.exp(EA/R*(1./293.-1./(273.+Temp)));
    # Cálculo do coeficiente de difussão no tempo t
    mediaD=1.75;
    desvioD=0.09143*mediaD;
    D=np.random.normal(mediaD,desvioD,n);
    D=D0/(1.-alpha)*((1.+tl/t)**(1.-alpha)-(tl/t)**(1.-alpha))*(t0/t)**alpha*ke;


plt.plot(alpha,D,color="orange")
plt.title('Envelhecimento do concreto x Difusão de cloretos')
plt.grid()
plt.show()

 

Postado

@Swalls Seria o gráfico da Difusão de cloretos em 50 anos (D(50y)) X O fator de envelhecimento do concreto que deve variar de 0.10 até 0.80.

Não sei se consegui deixar mais claro a ideia hehe

@Swalls Acho que consegui algo mais próximo do que o esperado..

 

Citação
import matplotlib.pyplot as plt
import numpy as np
from scipy.special import erf
import math

D0 = 55188000 #coeficiente de difusão de cloretos
t = 50 #anos
EA=5000.00 #EA é a ativação de energia para a difusão do cloreto [kcal/mol]
R = 1.00 #R é a constante universal dos gases perfeitos 
T=18
t0 =np.float(28./365.) #anos
tl =np.float(28./365.) #t′ a idade do concreto quando exposto aos íons [anos]

mediaalpha= [0.10, 0.20, 0.30, 0.40, 0.50, 0.60, 0.70, 0.80];
alpha = np.array(mediaalpha)
# Cálculo do fator 
ke=np.exp(EA/R*(1./293.-1./(273.+T)));
# Cálculo do coeficiente de difussão no tempo t
D=D0/(1.-alpha)*((1.+tl/t)**(1.-alpha)-(tl/t)**(1.-alpha))*(t0/t)**alpha*ke;


plt.plot(alpha,D,color="orange")
plt.title('Envelhecimento do concreto x Difusão de cloretos')
plt.grid()
plt.legend()
plt.ylabel("D(50y)")
plt.xlabel("Alpha")
plt.show()

Só fico na dúvida agora quanto a impressão do gráfico.. o eixo Y Representa o Coeficiente de difusão de cloretos em 50 anos. E na impressão do gráfico o Y só vai até um pouco além de 2.5.. n sei se está correto.

 

  • Curtir 1
Postado
Em 26/12/2022 às 11:51, Tati Schein disse:
mediaalpha=0.10, 0.20, 0.30, 0.40, 0.50, 0.60, 0.70, 0.80; #mm
    desvioalpha=0.10*mediaalpha;

Deve ter visto um alerta de erro nessa atribuição de desvioalpha. O que quer fazer nessa atribuição de mediaalpha? Para acessar os elementos de mediaalpha você deve passar o índice.

  • Curtir 1

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...