打印

热敏电阻电路图分析

[复制链接]
7037|48
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
cl234583745|  楼主 | 2015-4-30 08:42 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
cl234583745|  楼主 | 2015-5-5 07:46 | 只看该作者
沉了吗

使用特权

评论回复
板凳
cauhorse| | 2015-5-5 23:29 | 只看该作者
本帖最后由 cauhorse 于 2015-5-5 23:32 编辑

先把运放画成常用的运放符号,整理电路图。
然后先说下你对这个电路的理解。可能你把电路图整理完,就已经看明白了,内容还是比较简单的。

使用特权

评论回复
地板
cl234583745|  楼主 | 2015-5-6 08:11 | 只看该作者
cauhorse 发表于 2015-5-5 23:29
先把运放画成常用的运放符号,整理电路图。
然后先说下你对这个电路的理解。可能你把电路图整理完,就已经 ...

就一个10k热敏电阻测量电路。
有点问题,就是一致性不是太好。我想修改下,或者看看问题出在哪里。结果处理是,取一段温度范围计算出斜率,根据这个斜率算出零点的温度,然后范围内的一个ad减去零点的再除以斜率就直接得出温度值。要精确就要范围取得很细,这样标定起来太麻烦。是否可以吧ad转换阻值,再查表,是比前面算法好一些。不用标定那么多点了。
所以帮忙分析电路,各个阻值都怎么计算的,以便能修正算法,让一致性和精确度能更好一些,或者有现成的ntc电路更好了:P

1430870214395.jpg (3.66 MB )

1430870214395.jpg

使用特权

评论回复
5
cauhorse| | 2015-5-6 10:13 | 只看该作者
你需要多高的精度指标?NTC测温元件线性度远不及铂热电阻器。
你把NTC接入电路,静态的输入输出关系不难得到啊,这个电路取NTC两端电压,分别跟随,再做差分放大,输出是两倍的上端电压减去下端电压。
既然要先采集数据做表,计算值就只能做个参考,就算按照厂家给出的阻温表计算结果,仍不能准确表示你当前的、电路中的那只NTC的阻温特性,何况不同厂家的产品可能有差异,同一厂家还有批次性问题:
http://wenku.baidu.com/view/bc443618227916888486d79a.html
做表其实不是单单为了使用查表法,而是通过查表尽量减小器件非线性带来的测量误差,如此,最好的方法当然仍是标定过程,计算值仅可用来做为参考,当然,可能比两点标定或不标定的测量结果“好看”些。
我以前发过一个二分法计算NTC的代码,可以参考:
https://bbs.21ic.com/icview-251542-1-1.html

使用特权

评论回复
6
cl234583745|  楼主 | 2015-5-6 13:29 | 只看该作者
cauhorse 发表于 2015-5-6 10:13
你需要多高的精度指标?NTC测温元件线性度远不及铂热电阻器。
你把NTC接入电路,静态的输入输出关系不难得 ...

1.那怎么由ad值算出来电阻呢?不是要用电阻去查表吗?

2.查表我会,pt100的我就是用电阻查表来得到温度的。标定是标定什么呢?改变表里的一直数值吗?

使用特权

评论回复
7
cauhorse| | 2015-5-6 13:48 | 只看该作者
1.知道怎么由电阻值得到AD输入端的电压值,自然也就知道如何从AD值换算电阻值了,换算关系固定,用电阻值查表还是AD值查表,并没有本质区别;
2.度娘说的,”标定包含两方面的意思:一是使用标准的计量仪器对所使用仪器的准确度(精度)进行检测是否符合标准,一般大多用于精密度较高的仪器。二是有校准的意思。”
这里要做的实际是校准输入与输出之间的换算关系。严格地说,标定过程需要把测温元件放置在标准温度环境中,待稳定后,取得的测量值(一般是电参量)作为当前温度下的对应数值;取多个温度点,得到对应的测量值,就可以得到分段线性化的标定区间,计算方法同两点插值公式;一般这样标定的难度比较大,你得有一定的实验室条件,所以对于标准测温元件,可以用标准信号源标定,但是这个“标定”一般不包含传感器本身——拿PT100来说,信号源模拟成一个RTD(就是PT100),接到你的变送器上,再由信号源模拟给出几个标定点温度值,操作结束后,这个变送器对于标准RTD的检测准确度得到了校正。
说那么多,意思就是,别标定了,你就用表算就行,至于AD值换算温度值,参考第1条,这个你肯定会算。

使用特权

评论回复
8
cl234583745|  楼主 | 2015-5-6 14:00 | 只看该作者
本帖最后由 cl234583745 于 2015-5-6 14:28 编辑
cauhorse 发表于 2015-5-6 13:48
1.知道怎么由电阻值得到AD输入端的电压值,自然也就知道如何从AD值换算电阻值了,换算关系固定,用电阻值查 ...

1.由电阻值得到AD输入端的电压值,不知道啊,
2.标定是标定2个点吗?中间的值就能稍微精确些了,那不就是改变表里面的数值了吗?还是表格不变,2点中间的值就是ad转换的结果,怎么标定呢
3.不同的板子一致性有差别,那些阻值跟精度有关系呢

