【RTD】二分法查找和分段线性插值算法在RTD中应用

2023-05-16

文章目录

  • 1 前言
  • 2 二分法查找
    • 2.1 复杂度
    • 2.2 实现
  • 3 分段线性插值
  • 4 RTD实例


1 前言

  处理器通过RTD采集电路(芯片)精确获得当前RTD电阻值后,再结合RTD与温度线性关系表,换算出当前环境温度。阻值与温度换算,通常是对“阻值—温度”进行查表匹配获得。因为,RTD“阻值—温度”在整个变化范围内不一定是标准线性关系,只在某一温度区间呈现线性或者接近线性。因此,首先将“阻值—温度”划分为一定数量的区间,然后通过“二分法查找算法”查找测量的阻值处于某一区间,再通过“线性插值法”计算出实际温度值。


相关文章:

【RTD】铂电阻测温原理与具体方法
【RTD】AD7793三线式铂电阻PT100/PT1000应用
【RTD】AD7793四线式铂电阻PT100/PT1000应用
【RTD】AD7793两线式铂电阻PT100/PT1000应用
【RTD】AD7793驱动程序
【RTD】二分法查找和分段线性插值算法在RTD中应用


2 二分法查找

   二分法查找,或者成为折半法查找,是一种用于有序数组中查找特定元素的查找算法。二分法查找比较易于理解,查找步骤大致分为:

【1】将待查找数组分为两部分

【2】待查找值与数组中间值比较,确保待查找值处于哪一半部分

【3】将该半部分重复【1】【2】步骤,直至查找到目标值或者查找结束为止


2.1 复杂度

  • 时间复杂度

【1】最坏情况查找最后一个元素(第一个元素),此时时间复杂度为T(n) = O(log2n)

【2】最理想情况首次查找中间元素即为目标值(奇数长度数组的正中间值,偶数长度数组的中间靠左的元素),此时时间复杂度为T(n) = O(1)


  • 空间复杂度

S(n)=logn


2.2 实现

  二分法查找算法,可以使用递归和非递归方式实现;递归方式对于查找长度比较长的数组需要更大的栈空间。

  • 递归方式C语言实现
int binary_search(int *buf, uint32_t index_bottom, uint32_t index_top, int s_value)
{
	uint32_t index_mid = 0;

    if (index_bottom > index_top)
    {
        return -1;
    }
    index_mid = index_bottom + (index_top-index_bottom)/2;
    if (buf[index_mid] == s_value) 
    {
        return index_mid;
    }
    else if(buf[mid]  > s_value)
    {
        return binary_search(buf, index_bottom, index_mid-1, s_value);
    }
    else
    {
        return binary_search(buf, index_mid+1, index_top, s_value);
    }
}

  • 非递归C语言实现
int binary_search(int *buf, uint32_t buf_size, int s_value)
{
	uint32_t index_bottom = 0;
	uint32_t index_top = buf_size-1;
	uint32_t index_mid = buf_size/2 - 1;

	while (index_top-index_bottom > 1)
	{
		if (s_value < buf[index_mid])
		{
			index_top=index_mid;	
		}
		else if(s_value>buf[index_mid])
		{
			index_bottom=index_mid;	
		}
		else
		{
            return index_mid;
		}
		index_mid=(index_bottom+index_top)/2;
	}
    
	return -1;
}

3 分段线性插值

  分段线性插值法,将目标样本点区间划分为多个区间[x,x+1],分别在每个区间上作一次线性方程,计算x点的插值时,只需用到左右的两个坐标点,计算量与坐标点个数n无关。

  假设某一区间两个节点为(x1,y1)和(x2,y2),则该区间上的一次线性方程可以这样表示:

F 1 = x − x 2 x 1 − x 2 f ( x 1 ) + x − x 1 x 2 − x 1 f ( x 2 ) F1 = \frac{x-x2} {x1-x2} f(x1)+\frac{x-x1} {x2-x1}f(x2) F1=x1x2xx2f(x1)+x2x1xx1f(x2)


