Файл: В.А. Хямяляйнен Установившаяся двумерная фильтрация жидкости вокруг перемычки.pdf

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 23.05.2024

Просмотров: 51

Скачиваний: 0

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

13

Область фильтрации можно также нарисовать с помощью команд

MatLab:

>> pderect([-20 30 2.2 12]); >>pderect([-20 30 2.2 3]).

Переходим в режим задания коэффициентов ДУ. Для этого выби-

раем PDEPDE Mode, PDEShow Subdomain Lables.

Зададим значения коэффициентов ДУ для каждой области течения. Коэффициенты приведены в табл. 2.

 

 

 

Таблица 2

Область

с

a

 

f

1

10 10-12

0

 

0

2

1 10-12

0

 

0

Зададим граничные условия. Для этого необходимо перейти в режим задания граничных условий нажатием кнопки 7 панели инструментов и командой меню BoundaryShow Edge Lables. Изменяем масштаб изображения, задав auto в диалоге масштаба. Двойным щелчком мыши на каждой границе задаем вид граничного условия и коэффициенты. Соответствующие значения приведены в табл. 3.

 

 

 

 

 

Таблица 3

Граница

Вид граничного

g

q

h

 

r

 

условия

 

 

 

 

 

1

Neumann

0

0

-

 

-

2

Neumann

0

0

-

 

-

3

Dirichlet

-

-

1

 

1500000

4

Dirichlet

-

-

1

 

1500000

После задания граничных условий и коэффициентов ДУ запускается расчет сетки и решения на области фильтрации нажатием кнопки 9 панели инструментов. Рабочая область будет выглядеть как на рис. 6.

Изменим параметры графика, выбрав PlotParameters в меню и отметив галочкой пункт Arrous и в ниспадающем списке напротив – c*grad(u). После нажатия кнопки Plot рабочая область примет вид, изображенный на рис. 7.

По завершении полученную программу необходимо сохранить, выбрав File Save. Код полученной программы можно посмотреть, от-


14

крыв соответствующий файл. Повторный запуск программы можно произвести, набрав имя файла в рабочей области MatLab и нажав Enter. Листинг получившейся программы приведен в прил. 1.

Рис. 7. Распределение давления и поле скоростей течения

Расчет притока воды. После нахождения распределения давления на области течения найдем приток воды в массив на границе 1 и отток из него через границу 4 (рис. 4). Для этого произведем экспорт решения и параметров разбиения области фильтрации в рабочую область

MatLab с помощью команд SolveExport solution и MeshExport Mesh. В появившихся окнах диалога принять предлагаемые параметры.

Приток воды рассчитываем по формуле

H

k(x, y)

P dy ,

 

Q = D 1

(11)

 

0

µ x

 

где Q – приток, м3/с.

Таким образом, для нахождения притока необходимо найти градиент давления и вычислить интеграл (11). Расчет градиента давления производится с помощью функции gradient(uxy,dx,dy), где uxy – решение, заданное на прямоугольной сетке, dx – шаг сетки вдоль оси x, dy – шаг сетки вдоль оси y. Для нахождения значений решения на прямоугольной сетке необходимо создать сетку и вычислить решение на ней с помощью функции перехода от треугольной сетки к прямоугольной – tri2grid(p,t,u,x,y), где p, t – параметры треугольной

15

ной – tri2grid(p,t,u,x,y), где p, t – параметры треугольной сетки, u – распределение давления на области фильтрации, x – вектор-столбец разбиений вдоль оси x, y – вектор–столбец разбиений вдоль оси y. Матрицы p, t, u были импортированы в рабочую область MatLab ранее, векторы x и y необходимо создать. С учетом изложенного команды для нахождения притока на левой границе будут выглядеть:

>>k=10*10^-12;% коэффициент проницаемости >>mv=1.17*10^-3; % коэффициент динамической вязкости >>dx=0.01; % разбиение по оси x

>>dy=0.01;% разбиение по оси y >>x=0:dx:dx*5; % массив точек разбиения >>y=0:dy:10;% массив точек разбиения вдоль y

