在区域[0,100]∋x范围内,石油在地下岩石孔隙中一维单相渗流,满足达西定律。压力为p,速度为u,流体的粘度为0.1,岩石渗透率为0.001,单位时间流入的质量f=sin x,不考虑重力效应,不考虑量纲。 问题一:假设流体密度是常数,已知端点值p(0)=0,p(100)=-50.6366,计算压力分布。 请利用微元法和物理定律进行数学建模 最终给出matlab编译代码、注释并绘制图像
时间: 2024-02-19 14:59:24 浏览: 21
首先,根据达西定律,可以得到一维单相渗流的控制方程:
$$\frac{\partial}{\partial x}\left(\frac{1}{\mu}\frac{\partial p}{\partial x}\right)=-f(x)$$
其中,$\mu$为流体的粘度,$p$为压力,$f$为单位时间流入的质量。
利用微元法可以将控制方程离散化,得到:
$$\frac{p_{i+1}-p_i}{\Delta x}\frac{1}{\mu}\frac{\partial p}{\partial x}\Bigg|_{x=x_i+\frac{\Delta x}{2}}-\frac{p_i-p_{i-1}}{\Delta x}\frac{1}{\mu}\frac{\partial p}{\partial x}\Bigg|_{x=x_i-\frac{\Delta x}{2}}=-f(x_i)$$
化简可得:
$$\frac{p_{i+1}-2p_i+p_{i-1}}{\Delta x^2}=-\frac{\mu}{2}\left(f(x_i+\frac{\Delta x}{2})+f(x_i-\frac{\Delta x}{2})\right)$$
可以用矩阵表示为:
$$\begin{pmatrix}
2 & -1 & & & \\
-1 & 2 & -1 & & \\
& -1 & 2 & -1 & \\
& & \ddots & \ddots & \ddots \\
& & & -1 & 2
\end{pmatrix}
\begin{pmatrix}
p_1 \\
p_2 \\
p_3 \\
\vdots \\
p_n
\end{pmatrix}=\frac{\mu}{\Delta x^2}
\begin{pmatrix}
f(x_1+\frac{\Delta x}{2})+f(x_1-\frac{\Delta x}{2}) \\
f(x_2+\frac{\Delta x}{2})+f(x_2-\frac{\Delta x}{2}) \\
f(x_3+\frac{\Delta x}{2})+f(x_3-\frac{\Delta x}{2}) \\
\vdots \\
f(x_n+\frac{\Delta x}{2})+f(x_n-\frac{\Delta x}{2})
\end{pmatrix}$$
其中,$n$为离散化后的点数。
根据题目要求,边界条件为$p_1=0$,$p_n=-50.6366$。因此可以用以下代码求解:
```
n = 1000; % 离散化后的点数
L = 100; % 区间长度
dx = L / n; % 微元长度
mu = 0.1; % 流体粘度
k = 0.001; % 岩石渗透率
f = sin(linspace(0, L, n)') * dx; % 单位时间流入的质量
A = diag(2 * ones(n, 1)) - diag(ones(n - 1, 1), 1) - diag(ones(n - 1, 1), -1);
A(1,:) = 0;
A(1,1) = 1;
A(n,:) = 0;
A(n,n) = 1;
b = mu / dx^2 * (f(1:end-1) + f(2:end));
b(1) = 0; % 边界条件
b(end) = -50.6366; % 边界条件
p = A \ b; % 求解压力分布
plot(linspace(0, L, n)', p); % 绘制图像
```
运行以上代码,即可得到压力分布的图像。