更新履歴 sitemap
技術資料
サーミスタの特性表 精度データ ◆ サーミスタリニアライズ方法
サーミスタ回路の設計例 サーミスタ温度プローブの設計例 トレーサビリティ
HOME >技術資料 >サーミスタのリニアライズ

サーミスタの抵抗値は温度により急激に変化するため、温度センサとして利用するにはリニアライズ(直線化)し温度へ変換する必要があります。下表にその方法と特徴を記載します。

  サーミスタ回路の設計例も参照下さい。

リニアライズの方法 特 徴 初期開発費 量産時のコスト
定電圧と直列抵抗の組み合わせ
簡易リニアライズ)。下記参照。
回路構成部品が少なく、簡単に実用的な範囲で実用的な直線化ができる。 安い  安い 
サーミスタに直並列抵抗を付加する(応用例N450) 30℃程度の温度幅を0.1℃以内に直線化できる。
サ−ミスタ抵抗Rt、直列抵抗Rs、並列抵抗Rp、合成抵抗Rmは、Rm=Rs+Rt*Rp/(Rt+Rs)となる。
安い 安い
リニアライズIC(4800LC)を使う ICからの出力は温度に変換されているのでそのまま利用できる。 安い 高い。小ロットや試作品に向く。
直線化サーミスタ(サーミリニア)を使う サーミリニアの抵抗値が直線的に変化するので記録計等に直接接続できる。
温度には変換されてはいない。
中程度 中程度
ソフトを使う。下記に記載します。 Steinhart and Hart 式によるプログラムで抵抗値をリニアライズする。 高い 安い。
大量生産に向く
Excel による温度変換 ファイルへ抵抗値を入力することにより簡単に抵抗を温度に変換できます。又サーミスタ B定数 も求まります。 机上テスト用

   簡易リニアライズ
サーミスタに固定抵抗を直列に接続する。これに定電圧を印加
して固定抵抗の両端電圧を読む。この電圧は温度の変化と
実用的な範囲で実用的な直線性を示す。

右図の固定抵抗Rは次式で計算される。

    R = (r1・r2 + r2・r3 - 2・r1・r3) / (r1 + r3 - 2・r2)

ここに r1, r3 は直線化範囲の下限および上限でのサーミスタ
抵抗、r2 は中間点でのサーミスタ抵抗をあらわす。

例)

サーミスタ44033を0℃〜60℃で使用したとする。下限、中間点、上限、はそれぞれ0℃、30℃、60℃となるのでこれらの温度での
サーミスタ抵抗を特性表から得ると、 r1 = 7355,  r2 = 1815, r3 = 560.3 Ω である。これらの値を上式に代入すると

       R = 1429 Ω  がえられる。(実際の計算例を参照

Steinhart and Hart 式によるサーミスタ抵抗値の温度変換プログラムをC言語で示します。
この式によりMEAS/TPG の全てのサーミスタは、抵抗値を温度に変換できます。
Steinhart and Hart 式の詳細については、英文資料を御参照下さい。

/* グロ−バル変数 */
doubule t1,t2,t3,r1,r2,r3,a,b,c;

/* main関数 */
void main( void )
{
 int m = 0;
 doubule j = 0;
 test_data() ;/*      基本データ設定   */
 const_calc();/*      ABC 3定数の計算 */
 while( 1 )
  {
   j = read_data( );/*  サーミスタ抵抗値読み取り、ユーザーの任意関数 */
   data_calc( j );/*    読み取ったサーミスタ抵抗値を温度に変換する   */
   read_stataus( m );/* プログラム終了、ユーザーの任意関数        */
   if( m != 0 )
      break;
  }
}
/* 例としてYSIサーミスタ型番44033を使用した場合
  基本データ設定(カタログに記載されている定格値を設定する)
  0℃=7355Ω、40℃=1200Ω、70℃=394.5Ω   */
void test_data( void )
{
 t1 = 0;
 t2 = 40;
 t3 = 70;
 r1 = 7355;
 r2 = 1200;
 r3 = 394.5;
}

/* ABC 3定数の計算 */
void const_calc( void )
{
 doubul x1,x2,x3,s,u,v,w;
 t1 += 273.15;
 t2 += 273.15;
 t3 += 273.15;
 x1 = log( r1 );
 x2 = log( r2 );
 x3 = log( r3 );
 s = ( x1 - x2 );
 u = ( x1 - x3 );
 v = ( 1/t1 - 1/t2 );
 w = ( 1/t1 - 1/t3 );
 c = ( v-s*w/u )/(( pow( x1,3 )-pow( x2,3 ))-s*( pow( x1,3 )-pow( x3,3 ))/u );/* 定数C */
 b = ( v-c*( pow( x1,3 )-pow( x2,3 )))/s;/*                        定数B */
 a = 1/t1-c*( pow( x1,3 ))-b*x1;/*                            定数A */
}

/* 読み取ったサーミスタ抵抗値を温度に変換する */
void data_calc( doubule data )
{
 doubule temp,alph,beta,rout;
 temp = 1/( a+b*log( data )+c*pow( log( data ),3 ));
 alph = ( a-1/temp )/c;/*                             αの計算          */
 beta = sqrt( pow(b/( 3*c ),3 ) + (pow( alph,2 ))/4 );/*           βの計算           */
 rout = exp( pow(( beta-alph/2),1/3 ) - pow(( beta+alph/2 ),1/3 );/* 抵抗値の再計算      */
 temp -= 273.15 ;/*                                温度へ変換した最終結果 */
}



Copyright(C)2007 NIKKISO-THERM CO.,LTD. All rights reserved.