>>uxy=tri2grid(p,t,u,x,y); % расчет значений решения на полученной новой сетке

>>[px1,py1]=gradient(uxy,dx,dy);% расчет градиента давления

>>px=px1(1,:); % выбираем первый столбец для градиента вдоль оси x

>>pxv=px*k/mv; % скорость вдоль оси x

>>Q=-D*sum(pxv*dx)

Для нахождения интеграла (10) была использована аппроксимация интеграла конечной суммой с помощью функции MatLab sum(v). Аналогично находится величина притока на правой границе.

Пример 2. Найти скорость распределения и приток в выработку для геометрии в области фильтрации, представленной на рис. 1,при следующих параметрах :

LL = -20; LP = 30; Rb = 2,5; hоб = 0,7; RN = 12; l = 5; lL = 2,5; lT = 5; lP = 2,5; hy = 2; hT = 4; PN = 15 MPA; a = 100; в = 0,5; коб = 0,01; кN = 0,01.

Область фильтрации можно также нарисовать с помощью нескольких команд:

>> pderect([-20 30 2.2 12]); >>pderect([-20 30 2.2 3]);

>>pdepoly([-5.5 -5.5 -2.5 -2.5 2.5 2.5 5.5 5.5],[2.2 5 5 7 7 5 5 2.2]); >>pdepoly([-2.5 -2.5 0 0 2.5 2.5],[2.2 3 3.5 3.2 3.5 2.2]).

Что означают эти команды и их параметры можно посмотреть, на-

брав help pderect и help pdepoly в среде MatLab.

1. Переходим в режим задания коэффициентов ДУ. Для этого вы-

бираем PDEPDE Mode, PDEShow Subdomain Lables. Рабочая об-


16

ласть будет выглядеть как на рис. 6.

2. Задаем значения коэффициентов ДУ для каждой области течения. Коэффициенты приведены в табл. 4.

 

 

 

Таблица 4

Область

с

a

 

f

1

y 0,1 10-12

0

 

0

2

y 0,01 10-12

0

 

0

3

y 0,01 10-12

0

 

0

4

y 100 exp(-0.5 y) 0,01 10-12

0

 

0

5

y 0,01 10-12

0

 

0

6

y 0,01 10-12

0

 

0

7

y 0,01 10-12

0

 

0

8

y 0,01 10-12

0

 

0

3. Задаем граничные условия. Для этого нажимаем кнопку 7 панели инструментов и выбираем BoundaryShow Edge Lables. Изменяем масштаб изображения, задав auto в диалоге масштаба. Рабочая область будет выглядеть как на рис. 7. Двойным щелчком мыши на каждой границе задаем вид граничного условия и коэффициенты. Соответствующие значения приведены в табл. 5.

 

 

 

 

 

Таблица 5

Граница

Вид граничного

g

q

h

 

r

 

условия

 

 

 

 

 

1

Neumann

0

0

-

 

-

17

Neumann

0

0

-

 

-

15

Dirichlet

-

-

1

 

1500000

19

Dirichlet

-

-

1

 

1500000

6

Dirichlet

-

-

1

 

1500000

7

Dirichlet

-

-

1

 

1500000

4. После задания граничных условий и коэффициентов ДУ запускается расчет сетки и решения на области фильтрации нажатием кнопки 9 панели инструментов. Рабочая область будет выглядеть как на рис. 8.

5. Изменим параметры графика, выбрав PlotParameters в меню


17

и отметив галочкой пункт Arrous и в ниспадающем списке напротив – c*grad(u). После нажатия кнопки Plot рабочая область примет вид, изображенный на рис. 9.

По завершении работу необходимо сохранить, выбрав File Save. Код полученной программы можно посмотреть, открыв полученный файл.

Полный листинг полученной программы приведен в приложении.

Расчет притока воды в выработку. Расчет притока воды в выра-

ботку производится с помощью специальных функций MatLab. Для их работы необходимо импортировать данные из оболочки PDETOOLBOX в среду MatLab следующими командами PDE Export PDE Coefficientы, SolveExport Solution, MeshExport Mesh. Во всех диа-

