Main Content

非線形関係の近似: S タイプ熱電対

この例では、タイプ S 熱電対の非線形関係を近似する方法を示します。

熱電対のモデル化と信号の変換

熱電対は、位置センサーやゆがみ計、圧力変換器、測温抵抗体 (RTD) と共に、現在一般的なアナログ変換器の 1 つです。ゼーベック効果 (熱電効果とも呼ばれる) の原理に基づく熱電対は、各ジャンクション タイプの有用な動作範囲にわたって、よく知られている非線形動作を経験的にとります。このモデルを実行すれば、各コンポーネントが動的測定精度に与える累積影響がわかるでしょう。この例では、タイプ S (白金 -10% ロジウム (+) 対白金 (-)) の動的温度測定システムの以下の各コンポーネントのモデルに的を絞ります。それらのコンポーネントとは、プローブ付き熱電対装置、信号調節メソッド、アナログ デジタル コンバーター (ADC)、ADC 出力を温度値に変換するためのソフトウェア仕様です。その後の節では、Simulink® モデルで標準の NIST ITS-90 熱電対データを取得して使用する方法を示します。ルックアップ テーブルと Polynomial ブロックは、この設計においては熱電対の非線形動作を取得するために使用されます。Polynomial ブロックは、一部の用途ではルックアップ テーブルの代わりとして実用的であり、完全な多項式表現の計算は増えますが、ROM 使用量が最小限に抑えられます。

open_system('sldemo_tc')

図 1: 温度測定システム: 物理現象からソフトウェア値までの一連のコンポーネント

熱電対信号のシミュレーション

熱電対モデルの主な 2 つの特徴は、ビート プルーブのダイナミクスと、熱電対の温度からミリボルト信号への変換です。ビートプローブのダイナミクスは、30 ミリ秒の 1 次システムとしてモデル化され、非線形熱電対動作は、タイプ S 熱電対 -50 ~ 1063℃に対する NIST Standard Database 60 からのセグメント 1 多項式データを使用してモデル化されます。数値安定性のために、係数は、Polynomial ブロックからマイクロボルト単位の値を返すようにスケーリングされています。1 タイプ S 熱電対モデルのサブシステムの出力は、Unit Conversion ブロックを使用してボルトに変換されます。サブシステムの入力端子および出力端子に単位が指定されていて、サブシステム アイコン上に表示されることに注意してください。単位の詳細については、Simulink モデルでの単位の指定を参照してください。

Polynomial ブロックを使用する代わりに、内挿ルックアップ テーブルを使用できます。テーブル データを Lookup Table ブロック内で Polynomial ブロックの代わりに使用できます。サンプル データは、ファイル sldemo_create_tc_tabledata.m 内のタイプ S 熱電対用 NIST Standard Database 60 から作成されています。このデータベースへのアクセスについては、後の節「熱電対参照データのダウンロードとインポートの手順」で説明します。

アンチエイリアシング フィルターとアナログ デジタル コンバーター (ADC) のモデル

このモデルの ADC では 0 ~ 5 V の信号が予期されるため、-0.235 mV ~ 18.661 mV (-50 ~ 1765℃) の範囲に対応する生の熱電対検出電圧はバイアスがかけられ、増幅されます。3 次バタワース アンチエイリアシング フィルターは、Wn = 15 Hz に対応するように Signal Processing Toolbox™ を使用して設計されました。

[num,den] = butter(3, 15*2*pi, 'low', 's')

このアンチエイリアシング フィルターの出力は、量子化モデルを駆動するサンプルアンドホールド装置に供給されます。この例ではサンプル期間が 20 ミリ秒であるため、変換時間は無視されます。現在使用可能な装置に比べて一般的に 2 けたも小さいためです (メモ: 変換時間がサンプル期間の相当な部分を占める場合は、システムのダイナミクスに大きな影響を与えるため、変換時間を無視することはできません)。

このモデルの量子化アルゴリズムでは、0 ~ 5 V の信号が受け取られ、16 ビットの符号付き整数で 12 ビットのデジタル ワードが出力されます。値 0 は 0 V に対応し、値 4096 は 5 V に対応します。最下位ビット (LSB) の変化は約 1.2 mV です。12 ビットでは値 4095 にしか届かないため、この装置で読み取り可能な最高電圧は約 4.9988 V です。動作範囲内で LSB 誤差を 1/2 にするために、各電圧点間で値が中途変更され、0 V では間隔が 1/2 の幅に、5 V 直下では 3/2 の幅になります。最後の間隔は 3/2 の幅があるため、LSB が 1 つあります。

データ コンバーターの理解

sldemo_adc_quantize モデルでは、A/D コンバーターのコンポーネントをさらに詳しく見ることができます。

open_system('sldemo_adc_quantize')

図 2: ADC 量子化モデル化の詳細 (変換時間はゼロ)

sim('sldemo_adc_quantize')
set(gcf,'Color',[1,1,1]);

図 3: ADC の量子化の特性

ax = get(gcf,'Children');
set(ax(1), 'xlim', [4085, 4100]);

図 4: ADC の量子化の特性: 範囲の最上部にズームインして、ハイ エンドでの 1 LSB 誤差の動作を確認 (残りの範囲ではわずか 1/2 LSB の最大誤差)

