有砟铁路三维地质雷达检测数值模拟研究

news2024/10/6 14:36:02

有砟铁路三维地质雷达无损检测数值模拟研究

前言

据统计,全国铁路营业里程超过14.63万公里,其中高铁超过3.8万公里;全国铁路路网密度152.3公里/万平方公里。有砟铁路主要建造于2012年以前,截止2012年,全国有砟铁路达到9.8万公里。
在这里插入图片描述
有咋铁路的无损检测已成为研究热点。

随着英国工业革命的兴起,为了向码头运输矿石等资源,1605年英国修建了第一条用木条铺成的轨道。18世纪中叶,以铸铁轨道为代表的铁路轨道登上了历史舞台。1865年,钢轨代替了铁轨,在地面上轨枕下铺设一层碎石组成的道床,具有现代轨道结构形式的有砟轨道雏形逐渐形成。直到轨道交通运输业迅猛发展的今天,传统的有砟轨道结构仍然是当前普速铁路的主要结构形式。
有砟轨道结构示意图
地质雷达检测作为铁路下部结构的检测方法从90年代兴起到现在已经是一种被世界各国认可的无损检测方法,特别是以车载探地雷达的检测方式,使得有砟道床的隐蔽性无损检测变得节约和高效。

本博文进行了有砟铁路三维地质雷达数值模拟研究。

文章目录

  • 有砟铁路三维地质雷达无损检测数值模拟研究
      • 前言
    • 1、研究背景
    • 2、三维地质雷达建模
    • 3、三维模拟结果
    • 4、matlab代码

1、研究背景

将雷达天线放置在雷达车上进行无损检测是目前主要的检测手段。
在这里插入图片描述
美国GSSI公司公铁两用铁路路基探地雷达检测车
在这里插入图片描述
英国Zetica公司的公铁两用铁路路基探地雷达检测车
在这里插入图片描述
意大利IDSGeoRadar公司的公铁两用铁路路基探地雷达检测车
在这里插入图片描述
芬兰Roadscanners Oy公司检测铁路路基的公铁两用探地雷达检测车
在这里插入图片描述
俄罗斯GEOTECH公司的铁路路基探地雷达检测系统
在这里插入图片描述
德国GBM Wiebe公司集成的铁路路基检测系统
在这里插入图片描述
日本 JR East公司开发的轨下结构检测车(UTRAS)

2、三维地质雷达建模

利用gprmax进行三维有砟铁路建模,paraview三维可视化模型
在这里插入图片描述
模型参数如下:

天线频率 400MHz
时窗 40ns
收发距 0.30m
道间距 0.04m
面砟:4.5 0.001
底砟:8 0.005
翻浆冒泥:20 0.05
土质:10 0.1
孔隙度为0.2471

采用二值法建立不同颗粒大小石头,不同直径孔隙。
在这里插入图片描述
在这里插入图片描述

3、三维模拟结果

在这里插入图片描述
在这里插入图片描述
与二维地质雷达模拟结果的对比
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
实测资料三维可视化
在这里插入图片描述
在这里插入图片描述

4、matlab代码

close all
clear
clc

% 此程序是写gprmax不规则形状的几何文件
% 利用矩阵分块,创建大颗粒石头
% 这是二维模型的h5文件写入

dx = 0.01;
dy = 0.01;
dz = 0.01;

dx_dy_dz = [dx,dy,dz];

nex = 100;
ney = 100;
nez = 100;

% 设置保存的文件名
% file_name = 'stestbig02.h5';

% 创建一个HDF5文件
% h5create(file_name,'/data',[nex ney nez]);

% 创建一个充满随机数的大矩阵
data = rand(nex,ney,nez);

% 设置孔隙度阈值
fai = 0.65;
% 将矩阵转化为 0 与 1 随机分布的数
data(data(:) <  fai) = 0;
data(data(:) >= fai) = 1;

% 石头粒径
a = 2;    % 单位:厘米

% 将大矩阵分块,分成较多小矩阵

nx = floor(nex/a);
ny = floor(ney/a);
nz = floor(nez/a);

clear nex ney nez
% 开始循环,插空循环,将块体填充为0
for i = 1:2:nx
    nex = a*(i-1)+1:1:a*i;
    for j = 1:2:ny
        ney = a*(j-1)+1:1:a*j;
        for k = 1:2:nz
            nez = a*(k-1)+1:1:a*k;
            data(nex,ney,nez) = 1;
        end
    end
end
            
% 将数据转成int16格式
% data = int16(data);

[xx,yy,zz] = meshgrid(0.5:1:99.5,0.5:99.5,0.5:99.5);

figure(2);
set(gcf,'position',[200,200,800,600]);
xslice = [1:100];
yslice = [1:100];
zslice = [1:100];
slice(xx,yy,zz,data,xslice,yslice,zslice);
colormap('gray');
colorbar('eastoutside');
shading flat
alpha(0.5);
xlabel('x/cm');
ylabel('y/cm');
zlabel('z/cm');
box on


