热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

【物理应用】基于粒子群优化算法实现瞬变电磁法视电阻率反演附matlab代码

1内容介绍煤矿井下矿井瞬变电磁法(MTEM)探测中,电磁场呈全空间分布,全空间瞬变电磁反演是复杂的非线性问题,目前反演计算中全空间响应主要由半空间响应乘以全空间响应系数来得到,导

1 内容介绍

煤矿井下矿井瞬变电磁法(MTEM)探测中,电磁场呈全空间分布,全空间瞬变电磁反演是复杂的非线性问题,目前反演计算中全空间响应主要由半空间响应乘以全空间响应系数来得到,导致反演结果中顶板和底板异常(或前方和后方异常)叠加在一起难以分离,造成分辨率下降.论文提出采用粒子群优化算法(PSO)进行全空间MTEM反演,通过理论分析,在常规的粒子群算法基础上提出了一种新的进化公式改进策略,提高了粒子群算法的寻优能力.基于全空间瞬变电磁场理论,编写了粒子群算法反演程序,进行全空间条件下五层含巷道的复杂模型的反演计算.结合某矿井巷道顶板、底板岩层及断层含水性的探测实例,对实测数据进行反演计算和解释,探测结果得到钻探证实.研究表明,改进的粒子群优化算法对理论模型和实际资料的反演拟合程度较高,实现了矿井顶板、底板视电阻率异常的分离,提高了全空间瞬变电磁勘探资料的解释精度和分辨率.​


2 仿真代码

%程序为“广域电磁法”的正演,思路按照何继善院士的书《广域电磁法和伪随机信号电法》,实现的结果可以有两种方式,1、Ex;2、Ex/Hy,

function F=CSAMT_halfspace(rho,ii)

global x

global y

global f

global ex

global PE

%本程序用来进行均匀半空间的CSAMT正演,这里用到虚宗量零阶和一阶贝塞尔方程

%采用的公式来自“朴化荣”的《电磁测深法原理》一书。

%程序所有人:Lidiquan   编译时间:2008-5-28

%程序中各种符号的代表意义:

% rho:电阻率;phase:相位;k:波数;Z:阻抗;f:频率;miu:自由空间磁导率;epu:介电常数,RHO:正演电阻率

miu=4 * pi * 10^(-7);       %磁导率

epu=8.85 * 10 ^(-12);       %介电常数

r = sqrt(x.*x + y.*y);        %收发距(米)

cos_fi = x ./ r;            %接收夹角余弦

sin_fi = y ./ r;            %接收夹角正弦

w=2 .* pi .* f(ii);             %角频率系列

%%

%开始计算各个场值

%开始计算各个场值

k=sqrt( -1i .* w .* miu ./ rho - w .* w .* epu .* miu );   %不同频率时的波数

tmp = 1i .* k .* r ./ 2;

tmp2 = besseli(1,tmp) .* besselk(1,tmp);

tmp3 = besseli(0,tmp) .* besselk(1,tmp) - besseli(1,tmp) .* besselk(0,tmp);

Ex = PE .* rho ./ (r.^3) .* (3 .* cos_fi.^2 - 2 + ( 1 + k .* r) .* exp(-k .* r));

Ey = PE .* rho ./ (r.^3) .* (3 .* cos_fi.* sin_fi);

% Ex=Ex+Ey;

Hy = PE ./ (r.^2) .* ( (1 - 4 .* sin_fi.^2) .* tmp2 + tmp .* sin_fi.^2 .* tmp3 );

Z = Ex ./ Hy;

% RHO = abs(Z.^2) ./ w ./ miu;

phase = angle(Z) ./ pi .* 180;

F=abs(ex(ii)./1) - abs(Ex);

% F=abs(ex(ii)./hy(ii)) - abs(Ex ./ Hy);

%结束计算各个场值

%结束计算各个场值


3 运行结果


4 参考文献

[1]徐正玉, 付能翼, 周洁,等. 瞬变电磁法非线性优化反演算法对比[J]. 吉林大学学报:地球科学版, 2022, 52(3):10.

[2]李飞龙. 瞬变电磁法大定源回线全区视电阻率的算法研究[D]. 北京信息科技大学, 2014.


博主简介:擅长智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机等多种领域的Matlab仿真,相关matlab代码问题可私信交流。

部分理论引用网络文献,若有侵权联系博主删除。

 


