上位版のワンコインデコーダX Plusには、レイアウトの勾配(上り坂・下り坂)やカーブの抵抗に関わらず、車両を常に一定の速度で走らせる定速制御機能が搭載されています。
この高度な機能は、「BEMF(逆起電力)の測定」と「PID(PI)制御」という2つの技術の組み合わせによって実現されています。
BEMF(Back Electromotive Force)とは、モーターが惰性で回っているときに「発電機」として生み出す電圧のことです。モーターの回転が速いほど発電される電圧も高くなるため、この電圧を測ることで「いま車両がどれくらいのスピードで走っているか」を正確に知ることができます。
ワンコインデコーダXでは、以下の設定値を使ってBEMFを測定しています。
- CV54(サンプリング周期): デコーダがモーターの速度を測る頻度です(初期値20 = 20ミリ秒ごと)。
- CV53(ブランキング時間): 測定を行うために、モーターへ電気を送るのを一瞬だけ止める(OFFにする)時間です(初期値14 = 140マイクロ秒)。この電気を止めたわずかな隙に、モーターから返ってくるBEMF電圧をADC(アナログ・デジタル変換器)で読み取ります。
BEMFで「現在の実際のスピード」が分かったら、次はコマンドステーションから指示されている「目標スピード」と比較します。このスピードのズレ(誤差)を計算して、モーターに送るパワーを自動で足し引きするのがPID制御(本デコーダではPとIを使ったPI制御)です。
- Pゲイン:比例制御(CV51)
目標スピードと現在のスピードの「ズレの大きさ」に比例してパワーを補正します。 (例:急な上り坂でガクッとスピードが落ちたら、Pゲインが働き「ズレが大きいから強くパワーを足そう!」と瞬時に反応します) - Iゲイン:積分制御(CV52)
ズレていた「過去の時間の積み重ね(積分)」に対してパワーを補正します。 (例:Pゲインだけでは補いきれない「わずかな速度低下」が続いた場合、Iゲインが「ずっと少し遅い状態が続いているから、ジワジワとパワーを足そう」と働き、最終的にズレをゼロにします)
車両の重さやモーターの特性によって最適な数値は異なります。初期値(CV51=10, CV52=3)でギクシャクする場合は、以下のステップで調整を行ってください。
- まずはIをゼロにする: CV52(Iゲイン)を 0 に設定します。
- Pゲインの限界を探る: スロットルを少し開けて低速で走らせながら、CV51(Pゲイン)を少しずつ上げていきます。車両が前後にカクカク・ギクシャクし始めたら(発振)、そこから数値を少し下げてスムーズに走るギリギリの値を見つけます。
- Iゲインで粘り強さを足す: 指で車両を軽く押さえて負荷をかけたとき、モーターが粘り強く速度を保とうとするようになるまで、CV52(Iゲイン)を 1、2… と少しずつ上げていきます。上げすぎると動きが不自然になるので注意してください。
(※高回転域ではBEMFによる制御は不要になるため、CV10(BEMFカットオフ)で設定したスピードを超えると、自動的に通常のモーター制御へ切り替わるように設計されています)