логовых окнах принимать предложенные имена переменных. Пример подпрограммы для вычисления притока воды в выработку на участке границы 15 и 16 представлен в листинге 1.

%///////////// Листинг 1.

function inFl=inflowFirstWIF(xmin,xmax,ymin,p,t,u,k)

%функция расчета притока для границы вдоль выработки

%в секунду на метр периметра выработки

%xmin – минимальная координата участка по оси x

%, xmax – максимальная координата участка по оси x

%ymin – радиус, на котором вычисляется водоприток %p,t – параметры разбиения области

%u – решение ДУ

%k – коэффициент проницаемости

%mv – коэффициент динамической вязкости воды

global mv

dx1=0.025; % разбиение по оси x dy1=0.025;% разбиение по оси y x=xmin:dx1:xmax; % массив точек разбиения

y=ymin:dy1:ymin+dy1*2;% массив точек разбиения вдоль y I=-(xmin-xmax)/dx1; % количество точек разбиения y1=ones(I+1,1)*dx1; % вспомогательный массив uxy=tri2grid(p,t,u,x,y); % расчет значений решения на полученной новой сетке

[px1,py1]=gradient(uxy,dx1,dy1);% расчет градиента давления px=px1(1,:); % выбираем первый столбец для градиента вдоль

18

оси x

py=py1(1,:); % выбираем первый столбец для градиента вдоль оси y

pxv=px*k/mv; % скорость вдоль оси x pyv=py*k/mv; % скорость вдоль оси y inFly=pyv*y1; % суммируем inFlx=pxv*y1;

inFl=[inFlx inFly]; % возвращаем результат в виде матрицы

////////// Конец листинга 1

При расчете притока на границах 8 и 9 необходимо учесть, что расчет проводится в цилиндрических координатах. Пример подпрограммы для вычисления притока воды в выработку на данной границе представлен в листинге 2.

%//////Листинг 2.

function inFl=inflowThirdWI(xmin,xmax,ymin,ymax,p,t,u,a,b)

%расчет водопритока через массив global mv

dx1=0.05;

dy1=0.1;

x=xmin:dx1:xmin+dx1*3;

y=ymin:dy1:ymax; I=(ymax-ymin)/dy1; y1=ones(1,I+1)*dy1;

kk=a*exp(b*y);

%расчет притока слева

uxy=tri2grid(p,t,u,x,y);

uxy(I+1,:)=uxy(I,:);

[px1,py1]=gradient(uxy,dx1,dy1);

px2=px1(:,1);

py2=py1(:,1);

px2=kk'.*px2/mv;


19

py2=kk'.*py2/mv;

inFlefty=y*py2*dy1;

inFleftx=y*px2*dy1;

%расчет притока справа x=xmax-dx1*3:dx1:xmax; %y=ymin:dy1:ymax; %I=(ymax-ymin)/dy1; %y1=ones(1,J+1)*dy1;

uxy=tri2grid(p,t,u,x,y);

uxy(I+1,:)=uxy(I,:);

[px1,py1]=gradient(uxy,dx1,dy1);

px2=px1(:,3).*kk'/mv; py2=py1(:,3).*kk'/mv; inFrighty=y*py2*dy1; inFrightx=y*px2*dy1;

MQright=[inFrighty inFrightx]; MQleft=[inFlefty inFleftx]; %Mqdif=MQin-MQout; %MQdif=[Mqdif;Mqdif/inFrightx*100] inFl=[MQleft;MQright];

% Конец листинга 2.

СПИСОК РЕКОМЕНДУЕМОЙ ЛИТЕРАТУРЫ

1.Сборник инструкций и других нормативных документов по технике безопасности для угольной промышленности. – М.: Недра, 1978. – 744 с.

2.Хямяляйнен В.А. Формирование цементационных завес вокруг капитальных горных выработок / В.А. Хямяляйнен, Ю.В. Бурков,

П.С. Сыркин. – М.: Недра, 1996. – 400с.

3.Заславский Ю.З. Новые виды крепи горных выработок / Ю.З. Заславский, Е.Б. Дружко. – М.: Недра, 1989. – 256с.