已屏蔽 原因:{{ notice.reason }}已屏蔽
{{notice.noticeContent}}
~~空空如也

开始找K型热电偶的分度表 在网上下载了一个 北京中航科仪测控技术有限公司提供 JJG-351-84标准 的 XXXXXXXXXXXXXXX/350296/2012010517073556.pdf

首先检查数据 转到excel 然后每个点和周围点的平均值进行对比 发现许多明显的误差点

1674958970776.png

检查原文档  明显有误

1126.png

我不断挑出误差较大的点 问题是很多的 大概有10来20个 大多数是录入错误吧 比如6和8 3和5混淆 直到误差点校正成这样

1674959009617.png

一般如果直接用这种数据做查表插值  问题是比较大的 有的地方甚至都不能保证数据递增 有没有办法避免呢

我建议需要查表的计算 都不要直接用原始表 首先数据可能有零星错误 其次往往查表插值最准确的地方是有原始值的点 而中间需要插值的点 其实从整体误差来看  这种插值法并非最优方案

比分说这个K型热电偶分度表 我需要按10度分度 不会简单按每10度抽取 则会对每10个数据先用最小二乘法拟合 求出截距和斜率 再重新生成数据点 然后才抽取作为MCU使用的表 这样做的好处有

  1. 避免了单个数据点有误又正好被抽用

  2. 插值后 所有点误差的平方和最小 (别的要求则用别的拟合方式) 比仅仅两端的点误差为0更有意义

我对比了使用拟合后数据抽取做表的插值误差(蓝色点) 和原始数据抽取做表插值(插值算法一样)的误差(橙色点) 显然和我预料的一样 尽管橙色点总会在0误差处出现 但是整体而言 还是蓝色点的误差分布范围最小 err.png

这里有些很有意思的事 我注意到有几段数据是纯线性无误差的  比如从350度到380度 我猜 这段数据是不是就没有测量值 也是靠线性插值蒙出来的 😂 就是不知道这些数据是公司提供的 还是官方的 是不是和其他的一样 我暂时找不到其他分度表数据来源 (关键是其他的下载都要钱)

...................

因为是输入电压求温度 最终根据电压进行分组分度 为了减法乘法除法 使用256uV进行分度 最小二乘法求出每段的参数 然后生成分度点上的温度 并且为了提高精度 以1/32度进行整数表达 

uV-Temp.png

数据得到后  写出代码 表长度没超过256个 相邻温度都也都小于250 可以仅用一次16位乘法 需要的可以拿去参考 可以省去反向查表的麻烦 而且来源数据经过初步校正 且拟合优化

// a table of uV/256 => Temp*32 ,  in Celsius degree
__code u16 K_temp32[]={
0,
207,
412,
616,
819,
1021,
1221,
1421,
1620,
1818,
2016,
2214,
2411,
2608,
2806,
3003,
3201,
3399,
3598,
3797,
3997,
4198,
4400,
4602,
4805,
5009,
5214,
5418,
5623,
5829,
6034,
6239,
6444,
6650,
6853,
7058,
7261,
7464,
7666,
7869,
8070,
8270,
8471,
8670,
8869,
9068,
9266,
9464,
9662,
9860,
10057,
10253,
10450,
10646,
10842,
11038,
11234,
11429,
11624,
11819,
12014,
12209,
12403,
12597,
12791,
12985,
13179,
13373,
13566,
13760,
13953,
14146,
14339,
14532,
14724,
14917,
15110,
15303,
15495,
15687,
15880,
16072,
16264,
16456,
16649,
16840,
17033,
17225,
17417,
17609,
17801,
17993,
18186,
18378,
18570,
18763,
18955,
19148,
19340,
19533,
19726,
19919,
20112,
20305,
20499,
20692,
20886,
21080,
21274,
21468,
21662,
21858,
22052,
22247,
22443,
22638,
22834,
23030,
23226,
23422,
23619,
23816,
24014,
24211,
24409,
24607,
24806,
25004,
25203,
25403,
25602,
25802,
26003,
26204,
26404,
26605,
26807,
27009,
27211,
27413,
27617,
27820,
28023,
28227,
28432,
28636,
28841,
29047,
29252,
29458,
29664,
29871,
30078,
30285,
30493,
30701,
30909,
31118,
31327,
31536,
31746,
31957,
32167,
32378,
32589,
32801,
33013,
33226,
33439,
33652,
33865,
34079,
34294,
34508,
34724,
34940,
35155,
35372,
35590,
35807,
36025,
36244,
36463,
36682,
36903,
37123,
37344,
37567,
37789,
38012,
38235,
38459,
38684,
38910,
39137,
39364,
39591,
39820,
40049,
40279,
40510,
40741,
40973,
41207,
41440,
41675,
41910,
42146,
42383,
42621,
42859,
43098,
43337,
43578,
43818,
44059 };

