首页 > 编程语言 >Python路面平整度检测车辆数据——速度修正

Python路面平整度检测车辆数据——速度修正

时间:2023-01-12 23:24:03浏览次数:71  
标签:RMS 平整度 Python 检测 路面 车辆 速度 路段 数据

全文链接:http://tecdat.cn/?p=31268

原文出处:拓端数据部落公众号

分析师:Bohao Zhan

目前主流的轻量化路面平整度检测技术方案为:使用车载加速度传感器采集车辆在路面上行驶时的竖向振动数据,并按照每100米计算竖向振动数据统计指标:均方根值RMS,并建立RMS与路面平整度指标:IRI之间的回归模型。检测前需要将车辆行驶至标准路段(即已知IRI真值的路段)上来回行驶对传感器进行标定,完成标定后驾驶车辆前往待检测路段进行平整度检测。

目前该技术方案的难点在于,对于同一IRI值的路面,若驾驶同一车辆以不同的行驶速度驶过,测得的振动数据统计指标也会不同,即车辆行驶速度是影响检测结果的主要因素之一。在标定工作中,车辆会被要求已恒定速度行驶进行标定,而实际测量时,车辆的速度往往会随道路交通状况、路况、天气等因素无法维持恒定的速度,导致车辆在检测过程中时的车辆行驶速度时快时慢,严重影响检测结果精度。因此,对检测数据结果进行速度修正(即将车辆某一检测速度下的测量值转换成当量速度下的测量值),是一件急迫且必需的事情。

解决方案

任务目标

基于不同车速下的平整度检测车辆振动数据结果,探究车速与检测结果之间的关系,根据此关系进行速度修正,将不同车速下的检测结果转换成当量速度下的检测结果。

使用到的工具 / 语言

Matlab、Python、Mysql、Navicat。

数据 获取

平整度检测车辆每天会在上海外环高速固定某一路段上进行检测,检测数据(包括振动加速度数据、GPS定位数据、图像数据等)会定时上传至数据库内,需要从数据库中将检测数据批量下载至本地进行分析,其中,需要下载的数据表包括acc表、gps表、stake_info表。

image.png

图1 MySQL数据库中数据

image.png

(a)

image.png

(b)

图2 从数据库抓取数据Python脚本(部分)

编写python脚本从数据库中抓取指定时间的数据,脚本中包括部分mysql语句用于筛选数据。使用表关联命令将acc与gps表以时间为key关联起来,并保存至本地。共从数据库中抓取57天检测数据用于后续分析。

数据清洗

将57天车辆轨迹散点(红)画于图中,同时标注待检测路段桩号点(蓝),发现检测车辆并不是完全按照预定路线进行检测,有诸多路段是多检路段,将影响后续计算结果。将相邻桩号点连接形成若干个线段。对于车辆每一个轨迹散点,找到离该点最近的桩号线段,并计算该点到桩号线段的距离,设定阈值,将阈值外的轨迹散点剔除,保留阈值范围内轨迹散点(蓝)。

aHR0cHM6Ly9rZXZpbnRzaG9lbWFrZXIuZ2l0aHViLmlvL05SRVMtNzQ2L0xFQ1RVUkU3X2ZpbGVzL2ZpZ3VyZS1odG1sL3VubmFtZWQtY2h1bmstMTYtMS5wbmc.png 图3 检测车辆轨迹散点与桩号点

(横坐标:经度,纵坐标:纬度)

此外,还包括的数据预处理包括加速度数据去均值与车辆轨迹散点桩号重计算。对车辆每一个轨迹散点的桩号进行修正。

数据处理与分析

对于每一天的车辆轨迹数据,按照上述方法进行数据清洗,从桩号起点至桩号终点,每100米划分小路段并编号,选出该路段范围内的加速度数据并计算统计指标RMS。计算第k天数据后将结果表格与第k+1天结果表格按照小路段编号进行关联。得到各小路段在不同天下车辆的检测数据,且每一天的车辆行驶速度均是不同的,也就得到了对于同一路段(即相同IRI值路面),不同车辆行驶速度下的振动数据统计指标。将两者散点画于图中,不同路段部分结果如下所示。

image.png

image.png

image.png

(c)

图4 速度与RMS散点图

(横坐标:速度(km/h)、纵坐标:RMS)

建立模型

从每一路段速度与RMS散点图中可看出二者之间存在较强的线性关系,建立两者之间线性模型,所有路段散点图与线性拟合结果如下图所示。从图中可看出不同IRI值路面,检测车辆速度与检测结果统计指标RMS均存在较强的线性关系,对于不同的IRI值路面,其表现出线性的斜率不同。从下图中可看出所有直线的截距虽然主要集中于0~0.1范围内,但仍表现较为分散。按照常理,对于不同IRI值路面,当测量速度为0时,此时车辆振动仅由车辆发动机提供,因此表现出的统计指标RMS应当为同一值。分析原因,认为由于外环道路等级为高速公路,故数据中低速样本较少所致。

