Path: coconuts.jaist!wnoc-tyo-news!spinnews!spin-hsd0-tky!inet-tsb!tis2!hq10!news.hby.toshiba!news.tsurumi.toshiba!cilab.rdc.toshiba!isl.rdc.toshiba!tsb-wide!wnoc-sfc-news!venus.sun.com!cs.utexas.edu!howland.reston.ans.net!vixen.cso.uiuc.edu!newsfeed.internetmci.com!news.dacom.co.kr!usenet.seri.re.kr!news.imnet.ad.jp!ripspost.aist.go.jp!news.tisn.ad.jp!zion.phys.s.u-tokyo.ac.jp!news.nc.u-tokyo.ac.jp!makino From: makino@chianti.c.u-tokyo.ac.jp (Jun Makino) Newsgroups: fj.sci.math Subject: Re: [Q]Teach me!! Date: 12 Apr 1996 13:59:10 GMT Organization: College of Arts and Sciences, Univ. of Tokyo Lines: 55 Distribution: fj Message-ID: References: <1996Apr11.091658.9834@enzan.ee.kansai-u.ac.jp> NNTP-Posting-Host: muscat.c.u-tokyo.ac.jp In-reply-to: matsumot@kairo.ee.kansai-u.ac.jp's message of 11 Apr 96 09:16:58 GMT >>>>> On 11 Apr 96 09:16:58 GMT, matsumot@kairo.ee.kansai-u.ac.jp (ma2mo10) said: > このNGにはじめて投稿する まつもと@関西大学 です。 > 現在、研究でロボットアームを制御する研究を行なっているのですが、 > いきずまりを感じているところがあります。 > それが ルンゲクッタの近似解法です。 > 2自由度のロボットアームを制御する際において、2本のアームの水平面 > に対する角度の加速度、速度をルンゲクッタの近似解法で近似しようとして > うまくいきません。以下にそのプログラムを写します。 (ちょっと略) > for(j=0;j<20;j++){ ^^ううん、これは「20ステップ積分するためだけ」 のプログラムなのかなあ、、、 > k1=(h/20)*fk(si1,si2,si1_v,si2_v); > l1=(h/20)*fl(si1,si2,si1_v,si2_v); > m1=(h/20)*fm(si1,si2,si1_v,si2_v); > n1=(h/20)*fn(si1,si2,si1_v,si2_v); (ちょっと略) > z1+=(k1+2.0*k2+2.0*k3+k4)/6.0; ^ここは何故 = でないのかな? > z2+=(l1+2.0*l2+2.0*l3+l4)/6.0; > m=(m1+2.0*m2+2.0*m3+m4)/6.0; > n=(n1+2.0*n2+2.0*n3+n4)/6.0; > si1_a=m; これはどこでも使ってないなあ、、、 > si1 =si1+(h/20.0)*m1; ^^ここは m でなくて m1 なのはなぜかな ^^^^^^^ ここで h/20.0 は余計じゃないかな > si1_v=si1_v+(h/20.0)*z1; ^^^^^^^ これも h/20.0 は余計じゃないかな > となっています。ここで > アーム1の加速度:fk(double si1,double si2,double z1,double z2) > アーム2の加速度:fl(double si1,double si2,double z1,double z2) > アーム1の速度 :fm(float si1,float si2,float z1,float z2) > アーム2の速度 :fn(float si1,float si2,float z1,float z2) > で定義してます。学校の図書館の本では”これでいい”みたいな風にかいて > いましたが、うまくいきません。 というわけで、”これでいい”なんて書いてある本はあるわけないと思 うのですが、、、もう一度その「学校の図書館の本」というのに書いて あることをちゃんと読み直してみるのがいいのではないでしょうか。 牧野@東大駒場