[HSP3]hspでpd制御

現実空間でモータ回したりはしません。

マウスのx座標に追従するプログラムです。
ctrlを押すとユーザが方向キーで操作できます。
レースゲームのNPCカーに応用できるでしょう。

係数の指定は直感で指定するのではなく、vemsimでシミュレートすると便利です。Syhthesimで、パラメータを操作しながらグラフが確認できます。
vemsimは微分方程式が理解できればより効果的に扱えますが、そんなもの知らなくても「バケツに水を注ぐ~」イメージ程度で簡単にモデルが作成できるのがおすすめできる点です。



togglectrl=0

machinepos=0.0
machinevel=0.0
machineacc=0.0

targetpos = 200.0

#const double ACCSTEP 0.25

#const double aiK2 5
#const double aiK3 -80

repeat
redraw 0
color 255,255,255 : boxf

gosub *update

gosub *control

gosub *drawing

redraw 1
wait 2
loop
stop
*update
machinevel+=machineacc
machinepos+=machinevel
machinevel=machinevel*0.99
return

*control
targetpos = mousex

stick key,1|4

if (key&64) {// ctrl
togglectrl=togglectrl^1
}
//if (key&1024) : togglectrl=togglectrl^1 // tab
d=targetpos-machinepos

machineacc=0.0
if (togglectrl){
if(key&1) :machineacc=-ACCSTEP
if(key&4) :machineacc=ACCSTEP
}else{
c= aiK2*d + aiK3*machinevel
if (c<-20) :machineacc=-ACCSTEP
if (c>20) :machineacc=ACCSTEP
}

return
*drawing
color 0,0,0
line 0,300,640,300
boxf machinepos-10,295,machinepos+10,305

pos 0,0
mes "ctrl["+togglectrl+"]"
mes strf("machine(pos:%9.3f/vel:%6.3f/acc:%6.3f)",machinepos,machinevel,machineacc)
mes strf("c:%9.3f",c)

return
スポンサーサイト

テーマ : プログラミング
ジャンル : コンピュータ

tag : HSP3

コメントの投稿

非公開コメント

プロフィール

舞葉(ぶよう)

Author:舞葉(ぶよう)
github.io
はてなブログ(競プロ)

古い記事のソースコードは色分けしていないので、高機能テキストエディタに貼り付けたほうが見やすいかも。

検索フォーム
このブログについて
自分がつまづいた話題、なんとなく書きたいと思ったこと、ググったけど殆ど資料なかったぞオイ な話等をアップする予定。通りすがりでも、参考になっていただければと。プログラムの例外入力、メモリリークは責任負いません。投稿された記事は修正・削除する場合があります。
カテゴリ
タグ

HSP3アルゴリズムとデータ構造c++RubyJavaUnity画像解析C機械学習C#LinuxcodeIQKinectMinecraftTonyuSystemraspberrypiPythonHTML5音声制御Simulinkruby俺ルール通信制御Javascriptシミュレーション

counter-shinobi
固定記事
最新記事
最新コメント
月別アーカイブ
ブロとも申請フォーム

この人とブロともになる

アクセスランキング
[ジャンルランキング]
コンピュータ
1467位
アクセスランキングを見る>>

[サブジャンルランキング]
プログラミング
265位
アクセスランキングを見る>>