运用KEILC分析HS1101湿度传感器F-RH转换算法
1 引 言
HS1101法国HUMIREL电容式湿度传感器,采用创新技术、稳定性好、精度高、外带防护罩,抗静电、防灰尘、并可抵抗氯气、氨水等,可测的湿度测量范围为1~99%RH,精度可达到±2%可应用于湿度变送器、湿度仪表、湿度控制器及其他场合,在测量温度Tα=25℃,测量工作频率为10 kHz,C-RH特性曲线如图1,从特性曲线图上可以看出,HS1101具有极好的线性输出。
可以近似看成相对湿度值和电容值成比例,在一般应用中,都将其接入如图2所示的555振荡电路,当555为典型的CMOS类型时,可得如下多项式的反应方程式:
同时实验定点采样可得下列湿度-输出频率F-RH关系表见表1。
在单片机应用中,一般通过测量振荡电路的频率,然后根据此多项反应式将其转换成湿度,再送出显示或发送上位机的,故F-RH转换程序是湿度测试系统的重要组成部分,该程序的算法关系到F-RH转换精度、经编译后的代码长度以及执行效率,从而也直接影响了系统的性能,由于上述多项反应方程式较为复杂,将此直接作为单片机编程算法,生成的代码长度过长,从实际应用出发,根据表1以及HS1101具有极好的线性输出,又基于C语言语句结构直接支持分段函数的编程,故可将此特性曲线分段,在某一区间内近似为线性,基于此算法思想,本文设计了3种典型转换程序,经KEIL C编译后,实验运行结果逐一分析如下:
2 线性方程法
分析C-RH特性曲线,并根据F-RH表1进行描点,可发现F-RH近似于一条直线,取表格内两组数据采用系数代入法可推出如下直线方程:
程不是惟一的,该方程的系数和所选表项有关,本文经多次实验遴选误差最小的表项)但考虑到直线方程的后半段和表格的实际值偏离较大,为了更好地和实际吻合,故将该直线方程分段:
为分析子函数的性能,将该函数HS1101()单独加入主函数,经编译后,在fsc=12 MHz,F=7 000 Hz时可通过DISASSEMBLY WINDOWN窗口(见图3)可查出生成的代码长度为984行,在PERFORMANCEANALYZER WINDOW窗口下可以看到其运行平均执行时间为(见图3)556μs。
3 分段等差法
由于线性方程法运行后产生的误差较大,通过分析上表各10%湿度之区间频率并不是等差的,权衡后,将各区间频率差值逐一分析后,进行多次分段处理,可得近似转换值F′如表3所示:
经编译后,可通过DISASSEMBLY WINDOWN窗口(见图4)可查出生成的代码长度为977行,在PERFORMANCE ANALYZER WINDOW窗口下可以看到其运行平均执行时间为1 148μs,尽管精度得到了改善,由于51系列单片机只支持8位数据的运算,但程序中多次用到实数计算,故必须调用浮点数运算程序包,所致代码长度加长,执行时间也比线性方程法长。
相关文章
- 2024-08-22大型空分设备卧式垂直气流分子筛吸附器内的流场特征分析
- 2024-04-09浅谈SCS系列数字汽车衡的安装调试及养护维修
- 2024-11-20开关电源有源共模EMI滤波器研究及其应用
- 2023-04-12红外温度计MLX90614及其应用
- 2024-07-30有源声学结构系统配置优化设计
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。