Você está na página 1de 6

CÓDIGO DE PROGRAMAÇÃO EM PYTHON

from math import exp, erf, cos, sqrt, pi , cos

from numpy import zeros

import matplotlib.pyplot as plt

#Nomeclatura utlizada nas variáveis

Projeto:

%Calcular a distribuição de concentração de soluto para tempos de 1 h, 2h, 10 h e 20 h

para uma placa de 20 mm de comprimento de aço 1025 submetida a sua superfície a uma atmosfera

cementante de composição constante e igual a 0.6%pC, aplicando as soluções em termos de função

erro e serie abaixo apresentadas. Dados: T = 850 oC, R = 8.314 J.mol-1.K-1, Q = 80000.0 J.mol-1, D0 =
6.2 x 10-07 m2.s-1.

Temp=1123

t_1= 1*3600

t_2= 2*3600

t_3= 10*3600

t_4= 20*3600

l= 0.020

C_surf= 0.6

C_0= 0.25

R= 8.314

Q= 80000

D_0= 6.2*10**(-7)

n= 41 # quantidade de linhas da tabela

dx= l/float(n-1)

print (' D= (D_0)*exp(-Q/(R*(Temp)) ')

print('Temp= {}'.format(Temp))

print('t_1= {}'.format(t_1))

print('t_2= {}'.format(t_2))
print('t_3= {}'.format(t_3))

print('t_4= {}'.format(t_4))

print('l= {}'.format(l))

print('C_surf= {}'.format(C_surf))

print('C_0= {}'.format(C_0))

print('R= {}'.format(R))

print('Q= {}'.format(Q))

print('D_0= {}'.format(D_0))

axis_x1= zeros(n+1)

axis_y1_erf = zeros(n+1)

axis_y1_séries = zeros(n+1)

axis_x2= zeros(n+1)

axis_y2_erf = zeros(n+1)

axis_y2_séries = zeros(n+1)

axis_x3= zeros(n+1)

axis_y3_erf = zeros(n+1)

axis_y3_séries= zeros(n+1)

axis_x4= zeros(n+1)

axis_y4_erf = zeros(n+1)

axis_y4_séries= zeros (n+1)

#Cáculo do coeficiente de difusão

print(' ')

D= (D_0)*exp(-Q/(R*(Temp)))

print(' ')

print(' O valor do coeficiente de difusão é D= {}'.format(D))

# Solução para placa semi-infinita por meio da séries e da função erro

print(' ')

print(' ')

print(' ')
print (' """""""""" Solução em função das séries infinitas e da função erro """""""""" ')

print (' ')

print (' ')

print (' ')

#######CÁLCULO PARA 1 HORA

print(' """PARA 1 HORA"""')

print('Posição (mm) C(séries) C(Erf)')

print(' ')

for a in range(1, n+1, 1):

X = (a-1)*dx

Z = X/(2*sqrt(D*t_1))

Cx_erf = (C_surf) - (((C_surf)-(C_0))*erf(Z))

tau= (D*(t_1))/l**2

Xm= 1-X/l

Som= 0

for b in range(1,100):

u=((2*b)-1)*(pi/2)

Som+=((-1)**(b+1))*((cos(u*Xm))/u)*exp((-u**2)*tau)

Cx_séries=(C_surf)-((C_surf)-(C_0))*2*Som

print ('{:.4f} {:.4f} {:.4f}'.format(X,Cx_séries,Cx_erf))

axis_x1[a] = X

axis_y1_séries[a]= Cx_séries

axis_y1_erf[a] = Cx_erf

######CÁLCULO PARA 2 HORAS

print(' ')

print(' ')

print(' ')

print(' """PARA 2 HORAS"""')

print('Posição (mm) C(séries) C(Erf)')


print(' ')

for c in range(1, n+1, 1):

X = (c-1)*dx

Z = X/(2*sqrt(D*(t_2)))

Cx_erf = (C_surf) - (((C_surf)-(C_0))*erf(Z))

tau= (D*(t_2))/l**2

Xm= 1-X/l

Som= 0

for d in range(1,100):

u=((2*d)-1)*(pi/2)

Som+=((-1)**(d+1))*((cos(u*Xm))/u)*exp((-u**2)*tau)

Cx_séries=(C_surf)-((C_surf)-(C_0))*2*Som

print ('{:.4f} {:.4f} {:.4f}'.format(X,Cx_séries,Cx_erf))

axis_x2[c] = X

axis_y2_séries[c]= Cx_séries

axis_y2_erf[c] = Cx_erf

######CÁLCULO PARA 10 HORAS

print(' ')

print(' ')

print(' ')

print(' """PARA 10 HORAS"""')

print('Posição (mm) C(séries) C(Erf)')

print(' ')

for f in range(1, n+1, 1):

X = (f-1)*dx

Z = X/(2*sqrt(D*(t_3)))

Cx_erf = (C_surf) - (((C_surf)-(C_0))*erf(Z))

tau= (D*(t_3))/l**2

Xm= 1-X/l
Som= 0

for g in range(1,100):

u=((2*g)-1)*(pi/2)

Som+=((-1)**(g+1))*((cos(u*Xm))/u)*exp((-u**2)*tau)

Cx_séries=(C_surf)-((C_surf)-(C_0))*2*Som

print ('{:.4f} {:.4f} {:.4f}'.format(X,Cx_séries,Cx_erf))

axis_x3[f] = X

axis_y3_séries[f]= Cx_séries

axis_y3_erf[f] = Cx_erf

##########CÁLCULO PARA 20 HORAS

print(' ')

print(' ')

print(' ')

print(' """PARA 20 HORAS"""')

print('Posição (mm) C(séries) C(Erf)')

print(' ')

for h in range(1, n+1, 1):

X = (h-1)*dx

Z = X/(2*sqrt(D*(t_4)))

Cx_erf = (C_surf) - (((C_surf)-(C_0))*erf(Z))

tau= (D*(t_4))/l**2

Xm= 1-X/l

Som= 0

for i in range(1,100):

u=((2*i)-1)*(pi/2)

Som+=((-1)**(i+1))*((cos(u*Xm))/u)*exp((-u**2)*tau)

Cx_séries=(C_surf)-((C_surf)-(C_0))*2*Som
print ('{:.4f} {:.4f}

{:.4f}'.format(X,Cx_séries,Cx_erf))

axis_x4[h] = X

axis_y4_séries[h]=

Cx_séries axis_y4_erf[h]

= Cx_erf

#Plote do gráfico da difusãoxposição pelos dados da função erro

plt.title('Difusão do C no Aço ASTM 1025 (pela função erro)')

plt.plot(axis_x1, axis_y1_erf, 'b-')

plt.plot(axis_x2, axis_y2_erf,

'r-') plt.plot(axis_x3,

axis_y3_erf, 'g-')

plt.plot(axis_x4, axis_y4_erf,

'y-') plt.ylim(ymin=0)

plt.xlim(xmin=0)

plt.axis([0.0,0.02,0.0,0.6])

plt.legend(('1 hora erf', '2 horas erf', '10 horas erf', '20 horas

erf')) plt.ylabel('Concentração em Percentagem Peso C, [%p

C]') plt.xlabel('Distância X [m]')

plt.show();

Você também pode gostar