[この記事は制御工学ブログで2024年2月14日に公開されたものを少し修正したものです。]
倒立振子について
この記事では倒立振子についてまとめます。制御工学で倒立振子は、制御が難しい対象として実験で広く利用されています。本記事では、倒立振子のシステム構成の説明と状態フィードバックによる制御について説明を行います。倒立振子の安定化制御について説明した動画や関連記事リンクは最下部に置いています。
倒立振子の構造
まず、倒立振子の構造について説明します。倒立振子は不安定、かつ不安定零点も有する難しいシステムです。そのため、各種制御手法の検証を行うためのターゲットとして広く利用されています。
さらに、大きな動作領域で動かす場合には、倒立振子システムの非線形性を考えた設計が重要になってきます。ここでは、回転型倒立振子を用いたシステムについての説明を行います。
2つのセンサーの情報に基づいて台の中心にあるモーターを動かして倒立状態をキープする制御を行います。中心の台の回転をうまく制御すると安定化制御だけでなく角度追従制御も可能です。目標位置(目標角度)が変わっても追従し安定化することが可能な制御対象であります。状態フィードバック制御では、振子の角度と角速度、台の角度と角速度の計4つの状態を用いて状態フィードバック制御を施します。
エンコーダによる角度センシング
まず、倒立振子システムに付加されるセンサーであるエンコーダについて測定原理の説明を行います。エンコーダーでは、角度情報を計測するスリットを通過する光のパルス数をカウントします。パルス数のカウントにより各時刻での角度を計測します。
光源から光が放たれ、それが受光素子で受け取られることになります。そして、このスリットの空いている円盤を回転させることで受光素子が光を受け取ったり受け取らなかったりします。その受光の有無を電圧値として得た結果、回転させると図の右にあるような電圧波形を得ます。受光の有無を電圧値として読み取ることによって、どれだけ角度が変化したかを計測することができます。
その一方、実際に光を受け取った数だけをカウントしても向きは計測できませんが、2つの受光素子の配置関係を利用する(半周期ずらして配置)ことによって、それにより向きを判断することが可能になります。
このセンサーの分解能はスリットの数に依存しておりスリットの数が多ければ多いほどより正確な角度を計測できることになります。そのため、どのような制御をするかに依存してどんなエンコーダを用いるかを適切に選定する必要があります。倒立振子には2つのエンコーダーが軸と振子にそれぞれ1つずつついており、角度を計測することができます。
そして、2つのエンコーダーから得られる振子の角度に加えて、それぞれの角速度情報を用いることで4つの状態量を取得できるため、これによって、4状態の状態フィードバック制御実現できます。エンコーダの角速度は数値微分(YouTube)によって得ます。このとき、角度情報にも量子化誤差があることから角速度にも量子化誤差が乗ることになりますその程度が小さければ問題なく制御できるということになります
状態フィードバック制御による振子の安定化
状態フィードバックにより安定化や追従制御を施します。状態フィードバック制御の詳細(全体像)はこちらの記事をご覧ください。
倒立振子のシステムを構成する上では、安定性や可制御性、可観測性、システム同定などを施しています。
不感帯の補償により安定性が増します。図は、倒立振子システムのモータ不感帯を計測した実データを載せています。
まず、モーターには不感帯という電圧を加えても回転しないような領域があります。その補償を行うように内部で非線形補償を行っています。青色が補償の関数です。2次関数で近似しており、これによって線形化を行っています。制御を行った結果を**倒立振子の安定化制御(4分)**において示しています。
車輪型倒立振子システムと状態フィードバック制御
こちらは車輪型倒立振子と呼ばれるシステムになります。左右輪を駆動させる2つのモーター及びエンコーダによって倒立状態をキープしています。こちらの倒立動画は、下部の**倒立振子の安定化制御(4分)**で確認できます。
倒立振子の動画・関連記事
以下は倒立振子について説明している動画になります。動画内では、エンコーダの説明やモータ不感帯に関する説明を含めて倒立振子についての説明を行っています。
YouTube: 倒立振子の安定化制御
YouTube: 猫ミーム(卒論発表)cat meme
以上が倒立振子のフィードバック制御に関する関連記事になります。本記事は以上です。
Arduinoを用いた制御キット
Arduinoを用いたキットをいくつか紹介として並べておきます。スターターキットや移動ビークルは多く販売されています。特に、Arduinoを用いた小型ビークルは、他の組み込み型システムと比較して安価なものが多いです。
- ELEGOO UNO R3基本部品 初心者スターター 互換キット チュートリアル Arduino用
- SunFounder 3 in 1 IoT/スマートカー/ラーニング スターター キット究極版
- ELEGOO UNO R3スマートロボットカー V4.0
- 制御実験用カスタムZumo Robotセット(組立済み)
Zumoロボットのシャーシ等は、polulu社やスイッチサイエンスのページから購入できます。
Arduinoの関連書籍
物理書籍
- ArduinoとMATLABで制御系設計をはじめよう! 【第2版】
- 電子部品ごとの制御を学べる! Arduino電子工作実践講座 改訂第3版
- ゼロからよくわかる! Arduinoで電子工作入門ガイド 改訂2版
Kindle版
- ArduinoとMATLABで制御系設計をはじめよう! Physical Computing Lab
- 電子部品ごとの制御を学べる!Arduino 電子工作 実践講座 改訂第3版