在这里插入图片描述

线性坐标图


  以上图为例,利用方程式证明。


斜 率 : k = ( y 2 − y 1 ) ( x 2 − x 1 ) 斜率:k = \frac{(y2-y1)} {(x2-x1)} k=(x2x1)(y2y1)

线 性 方 程 : y − y 1 = k ( x − x 1 ) 线性方程:y-y1 = k (x-x1) 线yy1=k(xx1)

y = ( y 2 − y 1 ) ( x − x 1 ) ( x 2 − x 1 ) + y 1 y = \frac{(y2-y1)(x-x1)} {(x2-x1)}+y1 y=(x2x1)(y2y1)(xx1)+y1
y = x − x 1 x 2 − x 1 y 2 + ( 1 + x − x 1 x 1 − x 2 ) y 1 y = \frac{x-x1} {x2-x1}y2+(1+\frac{x-x1} {x1-x2})y1 y=x2x1xx1y2+(1+x1x2xx1)y1
y = x − x 2 x 1 − x 2 y 1 + x − x 1 x 2 − x 1 y 2 y = \frac{x-x2} {x1-x2} y1+\frac{x-x1} {x2-x1}y2 y=x1x2xx2y1+x2x1xx1y2


  很显然,如果测量的RTD阻值刚好处于某一区间内,则需要使用插值法计算出当前温度值。


4 RTD实例

  以PT00、PT1000为例,分别生成一个【-70℃ ~ +110℃】、【温度步进为0.5℃】的表(数组)。X轴表示阻值,y轴表示温度值,根据线性插值法,温度计算公式表示为:

y = [ x − x 2 x 1 − x 2 y 1 + x − x 1 x 2 − x 1 y 2 ] × s − h y = [\frac{x-x2} {x1-x2} y1+\frac{x-x1} {x2-x1}y2]\times {s}-h y=[x1x2xx2y1+x2x1xx1y2]×sh
其中:
  斜率 s = 0.5
  初值 h = 70


