收藏 分销(赏)

GprMax中文说明指导书专业资料.doc

上传人:天**** 文档编号:2990076 上传时间:2024-06-12 格式:DOC 页数:27 大小:294.04KB 下载积分:10 金币
下载 相关 举报
GprMax中文说明指导书专业资料.doc_第1页
第1页 / 共27页
GprMax中文说明指导书专业资料.doc_第2页
第2页 / 共27页


点击查看更多>>
资源描述
GprMax中GprMax2D用法 V1.3 实验环境: 操作系统:Windows7 软件版本:MATLAB7.1&GprMaxV2.0 参照资料: [1]UserGuideV2.pdf 一、GprMax2D软件使用 1.1 直接运营 ..\GprMaxV2.0\Windows文献夹下GprMax2D.exe文献,会浮现如下窗口(也可以在命令提示符窗口输入命令运营) : 1.2 输入文献名 注意:要输入文献全途径;*.in文献只要浮现任何语法错误或者途径错误,软件都会自动关闭,不会有任何错误提示。 浮现如下画面(以自带例子文献bre1.in为例,*.in命令参照前面文章或[1]): 运营完毕会发现..\GprMaxV2.0\Windows文献夹下多了两个文献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软件仿真探地雷达模型生成二进制几何数据。 gprmax2g函数原型: [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 那么:header.dx=0.0025;header.dy=0.0025; header.dt = 1/(c*sqrt(1/header.dx^2+1/header.dy^2));(其中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(filegeo); 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.iterations:迭代次数; 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_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.dx^2+1/Header.dy^2)); 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/Header.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:每个波形时间轴。数组大小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(fileout); 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 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_step_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_box: #snapshot: #tx_steps: #rx_steps: #line_source: #excitation_file: 如下可以运营于GprMax中命令在GprMax2D版本2.0中将不再支持: #scan: #csg: #extra_tx: 此外,某些命令旧参数规则亦发生了变化: #tx: #snapshot: 3.3 GprMax2D命令参数 为了更好地简介GprMax2D命令,咱们将它们提成四类: 普通命令:涉及用于指定大小和模型离散 ABC有关命令:容许定制和优化吸取边界条件 介质和对象构造命令:用不同参数来在模型中引入不同介质和构造简朴几何形状 勉励和输出命令:用来放置源代码和模型输出点 运营GprMax2D最低限度命令如下: •#domain: •#dx_dy: •#time_window: •至少一种#analysis:及与其相应结束命令#end_analysis: 至少一种#tx:与#rx:,或者#rx_box:命令 • 为了使#tx:命令对的运营,同步需要一行新#line_source:命令 3.3.1普通命令 #title: 模型题目 #title:str Str即是模型题目,必要是单行。 #domain: 模型范畴(单位:米) #domain:f1 f2 f1与f2分别代表x和y轴上量度大小 #domain:1.0 1.5 表达1.0*1.5大小范畴 #dx_dy: 表达x和y轴上偏移量(如△x、△y) #dx_dy:f1 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 总迭代次数和模仿时间窗口: (3.2) #number_of_media: 但你需要使用不不大于10个介质时必要使用该命令,由于GprMax2D只初始化了10个介质使用空间。 #number_of_media:i1 i1不不大于10。 #media_file: 使用该命令,你可以定义惯用介质所描述构造参数文献途径与名称。 #geometry_file: 使用该命令,你可以定义模型几何信息二进制文献。这些信息可以用于创立模型图像与检查创立对的与否。 #geometry_file:model.geo #messages: 使用该命令,你可以控制软件运营时在屏幕上输出信息。 #messages:c1 #nips_number: 该命令仅当在GprMax2D需要时才用于你输入文献中。 #nips_number:i1 4.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_file: #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: #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: 用来指定模型尺寸(单位:米) #domain: f1 f2 f3 f1,f2和f3分别是模型x,y,z方向上大小 #dx_dy_dz: 指定x,y,z方向上增量 #dx_dy_dz:f1 f2 f3 f1是空间步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_factor: 用法与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_layers:i1 i1是pml所占Yee单元数目。默认值为8。所占用Yee单元数越多,PML性能越好,但是所花计算资源也越多。并且,有两点要注意: a) PML是几何模型一某些。但是,PML层里域不参加计算并且用她们来计算就是错。因而,不要把源和接受器设立在这个区域。PML深度是用YEE 单元来度量而不是距离。 b) 注意:当前PML仅用于非磁介质。因而,如果你模型需要用到磁性参数,你必要用Higdoon ABC而不是PML。 4.3.3 介质和对象构造命令 在GPRMAX3D中,这些命令用来容易引入模型中不同介质和介质构造。在解决普通命令之后,GPRMAX3D建立一种初始化为free space(air)任意尺寸模型。 注意,free space和pec已经被定义在GPRMAX3D中,你不必再去定义这两种介质。因而,核心词free_space和pec可以直接用而不需要再定义参数。 其她介质她们参数必要通过下面之一来设立: l #media_file:命令包括各种各样经惯用介质定义(见附录A) l #medium: 输入文献中命令 #medium: 和GPRMAX2D中用法相似。并且,同一种介质文献可以不变化她们构造下既用到GPRMAX2D又用到GPRMAX3D #thin_wire: 引入细电线模型。细电线被用作介质标示符给#dege:对象构造命令。 #thin_wire: f1 str1 f1是电线半径,并且为了建立适当细电线物理模型,必要必△l小。Str1是介质ID。Thin wire被以为是pec。 例:#thin_wire: 0.001 MyWire #box: f1 f2 f3 f4 f5 f6 str1 f1 f2 f3是左下角坐标,f4 f5 f6是右上角坐标。Str1是#medium:定义标示符。 #plate:f1 f2 f3 f4 f5 f6 str1 f1 f2 f3是金属板左下角坐标。f4 f5 f6是金属板右上角坐标。str1 是介质标示符。 #triangle: 三角行块。 #triangle: f1 f2 f3 f4 f5 f6 f7 f8 f9 str1 f1 f2 f3,f4 f5 f6 ,f7 f8 f9分别是三角形三个顶点坐标。str1是介质标示符。 #bowtie: 蝴蝶天线。由两个三角形块构成 #bowtie:c1 c2 f1 f2 f3 f4 f5 str1 C1是蝴蝶天线方向,x,y或者z。c2是剩余方向。F1,f2,f3是天线馈电点x,y,z坐标。F4是天线元长度(完整蝴蝶天线长度一半)。f5是展开角。Str1是介质标示符。 #edge: 一种天线。这个天线仅仅是YEE元边沿,当建立电阻或者细电线是可以用她。 #edge:f1 f2 f3 f4 f5 f6 str1 F1 f2 f3是边沿起始坐标,f4 f5 f6是边沿结束坐标。Str1是介质标示符。 #cylinder: 有限维3D圆柱模型。 #cylinder:c1 f1 f2 f3 f4 f5 str1 C1是圆柱轴方向,可以是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圆柱。与#cylinder:不同是,它轴向可以是任意。 #cylinder_new: f1 f2 f3 f4 f5 f6 f7 str1 F1 f2 f3 是圆柱底面圆心坐标,f4 f5 f6是圆柱顶面圆心坐标。F7是圆柱底面半径。Str1是介质标示符。 #cylindrical_segment: 圆柱一段。 #cylindrical_segment:c1 f1 f2 f3 f4 f5 str1 c2 f6 f7 C1是圆柱轴向,可以是x,y,z。f1,f2是圆柱轴向上部和下部坐标。F3,f4是表达圆柱顶,底部其她两个坐标。F5是顶,底部半径。C2是片段变化方向。F6,f7是片段起始和结束点。 #sphere: 球体。 #sphere: f1 f2 f3 f4 str1 F1 f2 f3是球心坐标 f4是球半径。Str1是介质标示符 4.3.4 勉励和输出命令 #excitation_file: 容许顾客指定单个包括可以勉励模型幅度值清单ASCII文献。这些值至少要和迭代次数相等。 #excitation_file:str1 Str1是ASCII文献名字。 例:#excitation_file: mysource.dat #hertzian_dipole: 定义最简朴勉励。 #hertzian_dipole:f1 f2 str1 str2 F1 f2分别是源波形幅度和频率。Str1是波形标示符。Str2是源标示符。 例:#hertzian_dipole:1.0 600e6 ricker MyDipole 与GPRMAX2D里面#line_source等价 #voltage_source: 定义电压源。它引入一种电压器件位置,可以是一种硬源或者一种内部集成电阻。 #voltage_source:f1 f2 str1 f3 str2 F1 f2是源波形振幅和频率。Str1是波形标示符。 F3是内部电阻R。 例:#voltage_source:1.0 600e6 gaussian 50.0 MyVolt #transmission_line: 定义可以刺激天线1D两线传播线参数。 #transmission_line: f1 f2 str1 f3 f4 str2 F1 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 str3 F1 f2是源波形振幅和频率,str1是勉励类型。F3 f4分别是0到pi和0到2pi角度。 #huygens_surface: 必要与平面波同步用。 #huygens_surface:f1 f2 f3 f4 f5 f6 str1 F1 f2 f3是huygens表面左下角坐标,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 f5 C1源极化方向,可以是x,y,z。f1 f2 f3是源坐标。Str1是源ID,f4是勉励掩饰,f5是源移去时间。 #rx: f1 f2 f3 F1 f2 f3是输出点坐标 #rx_box:f1 f2 f3 f4 f5 f6 f7 f8 f9 F1 f2 f3是输出体积左下坐标,f4 f5 f6是输出体积右上坐标,f7 f8 f9是定义每一方向输出点步数。最小值为f7为△x,f8为△y,f9为△z。 #tx_steps:f1 f2 f3 F1 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 c1 i1是一种成为全局户勉励点计数器。它决定哪一种snapshot被用勉励源位置。她值在1和步数之间,这个步数定义为#analysis第一种参数 f1 f2 f3是左下角坐标;f4 f5 f6是右上角坐标;f7f8f9是x,y,z方向上样本间隔。 f10或i2是snapshot时间,或者迭代次数。 file1是存储snapshot文献名 c1 可以是a或者b表达snapshot格式是ASCII还是BINARY GprMax中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 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_analysis: -------------------------------------- #geometry_file:second.geo #messages:y (2)GprMax 3D界面和运营办法跟GprMax 2D相似,这里不多说了。 Matlab解决文献: name = 'second.geo'; [mesh,ID,header,media] = gprmax3g(name); figure p1=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,Fields] = 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文献显示不对的,没时间去找为什么了,有空再弄吧。
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 应用文书 > 技术指导

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服