主要内容

このページの翻訳は最新ではありません。ここをクリックして,英語の最新版を参照してください。

物理量と測定スケール

はじめに

固定小数点ハードウェアを使用するという決定は,数値を特定の形式で表現するという選択にすぎません。この表現は,最終製品の電力消費,サイズ,メモリ使用量,速度,コストの面でメリットをもたらすことがよくあります。

物理量の測定にはさまざまな数値書式があります。たとえば,水の沸点は摂氏100度,華氏212度,ケルビン温度373度,ランキン温度671.4度です。どの数値で表しても,物理量はまったく同じです。数値が異なるのは4つの異なるスケールが使用されているためです。

摂氏のようによく知られている標準スケールは,情報交換には便利です。しかし,固有の非標準スケールを作成して使用することが効果的な場合もあります。それは,限定されたリソースを最大限に利用することが必要な場合です。

たとえば地図の作成者は,非標準のスケールを使用することで,固定サイズの用紙に最大限の詳細を含めることができます。米国の典型的な道路アトラスでは,各州が2ページにまたがって示されています。インチ対マイルのスケールは,ほとんどの州で固有です。インチに対するマイルの割合を大きくすることで,テキサスは2ページに収まります。ロードアイランドにこれと同じスケールを使用すると,ページの使用効率が下がってしまいます。インチに対するマイルの割合をはるかに小さいものにすると,ロードアイランドは最大限の詳細を含めて表示されます。

変数の測定値を組み込みプロセッサに収めることは,用紙に州の地図を収めることと似ています。地図のスケールは,州のすべての境界線をページ内に収めることができるものでなければなりません。同様に,測定値の2進スケールでは,最大値と最小値が収まらなければなりません。さらに,地図のスケールは,最大限の詳細を含めるために,ページを最大限に利用しなければなりません。同様に,測定値の2進スケールは,最大限の精度を実現するために,プロセッサを最大限に利用しなければなりません。

測定に標準スケールを使用することには,互換性の面で明らかな利点があります。しかし,原則を破って固有の非標準スケールを使用することに価値がある場合もあります。また,一意性と互換性の両方の組み合わせが賢明である場合もあります。詳細は,次節を参照してください。

測定スケールの選択

液体水の温度を測定して,符号なしの8ビットの整数でそれらの測定値を表すとします。幸いにも液体水の温度の範囲は限定されています。使用するスケールにかかわらず,液体水の温度は氷点から沸点までの範囲に限定されます。したがって,これは有効な256個の8ビット値を使用して取得しなければならない気温の範囲です。有効な8ビット値は次のとおりです0,1,2,…,255。

温度を表現するための1つの方法は,標準のスケールを使うことです。たとえば,整数の単位を摂氏にします。したがって,整数0と100はそれぞれ氷点の水と沸点の水を表します。このスケールは整数から摂氏度数への明白な変換を与えるという利点をもちます。ただし,101 ~ 255年の数値は使用されないという欠点もあります。この標準スケールを使用すると,数値範囲の60%以上が無駄になります。

2番目の方法は,非標準のスケールを使うことです。このスケールでは,整数0と255がそれぞれ氷点の水と沸点の水を表します。このスケールでは,氷点と沸点の間に99個ではなく254個の値があるため,最大限の精度が得られるという利点があります。ただし,単位はビットごとにおおよそ摂氏0.3921568度であるため,摂氏への変換には2.55による除算が必要になります。これはほとんどの固定小数点プロセッサでは比較的負荷の高い計算です。

3番目の方法は”準標準”のスケールを使うことです。たとえば,整数0と200はそれぞれ氷点の水と沸点の水を表すようにすることができます。このスケールの単位はビットあたり摂氏0.5度です。ただし,このスケールでは201 ~ 255の数値を使用しないので,21%が無駄になることを意味します。このスケールの利点としては,標準スケールへの変換が比較的簡単にできるという点があります。摂氏への変換には2による除算が必要ですが,これはほとんどのプロセッサでは簡単なシフト演算です。

乗算の域を超えた測定スケール

1つのスケールから別のスケールへの変換での主な演算の1つは乗算です。前述のケーススタディでは,量子化整数値问から実数の摂氏値Vへの変換の3つの例を示しましたが,次のようにどれも乗算のみを使用しました。

V One hundred. o C One hundred. 1 转换 1 One hundred. o C 255 2 转换 2 One hundred. o C 200 3. 转换 3.

図式的には,変換は傾き年代をもつ線で原点を通過しなければなりません。原点を通る線は,純線形変換と呼ばれます。純線形変換に限定することは無駄につながり,一般線形等式を使用する方が効果的な場合がよくあります。

V = sq + b

バイアス項Bを追加することで,限定されたビット数値に量子化する際に,より高い精度を得ることができます。

一般線形等式は,量子化されたスケールへの便利な変換を可能にします。ただし,量子化のすべての方法と同様に,精度は限られており,変換による誤差が発生する可能性もあります。量子化の誤差を含む一般線形等式は,以下のとおりです。

V 年代 + B ± E r r o r

量子化された値问が最も近い表記可能な数値に丸められる場合は,次のようになります。

年代 2 E r r o r 年代 2

つまり,量子化誤差の量は,ビット数とスケールの両方によって決定されます。このシナリオは,最高条件での誤差を表しています。その他の丸めスキームでは,誤差は倍になることもあります。

温度の測定スケールの選択

通常の電子制御型内燃エンジンでは,燃焼の直前にシリンダー内で空気と燃料の希望の割合が達成されるように燃料の流量が調整されます。したがって,現在の空気流量レートが既知でなければなりません。空気流量を直接測定するセンサーを使用するメーカーもありますが,関連する信号の測定から空気流量を計算するメーカーもあります。これらの変数の関係は,理想気体の状態方程式で算出されます。理想気体の状態方程式では,気温による除算を使用します。正しい結果を得るためには,方程式でケルビンやランキンなどの絶対温度スケールを使用しなければなりません。ただし,絶対温度スケールに直接量子化すると,必要以上に大きい量子化誤差が発生します。

エンジンに流入する空気の温度の範囲は限定されています。典型的なエンジンでは,ラジエーターはブロックを冷却液の沸点以下に保つように設計されています。最大 225oF (380 K)であると見なしてください。空気はインテークマニホールドの中を移動する際,最大気温まで加熱される可能性があります。極端な気候でのコールドスタートの場合,-60oF (222 K)もの低温になることもあります。したがって,絶対温度のケルビンスケールを使用すると,対象範囲は222 ~ 380 Kになります。

組み込みコントロールシステムによる処理のためには,気温を量子化しなければなりません。符号なしの3ビットの数値への非現実的な量子化,つまり,0,1,2,…7を想定した場合,最大精度の純線形変換は以下のようになります。

V 380 K 7.5

量子化された変換と対象範囲を次の図に示します。

有効な量子化値は7.5個あることに注意してください。これは,最初のビットの半分のみが0より上の気温(実際値)に対応するためです。

量子化誤差は-25.33 K/bit≤Error≤25.33 K/bitです。

量子化された変換の対象範囲と,量子化された誤差を次の図に示します。

純線形変換の代わりに,最大精度の一般線形変換を考えます。

V 380 K 222 K 8 + 222 K + 0.5 380 K 222 K 8

量子化された変換と対象範囲を次の図に示します。

量子化誤差は-9.875 K/bit≤Error≤9.875 K/bitで,これは純線形変換に関連する誤差の約2.5分の1です。

量子化された変換の対象範囲と,量子化された誤差を次の図に示します。

明らかに一般線形スケールは対象範囲において純線形スケールよりもはるかに高い精度を与えます。