[数値シミュレーション] 線形化した倒立振子をPI制御

制御工学

みなさん,こんにちは
おかしょです.

このブログでは倒立振子ロボットの開発を行っています.

目標は倒立振子を自律させることです.

そのために,まずは数値シミュレーションを行って制御器の有効性を確認する必要があります.

この記事では数値シミュレーションでPI制御の性能について報告します.

この記事を読むと以下のようなことがわかる・できるようになります.

  • PI制御とは
  • PI制御の特徴
  • 倒立振子の数値シミュレーション

 

この記事を読む前に

この記事は以下のP制御の数値シミュレーションの続きとなっています.

そのため,以下の記事を先に読んでおくことをおすすめします.

 

P制御での問題点

以前の記事では線形化をした倒立振子にP制御を適用して倒立状態の維持をしていました.

このときの数値シミュレーション時間は10秒間としていて,倒立状態の維持はできていました.

しかし,数値シミュレーション時間を60秒に増やすと

このように倒立状態を維持できなくなってしまいます.

これはP制御では定常偏差が残ってしまうことが原因だと考えられます.

そこで,問題となっている定常偏差をなくすためにPI制御を数値シミュレーションに適用します.

 

PI制御とは

PI制御というのはP(比例)制御とI(積分)制御の二つを組み合わせた制御系です.

ブロック線図で書くと以下のような構造をしています.

このように偏差を積分する制御器が加わることで,P制御だけでは除去できなかった定常偏差をなくすことができるようになります.

PI制御について詳しく知りたい方はこちらを参照してください.

 

PI制御を適用した結果

以下の数値シミュレーション結果は以前の数値シミュレーションにI制御のゲインを-10としたものになります.

これを見ると,I制御のおかげで振子の傾きが0°に収束し定常偏差がなくなったため,60秒たっても倒立状態を維持することができていることが確認できます.

また,初期値から倒立状態に回復するまでが非常に短くなっています.

これはP制御のゲインを-300としていて非常に大きな値に設定しているためです.

そもそもこのようにPゲインを大きくしたのは定常偏差が原因で倒立状態が維持できなくなるのを防ぐためでした.

しかし,I制御を追加した今となっては定常偏差がなくなったので,P制御のゲインを下げても問題はないはずです.

そこで,IゲインはそのままでPゲインを-20にしました.

Pゲインを下げた結果,振子の角度は振動的な応答となってしまいました.

また,このときの倒立振子の車輪の角度の時間履歴も見てみます.

これを見ると明らかなように車輪は常に回転していることが確認できます.

つまり,二輪型倒立振子は止まることなく常に動き続けます.

例えば,机の上などで実験をしようと思っても倒立振子はまっすぐ進み続けるのですぐに机から落ちてしまいます.

ここで,制御入力を見てみます.

振子の時間履歴が振動的だったので,制御入力も振動的となっていますが,注目すべきは収束している値です.

制御入力が0に収束していません.

つまり,制御入力が二輪型倒立振子に常に加わっていることになります.

この結果,車輪が常に回転し続けています.

それでは,なぜ制御入力が常に加わってしまうのでしょうか.

この原因はI制御の積分器にあります.

積分器では振子の角度の誤差を積分します.

振子が目標値に到達すればその誤差は当然0となりますが,誤差がある時から積分をするので積分器は0にはなりません.

そのため,PI制御で算出される制御入力は0には収束しませんでした.

 

問題解決策

この問題を解決するには,制御器を古典制御から現代制御にする必要があります.

古典制御では1入力1出力のシステムしか扱うことができません.
今回の数値シミュレーションでも振子の角度のみを出力とした古典制御器のPI制御を利用していました.

そのため,振子の角度の制御はできましたが車輪の角度は制御できませんでした.

しかし,現代制御では複数の出力を同時に制御することが可能となります.
そのため,今回のような倒立振子の車輪が回転し続ける問題は解消されます.

 

まとめ

この記事では二輪型倒立振子にPI制御を適用した数値シミュレーションの結果を報告しました.

二輪型倒立振子の車輪の制御もするには現代制御にする必要があるのですが,そのためには車輪の角度も取得できるようにしなければなりません.

しかし,作成した倒立振子には車輪の角度を測定するセンサーは搭載されていません.

なので,現在作ってある倒立振子はこのまま古典制御で倒立状態の維持を目指したいと思います.

また,現代制御にするためにステッピングモーターを搭載した二輪型倒立振子も作成する予定です.

また,数値シミュレーションでは振子の角度が振動的な応答となっていました.
そこで,振動を抑制するD制御器を追加しようと思います.

 

続けて読む

次に行う数値シミュレーションはPID制御になります.

以下の記事ではPID制御器の特徴などについて解説しているので読んでみてください.

Twitterでは記事の更新情報や活動の進捗などをつぶやいているので気が向いたらフォローしてください.

それでは最後まで読んでいただきありがとうございました.

コメント

タイトルとURLをコピーしました