写给前端的传感器数据计算原理

Posted by LuckXiang on August 15, 2018

项目开发中前端工程师没有接触过底层设备,对传感器也不了解,虽然定义好了底层设备和移动前端设备的数据格式.但是开发人员还是不清楚如何计算,所以写了个小文档说明一下:

项目使用的传感器输出信号有两种,一种是4-20MA电流信号,一种是编码器输出的方波信号,下边分开解释:

1.电流信号的传感器

传感器的作用就是把一种类型的信号转变成另一种信号,比如把流量变成电流信号,压力变成电流信号.我们现在使用的电流传感器都是线性传感器,什么是线性传感器呢,就是说传感器输出的X信号是传感器采集的Y信号通过一个线性方程运算得到,用公式表示就是

X=K*Y+P,
// K叫做比例系数,常量P叫做偏移.

你做的系统里边,X就是底层嵌入式设备上传给你的信号数据,Y就是你需要计算的传感器采集到的信号.现在对你来说还有两个未知量,那就是K和P怎么计算. 传感器都有一个量程,他表示该传感器测量信号的范围,实际工作的时候传感器把这个范围的信号映射成4-20MA的电流信号,输出4ma电流的时候,量程达到最小值,在我们这里就是0,输出20ma的时候,量程达到最大值.就是我们配置里边量程的值,带入公式运算, K的值就是 ((20-4)/量程),p的值就是4.

Y = (X-4)/k = (X-4)*(量程)/16 
// X就是嵌入式工程师给你的数据信号. Y是我们算出来的流量压力等采集到的信号.

2.编码器

测量转速的是编码器,嵌入式工程师会在底层处理好数据,你读取到的就是实际转速.公式如下:

Y = X

3.计算处理 高级设置里边我们增加了几个参数,设置零点值,放大倍数,加减补偿.我们显示的数据Q应该是由Y运算处理后得到,处理公式为:

Q = (Y-设置零点值)*放大倍数 + 加减补偿

这里运算的目的主要是为了校准传感器.得到客户想要的结果.最后计算出来的Q,就是我们显示保存需要的流量压力密度转速等等了.