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

Институт проблем механики

Российской Академии Наук

С. Д. Алгазин, И.А. Кийко

ЧИСЛЕННЫЕ АЛГОРИТМЫ КЛАССИЧЕСКОЙ


МАТФИЗИКИ.

III. Флаттер пластины произвольной формы в плане.

Препринт № 689

Москва 2001 г.
Аннотация.
Рассматриваются задача о флаттере пластины произвольной
формы в плане. Программа устроена таким образом, что если
известны параметрические уравнения границы области, то можно
вычислить критическую скорость флаттера при любом направлении
вектора скорости потока относительно сторон пластины.
Приводится описание программного комплекса.

The summary.
Are considered a problem about flutter of a plate of any form in the
plan. The program is arranged in such a manner that if the parametric
equations of border of area are known, it is possible to calculate critical
speed flutter at any direction of vector of a flow velocity concerning the
parties of a plate. The description of a program complex is resulted.

055(02)2  Институт проблем механики РАН 2001

2
Введение.
Это третий препринт серии объявленной в [1]; он посвящён
задаче флаттера пластины, обтекаемой с одной стороны
потоком воздуха. Принята математическая модель флаттера
пластины построена А.А. Ильюшиным, И.А. Кийко [2].
Эффективный алгоритм решения задачи разработан авторами
[3]. Настоящая работа посвящена описанию программного
комплекса, применяемого для численного решения
поставленной задачи. Основу программы составляет
построение дискретного бигармонического оператора по
методике [4]. Конформное отображение строится по программе
Э.П. Казанджана [5]. Программный комплекс устроен таким
образом, что если известны параметрические уравнения
границы области, то возможно найти критическую скорость
флаттера и построить соответствующую собственную форму.
Стандартно критическая скорость флаттера ищется на двух
сетках 9х15 и 15х31; критерием правильности расчёта является
близость полученных значений, возможно задать произвольную
сетку. Подробно структура программы описана ниже. В
настоящей работе описана версия 2.0 программы.

I. Математическая постановка задачи. Исследование


устойчивости колебаний тонкой пластины произвольной формы в
плане, которая в плоскости х, у занимает область G с границей дG и
обдувается потоком газа, приводит к спектральной задаче [2] для
амплитудного значения прогибов φ = φ(х, у), (х, у) ∈ G
.

3
D∆2ϕ − βVgradϕ = λϕ ; D = Eh3 /(12(1 − ν 2 )), β = kp0 / c0 (1)
ϕ |∂G = 0, Mϕ |∂G = 0 (2)

Здесь Е. ν - модуль Юнга и коэффициент Пуассона материала


пластины, h – её толщина, V= (Vx, Vy) - вектор скорости газа, р0 , с0 -
давление и скорость звука в невозмущенном потоке, k - показатель
политропы газа.
Собственное число λ связано с частотой колебаний
соотношением

λ= -ρhω2-βω
(3)

в котором ρ - плотность материала пластины.


Оператор М в (2) - это известный в теории пластин
дифференциальный оператор, определяемый типом граничных
условий. Методика решения спектральной задачи (1)— (3) описана
для произвольного оператора М.
Колебания пластины будут устойчивыми или нет в зависимости
от того, будет ли Reω < 0 или Reω > 0; если λ1=α1+β1 i - наименьшее
по модулю собственное значение, то вследствие (3) выписанным
неравенствам соответствуют F(α1,β1) > 0 или F(α1,β1) < 0, где
F(α1,β1)=α1β2-ρhβ12. Поскольку α1= α1(V), β1= β1(V) уравнение F(α1,β1)
= 0 определяет нейтральную кривую и соответствующую ей
критическую скорость флаттера. Речь идет, следовательно, о
нахождении нулей функции F(α1(V),β1(V)) при заданном
направлении вектора скорости потока.
Обозначим через l характерный размер области G и введем
безразмерные (со штрихами) координаты и параметры:

4
x=х'1, у=у',. Е=Е'р0, h=h'1, ρ=ρ’p0/c02,
ω=ω’c0/l, V=V’c0, φ=φ’l
Подставив в (1) (3), убеждаемся, что в безразмерной форме
система сохраняет свой вид, если параметр β заменить на
безразмерный параметр k. В дальнейшем изложении штрихи будем
опускать.
Введем вместо декартовых координат х, у криволинейные
координаты r, θ по формулам х =u(r,θ), у = v(r,θ); если выполнены
условия Коши-Римана
∂u 1 ∂v ∂v 1 ∂u
= , =− ,
∂r r ∂θ ∂r r ∂θ

