You are on page 1of 18

Bond graph modeling for rigid body dynamics

Anand Vaz
Professor, Mechanical Engineering
Dr. B. R. Ambedkar National Institute of Technology
G. T. Road Bye Pass, Jalandhar 144011, India
anandvaz@ieee.org

The basic skeletal system of the human hand or its prosthesis can be considered to be made up of rigid
skeletal links. Modeling its dynamics requires an understanding of rigid body mechanics. Since we are
applying the method of bond graphs to understand the dynamics of the system, it would be appropriate to
start from first principles. We shall move from the derivation of system equations to the development of
their bond graph representations, a reverse process. Each rigid link can then be treated as a bond graph
module and assembled into a single bond graph to suit the configuration of the mechanical system. It will
then be easier to derive system equations for the whole mechanism in the usual algorithmic manner which
is characteristic of bond graphs.

Dynamics of rigid multi body systems is a well developed area and we would not like to repeat it again.
However, while pursuing our objective of developing the basic bond graph module structures some
repetition is inevitable and we apologize for it. It is preferable to have a smooth and logical development
even if it is at the cost of some repetition. The Newton-Euler formulation for rigid dynamics is found in
several references, for e.g., [1]. Bond graph representations have been described in [2] - [6].

rigid body

Y0 YB
P
XB
B
rP

0 P
r
Frame B fixed on
rigid body
B
r
0 B

0 Inertial frame 0 X0
Consider the rigid body shown in Fig. 1. Frame 0 is the inertial fixed frame with its origin at 0.
Fig. 1. Fixing frames

Frame B is fixed on the rigid body and has its origin located at point B. P is any general point on the rigid
body. We shall represent the position vector of a point U, seen from the point V and expressed in the frame
W using the notation
⎧ WV xU ⎫
⎪W ⎪
V rU = ⎨ V yU ⎬
W
(1)
⎪W z ⎪
⎩V U ⎭
0
The orientation of frame B with respect to fame 0 is given by the orthonormal rotation matrix B R of
dimension 3×3. Hence,
BR BR = BR BR = I
0 0 T 0 T 0
(2)

The position of point P is given as


0
r = 00 rB + B0 rP
0 P
(3)
= 00 rB + B0 R BB rP
In order to obtain its velocity, we differentiate its position with respect to time t. We shall use the
d
notation x = x for differentiation with respect to time t.
dt
Differentiating (3) with respect to time t, the velocity of point P on the rigid body is
0 0 0  B B
0 rP = 0 rB + B R B rP + B R B rP
0
(4)
The second term on the RHS of (4) can be written as
0  B 0  0 T 0
B R B rP = B R B R
B
B R B rP

= ⎡⎣ 00ωB ×⎤⎦ B0 rP where, B0 R B0 RT = ⎡⎣ 00ωB ×⎤⎦ and, B0 R BB rP = B0 rP (5)


= − ⎡⎣ B0 rP ×⎤⎦ 00ωB
⎡⎣ 00ωB ×⎤⎦ is a skew symmetric matrix. This can be verified by differentiating (2) with respect to t.
Since P is fixed on the rigid body, BB rP = 0 . Hence (4) can now be written as,
0 0
⎡0 ⎤ 0
0 rP = 0 rB − ⎣ B rP × ⎦ 0 ωB (6)
We shall differentiate between scalar and vector bond as shown in Fig. 2.
e e
f f
Power = e ⋅ f Power = e T f = f T e

Scalar bond Vector bond


Fig. 2. Convention for scalar and vector bonds
The kinematic relationship of (6) can be expressed in the form of a Bond graph as shown in Fig. 3.

1 r0
0 P

− [ r ×]
0
B P

1ω0
0 B
MTF 1 0
B rP
0

1 r0
0 B

Fig. 3. Bond graph for the velocity relations of (6)

From Newton’s II Law the equation for translation of the particle at P with mass m is given by
d
dt
{
m 00 rP = 0 FP } (7)

The forces on all particles forming the rigid body can be summed up to obtain the equations of motion for
translation of the rigid body.
d
{
∑ dt m 00 rP = ∑ 0 FP } (8)

Instead of using the summation symbol, the limiting sum can be written as an Integral

∫∫∫
d 0
dt
0 rP dm = { } ∫∫∫ FP
0
(9)
Over the Over the
entire entire
rigid body rigid body

We shall however continue with the summation symbol, as we understand the mechanism of conversion to
the integral.
The position of the center of mass C (CM) is defined by
⎛ ⎞
∑ {m r } = ∑ m
0
0 P
0
r = ⎜ ∑ m ⎟ 00 rC = M 00 rC
0 C
⎝ ⎠
(10)

This implies that


∑ {m r } = ∑ m {
0
0 P
0
0 C r + C0 rP }
(11)
= ∑ m 00 rC + ∑ m C0 rP

Hence,
∑m 0
C P r =0 (12)

⎛ ⎞
⎜ ∑ m ⎟ = M is the mass of the entire rigid body. Thus the effect of translation of all points on the rigid
⎝ ⎠
body can be assigned to its center of mass C.
Differentiating (10) with respect to time t, the momentum related to translation is obtained as
⎛ ⎞
{ }
∑ m 00 rP = ∑ m 00 rC = ⎜⎝ ∑ m ⎟⎠ 00 rC = M 00 rC (13)

From (8) and (13), the translation of the body can be expressed in terms of the motion of its CM as
d
dt
{
M 00 rC = ∑ 0 FP } (14)

Se : 0 Fn

1 0
I:[ M ]
0 rC

S e : 0 F1
The Bond graph representation for (14) is shown in Fig. 4.
Fig. 4. Sub Bond graph for the Newton's law applied to the rigid body

We proceed to derive the equations for torque about point B, due to forces on the body. Taking moments
about point B,
d
{ }
∑ B0 rP × dt m 00 rP = ∑ B0 rP × 0 FP (15)

The LHS can be written as,

{
d
} d
{
∑ B0 rP × dt m 00 rP = ∑ B0 rP × dt m 00 rB + m B0 rP }
(16)
= ∑ B0 rP ×
d
dt
{
m 00 rB + ∑ B0 rP ×
d
dt
}
m B0 rP { }
The first term on the RHS of (16) becomes a zero vector in the following cases [1],
(1) If point B is fixed with respect to the inertial frame.
(2) If point B is the CM.
(3) If point B accelerates towards or away from the CM.