% b = reshape(data,100,100);
% contourf(b,1);
% colormap('gray');
% caxis([0,1]);
% colorbar
% axis equal
% xlabel('x/cm');
% ylabel('y/cm');
set(gca,'fontsize',16,'fontname','times new roman');

% 计算孔隙度(实际值)
clear a
a = find( data == 0);
b = size(a,1)/(100*100*1);

% 
% h5write(file_name,'/data',data);
% 
% h5writeatt(file_name,'/','dx_dy_dz',dx_dy_dz);
% 
% h5read(file_name,'/data');
% h5disp(file_name)
close all
clear
clc

% 此程序是写gprmax不规则形状的几何文件
% 利用矩阵分块,创建大颗粒石头
% 这是二维模型的h5文件写入

dx = 0.01;
dy = 0.01;
dz = 0.01;

dx_dy_dz = [dx,dy,dz];

nex = 100;
ney = 1;
nez = 100;

% 设置保存的文件名
% file_name = 'stestbig02.h5';

% 创建一个HDF5文件
% h5create(file_name,'/data',[nex ney nez]);

% 创建一个充满随机数的大矩阵
data = rand(nex,ney,nez);

% 设置孔隙度阈值
fai = 0.35;
% 将矩阵转化为 0 与 1 随机分布的数
data(data(:) <  fai) = 0;
data(data(:) >= fai) = 1;

% 石头粒径
a = 2;    % 单位:厘米

% 将大矩阵分块,分成较多小矩阵

nx = floor(nex/a);
ny = floor(ney/a);
nz = floor(nez/a);

clear nex ney nez
% 开始循环,插空循环,将块体填充为1
for i = 1:2:nx
    nex = a*(i-1)+1:1:a*i;
    for j = 1:2:ny
        ney = a*(j-1)+1:1:a*j;
        for k = 1:2:nz
            nez = a*(k-1)+1:1:a*k;
            data(nex,ney,nez) = 1;
        end
    end
end
            
% 将数据转成int16格式
data = int16(data);

b = reshape(data,100,100);
contourf(b,1);
colormap('gray');
caxis([0,1]);
colorbar
axis equal
xlabel('x/cm');
ylabel('y/cm');
set(gca,'fontsize',16,'fontname','times new roman');

% 计算孔隙度(实际值)
clear a
a = find( data == 0);
b = size(a,1)/(100*100*1);

% 
% h5write(file_name,'/data',data);
% 
% h5writeatt(file_name,'/','dx_dy_dz',dx_dy_dz);
% 
% h5read(file_name,'/data');
% h5disp(file_name)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/825583.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Baklib: 0代码的在线帮助中心

Baklib是一款0代码的在线帮助中心工具&#xff0c;旨在帮助企业和开发者快速搭建和管理自己的帮助中心。无需编写任何代码&#xff0c;只需几个简单的步骤&#xff0c;即可创建一个功能齐全、易于使用的在线帮助中心。Baklib提供了丰富的功能和灵活的定制选项&#xff0c;使用户…

关于迪文屏文本显示 字库生成

生成 30的字体 界面上显示 屏幕上文本控件的点阵数 为字库生成软件的 宽和高 30 30 字库软件的下载链接 三、汉字字库生成 百度网盘链接&#xff1a;百度网盘 请输入提取码 提取码&#xff1a;1o5t https://blog.csdn.net/qq_34118600/article/details/115469371

「如何优雅有效利用周末和下班时间?」

文章目录 每日一句正能量前言下班的时间规划周末的时间规划提升周末体验感的好方法怎样才能获得充分的休息后记 每日一句正能量 眼望古城街尽&#xff0c;心谱落愁无序&#xff0c;旧时的誓言&#xff0c;曾而相似&#xff0c;河水在遵循河道的指引下&#xff0c;在曲折前进中放…

通过Python调用禅道API

禅道API接口&#xff0c;非REST接口 调试版本&#xff1a;11.3 百度出来的100%都用不了&#xff08;本篇除外...&#xff09;。于是自己修改了网上代码&#xff0c;先get session&#xff0c;再post登录&#xff0c;最后调用产品列表验证&#xff0c;实测通过。 1 import req…

SAP 物料主数据 字段 配额安排 变化

ECC版本 字段‘配额安排’在物料主数据中&#xff0c;可选使用范围 S4新版本 字段‘配额安排’已经隐藏&#xff0c;后台字段去掉了&#xff0c;屏幕字段设置了不可见&#xff0c;系统默认选择了4

流程管理软件:优化工作流程的数字化解决方案

有这么多任务需要跟踪&#xff0c;一个优秀的工作流系统对于项目经理完成他们的工作至关重要。通过使用工作流软件&#xff0c;项目经理可以避免诸如浪费时间和资源、过度风险和损害最终结果等陷阱。他们可以放心&#xff0c;他们的工作将按照正确的顺序完成&#xff0c;并在此…

文件管理:按名称批量归类,简化整理任务!

在数字化时代&#xff0c;我们每天都会面对海量的文件&#xff0c;从文档、图片、视频到音频&#xff0c;各种各样的文件都在我们的电脑中汇聚。然而&#xff0c;你是否曾为找不到需要的文件而烦恼&#xff0c;或者为整理大量文件而头疼&#xff1f;为了帮助大家解决这些问题&a…

