Файл: В.А. Хямяляйнен Установившаяся двумерная фильтрация жидкости вокруг перемычки.pdf
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 23.05.2024
Просмотров: 51
Скачиваний: 0
13
Область фильтрации можно также нарисовать с помощью команд
MatLab:
>> pderect([-20 30 2.2 12]); >>pderect([-20 30 2.2 3]).
Переходим в режим задания коэффициентов ДУ. Для этого выби-
раем PDE→PDE Mode, PDE→Show Subdomain Lables.
Зададим значения коэффициентов ДУ для каждой области течения. Коэффициенты приведены в табл. 2.
|
|
|
Таблица 2 |
|
Область |
с |
a |
|
f |
1 |
10 10-12 |
0 |
|
0 |
2 |
1 10-12 |
0 |
|
0 |
Зададим граничные условия. Для этого необходимо перейти в режим задания граничных условий нажатием кнопки 7 панели инструментов и командой меню Boundary→ Show 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.
Изменим параметры графика, выбрав Plot→ Parameters в меню и отметив галочкой пункт Arrous и в ниспадающем списке напротив – c*grad(u). После нажатия кнопки Plot рабочая область примет вид, изображенный на рис. 7.
По завершении полученную программу необходимо сохранить, выбрав File →Save. Код полученной программы можно посмотреть, от-
14
крыв соответствующий файл. Повторный запуск программы можно произвести, набрав имя файла в рабочей области MatLab и нажав Enter. Листинг получившейся программы приведен в прил. 1.
Рис. 7. Распределение давления и поле скоростей течения
Расчет притока воды. После нахождения распределения давления на области течения найдем приток воды в массив на границе 1 и отток из него через границу 4 (рис. 4). Для этого произведем экспорт решения и параметров разбиения области фильтрации в рабочую область
MatLab с помощью команд Solve→ Export solution и Mesh→ Export 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. Переходим в режим задания коэффициентов ДУ. Для этого вы-
бираем PDE→PDE Mode, PDE→Show 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 панели инструментов и выбираем Boundary→ Show 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. Изменим параметры графика, выбрав Plot→ Parameters в меню
17
и отметив галочкой пункт Arrous и в ниспадающем списке напротив – c*grad(u). После нажатия кнопки Plot рабочая область примет вид, изображенный на рис. 9.
По завершении работу необходимо сохранить, выбрав File →Save. Код полученной программы можно посмотреть, открыв полученный файл.
Полный листинг полученной программы приведен в приложении.
Расчет притока воды в выработку. Расчет притока воды в выра-
ботку производится с помощью специальных функций MatLab. Для их работы необходимо импортировать данные из оболочки PDETOOLBOX в среду MatLab следующими командами PDE →Export PDE Coefficientы, Solve→ Export Solution, Mesh→ Export 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с.