For rigid links, it is convenient to consider the case (2), when point B coincides with the CM C,

Consider the second term on the RHS of (16).


∑ dt { } { }
d d
0
r × m B0 rP = ∑ B0 rP ×
B P m B0 rP + ∑ B0 rP × m B0 rP (17)
dt

Since the second term on the RHS of (17) vanishes,


d
{ d
}
∑ dt B0 rP × m B0 rP = ∑ B0 rP × dt m B0 rP { } (18)

From (15) and (18),


d
{ }
∑ dt B0 rP × m B0 rP = ∑ B0 rP × 0 FP (19)

The LHS of (19) can be expressed as


d
{ d
} {
∑ dt ⎡⎣ B0 rP ×⎤⎦ m B0 rP = ∑ dt −m ⎡⎣ B0 rP ×⎤⎦ ⎡⎣ B0 rP ×⎤⎦ 00ωB }
(20)
d ⎧⎡ ⎤ ⎫
= ⎨ ⎢ ∑ − m ⎡⎣ B0 rP ×⎤⎦ ⎡⎣ B0 rP ×⎤⎦ ⎥ 00ω B ⎬
dt ⎩ ⎣ ⎦ ⎭
⎡ ⎤
The term ⎢ ∑ −m ⎡⎣ B0 rP ×⎤⎦ ⎡⎣ B0 rP ×⎤⎦ ⎥ is the inertia tensor of the body about the point B, expressed in the
⎣ ⎦
inertial frame 0, and is represented by the 3×3 matrix ⎡⎣ B0 I ⎤⎦ .
If
⎧x⎫ ⎡ 0 −z y ⎤
⎪ ⎪
r = ⎨ y ⎬ , then ⎡⎣ B rP ×⎤⎦ = ⎢⎢ z
0
B P
0
0 − x ⎥⎥ (21)
⎪z⎪
⎩ ⎭ ⎣⎢ − y x 0 ⎦⎥
and one can work out the terms of the inertia tensor by multiplying the matrices.


(
⎡∑ m y 2 + z 2 )
−∑ mxy −∑ mxz ⎤

∑ −m ⎡⎣ B0 rP ×⎤⎦ ⎡⎣ B0 rP ×⎤⎦ = ⎢⎢ −∑ mxy ∑ m x 2 + z 2 ( )
−∑ m yz ⎥ = ⎡⎣ B0 I ⎤⎦

(22)
⎢ − mxz
⎣ ∑ −∑ m yz ∑ m x 2 + y 2 ⎥⎦( )
Now, (20) can be written as
d
{ d
} {
∑ dt ⎡⎣ B0 rP ×⎤⎦ m B0 rP = dt ∑ ⎡⎣ B0 rP ×⎤⎦ m B0 rP }
(23)
=
d
dt ⎣ ⎦
0
{
⎡ B I ⎤ 0 ωB
0
}
{ }
The term ⎡⎣ B0 I ⎤⎦ 00ωB in (20) is called the moment of momentum or angular momentum about B expressed
in frame 0. It is a vector. From (19) and (23), the equation for rotation of the rigid body, due to forces acting
on it, can be written as
d
{ }
⎡ B0 I ⎤ 00ωB = ∑ B0 rP × 0 FP = B0τ
dt ⎣ ⎦
(24)

It clearly represents the cause-effect relationship between torque acting on the rigid body and its angular
momentum. The total torque about the point B acting on the rigid body causes a change in the angular
momentum of the rigid body about point B. The effect is the rotation of the body with angular velocity
0 ω B , and is decided by the properties of the rigid body. This can be represented by a sub bond graph as
0

shown in Fig. 5.
T
⎡⎣ C0 rn ×⎤⎦
MTF S e : 0 Fn

⎡⎣ C0 I ⎤⎦ :I 1ω 0 T
0 B
⎡⎣ C0 r1 ×⎤⎦
0
τ 1 :S e MTF S e : 0 F1

Fig. 5. Sub Bond graph for (24)

The relations developed in (14), for translation, and (24), for rotation, are shown in a single bond graph in
Fig. 6. In fact both the equations can be derived from the bond graph of Fig. 6.
S e : 0 Fn
T
⎡⎣ C0 rn ×⎤⎦
MTF 0 0
Fn

⎡⎣ C0 I ⎤⎦ :I 1ω 0 T
1 0
I:[ M ]
0 rC
0 B
⎡⎣ C0 r1 ×⎤⎦
0
τ 1 :S e MTF 0 0
F1

S e : 0 F1

Fig. 6. Bond graph for (14) and (24). It represents dynamics of the rigid body, both translation and rotation.

It may be noted that the Bond graph is integrally causalled.

Since the terms of the inertia tensor ⎡⎣ B0 I ⎤⎦ are expressed in the frame 0 they change due to rotation of frame
B. We know that the components of the inertia tensor are constant for the rigid body if expressed in the
moving frame B itself.

We shall need a small result before we proceed further. We know that a vector 0 K which is expressed in the
frame 0 can be expressed in another frame B using the rotation operator B0 RT .
0
K = B0 R B K , and B K = B0 RT 0 K (25)
How can we express the cross product matrix ⎡⎣ 0 K ×⎤⎦ which is expressed in the frame 0 to obtain ⎣⎡ B K ×⎦⎤
expressed in frame B?
Let
0
H = ⎡⎣ 0 K ×⎤⎦ 0 L and 0 H = B0 R B H , 0 L = B0 R B L (26)
Expressing in frame B,
0
B R B H = ⎡⎣ 0 K ×⎤⎦ B0 R B L (27)

Premultiplying (27) by B0 R T ,
B
H = B0 RT ⎡⎣ 0 K ×⎤⎦ B0 R B L

= ⎡ B0 RT ⎡⎣ 0 K ×⎤⎦ B0 R ⎤ B L (28)
⎣ ⎦
= ⎡⎣ B K ×⎤⎦ B L
Hence
⎡⎣ B K ×⎤⎦ = B0 RT ⎡⎣ 0 K ×⎤⎦ B0 R and ⎡⎣ 0 K ×⎤⎦ = B0 R ⎡⎣ B K ×⎤⎦ B0 RT (29)
We can now apply the result of (29) to (22)
⎡⎣ B0 I ⎤⎦ = −∑ m ⎡⎣ B0 rP ×⎤⎦ ⎡⎣ B0 rP ×⎤⎦

