制御のためのADコンバータ設計【2】
サンプリングポイントってどこにある?
電源制御するのにADコンバータ(ADC)のサンプリングポイントについてあまり気にしたことがない、とりあえずそれらしい値が取れているようだから、大丈夫!としている方、この記事は必見です。
電源制御においてサンプリングポイントは非常に重要です。
サンプリングポイントが期待通りでないと、実は思った値がサンプリングできていない、制御にとって悪影響を与えているといった可能性があります。
この記事では、電源制御、パワエレ制御を行うときに、どうやってサンプリングポイントを決めたら良いか解説します。
目次
そもそもサンプリングポイントとは
ADCとは、入力されるアナログ電圧のある時点を周期的にデジタル値に変換するものです。制御を行うときには、この時の分解能と今回の記事で扱うサンプリングポイント、そして遅れについて十分考慮しなければいけません。
サンプリングポイントとは、この「ある時点」を周期的にサンプリングするタイミングのことを言っています。
ADCの動かし方は大きく分けて二つあり、何かのトリガ信号で変換を開始する場合と非同期でグルグルと回し続ける方式があります。
以下の例では、8チャンネルあるADCユニットがトリガで開始する場合と、ぐるぐると回し続ける場合の2つのパターンをイメージしています。
トリガが発生してから指定チャンネル分ぐるっと回す
全てのチャンネルをぐるぐる回し続ける
そして電源制御では、非同期で回し続けるよりも、何かのトリガに同期させる方が適しています。詳しくは後で述べますが、サンプリングが非同期で、どこのタイミングでサンプリングしているか分からないとデバッグが非常にしづらいという事があるためです。
そして同期トリガもいくつか選択する事ができます。
でも制御をするためには、現実的にはトリガ対象は
- PWM
- CPUタイマ
の二つしかありません。
それは、基本的にデジタル制御では、内部で演算する数式処理は、一定周期での演算を行なっているはずで、数式処理の入力となるADCの周期が、可変であることはあまりないからです。したがって、一定周期のトリガ信号出力する事ができる、PWMかCPUタイマに同期してADCを行います。
PWMに同期させたい場合
スイッチング電源をPWM制御する場合、ほとんどの場合PWM同期で問題ありません。
PWM同期とは、コンバータのスイッチング素子をオンオフするPWMでADCの開始トリガを作る方法です。
なぜPWMに同期させたいか
スイッチング電源は、オンオフするスイッチの動作によって電源回路の電圧電流が変動します。したがって、スイッチのオンオフに同期させてADCを行えば、電圧や電流は明確にどこのスイッチがどの状態のときの値なのかが分かります。
例えば、降圧型コンバータのL電流のリップルを例に挙げると、PWMに対して以下のような電流リップルが現れます。
スイッチング電源は、オンオフするスイッチの動作によって電源回路の電圧電流が変動します。図のようにP1信号がオンになり、スイッチQ1がオンになると、L電流は上昇し、オフになると減少します。したがって、時刻t1でサンプリングすれば、「L電流のリップルのこの点!」と明確に決めることができるのです。
非同期にしてしまうと、このリップルの中のどこかの点をサンプリングすることになり、フラフラとした値がサンプリングされてしまう可能性があることが分かりますね。
PWM同期の実現方法
ほとんどの電源用・パワエレ用マイコンは、PWMの信号に対して同期させるためのフラグと、そのフラグからどれくらいの時点をトリガとしてADCを開始するかを決めるパラメータを持っています。
例えばTI社のTMS320F28069というマイコンであれば、どのPWM信号でADC開始トリガを作成するか、さらにそのトリガに対してどの位置でサンプリングをするのかを自在に設定することができます。
マイコンが持つこれらのトリガを設定することで、ADCの開始点を決定することが可能です。
PWM同期ADCのシミュレーション
先の例のように、降圧型コンバータのLの電流リップルをサンプリングするシミュレーションを行いましょう。
シミュレーションで使用したのは、パワエレ向け高速回路シミュレータScideam(サイディーム)です。
本記事のモデルは以下からダウンロード可能です。
シミュレーションでは、PWMに同期したADCのサンプリングポイントを3通り作成しています。
スイッチング周波数 | 100kHz |
ADC1サンプリングポイント | 0.1μs |
ADC2サンプリングポイント | 2.5μs |
ADC3サンプリングポイント | 5μs |
ここでサンプリングポイントとは、PWMの開始点からの遅れ時間のことです。
先の図”スイッチとL電流の関係”でt1と表記している部分です。
以下がシミュレーション結果です。
各サンプリングポイントでリップルの影響により0.5A程度の差が表れていることがお分かりいただけると思います。
それならば、リップルを十分落とす事ができるフィルタを、ADCの手前に配置すれば問題がなくなる、とお考えになる方もいるでしょう。
でも実は、パワエレ制御ではこのフィルタの設計もまた悩ましいのです。
そしてもう一点、位相がずれていることも遅れていることもお分かりになると思います。
これらの話は、デジタル遅れの記事に譲るとしましょう。
CPUタイマに同期させたい場合
次にPWMではなくCPUタイマーに同期させたい場合です。
CPUタイマはマイコンで自由に決定することができます。しかしながらPWM同期の例のようにどの位置でサンプリングするかということは不明確です、ではなぜPWM同期にしないのでしょうか。
例として、以下の2点が考えられます。
- スイッチング周波数が変動する場合
- ものすごく高速スイッチングの場合
このうちものすごく高速スイッチングの場合、例えば数MHzのスイッチングの場合はマイコンの性能にもよりますが、PWM同期させる限界を超えている場合があります。
この場合は、本当はPWM同期させたいのだが、させられないというケースになります。
スイッチング周波数が変動するときのサンプリング
スイッチング周波数が変動する場合、PWM同期ではなく一定周期でサンプリングしたい場合があります。
PWM同期でサンプリングするとなると、スイッチング間隔が非常に大きくなった時に、いつまでもADCが駆動しないということが起こりうるからです。したがってこのような問題を避けるために一定周期で実行可能なCPUタイマをトリガにします。
まとめ
サンプリングポイントはスイッチの動作をよく気をつけながら設定しなければいけません。
スイッチング周波数が変動する場合のサンプリングは特に制御系との兼ね合いが難しくなるので十分なシミュレーションをお勧めします。
▼関連投稿 ー制御のためのADコンバータ設計ー