ブロックを積みながら(193) Scilab/Xcos、Xcosデモ、倒立振り子に圧倒される

Joseph Halfmoon

制御素人老人がScilab/Xcosのデモを動かして学んでます(何を学んでいる?)今回は倒立振り子。出たな倒立振り子。皆さん大好き倒立振り子はロボットなどの制御を考えるときのHello World的対象物。でも基礎ができていないお惚け老人には敷居が高いデス。その上、Xcosの「行列演算」ブロック多用。落ちこぼれました。

※「ブロックを積みながら」投稿順 index はこちら

※動作確認にはWindows 11の パソコン(64bit)上にインストールしたScilabの以下バージョンを使用しています。

    Scilab 2024.0.0

倒立振り子デモのフロー

今回のデモは、以下のデモ選択画面から選択するものです。selectInvertedPendulum

倒立振り子、いかにもモダンな制御を学んでいる感じでカッコイイです。しかし、上記からフローを開けて愕然。InvertedPendulumContSys

フローが複雑なのもさることながら、登場する行列演算ブロックの多さ。なお上記フローの一部で配線とブロックが重なっていて見ずらかったので、勝手に一部ブロックの位置を調整しとります。

上記で使われている行列演算ブロックを列挙していくと以下のようです。

    • MATMUL Matrix Multiplication
    • INV Matrix Inverse
    • EXTRACT Matrix extractor
    • MATCATV Vert Cat Vertical Concatenation
    • MATCATH Horiz Cat Horizontal Concatenation
    • MATTRAN Matrix Transpose
    • MATEIG Matrix Eigenvalues
    • ROOTCOEF Polynomial Coefficient Computation

数学苦手なお惚け老人にとっては天敵?なブロックどもが束になって押し寄せてきてます。一応過去回で触ったことのあるものもありますが、こいつらが絡みあうともういけません。もう、ここだけで目が泳いでます。

その上、過去回でまったく練習してなかったブロックも一つ

    • scifunc_block_m

Scilabのコードで定義する関数ブロックみたいです。しかしどうやって定義したら良いの??

Xcosのフローとしても、お惚け老人の手に余る複雑度っす。

その上、倒立振り子のモデル自体が素人老人には複雑すぎますなあ。もっと簡単なモデルにして欲しかったデス。

上記フローのコンテキストが以下に。context

 

そしてシミュレーション結果が以下に(デフォルト設定のカラーだと、一部の配色が認識しずらかったので、配色を勝手に変更してます。)InvertedPendulumWave

どこの値が「何」とコメントなど欲しかったのですが、そのようなものは見当たらないので、何が何やらという感じです。

黒色の波形、0付近であまり動かない波形こそが、倒立振り子の角度ではないかと想像。それにたいして青色(黒っぽくもあるが)の矩形波は、外乱というか入力というか、倒立振り子の立つ台車?の動きなのではないかと勝手に想像。

他の黄緑、赤、深緑、緑の波形どもが何の何なのかは今のところ定かでありませぬ。

これは「出直して参ります」じゃね。課題は以下だね。

    1. もっと簡単な倒立振り子のモデルに立ち戻って学習(以前もカルマンフィルタの回でそういうことしたような。)
    2. 行列演算とユーザ定義関数ブロックの使い方を学習

トホホ。

ブロックを積みながら(192) Scilab/Xcos、Xcosデモ、温度制御器 へ戻る

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です