= −∑ m B0 R ⎡⎣ BB rP ×⎤⎦ B0 RT 0
B R ⎡⎣ BB rP ×⎤⎦ B0 RT

= −∑ m B0 R ⎡⎣ BB rP ×⎤⎦ ⎡⎣ BB rP ×⎤⎦ B0 RT (30)

⎡ ⎤
= B0 R ⎢ −∑ m ⎡⎣ BB rP ×⎤⎦ ⎡⎣ BB rP ×⎤⎦ ⎥ B0 RT
⎣ ⎦
= B0 R ⎡⎣ BB I ⎤⎦ B0 RT

We can apply the result in (30) to (24) as


d
{
⎡ B0 I ⎤ 00ωB =
dt ⎣ ⎦
d 0 B 0 T 0
dt
⎡ ⎤}
B R ⎣ B I ⎦ B R 0 ωB{ }
=
d 0
dt
BR { {
⎡⎣ BB I ⎤⎦ B0 ωB }} (31)

= ∑ ⎡⎣ B0 rP ×⎤⎦ 0 FP

d
dt
{ } {
⎡⎣ B0 I ⎤⎦ 00ωB = B0 R ⎡⎣ BB I ⎤⎦ 0BωB + B0 R } d
{
⎡ BB I ⎤ B0 ωB
dt ⎣ ⎦
}
{
= ⎡⎣ B0 R B0 RT ⎤⎦ B0 R ⎡⎣ BB I ⎤⎦ B0 ωB + B0 R } d
dt ⎣ ⎦
{
⎡ BB I ⎤ 0BωB (32) }
{
= ⎡⎣ 00ωB ×⎤⎦ B0 R ⎡⎣ BB I ⎤⎦ B0 ωB + B0 R } d
dt ⎣ ⎦
{
⎡ BB I ⎤ 0BωB }
This shows that the rate of change of angular momentum of the rigid body about B, observed and expressed
in the frame 0, can be written in terms of the rate of change of angular momentum observed and expressed
in frame B. B0 R is used to express the terms on the RHS in the frame 0.
To express in the frame B, pre multiplying by B0 R T , (32) becomes,
0
B RT
d
dt
{ } { }
⎡⎣ B0 I ⎤⎦ 00ωB = B0 RT ⎡⎣ 00ωB ×⎤⎦ B0 R ⎡⎣ BB I ⎤⎦ B0 ωB + B0 RT B0 R
d
{
⎡ BB I ⎤ B0 ωB
dt ⎣ ⎦
}
(33)
{
= ⎡⎣ B0 ωB ×⎤⎦ ⎡⎣ BB I ⎤⎦ B0 ωB +
d
} {
⎡ BB I ⎤ B0 ωB
dt ⎣ ⎦
}
It can also be seen from (31) that moment of the forces about B, can be expressed in different frames as
0
Bτ = ∑ ⎡⎣ B0 rP ×⎤⎦ 0 FP

= ∑ B0 R ⎡⎣ BB rP ×⎤⎦ B0 RT 0 FP

= B0 R ∑ ⎡⎣ BB rP ×⎤⎦ B0 RT 0 FP (34)

⎧ ⎫
= B0 R ⎨∑ ⎡⎣ BB rP ×⎤⎦ B FP ⎬
⎩ ⎭
= B0 R BBτ

0
B
RT
B
B
τ 0
B
τ
MTF
This is shown by the sub Bond graph of Fig. 7.
Fig. 7. Sub Bond graph for (34)

From (33) and (34),


d
{ } {
⎡ BB I ⎤ B0 ωB + ⎡⎣ 0BωB ×⎤⎦ ⎡⎣ BB I ⎤⎦ B0 ωB = BBτ
dt ⎣ ⎦
} (35)

This is the Euler’s equation of rotation for the rigid body. It can be rearranged as
d
{ } {
⎡ BB I ⎤ B0 ωB = − ⎡⎣ 0BωB ×⎤⎦ ⎡⎣ BB I ⎤⎦ B0 ωB + BBτ
dt ⎣ ⎦
} (36)
{
= ⎡ ⎡⎣ BB I ⎤⎦ B0 ωB ×⎤ 0BωB + BBτ
⎣ ⎦ }
The Bond graph representation for (36) is shown in Fig. 8. It is also called as Euler junction structure.
{
⎡ ⎡ BB I ⎤ 0BωB ×⎤
⎣ ⎣ ⎦ ⎦ }
MGY
e f

τ
B

⎡⎣ BB I ⎤⎦ :I
B
1
0 ωB
B

Fig. 8. Sub Bond graph for (36)


Example: A Two-link revolute manipulator
We shall apply these developments to an example of the two-link planar manipulator shown in Fig. 9. This
is however a general approach, not specific to a 2 DOF manipulator only.
X2
Y0 0
FO
3

O3
link 2
Y2 C2
τ2
0

X1

Y1 O2
τ1
0

C1 link 1
O1 X0

0
FO
1

Fig. 9. A Two-link revolute manipulator

The free body diagram (FBD) of the link 1 is shown in Fig. 10.

Y0

0
FO
2

τ2
0

X1

Y1 O2
τ1
0

C1 link 1
O1 X0

0
FO
1

Fig. 10. Free body diagram for link 1

Applying the basic equations of motion from (14) and (24) to link 1,
Translation:
d
dt
{
M 1 00 rC1 = 0 FO1 + 0 FO2 } (37)

and,
Rotation:
d
dt ⎣ 1 ⎦
{⎣ ⎦ }
⎡ C0 I ⎤ 00ω1 = ⎡ C10 rO1 ×⎤ 0 FO1 + ⎡ C10 rO2 ×⎤ 0 FO2 + 0τ 1 + 0τ 2
⎣ ⎦ (38)

Based on (37) and (38), the sub bond graph for link 1 is shown in Fig. 11. Note the differential causality on
the element I:[ M 1 ] . It occurs due to the imposition of kinematic constraints which result in the
dependence of the momentum of mass M 1 on the angular momentum of link 1 about its CM.
T
⎡⎣ C0 rO ×⎤⎦
1 2