使用特权

评论回复
9
cauhorse| | 2015-5-6 14:37 | 只看该作者
1.电路输入输出关系会算吧?Vadc = f(Rntc),求反函数?能搞定不?上面已经回复过了“取NTC两端电压,分别跟随,再做差分放大,输出是两倍的上端电压减去下端电压。”
2.不是中间值精确,是标定值准确;两个标定点之间,用一段直线段来代替真实的NTC特性曲线,点取得越多,这些直线段连成的折线就越接近真实的NTC特性曲线,理论就是这样;
3.先别管板子。

使用特权

评论回复
10
cl234583745|  楼主 | 2015-5-8 13:41 | 只看该作者
本帖最后由 cl234583745 于 2015-5-8 14:52 编辑
cauhorse 发表于 2015-5-6 14:37
1.电路输入输出关系会算吧?Vadc = f(Rntc),求反函数?能搞定不?上面已经回复过了“取NTC两端电压,分别 ...

大神第一点我还是不会算啊,你帮我算下啊。后面的明白了

在有网上好像没有ntc的电路,一般就如图那样简单,能行吗?
不同rtd和热电偶,都有很多电路图

小Q截图-20150413000637.png.thumb.jpg (3.62 KB )

小Q截图-20150413000637.png.thumb.jpg

使用特权

评论回复
11
bkvalve| | 2015-5-9 16:27 | 只看该作者
最好还能写出计算公式

使用特权

评论回复
12
cl234583745|  楼主 | 2015-5-11 15:30 | 只看该作者
cauhorse 发表于 2015-5-6 13:48
1.知道怎么由电阻值得到AD输入端的电压值,自然也就知道如何从AD值换算电阻值了,换算关系固定,用电阻值查 ...

上面电压-下面电压,再两倍。这样的话是不是10k 51k 20k的阻值精度对结果有影响啊。原来用的都是0805 5%精度。另外串联的1k 10k,2.2k电阻都是什么作用呢

使用特权

评论回复
13
cauhorse| | 2015-5-11 21:12 | 只看该作者
cl234583745 发表于 2015-5-11 15:30
上面电压-下面电压,再两倍。这样的话是不是10k 51k 20k的阻值精度对结果有影响啊。原来用的都是0805 5% ...

对,有影响。其实精度在其次,主要是温漂和年漂,值觉得不准可以先拿电桥测一下,温漂最好选小一些的,或者采用温度补偿电路。串连电阻用作RC滤波,10k与20K设置放大增益。

使用特权

评论回复
14
cl234583745|  楼主 | 2015-5-12 15:41 | 只看该作者
本帖最后由 cl234583745 于 2015-5-12 15:51 编辑
cauhorse 发表于 2015-5-11 21:12
对,有影响。其实精度在其次,主要是温漂和年漂,值觉得不准可以先拿电桥测一下,温漂最好选小一些的,或 ...

现在计算是:温度=(AD-ad(0度))/斜率。      ad(0度)和斜率,是根据标定两端ad结果计算出来的。两端范围选的越小精度就越高,也越麻烦。   怎么能由ad算出来ntc阻值,在查表,是不是能好点呢? 尤其电阻对应温度的表就是现成的,复制进程序,若知道阻值,查表就知道温度了

使用特权

评论回复
15
cauhorse| | 2015-5-12 16:00 | 只看该作者
先把NTC的阻温特性曲线搞到手,用5楼那张表就可以了,每次计算不要从0度开始,先确定采集到的电压落在哪两个查表数据之间,再用这两个查表数据建立线性方程,求出这个采集点对应的温度。

使用特权

评论回复
16
cl234583745|  楼主 | 2015-5-13 08:30 | 只看该作者
本帖最后由 cl234583745 于 2015-5-13 08:47 编辑
cauhorse 发表于 2015-5-12 16:00
先把NTC的阻温特性曲线搞到手,用5楼那张表就可以了,每次计算不要从0度开始,先确定采集到的电压落在哪两 ...

你上面的程序有错误吧?mid=(max+min)/2.有变化吗?怎么查出来阻值和温度的呢
由阻值查找温度我会,pt100的我就做过,只不过pt100的有一个芯片给出来的公式,(Code = (2N × AIN × GAIN)/VREF )可以由ad结果直接算出来阻值,再由阻值查表得到温度的。这个怎么由ad结果转换成阻值呢?这就要分析上面电路,跟电路有关系了吧?
再有我用的10k ntc阻值表好像跟你的不同,怎么回事呢?http://item.taobao.com/item.htm? ... 1&abbucket=9#detail(发现了你的是100k的,我是10k的)


先查找该阻值的表格位置,再转换成温度
uint find_table_pt100(uint data)
{
    uint  start, mid, end;
    uint  dat;
   
    start = 0;
    end = 860;
   
    // 1. 检查数据合法性
    if ((data > 33279) || (data < 1852))
    {
        return 0xff;
    }
   
    // 2. 开始二分法查找
    while (start <= end)
    {
        mid = (end + start) >> 1;
        dat = table_pt100[mid];
        if (data > dat)
        {
            start = mid + 1;
        }
        else if (data < dat)
        {
            if (mid)
            {
                end = mid - 1;
            }
            else
            {
                break;
            }
        }
        else
        {
            return (mid);
        }
    }
   
    return (mid); // 找不到返回值附件的下标
}

