Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Дипломная работа МАВ.docx
Скачиваний:
4
Добавлен:
12.11.2019
Размер:
662.61 Кб
Скачать

Заключение

Дипломная работа посвящена изучению контактной задачи теории упругости - упругой деформации стержня при кручении. В первой главе работы рассматриваются необходимые сведения о пространственной деформации. Во второй главе исследуется плоская деформация.

На основании материала изложенного в двух главах

  • Получили вычислительную технологию решения подобных задач, использующую простой итерационный метод.

  • В случае однородного кручения удалось получить достаточно простое аналитическое решение .

  • Решили конкретную задачу деформации стольного стержня при кручении.

Анализ показал, что численное решение точно описывает процесс. На основании полученных значений были построены графики зависимости окружного смещения, касательных и нормальных напряжений от координат.

Исследования в данной области очень актуальны, поскольку решение подобных задач представляет большой интерес в машиностроении, авиастроении и других отраслях промышленности.

Приложение1.

program k1

! задача о кручении стержня

real Rd,del,eps,dro,dth,ae,aw,an,as,ap,sum,dx,phi0,nu,mu,lambda,E,sp,sps,uw,b,ru,sigma0,dphi

integer i,j,k,N,M,L,M0

real r(51),ro(51),phi(201),th(201)

real v(201,51),u(201,51),r1(201,51),phi1(201,51),theta(201,51),v0(201,51),u0(201,51),srf(201,51),sff(201,51)

Rd = 5.0*10.0**(-2)

pi = 3.1415926

M1 = 51

N = 51

M = 201

L = 40000

del = 10.0**(-3)

eps = 10.0**(-2)

dx = 5.0*10.0**(-4)

phi0 = acos(1.0-dx/Rd)

E = 2.1*10.0**11

b = 1.0/(1.0-2.0*nu)

ru = 1.0*10**(0)

uw = 1.0*10.0**(-4)

nu = 0.3

mu = E/(2.0*(1.0 + nu))

lambda = nu*E/((1.0+nu)*(1.0-2.0*nu))

sigma0 = 4.0*10.0**(8)

ro(1) = alog(Rd + del)

ro(N) = alog(del)

dro = (ro(N) - ro(1))/(N-1)

th(1) = alog(eps)

th(M1) = alog(pi/2.0 + eps)

dth = (th(M1) - th(1))/(M1-1)

do j = 1,N

ro(j) = ro(1) + (j-1)*dro

r(j) = Rd+del - exp(ro(j))

end do

do i = 1,M

do j = 1,N

r1(i,j) = r(j)

end do

end do

do i = 1,M1

th(i) = th(1) + (i-1)*dth

phi(i) = exp(th(i)) - eps

end do

dphi = phi(2) - phi(1)

do i = 1,M1

phi(2*M1-i) = pi - phi(i)

end do

do i = 1,2*M1-2

phi(i+2*M1-1) = pi + phi(i+1)

end do

do i = 1,M

do j = 1,N

phi1(i,j) = phi(i)

end do

end do

do i = 1,M1

if (phi(i) >= phi0) then

M0 = i-2

exit

end if

end do

! начальное приближение

do i = 1,M

do j = 1,N

v(i,j) = 0.0

u(i,j) = 0.0

theta(i,j) = 0.0

u0(i,j) = 0.0

end do

end do

do k = 1,L

! Граничные условия на дуге окружности

do i = 1,M0

u(i,N) = (u(i,N-1) + (r(N)-r(N-1))*sigma0/mu)*r(N)/r(N-1)

end do

do i = M0+1,2*M1-1-M0-1

u(i,N) = (u(i,N-1) - (r(N) - r(N-1))*((v(i+1,N) - v(i-1,N))/(phi(i+1)-phi(i-1))*r(N)))*r(N)/r(N-1)

end do

do i = 2*M1-1-M0,2*M1-1+M0

u(i,N) = (u(i,N-1) + (r(N)-r(N-1))*sigma0/mu)*r(N)/r(N-1)

end do

do i = 2*M1-1+M0+1,M-M0-1

u(i,N) = (u(i,N-1) - (r(N) - r(N-1))*((v(i+1,N) - v(i-1,N))/(phi(i+1)-phi(i-1))*r(N)))*r(N)/r(N-1)

end do

do i = M-M0,M