− 0τ 2 MTF 0 0
FO2

⎡⎣ C10 I1 ⎤⎦ :I 1 0ω T
1 0 r I:[ M 1 ]
⎡⎣ C0 rO ×⎤⎦
0 1 0 C1

1 1
differential
0
τ 1 :Se MTF 0 0
FO1
causality

0
r = 0 :S f
0 O1
1 0 r
0 O1

Fig. 11. Sub Bond graph for dynamics of link 1

We try to eliminate 0 FO1 from (37) and (38), since it is internal to the mechanism,
d
{
dt ⎣ 1 ⎦ ⎣ }
⎡ C0 I ⎤ 00ω1 = ⎡ C10 rO1 ×⎤ ⎧⎨
d 0
{ ⎫ ⎡ 0
} ⎤0
⎦ ⎩ dt M 1 0 rC1 − FO2 ⎬⎭ + ⎣ C1 rO2 ×⎦ FO2 + τ 1 + τ 2
0 0 0

= ⎡⎣ C10 rO1 ×⎤⎦


d
dt ⎣{ }
M 1 00 rC1 + ⎡ ⎡⎣ C10 rO2 ×⎤⎦ − ⎡⎣ C10 rO1 ×⎤⎦ ⎤ 0 FO2 + 0τ 1 + 0τ 2

(39)

= − ⎡⎣ O10 rC1 ×⎤⎦


d
dt
{ }
M 1 00 rC1 + ⎡⎣ O10 rO2 ×⎤⎦ 0 FO2 + 0τ 1 + 0τ 2

Since
⎡ O10 rC1 ×⎤

d
{ 0 d
⎡ 0} ⎤ {0
⎦ dt M 1 0 rC1 = dt ⎣ O1 rC1 ×⎦ M 1 0 rC1 { }}
(40)
=−
d ⎡
{
M 1 ⎡ O0 rC ×⎤⎡ O0 rC ×⎤ ⎤ 00ω1
dt ⎣ ⎣ 1 1 ⎦⎣ 1 1 ⎦ ⎦
}
and
⎡ O10 I ⎤ = ⎡ C10 I ⎤ − ⎡ M 1 ⎡ O10 rC1 × ⎤⎡ O10 rC1 ×⎤ ⎤ (41)
⎣ ⎦ ⎣ ⎦ ⎣ ⎣ ⎦⎣ ⎦⎦

Using (40) and (41) in (39),


d
dt ⎣ ⎦ ⎣ { ⎦ }
⎡ O10 I ⎤ 00ω1 = ⎡ O10 rO2 ×⎤ 0 FO2 + 0τ 1 + 0τ 2 (42)

The simplified sub bond graph for link 1 is as shown in Fig. 12.
T
⎡⎣ O10 rO2 ×⎤⎦
− 0τ 2 MTF 00F
O2

⎡⎣ O10 I1 ⎤⎦ :I 1ω
0
0 1

0
τ 1 :Se
Fig. 12. Simplified sub bond graph for link 1.

Consider the free body diagram of link 2. Note the negative signs on 0 FO2 and 0τ 2 . These show the equal
and opposite nature of force and torque on link 2 due to link 1.
X2
0
FO 3

O3

Y2 C2
link 2
O2

− 0τ 2

− 0 FO 2

Fig. 13. Free body diagram of the link 2.

Applying (14) and (24) to the FBD of Fig. 13, the equations of motion for the link 2 are
d
dt
{ }
M 2 00 rC2 = 0 FO3 − 0 FO2 and (43)

{
d
dt ⎣ 2 ⎦
}
⎡ C 0 I ⎤ 00ω2 = − ⎡ C20 rO2 ×⎤ 0 FO2 + ⎡ C20 rO3 ×⎤ 0 FO3 − 0τ 2
⎣ ⎦ ⎣ ⎦ (44)

The resulting sub bond graph representing the dynamics of link 2 is shown in Fig. 14. Once again there is a
differential causality on the element I:[ M 2 ] .
S e : 0 FO 3

T
⎡⎣ C2 rO3 ×⎤⎦
0

MTF 00F
O3

⎡⎣ C20 I 2 ⎤⎦ :I 1ω
0
1 0
I:[ M 2 ]
T 0 rC2
⎡⎣ C20 rO2 ×⎤⎦
0 2

− 0τ 2 MTF 0− 0
FO2

1 0 r
0 O2

Fig. 14. Sub Bond graph for dynamics of link 2

Substituting for 0 FO2 from (43) into (42),


d
dt ⎣ 1 ⎦
{ ⎣ }
⎡ O0 I ⎤ 00ω1 = ⎡ O10 rO2 ×⎤ ⎧⎨ 0 FO3 −
⎦⎩
d
dt

{
M 2 00 rC2 ⎬ + 0τ 1 + 0τ 2

}
(45)
= ⎡⎣ O1 rO2 ×⎤⎦ FO3 − ⎡⎣ O1 rO2 ×⎤⎦
0 0 0 d
dt
{
M 2 00 rC2 + 0τ 1 + 0τ 2 }
Again, substituting for 0 FO2 from (43) into (44),
d
dt ⎣ { ⎦ ⎣ }
⎡ C20 I ⎤ 00ω2 = ⎡ C20 rO2 ×⎤ ⎧⎨

d
⎩ dt
{ } ⎫
M 2 00 rC2 − 0 FO3 ⎬ + ⎣⎡ C20 rO3 ×⎦⎤ 0 FO3 − 0τ 2

= ⎡⎣ C20 rO2 ×⎤⎦
d
dt
{ ⎣}
M 2 00 rC2 + ⎡ − ⎡⎣ C20 rO2 ×⎤⎦ + ⎡⎣ C20 rO3 ×⎤⎦ ⎤ 0 FO3 − 0τ 2

(46)

= ⎡⎣ C20 rO2 ×⎤⎦


d
dt
{ }
M 2 00 rC2 + ⎡⎣ O20 rO3 ×⎤⎦ 0 FO3 − 0τ 2

The Bond graph for the two link manipulator is as shown in Fig. 15.
S e : 0 FO 3

T
⎡⎣ C2 rO3 ×⎤⎦
0

MTF 00F
O3

