PIC版シャッターテスタ (5) 測定誤差について

計測する場合の精度について考察してみよう。

特に計測系の機器開発を行う場合、どれだけの測定精度を実現するかはコスト的に重要な課題である。要求以上の精度を実現しても、コストが想定をオーバーしてしまっては元も子もない。要は、バランスが重要である。コストをかけずに性能を上げる努力は、技術者たるもの、常に目指すべきだとは思うが。

精度に影響を及ぼす要因には以下が考えられる。

1.計測に利用するクロック精度
2.物理現象に対するセンサの反応時間
3.CPUに取り込む量子化誤差
4.プログラム上の計測値分解能

1.は、計測をカウントする基本クロックの精度であり、最低限の精度を支配するものだ。CRによる発振回路では、周囲温度によって大きく変動するが、温度補償型水晶発振子を使えば1ppm程度の誤差に抑えることが可能だ。しかし、精度の高さに応じてデバイスも高価になる。例えば、CRであれば1円2円の部品代だが、温度補償型水晶は秋月でも600円する。

2.は、計測対象の物理現象を何らかのセンシングデバイスで検出する必要があるが、どんなものでも物理現象にセンシングデバイスが反応するのに遅延時間が発生する。そして、センサが反応するまで(立上り)の遅延時間と、センサが元に戻るまで(立下り)の遅延時間は対称ではない。ものにより、立上りは早いが、立下りは遅いという差異が当たり前だ。

3.は、センシング情報は一般的にアナログであるが、CPUで処理するにはデジタル化しなければならない。1ビットの量子化であれば、0から1に変化する閾値によって変化点が決する。10ビットのデジタル化であればADコンバータの性能依存の誤差が生じる。直線性歪、温度依存性などである。そして、アナログ値をデジタルにするには、量子化分解能限界で、1ビットよりも小さな値は表現することができない。

4.は、上記3種類の誤差よりも、最も支配的な影響力を持つことになる、CPUの処理性能と、プログラムの処理内容から決まる計測するための分解能だ。

トータルな精度は、これらの総和となる。1.の精度をどんなに高めても、他の精度がけた違いに悪ければ、全体の精度は悪くなるため、全体のバランスを考慮して部品や回路を決定することが重要だ。

今回は、CPUにマイクロチップのPIC12F1822の内部クロック動作モードで使用することを決めている。全体のコスト、基板の大きさなどから決定した。当初は兄弟CPUにPIC16F1823というインタフェースが多いチップの選択肢があった。外部に水晶を配置し、1.のクロック精度を高めるという解もあったが、以下の検討結果から最終的には、内部クロックで十分との結論に至った。

データシートを見ると、PICの内部クロックの精度は工場出荷時に0~60℃の温度環境において±2%に調整されている。専用レジスタに個別値を設定することで精度調整する方法だ。専用レジスタに設定されている値は、個体によってばらばらであることから工場出荷時に調整されていることが確認できる。

2.のセンサ性能による部分については、シリーズ(2)でフォトトランジスタセンサの高速ドライブ回路について検討した。採用した回路では、立上り遅延と立下り遅延の差が3μsとなり、実際の物理現象(今回は、シャッターの開いている時間)に対して3μs短く計測されるということになる。

3.については、デジタル入力の場合と、アナログ入力の場合では量子化ビット数が1か10と大きく異なり、どちらかによって異なる。ADコンバータを利用する場合は、データシートのADコンバータの性能よりオフセット誤差2.5ビット、積分直線性誤差1.7ビット、微分直線性誤差1.0ビット、ゲイン誤差2.0ビットとある。分解能は10ビットなので、最悪はトータル2.5+1.7+1+2=7.2ビットとなり7.2/1024=0.7%となろうか。意外と優秀だ。

一方、デジタル入力の場合は、0から1に変化する閾値が影響する。データシートからは、Lo=0~0.8V、High=2.0~5Vとなっている。0.8~2.0Vは不定で個体によるということだ。何ともアバウトな仕様だが、TTLレベルということはトランジスタのベース電圧と同レベルとなるので、概ね0.8Vを超えればHighと判断されると考えてよいだろう。

4.については、今回の回路およびプログラムでは、計測の最小単位は8μsとしている。これは、CPUの処理速度、割込み内の処理内容といった条件から決定したものだ。

今回の計測対象は、カメラのシャッタースピードだ。つまりは、シャッターが開いている時間を計測することになる。しかも、物理的にフィルム窓が開いている機械的なシャッターの速度であり、デジカメの電子シャッターではないため、高速でも1/2000秒程度だ。1/2000秒の場合で、開いている時間は500μsだ。

それでは、実際の誤差を計算してみよう。

4.について
分解能が8μsということは、そもそもが分解能で8/500=1.6%の誤差が発生するということとなる。

2.について
3μsの誤差は、上記8μsが場合によってプラスやマイナスに影響するので3/8*1.6=0.6%の誤差となろう。

3.について
採用回路における立上り、立下り時間が1μs程度なので1/8*1.6=0.2%の誤差となろう。

1.について
CPUの内部発振クロックの誤差が2%。

これらから、トータル誤差は
1.6+0.6+0.2+2=4.4% となる。総合的に見て、5%程度の誤差で、シャッタースピードが計測できるということになろう。

ここで、1.のクロックに誤差1ppmの温度補償型水晶を利用すると、全体の精度は3%程度に向上する。5%と3%の精度差が、どれだけの意味を持つか。それに価値があれば、部品代にコストをかければよいが、価値を見出さなければ現状のままでもよいという判断となろう。

いずれにせよ、要求する精度とコストのバランスを考えて、部品や回路を決めることが重要である。ただし、コストをかけずに性能を高めるという姿勢は常に目指したいものである。

前回へ  次回へ

(Visited 1,283 times, 1 visits today)
スポンサーリンク

シェアする

フォローする