DCモーターの閉ループ速度制御
閉ループ制御では,コントローラは,基本的に,関心がある変数の希望する値と実際の値を比較して,実際の値が希望する値と一致するように制御努力を調整する.
この例では,Arduino Unoマイクロコントローラボードに速度コントローラを配備する.モーターの実際の速度はエンコーダで測定する.希望する速度はポテンショメータで設定する.モーターの電力源はモーターシールドである.最後に,基準速度と実際の速度はデバイスのスレームワークを使って読み取られるシリアルRS-232バスで送信される.
DCモーターのモデル.
サンプリング周期が0.25秒のPIDコントローラを設計する.
エンコーダは1回転あたり12カウントを出し,モーターのギアボックスは9.86のギア比を持つ.エンコーダの読取り値をrpmで取得するモデルを作成する.
基準は0Vから5Vまでのポテンショメータで設定される.0rpmから500rpmまでを読み取るようにスケールし直す.
基準速度と実際のエンコーダの速度を比較する比較器.
モーターに対するマイクロコントローラの出力はPWM信号のデューティ比に基づいている.モーターの実際の電圧は,モーターシールドからきている.次は,測定されたデータの区分フィットに基づく電圧とデューティ比の関係である.
電圧をデューティ比にマップするシールドの逆モデル.
Arduino,シールド,モーター,入出力のブロック図.
これからArduinoに配備されるコントローラには2つの入力と3つの出力がある.
最初の入力はポテンショメータの値によって設定された基準速度である.2番目の入力はエンコーダによって測定された実際の速度である.
最初の出力はモーターを駆動するPWM信号のデューティ比である.他の2つの出力は,シリアルRS-232接続によって送信された基準速度と実際の速度である.
コードを配備する.
ターゲットへのシリアル接続を開く.
0.25秒ごとに値を読むようにスケジュールされたタスクを設定する.
設定基準値と外乱に対する応答を示す結果をプロットする.
タスクを削除してデバイスの接続を閉じる.