const float PT100_CODE[361] = 
{ /* -70 ~ + 110C */
72.335,		72.535,		72.735,		72.935,		73.134,		73.334,		73.534,		73.734,		73.934,	74.133,
74.333,		74.533,		74.732,		74.932,		75.131,		75.331,		75.53,		75.73,		75.929,	76.129,
76.328,		76.527,		76.726,		76.926,		77.125,		77.324,		77.523,		77.722,		77.921,	78.12,
78.319,		78.518,		78.717,		78.915,		79.114,		79.313,		79.512,		79.71,		79.909,	80.108,
80.306,		80.505,		80.703,		80.902,		81.1,		81.299,		81.497,		81.695,		81.894,	82.092,
82.29,		82.488,		82.687,		82.885,		83.083,		83.281,		83.479,		83.677,		83.875,	84.073,
84.271,		84.469,		84.666,		84.864,		85.062,		85.26,		85.457,		85.655,		85.853,	86.05,
86.248,		86.445,		86.643,		86.84,		87.038,		87.235,		87.432,		87.63,		87.827,	88.024,
88.222,		88.419,		88.616,		88.813,		89.01,		89.207,		89.404,		89.601,		89.798,	89.995,
90.192,		90.389,		90.586,		90.783,		90.98,		91.177,		91.373,		91.57,		91.767,	91.963,
92.16,		92.356,		92.553,		92.75,		92.946,		93.143,		93.339,		93.535,		93.732,	93.928,
94.124,		94.321,		94.517,		94.713,		94.909,		95.106,		95.302,		95.498,		95.694,	95.89,
96.086,		96.282,		96.478,		96.674,		96.87,		97.066,		97.261,		97.457,		97.653,	97.849,
98.044,		98.24,		98.436,		98.631,		98.827,		99.023,		99.218,		99.414,		99.609,	99.805,
100,		100.195,	100.391,	100.586,	100.781,	100.977,	101.172,	101.367,	101.562,	101.758,
101.953,	102.148,	102.343,	102.538,	102.733,	102.928,	103.123,	103.318,	103.513,	103.708,
103.903,	104.097,	104.292,	104.487,	104.682,	104.876,	105.071,	105.266,	105.46,		105.655,
105.849,	106.044,	106.238,	106.433,	106.627,	106.822,	107.016,	107.211,	107.405,	107.599,
107.794,	107.988,	108.182,	108.376,	108.57,		108.764,	108.959,	109.153,	109.347,	109.541,
109.735,	109.929,	110.123,	110.316,	110.51,		110.704,	110.898,	111.092,	111.286,	111.479,
111.673,	111.867,	112.06,		112.254,	112.447,	112.641,	112.835,	113.028,	113.221,	113.415,
113.608,	113.802,	113.995,	114.188,	114.382,	114.575,	114.768,	114.961,	115.155,	115.348,
115.541,	115.734,	115.927,	116.12,		116.313,	116.506,	116.699,	116.892,	117.085,	117.278,
117.47,		117.663,	117.856,	118.049,	118.241,	118.434,	118.627,	118.819,	119.012,	119.205,
119.397,	119.59,		119.782,	119.975,	120.167,	120.359,	120.552,	120.744,	120.936,	121.129,	
121.321,	121.513,	121.705,	121.898,	122.09,		122.282,	122.474,	122.666,	122.858,	123.05,		
123.242,	123.434,	123.626,	123.818,	124.009,	124.201,	124.393,	124.585,	124.777,	124.968,	
125.16,		125.352,	125.543,	125.735,	125.926,	126.118,	126.309,	126.501,	126.692,	126.884,	
127.075,    127.649,    127.458,	127.649,	127.84,		128.032,	128.223,	128.414,	128.605,	128.796,	
128.987,    129.178,    129.37,		129.561,	129.752,	129.942,	130.133,	130.324,	130.515,	130.706,	
130.897,    131.088,	131.278,	131.469,	131.66,		131.85,		132.041,	132.232,	132.422,	132.613,	
132.803,    132.994,	133.184,	133.375,	133.565,	133.755,	133.946,	134.136,	134.326,	134.517,	
134.707,    134.897,	135.087,	135.277,	135.468,	135.658,	135.848,	136.038,	136.228,	136.418,	
136.608,    136.798,	136.987,	137.177,	137.367,	137.557,	137.747,	137.936,	138.126,	138.316,	
138.506,    138.695,	138.885,	139.074,	139.264,	139.453,	139.643,	139.832,	140.022,	140.211,	
140.4,      140.59,		140.779,	140.968,	141.158,	141.347,	141.536,	141.725,	141.914,	142.103,	
142.293,
};

