激光雷达俯仰角正态分布曲线预测合格率

news2026/3/21 22:18:10
激光雷达俯仰角正态分布曲线预测合格率一、前言二、说明三、整体架构流程四、技术细节与代码分析1. 数据读取与处理 (get_data 和 plotting_parameters)2. 正态分布参数计算 (mathematics)3. 正态分布曲线构建与可视化4. 合格率计算数值积分 (func 和 quad)五、结果演示与分析六、结论附完整代码摘要在激光雷达等精密传感器的生产与测试过程中俯仰角度的精度是衡量产品合格与否的关键指标之一。传统的合格率判定往往依赖于对大量样本数据进行简单的统计难以直观地反映数据的分布规律。本文介绍了一种基于正态分布模型的合格率预测方法。该方法通过Python编程从Excel文件中读取俯仰角测试数据计算出每组数据的均值μ和标准差σ进而拟合出其正态分布概率密度函数曲线。在此基础上利用数值积分方法计算曲线在合格范围±1°内的面积该面积即为预测的合格率。整个流程集成了数据读取、参数计算、曲线绘制与面积积分等模块最终以图形和数值的形式输出每组数据的合格率预测结果为产品质量评估提供了直观且定量的分析工具。一、前言在传感器制造领域产品的最终性能参数通常呈现一定的统计分布规律。激光雷达的俯仰角作为一项核心指标其测量值的分布往往趋近于正态分布。传统的合格率判定方式例如直接计算合格样本的比例虽然简单直接但受限于样本量且无法对分布的整体趋势进行预测。相比之下若能通过样本数据拟合出其理论分布曲线并计算合格范围内的理论概率不仅能更平滑地反映质量水平还能在小批量数据下对未来大批量生产的合格率进行预测。基于这一思路本文设计了一个Python脚本实现了从数据读取、正态分布参数计算到曲线绘制与合格率积分预测的全流程自动化。下文将对该方案的架构流程、核心代码实现以及最终结果进行详细解读。二、说明俯仰角数据如下合格范围±1°。三、整体架构流程该脚本的设计遵循模块化原则将不同功能的代码封装为独立的函数使得整个流程清晰易懂便于后续的维护与扩展。整体架构主要分为以下五个核心部分参数计算模块mathematics函数该模块负责核心的数学运算即计算输入数据数组的均值μ和标准差σ。这两个参数是后续构建正态分布曲线的基础。数据读取模块get_data函数负责与外部数据源交互。它使用xlrd库读取本地的 Excel 文件提取出所有的俯仰角数据列以及对应的列标题如“左前”、“右后”等方向标识。数据整合模块plotting_parameters函数作为数据处理的枢纽该函数调用get_data获取原始数据再调用mathematics为每一列数据计算其均值和标准差并将计算结果与原始数据的标题进行整合返回一个结构化的列表供主函数使用。积分函数定义模块func函数该模块定义了一个用于数值积分的函数其表达式为正态分布概率密度函数。由于积分过程需要用到全局的均值和标准差这里巧妙地利用了global关键字在函数内部访问主程序中定义的参数。主控与可视化模块main函数这是程序的入口点。它负责串联所有模块依次对每组数据每个方向执行以下操作从plotting_parameters获取该组数据的均值和标准差。使用numpy和matplotlib构建并绘制正态分布曲线。使用fill_between函数高亮显示合格范围±1°内的区域。调用scipy.integrate.quad函数结合func进行数值积分计算出该区域的面积即预测合格率。在图上添加文本说明并保存图片。流程图解程序从main函数启动首先调用plotting_parameters对 Excel 中的每一列数据进行预处理读取 - 计算均值/标准差然后将这些参数返回给main函数。main函数循环处理每一组参数完成绘图和积分计算最终输出结果。四、技术细节与代码分析下面我们将深入分析代码中的关键技术点并结合代码进行说明。1. 数据读取与处理 (get_data和plotting_parameters)使用xlrd读取 Excel 文件是常见的数据导入方式。get_data函数中table.row_values(0)获取了第一行的标题而table.col_values(i)[1:]则跳过了第一行的标题获取了从第二行开始的所有数值数据确保数据纯净。defget_data():# 导入需要读取的第一个Excel表格的路径data1xlrd.open_workbook(rD:\python_demo\数学运算\俯仰角数据.xlsx)tabledata1.sheets()[0]# 获取第一行的内容,索引从0开始rowtable.row_values(0)# 获取一共多少列colstable.ncols# 获取每一列的数据col_datas[]foriinrange(cols):# 获取每一列的数据并将第一个数据过滤col_datas.append(table.col_values(i)[1:])returncol_datas,rowplotting_parameters函数将读取和计算步骤串联起来返回一个列表列表中的每个元素都包含了[均值 标准差 方向名称]。这种数据结构非常便于在main函数中遍历处理。2. 正态分布参数计算 (mathematics)mathematics函数虽然简单但至关重要。这里特别需要注意的是标准差的计算方式。np.std(array, ddof1)中的ddof1表示计算的是样本标准差分母为 n-1这符合统计学中利用样本估计总体的场景使预测结果更加合理。defmathematics(array):arr_mean%.4f%np.mean(array)# 求均值arr_std%.4f%np.std(array,ddof1)# 求标准差returnarr_mean,arr_std3. 正态分布曲线构建与可视化在main函数中正态分布曲线的绘制使用了标准公式f ( x ) 1 σ 2 π e − ( x − μ ) 2 2 σ 2 f(x) \frac{1}{\sigma\sqrt{2\pi}} e^{-\frac{(x-\mu)^2}{2\sigma^2}}f(x)σ2π​1​e−2σ2(x−μ)2​其中sig代表方差即标准差的平方。代码中使用np.linspace生成了一个覆盖 μ ± 6σ 范围的 x 轴坐标这几乎涵盖了99.999%的数据范围保证了曲线的完整性。plt.fill_between函数通过where(x -1) (x 1)参数巧妙地只对合格范围内的区域进行颜色填充增强了可视化效果。xnp.linspace(u-6*sig,u6*sig,200)# 定义域ynp.exp(-(x-u)**2/(2*sig**2))/(math.sqrt(2*math.pi)*sig)# 定义曲线函数plt.plot(x,y,g,linewidth2,labelru{},σ{}.format(%.4f%u,%.4f%σ))# 画曲线plt.fill_between(x,y1y,y20,where(x-1)(x1),facecolorblue,alpha0.2)# 填充积分区域4. 合格率计算数值积分 (func和quad)合格率即曲线在合格范围 [-1°, 1°] 下的面积。这里使用了scipy.integrate.quad函数进行数值积分。该函数要求被积函数只能接受一个参数即 x。为了将均值 (μ) 和标准差 (σ) 传递给func代码使用了global u, sig声明使得func内部可以访问在main函数中定义的、代表当前处理数据组的均值和标准差。这种方式虽然简单但需要注意在循环中更新全局变量。# 定义全局变量以便在func中使用globalu,sigdeffunc(x):# 返回当前全局变量 u 和 sig 下的概率密度值returnmath.exp(-(x-u)**2/(2*sig**2))/(math.sqrt(2*math.pi)*sig)# 在main函数中调用积分fArea,errintegrate.quad(func,-1,1)print(Integral area:,fArea)quad函数返回两个值fArea是积分结果即合格率err是估计的绝对误差。最后通过plt.text将计算出的合格率以文本形式标注在图上使结果一目了然。五、结果演示与分析运行脚本后程序会为 Excel 中的每一列数据即每个方向的俯仰角数据生成一张图片并打印出对应的合格率。这些结果直观地展示了正态分布参数μ 和 σ对合格率的决定性影响均值越靠近0、标准差越小合格率越高。六、结论本文介绍了一种利用正态分布模型预测激光雷达俯仰角合格率的方法并给出了完整的 Python 代码实现。通过将原始数据拟合为正态分布曲线并计算合格范围内的曲线下面积该方法能够定量评估质量将合格率从一个简单的比例提升为一个基于理论分布的概率值更具预测性。直观诊断问题通过观察曲线和参数μ, σ可以快速判断质量问题的来源。例如均值偏移可能指向系统性误差如安装校准问题而标准差过大可能指向随机性误差如工艺稳定性问题。实现流程自动化该脚本能够批量处理 Excel 文件中的多组数据并自动生成图文并茂的报告大大提高了数据分析的效率。这种基于统计模型的质量分析方法不仅适用于激光雷达的俯仰角测试也可推广至其他具有正态分布特征的工业参数的质量评估中为智能制造中的数据驱动决策提供有力支持。附完整代码#!/usr/bin/env python# -*- coding: utf-8 -*-importnumpyasnpfrommatplotlibimportpyplotaspltimportmathfromscipyimportintegrateimportxlrd# todo 计算均值和标准差defmathematics(array):arr_mean%.4f%np.mean(array)# 求均值arr_std%.4f%np.std(array,ddof1)# 求标准差returnarr_mean,arr_std# todo 读取数据defget_data():# 导入需要读取的第一个Excel表格的路径data1xlrd.open_workbook(rD:\python_demo\数学运算\俯仰角数据.xlsx)tabledata1.sheets()[0]# 获取第一行的内容,索引从0开始rowtable.row_values(0)# 获取一共多少列colstable.ncols# 获取每一列的数据col_datas[]foriinrange(cols):# 获取每一列的数据并将第一个数据过滤col_datas.append(table.col_values(i)[1:])returncol_datas,row# todo 生成数学期望值、标准差、方向defplotting_parameters():value_list[]rowget_data()[1]foriinrange(len(row)):resultlist(mathematics(get_data()[0][i]))result.append(row[i])value_list.append(result)returnvalue_list# todo 使用quad()函数进行积分deffunc(x):print(x,x)# 用于展示quad()函数对func的多次调用returnmath.exp(-(x-u)**2/(2*sig**2))/(math.sqrt(2*math.pi)*sig)# todo 绘制图形并求积分defmain():globalu,sig# 输入数学期望值、标准差、方向value_listplotting_parameters()forvalueinvalue_list:ufloat(value[0])# 均值μσfloat(value[1])# 标准差δsigmath.sqrt(σ)# 方差xnp.linspace(u-6*sig,u6*sig,200)# 定义域ynp.exp(-(x-u)**2/(2*sig**2))/(math.sqrt(2*math.pi)*sig)# 定义曲线函数plt.axis([np.min(x),np.max(x),0,np.max(y)])# 坐标范围plt.plot(x,y,g,linewidth2,labelru{},σ{}.format(%.4f%u,%.4f%σ))# 画曲线带图示。保留四位小数plt.fill_between(x,y1y,y20,where(x-1)(x1),facecolorblue,alpha0.2)# 填充积分区域plt.text(1.6,0.5,r$f(x)\int_{-1}^1(\frac{1}{σ\sqrt{2\pi}}e^{-\frac{{(x-u)^2}}{2σ^2}})\mathrm{d}x$,horizontalalignmentcenter,fontsize14)# 增加说明文本# 求积分计算-1,1之间的概率# noinspection PyTupleAssignmentBalancefArea,errintegrate.quad(func,-1,1)print(Integral area:,fArea)plt.text(1.5,0.4,{}俯仰角合格率:{}.format(value[2],%.4f%fArea),horizontalalignmentcenter,fontpropertiesSimHei,fontsize10)# 增加说明文本plt.grid(True)# 网格线plt.legend(locupper right,fontsize10)# 标签位置plt.savefig(r.\{}俯仰角.png.format(value[2]),bbox_inchestight)# 保存为图片print(已保存“{}俯仰角.png”.format(value[2]))plt.show()if__name____main__:main()

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

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

