当前位置: 首页 > news >正文

振南技术干货集:比萨斜塔要倒了,倾斜传感器快来!(2)

注解目录

1、倾斜传感器的那些基础干货

1.1 典型应用场景

(危楼、边坡、古建筑都是对倾斜敏感的。)

1.2 倾斜传感器的原理

1.2.1 滚珠式倾斜开关

1.2.2 加速度式倾斜传感器

1)直接输出倾角

2)加速度计算倾角

3)倾角精度的提高

(如果没看懂,振南教你个好办法:再看一遍。)

2、倾斜传感器温漂校准的基础知识

2.1 温漂产生的根源

(万物皆受温度影响。振南给你讲讲“调皮的尺子”。)

2.2 温漂的真实例子

(某项目的奇怪现象,一到中午数据就乱跳。亮一下壮观而精密的自动化校准装置。)

3、静态温控的实现与温补装置的迭代

3.1 制冷原理

(振南告诉你如何对传感器温漂校准。温度控制不难,但是不允许有振动,你作得到吗?)

3.2 静态温度控制

3.2.1 TEC 制冷

3.2.2 散热方案

3.2.3 倾角温补校准装置设计方案

3.2.4 多级 TEC 制冷

3.2.5 物理制冷

3.2.6 半导体制热

3.2.7 温控策略

3.2.8 多路温度的同步控制

(如何安静的制冷?TEC 及阵列、水冷、干冰、铝注冷技术、PTC、保温材料、比热容、热阻,还有温控算法,这些你应该了解一下。)

4、倾角校准与数据拟合

4.1 倾角校准装置的构成

4.2 倾角温补校准与数据拟合

4.3 分段校准的质疑

(多阶拟合算法,还有开源的 Polyfit 方案。来看看最终效果:温度乱舞,传感器却无波动。)

5、其它细节

5.1 真值的读取

5.2 规避震动干扰

5.3 克服地面不平问题

5.4 减震设计

(万事的成败在于细节。)

倾斜传感器温漂校准的基础知识

2.1 温漂产生的根源


我们知道任何物体都会或多或少的受到温度变化的影响,比如最普遍的热胀冷缩。传感器是基于物理材料制成的,所以从严格意义上来说,任何传感器都会产生温漂,即反映实际物理量的值随着温度变化而产生漂移。

关于传感器的温漂,我曾经做过一个讲座,名为《大话温补与温控》,算是把“温漂”比较通俗地进行了阐述,下面是讲座的一些核心内容。

个例子:《调皮的尺子》。

我们用尺子去测量长度,你量得准或是不准,真值就在那里,不长不短。但是在不同的温度下。尺子的示数可能是不同的,因为尺子会热胀冷缩,如图 16.6 所示。


图16.6 温度的变化使得尺子对长度测不准

也许你会说,这点温漂几乎可以忽略不计吧。确实,如果你的精度要求不高,温漂是可以无视的。但是很多应用场合下较得就是这个真儿,差一丝都不行。比如建筑物或边坡的倾斜,其实它们的倾斜量都是非常微小的,1年顶多倾斜0.1,但是如果倾斜传感器的温漂误差就有 0.几°,那基本上就把真值淹没了。

既然有温漂的存在,那我们如何能把物理量采准呢?

“调皮的尺子”有它的规律:每当-25C时,我们用它去测量 1000 um 的距离一定会示数 1003.1 um。所以,当我们看到 1 003.1 um 时,我们就知道实际是 1 000 pm(-25C)了。

那就出现一个问题:-25C时,测量 2 000 um 的距离,它会示数多少? 2 003.1 um? 2 006.2 um?都不是!因为在此温度下尺子的刻度变化可能是非线性的,不能依比例推算。那怎么办呢?

最笨的方法:在某一个温度下,我们记录下每个距离和与之对应的尺子示数,形成表格。以后测量的时候,拿着当前温度和尺子示数,去表里查它所对应的实际值是多少,如图 16.7 所示。


图16.7 各温度下示数与实际值的对应表

方法很简单,但是要编制这个表却不容易。

2.2 温漂的真实例子


当时,讲座讲到这里.有人问了一个问题.“就说倾斜传感器,温漂能对它产生多大的影响?举实际例子说一下。”我现场登录公司的 IOT 平台,找了几个实际项目在用的倾斜传感器,如图 16.8 所示。


图16.8 倾斜传感器在每天特定时间段产生尖峰

