制御のためのむだ時間検討

投稿者: 中村 創一郎 投稿日:

ADコンバータで、思った通りサンプリングできているところまで構築できたのに、何だかフィードバック制御がうまくいかない。

シミュレーションでは、安定して動いているのに実機に入れるとうまく動かない。

それはなぜでしょうか。

それはデジタル制御のむだ時間、位相遅れが関係しているかもしれません。

特に、デジタル制御電源の場合、制御対象となる電源に対してサンプリング周波数を十分高くすることができません。というか電源が早いので、デジタルの位相遅れが大きく影響を与えます。

どのようになるのか、それぞれ見ていきましょう。

デジタルの位相遅れメカニズム

デジタル制御はサンプリングしてから、制御量を反映させるまで、以下のようなプロセスで行われます。

制御ブロック図

ここで、Plantは制御対象、つまり電源主回路、Controllerは、まさにマイコンの中身の処理で、ADC、PID制御などの制御処理、PWMなどプラントに制御量を反映させる処理の3段階あります。

おすすめとしては、ADCの終了後すぐに、制御処理を実行し、PWM処理を実行することです。

これを最短で行えた場合、ADC取得から、PWM出力までの時間は以下のようになります。

1周期遅れのイメージ

このように、フィードバック量を反映させるのにかかる時間を、いわゆる「むだ時間」、「デジタルの一周期遅れ」と言います。 以下のことが次の手順で行われます。

  1. ADCが完了する
  2. ADCの値を使って制御部を演算する
  3. 制御演算結果を時比率に反映する

1から3までが1周期の時間に間に合えば、最短遅れで制御することが可能です。

タスクオーバーラン・最悪二周期遅れ

さて、制御処理とはPID制御などのように本来デジタル制御で処理したい部分です。

制御処理が複雑になっていくと、マイコンに必要な演算時間が長くなっていきます。

もしも、次の処理開始までに演算を終えられない場合、マイコンの仕様にもよりますが、PWMの時比率がロックされる等が起こり、最悪の場合一瞬で電源主回路を破壊してしまうでしょう。

このようにマイコンの処理時間が間に合わないことをタスクオーバーランと言います。

ということで、タスクオーバーランをしないように処理をギリギリまで行うとすると、以下のようになります。

2周期遅れのイメージ

先ほどの図と比べてみてください。

「デジタルの一周期遅れ」と言っていたものが「二周期遅れ」になっています。

ここで、ADCとPWMと描いているところは、ハードウエア的に実行している部分を表していますので、制御処理と並列に処理されます。

このように制御処理、及びファームウエアアーキテクチャにもよりますが、演算処理が長くなっていくとPWM反映まで二周期遅れになってしまいます。 このようになった場合、制御系はこの位相遅れに耐えられる制御にしておく必要が出てきます。

余談:PWMの時比率反映方法

図では、PWMの時比率の反映方法を次のPWM更新周期で反映しているような記述にしています。しかしながらマイコンの設定で変更することによって、PWMレジスタに反映させたタイミングで時比率を変更することも可能です。そのようにすれば、二周期遅れとはならずに、「一周期と少し」という遅れで済みます。

ただ、演算処理時間を考慮したシミュレーションは非常に難しく、現実的には、最悪、二周期遅れで安定する制御を作っておいて、実機ではもう少し余裕があると考えることが良いかもしれません。

むだ時間の解析

むだ時間を数式的に解析するということは、いろいろな参考書に載っていますので、参考にしていただければと思いますが、以下の書籍をお勧めします。

今回のようなむだ時間、デジタル制御の話だけではなく、コンバータの回路方式の話から、電源の評価方法など、設計のキモとなる話が多数載っています。

さて、デジタルのむだ時間、一周期遅れを回路シミュレータScideam(サイディーム)で解析してみましょう。

回路モデルは、周波数特性を解析するための、信号発生器、ADC、ADCで取り込んだ値を主回路の直流電源に反映させるためのプログラムの三つで構成されています。

プログラムのイメージ

周波数特性解析を、ADCの入力から、Voutまで取ると、以下のようなボード線図が描けます。

この時、サンプリング周波数は100kHzです。

位相の例

ボード線図からもわかるように、サンプリング周波数の半分の周波数で位相が180度遅れていることがわかります。

一周期遅れと二周期遅れの影響

さて、一周期遅れと二周期遅れでどのように影響が出るか、シミュレーションで解析してみましょう。

まず、サイディームの仕様についてですが、デジタル制御をするためのプログラムは、シミュレーション演算周期の終わりに実行され、次の周期のPWMに値を反映します。つまり、むだ時間を一周期分含んでいます。

したがって、シミュレーションを行う場合は、特に意識せずとも一周期分の遅れが含まれていることになります。 この状態で以下のデジタル制御降圧型コンバータを動かし、ボード線図を取ります。

デジタル制御されるコンバータ

そして、さらに1周期遅らせるためには、ADC素子のDelay機能を使用します。
さらに1回遅らす(2回遅れ)にはこれを1に設定してください

以上の条件で、通常のデジタル制御遅れと、2回遅れを行った場合の一巡の周波数特性は以下の様になります。

遅れの違う周波数特性

周波数特性から分かるように、サンプリング周波数の半分に近づくにしたがって位相遅れが大きくなっていく様子が確認できます。

是非、本記事のサンプルプログラムをダウンロードして、お試しください。

シミュレーションモデルについて

本モデルは、電源パワエレ向け高速回路シミュレータScideam(サイディーム)で動作可能です。
本記事のモデルは以下からダウンロードしてください。

まとめ

制御系設計するときには、ワーストケースもよく考えて設計することをお勧めします。

また、マイコンの動作をとても工夫して、うまく回せたとしても、シミュレーションしづらくデバッグしづらいような設計にすることはあまりお勧めできません。

デバッグ、検査から、運用、保守までしやすいモデルに仕上げることお勧めします。

また、ADコンバータ設計については、以下のリンクのまとめを併せてご覧ください。

制御のためのADコンバータ設計 まとめ

お問合せ


中村 創一郎

株式会社スマートエナジー研究所代表取締役 博士(工学) モデルベース開発やシステムズエンジニアリングを用いて、 系統連系インバータや双方向コンバーターなどのデジタル制御電源開発を得意とする、エンジニア兼コンサルタント兼経営者 日々、シミュレーションの魅力を伝えられないか奮闘中 実績 大手電機メーカーへの開発支援、モデルベース支援 系統連系インバータの開発・認証取得支援 自動車メーカーへのシステムズエンジニアリング支援 宇宙航空研究開発機構との共同研究 など 会社創業以来10年以上、デジタル制御電源とモデルベース開発に従事