推荐阅读
  • 本文将介绍如何使用 Go 语言编写和运行一个简单的“Hello, World!”程序。内容涵盖开发环境配置、代码结构解析及执行步骤。 ... [详细]
  • 解决PHP与MySQL连接时出现500错误的方法
    本文详细探讨了当使用PHP连接MySQL数据库时遇到500内部服务器错误的多种解决方案,提供了详尽的操作步骤和专业建议。无论是初学者还是有经验的开发者,都能从中受益。 ... [详细]
  • 本文深入探讨了Linux系统中网卡绑定(bonding)的七种工作模式。网卡绑定技术通过将多个物理网卡组合成一个逻辑网卡,实现网络冗余、带宽聚合和负载均衡,在生产环境中广泛应用。文章详细介绍了每种模式的特点、适用场景及配置方法。 ... [详细]
  • 本文探讨了如何在给定整数N的情况下,找到两个不同的整数a和b,使得它们的和最大,并且满足特定的数学条件。 ... [详细]
  • 机器学习中的相似度度量与模型优化
    本文探讨了机器学习中常见的相似度度量方法,包括余弦相似度、欧氏距离和马氏距离,并详细介绍了如何通过选择合适的模型复杂度和正则化来提高模型的泛化能力。此外,文章还涵盖了模型评估的各种方法和指标,以及不同分类器的工作原理和应用场景。 ... [详细]
  • 本文探讨了 C++ 中普通数组和标准库类型 vector 的初始化方法。普通数组具有固定长度,而 vector 是一种可扩展的容器,允许动态调整大小。文章详细介绍了不同初始化方式及其应用场景,并提供了代码示例以加深理解。 ... [详细]
  • 尽管使用TensorFlow和PyTorch等成熟框架可以显著降低实现递归神经网络(RNN)的门槛,但对于初学者来说,理解其底层原理至关重要。本文将引导您使用NumPy从头构建一个用于自然语言处理(NLP)的RNN模型。 ... [详细]
  • 获取计算机硬盘序列号的方法与实现
    本文介绍了如何通过编程方法获取计算机硬盘的唯一标识符(序列号),并提供了详细的代码示例和解释。此外,还涵盖了如何使用这些信息进行身份验证或注册保护。 ... [详细]
  • libsodium 1.0.15 发布:引入重大不兼容更新
    最新发布的 libsodium 1.0.15 版本带来了若干不兼容的变更,其中包括默认密码散列算法的更改和其他重要调整。 ... [详细]
  • Linux设备驱动程序:异步时间操作与调度机制
    本文介绍了Linux内核中的几种异步延迟操作方法,包括内核定时器、tasklet机制和工作队列。这些机制允许在未来的某个时间点执行任务,而无需阻塞当前线程,从而提高系统的响应性和效率。 ... [详细]
  • 毕业设计:基于机器学习与深度学习的垃圾邮件(短信)分类算法实现
    本文详细介绍了如何使用机器学习和深度学习技术对垃圾邮件和短信进行分类。内容涵盖从数据集介绍、预处理、特征提取到模型训练与评估的完整流程,并提供了具体的代码示例和实验结果。 ... [详细]
  • 在过去两周中,我们利用 ReportViewer 开发了与生产良率相关的报表,其中每个制程的直通率是所有测试项良率的乘积。由于 ReportViewer 没有内置的累乘函数,因此需要借助自定义代码来实现这一功能。本文将详细介绍实现步骤和相关代码。 ... [详细]
  • 信用评分卡的Python实现与评估
    本文介绍如何使用Python构建和评估信用评分卡模型,涵盖数据预处理、模型训练及验证指标选择。附带详细代码示例和视频教程链接。 ... [详细]
  • 探索电路与系统的起源与发展
    本文回顾了电路与系统的发展历程,从电的早期发现到现代电子器件的应用。文章不仅涵盖了基础理论和关键发明,还探讨了这一学科对计算机、人工智能及物联网等领域的深远影响。 ... [详细]
  • 尽管深度学习带来了广泛的应用前景,其训练通常需要强大的计算资源。然而,并非所有开发者都能负担得起高性能服务器或专用硬件。本文探讨了如何在有限的硬件条件下(如ARM CPU)高效运行深度神经网络,特别是通过选择合适的工具和框架来加速模型推理。 ... [详细]
author-avatar
处女冰水洗尘
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有