ADC 出力を温度値に変換するためのソフトウェア仕様

出力変換サブシステムでは、ADC からの 16 ビットの符号なし整数入力が必要ですが、そのフル スケール範囲は 0 ~ 4095 カウントであり、-0.235 mV および 18.6564 mV の熱電対ループ電圧に対応しています。入力変換で最高の精度を実装できる最も速いアルゴリズムは、直接ルックアップ テーブルです。入力は 0 ~ 4095 の整数であるため、変換プロセスがテーブルへのインデックスのみになるように、考えられる入力値それぞれに対応する熱電対温度を与えるテーブルを作成することができます。しかし、ADC 出力値ごとに 1 つの数字が必要となるため、12 ビット ADC の場合、メモリに制約のある環境では負担となります。倍精度データの場合は、16 KB の ROM が必要となります。タイプ S 熱電対参照データから直接ルックアップ テーブルを作成するための方法については、ファイル sldemo_create_tc_tabledata.m を参照してください。このアプローチに関連する誤差は、テーブル作成プロセスに対して完全に隔離されています。それは、考えられる入力値それぞれに関連付けられた出力値が存在し、実行時ルックアップ プロセスによる追加誤差が発生しないためです。

内挿されたテーブルも、わずか 664 バイトでモデルに入れられています。必要な ROM 容量は直接テーブル ルックアップに比べて大幅に減らせますが、間接的なメモリ アクセスに比べて計算時間は少し長くなり、測定に誤差がもち込まれ、テーブル内の点の数が増えると測定の質は低下します。

open_system(sprintf('sldemo_tc/3 Software specification\nfor converting\nADC values to temperature'))

熱電対参照データのダウンロードとインポートの手順

NIST ITS-90 Thermocouple Database (NIST Monograph 175 の Standard Reference Database 60) を使用して、8 つの標準的な熱電対タイプの動作を説明する標準参照データにアクセスできます。このデータベースでは、熱電対出力が International Temperature Scale of 1990 に関連付けられています。この例に付属しているサポート ファイルを完全に実行するために必要なデータを以下の手順に従って取得し、読み取ってください。

1. インターネット上で NIST Standard Database 60 サイトにアクセスし、ファイル all.tab をローカル ディレクトリにダウンロードします。このファイルは All Thermocouple Types ハイパーリンク下にあるものと同じです。ダウンロードが完了したら、このページに戻ります。

2. cd コマンドを実行して、all.tab 熱電対データベースをダウンロードしたディレクトリに移動します。

3. データベースを解析し、変換ツール readstdtcdata.m を使用して MATLAB 構造体配列に変換します。

tcdata = readstdtcdata('all.tab');
save thermocouple_its90.mat tcdata;

(ヒント: 上記の MATLAB コードを強調表示し、右クリックして [選択を実行] を選択することにより、実行します。)

これで、ファイル thermocouple_its90.mat の変数 tcdata の標準熱電対タイプ B、E、J、K、N、R、S、および T に対する温度 (T、℃) 対電圧 (E、mV) のデータ、近似多項式係数、および逆多項式係数が揃いました。sldemo_create_tc_tabledata.m 内の MATLAB スクリプトでは、モデル例で使用される Lookup Table ブロック パラメーターが、このデータを使用して用意されます。

ルックアップ テーブルで使用する参照データの調整

tcdata 構造体または all.tab の熱電対データ テーブルを見ると、おそらく以下のようなことに気が付くでしょう。

  • データ内で繰り返される 0℃の温度点

  • 出力形式が 3 けたであるためにデータ内で繰り返される出力電圧点

  • 同じ出力をもつ 2 つの温度の非単調な動作。たとえばタイプ B の熱電対の場合、T(E) はうまくいきませんが E(T) はうまくいきます。

readstdtcdata() ルーチンにより、0℃の温度点の繰り返しはデータから削除されますが、データ形式を理由とする電圧の繰り返しと、いくつかの曲線終点の非単調な動作は、個々に処理しなければなければなりません。sldemo_tc_blocks という名前の参照モデルは、sldemo_tc_blocks_data.mat を使用して作成されています。その中のルックアップ テーブルには、all.tab の 8 つの標準的な熱電対に対する内挿多項式から得られたデータが含まれています。

open_system('sldemo_tc_blocks')

図 5: ITS-90 内挿多項式から作成された全範囲 2℃の内挿熱電対テーブル

参考文献

1. NIST ITS-90 Thermocouple Database

2. "Temperature-Electromotive Force Reference Functions and Tables for the Letter-Designated Thermocouple Types Based on the ITS-90".National Institute of Standards and Technology Monograph 175; 1993. 630 p.

3. The International Temperature Scale of 1990 (ITS-90), Consultative Committee for Thermometry (CCT) of the International Committee for Weights and Measures (CIPM)

4. Thermoelectric Effects in Metals: Thermocouples, S. O. Kasap 1997

メモ: エンジンなどの複雑なシステムの経験的関係を判断したり、モデルを測定データに合わせたりするために MathWorks® が提供している Model Based Calibration Toolbox では、最適化されたテーブル データベースの作成、値の抽出および自動テーブル入力コンポーネントのための実験計画法が採用されています。