上图中的 3 个领斜传感器都是实际安装在平地上的,用于监测边坡地灾。每天在中午都会产生尖峰,这个波动范围大约是 0.0 几。难道说每天一到中午平地就会有微震?这显然是不符合逻辑的,其根本原因就是温漂。

现场有人进行了反驳,从 IoT 平台上找到了几个中午时段没有尖峰的例子

“请给我解释一下?”

“这些传感器应该没有被太阳直晒吧?有树荫遮着?”

项目总监此时说:“确实,这几处传感器都在林子里,上面有波动的传感器是直晒的。”

这下大家信服了。

项目上使用的倾斜传感器很明显是没有经过温漂校准的(也叫温度补偿,简称温补)。我们多么希望传感器不受温度等外界因素的影响,而直接输出稳定、可信、真实的示数啊!这就是我们追求的“理想传感器”。谁的产品越接近理想传感器,谁就越具有竞争力。

我们将上面所说的这张表内置到传感器中,使其输出依温度与原始示数查表之后的值传感器即向所谓的“理想传感器”迈进了一大步。

这张表是很庞大的,靠人工编制效率极低。我们要寻求更高效的方案,最好是无人参与的、全自动化的,如图 16.9 所示。


图16.9 北微倾斜传感器的自动化校准装置

北微传感的这套倾角自动化校准装置是委托中航工业研制的,用我们项目总监的话说“高品质产品的背后一定需要有雄厚的工业基础,我们简直就是小米加步枪。”

OK,终于引出了“倾角自动化校准装置”,振南研究倾斜传感器的近 1 年的时间,其实主要精力就在这套东西上,它是倾斜传感器达到真正意义上的高精度的核心。

相关文章:

振南技术干货集:比萨斜塔要倒了,倾斜传感器快来!(2)