⎡⎣ C20 I 2 ⎤⎦ :I 1ω 0
1 0 I:[ M 2 ]
T 0 rC2
⎡⎣ C20 rO2 ×⎤⎦
0 2

− 0τ 2 MTF 0− 0 F
O2

− 0τ 2 :S e 0− τ0
1 0
2 0 rO2

T
⎡⎣ C0 rO ×⎤⎦
1 2

− 0τ 2 MTF 0 0
FO2

⎡⎣ C0 I1 ⎤⎦ :I
1
1ω 0 T
1 0 r I:[ M 1 ]
⎡⎣ C0 rO ×⎤⎦
0 1 0 C1

1 1

τ 1 :Se
0 MTF 00F
O1

0
r = 0 :Sf
0 O1
1 0
0 rO1

Fig. 15. Bond graph for the 2 link manipulator

The earlier simplifications to the sub bond graph of link 1 Fig. 12 can be retained and are shown in the Fig.
16.
S e : 0 FO 3

T
⎡⎣ C2 rO3 ×⎤⎦
0

MTF 00F
O3

⎡⎣ C20 I 2 ⎤⎦ :I 1ω 0
1 0
I:[ M 2 ]
T 0 rC2
⎡⎣ C20 rO2 ×⎤⎦
0 2

− 0τ 2 MTF 0− 0
FO2

− 0τ 2 :Se 0− τ 0
1 0
2 0 rO2

T
⎡⎣ O10 rO2 ×⎤⎦

− 0τ 2 MTF 0 0
FO2

⎡⎣ O10 I1 ⎤⎦ :I 1ω 0
0 1

0
τ 1 :Se
Fig. 16. Simplified Bond graph for the 2 link manipulator

expanding the LHS of (45),

{ }
⎡⎣ 00ω1 ×⎤⎦ 10 R ⎡⎣ O11 I ⎤⎦ 01ω1 + 10 R
d
{ }
⎡ O 1 I ⎤ 01ω1 = ⎡ O10 rO2 ×⎤ 0 FO3 − ⎡ O10 rO2 ×⎤
dt ⎣ 1 ⎦ ⎣ ⎦ ⎣
d 0
⎦ dt M 2 0 rC2 + τ 1 + τ 2
0 0
{ } (47)
The second term on the RHS of (47) can be written as,
⎡ O10 rO2 ×⎤

d
{ 0
}
⎡ 0 ⎤
d
⎦ dt M 2 0 rC2 = ⎣ O1 rO2 ×⎦ dt M 2 O2 rC2 + 0 rO2
0 0
{ { }}
= ⎡⎣ O10 rO2 ×⎤⎦
d
dt
{ {
M 2 − ⎡⎣ O20 rC2 ×⎤⎦ 00ω2 − ⎡⎣ O10 rO2 ×⎤⎦ 00ω1 }}
{
= − ⎡⎣ O10 rO2 ×⎤⎦ ⎨
⎧d
⎩ dt
} {
M 2 ⎡⎣ O20 rC2 ×⎤⎦ 00ω2 + }
d
dt

M 2 ⎡⎣ O10 rO2 ×⎤⎦ 00ω1 ⎬

= − M ⎡⎣ r ×⎤⎦ {⎡⎣ r ×⎤⎦ ω + ⎡⎣ r ×⎤⎦ ω + ⎡⎣ r ×⎤⎦ ω + ⎡⎣ r ×⎤⎦ ω }
2
0
O1 O2
0
O2 C2
0
0 2
0
O2 C2
0
0 2
0
O1 O2
0
0 1
0
O1 O2
0
0 1

= − M ⎡⎣ r ×⎤⎦ {− ⎡⎣ ω ×⎤⎦ r + ⎡⎣ r ×⎤⎦ ω − ⎡⎣ ω ×⎤⎦ r + ⎡⎣ r ×⎤⎦ ω }


2
0
O1 O2
0
0 2
0
O2 C2
0
O2 C2
0
0 2
0
0 1
0
O1 O2
0
O1 O2
0
0 1

= − M ⎡⎣ r ×⎤⎦ {− ⎡⎣ ω ×⎤⎦ ⎡⎣ ω ×⎤⎦ r + ⎡⎣ r ×⎤⎦ ω − ⎡⎣ ω ×⎤⎦ ⎡⎣ ω ×⎦⎤ r + ⎣⎡


2
0
O1 O2
0
0 2
0
0 2
0
O2 C2
0
O2 C2
0
0 2
0
0 1
0
0 1
0
O1 O2
0
r ×⎦⎤ 00ω1
O1 O2 }
= ⎡⎣ r ×⎤⎦ {M ⎡⎣ ω ×⎤⎦ ⎡⎣ ω ×⎤⎦ r } − M ⎡⎣ r ×⎤⎦ ⎡⎣ r ×⎤⎦ ω
0
O1 O2 2
0
0 2
0
0 2
0
O2 C2 2
0
O1 O2
0
O2 C2
0
0 2

+ ⎡⎣ r ×⎤⎦ {M ⎡⎣ ω ×⎤⎦ ⎡⎣ ω ×⎤⎦ r } − ⎡⎣ r ×⎤⎦ {M ⎡⎣ r ×⎤⎦ ω }


0
O1 O2 2
0
0 1
0
0 1
0
O1 O2
0
O1 O2 2
0
O1 O2
0
0 1

= R ⎡⎣ r ×⎤⎦ {M ⎡⎣ ω ×⎤⎦ ⎡⎣ ω ×⎤⎦ R R r }


0
1 O1 O2
1
2
1
0 2
1
0 2
0
1
T 0
2 O2 C2
2

− M 2 10 R ⎡⎣ O11 rO2 ×⎤⎦ ⎡⎣ O21 rC2 ×⎤⎦ 10 R T 20 R 02ω 2

{
+ 10 R ⎡⎣ O11 rO2 ×⎤⎦ M 2 ⎡⎣ 01ω1 ×⎤⎦ ⎡⎣ 01ω1 ×⎤⎦ O11 rO2 }
{
− 10 R ⎡⎣ O11 rO2 ×⎤⎦ M 2 ⎡⎣ O11rO2 ×⎤⎦ 01ω1 }
(48)
(47) can now be written as