image.png

图5 速度-RMS散点图与拟合直线

(横坐标:速度(km/h)、纵坐标:RMS)

模型优化

统计每一条直线截距值,画出其分布直方图(图6),发现截距在0.05至0.1区间内频率最高,取频率最高值0.07作为所有直线的共同截距,重新对各条路段数据进行线性拟合,拟合结果如图7所示。

image.png

图6 拟合直线截距分布直方图

image.png

图7 改进后的拟合结果

得出平整度检测车辆检测结果速度修正方案,对于每一条路段在不同车辆速度下的振动数据统计指标RMS,减去同一截距0.07。取当量速度为70km/h,按照各路段线性拟合直线斜率将不同速度下的检测结果修正至70km/h速度下的检测值。

关于作者

image.png

在此对Bohao Zhan对本文所作的贡献表示诚挚感谢,他在同济大学完成了控制工程硕士学位,擅长数据采集、数据分析。


QQ截图20220925222713.png 最受欢迎的见解

1.R语言多元Logistic逻辑回归 应用案例

2.面板平滑转移回归(PSTR)分析案例实现

3.matlab中的偏最小二乘回归(PLSR)和主成分回归(PCR)

4.R语言泊松Poisson回归模型分析案例

5.R语言混合效应逻辑回归Logistic模型分析肺癌

6.r语言中对LASSO回归,Ridge岭回归和Elastic Net模型实现

7.R语言逻辑回归、Naive Bayes贝叶斯、决策树、随机森林算法预测心脏病

8.python用线性回归预测股票价格

9.R语言用逻辑回归、决策树和随机森林对信贷数据集进行分类预测

标签:RMS,平整度,Python,检测,路面,车辆,速度,路段,数据
From: https://www.cnblogs.com/tecdat/p/17048236.html

相关文章

  • Pycharm中没有显示miniconda刚创建好的Python2.7的测试环境
    目录​​前言​​​​问题描述​​​​解决​​​​结语​​前言Hello!非常感谢您阅读海轰的文章,倘若文中有错误的地方,欢迎您指出~ 自我介绍ଘ(੭ˊᵕˋ)੭昵称:海轰标......
  • python代码如何打包成exe文件
    引言:有时候,别人使用我们代码的时候,不太会安装所需要的IDE或者本地没有IDE(环境),这时候就需要将我们的代码打包成不依赖于外界环境的可执行程序,即.exe文件。那么,该如何将Pyth......
  • Python实现希尔排序、快速排序、归并排序
    快速排序快速排序(英语:Quicksort),又称划分交换排序(partition-exchangesort),通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都......
  • 【Python】批量创建/读取变量
    目录​​简介​​​​问题场景​​​​解决​​​​结语​​简介Hello!非常感谢您阅读海轰的文章,倘若文中有错误的地方,欢迎您指出~ ଘ(੭ˊᵕˋ)੭昵称:海轰标签:程序猿|C++......
  • python 远端url转成文本对象上传AWS
    上传文件到AWS及其他资源池defupload_initial_avatar(recruiter,image_object):try:file_path=recruiter.avatar_dir_path(image_object.name.split(......
  • Ubuntu使用源码安装Python3方法及步骤
    之前使用CentOS安装Python3基本上按照步骤就可以,但Ubuntu上安装Python3还是有挺多问题。本文主要总结介绍一下Ubuntu使用源码安装Python3方法及步骤。原文地址:Ubuntu使用......
  • Python八荣八耻
    以动手实践为荣,以只看不练为耻。 以打印日志为荣,以单步跟踪为耻。 以空白分隔为荣,以制表分隔为耻。 以单元测试为荣,以手工测试为耻。 以代码重用为荣,以复制粘贴为......
  • python删除目录下指定格式的所有文件
    python3.9的环境:#encoding:UTF-8importosfrompathlibimportPath#删除指定文件夹中所有的指定类型的文件或者指定文件p=Path(r'D:\360CC\images')#这里不得不感慨,P......
  • python删除目录及其子目录的所有文件
    python3.9的环境:importosimportsysimportshutilfrompathlibimportPathdefdel_file(filepath):del_list=os.listdir(filepath)forfindel_list:f......
  • python | base64隐写
    python|base64隐写闲得无聊写了一个base64隐写库。叫b64steg安装直接pipinstallb64steg即可。项目地址:https://github.com/Mz1z/b64steg......