相关文章

SpringBoot-17-MyBatis动态SQL标签之常用标签

文章目录 1 代码1.1 实体User.java1.2 接口UserMapper.java1.3 映射UserMapper.xml1.3.1 标签if1.3.2 标签if和where1.3.3 标签choose和when和otherwise1.4 UserController.java2 常用动态SQL标签2.1 标签set2.1.1 UserMapper.java2.1.2 UserMapper.xml2.1.3 UserController.ja…

wordpress后台更新后 前端没变化的解决方法

使用siteground主机的wordpress网站,会出现更新了网站内容和修改了php模板文件、js文件、css文件、图片文件后,网站没有变化的情况。 不熟悉siteground主机的新手,遇到这个问题,就很抓狂,明明是哪都没操作错误&#x…

网络编程(Modbus进阶)

思维导图 Modbus RTU(先学一点理论) 概念 Modbus RTU 是工业自动化领域 最广泛应用的串行通信协议,由 Modicon 公司(现施耐德电气)于 1979 年推出。它以 高效率、强健性、易实现的特点成为工业控制系统的通信标准。 包…

UE5 学习系列(二)用户操作界面及介绍

这篇博客是 UE5 学习系列博客的第二篇,在第一篇的基础上展开这篇内容。博客参考的 B 站视频资料和第一篇的链接如下: 【Note】:如果你已经完成安装等操作,可以只执行第一篇博客中 2. 新建一个空白游戏项目 章节操作,重…

