みなさん,こんにちは
おかしょです.
この記事では理想サンプラのプログラムの書き方について解説していきます.
制御工学を学んでいて,数値シミュレーションをやっている人にとっては非常に参考になると思うので,ぜひ読んでみてください.
この記事を読むと以下のようなことがわかる・できるようになります.
- 理想サンプラとは何か
- 理想サンプラのプログラムの書き方
この記事を読む前に
この記事で解説する理想サンプラは数値シミュレーションを実際の世界に近づけるために必要な知識です.
そのため,そもそも数値シミュレーションのやり方がわからないという方は以下の記事を先に読んでおくことをおすすめします.
理想サンプラとは
まずは,理想サンプラとは何かを説明します.
自動で走行するロボットなどは,ランダムに走り回っているのではなく,搭載されたマイコン(マイクロコントローラー)に従って走行します.
しかし,このマイコンは連続して動作しているわけではありません.
くわえて,ロボットが周りの環境などを把握するためのセンサーも連続で動作するわけではなく,ある一定の周期で動作します.
センサーの取得を行ったことがある方はわかるかと思いますが,一定の間隔でしかデータを得ることができないので,途中のロボットの情報を得ることはできません.
これをシミュレーション上で表現するのが理想サンプラです.
例えば,実際のロボットの位置が左のようなデータで与えられたとします.
これをセンサーを使って取得した場合,左のようになります.
上の図のように赤い点で示されたデータしか,マイコンは取得できません.
これは,サンプリング周期によっては制御性能に大きく影響を与えてしまいます.
そのため,設計した制御系が数値シミュレーション上でサンプリングを考慮せずにうまくいっていたとしても,実際のロボットに適用した時に暴走してしまう可能性があります.
以上のような理由から,数値シミュレーションでは理想サンプラを考慮する必要があります.
理想サンプラのプログラム
ここからは理想サンプラを数値シミュレーションで考慮するために必要なプログラムの書き方を解説していきます.
最初に注意として,シミュレーションの周期はサンプリング周期よりも大きくしておかなければなりません.
そうしなければ,サンプリングしようとしてもそもそもデータが無いのでサンプリングができません.
このことだけ注意しておいてください.
また,この記事では理想サンプラを考慮していない数値シミュレーションは書けているものとして話を始めます.
数値シミュレーションのプログラムの書き方を知りたい方は以下の記事を参考にしてください.
数値シミュレーションを行う方法
運動方程式から数値シミュレーション行う方法
数値シミュレーションのプログラムが書けている方は,メインのfor文もしくはwhile文があると思います.
理想サンプラを考慮するには,for文などの間にサンプリング周期で理想サンプラを起動するように組み込めばいいだけです.
ここで問題なのはどのようにしてサンプリング周期で割り込ませるかです.
これを解決する方法として,ある条件に達したら割り込ませるif文を使う方法があります.
説明するために,まずは理想サンプラのプログラムを以下に示します.
td = t(i)/ts-n;
if td>=0
% 理想サンプラ
yd(n+1) = y(i);
n = n+1;
end
まず,第1文目のtdは割り込ませるためのタイミングを表しています.
t(i)は現在時間を表しています.
それをサンプリング時間であるtsで割ります.
このようにすることで,現在時間がサンプリング時間を超えた場合は1以上の値となります.
nはサンプリングを行った回数を表しています.
このnを引くことによって,現在時間がサンプリング時間でない時はtdが負になるようにしています.
そのため,tdはサンプリング時間になった時は0よりも大きくなるので次の行からif文で理想サンプラが起動するようにしています.
if文内のydはサンプリングデータ,yはロボットの実際のデータを表しています.
サンプリングが完了したら,nを更新してサンプリング回数を記録します.
以上のような処理をすることで,数値シミュレーションに理想サンプラを適用することができます.
ここで,nの初期値は0とすることに注意してください.
まとめ
この記事では理想サンプラのプログラムの書き方を解説しました.
この記事を参考にすれば,自分の数値シミュレーションに理想サンプラを適用することができると思います.
冒頭でも述べたように,理想サンプラを考慮することは実際のロボットに設計した制御則を適用するためには非常に重要なことです.
続けて読む
この記事では数値シミュレーションを実際のシステムに近づけるために必要な理想サンプラを解説しました.
理想サンプラの他にも実際のシステムに数値シミュレーションを近づけるために必要なものがあります.
それが0次ホールダです.
以下の記事で0次ホールダについて解説しているので読んでみてください.
Twitterでは記事の更新情報や活動の進捗などをつぶやいているので気が向いたらフォローしてください.
最後まで読んでいただきありがとうございました.
コメント
[…] 以前,理想サンプラのプログラムの書き方について解説しました.この理想サンプラは設計した制御系を実際のロボットに適用することを考えている方は,必ず数値シミュレーションで […]