倒立振子とかいうやつ

学校の宿題している.
matlabのプログラミングなので非常に面倒である.
取っている授業はsimulinkという直感的な図によるプログラミングではなくて,もうコードでごりごりやるのを目標にしているらしい.
この講義の美学はここにあるのだろう.
なので,コード書いて私も意外に頑張っている.


今日は,行列非線形微分方程式をルンゲ-クッタでなんとか書いてみた.
サンプルプログラムとかよこさないから,そりゃもう大変です.
ネットあされって言っても,なかなかないねぇ.
制御の勉強のはずなのに,微分方程式の勉強している.制御が微分方程式そのものなのはわかる.


コードで書けば,初期条件とかタイムステップとかいじりやすいからいいのかな.
初期条件次第では,発散したりするから,完成した後はいじいじして実験してみるのは割合楽しい.
自分が書いたもので動くというのも,これまた楽しい.


グラフで挙動みたら,まぁ大体あってるのかなと思う.
抵抗成分ないから落ち着かんのよねぇ.
だから発散するか,振動するか.どっちかだなぁ.


一通り書いたんだけど,全然動かなくて,それですごく困ってた.
どこが違うのか考えてると,本当に見当違いのところ見てたりで,もう一生できないんじゃないのかと思ったりした.
もう一生できない,向いてない,プログラミングできなくて理系とか笑わせる,とかデバッグの最中にそんな心の声が突き刺さるから,結構つらい.
この辺,否定的な感情持っていても,パフォーマンスに悪影響が出るばかりなので,やめたい.


宿題の終りは見えたけど,今週はまだまだ忙しい.
つらいけど,まぁがんばりましょい.
パソコンが少し壊れた状態で,重いゲームとかすると駄目である.
一方で,matlabはある程度サンプリングタイムを細かくとっても動く.
それだけは救いか.
修理出したいけど,忙しくて駄目である.困ったなぁ.


非線形の状態だと,あれだねぇ.
プログラム書くのも結構疲れる.
その代り,線形だと簡単.
だって,行列も固定されちゃうからねぇ.
行列自体が時間変化しちゃうと,結構大変.


(追記)
倒立振子の方程式を非線形のままで数値解析した奴と,線形化したモデルを数値解析に比較をしろといわれたけど,随分グラフが違う.
というのは,摩擦がないため振り子が一回転しちゃうわけで,そうなると動作点近傍で線形化するともうどうしようもなくなるのよ.
平衡点で動くように制御かけてこそ,線形化モデルが活きるわけで,しかたないじゃないか.
なんか,プログラムも面倒だし,結論もどうしようもない宿題で,本当にあっているのか疑いたくなったりもするが・・・.