clear all
clc
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
%
% 大地电磁二维限元正演(TE模式)
%
%
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
u=4*pi*10^(-7); % 空气中的磁导率
%Z0=[10000,5000,2000,1000,500]; % 空气层
Z0=[10000,5000,3000,2000,1000,500,200,100];
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 数据读取 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
f=load('frequency'); %%
node=load('nodemodel'); %%
survey=load('surveymodel'); sp=survey; [Np,cc]=size(sp); %%
body=load('bodymodle'); sc=struct2cell(body); p=cell2mat(sc); %%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 网格参数 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
X=node(2:node(1,1)+1,1)'; %%
Z=node(2:node(1,2)+1,2)'; Z=[Z0,Z]; NK=length(Z0); %%
[cc,Nx]=size(X); [cc,Nz]=size(Z); [Nf,cc]=size(f); %%
NP=(Nx+1)*(Nz+1); %%
Kz1=sparse(NP,NP); Kz2=sparse(NP,NP); Kz3=sparse(NP,NP); %%
[cb,cc]=size(body); [cs,cc]=size(survey); %%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 求刚度系数矩阵 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
w0=2*pi*1;
pp=100; % 半空间(背景电阻率值)
tic
t=1/(i*w0*u);
p=[10^4*ones(NK,Nx);p];
for h=1:Nx
for j=1:Nz
k=1/p(j,h);
a=(h-1)*(Nz+1)+j; b=(h-1)*(Nz+1)+j+1;
c=(h-1)*(Nz+1)+j+(Nz+1)+1; e=c-1;
K1=Ke1(X(h),Z(j),t); K2=Ke2(X(h),Z(j),k);
Kz1=Kz1+KK1(a,b,c,e,K1,NP);
Kz2=Kz2+KK1(a,b,c,e,K2,NP);
if(j==Nz)
kk=sqrt((-i*w0*u)/pp);
K3=Ke3(Z(j),kk,t);
Kz3=Kz3+KK1(a,b,c,e,K3,NP);
end
end
end
toc
Ue=zeros(NP,1);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
tic
for r=1:Nf
B=zeros(1,NP);
w=2*pi*f(r);
K=(1/f(r))*Kz1-Kz2+sqrt(f(r))*(1/f(r))*Kz3;
for x=1:(Nx+1)
y=(x-1)*(Nz+1)+1; K(y,y)=K(y,y)*10^10; B(1,y)=K(y,y)*10^10;
end
[L1,U1]=luinc(K,1);
Ue=bicgstab(K,B',1e-15,800,L1,U1,Ue); % 不完全LU分解,稳定双共轭梯度法求解线性方程组
L=Z(1+NK)+Z(2+NK)+Z(3+NK);
for m=1:Np
n=(sp(m)-1)*(Nz+1)+1+NK;
de(m)=(1/(2*L))*((-11)*Ue(n,1)+18*Ue(n+1,1)+(-9)*Ue(n+2,1)+2*Ue(n+3,1));
pe(r,m)=abs(-i*w*u*(Ue(n,1)/de(m))^2);
qe(r,m)=90+atan(imag(Ue(n,1)*i*w*u/de(m))/real(Ue(n,1)*i*w*u/de(m)))*(360/(2*pi));
end
end
toc
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 保存数据 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
result=[Nf*Np,Nf,Np];
for j=1:Np
result=[result;f,pe(:,j),qe(:,j)];
end
D1=fopen('resultTE.dat','wt');
fprintf(D1,'%.6d %.2d %.2d\n',result');
fclose(D1); % 结果
% 保存结果中第一行数据:第一个为数据个数,第二个位频点数,第三个为测点数
% 从第二行开始,第一列为频率,第二列为电阻率,第三列为相位
Monkey_shuo
- 粉丝: 12
- 资源: 1
最新资源
- 使用群晖NAS搭建虚拟机
- 基于minifly的学习源码-本人耗时五年完善的稳定源码移植于minifly上,不带操作系统,直接操作寄存器,代码简洁明了,算法基于数学公式,便于学习数学知识
- 基于motorcad设计的外转子发电机,磁钢采用FB6B铁氧体 ,不等匝绕组,输出功率2.3KW 定子外径156 3200RPM,18极27槽永磁同步发电机(PMSG)设计案例.
- 电力电子、电机驱动、数字滤波器matlab simulink仿真模型实现及相关算法的C代码实现 配置C2000 DSP ADC DAC PWM定时器 中断等模块,提供simulink与DSP的联合仿
- 视觉系统程序,新能源电池检测 1、支持4个相机 2、实现Profinet网卡通信 3、实现日志功能 4、实现图像存储功能 5、实现电芯有无判断、电芯和端板涂胶检测
- 基于51单片机的电子时钟设计
- 西门子smart200与汇川变频器 Modbus RTU控制程序 步科触摸屏程序 振捣控制系统 汇川变频器手册
- C#上位机与西门子plc通信,实现伺服控制与数字量控制 提供C#源代码,plc测试程序
- 45.<资源>番茄钟3.0 无代码 C#例子 WPF例子
- stm32f103的Bootloader IAP串口升级stm32f103的Bootloader IAP串口升级st m32固件的学习资料,成熟产品方案已经用在批量产品上,资料包括上位机(电脑端)运行
- 基于Spark的电商用户行为分析系统-源码+课设论文(本科期末课程设计).zip
- Qt C++pdf阅读器源码 上下翻页 精美工具栏 支持ofd格式 1. 仿WPS界面 2. 预览PDF文件 3. 支持PDF预览放大,缩小 4. 支持目录预览查看 5. 支持目录点击跳转页查
- RDM(radis桌面工具)
- 西门子s7 200smart与3台台达VFD-M变频器通讯目标:用触摸屏和西门子smart 控制3台台达变频器通讯 器件:西门子s7 200 smart PLC,3台台达VFD-M变频器,昆仑通态触摸
- 基于51单片机的电子密码锁设计
- Qt5工业上位机源码 工业电子称 无线扫码器 串口的使用 Qt5.14可运行 Qt5工业上位机应用! 一套完整工程! 工业电子称使用, 无线扫码枪的使用, 串口的使用 使用Qt5.14 用QtCrea
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