IDEA运行Tomcat出现乱码问题解决汇总

最近正值期末周,有很多同学在写期末Java web作业时,运行tomcat出现乱码问题,经过多次解决与研究,我做了如下整理: 原因: IDEA本身编码与tomcat的编码与Windows编码不同导致,Windows 系统控制台…

利用最小二乘法找圆心和半径

#include <iostream> #include <vector> #include <cmath> #include <Eigen/Dense> // 需安装Eigen库用于矩阵运算 // 定义点结构 struct Point { double x, y; Point(double x_, double y_) : x(x_), y(y_) {} }; // 最小二乘法求圆心和半径 …

使用docker在3台服务器上搭建基于redis 6.x的一主两从三台均是哨兵模式

一、环境及版本说明 如果服务器已经安装了docker,则忽略此步骤,如果没有安装,则可以按照一下方式安装: 1. 在线安装(有互联网环境): 请看我这篇文章 传送阵>> 点我查看 2. 离线安装(内网环境):请看我这篇文章 传送阵>> 点我查看 说明&#xff1a;假设每台服务器已…

XML Group端口详解

在XML数据映射过程中&#xff0c;经常需要对数据进行分组聚合操作。例如&#xff0c;当处理包含多个物料明细的XML文件时&#xff0c;可能需要将相同物料号的明细归为一组&#xff0c;或对相同物料号的数量进行求和计算。传统实现方式通常需要编写脚本代码&#xff0c;增加了开…

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器的上位机配置操作说明

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器专为工业环境精心打造&#xff0c;完美适配AGV和无人叉车。同时&#xff0c;集成以太网与语音合成技术&#xff0c;为各类高级系统&#xff08;如MES、调度系统、库位管理、立库等&#xff09;提供高效便捷的语音交互体验。 L…