uint get_temp(uint data)
{
    uint index = 0;
    uint temp = 0;
   
    // 1. 得到下标
    index =  find_table_pt100(data);
   
    if (0xffff == index) // 数据格式不正确
    {
            return 0xff;
    }
   
    // 2. 查找范围
    if (table_pt100[index] == data) // 正好相等
    {
        // 3. 计算温度
        temp = (index * 10);
    }
    else
    {
        // 3. 计算温度
        if (table_pt100[index] > data)
        {           
            temp = 10*(index-1)  + 10*(data-table_pt100[index-1]) / (table_pt100[index]-table_pt100[index-1]);
        }
        else
        {
            temp = 10*index + 10*(data-table_pt100[index]) / (table_pt100[index+1]-table_pt100[index]);
        }
    }
   
    return temp;
}

使用特权

评论回复
17
cl234583745|  楼主 | 2015-5-13 09:05 | 只看该作者
cauhorse 发表于 2015-5-12 16:00
先把NTC的阻温特性曲线搞到手,用5楼那张表就可以了,每次计算不要从0度开始,先确定采集到的电压落在哪两 ...

上面的计算是通过插入一些温度阻值,得到一些该温度阻值对应的ad值。从而是ad和温度建立联系的。这就要求每次都标定温度阻值对应的ad值。若实验都测试好了,以便后面使用,就出现不同板子一致性误差的问题。我主要是想改变这种通过标定方法     插入固定温度的阻值->ad值,这种对应关系,以减少标定甚至不标定,减少一致性带来的误差。能否由ad值算出来阻值呢

使用特权

评论回复
18
cauhorse| | 2015-5-13 10:23 | 只看该作者
nuiMidVal = (nuiTempMax + nuiTempMin) / 2;

就是二分法中”二分“的过程;看那个贴子8楼的附件。
你的NTC”标定“是无法准确实现的,标定方法我在7楼已经说过,对于PT100,用标准信号源标定的是变送器或信号调理器,不是PT100本身。
即使按照NTC标准阻温特性表,整理出所有特定温度点下的阻值,再代入电路计算出AD转换结果,仍无法避免”不同板子一致性“的问题。
标定,即使用标准测量环境来校准,不是单靠计算实现的。

使用特权

评论回复
19
cl234583745|  楼主 | 2015-5-13 14:13 | 只看该作者
本帖最后由 cl234583745 于 2015-5-13 14:30 编辑
cauhorse 发表于 2015-5-13 10:23
就是二分法中”二分“的过程;看那个贴子8楼的附件。
你的NTC”标定“是无法准确实现的,标定方法我在7楼 ...

Vadc=2VCC(51-10)/(51+10+Rntc)
10位ad
Vadc=5AD/1024

所以Rntc=(1024(51-10)*2VCC)/5AD  -  (51+10)
这样对吗?
我原来的就是ad查表得到温度。所以要标定很多温度点的ad值,没有那么高的条件,所以这个过程就有很多误差,并且很麻烦,尤其同一批元件做出来的产品也都要逐一标定。随机误差
你说用阻值来查表得到温度,和ad查表得到温度没有本质区别。的确是这样的。但若上面的公式对,再用这个阻值来查表得到的温度。阻值温度表是标准的,阻值是计算出来的,误差和一致性不会小很多吗?这个该算系统误差吧。

我还是不够理解电路,比如为什么上下用10k 51k的电阻。运放为什么用12v供电,那些影响精度。

使用特权

评论回复
20
cauhorse| | 2015-5-13 16:46 | 只看该作者
再明确一下,你的“逐一标定”没有改善测量准确度,因为这个过程不是标定,实际只是在提前计算NTC的阻值而已,准确与否仍然依赖于标准NTC阻温特性表与当前器件的阻温特性的一致性的大小;
你要查表得温度,为何要“标定很多温度点的AD值”呢?这个“标定”只是想让AD采样换算NTC阻值时更方便一些对吧,不用每次都按电路原理计算NTC的当前阻值,但实际上,每次先根据AD值计算NTC当前的阻值,再查阻温特性表,也并无不妥;且这样的程序更方便阅读、移值(与你用什么的硬件没有太大关系);
再考虑一下,如果你取得的AD值没有落在你的”AD值-温度“表中的已有值上,也需要先查表,再进行一次插值运算才能得到一个温度值,这个温度值与你直接使用阻温特性表插值的结果比,那个更为准确?你的插值结果与通过Rntc = f(Vadc)计算的结果完全一致吗?(可以试试用软件把Rntc = f(Vadc)的图线画出来看看。)
这种分压电阻网络,通常用一个分压电阻也可以正常工作,和你10楼发的图类似。改变NTC以外的电阻,ADC采样区间会有变化,可以计算一下;因此要根据你的ADC采样要求取值。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

99

主题

644

帖子

1

粉丝