BEMFについて                                        更新2008/05/12


NGDCCデコーダでは、モータの制御に、古典的なPI制御方式を採用しています。これは、モータの回転数を負荷に関わらずスロットル指示回転数に制御する方式で、モータ回転数を推定するために、モータのBEMF(逆起電力)を使用しています。
最新のデコーダ製品では、これにトルク補償機能を追加しています。

PI制御のパラメータは、2つあります。

P (CV57) 比例制御パラメータ
スロットル指示速度と実際の速度の差に係数をかけてモータに印加する電圧を決定する係数

基本的なフィードバック係数です

I (CV55) 積分制御パラメータ
スロットル指示速度と実際の速度の差を係数をかけてさらに累積してモータに印加する電圧決定する係数

モータに印加する電圧を増加しても直ぐには効果が現れません。その時差を埋めるように働く係数です。

詳しい技術的な事柄はインターネットで検索すればたくさんあると思います。

簡単に説明すると、パワーパックでモータをある回転数に制御する場合に、ダイヤルを右に回すときと左に回すときとではある回転数に達する位置が異なったり、多めにダイヤルを回して少し戻すというような操作をすることがあると思います。
そういった操作をデジタル的に制御する方法が、PI制御という方法です。

BEMFチューニング方法

最新のNGDCCデコーダでは、トルク補償機能もあるので、調整項目は多くなっていますが、まずは、CV55,CV57だけに着目してチューニングを行います。

BEMFチューニングの難しさは、以下の条件で状況が変わってしまうことです。たとえば、単機ではうまく調整できているのに貨車を多数連結して重くするとうまくいかないなどです。

- モータの種類
- ギヤ等伝達装置
- 連結車輌数
- 線路状況

ですから、あまり神経質に追い込まずに、どのような場面でもそれなりの性能を発揮するのが良い調整方法です。また日を空けたりして少しずつパラメータを変えたり元に戻したりを繰り返したりします。NGDCC出荷時の初期値はその意味では比較的問題が出ていない設定値ですが、今後も少しずつ変更していく予定です。

さて、現実的なチューニング方法ですが、

まずエンドレス線路を用意して動力車は単機で走らせる環境を用意します。
CV値の設定は、OPSを利用するか、弊社DP1(赤い箱)を用意するのも良いでしょう
CV55=0にします。
スロットルを中点に設定して、CV57を増加させて走行がギクシャクする寸前までもっていきます。この値がCV57の上限値です。
この状態で、CV55を、少しずつ増加させてやはり走行がギクシャクする寸前の値が、CV55の限界値です。
CV55,CV57の上限値がわかったところで、いろんな条件でも、スロットル位置でも走行がスムーズになるように値を少しずつ変更しながら評価します。
低速部分でギクシャクする場合には、トルク補償(CV60.1)を有効にすると劇的に改善する場合があるので、必要であればトルク補償を有効にして再度 CV55,CV57を調整しなおします。
もし、CV56(トルク補償値)が設定できるデコーダであれば、それも合わせて調整します。

CV56(D) 微分パラメータについて

以前のNGDCCデコーダでは、CV56をトルク補償値ではなく、PID制御のDパラメータとして使用していましたが、速度制御において、Dパラメータの使用は難しいため最新のデコーダでは、PID制御ではなくPI制御を採用しております。このDパラメータの調整方法は、P及びIパラメータの限界値を求めた後に、Dパラメータも同様に限界値を求めていきます。Dパラメータはより走行をギクシャクにしやすいのでなるべく小さい値を味付け程度に設定します。

 

 

トルク補償とは

サイレントPWMとは、PWMの周波数を10KHz以上の高い領域に持っていくことですが、欠点として低速時のモータトルクが著しく低下することです。コアレスモータに適した周波数ですが、一般のモータでは、スロットルの低い位置では、動かず印加した電力が全て熱になってしまいます。これは、以下のように周波数が高くなると、パルスの幅が狭くなり、1回分のパルスでモータが微動だにしない状態です。トルク補償は、一定の割合で十分な幅のパルスを加えてモータを強引に動かしてしまおうという考え方です。以下のように、PWMの幅が変化するためのノイズが生じてしまいます。NGDCCの最新のデコーダではこのトルク補償の効き具合を、CV56の値で調整できるようになっています。
なお、CV56.0=0の場合、すなわち、偶数の場合には、PWMのBOOST値を最大 127に制限します。
奇数の場合には、PWMのBOOST値を最大 255にとなります。これは、モータの負荷を軽減させるための方策ですが、スロットル位置で等で若干回転が不安定になることがあります。(update 2008.5.12)