【87】四点应变片称重设备

发布时间:2026/10/24 2:18:01

【87】四点应变片称重设备 1 引言本blog记录了四点式悬挂称重设备开发过程中的一些内容在写中总结在写中分析亦便于日后的回顾和复习。2 滤波器2.1 一阶低通滤波2.1.1 概念一阶低通滤波器目的是将截止频率以内的信号无衰减通过高于截止频率的信号被阻断产生衰减。上述Hs是一阶低通滤波器的传递函数。2.1.2 电路一阶低通滤波器如下展示为最常见的RC一阶低通滤波器。其传递函数如下对比标准传递函数公式可得因此可根据截止频率fc来设计RC得值。2.1.3 数字一阶低通滤波器如下是一阶低通滤波器模型。下图展示了经过一阶低通滤波后波形的前后对比。2.2 Butterworth 滤波器ButterWorth滤波器是IIR无限脉冲响应滤波器的一种是经典逼近式。设计目标是使通带内的频率响应尽可能平坦无波纹且整体幅频响应单调下降。代价是过渡带从通带到阻带的下降斜率相对平缓信号的选择性不如其他类型。2.3 常见滤波器总结2.3.1 IIR滤波器IIR是无限冲激响应滤波器输出不仅取决于当前输入信号也取决于过去的输入和过去的输出。2.3.2 IIR滤波器FIR是有限冲激响应滤波器FIR 只会“记住”有限个输入样本影响输出的仅是有限个样本。常见滤波器比较3 系统方案3.1 硬件方案主控MCUSTM32L431ADS1261高精度ADC模块20SPSFIR3.2 数据稳定性判断方案数据稳定性判断开辟了12个数据作为缓存基础数据每新来一个数据则替换掉最旧的数据。1窗口数据不满时不稳定2新数据超过当前数据平均值上下连续两次则判断为数据不稳定3计算窗口缓存数据方差方差小则表明数据较为稳定3.2 零点自动追踪方案在不放重物清空下ADC采集应变片的数值也会随机跳变且因为应变片具有迟滞性空载0点不一定是一个固定值。因此为了测量精度更高在应变片adc值变化较小时空载0点需合理的跟随实际的0点进行微小的变化。1数据不稳定时判断adc值是否穿越了0点adc0如果有穿越那么数据异常重量显示清零2零点自动跟随方案使用的是一阶低通滤波zero_new zero_old α × (ADC_current - zero_old)更新频率是每1.5s间隔调用一阶低通滤波算法进行一次0点自动更随。只有ADC值变化小于500这个数值或测量重量变化在0.1kg变化内才允许自动跟踪。3.3 二阶ButterWorth 低通滤波器二阶Butterworth滤波器传递函数如下。其特点如下来自deepseek在称重采集应变片传感器 ADC 值时选择 Butterworth 滤波器核心原因在于称重信号本质上是直流或极低频信号而 Butterworth 滤波器在通带内具有“最大平坦”的幅频响应意味着它能在有效滤除高频噪声和振动干扰的同时不引入任何通带纹波从而避免对真实的重量直流分量造成周期性调制或失真。项目中使用Butter worth滤波器对信号滤波并使用IIR滤波器进行对比滤波器设计如下。IIR滤波器参数一阶低通滤波、α 0.6公式zero_new zero_old α × (ADC_current - zero_old)Butter Worth滤波器参数采样率5Hz 、 截止频率0.016Hz、二阶低通滤波、窗口大小是12项目中滤波器滤波前后比对如下。在采样率和截止频率设置不对情况下可能会出现不好的滤波效果如下图示。空载时波形变化。3.4 四点式悬挂称重本项目是四点悬挂式称重每个悬挂点有一个应变片传感器通过ads1261采集传感器的模拟量然后再使用最小二乘法直接拟合实现对物体的称重。// 矩阵直接拟合方案 // W cw[0]*x1 cw[1]*x2 cw[2]*x3 cw[3]*x4 // Mx cmx[0]*x1 cmx[1]*x2 cmx[2]*x3 cmx[3]*x4 // My cmy[0]*x1 cmy[1]*x2 cmy[2]*x3 cmy[3]*x4 // 参数说明 // x1 ~ x4 分别是四个通道采集到的adc值 // cw 是 重量与adc系列 // cmx、cmy是 重心位置与adc值系数3.5 温度补偿本项目工程中使用两点线性温度预测模型。// 如以常温T0 25度、T1 80度为范围进行温度补偿参数计算 // 零点补偿系数 // k0 单位是 count/°C 每变化 1°C零点漂几个 count k0 ( adc0(80°C) − adc0(25°C) ) / ( T2 − T1 ) //灵敏度补偿系数 // k1 单位 1/°C 每变化 1°C灵敏度相对变了百分之几 k1 ( cw(80°C) − cw(25°C) ) / ( cw(25°C) × (80 − 25) ) ( cw_t2 − cw_ref ) / ( cw_ref × 55 )温度补偿参数确认需进行如下标定示例。时间点1常温 25°C└─ 跑一次完整 CALIB_ALL0kg 28 点→ 得到 adc0(25°C)、cw(25°C) ← 这就是参考点T_cal 25时间点25°C已热平衡└─ 快速量两组0kg 各通道零位 50kg 放台面中心各通道→ 得到 adc0(5°C)、cw(5°C) ← 这就是第二点T2 51零点补偿系数k0 单位(count/°C)零点温度补偿模型:补偿值adc K0 * 温度 x count/℃ * y ℃ count重量 cw * ( adc值 补偿值adc) x kg/count * y count kg2灵敏度补偿系数k1 单位(1/°C)灵敏度温度补偿模型:补偿值cw_new cw * ( 1 k1) * Δ温度 x kg/count重量 cw_new * adc值 x kg/count * y count kg总温度补偿模型重量 cw_new * ( adc值 补偿值adc) x kg/count * y count kg
延伸阅读

