Рисунок
25 - Вещественная часть амплитуды напряжений q
при
=9,3
Приведенные построения были выполнены для случая, когда нагрузка является единичной и задана в нуле.
В квалификационной работе была рассмотрена плоская задача о вертикальных колебаниях с частотой w пластины на поверхности упругой изотропной полосы под действием сосредоточенной поверхностной нагрузки. Задачи такого рода могут иметь практическое применение в таких областях, как сейсмология, материаловедение и машиностроение.
В ходе данной работы были получены интегральные характеристики, связывающие перемещения и напряжения на границе полосы и покрытия. Для этого использовался аппарат интегральных преобразований Фурье, благодаря которому общая структура решения сохраняется и в случаях, отличных от однородной упругой полосы.
На базе полученных соотношений была реализована программа на языке Fortran для расчета перемещений под покрытием путем отыскания нулей и полюсов функции, отвечающей за вертикальное перемещение и вертикальную нагрузку, а также программа, выполняющая обращение трансформант.
Предпочтения при выборе средств графического изображения результатов
работы программ на Fortran были
отданы среде Maple15 в связи с тем, что она является мощной и хорошо
организованной системой, надежной и простой в работе.
1 Демидов, С.П. Теория упругости - М.: Высшая школа, 1979. - 432с.
2 Александров, В.М. Контактные задачи для тел с тонкими покрытиями и прослойками / В.М. Александров, С.М. Мхитарян - М.: Наука, 1983. - 488 с.
3 Вольмир, А.С. Нелинейная динамика пластинок и оболочек - М.: Наука, 1972. - 432с.
4 Григолюк, Э.И. Механика твердых деформируемых тел. Т.5 Неклассическая теория колебаний стержней, пластин и оболочек / Э.И. Григолюк, И.Т. Селезнев - М.: ВИНИТИ, 1973. - 267с.
Ворович, И.И. Неклассические смешанные задачи теории упругости / И.И. Ворович, В.М. Александров, В.А. Бабешко - М.: Наука, 1974. - 456 с.
Ворович, И.И. Динамика массивных тел и резонансные явления в деформируемых средах / И.И. Ворович, В.А. Бабешко, О.Д. Пряхина - М.: Научный мир, 1989. - 246с.
Снеддон, И. Преобразования Фурье - М.: Иностранная литература, 1955. - 668с.
Глушков, Е.В. Интегральные преобразования в задачах теории упругости / Е.В. Глушков, Н.В. Глушкова - Кубанский государственный университет - М.: Краснодар, 1990. - 72с.
Бартеньев, О.В. Фортран для профессионалов. Математическая библиотека IMSL. Выпуск 2 - М.: Диалог-МИФИ, 2001. - 309с.
10 Бартеньев, О.В. Современный Фортран - М.: Диалог-МИФИ, 2000. - 449 с.
11 Бабешко, В.А. Динамика неоднородных линейно-упругих сред / В.А. Бабешко, Е.В. Глушков, Ж.Ф. Зинченко - М.: Наука, 1989. - 344с.
12 Варвак, П.М. Справочник по теории упругости / П.М. Варвак, А.Ф. Рябов - Киев: Будiвельник, 1971. - 418с.
Ворович, И.И. Механика контактных взаимодействий / И.И. Ворович, В.М. Александров - М.: Физматлит, 2001. - 672с.
Павлова, А.В. Применение интегральных преобразований
к решению задач для уравнений в частных производных / А.В. Павлова, С.Е.
Рубцов, А.В. Смирнова - Кубанский государственный университет - М.: Краснодар,
2003. - 28с.
ПРИЛОЖЕНИЕ А
Листинг программы на языке Fortran. Поиск нулей и полюсов
program MyDip
dfimsl
real(4)::omega,alpha/global/omega(4), external:: fr(4), external:: fi(4), external:: znamr(4), external:: znami(4)::errabs=0.0,errrel=0.0001 (4)::a,b,nulr,polusr,nuli,polusi,nul,polus(4)::maxfn,k1=0,k2=0,k3=0,flag1,flag11,flag2,flag22,flag3,flag33,flag4,flag44,ff1,ff2
(4, file = 'MOmegaNuli.txt')(5, file = 'MNuli.txt')(6, file =
'MOmegaPolusa.txt')(7, file = 'MPolusa.txt')
!главный циклomega=0.2, 10.0, 0.005
do alpha=0.0,10.0,0.001
flag1=0;flag11=0;flag2=0;flag22=0;flag3=0;flag33=0;flag4=0;flag44=0;ff1=0;ff2=0
!поиск нуля вещественной части
a=alpha
b=alpha+0.001
if ((fr(a)*fr(b))<=0.0000) then
maxfn=100
flag1=1
call ZBREN(fr,errabs,errrel,a,b,maxfn)
if (maxfn<100) then
flag11=1
nulr=b
endif
end if
!поиск нуля мнимой части
a=alpha
b=alpha+0.001
if ((fi(a)*fi(b))<=0.0000) then
maxfn=100
flag3=1
call ZBREN(fi,errabs,errrel,a,b,maxfn)
if (maxfn<100) then
flag33=1
nuli=b
end if
!поиск полюса вещественной части
!для функции знаменателя
a=alpha
b=alpha+0.001
if ((znamr(a)*znamr(b))<=0.0000) then
maxfn=100
flag2=1
call ZBREN(znamr,errabs,errrel,a,b,maxfn)
if (maxfn<100) then
flag22=1
polusr=b
endif
end if
!поиск полюса мнимой части
!для функции знаменателя
a=alpha
b=alpha+0.001
if ((znami(a)*znami(b))<=0.0000) then
maxfn=100
flag4=1
call ZBREN(znami,errabs,errrel,a,b,maxfn)
if (maxfn<100) then
flag44=1
polusi=b
endif
end if
if ((flag11==1) .and. (flag33==1)) then
if (abs(nulr - nuli)<0.0001) then
nul = nulr
ff1=1
endif
endif
if ((flag22==1) .and. (flag44==1)) then
if (abs(polusr - polusi)<0.0001) then
polus = polusr
ff2=1
endif
endif
if ((ff1==1) .and. (ff2==1) .and. (nul /= polus) ) then
write (4,*) omega !вывод омеги в файл
write (5,'(3f14.8)'), nul !форматный вывод корня
k1=k1+1
write (6,*) omega !вывод омеги в файл
write (7,'(3f14.8)'), polus !форматный вывод корня
k2=k2+1
elseif (ff1==1 .and. (ff2==0)) then
write (4,*) omega !вывод омеги в файл
write (5,'(3f14.8)'), nul !форматный вывод корня
k1=k1+1
elseif (ff2==1 .and. (ff1==0)) then
write (6,*) omega !вывод омеги в файл
write (7,'(3f14.8)'), polus !форматный вывод корня
k2=k2+1
endif
end dodo(*,*)k1(*,*)k2
program MyDip
fr(alpha) !функция
(4), PARAMETER :: i=(0.0,1.0) !мнимая единица(4)
:: fr,alpha
complex(4)::eps, eps1, eps2, eps3, ka2, del11, del21, k11, k12, k22, psi, gam1, sig1, sig2 !они комплексные
! real::mu1=1, mu2=2.6, nu1=0.16, nu2=0.25, h=0.1, h1=1, ro2=3.9, ro1=1 , omega !старые параметры
! real::mu1=1, mu2=2.6, nu1=0.3, nu2=0.3, h=0.1, h1=1, ro2=3.8, ro1=1 , omega !1 набор
! real::mu1=1, mu2=2.6, nu1=0.3, nu2=0.3, h=0.01, h1=1, ro2=3.8, ro1=1 , omega !2 набор
! real::mu1=1, mu2=5, nu1=0.3, nu2=0.3, h=0.1, h1=1, ro2=3.8, ro1=1 , omega !3 набор
! real::mu1=1, mu2=5, nu1=0.3, nu2=0.3, h=0.01, h1=1, ro2=3.8, ro1=1 , omega !4 набор
! real::mu1=1, mu2=5, nu1=0.3, nu2=0.3, h=0.1, h1=1, ro2=1, ro1=1 , omega !5 набор
real::mu1=1, mu2=5, nu1=0.3, nu2=0.3, h=0.01, h1=1, ro2=1, ro1=1 , omega !6 набор
common /global/ omega
eps1=(mu2*(h**3))/(6*(1-nu2))
eps2=((h**3)/12)*ro2*(omega**2)
eps3=h*ro2*(omega**2)
ka2=sqrt((ro1*(omega**2))/mu1)
eps=(1-2*nu1)/(2-2*nu1)
psi=eps1*(alpha**4)-eps2*(alpha**2)-eps3
gam1=(alpha**2)-0.5*(ka2**2)
sig2=sqrt((alpha**2)-(ka2**2))
sig1=sqrt((alpha**2)-eps*(ka2**2))
k11=(sig2*(ka2**2)*(sig1*sig2*((exp(sig1*h1)+exp(-(sig1*h1)))/2)*((exp(sig2*h1)-exp(-(sig2*h1)))/2)-(alpha**2)*((exp(sig1*h1)-exp(-(sig1*h1)))/2)*((exp(sig2*h1)+exp(-(sig2*h1)))/2)))/(-4)
k12=(sig1*sig2*(gam1+(alpha**2))*(((exp(sig1*h1)+exp(-(sig1*h1)))/2)*((exp(sig2*h1)+exp(-(sig2*h1)))/2)-1)-(gam1*(alpha**2)+(sig1**2)*(sig2**2))*((exp(sig1*h1)-exp(-(sig1*h1)))/2)*((exp(sig2*h1)-exp(-(sig2*h1)))/2))/2
k22=(sig1*(ka2**2)*(sig2*sig1*((exp(sig2*h1)+exp(-(sig2*h1)))/2)*((exp(sig1*h1)-exp(-(sig1*h1)))/2)-(alpha**2)*((exp(sig2*h1)-exp(-(sig2*h1)))/2)*((exp(sig1*h1)+exp(-(sig1*h1)))/2)))/(-4)
del21=(sig1*sig2*((1/4)*(ka2**4)-((gam1+(alpha**2))**2)+((1/4)*(ka2**4)+((gam1+(alpha**2))**2))*((exp(sig1*h1)+exp(-(sig1*h1)))/2)*((exp(sig2*h1)+exp(-(sig2*h1)))/2))-(alpha**2)*((gam1**2)+(sig1**2)*(sig2**2))*((exp(sig1*h1)-exp(-(sig1*h1)))/2)*((exp(sig2*h1)-exp(-(sig2*h1)))/2))/2
del11=((exp(sig2*h1)+exp(-(sig2*h1)))/2)
fr=real(k22/del21)
function fr
fi(alpha) !функция
(4), PARAMETER :: i=(0.0,1.0) !мнимая единица(4)
:: fi,alpha
complex(4)::eps, eps1, eps2, eps3, ka2, del11,
del21, k11, k12, k22, psi, gam1, sig1, sig2 !они комплексные
! real::mu1=1, mu2=2.6, nu1=0.3, nu2=0.3, h=0.1, h1=1, ro2=3.8, ro1=1 , omega !1 набор
! real::mu1=1, mu2=2.6, nu1=0.3, nu2=0.3, h=0.01, h1=1, ro2=3.8, ro1=1 , omega !2 набор
! real::mu1=1, mu2=5, nu1=0.3, nu2=0.3, h=0.1, h1=1, ro2=3.8, ro1=1 , omega !3 набор
! real::mu1=1, mu2=5, nu1=0.3, nu2=0.3, h=0.01, h1=1, ro2=3.8, ro1=1 , omega !4 набор
! real::mu1=1, mu2=5, nu1=0.3, nu2=0.3, h=0.1, h1=1, ro2=1, ro1=1 , omega !5 набор
real::mu1=1, mu2=5, nu1=0.3, nu2=0.3, h=0.01, h1=1, ro2=1, ro1=1 , omega !6 набор
common /global/ omega
eps1=(mu2*(h**3))/(6*(1-nu2))
eps2=((h**3)/12)*ro2*(omega**2)
eps3=h*ro2*(omega**2)
ka2=sqrt((ro1*(omega**2))/mu1)
eps=(1-2*nu1)/(2-2*nu1)
psi=eps1*(alpha**4)-eps2*(alpha**2)-eps3
gam1=(alpha**2)-0.5*(ka2**2)
sig2=sqrt((alpha**2)-(ka2**2))
sig1=sqrt((alpha**2)-eps*(ka2**2))
k11=(sig2*(ka2**2)*(sig1*sig2*((exp(sig1*h1)+exp(-(sig1*h1)))/2)*((exp(sig2*h1)-exp(-(sig2*h1)))/2)-(alpha**2)*((exp(sig1*h1)-exp(-(sig1*h1)))/2)*((exp(sig2*h1)+exp(-(sig2*h1)))/2)))/(-4)
k12=(sig1*sig2*(gam1+(alpha**2))*(((exp(sig1*h1)+exp(-(sig1*h1)))/2)*((exp(sig2*h1)+exp(-(sig2*h1)))/2)-1)-(gam1*(alpha**2)+(sig1**2)*(sig2**2))*((exp(sig1*h1)-exp(-(sig1*h1)))/2)*((exp(sig2*h1)-exp(-(sig2*h1)))/2))/2
k22=(sig1*(ka2**2)*(sig2*sig1*((exp(sig2*h1)+exp(-(sig2*h1)))/2)*((exp(sig1*h1)-exp(-(sig1*h1)))/2)-(alpha**2)*((exp(sig2*h1)-exp(-(sig2*h1)))/2)*((exp(sig1*h1)+exp(-(sig1*h1)))/2)))/(-4)
del21=(sig1*sig2*((1/4)*(ka2**4)-((gam1+(alpha**2))**2)+((1/4)*(ka2**4)+((gam1+(alpha**2))**2))*((exp(sig1*h1)+exp(-(sig1*h1)))/2)*((exp(sig2*h1)+exp(-(sig2*h1)))/2))-(alpha**2)*((gam1**2)+(sig1**2)*(sig2**2))*((exp(sig1*h1)-exp(-(sig1*h1)))/2)*((exp(sig2*h1)-exp(-(sig2*h1)))/2))/2
del11=((exp(sig2*h1)+exp(-(sig2*h1)))/2)
fi=aimag(k22/del21)
function fi
znamr(alpha) !функция
(4), PARAMETER :: i=(0.0,1.0) !мнимая единица(4)
:: znamr,alpha
complex(4)::eps, eps1, eps2, eps3, ka2, del11,
del21, k11, k12, k22, psi, gam1, sig1, sig2 !они комплексные
! real::mu1=1, mu2=2.6, nu1=0.3, nu2=0.3, h=0.1, h1=1, ro2=3.8, ro1=1 , omega !1 набор
! real::mu1=1, mu2=2.6, nu1=0.3, nu2=0.3, h=0.01, h1=1, ro2=3.8, ro1=1 , omega !2 набор
! real::mu1=1, mu2=5, nu1=0.3, nu2=0.3, h=0.1, h1=1, ro2=3.8, ro1=1 , omega !3 набор
! real::mu1=1, mu2=5, nu1=0.3, nu2=0.3, h=0.01, h1=1, ro2=3.8, ro1=1 , omega !4 набор
! real::mu1=1, mu2=5, nu1=0.3, nu2=0.3, h=0.1, h1=1, ro2=1, ro1=1 , omega !5 набор
real::mu1=1, mu2=5, nu1=0.3, nu2=0.3, h=0.01, h1=1, ro2=1, ro1=1 , omega !6 набор
common /global/ omega
eps1=(mu2*(h**3))/(6*(1-nu2))
eps2=((h**3)/12)*ro2*(omega**2)
eps3=h*ro2*(omega**2)
ka2=sqrt((ro1*(omega**2))/mu1)
eps=(1-2*nu1)/(2-2*nu1)
psi=eps1*(alpha**4)-eps2*(alpha**2)-eps3
gam1=(alpha**2)-0.5*(ka2**2)
sig2=sqrt((alpha**2)-(ka2**2))
sig1=sqrt((alpha**2)-eps*(ka2**2))
k11=(sig2*(ka2**2)*(sig1*sig2*((exp(sig1*h1)+exp(-(sig1*h1)))/2)*((exp(sig2*h1)-exp(-(sig2*h1)))/2)-(alpha**2)*((exp(sig1*h1)-exp(-(sig1*h1)))/2)*((exp(sig2*h1)+exp(-(sig2*h1)))/2)))/(-4)
k12=(sig1*sig2*(gam1+(alpha**2))*(((exp(sig1*h1)+exp(-(sig1*h1)))/2)*((exp(sig2*h1)+exp(-(sig2*h1)))/2)-1)-(gam1*(alpha**2)+(sig1**2)*(sig2**2))*((exp(sig1*h1)-exp(-(sig1*h1)))/2)*((exp(sig2*h1)-exp(-(sig2*h1)))/2))/2
k22=(sig1*(ka2**2)*(sig2*sig1*((exp(sig2*h1)+exp(-(sig2*h1)))/2)*((exp(sig1*h1)-exp(-(sig1*h1)))/2)-(alpha**2)*((exp(sig2*h1)-exp(-(sig2*h1)))/2)*((exp(sig1*h1)+exp(-(sig1*h1)))/2)))/(-4)
del21=(sig1*sig2*((1/4)*(ka2**4)-((gam1+(alpha**2))**2)+((1/4)*(ka2**4)+((gam1+(alpha**2))**2))*((exp(sig1*h1)+exp(-(sig1*h1)))/2)*((exp(sig2*h1)+exp(-(sig2*h1)))/2))-(alpha**2)*((gam1**2)+(sig1**2)*(sig2**2))*((exp(sig1*h1)-exp(-(sig1*h1)))/2)*((exp(sig2*h1)-exp(-(sig2*h1)))/2))/2
del11=((exp(sig2*h1)+exp(-(sig2*h1)))/2)
znamr=real((k22/del21)*psi+1)
function znamr
znami(alpha) !функция
(4), PARAMETER :: i=(0.0,1.0) !мнимая единица(4)
:: znami,alpha
complex(4)::eps, eps1, eps2, eps3, ka2, del11,
del21, k11, k12, k22, psi, gam1, sig1, sig2 !они комплексные
! real::mu1=1, mu2=2.6, nu1=0.3, nu2=0.3, h=0.1, h1=1, ro2=3.8, ro1=1 , omega !1 набор
! real::mu1=1, mu2=2.6, nu1=0.3, nu2=0.3, h=0.01, h1=1, ro2=3.8, ro1=1 , omega !2 набор
! real::mu1=1, mu2=5, nu1=0.3, nu2=0.3, h=0.1, h1=1, ro2=3.8, ro1=1 , omega !3 набор
! real::mu1=1, mu2=5, nu1=0.3, nu2=0.3, h=0.01, h1=1, ro2=3.8, ro1=1 , omega !4 набор
! real::mu1=1, mu2=5, nu1=0.3, nu2=0.3, h=0.1, h1=1, ro2=1, ro1=1 , omega !5 набор
real::mu1=1, mu2=5, nu1=0.3, nu2=0.3, h=0.01, h1=1, ro2=1, ro1=1 , omega !6 набор
common /global/ omega
eps1=(mu2*(h**3))/(6*(1-nu2))
eps2=((h**3)/12)*ro2*(omega**2)
eps3=h*ro2*(omega**2)
ka2=sqrt((ro1*(omega**2))/mu1)
eps=(1-2*nu1)/(2-2*nu1)
psi=eps1*(alpha**4)-eps2*(alpha**2)-eps3
gam1=(alpha**2)-0.5*(ka2**2)
sig2=sqrt((alpha**2)-(ka2**2))
sig1=sqrt((alpha**2)-eps*(ka2**2))
k11=(sig2*(ka2**2)*(sig1*sig2*((exp(sig1*h1)+exp(-(sig1*h1)))/2)*((exp(sig2*h1)-exp(-(sig2*h1)))/2)-(alpha**2)*((exp(sig1*h1)-exp(-(sig1*h1)))/2)*((exp(sig2*h1)+exp(-(sig2*h1)))/2)))/(-4)
k12=(sig1*sig2*(gam1+(alpha**2))*(((exp(sig1*h1)+exp(-(sig1*h1)))/2)*((exp(sig2*h1)+exp(-(sig2*h1)))/2)-1)-(gam1*(alpha**2)+(sig1**2)*(sig2**2))*((exp(sig1*h1)-exp(-(sig1*h1)))/2)*((exp(sig2*h1)-exp(-(sig2*h1)))/2))/2
k22=(sig1*(ka2**2)*(sig2*sig1*((exp(sig2*h1)+exp(-(sig2*h1)))/2)*((exp(sig1*h1)-exp(-(sig1*h1)))/2)-(alpha**2)*((exp(sig2*h1)-exp(-(sig2*h1)))/2)*((exp(sig1*h1)+exp(-(sig1*h1)))/2)))/(-4)
del21=(sig1*sig2*((1/4)*(ka2**4)-((gam1+(alpha**2))**2)+((1/4)*(ka2**4)+((gam1+(alpha**2))**2))*((exp(sig1*h1)+exp(-(sig1*h1)))/2)*((exp(sig2*h1)+exp(-(sig2*h1)))/2))-(alpha**2)*((gam1**2)+(sig1**2)*(sig2**2))*((exp(sig1*h1)-exp(-(sig1*h1)))/2)*((exp(sig2*h1)-exp(-(sig2*h1)))/2))/2
del11=((exp(sig2*h1)+exp(-(sig2*h1)))/2)
znami=aimag((k22/del21)*psi+1)
end function znami
Листинг программы на языке Fortran.
Построение перемещений
Program zer1
use dfimsl/vab/ omega,x1(8),external::f !,U3,U4(8)::omega,x1,alpha,alpha11,errabs,errel,res,res1,errest,Int1,Int2,a(8)::Int3(4)::i,j,maxfn,maxfn1,ff
!open(1,action='write',file='xf.txt',form='formatted',position='rewind',status='old') !файл для перемещений(1,action='write',file='yf.txt',form='formatted',position='rewind',status='old') !файл дл обращений
=0.0d0=0.01d0
do x1=0d0,10d0,0.1
omega=9.3
!omega=2.100009
do a=-30D0,10D0,1.0
alpha=a
alpha11=alpha+0.1
call dqdags(f,alpha,alpha11,errabs,errel,res,errest)
Int1=Int1+res
end do
write(1,'(f10.5,2x,15(f8.5,1x))') x1,Int1
Int1=0.0
end do
close(1)program zer1