(LeetCode 每日一题) 3442. 奇偶频次间的最大差值 I (哈希、字符串)

题目&#xff1a;3442. 奇偶频次间的最大差值 I 思路 &#xff1a;哈希&#xff0c;时间复杂度0(n)。 用哈希表来记录每个字符串中字符的分布情况&#xff0c;哈希表这里用数组即可实现。 C版本&#xff1a; class Solution { public:int maxDifference(string s) {int a[26]…

【大模型RAG】拍照搜题技术架构速览:三层管道、两级检索、兜底大模型

摘要 拍照搜题系统采用“三层管道&#xff08;多模态 OCR → 语义检索 → 答案渲染&#xff09;、两级检索&#xff08;倒排 BM25 向量 HNSW&#xff09;并以大语言模型兜底”的整体框架&#xff1a; 多模态 OCR 层 将题目图片经过超分、去噪、倾斜校正后&#xff0c;分别用…

【Axure高保真原型】引导弹窗

今天和大家中分享引导弹窗的原型模板&#xff0c;载入页面后&#xff0c;会显示引导弹窗&#xff0c;适用于引导用户使用页面&#xff0c;点击完成后&#xff0c;会显示下一个引导弹窗&#xff0c;直至最后一个引导弹窗完成后进入首页。具体效果可以点击下方视频观看或打开下方…