{
⎡⎣ 00ω1 ×⎤⎦ 10 R ⎡⎣ O11I ⎤⎦ 01ω1 + 10 R
d
} { }
⎡ O 1 I ⎤ 01ω1 = ⎡ O10 rO2 ×⎤ 0 FO3 + 0τ 1 + 0τ 2
dt ⎣ 1 ⎦ ⎣ ⎦

{
− 10 R ⎡⎣ O11 rO2 ×⎤⎦ M 2 ⎡⎣ 01ω2 ×⎤⎦ ⎡⎣ 01ω2 ×⎤⎦ 10 RT 20 R O22 rC2 }
+ M 2 10 R ⎡⎣ O11rO2 ×⎤⎦ ⎡⎣ O21 rC2 ×⎤⎦ 10 R T 20 R 02ω 2 (49)

{
− 10 R ⎡⎣ O11 rO2 ×⎤⎦ M 2 ⎡⎣ 01ω1 ×⎤⎦ ⎡⎣ 01ω1 ×⎤⎦ O11 rO2 }
{
+ 10 R ⎡⎣ O11 rO2 ×⎤⎦ M 2 ⎡⎣ O11 rO2 ×⎤⎦ 01ω1 }
0 T
Premultiplying by R and rearranging,
1

⎡ ⎡ O 1 I ⎤ − M 2 ⎡ O1 rO ×⎤ ⎡ O1 rO ×⎤ ⎤ 01ω1 − ⎡ M 2 ⎡ O1 rO ×⎤ ⎡ O 1rC ×⎤ 10 R T 20 R ⎤ 02ω 2


⎣⎣ 1 ⎦ ⎣ 1 2 ⎦ ⎣ 1 2 ⎦⎦ ⎣ ⎣ 1 2 ⎦⎣ 2 2 ⎦ ⎦
{
= ⎡⎣ O11 rO2 ×⎤⎦ 1FO3 + 1τ 1 + 1τ 2 − ⎡⎣ 01ω1 ×⎤⎦ ⎡⎣ O11 I ⎤⎦ 01ω1 } (50)
{
− ⎡⎣ O11 rO2 ×⎤⎦ M 2 ⎡⎣ 01ω2 ×⎤⎦ ⎡⎣ 01ω2 ×⎤⎦ 10 R T 20 R O22 rC2 }
− ⎡⎣ O11 rO2 ×⎤⎦ {M 2
⎡⎣ 01ω1 ×⎤⎦ ⎡⎣ 01ω1 ×⎤⎦ O11 rO2 }
Expanding the LHS of (46)
d 0
dt
⎡ 2 ⎤2
2 R ⎣ C2 I ⎦ 0 ω2 { { }} = 0
2 {
R ⎡⎣ 02ω2 ×⎤⎦ ⎡⎣ C22 I ⎤⎦ 02ω2 + 20 R }
d
{
⎡ C 2 I ⎤ 02ω2
dt ⎣ 2 ⎦
}
(51)
= ⎡⎣ C20 rO2 ×⎤⎦
d
dt
{ }
M 2 00 rC2 + ⎣⎡ O20 rO3 ×⎦⎤ 0 FO3 − 0τ 2
The first term on the RHS of (51) is
⎡ C20 rO2 ×⎤

d
{ 0
}
⎡ 0 ⎤
d
{ {
⎦ dt M 2 0 rC2 = − ⎣ O2 rC2 ×⎦ dt M 2 O2 rC2 + 0 rO2
0 0
}}
= − ⎡⎣ O20 rC2 ×⎤⎦
d
dt
{ {
M 2 − ⎡⎣ O20 rC2 ×⎤⎦ 00ω2 − ⎡⎣ O10 rO2 ×⎤⎦ 00ω1 }}
⎧d
= ⎡⎣ O20 rC2 ×⎤⎦ ⎨
⎩ dt
{
M 2 ⎡⎣ O20 rC2 ×⎤⎦ 00ω2 +
d
dt
} {
M 2 ⎡⎣ O10 rO2 ×⎤⎦ 00ω1 ⎬


}
0
{
= M 2 ⎡⎣ O2 rC2 ×⎤⎦ ⎡⎣ O2 rC2 ×⎤⎦ 0 ω2 + ⎡⎣ O2 rC2 ×⎤⎦ 0 ω2 + ⎡⎣ O1 rO2 ×⎤⎦ 0 ω1 + ⎡⎣ O10 rO2 ×⎤⎦ 00ω1
0 0 0 0  0 0
} (52)

{
= M 2 ⎡⎣ O20 rC2 ×⎤⎦ − ⎡⎣ 00ω2 ×⎤⎦ O20 rC2 + ⎡⎣ O20 rC2 ×⎤⎦ 00ω 2 − ⎡⎣ 00ω1 ×⎤⎦ O10 rO2 + ⎡⎣ O10 rO2 ×⎤⎦ 00ω1 }
{
= M 2 ⎡⎣ O20 rC2 ×⎤⎦ − ⎡⎣ 00ω2 ×⎤⎦ ⎡⎣ 00ω2 ×⎤⎦ O20 rC2 + ⎡⎣ O20 rC2 ×⎤⎦ 00ω 2 − ⎡⎣ 00ω1 ×⎤⎦ ⎡⎣ 00ω1 ×⎤⎦ O10 rO2 + ⎡⎣ O10 rO2 ×⎤⎦ 00ω1 }
{ }
= − ⎡⎣ O20 rC2 ×⎤⎦ M 2 ⎡⎣ 00ω2 ×⎤⎦ ⎡⎣ 00ω2 ×⎤⎦ O20 rC2 + M 2 ⎡⎣ O20 rC2 ×⎤⎦ ⎡⎣ O20 rC2 ×⎤⎦ 00ω 2

{ } {
− ⎡⎣ O20 rC2 ×⎤⎦ M 2 ⎡⎣ 00ω1 ×⎤⎦ ⎡⎣ 00ω1 ×⎤⎦ O10 rO2 + ⎡⎣ O20 rC2 ×⎤⎦ M 2 ⎡⎣ O10 rO2 ×⎤⎦ 00ω1 }
⎡ C20 rO2 ×⎤

