2015年08月31日

BEMF対応

フジガヤさんが、BEMFの効果を証明して頂いているので、スマイルデコーダでも実現方法をきちんと書かないとダメだなと思って書いております。

ちなみに、BEMFは永久磁石を使ったモータの逆起電圧のことです。回転数に応じて、電圧が上がってくるので永久磁石モータを高速回転させるEVとかではモータにかけられる電圧を食い潰してしまう困った現象なのです。
鉄道模型では、この現象を逆に利用して、モーターへの電力をわざと一瞬(数百us)止めて、電圧測定をして、速度を割り出すという手法を採用してます。

とりあえず、あのサイズで両面基板では、抵抗3個とダイオードを追加するのが難しいので、外付けにおいてもらうしかありません。デコーダ開発ボードに入っているBackEMF検出回路は、以下の回路です。自分で考えたのではなく、他の人の回路をパクってきただけです。

BEMF.png

ピンは、A4とA5はパッドがあります。あと、23ピンからA0などが余っているので、I2Cを併用したい人は、CPUに直接はんだづけしましょう。

■BEMFの制御について

そんなに難しいことはしないのですが、知らない人はサッパリだと思うので、一応解説したいと思います。ちょっと、DCCデコーダのモータ制御のソフトを整理したいと思います。

BEMFを取得したら、まずはフィルタにかけてなだらかにします。検出周期は、一定間隔になるようにきちんと調整します。たとえば、30Hzとか、100Hzとかです。これをしないと、PIの調節器がよくわからない動きになります。

フィルタに掛けた電圧値を速度に換算するために式に入れます。最大、中間、0のときの速度値で線形な式が求まるはずです。
速度に換算した電圧値はDCC信号で来た指令と差分を取ります。差分をとったら、PI制御器に入れます。PI制御器は、比例項と積分項を持つ計算式で、差分がゼロになるように出力値を出す性質があります。つまり、指令値通りに速度が出なければ(差分、つまり偏差が増えれば)出力を勝手に足したり下げたりしてくれます。

この後、できればフィードフォワード項として、指令をそのまんま、PIの出力に足し込むことをします。厳密にはモータの式を入れればいいですが、センサも貧弱ですし、そこまでしなくてもPI制御器ががんばってくれると期待して、そのまんまとしておきます。最終的な出力に、リミッタを掛けてやれば完成です。

一番懸念事項は、EMFの電圧値と速度の換算式をうまく作るところで、これを自動化できれば良いんですけどね。チューニングするか、自動チューニング機能的なことを考えるかしないといけないかもしれません。
posted by yaasan at 20:26 | Comment(0) | 鉄道模型
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。
※ブログオーナーが承認したコメントのみ表示されます。