高精度温度测量在很多场合都是需要的,有时还需要对温度进行精确地闭环控制。要实现高精度的温度检测,在传感器选型、信号调理电路设计、非线性处理等方面都要下功夫,要在分析技术要求的基础上逐步完成功能设计,结合软件进行验证和实现。 2.技术要求 测温量程:-100℃~+400℃; 测温精度:±0.1℃; 测温分辨率:0.01℃; 通道数:16 每通道采样频率:≥100sps 二、具体实施内容 1.传感器选型,分析传感器的检测信号和输出信号之间关系,找出最大误差 2.传感器的信号调理电路设计并且考虑远距离传输时导线电阻对测量的影响,选取合适的接线方式 3.多路开关的选择,A/D选型,分析A/D位数产生的量化误差,采样频率是否满足香农采样定律 4.用Altium Designer 软件画出整个电路原理图,设计PCB 5.A/D采样后数据数据如何转化成A/D输入的实际电压值? 如果是热电阻传感器,如何把电压值反算成传感器的电阻值? 利用C语言编写多路数据采集程序,得到实际的电阻值 - 根据电阻值(针对热电阻传感器)或mV子如何得到实测的温度?
如果通过查表的方式得到温度,是否考虑用二分法或其它方法提高查表效率? 根据电阻值思考如何得到实测的温度 第一部分--传感器选型 1.介绍PT100 pt100温度传感器是一种将温度变量转换为可传送的标准化输出信号的仪表。主要用于工业过程温度参数的测量和控制。 2.分析检测信号和输出信号的关系(excel绘制曲线) 3.实现高精度检测的措施 为了实现高精度测量,可以对传感器输出信号或其他模拟信号进行线性化处理与非线性补偿。 线性化处理: a.函数运算法 有些类型的传感器的系统特性可以用函数关系来表示,对于此种类型的传感器,可以把其运算规则(反函数的)存入系统的微处理器,这样每测得一个参量,就可以通过处理器的计算得到一一个需要的相应物理量。 b.可变电压源电桥法 用桥路中的-一个桥臂或几个桥臂作为传感器输出的电阻信号,由于传感器的输出电阻信号跟被测物理量或化学参数呈线性关系,所以电桥的输出信号Vo能反映出被测物理量或化学量的变化。但是由于一般的单臂电桥采用稳压电源供电从而使得其输出电位与桥臂电阻的变化并不呈线性关系,有时还存在严重的非线性误差。 非线性补偿: 传感器输出常带有一定的非线性信号, 当无法用线性化处理的方法来消除非线性误差时,为保证系统测试的精度,应对输出信号进行非线性补偿。通过选取适当的拟合函数,并把能实现拟合函数关系的电路作为传感器信号处理电路的一部分,则在补偿范围内,传感器的非线性可基本线性化。对所选择的拟合函数的要求是:能将剩余的误差限制在要求的范围内,且对于输入信号是单值性的。一般应采用连续函数来做拟合函数,虽然要进行较多的数学运算,但其误差函数是平滑、连续的,故结果易于观测分析。常用的拟合函数有: 1/x.x"、1gx\A.+Bx'等。 4.做散点图,分析最大误差
第二部分--传感器的信号调理电路设计 1.总体分析 选择采用PTl00热电阻温度传感器对外界温度进行采集。由于PTl00传感器是基于金属导体的电阻值随温度的增加而增加这一特性来进行温度测量的,所以测量电阻就等同于测量了外界的温度,将PT100传感器连到电路中,将电阻信号转换为电压信号,考虑到导线的电阻以及其他因素,通过电桥设计,对两点电位进行比较得出差值,经过减法放大器,比例放大器输出0-5V电压,调理电路设计如下: 2.回答问题:远距离传输时导线电阻对测量的影响,选取合适的接线方式,并分析原因 采用三线制是为了消除连接导线电阻引起的测量误差。这是因为测量热电阻的电路一般是不平衡电桥,热电阻作为电桥的一个桥臂电阻,其连接导线(从热电阻到中控室)也成为桥臂电阻的一部分,这一部分电阻是未知的且随环境温度变化,造成测量误差。采用三线制,将导线一根接到电桥的电源端,其余两根分别接到热电阻所在的桥臂及与其相邻的桥臂上,这样消除了导线线路电阻带来的测量误差。所以我们组选用三线制的接线方式。 1.多路开关的选择 根据项目设计要求,通道数为16,经过文库以及网站查阅相关资料过,选取符合要求的型号为——USR-R16-T远程控制开关,16路开关控制,用户可在直连、局域、远程三种模式下实时、定时控制设备。 2.A/D选型 根据每通道采样频率:≥100sps,和测温精度:±0.1℃,选取A/D转换器——ISLA216S,ISLA216S是一系列的低功耗,高性能,16位模数转换器。该系列采用标准CMOS工艺的FemtoCharge?技术设计,支持高达250MSPS的采样率。 ISLA216S是引脚兼容的12,14和16位A/D系列的一部分,最大采样速率范围为130至500MSPS,与ISLA216P系列ADC共用相同的模拟内核。该系列最大限度地降低了功耗,同时提供了最先进的动态性能,提供了最佳的性能与功耗之间的权衡。 3.分析A/D位数产生的量化误差 数采设备通过AD进行量化,量化是指现实世界中的时域信号的连续幅值离散成若干个量化量级,量化误差是指量化结果和被量化模拟量的差值,显然量化级数越多,量化的相对误差越小,每一个均值的大小称为一个量化单位。A/D位数越高,量化量级(可理解为最小刻度)越小,转换后的数据幅值精度越高,量化误差越小。 香农采样定律:为了不失真地恢复模拟信号,采样频率应该不小于模拟信号频谱中最高频率的2倍(f s≥2f max)。采样频率满足香农采样定律
第四部分——设计PCB 1.介绍PCB PCB( Printed Circuit Board),中文名称为印制电路板,又称印刷线路板,是重要的电子部件,是电子元器件的支撑体,是电子元器件电气连接的载体。由于它是采用电子印刷术制作的,故被称为“印刷”电路板。 经过几天自学,成果展示如下: 第五部分 问题描述: - A/D采样后数据数据如何转化成A/D输入的实际电压值?
第一种类型:模拟信号传感器 模拟信号采集通道前端采用输出信号为模拟信号的传感器(如电阻式、电感式、磁电式、热电式等)。当传感器输出不是电量而是电参量时,需要通过基本转换电路将其转换为电量,再通过相应的放大、调制解调、滤波和运算电路将需要的信号检测出来,传递给信息采集接口电路,进人控制系统或显示,其基本构成如图5-1所示。 第二种类型:数字信号传感器 数字信号采集通道前端采用数字式传感器(如光栅、磁栅、容栅、感应同步器等),再经放大、整形后形成数宇脉冲信号,并由细分电路进一步提高信号分辨率,脉冲当量变换电路对脉冲信号进行进一步处理,读出信号并送计数器和寄存器,或直接送控制器和显示,其基本构成如图5-2所示。 问题描述二: 如果是热电阻传感器,如何把电压值反算成传感器的电阻值? 热电阻是基于电阻的热效应进行温度测量的,即电阻体的阻值,随温度的变化而变化的特征。因此,只要测量出感温热电阻的阻值变化,就可以测量出温度。 利用C语言编写多路数据采集程序,得到实际的电阻值
- #include <reg52.h>
- //#include <intrins.h>
- sbit IO_18B20 =P2^0;
- unsigned char wei[]={0x1,0x2,0x4,0x8};
- char temp_data,temp_data1;
- unsigned char duan[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e,0xbf};
- unsigned char disp[]={5,0,0,0};
- /oid delayx10us(unsigned char t);
- void delay_ms( int x);
- void write18b20(unsigned char dat);
- void tempchange(void);
- void display();
- void display1();
- bit read_bit();
- bit Init_Ds18b20();
- unsigned char read18b20();
- int get18b20temp();
- void main()
- {
- P0=0Xff;
- P3=0Xff;
- while(1)
- {
- tempchange();
- temp_data=get18b20temp()/16; // 取整数部分
- if(temp_data<0&&temp_data>=(-10)) //如果读取到的值大于负10小于 0,显示负号且将值转换为正数
- {
- disp[0]= 16;
- temp_data=0-temp_data; //将负数转换为正数
- }
- else
- {disp[0]=temp_data/100;}
- temp_data1=temp_data%100;
- disp[1]=temp_data1/10;
- disp[2]=temp_data1%10;
- disp[3]=12; //显示温度单位C
- if((temp_data>=(-100))&&(temp_data<=(400))) //如果读取到的数值的范围在-100~400之间,就显示出来
- {
- display();
- }
- }
- }
复制代码 第六部分:
问题描述:
根据电阻值(针对热电阻传感器)或mV(针对热电偶传感器)子如何得到实测的温度?
1.两种不同成份的导体(称为热电偶丝材或热电极)两端接合成回路,
热电偶当两个接合点的温度不同时,在回路中就会产生电动势,这种现象称为热电效应,而这种电动势称为热电势。热电偶就是利用这种原理进行温度测量的,其中,直接用作测量介质温度的一端叫做工作端(也称为测量端),另一端叫做冷端(也称为补偿端);冷端与显示仪表或配套仪表连接,显示仪表会指出热电偶所产生的热电势。
2.热电偶实际上是一种能量转换器,它将热能转换为电能,用所产生的热电势测量温度,对于热电偶的热电势,应注意如下几个问题:
1、热电偶的热电势是热电偶工作端的两端温度函数的差,而不是热电偶冷端与工作端,两端温度差的函数;
2、热电偶所产生的热电势的大小,当热电偶的材料是均匀时,与热电偶的长度和直径无关,只与热电偶材料的成份和两端的温差有关;
3、当热电偶的两个热电偶丝材料成份确定后,热电偶热电势的大小,只与热电偶的温度差有关;若热电偶冷端的温度保持一定,这进热电偶的热电势仅是工作端温度的单值函数。将两种不同材料的导体或半导体A和B焊接起来,构成一个闭合回路,如图所示。当导体A和B的两个执着点1和2之间存在温差时,两者之间便产生电动势,因而在回路中形成一个大小的电流。热电偶就是利用这一效应来工作的。
问题描述:
如果通过查表的方式得到温度,是否考虑用二分法或其它方法提高查表效率?
用最少的运算次数找出数据位置,基础思路。1000个数据,第一次判定是前500还是后500,第二次是前250还是后250.这样1000个数据很快就可以查完。
uint8 FineTab(uint16 *a,uint8 TabLong,uint16 data)//表中数据从大到小
{
uint8 st,ed,m ;
uint8 i ;
st = 0 ;
ed = TabLong-1 ;
i = 0 ;
if(data >= a[st]) return st ;
else if(data <= a[ed]) return ed ;
while(st < ed)
{
m = (st+ed)/2 ;
if(data == a[m] ) break ;
if(data < a[m] && data > a[m+1]) break ;
if(data > a[m]) ed = m ;
else st = m ;
if(i++ > TabLong) break ;
}
if(st > ed ) return 0 ;
return m ;
}
以上的Word格式文档51黑下载地址:
机电一体化系统设计51hei(1).docx
(362.61 KB, 下载次数: 34)
|