const float PT1000_CODE[361] = 
{/* -70 ~ + 110C */
723.345,	725.346,	727.346,	729.345,	731.344,	733.343,	735.341,	737.339,	739.337,	741.334,
743.331,	745.327,	747.324,	749.319,	751.315,	753.309,	755.304,	757.298,	759.292,	761.285,
763.278,	765.271,	767.263,	769.255,	771.247,	773.238,	775.229,	777.219,	779.21,		781.199,
783.189,	785.178,	787.166,	789.155,	791.143,	793.13,		795.117,	797.104,	799.091,	801.077,
803.063,	805.048,	807.033,	809.018,	811.003,	812.987,	814.97,		816.954,	818.937,	820.919,
822.902,	824.884,	826.865,	828.847,	830.828,	832.808,	834.789,	836.769,	838.748,	840.728,
842.707,	844.685,	846.663,	848.641,	850.619,	852.596,	854.573,	856.55,		858.526,	860.502,
862.478,	864.453,	866.428,	868.403,	870.377,	872.351,	874.325,	876.298,	878.271,	880.244,
882.217,	884.189,	886.16,		888.132,	890.103,	892.074,	894.044,	896.015,	897.985,	899.954,
901.923,	903.892,	905.861,	907.829,	909.797,	911.765,	913.732,	915.7,		917.666,	919.633,
921.599,	923.565,	925.53,		927.496,	929.461,	931.425,	933.39,		935.354,	937.317,	939.281,
941.244,	943.207,	945.169,	947.132,	949.093,	951.055,	953.016,	954.977,	956.938,	958.899,
960.859,	962.819,	964.778,	966.737,	968.696,	970.655,	972.613,	974.572,	976.529,	978.487,
980.444,	982.401,	984.358,	986.314,	988.27,		990.226,	992.181,	994.136,	996.091,	998.046,
1000,		1001.954,	1003.908,	1005.861,	1007.814,	1009.767,	1011.72,	1013.672,	1015.624,	1017.576,
1019.527,	1021.478,	1023.429,	1025.38,	1027.33,	1029.28,	1031.229,	1033.179,	1035.128,	1037.077,
1039.025,	1040.973,	1042.921,	1044.869,	1046.816,	1048.764,	1050.71,	1052.657,	1054.603,	1056.549,
1058.495,	1060.44,	1062.385,	1064.33,	1066.274,	1068.218,	1070.162,	1072.106,	1074.049,	1075.992,
1077.935,	1079.877,	1081.82,	1083.762,	1085.703,	1087.644,	1089.585,	1091.526,	1093.467,	1095.407,
1097.347,	1099.286,	1101.225,	1103.164,	1105.103,	1107.042,	1108.98,	1110.917,	1112.855,	1114.792,
1116.729,	1118.666,	1120.602,	1122.538,	1124.474,	1126.41,	1128.345,	1130.28,	1132.215,	1134.149,
1136.083,	1138.017,	1139.95,	1141.884,	1143.817,	1145.749,	1147.681,	1149.614,	1151.545,	1153.477,
1155.408,	1157.339,	1159.27,	1161.2,		1163.13,	1165.06,	1166.989,	1168.918,	1170.847,	1172.776,
1174.704,	1176.632,	1178.56,	1180.487,	1182.414,	1184.341,	1186.268,	1188.194,	1190.12,	1192.046,
1193.971,	1195.896,	1197.821,	1199.746,	1201.67,	1203.594,	1205.518,	1207.441,	1209.364,	1211.287,
1213.21,	1215.132,	1217.054,	1218.975,	1220.897,	1222.818,	1224.739,	1226.659,	1228.579,	1230.499,
1232.419,	1234.338,	1236.257,	1238.176,	1240.095,	1242.013,	1243.931,	1245.848,	1247.766,	1249.683,
1251.6,		1253.516,	1255.432,	1257.348,	1259.264,	1261.179,	1263.094,	1265.009,	1266.923,	1268.837,
1270.751,									
};

/*  */
/**
 * @brief  二分法查找
 * @param buf:待查找数据表
 * @param buf_size:表格大小
 * @param s_value:查找目标值
 * @param out_data:返回值
 * @retval 匹配返回0,否则返回左值
 */
int8_t binary_search(const float *buf, uint32_t buf_size, float s_value, uint32_t *out_data)
{
	uint32_t index_bottom = 0;
	uint32_t index_top = buf_size-1;
	uint32_t index_mid = buf_size/2 - 1;

	while (index_top-index_bottom > 1)
	{
		if (s_value < buf[index_mid])
		{
			index_top=index_mid;	
		}
		else if(s_value>buf[index_mid])
		{
			index_bottom=index_mid;	
		}
		else
		{
			*out_data = index_mid;  /* 恰好中值 */
            return 0x00;
		}
		index_mid=(index_bottom+index_top)/2;
	}
	
	*out_data = index_bottom;   /* 处于区间内,返回左值 */
    
	return 0x01;
}

/**
 * @brief 插值法阻值-温度换算
 * @param code:温度-阻值表
 * @param size:表格大小
 * @param resi:电阻阻值
 * @retval 实际温度值(℃)
 */
