F3RC アサリ戦隊ロギにゃん

こんばんは、クリスマスイブですね。みなさん楽しんでいますかー?

ぼくは残念ながらレポートに追われていて、今日中にブログを書けませんでした。

すみません。

また改めて、F3RCについて書きます。

試合の動画があるので見てください。→ここ

←ロギにゃん(手動機)

広告

MATLABで遊んでみた!!

 

MATLABで遊んでみた!!

 

先日はサークルの飲み会で、悪酔いを披露してしまった3年生です。今日は、2日酔いで頭が痛いです。(でも、まだまだ皆と飲みにいきたいです🍶)

そんなことはさておき、現在、マイクロマウス班に所属しており、マイクロマウスの製作を頑張っています。機体はできたので、今は回路を頑張ってます。(本当に回路分からんから、前代表のO嶺は凄いなと思ってます…)やはり、マイクロマウスが俊敏に動く姿を想像すると、ワクワクするので楽しいです。皆も回路とか制御やりたかったらマイクロマウスに来てね!!

 

去年はネタ系の話にしたので、今年はお酒の嗜み方について書こうかなって思ったんですが、みんな思いのほか(!?)学術的な内容だったので、去年のネタ枠とは違い、サークルに役立つかもしれない情報を書こうと思いました。そんなこんなでMATLABのSimlinkで遊んでみました。

Simlinkとは、MathWorks社によって開発された、モデリング、シミュレーション、解析のための便利なツールです。研究室でもよく使われているので、1年生から知っていたらとても強いです。

というわけで、モータの角度をPID制御しましょう。モータに関する運動方程式は次のようになります。

上の2式を変形し、ブロック線図と呼ばれる入出力関係を示すもので、まとめると以下のようになります。(簡単のために、B=0とし、tiの扱いはめんどくさいから0にします。また、入力、出力をωの指令値、応答値にします。

 

これから、MATLABの使い方を見てみましょう。まあ、keio.jpのソフトウェア・ライセンスからかなぁ、MATLABをインストールしたら起動してみましょう。下のような画面が出ます。

 

 

最初に、Simlinkボタンを押し、Simlinkを起動して、「空のモデル」を選択します。すると以下の画面が出ます。このウィンドウでブロック線図を作成します。(青丸から、ブロック線図の部品的なものを出します)

 

 そのボタンを押すと、下のようなライブラリが出ます。「sources」で入力波形、「Mathoperations」で加算器、「Continuous」で連続時間系のPIDのコントローラや積分器などを選択できます。下の、outって書かれている欄に、gainとか書くとgainに関する部品が得られます。

 

 

このようにして、ブロック線図を作成すると次のようになります。

 

plantはモータに関するシステムで、ブロック線図の書き方を簡略したサブシステムです。展開すると下のようになります。

 

ここまでがモデリングの準備です。これからは、こういう動きをして欲しいなという指令値になるべく近い動きに応答値がなってほしいのでPID制御を行います。P,I,Dって何だという人向けに次のリンクを用意しておきます。

https://www.hellocybernetics.tech/entry/2017/03/18/100530

 

まず、部品を選択し、ダブルクリックすると下のようにパラメータが調整できます。

 

「新規スクリプト」で変数を定義し、Kp=1、Ki=1、Kd=0にしてみます。

 

 

そして、ブロック線図のscopeをダブルクリックして「実行」を押してみると、応答値が全然追いついてくれません(T_T)

 

 

なので、応答がよくなるようにパラメータを調整してみましょう。先程の図の赤丸ボタンを押すと自動的に、ゲインを決めてくれます。とても便利です。(手打ちでやるのは大変なので、ありがたい)そして、「ブロックの更新」で自動的にパラメータの更新ができるように設定します。

 

すると、、、応答値がめっちゃ良くなりました!!

 

まあ、こんな風にして、MATLABを使うと便利なんじゃないかなと思いました。(長文失礼しました。)NHKではカルマンフィルタを実装して位置の誤差を少なくする試みをすると思うので、MATLABを知っとくといいと思います。そして、アドベントカレンダー遅れてごめんなさい笑

 

最後に、僕は3年生なのでこれからサークルになかなかいけなくなりますが、1,2年生がこのサークルを良くしてくれることを祈ってます!!

そして、感謝を述べたいです。楽しいサークル生活でした。本当にありがとう!!