【MATLAB】球体磁异常正演

        利用场源体在上半空间的磁场表达式计算其磁场值,这里简单讨论球体的磁异常计算。

        球体磁场的正演公式:

H_{ax}=\frac{\mu_{0}}{4\pi} \frac{m}{(x^{2}+y^{2}+R^{2})^{5/2}}[(2x^{2}-y^{2}-R^{2})cosIcosA'-3RxsinI+3xycosIsinA']

H_{ay}=\frac{\mu_{0}}{4\pi} \frac{m}{(x^{2}+y^{2}+R^{2})^{5/2}}[(2y^{2}-x^{2}-R^{2})cosIcosA'-3RysinI+3xycosIsinA']

H_{ax}=\frac{\mu_{0}}{4\pi} \frac{m}{(x^{2}+y^{2}+R^{2})^{5/2}}[(2h^{2}-x^{2}-y^{2})cosIcosA'-3RxsinI-3RycosIsinA']

\Delta T = H_{ax}cosIcosA'+H_{ay}cosIsinA'+Z_{a}sinI

        式中R为埋深;m为球体磁矩,且m = MV(M为磁化强度,V为球体体积);I为磁倾角;A‘为磁偏角。

计算程序如下:

clear;

% 声明参数
k = 0.015;                  % 磁化率
T = 50000;                  % 磁场强度(nT)
R = 50;                     % 中心埋深(m)
r = 30;                     % 球体半径(m)

u0 = 4 * pi * (10e-7);      % 真空磁导率
V = (3 * pi * r.^3) / 4;    % 球体体积
M = k * T;                  % 球体磁化强度
m = V * M;                  % 球体磁矩

% 绘图范围
x = -200:1:200;             %测点
y = -200:1:200;             %测线
[X,Y] = meshgrid(x,y);

open = 1;

while open

sc = '输出图像:磁倾角I 磁偏角A';
disp(sc)

I = input('I= ');
A = input('A= ');

% 计算磁异常
Hax = u0.*m.*((2*X.^2-Y.^2-R.^2).*cosd(I).*cosd(A)-3.*R.*X.*cosd(I).*sind(A)+3.*X.*Y.*cosd(I).*sind(A))./(4.*pi.*((x.^2+y.^2+R.^2).^(2/5)));
Hay = u0.*m.*((2*Y.^2-X.^2-R.^2).*cosd(I).*cosd(A)-3.*R.*Y.*cosd(I).*sind(A)+3.*X.*Y.*cosd(I).*cosd(A))./(4.*pi.*((x.^2+y.^2+R.^2).^(2/5)));
Za  = u0.*m.*((2*R.^2-X.^2-Y.^2).*sind(I)-3.*R.*X.*cosd(I).*sind(A)+3.*R.*Y.*cosd(I).*sind(A))./(4.*pi.*((x.^2+y.^2+R.^2).^(2/5))); 

% 绘制图像
figure('Name','球体磁异常');
subplot(2,2,1);
surfc(Hax);shading flat
colormap(jet)
xlabel('X/m')
ylabel('Y/m')
zlabel('Hax')
title('水平面磁异常Hax');

subplot(2,2,3);
surfc(Hay);shading flat
xlabel('X/m');
ylabel('Y/m');
zlabel('Hay');
title('水平面磁异常Hay');

subplot(2,2,4);
surfc(Za);shading flat
xlabel('X/m');
ylabel('Y/m');
zlabel('Za');
title('垂直面磁异常Za');

open = input('再次运行输入1,结束输入0: ');
end

I=40,A’=60时计算结果如下:

 

  • 3
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

PourRevenir

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值