float resi_temp_calc(const float *code, uint32_t size, float resi)
{
    int8_t ret = 0;
    uint32_t value = 0;
    float temp = 0.0f;
    float x1 = 0.0f;
    float x2 = 0.0f;
    float y1 = 0.0f;
    float y2 = 0.0f;
    
    ret = binary_search(&code[0], size, resi, &value);
    
    if (0x00 == ret)
    {
        temp = value*0.5f-70;
    }
    else if(0x01 == ret)
    {/* 插值法计算 */
        x1 = code[value];
        y1 = value;
        x2 = code[value+1];
        y2 = value+1;
        temp = (y1*(resi-x2)/(x1-x2) + y2*(resi-x1)/(x2-x1))*0.5f - 70;
    }
    else
    {
        /* tod: error */
    }
    return temp;
}

#include <stdio.h>
#include <stdint.h>
int main(char argc, char **argv)
{
  	float temp0 = 0.0f;
	float temp1 = 0.0f;
	temp0 = resi_temp_calc(&PT100_CODE[0], sizeof(PT100_CODE)/sizeof(float), 102);
	printf("PT100 temp=%.2fC\r\n", temp0);
	temp1 = resi_temp_calc(&PT1000_CODE[0], sizeof(PT1000_CODE)/sizeof(float), 1001.954);
	printf("PT1000 temp=%.2fC\r\n", temp1);
	
	return 0;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【RTD】二分法查找和分段线性插值算法在RTD中应用 的相关文章

  • 四轴思路(持续更新)

    遥控器 xff1a 发送数据 MPU6050 xff1a 加速度做一维卡尔曼滤波 xff0c 角速度做一介低通滤波 然后四元数姿态解算 接着串级PID控制平衡 xff0c 外环角度环 xff0c 内环角速度环 高度控制 xff1a 高度和速
  • QT 上位机(网络通信)

    Client类 span class hljs comment span class hljs xmlDocTag span span class hljs xmlDocTag span span class hljs xmlDocTag
  • win10系统如何通过ssh远程登录另一台电脑的deepin linux系统

    1 首先 xff0c 更新一下软件源 xff0c 打开 终端窗口 xff0c 输入 sudo apt get update 2 然后 xff0c 在终端中 xff0c 输入 sudo apt get install openssh serv
  • 基于STM32与ESP8266的太空人WiFi天气时钟(代码开源)

    前言 xff1a 本文为手把手教学ESP8266著名开源项目 太空人WiFi天气时钟 xff0c 不同的是本次项目采用的是STM32 作为MCU 两者开发过程中有因为各自芯片的特点 xff08 时钟频率 xff0c 内存大小等 xff09
  • make menuconfig错误的解决办法

    如果使用make menuconfig的方式配置内核 xff0c 又碰巧系统没有安装ncurses库 xff08 ubuntu系统 默认就没有安装此库 xff09 xff0c 就会出现错误 xff0c 错误信息大体上如下 xff1a Una
  • FileZilla以root用户登录Linux

    一 首先创建root用户的密码 span class hljs built in sudo span passwd root 然后输入要设置的密码 xff0c 然后再输入一次 xff0c 成功 xff01 二 修改配置文件 filezila
  • px4编译

    如果下载速度特别慢 xff0c 可以使用手机的4G网络 位置确定 mkdir p src cd src 开始下载指定版本的px4 xff0c 在这里是v1 8 2版本 git clone b v1 8 2 https github com
  • px4源码----位置估算(position_estimator_inav_params.h)

    pragma once include lt parameters param h gt struct position estimator inav params float w z baro 权重 z轴 气压计位置 0 5 float
  • ubuntu如何把调整cpu策略

    一 安装cpu频率管理软件 sudo apt get install cpufrequtils 二 查看cpu当前状态 cpufreq info 其中available cpufreq governors xff1a performance
  • 树莓派系统介绍

    树莓派是一个微型计算机 xff0c 和普通的电脑没有什么区别 xff0c 只是体积更小 xff0c 只有卡片大小 xff0c 存储能力和计算能力会差一点 xff0c 主要用于学习 xff0c 实验所用 是电脑就要安装操作系统 xff0c 树
  • 小觅摄像头ROS编译错误

    GitHub slightech MYNT EYE ORB SLAM2 Sample Forked from ORB SLAM2 https github com raulmur ORB SLAM2 Forked from ORB SLAM
  • 华为路由器交换机常用命令(随时补充更新)

    一 视图切换 lt huawei gt 用户视图 huawei 系统视图 xff0c 在用户视图状态下输入sys进入 xff0c 在系统视图下输入quit或者return返回用户视图 huawei g0 0 1 端口视图 xff0c 从系统

随机推荐

  • 01路径规划问题的相关理论

    目录 1 旅行商问题 2 有能力约束的车辆路径问题 3 车辆路径主要要素特征 4 约束条件分析 5 带时间窗的车辆路径问题 6 车辆路径问题求解算法 7 小节 1 旅行商问题 旅行商问题 xff08 Traveling Saleman Pr
  • 时序数据库-3-[IoTDB]的安装与使用

    IoTDB官方文档手册 Apache IoTDB xff08 物联网数据库 xff09 是一体化收集 存储 管理与分析物联网时序数据的软件系统 Apache IoTDB 采用轻量式架构 xff0c 具有高性能和丰富的功能 xff0c 并与A
  • 【强烈推荐】基于STM32的TFT-LCD各种显示实现(内容详尽含代码)

    前言 xff1a TFT LCD模块作为人们日常生活中常见屏幕类型之一 xff0c 使用的受众面非常广阔 例如 xff1a 显示各个传感器数值 xff0c 显示精美界面 xff0c 多级化菜单系统等等都不离不开他的身影 可以说学会TFT L
  • 时序数据库-4-[IoTDB]的python3操作

    从采集到存储 xff1a 时序数据库到底怎么处理时间 xff1f iotdb官方文档手册 1 容器安装iotdb 可以使用docker volume create命令创建 docker 卷 此命令将在 var lib docker volu
  • [汇总]基于ESP32的四旋翼无人机开发纪实

    文章目录 一 项目说明1 已实现功能2 硬件配置 二 ESPlane2 0 开发笔记三 相关传感器驱动移植四 参考链接 ESPlane 项目更名为 ESP Drone 现已公开代码仓库和文档 代码仓库 xff1a https github
  • [填坑]Ubuntu安装显卡专有驱动后鼠标键盘无法使用

    问题描述 我在两个地方遇到了同样的问题 xff0c 解决方法也如出一辙 xff0c 由于没有研究源码 xff0c 暂不清楚原因 问题1描述 xff1a 为了解决Ubuntu下笔记本功耗问题 xff0c 在网友建议下我安装了bumblebee
  • uniapp-前后端开发app-系列01开篇

    系列文章目录 文章目录 系列文章目录前言一 开发工具 xff1f 二 项目架构三 具体内容实现 前言 提示 xff1a 这里可以添加本文要记录的大概内容 xff1a 随着app和小程序的发展 有没有开发一个模版 其他端程序都能用 uniap
  • TypeError: iter() returned non-iterator of type

    在使用Python迭代器时出现错误 xff1a class Fibs def init self self a 61 0 self b 61 1 def next self self a self b 61 self b self a 43
  • 【Linux应用编程】一个异步信号处理引起死锁问题的思考

    文章目录 1 前言2 为什么会产生死锁2 1 死锁2 2 分析2 3 结论 3 避免死锁4 举一反三5 死锁例子代码6 参考文章 1 前言 最近在维护别人的代码时 xff0c 遇到一个线程死锁问题 xff0c 一番折腾 xff0c 最终定位
  • 【RT-Thread】SGM706独立看门狗软件包

    文章目录 1 简介1 1 目录结构1 2 许可证 2 芯片介绍3 支持情况4 使用说明4 1 依赖4 2 获取软件包4 3 初始化4 4 启动看门狗4 5 msh finsh测试查看设备注册通过msh启动看门狗 5 注意事项6 联系方式 1
  • 利用tldr工具再也不怕记不住Linux命令

    文章目录 1 前言2 tldr3 安装4 使用 1 前言 linux命令非常多 xff0c 少用的命令往往易忘记 xff0c 甚至常用的语法较为复杂的命令也不好记住 当然有些太复杂的命令也不需要死记硬背 xff0c 我们往往会借助man命令
  • C++中的二阶构造函数

    文章目录 1 前言2 二阶构造3 总结 1 前言 构造函数用于创建对象时对象成员的初始化 xff0c 如赋初值 申请内存 加载文件等 xff0c 即是自动完成对象的初始化任务 在C 43 43 语言中 xff0c 构造函数执行顺序是 xff
  • open函数簇与fopen函数簇区别和用法

    文章目录 1 前言2 open与fopen区别2 1 标准不同2 2 层次不同2 3 适用对象不同 xff08 返回值不同 xff09 2 4 缓冲区2 5 效率不同 3 使用方法3 1 open3 2 fopen 1 前言 linux系统
  • 基于STM32的OLED多级菜单GUI实现(简化版智能手表)

    前言 xff1a 本文的OLED多级菜单UI 为一个综合性的STM32小项目 xff0c 使用多传感器 与OLED显示屏 实现智能终端 的效果 项目中的多级菜单UI使用了较为常见的结构体索引法 去实现功能与功能之间的来回切换 xff0c 搭
  • 【RTD】铂电阻测温原理与具体方法

    文章目录 1 基本原理2 铂电阻2 1 铂电阻测温原理2 2 铂电阻类型和测量方法2 2 1 两线式铂电阻2 2 2 三线式铂电阻2 2 3 四线式铂电阻 3 小结 相关文章 xff1a RTD 铂电阻测温原理与具体方法 RTD AD779
  • 【RTD】AD7793三线式铂电阻PT100/PT1000应用

    文章目录 1 AD7793简介2 AD7793 三线式铂电阻测量2 1 阻值计算 3 小结 相关文章 xff1a RTD 铂电阻测温原理与具体方法 RTD AD7793三线式铂电阻PT100 PT1000应用 RTD AD7793四线式铂电
  • 【RTD】AD7793四线式铂电阻PT100/PT1000应用

    文章目录 1 前言2 AD7793 四线式铂电阻测量2 1 阻值计算 3 小结 1 前言 上一篇文章描述的是RTD驱动芯片AD7793特点 xff0c 以及其与三线式RTD连接使用方法 本文描述四线式RTD与AD7793的使用 相关文章 x
  • 【RTD】AD7793两线式铂电阻PT100/PT1000应用

    文章目录 1 前言2 AD7793 两线式铂电阻测量2 1 阻值计算 3 小结 1 前言 上一篇文章描述的是RTD驱动芯片AD7793与四线式RTD连接使用方法 本文描述两线式RTD与AD7793的使用 相关文章 xff1a RTD 铂电阻
  • 【RTD】AD7793驱动程序

    文章目录 1 前言2 AD7793驱动程序2 1 spi访问接口2 2 寄存器和常用配置值2 3 初始化2 4 原始数据获取2 5 阻值换算 3 使用4 完整工程代码 1 前言 前面文章主要描述AD7793分别与两线 三线 四线RTD连接电
  • 【RTD】二分法查找和分段线性插值算法在RTD中应用

    文章目录 1 前言2 二分法查找2 1 复杂度2 2 实现 3 分段线性插值4 RTD实例 1 前言 处理器通过RTD采集电路 xff08 芯片 xff09 精确获得当前RTD电阻值后 xff0c 再结合RTD与温度线性关系表 xff0c