制御が安定しないのはPWMのせい?分解能シミュレーション方法

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

デジタル制御ではPWM分解能が制御に大きく影響を与えます。

この記事では、PWMの分解能が与える影響と、そのシミュレーション方法について解説します。

シミュレーションは、高速回路シミュレータScideam(サイディーム)で行います。

分解能の計算方法

一般的なマイコンでは、PWMの分解能はスイッチング周波数割るクロック周波数となります。

例えば、TI社のTMS320F28069というマイコンでは、クロック周波数が90MHzですので、100kHzのスイッチングを行うと分解能は

$$\frac{90MHz}{100kHz} = 900$$

となります。
ただし、アップカウンタのみでPWMを作った場合です。アップダウンカウンタを使った場合には、この半分の分解能になります。
(念のために、このマイコンは高分解能PWMを持っていますが、ここでは考慮しません。)

ということで、この分解能をDutyに当てはめましょう。

分解能の適用

PWMの時比率Dutyが0~1の浮動小数点であるとき、以下のプログラムで分解能を適用させることができます。

D = int(Duty * 900) / 900

Dは最終的にPWMにセットされる量子化誤差を含む時比率、
int関数は、固定小数点化する関数です。

以上のような式を通すと、浮動小数点Dutyを分解能900倍し、そのうち小数点になってしまったところをint関数で整数化することで小数点を削除し、900で割ることで、分解能を考慮した0~1の値に変換します。

分解能の影響シミュレーション

シミュレーションには、バッテリーにへの充電電流を制御する、デジタル制御による降圧型コンバータを例に挙げてシミュレーションします。

バッテリー充電の降圧型コンバータ回路

制御系はプログラムで記述しており、量子化誤差の有り無しについて切り替えた結果を確認します。

プログラム記述例

量子化誤差の影響を反映させたくないときは、この一文をコメントアウトすることで簡単に浮動小数点に切り替えることができます。

PWM量子化誤差の有無の影響

制御系は全く同じですが、PWM量子化誤差がある場合は、およそ0.2Ap-pのリップルがあり、出力は安定しません。

一方、量子化誤差無しの場合は、とても安定しています。

まとめ

PWM分解能が制御系に大きく影響を与えることがよくわかると思います。
もちろん制御系の性能によって分解能の影響を受けにくくるすことも可能ですので、制御実装の前に、是非一度サイディームでシミュレーションしてみてください。

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

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

お問合せ


中村 創一郎

中村 創一郎

株式会社スマートエナジー研究所代表取締役 博士(工学)
モデルベース開発やシステムズエンジニアリングを用いて、 系統連系インバータや双方向コンバーターなどのデジタル制御電源開発を得意とする、エンジニア兼コンサルタント兼経営者

日々、シミュレーションの魅力を伝えられないか奮闘中

実績
大手電機メーカーへの開発支援、モデルベース支援
系統連系インバータの開発・認証取得支援
自動車メーカーへのシステムズエンジニアリング支援
宇宙航空研究開発機構との共同研究
など

会社創業以来10年以上、デジタル制御電源とモデルベース開発に従事