注解目录 1、倾斜传感器的那些基础干货 1.1 典型应用场景 (危楼、边坡、古建筑都是对倾斜敏感的。) 1.2 倾斜传感器的原理 1.2.1 滚珠式倾斜开关 1.2.2 加速度式倾斜传感器 1)直接输出倾角 2)加速度计算倾角 3)倾角精度的提高 (如果…...

图形学 -- Geometry几何

隐式 implicit 基于给点归类,满足某些关系的点 缺点:不规则表面难以描述! algebraic surface 直接用数学公式表示:不直观! Constructive Solid Geometry(CSG) 用简单形状进行加减 distance …...

opencv中边缘检测的方法

在OpenCV中,边缘检测的方法主要有以下几种: Sobel算子: Sobel算子是边检测器,它使用33内核来检测水平边和垂直边。Sobel算子有两个,一个是检测水平边缘的,另一个是检测垂直边缘的。在OpenCV中,…...

DigitalVirt 洛杉矶 CMIN2 VPS 测评

发布于 2023-07-16 在 https://chenhaotian.top/vps/digitalvirt-us-cmin2/ 官网链接(含AFF):https://digitalvirt.com/aff.php?aff459 美国西海岸 四网回程 CMIN2 移动新线路。 晚高峰延迟 165ms 左右,不丢包,非常…...

Qt DragDrop拖动与放置

本文章从属于 Qt实验室-CSDN博客系列 拖放操作包括两个动作:拖动(drag)和放下(drop或称为放置)。 拖动允许 对于要拖出的窗口或控件,要setDragEnabled(true) 对于要拖入的窗口或控件,要setAcceptDrops(true) 下面以一个具体的用例进行说…...

thinkphp8 多级控制器调用

在使用这个目录的时候正常访问时 http://tp.com/index.php/user2.login/index, 这个多级目录时不允许使用的,想要使用就的使用路由 在route/app.php 里面配置:Route::get(user2/login,user2.Login/index); 第一个参数时外部访问参数,第二个是…...

设计测试用例的6种基本原则

设计测试用例的基本原则,对于软件测试非常重要,这些原则有助于设计出高质量、全面、有效的测试用例,从而提高软件测试的效率和准确性,维护软件的质量和稳定。如果在设计用例时没有遵循基本原则,这会影响用例的全面性、…...

java的Exception.getMessage为null

之前捕获异常后调用异常的getMessage写日志,日志写的竟然是null,不可思议。发现要调用异常的getCause().getMessage()才能得到异常信息 刻意把密码改错,让异常直达界面,免得有问题时候只能猜...

EXTI (2)

增强版实验简介 EXTI5和EXTI9共享一个中断源 下面的类似 EXTI0到4各自拥有一个中断源 改变引脚 PA0和PA1改变为PA5 和PA6 EXTI的重映射 之前是把PA0映射到EXTI0 PA1映射到EXTI1上 现在是要把PA5和PA6分别映射到EXTI5和6上 EXTI进行初始化 NVIC初始化 编写中断函数 因为EXTI…...

Django实战项目-学习任务系统-任务完成率统计

接着上期代码内容,继续完善优化系统功能。 本次增加任务完成率统计功能,为更好的了解哪些任务完成率高,哪些任务完成率低。 该功能完成后,学习任务系统1.0版本就基本完成了。 1,编辑urls配置文件: ./mysi…...

安卓调用手机邮箱应用发送邮件

先来看看实现效果&#xff1a; 也不过多介绍了&#xff0c;直接上代码&#xff1a; private void openMail() {Uri uri Uri.parse("mailto:" "");List<ApplicationInfo> applicationInfoList getPackageManager().getInstalledApplications(Packa…...

Vue-Pinia

目录 Pinia状态管理库 使用步骤 1、安装Pinia 2、在vue应用实例中使用pinia 3、在src/stores/token.js中定义stores 4、在组件中使用store axios请求拦截器 代码实现 Pinia状态管理库 Pinia是Vue的专属状态管理库&#xff0c;它允许你跨组件或页面共享状态 一般在登录时…...

C语言,编写程序输出半径为1到15的圆的面积,若面积在30到100之间则予以输出,否则,不予输出

以下是一个使用C语言编写的程序&#xff0c;用于输出半径为1到15的圆的面积&#xff0c;并且如果面积在30到100之间&#xff0c;则输出该圆的半径和面积。 #include <stdio.h> #define PI 3.14159265358979323846int main() {int radius;double area;for (radius 1; ra…...

Ansys Electronics Desktop仿真——HFSS线圈寄生电阻,电感

利用ANSYS Electronics Desktop&#xff0c;可在综合全面、易于使用的设计平台中集成严格的电磁场分析和系统电路仿真。按需求解器技术让您能集成电磁场仿真器和电路及系统级仿真&#xff0c;以探索完整的系统性能。 HFSS&#xff08;High Frequency Structure Simulator&#…...

对数据库密码使用MD5加密算法加密,并进行登录验证

实现步骤&#xff1a; 修改数据库中明文密码&#xff0c;改为MD5加密后的密文 打开employee表&#xff0c;修改密码 修改Java代码&#xff0c;前端提交的密码进行MD5加密后再跟数据库中密码比对 打开EmployeeServiceImpl.java&#xff0c;修改比对密码 /*** 员工登录** param …...

关于Chrome中F12调试Console输入多行

在chrome 浏览器中使用console调试的时&#xff0c;如果想在console中输入多行代码&#xff0c;需要进行换行。 这时我们可以使用 [ Shift Enter ] 。也叫&#xff1a; 软回车。...

C# 集合用法介绍

在C#中&#xff0c;集合是一种特殊的数据类型&#xff0c;允许我们将多个元素组织在一起。这些元素可以是相同的类型或者可以是不同的类型。C#集合主要包括以下几种类型&#xff1a; List&#xff1a;它是一个有序的元素列表&#xff0c;用户可以添加、删除或查找元素。Dictio…...

linux三次握手、四次挥手

TCP协议是一个安全的、面向连接的、流式传输协议&#xff0c;所谓的面向连接就是三次握手&#xff0c;对于程序猿来说只需要在客户端调用connect()函数&#xff0c;三次握手就自动进行了。先通过下图看一下TCP协议的格式&#xff0c;然后再介绍三次握手的具体流程。 1.tcp协议…...

C# 泛型介绍

C# 中的泛型&#xff08;Generics&#xff09;是一种强类型参数化的特性&#xff0c;它允许你编写不具体指定数据类型的代码&#xff0c;而在实际使用时再指定具体的类型。泛型的引入使得代码更加灵活、可重用&#xff0c;并提高了类型安全性。 C#泛型基本用法 以下是一个简单…...

Windows如何正确设置PHP环境变量以在Git Bash中运行命令

1、随便找一个目录&#xff0c;鼠标右键打开git bash here 2、cd的根目录 3、找到php安装目录 4、 在根目录下打开 vim .bash_profile &#xff0c;添加环境变量&#xff0c;php地址根据自己的本地地址而定 PATH$PATH:/d/phpstudy_pro/Extensions/php/php7.3.4nts 添加后保存…...

深入浅出Asp.Net Core MVC应用开发系列-AspNetCore中的日志记录

ASP.NET Core 是一个跨平台的开源框架&#xff0c;用于在 Windows、macOS 或 Linux 上生成基于云的新式 Web 应用。 ASP.NET Core 中的日志记录 .NET 通过 ILogger API 支持高性能结构化日志记录&#xff0c;以帮助监视应用程序行为和诊断问题。 可以通过配置不同的记录提供程…...

C++实现分布式网络通信框架RPC(3)--rpc调用端

目录 一、前言 二、UserServiceRpc_Stub 三、 CallMethod方法的重写 头文件 实现 四、rpc调用端的调用 实现 五、 google::protobuf::RpcController *controller 头文件 实现 六、总结 一、前言 在前边的文章中&#xff0c;我们已经大致实现了rpc服务端的各项功能代…...

K8S认证|CKS题库+答案| 11. AppArmor

目录 11. AppArmor 免费获取并激活 CKA_v1.31_模拟系统 题目 开始操作&#xff1a; 1&#xff09;、切换集群 2&#xff09;、切换节点 3&#xff09;、切换到 apparmor 的目录 4&#xff09;、执行 apparmor 策略模块 5&#xff09;、修改 pod 文件 6&#xff09;、…...

day52 ResNet18 CBAM

在深度学习的旅程中&#xff0c;我们不断探索如何提升模型的性能。今天&#xff0c;我将分享我在 ResNet18 模型中插入 CBAM&#xff08;Convolutional Block Attention Module&#xff09;模块&#xff0c;并采用分阶段微调策略的实践过程。通过这个过程&#xff0c;我不仅提升…...

通过Wrangler CLI在worker中创建数据库和表

官方使用文档&#xff1a;Getting started Cloudflare D1 docs 创建数据库 在命令行中执行完成之后&#xff0c;会在本地和远程创建数据库&#xff1a; npx wranglerlatest d1 create prod-d1-tutorial 在cf中就可以看到数据库&#xff1a; 现在&#xff0c;您的Cloudfla…...

相机从app启动流程

一、流程框架图 二、具体流程分析 1、得到cameralist和对应的静态信息 目录如下: 重点代码分析: 启动相机前,先要通过getCameraIdList获取camera的个数以及id,然后可以通过getCameraCharacteristics获取对应id camera的capabilities(静态信息)进行一些openCamera前的…...

【OSG学习笔记】Day 16: 骨骼动画与蒙皮(osgAnimation)

骨骼动画基础 骨骼动画是 3D 计算机图形中常用的技术&#xff0c;它通过以下两个主要组件实现角色动画。 骨骼系统 (Skeleton)&#xff1a;由层级结构的骨头组成&#xff0c;类似于人体骨骼蒙皮 (Mesh Skinning)&#xff1a;将模型网格顶点绑定到骨骼上&#xff0c;使骨骼移动…...

MySQL中【正则表达式】用法

MySQL 中正则表达式通过 REGEXP 或 RLIKE 操作符实现&#xff08;两者等价&#xff09;&#xff0c;用于在 WHERE 子句中进行复杂的字符串模式匹配。以下是核心用法和示例&#xff1a; 一、基础语法 SELECT column_name FROM table_name WHERE column_name REGEXP pattern; …...

Linux nano命令的基本使用

参考资料 GNU nanoを使いこなすnano基础 目录 一. 简介二. 文件打开2.1 普通方式打开文件2.2 只读方式打开文件 三. 文件查看3.1 打开文件时&#xff0c;显示行号3.2 翻页查看 四. 文件编辑4.1 Ctrl K 复制 和 Ctrl U 粘贴4.2 Alt/Esc U 撤回 五. 文件保存与退出5.1 Ctrl …...

uniapp 字符包含的相关方法

在uniapp中&#xff0c;如果你想检查一个字符串是否包含另一个子字符串&#xff0c;你可以使用JavaScript中的includes()方法或者indexOf()方法。这两种方法都可以达到目的&#xff0c;但它们在处理方式和返回值上有所不同。 使用includes()方法 includes()方法用于判断一个字…...