制御のためのADコンバータ設計【1】
10bit?12bit?16bit?どうすればいい?ADCの分解能
ADコンバータの分解能を決めるとき、なんとなく10bitや12bitをきめていませんか?
このマイコンは使い慣れているから、とか、以前から12bitだからとか、
例えば、安いマイコンを使いたいから10bitしか選べないんだけど大丈夫かな?と、質問されたときに明確に答えられるでしょうか?
電源制御やパワエレ制御のマイコンで、検討要素の一つがADCです。
この記事では、ADCの性能を決めるときに考えなければならない項目について、そのイメージをざっくり紹介します。
それでは参りましょう。
簡単にADコンバータとは
ADCの中身についてはここでは触れませんが、ADCの性能選定するときに必要な要素について大まかに解説します。
ADCはアナログ・デジタル・コンバータと、その名の通り、入力の電圧を10bitや12bitのデジタル値に変換するアナログ世界とデジタル世界のインターフェースになるものです。
例えば、TI社のF28069であれば、12bitのADCを搭載しているので、入力電圧0~3.3Vに対して0~4095の値が出力されます。
この動作は、ある周期的な命令により、ある時点でADCが動作し、また次の時点でADCが動作しということを繰り返し行います。
このような動作により、サンプリングポイントと、サンプリング遅れということが起こるということだけ、ここでは述べておきます。
分解能が悪いとどうなるか
分解能が悪いと、お察しの通り細かな電圧は測定できなくなります。
具体的には、0〜400Vの電圧を分解能12bit(0〜4095)のADCでサンプリングした場合、ADC、1bitに対しておよそ0.1V(0.098=400/4096)の電圧が対応することになるため、0.1V, 0.2V, 0.3Vということは測定できますが、0.15Vなどの値は測定することができません。この測定できない範囲で起こる誤差を量子化誤差といいます。
性能要求
各分解能のADコンバータは、フルスケール(FS)で以下のような精度があります。
フルスケールでの精度とは測定範囲全体に対して何%の精度を持つかということで、例えば、0.1% FSという要求であれば、測定電圧範囲が0~400Vだとすると、0.4V以上の精度がないといけません。
bit | FS精度[%] |
---|---|
10 | 0.098 |
12 | 0.024 |
16 | 0.0015 |
$$FS精度 = \frac{1}{2^N} \times 100$$
Nはビット数
したがって、0.1% FSを要求された場合、10bitのADCでは心許ないということになります。
制御の精度要求
例えばDCDCコンバータの精度要求として電圧 0.1% FSだったとします。
制御系の性能にもよりますが、制御系がどんなに頑張れてもフィードバック制御をしている以上、ADCの分解能±1bit分は常にずれ続けます。
したがって、10bitでは常に約0.1%FSの誤差を含むことになり、要求を満足することはできません。
制御系の性能や雑音などの影響も含めると、精度要求に対して余裕を見て4倍以上の精度は必要でしょう。
ADC分解能と制御のシミュレーション
さて、精度要求があるため、要求を満足することができるかどうかシミュレーションによって確認してみましょう。
精度要求を満足することができるかは、ADCの分解能と制御系の特性に依存します。
(もちろんPWMの分解能にも依存しますが、その話はまた別の機会に)
例として、降圧型DCDCコンバータの定常状態において、10bitのADCと12bitのADCを使った場合の結果を以下に示します。
サンプル回路は以下からダウンロード可能です。簡単なデジタル制御器付きですので、是非お試しください。
シミュレーションで使用したのは、パワエレ向け高速回路シミュレータScideam(サイディーム)です。
本記事のモデルは以下からダウンロード可能です。
さて、出力目標33.5V(分解能で割り切れない値)に対して同じ性能のデジタルフィードバック制御器を使い、出力電圧を制御します。このとき、出力電圧をADC素子を用いて、10bitと12bitの2つの場合に対して制御します。
ADCはFS 100Vで設定しています。
シミュレーション結果は以下となります。
ADC平均値 | 33.50V |
出力電圧平均値 | 33.59V |
ADC平均値 | 33.50V |
出力電圧平均値 | 33.52V |
どちらの場合も、ADCの平均値は33.5Vと、目標電圧に制御されていることが分かります。これは、デジタル制御器がADCの値を目標電圧になるように制御しているためで、制御器は役目をはたしていることが分かります。
しかしながら、出力電圧平均値は分解能によって違いが現れます。
従って、制御器をどれだけ変更しても、ADCの分解能以上には定常偏差を減らすことができないことが分かります。
10bitの結果では、およそ0.09V、12bitでおよそ0.02の誤差を含む形になりました。この結果は、目標電圧をいろいろな値に変更すると更に多く誤差を含む場合あるいは少なく誤差を含む場合に変わっていきます。
補足
デジタルフィードバック制御器、PWMは64bitの精度です。量子化誤差の影響がでるのはADCのみとしています。
まとめ
ADCは仕様上必要な精度要求から、その値を決定しましょう。
制御において精度要求を満足できるかは、ADCの誤差も検討しなければいけないことに注意しましょう。
また、ADコンバータ設計については、以下のリンクのまとめを併せてご覧ください。
▼関連投稿 ー制御のためのADコンバータ設計ー