はっくはっくキッチン
Hack Hack Kitchen

Library for Thermocouple based on NIST ITS-90 Database

 2022/01/29

概要

NIST (National Institute of Standards and Technology, アメリカ国立標準技術研究所) により、 いくつかの熱電対についてのデーター NIST ITS-90 Thermocouple Database が公開されています。

各熱電対のデーターはそれぞれ三つの部分から構成されていて、

  1. 摂氏 0 度を基準にした、温度差 1 度ごとの熱起電力のデーター

  2. 温度→熱起電力の変換のための近似式 (のための係数)

  3. 熱起電力→温度の変換のための近似式 (のための係数)

が書かれています。

このライブラリーでは上記 2. 及び 3. に基づいた関数を提供します。 これにより、熱電対の $0\,\degree\mathrm{C}$ を基準とする熱起電力と温度を相互に変換できます。

関数

このライブラリーでは以下の関数を提供します。 関数名の X は熱電対のタイプ (B, E, …) で置き換えて下さい。

FLOAT temp2emf_X(FLOAT temperature)

与えられた温度 (temperature) から熱起電力 (EMF, electromotive force) を求めます。 temperature が範囲外の場合は NAN (not a number) を返します。

FLOAT emf2temp_X(FLOAT emf)

与えられた ($0\,\degree\mathrm{C}$ を基準とする) 熱起電力 (emf) から温度を求めます。 emf が範囲外の場合は NAN (not a number) を返します。

FLOAT 型は、コンパイル時に NIST_ITS90_USE_DOUBLE が定義されているときは double, それ以外の時は float として定義されます。

単位

温度の単位は $\degree\mathrm{C}$, 熱起電力の単位は mV です。

使い方

まず、リポジトリーからファイルを取得して下さい。

git clone https://github.com/TPKato/nist-its90

最低限必要なファイルは次の通りです。

  • nist-its90.c

  • nist-its90-X.c (X は熱電対のタイプ (B, E, …) で置き換えて下さい)

  • nist-its90.h

  • nist-its90-config.h

C 言語で使用する場合は、

  1. 必要に応じて nist-its90-config.h を編集します。

  2. ソースファイルに以下を追加します。

    #include <math.h>	/* K型の場合のみ (exp() が必要) */
    #include "nist-its90.h"
  3. コンパイルは、例えば次のようになります:

    gcc -c nist-its90.c
    gcc -c nist-its90-K.c
    gcc -o [execfile] [your source].c nist-its90.o nist-its90-K.o -lm

Arduino の場合もほぼ同様の手順で使用できます。

  1. 必要なファイルをプロジェクトディレクトリーにコピーします。

  2. 必要に応じて nist-its90-config.h を編集します。

  3. .ino ファイルに、以下の記述を追加して下さい。

    #include "nist-its90.h"

K型熱電対を用いた測定で、熱起電力 emf, 冷接点の温度 t_amb が得られたときに、測温接点の温度 t を計算するには、

t = emf2temp_K(emf + temp2emf_K(t_amb));

とします。

ファイル

本ライブラリーは以下のファイルで構成されます。

Makefile

NIST データーベースから nist-its90-*.c, nist-its90.h を生成する際に使用します。

nistcoeff.pl

NIST データーベースから nist-its90-*.c, nist-its90.h を生成するスクリプト

nist-test.pl

生成されたプログラムの検証

nist-its90.c

多項式を求める (ホーナー法による)

以下は nistcoeff.pl により生成されたファイルです。 これらのファイルは上記のファイルを使用して生成することができますが、リポジトリーに含まれているので、通常は自分で生成する必要はありません。

  • nist-its90-B.c

  • nist-its90-E.c

  • nist-its90-J.c

  • nist-its90-K.c

  • nist-its90-N.c

  • nist-its90-R.c

  • nist-its90-S.c

  • nist-its90-T.c

  • nist-its90.h

作り方

自分で make する場合は以下の手順で実行して下さい。

NIST のデーターベース自体はこのリポジトリーには含まれていないので、NIST の NIST ITS-90 Thermocouple Database の Download Tables のページから All Thermocouple Types をダウンロードして下さい。

その後、

make
make test

を実行します。 (make test は任意)

See also

MAX31855 (Cold-Junction Compensated Thermocouple-to-Digital Converter by Maxim Integrated) での利用方法については、 MAX31855の温度データーの補正 を参照して下さい。

License

  • MIT License