1、GprMax中GprMax2D用法V1.3实验环境:操作系统:Windows7软件版本:MATLAB7.1&GprMaxV2.0参照资料:1UserGuideV2.pdf 一、GprMax2D软件使用1.1 直接运营.GprMaxV2.0Windows文献夹下GprMax2D.exe文献,会浮现如下窗口(也可以在命令提示符窗口输入命令运营) :1.2 输入文献名注意:要输入文献全途径;*.in文献只要浮现任何语法错误或者途径错误,软件都会自动关闭,不会有任何错误提示。浮现如下画面(以自带例子文献bre1.in为例,*.in命令参照前面文章或1):运营完毕会发现.GprMaxV2.0Window
2、s文献夹下多了两个文献bre1.out、bre1.geo文献,复制到tools文献夹。 二、数据成像tools文献夹下有五个m文献:gprmax.m,gprmax2g.m,gprmax3g.m,gprmaxde.m ,gprmaxso.m。这里只讲gprmax2g.m,gprmax.m这两个文献用法,其她三个后来有空再写。gprmax3g.m是解决GprMax3D几何数据;gprmaxde.m用来计算Debye公式(参照1)介电常数;gprmaxso.m用于计算勉励函数。2.1 gprmax2g.m用法gprmax2g函数用于读取GprMax2D软件仿真探地雷达模型生成二进制几何数据。gprm
3、ax2g函数原型:mesh,header,media = gprmax2g( filename )filename是.geo文献名;media:存储介质类型,media.type;header:存储模型几何参数;header.title:模型名称;header.dx:模型在X轴每次偏移大小(单位:m);header.dy:模型在Y轴每次偏移大小(单位:m);header.dt:最大容许时间步长(单位:秒);header.nx:模型在X轴偏移次数;header.ny:模型在Y轴偏移次数;例子:如输入文献*.in中定义: #domain:2.5 0.65 #dx_dy:0.0025 0.0025那
4、么:header.dx=0.0025;header.dy=0.0025;header.dt = 1/(c*sqrt(1/header.dx2+1/header.dy2);(其中c=,为光速,公式参照1);header.nx=2.5/0.0025=1000;header.ny=0.65/0.0025=260;mesh:存储模型数据,M x N数组,其中M为Y轴方向Yee单元数目,N为X轴方向Yee单元数目;M=header.nx,N=header.ny;gprmax2g.m使用例子: filegeo = bre1.geo; meshdata,header,media=gprmax2g(fileg
5、eo); figure(1); MM,NN=size(meshdata); imagesc(1:NN)*header.dx,(1:MM)*header.dy,meshdata) axis(equal); xlabel(x(m); ylabel(y(m); 2.2 gprmax.m用法gprmax函数用于读取GprMax2D与GprMax3D软件仿真探地雷达模型生成二进制波形数据。gprmax函数原型:Header,Fields = gprmax( filename )filename是.out文献名;1) Header:该变量涉及如下成员:Header.title: 模型名称;Header.i
6、terations:迭代次数;Header.dx:在X轴每次偏移大小;Header.dy:在Y轴每次偏移大小;Header.dt:最大容许时间步长;Header.NSteps:仿真次数;等于*.in文献中#analysis:命令第一种参数;例子:如输入文献*.in中定义: #domain:2.5 0.65 #dx_dy:0.0025 0.0025 #time_window:12e-9 #analysis:115 bre1.out b #tx:0.0875 0.4525 MyLineSource 0.0 12e-9 #rx:0.1125 0.4525 #tx_steps:0.02 0.0 #rx
7、_steps:0.02 0.0 #end_analysis: 那么,Header.iterations=ceil(Header.removed/Header.dt);Header.dx=0.0025;Header.dy=0.0025;Header.dt= 1/(c*sqrt(1/Header.dx2+1/Header.dy2);Header.NSteps=115;Header.TxStepX=0.02/Header.dx=8;Header.TxStepY=0.0/Header.dy=0;Header.RxStepX=0.02/Header.dx=8;Header.RxStepY=0.0/Hea
8、der.dy=0;Header.ntx:Header.nrx:Header.nrx_box:Header.tx=0.0875/Header.dx=35;Header.ty=0.4525/Header.dy=181;Header.source=MyLineSource;Header.delay=0;(等于#tx:命令第四个参数)Header.removed=12e-9;(等于#tx:命令第五个参数)Header.rx=0.1125/Header.dx=45;Header.ry=0.4525/Header.dy=181; 2)Fields:该变量涉及如下成员:Fields.t:每个波形时间轴。数组
9、大小Header.iterations*1;Fields.ez:Z轴方向磁矢量数据。数组大小Header.iterations*1* Header.NSteps;Fields.hx:X轴方向电矢量数据。数组大小Header.iterations*1* Header.NSteps;Fields.hy:Y轴方向电矢量数据。数组大小Header.iterations*1* Header.NSteps;由于GprMax仿真是基于FDTD算法,以上三者关系为:详细可参照FDTD算法有关文献。 gprmax.m使用例子: fileout = bre1.out; Header,Fields=gprmax(f
10、ileout); N=1:Header.NSteps; %移动次数 Position=Header.dx*Header.tx+(N-1)*(Header.dx*Header.TxStepX);%天线每次所在位置 Data(:,:)=Fields.ez(:,1,:); %转换数组格式 figure(2); imagesc(Position,Fields.t*1e9,Data);%画图 colorbar xlabel(Antena Position (m); ylabel(t(ns); GprMaxV2.0中GprMax2D输入文献命令实验环境:操作系统:Windows 7软件版本:MATLAB
11、7.1 & GprMaxV2.0 参照文献:GprMaxV2.0软件manual文献夹下UserGuideV2.pdf。GprMaxV2.0下载地址: 阐明:翻译得不好,还望人们见谅,由于我也是边看边译。 3.1 GprMax2D命令普通注意事项为了描述GprMax2D/3D命令及其参数,咱们作如下商定:f表达浮点数(如1.5或15e-1、1.5e1)i表达整数c表达字符str表达字符串file表达输入文献名 所有空间距离基本单位为米所有时间基本单位为秒所有频率参数基本单位是Hz 3.2 GprMax2D 2.0版本共有32条命令:#title:#domain:#dx_dy:#time_ste
12、p_stability_factor:#time_window:#messages: #number_of_media:#nips_number:#media_file:#geometry_file:#medium: #abc_type:#abc_order:#abc_stability_factors:#abc_optimization_angles:#abc_mixing_parameters:#pml_layers: #box:#cylinder:#x_segment:#y_segment:#triangle: #analysis:#end_analysis:#tx:#rx:#rx_bo
13、x:#snapshot:#tx_steps:#rx_steps: #line_source:#excitation_file: 如下可以运营于GprMax中命令在GprMax2D版本2.0中将不再支持:#scan:#csg:#extra_tx: 此外,某些命令旧参数规则亦发生了变化:#tx:#snapshot:3.3 GprMax2D命令参数为了更好地简介GprMax2D命令,咱们将它们提成四类:普通命令:涉及用于指定大小和模型离散ABC有关命令:容许定制和优化吸取边界条件介质和对象构造命令:用不同参数来在模型中引入不同介质和构造简朴几何形状勉励和输出命令:用来放置源代码和模型输出点 运营Gp
14、rMax2D最低限度命令如下:#domain:#dx_dy:#time_window:至少一种#analysis:及与其相应结束命令#end_analysis:至少一种#tx:与#rx:,或者#rx_box:命令 为了使#tx:命令对的运营,同步需要一行新#line_source:命令 3.3.1普通命令#title:模型题目#title:strStr即是模型题目,必要是单行。 #domain:模型范畴(单位:米)#domain:f1 f2f1与f2分别代表x和y轴上量度大小#domain:1.0 1.5表达1.0*1.5大小范畴 #dx_dy:表达x和y轴上偏移量(如x、y)#dx_dy:f
15、1 f2表达x轴偏移f1和y轴方向上偏移f2 #domain:1.0 1.5#dx_dy:0.1 0.1则模型单元数为10*15 #domain:1.0 1.5#dx_dy:0.01 0.01则模型单元数为100*150 最大容许时间步t与x、y约束关系如下:(3.1)C为光速,GprMax2D中计算t使用3.1式等号。#time step stability factor:通过该命令,你可以修改GprMax2D所计算t值,但必要满足3.1式规定。#time_window:用于指定所需总模仿时间。语法:#time_window:f1或者#time_window:i1总迭代次数和模仿时间窗口:
16、(3.2)#number_of_media:但你需要使用不不大于10个介质时必要使用该命令,由于GprMax2D只初始化了10个介质使用空间。#number_of_media:i1i1不不大于10。 #media_file:使用该命令,你可以定义惯用介质所描述构造参数文献途径与名称。#geometry_file:使用该命令,你可以定义模型几何信息二进制文献。这些信息可以用于创立模型图像与检查创立对的与否。#geometry_file:model.geo#messages:使用该命令,你可以控制软件运营时在屏幕上输出信息。#messages:c1#nips_number:该命令仅当在GprMax
17、2D需要时才用于你输入文献中。#nips_number:i14.1 GPRMAX3D命令普通注释大多数可以用在GPRMAX3D命令几乎和GPRMAX2D是同样。但是,有某些命令是GPRMAX3D独有。为了简要扼要,这里只阐述与GPRMAX2D不同命令。基本空间和暂时离散环节分别为t和x,y,z。 4.2 命令清淡在版本2里面,GPRMAX3D一共有42个命令用在3D GPR建模中。她们是:#title:#domain:#dx_dy_dz:#time_step_stability_factor:#messages: #number_of_media:#nips_number:#media_fil
18、e:#geometry_file:#medium: #abc_type:#abc_order:#abc_stability_factors:#abc_optimization_angles:#abc_mixing_parameters:#pml_layers: #box:#cylinder:#cylinder_new:#cylindrical_segment:#sphere:#plate:#edge:#triangle:#bowtie:#thin_wire: #analysis:#end_analysis:#tx:#rx:#rx_box#snapshot:#tx_steps:#rx_steps
19、: #huygens_surface:#hertzian_dipole:#voltage_source:#transmissio_line:#plane_wave:#excitation_file: 4.3 GPRMAX3D命令参数为了更好地简介GprMax2D命令,咱们将它们提成四类:1.普通命令:涉及用于指定大小和模型离散2. ABC有关命令:容许定制和优化吸取边界条件3.介质和对象构造命令:用不同参数来在模型中引入不同介质和构造简朴几何形状4.勉励和输出命令:用来放置源代码和模型输出点 4.3.1 普通命令#title:与GprMax2D用法形同#domain:用来指定模型尺寸(单位:米
20、)#domain: f1 f2 f3f1,f2和f3分别是模型x,y,z方向上大小 #dx_dy_dz:指定x,y,z方向上增量#dx_dy_dz:f1 f2 f3f1是空间步x方向上增量,f2是空间步y方向上增量,f3是空间步z方向上增量。空间离散化控制最大容许时间步t和为了达到所需要仿真时间窗而提出解决方案。t和x,y,z之间关系是:(4.1)其中c为光速。在GPRMAX3D中,上式取等号。4.1中,一种小x,y,z值导致t得小值,这个t小值意味着为了达到所给仿真时间而需要更多迭代次数。但是,需要指出更小x,y,z和t值会让模型更精准。 #time_step_stability_facto
21、r:用法与GPR2D相似。可以修改t值。#time_window:用法与GPR2D相似。#number_of_media:用法与GPR2D相似。#geometry_file:用法与GPR2D相似。#messages:用法与GPR2D相似。#nips_number:用法与GPR2D相似。仅当GPRMAX3D被规定用时,才必要用到她。 4.3.2 ABC 有关命令在GPRMAX 3D这些影响Higdon ABCs配备和性能命令与GPRMAX 2D用法相似。但是,GPRMAX3D用了更有力PML ABC。#abc_type:pml#abc_type:higdon 可以设立ABC默认参数。 #pml_
22、layers:i1i1是pml所占Yee单元数目。默认值为8。所占用Yee单元数越多,PML性能越好,但是所花计算资源也越多。并且,有两点要注意:a) PML是几何模型一某些。但是,PML层里域不参加计算并且用她们来计算就是错。因而,不要把源和接受器设立在这个区域。PML深度是用YEE 单元来度量而不是距离。b) 注意:当前PML仅用于非磁介质。因而,如果你模型需要用到磁性参数,你必要用Higdoon ABC而不是PML。4.3.3 介质和对象构造命令在GPRMAX3D中,这些命令用来容易引入模型中不同介质和介质构造。在解决普通命令之后,GPRMAX3D建立一种初始化为free space(a
23、ir)任意尺寸模型。 注意,free space和pec已经被定义在GPRMAX3D中,你不必再去定义这两种介质。因而,核心词free_space和pec可以直接用而不需要再定义参数。其她介质她们参数必要通过下面之一来设立:l #media_file:命令包括各种各样经惯用介质定义(见附录A)l #medium: 输入文献中命令#medium:和GPRMAX2D中用法相似。并且,同一种介质文献可以不变化她们构造下既用到GPRMAX2D又用到GPRMAX3D #thin_wire:引入细电线模型。细电线被用作介质标示符给#dege:对象构造命令。#thin_wire: f1 str1f1是电线半
24、径,并且为了建立适当细电线物理模型,必要必l小。Str1是介质ID。Thin wire被以为是pec。例:#thin_wire: 0.001 MyWire#box: f1 f2 f3 f4 f5 f6 str1f1 f2 f3是左下角坐标,f4 f5 f6是右上角坐标。Str1是#medium:定义标示符。 #plate:f1 f2 f3 f4 f5 f6 str1f1 f2 f3是金属板左下角坐标。f4 f5 f6是金属板右上角坐标。str1 是介质标示符。 #triangle:三角行块。#triangle: f1 f2 f3 f4 f5 f6 f7 f8 f9 str1f1 f2 f3,f
25、4 f5 f6 ,f7 f8 f9分别是三角形三个顶点坐标。str1是介质标示符。 #bowtie: 蝴蝶天线。由两个三角形块构成#bowtie:c1 c2 f1 f2 f3 f4 f5 str1C1是蝴蝶天线方向,x,y或者z。c2是剩余方向。F1,f2,f3是天线馈电点x,y,z坐标。F4是天线元长度(完整蝴蝶天线长度一半)。f5是展开角。Str1是介质标示符。 #edge:一种天线。这个天线仅仅是YEE元边沿,当建立电阻或者细电线是可以用她。#edge:f1 f2 f3 f4 f5 f6 str1F1 f2 f3是边沿起始坐标,f4 f5 f6是边沿结束坐标。Str1是介质标示符。 #c
26、ylinder:有限维3D圆柱模型。#cylinder:c1 f1 f2 f3 f4 f5 str1C1是圆柱轴方向,可以是x,y或z。f1和f2分别是圆柱轴高低坐标。F3,f4是其她重要坐标用来表达两个圆柱圆形面中心。l X方向圆柱(f1,f3,f4)为(x1,y,z),(f2,f3,f4)为(x2,y,z)l y方向圆柱(f3,f1,f4)为(x,y1,z),(f3,f2,f4)为(x,y2,z)l z方向圆柱(f3,f4,f1)为(x,y,z1),(f3,f4,f2)为(x,y,z2)f5是圆柱圆盘半径,str1是介质标示符。 #cylinder_new:有限维3D圆柱。与#cylind
27、er:不同是,它轴向可以是任意。#cylinder_new: f1 f2 f3 f4 f5 f6 f7 str1F1 f2 f3 是圆柱底面圆心坐标,f4 f5 f6是圆柱顶面圆心坐标。F7是圆柱底面半径。Str1是介质标示符。 #cylindrical_segment:圆柱一段。#cylindrical_segment:c1 f1 f2 f3 f4 f5 str1 c2 f6 f7C1是圆柱轴向,可以是x,y,z。f1,f2是圆柱轴向上部和下部坐标。F3,f4是表达圆柱顶,底部其她两个坐标。F5是顶,底部半径。C2是片段变化方向。F6,f7是片段起始和结束点。#sphere:球体。#sphe
28、re: f1 f2 f3 f4 str1F1 f2 f3是球心坐标 f4是球半径。Str1是介质标示符4.3.4 勉励和输出命令#excitation_file: 容许顾客指定单个包括可以勉励模型幅度值清单ASCII文献。这些值至少要和迭代次数相等。#excitation_file:str1Str1是ASCII文献名字。例:#excitation_file: mysource.dat #hertzian_dipole:定义最简朴勉励。#hertzian_dipole:f1 f2 str1 str2F1 f2分别是源波形幅度和频率。Str1是波形标示符。Str2是源标示符。例:#hertzian
29、_dipole:1.0 600e6 ricker MyDipole与GPRMAX2D里面#line_source等价 #voltage_source:定义电压源。它引入一种电压器件位置,可以是一种硬源或者一种内部集成电阻。#voltage_source:f1 f2 str1 f3 str2F1 f2是源波形振幅和频率。Str1是波形标示符。 F3是内部电阻R。例:#voltage_source:1.0 600e6 gaussian 50.0 MyVolt #transmission_line:定义可以刺激天线1D两线传播线参数。#transmission_line: f1 f2 str1 f3
30、 f4 str2F1 f2是源波形振幅和频率,str1是勉励类型。F3是传播线长度。F4是阻抗特性,str2是源标示符例:#transmission_line:1.0 600e6 gaussian 0.5 200.0 MyLine #plane_wave:描述平面波源#plane_wave:f1 f2 str1 f3 f4 f5 str2 str3F1 f2是源波形振幅和频率,str1是勉励类型。F3 f4分别是0到pi和0到2pi角度。 #huygens_surface:必要与平面波同步用。#huygens_surface:f1 f2 f3 f4 f5 f6 str1F1 f2 f3是huy
31、gens表面左下角坐标,f4 f5 f6是右上角坐标。Str1是要用到#plane_wave标示符例:#huygens_surface:0.2 0.2 0.2 0.8 0.8 0.8 MyHugens #tx:c1 f1 f2 f3 str1 f4 f5C1源极化方向,可以是x,y,z。f1 f2 f3是源坐标。Str1是源ID,f4是勉励掩饰,f5是源移去时间。 #rx: f1 f2 f3F1 f2 f3是输出点坐标 #rx_box:f1 f2 f3 f4 f5 f6 f7 f8 f9F1 f2 f3是输出体积左下坐标,f4 f5 f6是输出体积右上坐标,f7 f8 f9是定义每一方向输出点
32、步数。最小值为f7为x,f8为y,f9为z。 #tx_steps:f1 f2 f3F1 f2 f3是x,y,y增量#rx_steps:f1 f2 f3同上 #snapshot:获得模型区域电磁场信息。#snapshot:i1 f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 filed1 c1或者#snapshot:i1 f1 f2 f3 f4 f5 f6 f7 f8 f9 i2 filed1 c1i1是一种成为全局户勉励点计数器。它决定哪一种snapshot被用勉励源位置。她值在1和步数之间,这个步数定义为#analysis第一种参数f1 f2 f3是左下角坐标;f4 f5 f6
33、是右上角坐标;f7f8f9是x,y,z方向上样本间隔。f10或i2是snapshot时间,或者迭代次数。file1是存储snapshot文献名c1 可以是a或者b表达snapshot格式是ASCII还是BINARYGprMax中GprMax3D用法诸多网友问我GprMax 3D用法,没有那么多时间去一一论述GprMax 3D原理。直接贴一种GprMax 3D例子上来,给人们参照吧。*注:这个例子也是好久之前参照网上一种例子,来源应当是来源这里:(1)Second.in文献内容如下:#medium:6.0 0.0 0.0 0.01 1.0 0.0 concrete-#domain:0.6 1.2
34、 0.65#dx_dy_dz:0.01 0.01 0.01#time_window:12e-9-#box:0.0 0.0 0.0 0.6 1.2 0.5 concrete#box:0.2 0.5 0.1 0.4 0.7 0.3 free_space-#hertzian_dipole:1.0 900e6 ricker MyDipole#analysis:21 second.out b#tx:x 0.3 0.115 0.55 MyDipole 0.0 12e-9#rx:0.3 0.365 0.55#tx_steps:0.0 0.04 0.0#rx_steps:0.0 0.04 0.0#end_an
35、alysis:-#geometry_file:second.geo#messages:y(2)GprMax 3D界面和运营办法跟GprMax 2D相似,这里不多说了。Matlab解决文献:name = second.geo;mesh,ID,header,media = gprmax3g(name);figurep1=patch(isosurface(mesh,1);set(p1,facecolor,1,0,0,edgecolor,none);p2=patch(isosurface(mesh,2);set(p2,facecolor,0,1,0,edgecolor,none);Header,Fie
36、lds = gprmax(second.out);radargram(:,:) = Fields.ez(:,1,:);t=1e9*Fields.t;Y = Header.dy * Header.rx:Header.dy * Header.RxStepY :Header.dy * Header.rx + (Header.dy * Header.RxStepY * (Header.NSteps-1);figure;imagesc(Y,t,radargram);title(Ez);ylabel(Time (ns);xlabel(Scan length (m);figure;x,y=meshgrid(Y,t);surf(x,y,radargram,EdgeColor,none)view(1,1,0.5);title(Ez );ylabel(Time (m);xlabel(Scan length (m);解决成果图像:(见下页)(3)问题:geo文献显示不对的,没时间去找为什么了,有空再弄吧。
©2010-2025 宁波自信网络信息技术有限公司 版权所有
客服电话:4008-655-100 投诉/维权电话:4009-655-100