P3368 【模板】树状数组 2 (树状数组小进阶)(内附封面)

【模板】树状数组 2 题目描述 如题&#xff0c;已知一个数列&#xff0c;你需要进行下面两种操作&#xff1a; 将某区间每一个数加上 x x x&#xff1b; 求出某一个数的值。 输入格式 第一行包含两个整数 N N N、 M M M&#xff0c;分别表示该数列数字的个数和操作的总…

Jenkins 自动化部署实例讲解,另附安装教程!

【2023】Jenkins入门与安装_jenkins最新版本_丶重明的博客-CSDN博客 也可以结合这个互补看 前言 你平常在做自己的项目时&#xff0c;是否有过部署项目太麻烦的想法&#xff1f;如果你是单体项目&#xff0c;可能没什么感触&#xff0c;但如果你是微服务项目&#xff0c;相…

Vue-----package.json

前言 package.json是Node.js应用程序中的配置文件&#xff0c;它在Vue项目中同样非常重要。在Vue中&#xff0c; package.json文件包含了有关你的应用程序的重要信息&#xff0c;如版本号、依赖项、脚本等。 文件结构 package.json文件通常包含以下内容&#xff1a; {"n…

【Matter】基于Ubuntu 22.04 交叉编译chip-tool

编译工程之际&#xff0c;记录一下编译过程&#xff0c;免得后续遗忘&#xff0c;总结下来chip-tool 交叉编译涉及到的知识点&#xff1a; 需要了解如何支持交叉编译&#xff0c;基于GN编译框架需要理解应用库如何交叉编译&#xff0c;理解pkg-config的使用meson 编译&#xf…

Activiity跳转startActivity源码分析Activity启动流程(上)

1.Activity的startActivity 2.也是调用了Activity的startActivityForResult 3.实际还是startActivityForResult 带option的方法&#xff0c;只不过null传过去的 4.接着调用了 Instrumentation的execStartActivity方法 5.然后是IActivityManager的startActivity 6.IActivity…

WebDAV之π-Disk派盘 + Mountain Duck

Mountain Duck是来自国外的一款方便实用,功能强大的云存储空间本地管理工具。它可以帮助我们在windows电脑上将远程 FTP 空间、WebDAV、Swift、S3、Azure、Rackspace、Google Cloud 等云存储服务转入本地进行管理,使用任何应用程序即可打开远程文件,并在本地盘上工作。你可以…

CUDA_CHECK(cudaFree(...))报错CUDA error 1

GPT-3.5太好用了&#xff0c;报错情况如下&#xff1a; 总结一下, 在使用cudaFree释放之前cudaMalloc()分配的GPU内存时&#xff0c;报错cuda error,最有可能的几个原因就是&#xff1a; 试图释放已经释放的gpu内存&#xff0c;在调用cudafree&#xff08;&#xff09;时确保没…

小程序自定义tabBar+Vant weapp

1.构建npm&#xff0c;安装Vant weapp&#xff1a; 1&#xff09;根目录下 &#xff0c;初始化生成依赖文件package.json npm init -y 2&#xff09;安装vant # 通过 npm 安装 npm i vant/weapp -S --production 3&#xff09;修改 package.json 文件 开发者工具创建的项…

c++11 标准模板(STL)(std::basic_ifstream)(四)

定义于头文件 <fstream> template< class CharT, class Traits std::char_traits<CharT> > class basic_ifstream : public std::basic_istream<CharT, Traits> 类模板 basic_ifstream 实现文件流上的高层输入操作。它将 std::basic_istream…

linux学习笔记(2)----汇编LED灯实验

MX6ULL 的 IO IO的复用功能 这里的只使用了低五位&#xff0c;用来配置io口&#xff0c;其中bit0~bit3(MUX_MODE)就是设置 GPIO1_IO00 的复用功能的&#xff0c;GPIO1_IO00 一共可以复用为 9种功能 IO&#xff0c;分别对应 ALT0~ALT8。每种对应了不同的功能 io的属性配置 HY…

JDBC的书写

文章目录 基本概念操作数据库方式一&#xff08;不建议使用这种查询&#xff0c;可以sql注入&#xff09;读取properties文件 事务转账示例 获取id连接池 基本概念 持久化:把数据放在磁盘上&#xff0c;断电后还是有数据。使用execute 执行增删改返回false,查返回true 操作数…

map和set的使用(基于STL库)

前言 map和set是STL模板库中重要的关联式容器&#xff0c;与序列式容器不同的是&#xff0c;关联式容器里面存储的是<key,value>结构的键值对&#xff0c;在数据检索时比序列式容器效率更高。让我们一起来看看吧&#xff01; 目录 1.set 1.1键值对 1.2set的介绍 1.3set…

点击编辑变完成

<template><div><button click"dialogshowtrue">添加部门</button><div>部门列表</div><el-table ref"multipleTable" :data"form" tooltip-effect"dark" style"width: 100%">&l…