то система координат r, θ ортогональна. Выберем теперь функции


u(r,θ) и v(r,θ) таким образом, чтобы функция
ψ(ς)= u(r,θ)+iv(r,θ), ς=rexp(iθ)

задавала конформное отображение круга |ς|=r≤1 на область G. Тогда


в координатах (r,θ) уравнение (1) примет вид
∂ϕ 1 ∂ϕ
D∆(| ψ ' (ς ) |− 2 ∆ϕ ) − k ((Vxur + V y vr ) + (V y ur − Vr vx ) ) = λ | ψ ' (ς ) |2 ϕ ,
∂r r ∂θ
  ψ ' (ς )ς   ψ ' (ς )ς  
 ur = Re , vr = Im   .
  r   r 

(4)

граничные условия (1.2) преобразуются известным образом [6].


В дальнейшем изложении область G предполагается
односвязной, а контур дG - кривой Ляпунова; это обеспечивает
выполнение основной теоремы Римана и теоремы о соответствии
границ .
Обозначим

f (r ,θ ) = Φ (r ,θ ) + λ | ψ ' (ς ) |2 ϕ
5
∂ϕ 1 ∂ϕ
Φ (r ,θ ) = k ((Vxur + Vy vr ) + (Vy ur − urVx ) )
∂r r ∂θ

и запишем уравнение (4) в виде

(5) D∆(| ψ ' (ς ) |−2 ∆ϕ ) = Φ (r , ϕ ) + λ | ψ ' (ς ) |2 ϕ

Теперь очевидно, что дискрeтизация краевой задачи (5), (2) вполне


аналогична описанной ранее [6] для бигармонического оператора.

II. Структура программы.


PROGRAM FLUTTER20
IMPLICIT REAL*8 (A-H,O-Z)
REAL*8 K
COMMON /DAT/ NP,K,H,RO,DB,EPS,PNU
C
C Определение характерных величин
C
C Характерное давление P0=1 атм (физическая)=1.0133E5
н/м**2=1.0333 C кГ/см**2

P0=1.0333D0
C
C Коэффициент Пуассона PNU=0.33
PNU=0.33D0
C Показатель политропы K=1.4 - это соответствует скорости звука
331.26 C м/сек
K=1.4D0
C
C Безразмерная толщина пластинки H
H=3.D-3
C Модуль Юнга для алюминия E=0.7E6 кГ/см**2
E=0.7D6
C
C Плотность воздуха 1.2928 (кг/м**3)
R=1.2928D0
6
C
C Плотность материала пластины 2.7E3 (кг/м**3)
RO=2.7D3
C
C Параметр возмущенного круга
EPS=0.0D0
C Число лепестков эпитрохоиды
NP = 4
C

<На экран выдаётся таблица стандартных параметров и программа


выдаёт запрос: «Если вы хотите изменить эти параметры введите
имя изменяемой переменной ?». >

C Безразмерное значение модуля Юнга ( E/P0 ) для алюминия

E=E/P0
C Цилиндрическая жесткость DB
DB=E*H**3/12.D0/(1.D0-PNU**2)
C Безразмерная плотность
RO=K*RO/R
C

CALL FLUT34C
C
CALL FLUT33D
C

<Нужны рисунки Re собственной функции (Y/N) ? Если нужны

CALL FLUT16
STOP
END

III. Описание подпрограмм.

SUBROUTINE FLUT34C
IMPLICIT REAL*8 (A-H,O-Z)
7
CHARACTER*1 KEY,KEY1
EXTERNAL F
COMMON /COM2/ NLAMDA,TJ,M,N,NT,IPR
COMMON /TXT/ FILE
COMMON /FL/ FLG(20)
DIMENSION F1(20),F2(20),V19(2),IN19(2)

<Программа просит ввести TJ (числитель знаменатель). На этот


запрос нужно ввести два числа, которые в доляхπ показывают
угол направления с осью x потока воздуха. Например, вводя 3. 8. мы
получим угол θ=3π/8>

<Автоматическое или ручное нахождение критической скорости
(Y/N/A/Q)>

Q – Выход
Y – GO TO 100
A – GO TO 25
N–

M= ?, N= ?

Программа просит ввести параметры сетки M и N. Число


окружностей сетки в круге и число точек на каждой окружности
(нечётное).

NLAMDA = ?

Программа просит ввести номер собственного числа по которому


будет проверяться устойчивость.

IPR = ?

Программа просит ввести признак вычисления собственного


значения IPR = 1 (старая версия программы вычисление методом
простых итераций (тогда NLAMDA=1)), IPR = 2 стандартное
вычисление (вычисление всех собственных значений конечномерной
задачи QR методом)

8
CALL FLUT2
A,B = ?

Программа просит ввести границы интервала где ищется


критическая скорость.

100 IPR = 1
M=9
N =15
NLAMDA=5

<Вычисление критической скорости по 5 собственным


значениям>
Далее программа запрашивает нужно ли изменить

NLAMDA = ?

V0 = 0 – начало интервала с которого начинается поиск


критической скорости. Изменить ?

STEP=0.01 – шаг с которым просматривается заданный


интервал по скорости с целью обнаружения перемен знаков в
функции устойчивости. Изменить ?

V=0.6 – конечная точка интервала скорости в котором ищется


критическая скорость. Изменить ?

NSTEP = 10 – Программа запрашивает изменить ли число


шагов по скорости. Дело в том, что после вычисления на сетке 9х15
программа локализует интервал поиска критической скорости и
ищет критическую скорость на сетке 15х31 на этом интервале. Если
на концах интервала функция устойчивости имеет одинаковые
знаки, то программа ищет критическую скорость вначале справа от
этого интервала (до конца заданного интервала), а потом делает
NSTEP шагов слева для поиска критической скорости.

CALL FLUT2

9
25 IPR=2
M=9
N=15
NLAMDA=5
V0=0.
STEP=0.01
V=0.6
NSTEP=10

т.е. на ввод A установлены эти стандартные параметры.

CALL FLUT2

...

Программа начинает работу на заданной сетке 9х15 и определяет


интервал A,B в котором находится критическая скорость и номер
собственного значения (IN) по которому определяется устойчивость.

EPS1=1.E-4 – точность нахождения корня трансцендентного


уравнения.
ETA =0.0
IFAIL=0
IPR=2
CALL C05ADF (A,B,EPS1,ETA,F,X,IFAIL)

Вычисление корня в заданном интервале программой NAG C05ADF


методом деления отрезка пополам и методом секущих.
Программа продолжает работу на сетке 15х31

M=15
N=31
CALL FLUT2
После окончания работы печатается результат расчёта на двух
сетках.

Вызываемые подпрограммы: FLUT2, C05ADF и подпрограмм


функция F.

10
SUBROUTINE FLUT2
REAL*8 K
COMMON /RAM/ A,AB
COMMOM /FZ/ FUR(465),FVR(465),ZY(465)

CHARACTER*8 FN
CHARACTER*6 FILEZ
COMMON /COM2/ NLAMDA,TJ,M1,M,N,IPR
COMMON /DATA/ NP,K,H,RO,DB.EPS,PNU
COMMON /TXT/ FN

Программа запрашивает стандартные ли параметры:

Y – GO TO 110

M=?

N=?

110 CONTINUE

Эта подпрограмма версия программы BIG12AG [4]. Она вычисляет


матрицу бигармонического оператора и считывает начальные
данные для этого из файла DATA [1]. Результаты промежуточных
вычислений записываются в файл NOUT.

Программа просит ввести имя файла конформного отображения, в


котором записаны 4 массива для построения матрицы
бигармонического уравнения.

Матрицу дискретного оператора Лапласа, вычисленную в процессе


работы программа записывает в файл FORT.N.

Далее программа просит ввести номер краевой задачи:


1- защемлённая пластинка;
2- свободно опёртая.

Замечание. Программа использует версии программ EBIGM и


BIGM, в которых матрица дискретной задачи Дирихле для
уравнения Лапласа считывается в форматной записи (в [4] запись
бесформатная). Дело в том, что используемый компилятор Watcom
7732 не понимает бесформатных записей.

Дальше программа просит ввести имя файла, в которую запишет


11
вычисленную матрицу бигармонического уравнения. Эта матрица
может пригодиться для возобновления счёта.

C05ADF – программа NAG вычисления корня трансцендентного


уравнения методом деления отрезка пополам в сочетании с методом
секущих.

REAL*8 FUNCTION F(XX)


IMPLICIT REAL*8 (A-H,O-Z)
CHARACTER*8 FILE
REAL*8 K
COMMON /DAT/ NP,K,H,RO,DB,EPS,PNU
COMMON /COM2/ NLAMDA,TJ,M,N,NT,IPR
COMMON /TXT/ FILE
COMMON /FL/ FLG(20)

COMMON /RAM/ A,DRL

Эта функция вычисляет для заданной скорости XX значение


функции устойчивости. Если IPR=1 вычисление ведётся методом
простых итераций подпрограммой PRITER. Если CZ вычисленное
комплексное собственное значение, то
F=REAL(CZ)*K**2-RO*H*DIMAG(CZ)**2
Результат вычисления печатается. Если IPR=2 решается полная
проблема собственных значений при помощи пакета EISPACK:
BALANC, ELMHES, HQRM2 (версия HQR, где число итераций для
вычисления каждого собственного значения задаётся – в программе
100). Вычисления ведётся для минимального по модулю
собственного значения, но в массив FLG засылается значение F для
первых NLAMDA собственных значений (не больше 20).

SUBROUTINE PRITER (N,A,LAMDA,U,Y1,Y2,Y3)


COMPLEX*16 LAMDA,U(N)
DIMENSION A(N,N),Y1(N),Y2(N),Y3(N)

Методом простых итераций [7], вычисляется максимальное по


модулю собственное значение LAMDA, матрицы A(N,N).
Вычисление ведётся с точностью EPS=1.D-6 (задано в программе). В
Y1 должно быть задано начальное приближение; U – вычисленный
собственный вектор, Y2,Y3 – рабочие массивы.

Функция F вызывает подпрограмму MATRRP, которая вычисляет


12
часть дискретного дифференциального уравнения [3] зависящего от
скорости (не зависящая от скорости часть дискретного уравнения
вычисляет FLUT2, так экономится время вычисления).
SUBROUTINE MATRRP (D,M,N,NT,DRL,A1,A2,DF,TJ,V,AL,BL,
*NL,FL,X,Y,A,DB,K)
IMPLICIT REAL*8 (A-H,O-Z)
REAL*8 K
CHARACTER*8 FL
COMMON /FZ/ FUR(465),FVR(465),ZY(465)

Вначале вызываются подпрограммы DR и DT, которые вычисляют


матрицы дифференцирования по R и T. Массивы частных
производных ur и vr [3] в узлах сетки берутся из COMMON /FZ/
(FUR и FVR). Конформное отображение (квадрат модуля
производной) в узлах сетки берётся из того же COMMON блока
(ZY).

D – выходная матрица NTxNT;


M,N,NT – параметры сетки;
DRL – передаётся через COMMON /RAM/ в функцию F из
подпрограммы FLUT2.

Затем из файла FL считывается матрица бигармонического


уравнения D и производиться вычисление окончательной матрицы
дискретного уравнения.
SUBROUTINE FLUT33D
IMPLICIT REAL*8 (A-H,O-Z)
COMMON /RAM/ A,DRL
EQUIVALENCE (H0(1),D(1))

COMMON /DAT/ NP,K,H,RO,DB,EPS,PNU
COMMON /COM2/ NLAMDA,TJ,M,N,NT,IPR
COMMON /TXT/ FILE
COMMON /COM3/ V,IN

Программа спрашивает автоматическое или ручное нахождение


собственного вектора (Y/N/Q)

Q – RETUTN
Y – GO TO 110
N–
13
M = ?, N = ?

Считываются M и N – параметры сетки.

NLAMDA = ?

Считывается номер собственного значения по которому


определяется критическая скорость.

Выдаётся запрос вычислять ли матрицу бигармонического


уравнения (Y/N). Если N нужно задать имя файла в который ранее
засылалась матрица бигармонического уравнения.

Далее программа просит ввести вектор скорости. Нужно ввести


значение критической скорости (число).

110 Печатается значение критической скорости и номер


собственного значения по которому она вычисляется. Идёт
вычисление собственных значений. По каналу 8 в файл MATRA
записывается матрица дискретной задачи. В файл NOUT
записывается значение критической скорости (и номера
собственного значения) и действительная и мнимая часть
собственных значений. Вычисляется и записывается в файл NOUT
количество комплексных пар. Проверяется условие устойчивости.
Потом программа запрашивает вычислять ли собственный вектор.
Вычисление собственного вектора осуществляется программой
INVIT (программа пакета EISPACK – метод обратных итераций).
Далее в файл FDATA1 записывается действительная часть
собственного вектора. По каналу NOUT записывается
действительная и мнимая часть собственного вектора. Далее
вычисляется на действительной оси в точках 0., 0.1, …, 1.0 значение
Reφ (действительная часть собственного вектора). В файл NOUT
такая же информация записывается для мнимой части
действительного вектора. Печатается проверка симметричности
собственного вектора (симметрия должна сохраняться, например,
для круга при направлении вектора скорости потока вдоль
действительной оси).

SUBROUTINE FLUT16
REAL*8 K
COMMON /COM2/ NLAMDA,TJ,M,N,NT,IPR
14
COMMON /DAT/ NP,K,H,RO,DB,EPS,PNU

Считывается Reφ из файла FDATA1.

NG=101

и вычисляется интерполяция решения на действительной оси в NG


точках для эпитрохоиды. Результат записывается в файл RDATA.
Тоже делается на мнимой оси. Эта программа готовит начальные
данные для рисования графики сечения Reφ по действительной и
мнимой оси (только для эпитрохоиды).

Всего программа содержит 1409 операторов Фортрана.

IV. Служебные программы.


а). Построение конформного отображения.
Вычисление конформного отображения осуществляется программой
CONFFS (для эллипса). Для других областей пользователь должен
составить программу KONT [5].

PROGRAM KAZAN
PARAMETER (N=201,N1=202,M=656)
C 2.06.94
IMPLICIT REAL*8 (A-H,O-Z)
DIMENSION AL(N,N),PR(N),PSI(N),SL(N),FK(N)
DIMENSION TJ(N1),TJ1(N1),TJ2(N1),MD(N1)
COMPLEX*16 T(N),T1(N),T2(N),ZJ(N),SUM(N)
COMPLEX*16 CW(M),CZ(M),CZ1(M),CZ2(M),CC
DIMENSION Z(M),ZR(M),ZG(M),YP(M),Y(M),C(M)
DIMENSION FUR(M),FVR(M)
CHARACTER*6 FILEZ
COMMON /D/ LL(301),MM(301)
C Этот common блок нужно также вставить в подпрограмму conf
COMMON /S/ S
COMMON // E
PUAS=0.33D0
WRITE(*,*) ' E = ? '
READ(*,*) E
S=2.D0*3.141592653589D0
CC=(0.,0.)
WRITE (*,*) 'M = ?'
READ (*,*) MG
15
WRITE (*,*) 'N =?'
READ (*,*) NG
NT=MG*NG
IJ=0
DO 1 I=1,NG
IJ=IJ+1
TT=S*(I-1)/NG
1 CW(IJ)=(COS(TT))+(0.,1.)*(SIN(TT))
DO 2 NU=1,MG
R=COS((2.*NU-1.)*S/8./MG)
DO 2 L=1,NG
TT=S*(L-1)/NG
IJ=IJ+1
2 CW(IJ)=(R*COS(TT))+(0.,1.)*(R*SIN(TT))
CALL CONFOR
1(CC,AL,PR,PSI,T,T1,T2,SL,FK,ZJ,SUM,N,TJ,TJ1,TJ2,
2MD,N1,CW,CZ,CZ1,CZ2,NT+NG)
DO 3 I=1,NT+NG
3 Z(I)=CZ1(I)*CONJG(CZ1(I))
DO 6 J=1,NG
6 YP(J)=PUAS+(PUAS-1.)*REAL(CW(J)*CZ2(J)/CZ1(J))
IJ=0
DO 8 NU=1,MG
R=COS((2.*NU-1.)*S/8./MG)
DO 8 L=1,NG
TT=S*(L-1)/NG
IJ=IJ+1
J=IJ+NG
FUR(IJ)=REAL(CZ1(J)*CW(J)/R)
FVR(IJ)=AIMAG(CZ1(J)*CW(J)/R)
8 CONTINUE
PAUSE
WRITE (*,*) 'Запись на диск'
WRITE (*,*) 'Введи имя файла (6 букв)'
READ (*,10) FILEZ
10 FORMAT (A)
OPEN (4,FILE=FILEZ)
WRITE (4,*) (Z(I),I=1,NT+NG)
WRITE (4,*) (YP(I),I=1,NG)
WRITE (4,*) (FUR(I),I=1,NT)
WRITE (4,*) (FVR(I),I=1,NT)
STOP
16
END
SUBROUTINE KONT(C)
IMPLICIT REAL*8 (A-H,O-Z)
C Эллипс
COMPLEX*16 CT,CT1,CT2
COMMON /TRI/ CT,CT1,CT2
COMMON // E
A=1.
B=SQRT(1.-E*E)
CC=COS(C)
SS=SIN(C)
CT=(A*CC)+(0.,1.)*(B*SS)
RETURN
ENTRY UR(C)
CT1=(-A*SS)+(0.,1.)*(B*CC)
CT2=(-A*CC)+(0.,1.)*(-B*SS)
RETURN
END

б) Построение данных для Tecplot.