更多相关文章

2026/10/24 2:18:01

手术显微镜研发14:电气安全与EMC,干扰发生时要观察什么

电源模块有认证、整机能够开机,都不足以证明手术显微镜在实际配置中安全可靠。电气安全与EMC需要同时明确整机边界、基本性能、附件和干扰下的观察行为。本文从设计输入到试验记录,说明如何把安全要求提前纳入研发,减少检验阶段才发现问题的返…

2026/10/24 2:18:01

PIL读图自动旋转?一招搞定EXIF纠偏

读取图像发生自动旋转的原因当大家使用手机或者照相机把照片拍下来, 然后弄到电脑里去的时候, 要是调用PIL这个库来读取这些图片的话, 有时候就会碰到图片被旋转了的麻烦状况。大家可以去查看一下这两种具体的图像属性会怎么样, 经过检查就能发现, 只有那个EXIF值是不一样的差别…

2026/10/24 2:13:01

Camera

SensorSensor 内部有大量感光像素,每个像素接收光线后产生与光强相关的电荷信号,再经过读出电路和模数转换器 ADC,得到数字信号。 常见的 Bayer 彩色 Sensor 会在像素上方覆盖彩色滤光片阵列(CFA),例如 RGG…

2026/10/24 3:08:04

分布式软总线 2.0 实测:8ms 低延迟设备协同方案解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/24 3:08:04

浏览器内核检测:从UA解析到特性指纹的工程化实践

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/24 3:08:04

R语言英文文本挖掘:分词识别与词性标注实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/24 3:08:04

C#配置化驱动封装:NI板卡模拟量IO的热插拔实践

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/24 3:03:03

巴特沃斯滤波器从MATLAB到C代码实现:完整工程实践指南

做滤波器落到C代码这件事,我前前后后帮朋友调过好几轮,最大的感触是:MATLAB里点两下出来的曲线很漂亮,但把系数搬进C语言那一刻,才是真正的开始。尤其是巴特沃斯滤波器,很多人以为butter(n, Wn)拿到b和a就完…

2026/10/23 22:56:35

金融AI落地指南:从调研报告到技术选型与工程实践

简介:这份PDF报告聚焦2025年金融服务业中国AI现状与趋势,面向金融科技从业者、AI战略规划人员及关注行业数字化转型的研究者,帮助读者把握生成式AI在银行、支付、交易等场景中的落地路径与投资方向。资源包内含1个PDF文件,大小约1…

2026/10/24 0:02:40

MATLAB缩进快捷键与批量格式化实战指南

1. 被自动缩进折磨的那些年如果你写过MATLAB代码,大概率经历过这种场景:从某个文档、网页或者聊天记录里复制了一段代码,粘贴进编辑器之后,每一行前面都带着莫名其妙的空格,有的行首是四个空格,有的是一个T…

2026/10/24 0:02:40

用Poco实现Qt风格信号与槽的跨平台C++方案

简介:本资源是一份面向C中级开发者的技术实践工程,聚焦于在非Qt框架环境下模拟实现Qt核心通信机制——信号与槽,借助Poco网络库的事件系统完成解耦式对象通信。适用于需在跨平台C项目中引入松耦合回调机制、但受限于无法集成Qt依赖的开发场景…

2026/10/24 0:02:40

ESXi裸机虚拟化安装指南:从硬件兼容到虚拟机部署

1. 为什么还要折腾ESXi:从一台闲置机器说起手里攒了几台淘汰下来的迷你主机,配置不算差,i5加16G内存,扔了可惜,装个桌面系统又觉得浪费。这种场景下,ESXi就成了一个绕不开的选择。它是一套裸机虚拟化平台&a…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