// get temperature in Celsius degree of K-thermocouple with input in uV 
u16 K_temp(u16 uv) 
{
	u8 t;
	if (uv>55000) return 0xffff;
	t=uv>>8;
	return ((((K_temp32[t+1]-K_temp32[t])*(u16)(u8)uv)>>8)+K_temp32[t])>>5;
}

下面这图是表的温度间隔 可以看到非线性现象 (如果线性的 每段的间隔应该是相同的)

y.png

文号 / 915301

千古风流
名片发私信
学术分 1
总主题 55 帖总回复 905 楼拥有证书:进士 学者 机友
注册于 2020-01-22 18:44最后登录 2024-12-22 15:04
主体类型:个人
所属领域:无
认证方式:手机号
IP归属地:上海

个人简介

个人开源项目: m24h.github.io

文件下载
加载中...
{{errorInfo}}
{{downloadWarning}}
你在 {{downloadTime}} 下载过当前文件。
文件名称:{{resource.defaultFile.name}}
下载次数:{{resource.hits}}
上传用户:{{uploader.username}}
所需积分:{{costScores}},{{holdScores}}下载当前附件免费{{description}}
积分不足,去充值
文件已丢失

当前账号的附件下载数量限制如下:
时段 个数
{{f.startingTime}}点 - {{f.endTime}}点 {{f.fileCount}}
视频暂不能访问,请登录试试
仅供内部学术交流或培训使用,请先保存到本地。本内容不代表科创观点,未经原作者同意,请勿转载。
音频暂不能访问,请登录试试
投诉或举报
加载中...
{{tip}}
请选择违规类型:
{{reason.type}}

空空如也

插入资源
全部
图片
视频
音频
附件
全部
未使用
已使用
正在上传
空空如也~
上传中..{{f.progress}}%
处理中..
上传失败,点击重试
等待中...
{{f.name}}
空空如也~
(视频){{r.oname}}
{{selectedResourcesId.indexOf(r.rid) + 1}}
处理中..
处理失败
插入表情
我的表情
共享表情
Emoji
上传
注意事项
最大尺寸100px,超过会被压缩。为保证效果,建议上传前自行处理。
建议上传自己DIY的表情,严禁上传侵权内容。
点击重试等待上传{{s.progress}}%处理中...已上传,正在处理中
空空如也~
处理中...
处理失败
加载中...
草稿箱
加载中...
此处只插入正文,如果要使用草稿中的其余内容,请点击继续创作。
{{fromNow(d.toc)}}
{{getDraftInfo(d)}}
标题:{{d.t}}
内容:{{d.c}}
继续创作
删除插入插入
插入公式
评论控制
加载中...
文号:{{pid}}
加载中...
详情
详情
推送到专栏从专栏移除
设为匿名取消匿名
查看作者
回复
只看作者
加入收藏取消收藏
收藏
取消收藏
折叠回复
置顶取消置顶
评学术分
鼓励
设为精选取消精选
管理提醒
编辑
通过审核
评论控制
退修或删除
历史版本
违规记录
投诉或举报
加入黑名单移除黑名单
查看IP
{{format('YYYY/MM/DD HH:mm:ss', toc)}}
ID: {{user.uid}}