IP Toolbox
ファイルの説明
舞鶴高専の川田研究室で製作した台車型倒立振子
《最適レギュレータによるサーボ系設計》
振子の倒立を維持したまま台車を 40 cm 移動!
《最適レギュレータによるサーボ系設計》
振子をつついて外乱を与える!
およびアーム型倒立振子
《LMI によるゲインスケジューリング制御》
振子の倒立を維持したままアームを目標角度 (30 度) に制御!
これくらいだと,非線形性の影響はあまりありません.
《LMI によるゲインスケジューリング制御》
振子の倒立を維持したままアームを目標角度 (60 度) に制御!
さすがに,非線形性を考慮しないと,このように安定なふるまいは実現できません!
をもとにして開発された MATLAB/Simulink 用シミュレータ
IP Toolbox (Inverted Pendulum Toolbox)
を提供します.Windows 7 (64bit) にインストールされた MATLAB R2013a/2013b/R2014a/2014b/R2015a/R2015aSP1/2015b/R2016a で動作を確認しています.
(追記 2023/04/24)
MATLAB ファイルについては,Windows11 (64bit) の MATLAB R2023a でも動作するはずです.
配布する
を解凍すると,以下のファイル群が生成されます. 詳細については
をお読みください.
使用例
準備が終わったら,MATLAB のコマンドウィンドウで
>> ip_model …… Simulink モデル "ip_model.slx" の実行
と入力してください. このとき,非線形シミュレーションを行うための Simulink ブロック群
が表示されます.これら Simulink ブロックは
を表現したものとなっています.
Simulink ブロック
を利用して,Simulink モデル "cdip_pcont_sim.slx"
を作成します. コンフィギュレーションパラメータや Simulink ブロックのパラメータの設定については図 3.17 (p.58) を参照してください. Simulink モデル "cdip_pcont_sim.slx" は, 振子が真下にぶら下がって静止している状態を台車型倒立振子の初期状態とし, P コントローラにより台車を基準位置から目標位置に移動するための非線形シミュレーションを行います.
以下で説明する操作は M ファイル "p1c34_cdip_plot_pcont.m" により一度に実行することができます (M ファイル "p1c34_cdip_plot_pcont.m" は Simulink モデル "cdip_pcont_sim.slx" と同じフォルダ内に入れてください).
Simulink モデル "cdip_pcont_sim.slx" を実行するには, まず,台車型倒立振子の物理パラメータを表 3.5 (a), (c) (p. 44) の値に設定します.そのために,MATLAB のコマンドウィンドウで
>> cdip_para % M ファイル "cdip_para.m" の実行
と入力します.つぎに,
の初期値を設定するため,
>> z_0 = 0; % 0 [m]
>> theta_0 = pi; % π [rad] = 180 [deg]
>> dz_0 = 0; % 0 [m/s]
>> dtheta_0 = 0; % 0 [rad/s]
と入力します.
以上で非線形シミュレーションを行う準備が完了したので,
Simulink モデル "cdip_pcont_sim.slx" の実行ボタンをクリックする
Simulink モデル "cdip_pcont_sim.slx" のメニューから「シミュレーション/実行」を選択する
Simulink モデル "cdip_pcont_sim.slx" が入っているフォルダをカレントディレクトリに変更してから,MATLAB のコマンドウィンドウで
>> sim('cdip_pcont_sim') % Simulink モデル "cdip_pcont_sim.slx" の実行
と入力する
のいずれかにより,Simulink モデル "cdip_pcont_sim.slx" を実行します.
最後に,シミュレーション結果を描画するために
>> figure(1); plot(t,z) % Figure 1 に台車位置 z(t) を描画
>> figure(2); plot(t,phi) % Figure 2 に真下基準の振子角度 Φ(t) = θ(t) − π を描画
と入力します.このとき,
台車の応答
振子の応答
のようにグラフが描画されます (このグラフは,M ファイル "p1c34_cdip_plot_pcont.m" の 18-26 行目のようにしてフォントなどをカスタマイズしています). さらに,
>> theta = phi + pi; % 振子角度を真上基準に変換 (θ(t) = Φ(t) + π)
>> cdip_anime % M ファイル "cdip_anime.m" の実行
と入力することによって,以下のようにアニメーション表示されます.