d
{ 0 0
}⎡ 2 ⎤0 T {
⎦ dt M 2 0 rC2 = − 2 R ⎣ O2 rC2 ×⎦ 2 R M 2 2 R ⎡⎣ 0 ω2 ×⎤⎦ 2 R 2 R ⎡⎣ 0 ω2 ×⎤⎦ 2 R O2 rC2
0 2 0 T 0 2 0 T 0
}
+ M 2 20 R ⎡⎣ O22 rC2 ×⎤⎦ 20 R T 20 R ⎡⎣ O22 rC2 ×⎤⎦ 20 R T 00ω 2

{
− 20 R ⎡⎣ O22 rC2 ×⎤⎦ 20 R T M 2 10 R ⎡⎣ 01ω1 ×⎤⎦ 10 R T 10 R ⎡⎣ 01ω1 ×⎤⎦ 10 R T O10 rO2 }
{
+ 20 R ⎡⎣ O22 rC2 ×⎤⎦ 20 R T M 2 10 R ⎡⎣ O11rO2 ×⎤⎦ 10 R T 00ω1 } (53)
2 {
= − R ⎡⎣ O2 rC2 ×⎤⎦ M 2 ⎡⎣ ω2 ×⎤⎦ ⎡⎣ ω2 ×⎤⎦ O2 rC2
0 2 2
0
2
0
2
}
+ 20 R ⎡ M 2 ⎡⎣ O22 rC2 ×⎤⎦ ⎡⎣ O22 rC2 ×⎤⎦ ⎤ 02ω 2
⎣ ⎦
{
− 20 R ⎡⎣ O22 rC2 ×⎤⎦ 20 R T 10 R M 2 ⎡⎣ 01ω1 ×⎤⎦ ⎡⎣ 01ω1 ×⎤⎦ O11rO2 }
{
+ 20 R ⎡⎣ O22 rC2 ×⎤⎦ 20 R T 10 R M 2 ⎡⎣ O11rO2 ×⎤⎦ 01ω1 }
(51) can therefore be rearranged as

{
⎤ ⎡ 2 ⎤2
2 R ⎣ 0 ω2 ×⎦ ⎣ C2 I ⎦ 0 ω2 + 2 R
0
⎡2 0 d
}
dt ⎣ 2 ⎦
{ ⎣ }
⎡ C 2 I ⎤ 02ω2 = ⎡ O20 rO3 ×⎤ 0 FO3 − 0τ 2

{
− 20 R ⎡⎣ O22 rC2 ×⎤⎦ M 2 ⎡⎣ 02ω2 ×⎤⎦ ⎡⎣ 02ω2 ×⎤⎦ O22 rC2 }
+ 20 R ⎡ M 2 ⎡⎣ O22 rC2 ×⎤⎦ ⎡⎣ O22 rC2 ×⎤⎦ ⎤ 02ω 2 (54)
⎣ ⎦
{
− 20 R ⎡⎣ O22 rC2 ×⎤⎦ 20 R T 10 R M 2 ⎡⎣ 01ω1 ×⎤⎦ ⎡⎣ 01ω1 ×⎤⎦ O11 rO2 }
{
+ 20 R ⎡⎣ O22 rC2 ×⎤⎦ 20 R T 10 R M 2 ⎡⎣ O11 rO2 ×⎤⎦ 01ω1 }
0 T
Premultiplying (54) by R and rearranging,
2

{ ⎣ }
− ⎡⎣ O22 rC2 ×⎤⎦ 20 R T 10 R M 2 ⎡⎣ O11 rO2 ×⎤⎦ 01ω1 + ⎡ ⎡⎣ C22 I ⎤⎦ − ⎡ M 2 ⎡⎣ O22 rC2 ×⎤⎦ ⎡⎣ O22 rC2 ×⎤⎦ ⎤ ⎤ 02ω 2
⎣ ⎦⎦
{
= ⎡⎣ O22 rO3 ×⎤⎦ 2 FO3 − 2τ 2 − ⎡⎣ 02ω2 ×⎤⎦ ⎡⎣ C22 I ⎤⎦ 02ω2 } (55)
{
− ⎡⎣ O22 rC2 ×⎤⎦ M 2 ⎡⎣ 02ω2 ×⎤⎦ ⎡⎣ 02ω2 ×⎤⎦ O22 rC2 }
{
− ⎡⎣ O22 rC2 ×⎤⎦ 20 R T 10 R M 2 ⎡⎣ 01ω1 ×⎤⎦ ⎡⎣ 01ω1 ×⎦⎤ O11 rO2 }
The dynamics of the system is represented by (50) and (55). These have to be integrated for 01ω1 and 02ω2 .
The following relations are also required.
0 
1 R = ⎣ 0 ω1 ×⎦ 1 R;
⎡0 ⎤0 and 20 R = ⎡⎣ 00ω2 ×⎤⎦ 20 R , or (56)

R T = ⎡⎣ 01ω1 ×⎤⎦ 10 RT ; and 20 R T = ⎡⎣ 00ω2 ×⎤⎦ 20 RT


T T
0
1 (57)
It is easier to derive equations if the Bond graph is integrally causalled. The differential causality occurring
in the previous Bond graphs for the two link manipulator is removed using stiffness and damping elements
as shown in Fig. 17. Two sets of such elements have been used. One is at the interface between the fixed
frame and first link, and the second is at the interconnection between the first and second links.
{ 2 ⎦ }
⎡ ⎡ C 2 I 2 ⎤ 02ω2 ×⎤
⎣ ⎣ ⎦ S e : 0 FO3
T
MGY ⎡⎣ C 0 rO ×⎤⎦
e f 2 3

MTF 0 0
FO3
0
2
R
I:[ M 2 ]
⎣⎡ C I 2 ⎦⎤ :I
2
1ω2 MTF 1ω 0
1 0
T 0 rC2
⎡⎣ C20 rO2 ×⎤⎦
2 0 2 0 2

− 0τ 2 MTF 0− 0
FO2

1
C:[ K12 ]
0
0 rO2′′

− 0τ 2 :Se 0− τ
0 0 1
2

{
⎣ ⎣ 1 ⎦ }
⎡ ⎡ C 1 I1 ⎤ 01ω1 ×⎤
⎦ 1
R:[ R12 ]
0
0 rO2′
T
MGY ⎡⎣ C0 rO ×⎤⎦
e f 1 2

