google-site-verification: google3bd66dd162ef54c7.html
fc2ブログ

Arduino でプラレールを動かす、誘導電圧検出による速度のPID制御

◆まえがき
プラレールいじりの話の続きです。前回は単純なON/OFFとPWM制御を行い、Arduino からモーターパワーを調整する機能の動作確認を行いました。今回の記事ではこれを発展させ、モーターの電機子誘導電圧を測定することで回転速度を検出し、PID制御により指定した速度で走行できるようにしてみます。

・走行している様子
坂を登る
一定の速度になるようにパワーを自動調整しているので、急な坂でも平坦路と同じスピードで上ります。

◆回路図(クリックで別窓に拡大図を表示)
回路図
・前回よりかなり複雑なものになっています。

・モーターの駆動(Q3)に前回はバイポーラトランジスタ(2SA2042)を使ったのですが、電圧ロスが大きかったので P-MOS FET(2SJ334) に変更しました。

・Q3の変更に伴い、負のゲート駆動電圧が必要になったので、DCDCコンバーターの LXピンの電圧変化を利用したチャージポンプ方式(C54からC55までの回路)で-5Vを作っています。

・なお、モーターの制御に N-MOS FETを使ってでローサイドスイッチにすればゲート電圧は+5Vで済むのでこんな面倒なことしなくても済みます。ただ、その場合の誘導電圧は+1.5V側が基準になるため、その検出が厄介になります。

・LED1(赤色)は速度が設定値より速すぎ(+10%)の場合、LED2(黄色)は遅すぎ(-10%)の場合に点灯します。実際の運転状態では、この二つのLEDが間欠的に交互に点滅します。ちなみに、パワーや速度の値はリアルタイムでOLEDに表示しているのですが、移動する車体に付いているので値を読むのは大変です。その点、このLEDは制御の状態を反映して点滅するので、ある程度は運転状況が推定出来て便利です。

・全体
実験車両

・ブレッドボード
ブレッドボード
ぎっしりと部品が載っていてほぼ限界です。なお、最終的にはプリント基板にして車両の中に収める予定(たぶん)です。

◆プログラム
20240229_PlaRailConstSpeedControllerV50.ino (BOM付きUTF8)

PIDによるフィードバック制御でモーターのパワーを調整し一定速度を保つようになっています(CSモード)。なお、速度制御無しのパワー一定モード(CPモード)も有ります。
以前作った   ミニグラインダー用コントローラーのプログラムを流用し、LED点灯機能の追加と制御用の定数などを調整しています。

◆動かし方
車両の電源(兼ギア操作)スイッチをONにすると、開始画面を表示した後で運転の操作が可能になります。

可変抵抗を操作すると運転速度(モーター回転速度)を設定。
Run/Stop スイッチを押す毎に、運転/停止を切り替え。
CS/CPボタンを押毎に運転モードを定速(ConstantSpeed)/定パワー(Constant Power) に切り替えます。

詳しい画面や設定については、前記したミニグラインダーの記事を参照ください。

◆駆動波形
以前書いたミニグラインダーの記事と同じような波形ですが、プラレールの場合の波形を以下に示します。

・全体波形
駆動波形、全体
上の波形はタイミングインデックス信号(D13ピン)。下はモーター電圧(Q3のDrain)です。

40ms周期で約2msだけPWM出力をOFFにする期間を設けており、この間にモーターの誘導電圧の検出を行っています。

モーター電圧が1Vくらいしか無いのは、主にFETでのドロップが大きいためのようです。もっとON抵抗が低いFETに交換したいのですが、手持ちがありません。

・誘導電圧測定部拡大
駆動波形、拡大

誘導電圧検出期間の拡大図です。この波形では誘導電圧は0.25〜0.5の範囲で発生しています。

波形がばたついているのは、電圧測定期間の間に回転子の位置関係が変わるためだと思います。そこで、検出期間の間に高速で何度も測定を行い、結果を平均化することで変動の影響を出来るだけ抑えています。更に、ソフト側では過去8周期分の値の移動平均を求めることでアベレージングを行っています。

◆動いている様子
上り坂でも同じ速度で走行しています。

◆まとめ
以前作ったミニルーターの制御ソフトを少し修正するだけで出来たので、比較的簡単に作ることが出来ました。

単純にパワーを絞って低速運転すると、急な坂を登れなかったり、下り坂ではジェットコースターのように滑り落ちてしまってリアリティに欠ける動きになると思います。しかし、この記事のように速度のフィードバック制御をやっていればそのようなことは起きにくくなります。まあそうは言っても、動輪がスリップするような急坂はもちろん登れません。

ともかく、この制御は低速運転する車両に向いていると思います。この実験を行うために新幹線のプラレール(の中古)を買って来たのですが、新幹線ではなくて例えば登山電車のように、ゆっくり走る車両の方が雰囲気が出て良かった感じです。

もう少し改善したい箇所がいくつかあるので、機会があれば回路とソフトを修正したいと考えています。でもその前に、現在の状態での走行特性などのデーターを取っておこうと思います。
関連記事

コメントの投稿

管理者にだけ表示を許可する

カレンダー
03 | 2024/04 | 05
- 1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 - - - -
プロフィール

ラジオペンチ

Author:ラジオペンチ
電子工作を中心としたブログです。たまに近所(東京都稲城市)の話題など。60過ぎて視力や器用さの衰えを感じつつ日々挑戦!
コメントを入れる時にメールアドレスの記入は不要です。なお、非公開コメントは受け付けていません。
記事の内容のご利用は読者の自己責任でお願いします。

記事が気に入ったらクリックを!
最新記事
カテゴリ
最新コメント
リンク
FC2カウンター
検索フォーム
月別アーカイブ
RSSリンクの表示
QRコード
QRコード