この特性表にテキストで記載された数値から計算用の近似式を作ることを考える。
もちろん、近似式なんか作らずに、この表をテーブル検索と補間を組み合わせて
「抵抗⇒温度」の変換プログラムを作るのは簡単だし、その方が良いことが多い。
でも、とにかく近似式を作ってみる。
秋月サーミスタの温度算出の近似式を作る
もともと、サーミスタの抵抗値の近似式は、B定数から求めるものが良く使われる。
しかし、この方法だと細かく見てゆくと結構誤差が大きい。
Wikipediaのサーミスタの項には、Steinhart-Hart式と言うものが書かれている。
残念ながら、この近似式用の値は村田から公開されていないみたいだ。
でも、自分で算出するのも難しくはない。
Steinhart-Hart式の特徴は、抵抗の自然対数 ln(R)の3次式で絶対温度の逆数を算出するというもので、
不思議なことに、ln(R)の2次の項がない。
1/T = a + b*ln(R) + c*ln(R)^3
そこで、このa,b,cを自分で求めてしまうことにする。
やり方は、村田のテキストの表から、温度と抵抗値の対応表をExcel上で作り、
抵抗値の代わりに、ln(R)の多項式で、1/Tを近似するための係数を求めてしまえばいい。
その際、2次の項を無視する理由も特にないので、3次の係数を全部求めてみる。つまり、
1/T = a + b*ln(R) + c*ln(R)^2 + d*ln(R)^3
近似の範囲は、室温測定と言うことから、-10℃から+45℃とした。
すると、以下のようになった。
a = 2.69761E-03
b = 2.65626E-04
c = 9.84742E-06
d = -6.04913E-07
この式を見ると、特に2次の項が小さいというわけでもない。
だから、Steinhart-Hart近似式が本当に良いのかは分からない。
近似式の誤差を見るため、村田の表からある温度でのサーミスタの抵抗値を求め、
その抵抗値をもとに、近似式で温度を算定した時に元の温度との差を示したのが、下記のグラフになる。
この近似式と表の値との誤差は、-10℃から55℃ぐらいの範囲でわずか0.01℃程度であり、
きわめて近似精度が高いことが分かる。
しかし、この近似式の中には自然対数が含まれており、組み込みCPUなどではコードサイズ、
計算時間ともに多少厳しい面がある。
そこで、この自然対数を含む式を、加減乗除だけからなる単純な式で近似することを考えよう。
-10℃から45℃までの近似式
サーミスタの抵抗から温度への変換式(1) 対数を使った近似式(誤差0.01℃)
サーミスタの抵抗から温度への変換式(2) 3次の有理式による近似式(誤差0.006℃)
サーミスタの抵抗から温度への変換式(3) 2次の有理式による近似式(誤差0.011℃)、6次多項式による近似(誤差0.08℃)
もちろん、近似式なんか作らずに、この表をテーブル検索と補間を組み合わせて
「抵抗⇒温度」の変換プログラムを作るのは簡単だし、その方が良いことが多い。
でも、とにかく近似式を作ってみる。
秋月サーミスタの温度算出の近似式を作る
もともと、サーミスタの抵抗値の近似式は、B定数から求めるものが良く使われる。しかし、この方法だと細かく見てゆくと結構誤差が大きい。
Wikipediaのサーミスタの項には、Steinhart-Hart式と言うものが書かれている。
残念ながら、この近似式用の値は村田から公開されていないみたいだ。
でも、自分で算出するのも難しくはない。
Steinhart-Hart式の特徴は、抵抗の自然対数 ln(R)の3次式で絶対温度の逆数を算出するというもので、
不思議なことに、ln(R)の2次の項がない。
1/T = a + b*ln(R) + c*ln(R)^3
そこで、このa,b,cを自分で求めてしまうことにする。
やり方は、村田のテキストの表から、温度と抵抗値の対応表をExcel上で作り、
抵抗値の代わりに、ln(R)の多項式で、1/Tを近似するための係数を求めてしまえばいい。
その際、2次の項を無視する理由も特にないので、3次の係数を全部求めてみる。つまり、
1/T = a + b*ln(R) + c*ln(R)^2 + d*ln(R)^3
近似の範囲は、室温測定と言うことから、-10℃から+45℃とした。
すると、以下のようになった。
a = 2.69761E-03
b = 2.65626E-04
c = 9.84742E-06
d = -6.04913E-07
この式を見ると、特に2次の項が小さいというわけでもない。
だから、Steinhart-Hart近似式が本当に良いのかは分からない。
近似式の誤差を見るため、村田の表からある温度でのサーミスタの抵抗値を求め、
その抵抗値をもとに、近似式で温度を算定した時に元の温度との差を示したのが、下記のグラフになる。
各温度での、近似式の誤差
この近似式と表の値との誤差は、-10℃から55℃ぐらいの範囲でわずか0.01℃程度であり、
きわめて近似精度が高いことが分かる。
しかし、この近似式の中には自然対数が含まれており、組み込みCPUなどではコードサイズ、
計算時間ともに多少厳しい面がある。
そこで、この自然対数を含む式を、加減乗除だけからなる単純な式で近似することを考えよう。
に続く
サーミスタの抵抗から温度への変換式(2)
-10℃から45℃までの近似式
サーミスタの抵抗から温度への変換式(1) 対数を使った近似式(誤差0.01℃)
サーミスタの抵抗から温度への変換式(2) 3次の有理式による近似式(誤差0.006℃)
サーミスタの抵抗から温度への変換式(3) 2次の有理式による近似式(誤差0.011℃)、6次多項式による近似(誤差0.08℃)