SSブログ

Excelでホーキンス・リンクをシミュレーションする (前編) [ロボット]このエントリーを含むはてなブックマーク#

1883793

本日のお題は、「ロボット」のシミュレーションです。 とはいっても、本格的なCADを取り入れてシミュレーションをさせるのではなく、 Micro$oft の Excel を使ったシミュレーションのお話です。

Excelのアドインを多用していますので、適宜インストールしてから試してみてください。

方程式が解ければ…

HoekinsLink1.png

ホーキンス・リンクは、「1自由度のリンク機構」です。 そのため、モータのクランクの角度が与えられたら、各関節の位置は原則として一意に決まります。

関節の位置のうち、"D"点は、固定されているので「既知」です。

D = AD
AD = 2

また、"B"点はクランクの角度θから簡単に求めることが出来ます。

B - A = AB * ej * θ
AB = 1

残った"C"点は、"B"点と"D"点からの距離が2.5 (BC, CD) になる点です。 "D"点から見た"C"の角度をφとすると、

C - D = CD * ej * φ
CD = 2.5
|B - C| = BC
BC = 2.5

"E"点は"B"点と"C"点が求められれば、計算できます。

E = B + (C - B) * (BE / BC)
BE = 5

と、書いていくと要はθからφを求めるだけの計算であることがわかります。 えぇい、このくらいの方程式解いちゃる。

と、思ったけど、ほどなく敗北。 こりゃ、めんどくさいわい。

ゴール・シークを使う

こういう方程式をヒューリスティックに解くための仕組みがExcelには装備されています。 「ゴール・シーク」というのが、そのツールの名前です。 まずは、方程式をExcelに書き出します。

AB
1AB1
2AD2
3BC2.5
4CD2.5
5BE5
6
7theta0
8phi0
9
10A=0
11D=B2
12B=IMSUM(B10,IMPRODUCT(B1,IMEXP(COMPLEX(0,B7,"j"))))
13C=IMSUM(B11,IMPRODUCT(B4,IMEXP(COMPLEX(0,B8,"j"))))
14E=IMSUM(B12,IMPRODUCT(IMSUB(B13,B12),B5/B3))
15BC actual=IMABS(IMSUB(B12,B13))
16BC error=B15-B3

"BC actual"は、与えられたθφから計算された"BC"の長さです。 この長さと理想的な"BC"の長さとの差を"BC error"と定義しておいて、「BC error がゼロになるφを求める」のが「ゴール」になります。

WS000155.png

この条件で「ゴール・シーク」を動かすと、


WS000156.png

多少の誤差は残っていますが、みごとに答えが見つかりました。 この作業をθが 0° から 360° までの範囲で変更しながら"E"点の値を記録していくと、軌跡が求まります。

考えてみたら、すごく手間のかかる作業です。 遠慮しておきます。

マクロでこなす方法が無いでもない

「ゴール・シーク」の一連の作業をマクロに記録するとこうなりました。

Sub Macro1()
    Range("B16").GoalSeek Goal:=0, ChangingCell:=Range("B8")
End Sub
WS000157.png

表を作っておいて、それぞれのθについてこのマクロの記述と同様の方法で解を求めれば"E"点の軌跡が求まります。


1883938

実物は、こちら。

この方法でも良いのですが、後編では、別の方法を使います。

参考文献

「ゴール・シーク」は、この文献で紹介されていました。

ロボット機構学

ロボット機構学

  • 作者: 鈴森 康一
  • 出版社/メーカー: コロナ社
  • 発売日: 2004/04
  • メディア: 単行本

この本が必要になるほどのマクロは作成していません。

そこが知りたい!Excel VBAプロの技 Excel97/2000/2002/2003対応!

そこが知りたい!Excel VBAプロの技 Excel97/2000/2002/2003対応!

  • 作者: 井川 はるき
  • 出版社/メーカー: ナツメ社
  • 発売日: 2003/11
  • メディア: 単行本

nice!(0)  コメント(0)  トラックバック(0)  このエントリーを含むはてなブックマーク#

nice! 0

コメント 0

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

トラックバック 0

トラックバックの受付は締め切りました

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。