u(i,N) = (u(i,N-1) + (r(N)-r(N-1))*sigma0/mu)*r(N)/r(N-1)

end do

do i = 1,M

u(i,N) = (u(i,N-1) + (r(N)-r(N-1))*sigma0/mu)*r(N)/r(N-1)

end do

! Граничные условия в начале полярной системы координат

sum = 0.0

do i = 1,M

sum = sum + u(i,2)/M

end do

do i = 1,M

u(i,1) = sum

end do

do i = 2,M-1

do j = 2,N-1

ae = (2.0/(r(j)-r(j-1))+1.0/r(j))/(r(j+1)-r(j-1))

aw = (2.0/(r(j+1)-r(j))-1.0/r(j))/(r(j+1)-r(j-1))

as = (1.0+b)*2.0/((phi(i)-phi(i-1))*(phi(i+1)-phi(i-1)))

an = (1.0+b)*2.0/((phi(i+1)-phi(i))*(phi(i+1)-phi(i-1)))

ap = ae + aw + as + an + 1.0/r(j)**2

sps = 0.0

u(i,j) = u0(i,j) + ru*((ae*u(i,j-1) + aw*u(i,j+1)+as*u(i-1,j)+an*u(i+1,j)+sps)/ap - u0(i,j))

end do

end do

do j = 2,N-1

ae = (2.0/(r(j)-r(j-1))+1.0/r(j))/(r(j+1)-r(j-1))

aw = (2.0/(r(j+1)-r(j))-1.0/r(j))/(r(j+1)-r(j-1))

as = (1.0+b)*1.0/phi(2)**2

an = (1.0+b)*1.0/((phi(2)-phi(1))*phi(2))

ap = ae + aw + as + an + 1.0/r(j)**2

sps = 0.0

u(1,j) = u0(1,j) + ru*((ae*u(1,j-1) + aw*u(1,j+1)+as*u(M-1,j)+an*u(2,j)+sps)/ap - u0(1,j))

end do

! условие периодичности

do j = 2,N-1

u(M,j) = u(1,j)

end do

do i = 1,M

do j = 1,N

u0(i,j) = u(i,j)

end do

end do

end do

do i = 1,M

do j = 2,N-1

srf(i,j) = mu*((u(i,j+1)-u(i,j-1))/(r(j+1)-r(j-1)) - u(i,j)/r(j))

end do

end do

do i = 1,M

srf(i,1) = mu*((u(i,2)-u(i,1))/(r(2)-r(1)) - u(i,2)/r(2))

end do

do i = 1,M

srf(i,N) = mu*((u(i,N)-u(i,N-1))/(r(N)-r(N-1)) - u(i,N)/r(N))

end do

do i = 2,M-1

do j = 2,N

sff(i,j) = (lambda+2.0*mu)/r(j)*((u(i+1,j)-u(i-1,j))/(phi(i+1)-phi(i-1)))

end do

end do

do j = 2,N

sff(1,j) = (lambda+2.0*mu)/r(j)*((u(2,j)-u(M-1,j))/(2.0*dphi))

end do

do j = 2,N

sff(M,j) = (lambda+2.0*mu)/r(j)*((u(2,j)-u(M-1,j))/(2.0*dphi))

end do

sum = 0.0

do i = 1,M

sum = sum + sff(i,2)/M

end do

do i = 1,M

sff(i,1) = sum

end do

open(1, file = 'r.txt')

write(1,*) N

do i = 1,N

write(1,*) r(i)

end do

open(1, file = 'phi.txt')

write(1,*) M

do i = 1,M

write(1,*) phi(i)

end do

open(1, file = 'u.txt')

write(1,*) N

do j = 1,N

write(1,*) u(10,j)

end do

open(1, file = 'a.txt')

write(1,*) M

write(1,*) N

do i = 1,M

do j = 1,N

write(1,*) r1(i,j)

write(1,*) phi1(i,j)

write(1,*) u(i,j)

end do

end do

open(1, file = 'srf.txt')

!write(1,*) N

do i = 1,M

do j = 1,N

write(1,*) srf(i,j)

end do

end do

open(1, file = 'sff.txt')

!write(1,*) N

do i = 1,M

do j = 1,N

write(1,*) sff(i,j)

end do

end do

open(1, file = 'constants.txt')

write(1,*) sigma0

write(1,*) mu

write(1,*) Rd

end