Запустить программу CONFET (для эллипса), которая аналогична
CONFFS и запишет данные сетки в файл FILEZ. Затем запустить
программу TECPL1:

PROGRAM TECPL1
C 21.03.2001
IMPLICIT REAL*8 (A-H,O-Z)
DIMENSION URR(465),Z(656)
COMPLEX CZ(656)
CHARACTER*1 IPP
WRITE (*,*) 'Нужна запись вектора для Tecplot (Y/N)'
READ (*,14) IPP
14 FORMAT (A)
IF (IPP.NE.'Y') GO TO 1200
WRITE (*,*) 'M,N = ?'
READ (*,*) M,N
NT=M*N
OPEN (2,FILE='FILEZ')
READ (2,*) (Z(I),I=1,NT+N)
C 5.03.2001
READ (2,*) (CZ(I),I=1,NT+N)
OPEN (9,FILE='FDATA1')
READ (9,12) (URR(I),I=1,NT)
12 FORMAT (4E18.11)

17
OPEN (1,FILE='EIGV.DAT')
WRITE (1,*) 'TITLE="Eigen vector Data File"'
WRITE (1,*) 'VARIABLES="X","Y","Eigen function"'
WRITE (1,*) 'ZONE I=',M,',J=',N, ' ,F=POINT'
DO I=1,NT
CC1=REAL(CZ(I+N))
CC2=AIMAG(CZ(I+N))
WRITE (1,121) CC1,CC2,URR(I)
121 FORMAT (3E10.2)
END DO
1200 CONTINUE
STOP
END