接口测试中缓存处理策略

在接口测试中&#xff0c;缓存处理策略是一个关键环节&#xff0c;直接影响测试结果的准确性和可靠性。合理的缓存处理策略能够确保测试环境的一致性&#xff0c;避免因缓存数据导致的测试偏差。以下是接口测试中常见的缓存处理策略及其详细说明&#xff1a; 一、缓存处理的核…

龙虎榜——20250610

上证指数放量收阴线&#xff0c;个股多数下跌&#xff0c;盘中受消息影响大幅波动。 深证指数放量收阴线形成顶分型&#xff0c;指数短线有调整的需求&#xff0c;大概需要一两天。 2025年6月10日龙虎榜行业方向分析 1. 金融科技 代表标的&#xff1a;御银股份、雄帝科技 驱动…

观成科技:隐蔽隧道工具Ligolo-ng加密流量分析

1.工具介绍 Ligolo-ng是一款由go编写的高效隧道工具&#xff0c;该工具基于TUN接口实现其功能&#xff0c;利用反向TCP/TLS连接建立一条隐蔽的通信信道&#xff0c;支持使用Let’s Encrypt自动生成证书。Ligolo-ng的通信隐蔽性体现在其支持多种连接方式&#xff0c;适应复杂网…

铭豹扩展坞 USB转网口 突然无法识别解决方法

当 USB 转网口扩展坞在一台笔记本上无法识别,但在其他电脑上正常工作时,问题通常出在笔记本自身或其与扩展坞的兼容性上。以下是系统化的定位思路和排查步骤,帮助你快速找到故障原因: 背景: 一个M-pard(铭豹)扩展坞的网卡突然无法识别了,扩展出来的三个USB接口正常。…

未来机器人的大脑:如何用神经网络模拟器实现更智能的决策?

编辑&#xff1a;陈萍萍的公主一点人工一点智能 未来机器人的大脑&#xff1a;如何用神经网络模拟器实现更智能的决策&#xff1f;RWM通过双自回归机制有效解决了复合误差、部分可观测性和随机动力学等关键挑战&#xff0c;在不依赖领域特定归纳偏见的条件下实现了卓越的预测准…

Linux应用开发之网络套接字编程(实例篇)

服务端与客户端单连接 服务端代码 #include <sys/socket.h> #include <sys/types.h> #include <netinet/in.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <arpa/inet.h> #include <pthread.h> …

华为云AI开发平台ModelArts

华为云ModelArts&#xff1a;重塑AI开发流程的“智能引擎”与“创新加速器”&#xff01; 在人工智能浪潮席卷全球的2025年&#xff0c;企业拥抱AI的意愿空前高涨&#xff0c;但技术门槛高、流程复杂、资源投入巨大的现实&#xff0c;却让许多创新构想止步于实验室。数据科学家…

深度学习在微纳光子学中的应用

深度学习在微纳光子学中的主要应用方向 深度学习与微纳光子学的结合主要集中在以下几个方向&#xff1a; 逆向设计 通过神经网络快速预测微纳结构的光学响应&#xff0c;替代传统耗时的数值模拟方法。例如设计超表面、光子晶体等结构。 特征提取与优化 从复杂的光学数据中自…