− 0τ 2 MTF 0 0
FO2
0
1
R
⎡⎣ C11 I1 ⎤⎦ :I 1ω1 MTF 1ω 0
1 0 I:[ M 1 ]
T 0 rC1
⎡⎣ C0 rO ×⎤⎦
0 1 0 1

1 1

0
τ 1 :S e MTF 0 0
FO1

1 0
0 rO1′

C:[ K 01 ]

0 1

R:[ R01 ]
0
r = 0 :Sf
0 O1
1 0
0 rO1

Fig. 17. Integrally causalled Bond graph for the 2 link manipulator.

The equations derived from the Bond graph are as follows.


d
dt
{ } {
M 1 00 rC1 = K 01q01 + R01q01 − K12 q12 + R12 q12 } { } (58)

d
dt
{ }
M 2 00 rC2 = 0 FO3 + K12 q12 + R12 q12 { } (59)

d
{ } {
⎡ C 1 I ⎤ 01ω1 = − ⎡⎣ 01ω1 ×⎤⎦ ⎡ C11 I ⎤ 01ω1 + 10 RT 0τ 1 + 0τ 2
dt ⎣ 1 ⎦ ⎣ ⎦ } { }
+ 1 R ⎡⎣ C1 rO1 ×⎤⎦ K 01q01 + R01q01
0 T 0
{ } (60)

− 10 RT ⎡⎣ C10 rO2 ×⎤⎦ K12 q12 + R12 q12 { }


d
{ }
⎡ C 2 I ⎤ 02ω2 = − ⎡⎣ 02ω2 ×⎤⎦ ⎡ C22 I ⎤ 02ω2
dt ⎣ 2 ⎦ ⎣ ⎦ { }
{
+ 20 R T ⎡⎣ C20 rO3 ×⎤⎦ 0 FO3 − 0τ 2 } (61)

+ 20 R T {⎡⎣ 0
{
r ×⎤⎦ K12 q12 + R12 q12
C2 O2 }}
q01 = − { r
0
0 C1 + ⎡⎣ C10 rO1 ×⎤⎦
T
ω1
0
0 } (62)

q12 = { r
0
0 C1 + ⎡⎣ C10 rO1 ×⎤⎦
T
+ ⎡⎣ C20 rO2 ×⎤⎦ 00ω2
ω1 −
0
0 } { r 0
0 C2 (63)
T
}
(58) through (63) are the system equations. In the extreme case when the stiffness elements become rigid,
q 01 = 0 and q12 = 0 , and the terms K 01q01 and K12 q12 become constant vectors, representing constant
forces. The equivalence of these to Lagrange multiplier forces is well explained in [5]. These can be
eliminated by solving the above equations. From the Bond graph, it is clear that they are reaction forces
acting between connected bodies and are internal to the system. It can also be seen from (62) and (63) that
the kinematic relations get reestablished to the situation without stiffness and damping elements. The use of
such stiffness and damping elements is quite common in resolving the difficulties caused by differential
causality.

Since it is easier to express the angular velocities in their respective link frames,
⎧0⎫ ⎧0⎫
⎪ ⎪ ⎪ ⎪
0 ω1 = ⎨ 0 ⎬ , and 1ω2 = ⎨ 0 ⎬
1 2
(64)
⎪⎪ ⎪ ⎪
⎩θ1 ⎭ ⎩θ 2 ⎭
To obtain relationships between the angular velocities from rotation matrices, we can proceed from
2 R = 1R 2 R
0 0 1
(65)
where,
⎡cos θ1 − sin θ1 0 ⎤ ⎡ cos θ 2 − sin θ 2 0 ⎤
⎢ cos θ1 0 ⎥ and 2 R = ⎢⎢ sin θ 2 cos θ 2 0 ⎥⎥

1 R = ⎢ sin θ1
0 1
(66)
⎢⎣ 0 0 1 ⎥⎦ ⎢⎣ 0 0 1 ⎥⎦

Differentiating (65) with respect to time,


0  0  1 1
2 R = 1R 2 R + 1R 2 R
0

= ⎡⎣ 10 R 10 RT ⎤⎦ ⎡⎣ 10 R 21R ⎤⎦ + 10 R ⎡⎣ 21R 21RT ⎤⎦ 21R (67)


= ⎡⎣ 00ω1 ×⎤⎦ 10 R + 10 R ⎡⎣ 11ω2 ×⎤⎦ 21R
Since 20 R 20 RT = ⎡⎣ 00ω2 ×⎤⎦ , we post multiply (67) by 20 R T to obtain
0  0 T
⎡0 ⎤
2 R 2 R = ⎣ 0 ω2 × ⎦

= ⎡⎣ 00ω1 ×⎤⎦ + 10 R ⎡⎣ 11ω2 ×⎤⎦ 21R 20 RT


(68)
= ⎡⎣ 00ω1 ×⎤⎦ + 10 R ⎡⎣ 11ω2 ×⎤⎦ 10 RT
= ⎡⎣ 00ω1 ×⎤⎦ + ⎡⎣ 10ω2 ×⎤⎦
This implies that
0
0ω2 = 00ω1 + 10ω2
= 00ω1 + 10 R 11ω2 (69)
= R ω + R ω2
0
1
1
0 1
0
2
2
1
REFERENCES
[1] I. H. Shames, Engineering Mechanics, Prentice Hall, 1996.
[2] D. C. Karnopp, D. L. Margolis, and R. C. Rosenberg, System Dynamics: Modeling and Simulation of
Mechatronic Systems, third edition, Wiley-Interscience, 2000.
[3] A. Mukherjee, R. Karmakar, Modeling and Simulation of Engineering Systems Through Bondgraphs,
Narosa Publishing House, New Delhi, 2000.
[4] A. A. Zeid, J. L. Overholt, “Singularly Perturbed Formulation: Explicit Modeling of Multibody
Systems,” J. Franklin Institute, vol. 332B, No. 1, pp. 21-45, 1995.
[5] D. Karnopp, “Understanding Multibody Dynamics Using Bond Graph representations,” J. Franklin
Institute, vol. 334B, No. 4, pp. 641-642, 1997.
[6] J. Jang and C. Han, “Proposition of a Modeling Method for Constrained Mechanical Systems Based on
the Vector Bond Graph,” J. Franklin Institute, vol. 335B, No. 3, pp. 451-469, 1998.

You might also like