Которая запишет в файл EIGV.DAT данные для построения Reφ в


рассматриваемом эллипсе. Далее пользуйтесь описанием TECPLOT.

V. Тестовые расчёты.

Тестовые расчёты для эллипса сведены в таблицу (a=1, e=0.7)

θ 1-ая краевая задача 2-я краевая задача


9x15 15x31 9x15 15x31
0 0.3626 0.3622 0.2789 0.2783
π/8 0.3735 0.3742 0.2821 0.2833
π/4 0.4061 0.4076 0.2925 0.2946
3π/8 0.4432 0.4441 0.2994 0.3006
π/2 0.4503 0.4505 0.2985 0.2987

В этой таблице в левой колонке приведены углы θ направления


вектора потока с осью x. Запись 9х15 означает сетку в круге из 9
окружностей по 15 точек на каждой окружности и т. п.

VI. Заключение. По поводу получения полных версий описанных


программ обращайтесь по электронному адресу: algazinsd@mail.ru или
на адрес Института проблем механики РАН, 117525, Москва,
проспект Вернадского д.101, к.1.

18
Алгазин Сергей Дмитриевич, Кийко Игорь Анатольевич

Численные алгоритмы классической матфизики.


III. Флаттер пластины произвольной формы в плане.

Подписано к печати 01.06.2001. Заказ № 20-2001. Тираж 100 экз.


________________________________________________________

Отпечатано на ризографе Института проблем механики РАН


117526, Москва, пр-т Вернадского, 101

19