Complex Numbers For Planar Kinematics: R J B I A R B A R 1 J
Complex Numbers For Planar Kinematics: R J B I A R B A R 1 J
Complex Numbers For Planar Kinematics: R J B I A R B A R 1 J
b r b r
a X a Real (Horizontal)
j
R aî bĵ r R a jbr e
j
r 2 a 2 b2 e cos j sin
tan b / a j 1
j
Expanding: R re r cos j r sin a r cos b r sin
j
r magnitude , e direction
j
Position: R re
re j j d d
2
Velocity: R j r e
dt dt 2
Extension Tangential
r e j
Acceleration: R j r e
j
r 2 e
j
j 2 r e
j
Extension Tangential Normal Coriolis
Snap:
j j
R ( r 6r 2 12r 4r 3r 2 r 4 )e (r 4r 6r 2 6r 4r 4r 3 ) j e
Note:
1. is always measured CCW from positive real axis. , and are positive CCW.
j j j
2. j e e (Try it using R a j b r e )
Loop Equation: R 2 R 3 R 4 R1 0
j 2 j 3 j 4 j1
Position: r2 e r3 e r4 e r1e 0
Real Components: r2 cos 2 r3 cos 3 r4 cos 4 r1 cos 1 0
Imaginary Components: j r2 sin 2 j r3 sin 3 j r4 sin 4 j r1 sin 1 0
Use Newton-Raphson iterative solution for position.
j j j
Velocity: j r2 2 e 2 j r3 3 e 3 j r4 4 e 4 0
Real Components: r2 2 sin 2 r3 3 sin 3 r4 4 sin 4 0
Imaginary Components: j r cos j r cos j r cos 0
2 2 2 3 3 3 4 4 4
detJ r3r4 sin 3 cos 4 cos 3 sin 4 r3r4 sin 3 4 r3r4 sin
3 r2 2 sin 2 4 / r3 sin 3 4 4 r2 2 sin 2 3 / r4 sin 3 4
Jerk:
j j j j
j (r22 r2 32 )e 2 3r2 2 2 e 2 j (r33 r3 33 )e 3 3r3 3 3 e 3
j j
j (r44 r4 34 )e 4 3r4 4 4 e 4 0
Real Components:
(r22 r2 32 ) sin 2 3r2 2 2 cos 2 (r33 r3 33 ) sin 3 3r3 33 cos 3
(r r 3 ) sin 3r cos 0
4 4 4 4 4 4 4 4 4
Imaginary Components:
j (r22 r2 32 ) cos 2 j 3r2 2 2 sin 2 j (r33 r3 33 ) cos 3 j 3r3 33 sin 3
j (r44 r4 34 ) cos 4 j 3r4 4 4 sin 4 0
Matrix Notation:
r3 sin 3 r4 sin 4 3
r cos
3 3 r4 cos 4 4
(r22 r2 32 ) sin 2 3r2 2 2 cos 2 r3 33 sin 3 3r3 3 3 cos 3 r4 34 sin 4 3r4 4 4 cos 4
3 3 3
(r2 2 r2 2 ) cos 2 3r2 2 2 sin 2 r3 3 cos 3 3r3 3 3 sin 3 r4 4 cos 4 3r4 4 4 sin 4
Given: Position, velocity, acceleration and jerk solutions and 2
Snap:
j j
j r2 (2 6 22 2 )e 2 r2 (4 22 322 42 )e 2
j j
j r3 (3 6 323 )e 3 r3 (4 33 332 34 )e 3
j j
j r4 (4 6 244 )e 4 r4 (4 44 324 44 )e 4 0
Real Components:
r2 (2 6 22 2 ) sin 2 r2 (4 22 322 42 ) cos 2
r ( 6 2 ) sin r (4 32 4 ) cos
3 3 3 3 3 3 3 3 3 3 3
Matrix Notation:
r ( 6 2 ) sin r (4 3 2 4 ) cos
2 2 2 2 2 2 2 2 2 2 2
6r3 3 3 sin 3 r3 (4 33 3 3 3 ) cos 3
2 2 4
2 sin r (4 3 2 4 ) cos
r3 sin 3
r4 sin 4 3
6 r4 4 4 4 4 4 4 4 4 4
r cos
3 r4 cos 4 4
r ( 6 2 2 ) cos 2 r2 (4 22 3 2 2 ) sin 2
3 2 2 4
2 2
6r3 32 3 cos 3 r3 (4 33 3 32 34 ) sin 3
6r4 24 4 cos 4 r4 (4 44 3 24 44 ) sin 4
Notes_03_02 5 of 15
r R
R
Loop Equation: R 2 R 3 R 4 R1 0
j 2 j 3 j 4 j1
Position: r2 e r3 e r4 e r1e 0
Real Components: r2 cos 2 r3 cos 3 r4 cos 4 r1 cos 1 0
Imaginary Components: j r2 sin 2 j r3 sin 3 j r4 sin 4 j r1 sin 1 0
Use Newton-Raphson iterative solution for position.
j j j
Velocity: j r2 2 e 2 j r3 3 e 3 r1 e 1 0
Real Components: r2 2 sin 2 r3 3 sin 3 r1 cos 1 0
Imaginary Components: j r2 2 cos 2 j r3 3 cos 3 j r1 sin 1 0
r3 sin 3 cos 1 3 r2 2 sin 2
r cos
sin 1 r1 r2 2 cos 2
Matrix Notation:
3 3
j
j (r33 6r3 32 3 ) cos 3 j (4r33 3 3r3 32 r3 34 ) sin 3 j r1 e 1 sin 1 0
Matrix Notation:
(r 6r 2 ) sin (4r 3r 2 r 4 ) cos
2 2 2 2 2 2 2 2 2 2 2 2 2 2
6 r
2
sin ( 4 r
3 r
2
r
4
) cos
r3 sin 3 cos 1 3 3 3 3 3 3 3 3 3 3 3 3 3
r cos
3 sin 1 r1
(r 6r2 2 2 ) cos 2 (4r2 2 2 3r2 2 r2 2 ) sin 2
2
3 2 4
2 2
6r3 32 3 cos 3 (4r33 3 3r3 32 r3 34 ) sin 3
Notes_03_02 7 of 15
r R
r R
R
r
Loop Equation: R 2 R 4 R1 0
j j j
Position: r2 e 2 r4 e 4 r1e 1 0
Real Components: r2 cos 2 r4 cos 4 r1 cos 1 0
Imaginary Components: j r2 sin 2 j r4 sin 4 j r1 sin 1 0
Use Newton-Raphson iterative solution for position.
(r22 r2 2 ) sin 2 3r2 22 cos 2 (3r4 4 3r44 r4 34 ) sin 4 3r4 44 3r4 24 cos 4
3
(r2 2 r22 ) cos 2 3r222 sin 2 (3r44 3r44 r44 ) cos 4 3r444 3r44 sin 4
3 3 2
Snap:
j 2 j
r2 (4 22 322 42 )e j r2 (2 6 222 )e 2
j j
(r4 6r4 24 12r4 44 )e 4 j (4r4 4 6r44 4r44 4r4 34 )e 4
j j
r4 (4 44 324 44 )e 4 j r4 (4 6 244 )e 4 0
Real Components:
r (4 32 4 ) cos r ( 6 2 ) sin
2 2 2 2 2 2 2 2 2 2 2
(r4 6r 12r4 44 ) cos 4 (4r4 4 6r44 4r44 4r4 34 ) sin 4
2
4 4
Matrix Notation:
r ( 6 2 ) sin r (4 32 4 ) cos
2 2 2 2 2 2 2 2 2 2 2
(4r4 4 6r44 4r44 4r4 34 ) sin 4 (6r4 24 12r4 44 ) cos 4
2 sin r (4 32 4 ) cos
r4 sin 4 r4 6 r
cos 4 4 4 4 4 4 4 4 4 4 4
sin
r4 cos 4 4
r ( 6 22 ) cos 2 r2 (4 22 32 2 ) sin 2
4 2 2 4
2 2
(4r4 4 6r44 4r44 4r4 34 ) cos 4 (6r4 24 12r4 44 ) sin 4
6r4 244 cos 4 r4 (4 44 324 44 ) sin 4
Notes_03_02 10 of 15
160
link 3
link 4
140
120
Angle [deg]
100
80
60
40
20
0
-100 -80 -60 -40 -20 0 20 40 60 80 100
Theta 2 [deg]
4
Angular velocity [rad/sec]
-2
-10
-100 -80 -60 -40 -20 0 20 40 60 80 100
Theta 2 [deg]
Notes_03_02 11 of 15
link 4 geometric
50
-50
-100
-100 -80 -60 -40 -20 0 20 40 60 80 100
Theta 2 [deg]
3000
link 3 complex numbers
link 4 complex numbers
link 3 geometric
Angular jerk [rad/sec/sec/sec]
2000
link 4 geometric
1000
-1000
-2000
-3000
-100 -80 -60 -40 -20 0 20 40 60 80 100
Theta 2 [deg]
Notes_03_02 12 of 15
1000
-1000
-2000
-3000
-100 -80 -60 -40 -20 0 20 40 60 80 100
Theta 2 [deg]
Notes_03_02 13 of 15
% general constants
d2r = pi / 180;
% crank
w2 = -10; % [rad/sec]
a2 = 2; % [rad/sec/sec]
g2 = -0.5; % [rad/sec/sec/sec]
% reduced motion
th2min_deg = -90;
th2max_deg = 90;
%th2min_deg = -109;
%th2max_deg = 109;
% crank angle
for th2_deg = th2min_deg : 1 : th2max_deg,
%for th2_deg = 65 : 65,
th2 = th2_deg * d2r;
vrhs = [ r2*w2*sin(th2) ;
-r2*w2*cos(th2) ];
w3 = keep_m(:,4);
w4 = keep_m(:,5);
a3 = keep_m(:,6);
a4 = keep_m(:,7);
g3 = keep_m(:,8);
g4 = keep_m(:,9);
th3d = keep_g(:,4);
th4d = keep_g(:,5);
th3dd = keep_g(:,6);
th4dd = keep_g(:,7);
th3ddd = keep_g(:,8);
th4ddd = keep_g(:,9);
figure( 1 )
clf
plot( th2_deg,th3_deg,'r', th2_deg,th4_deg,'g' )
xlabel( 'Theta 2 [deg]' )
ylabel( 'Angle [deg]' )
legend( 'link 3', 'link 4' )
Notes_03_02 15 of 15
figure( 2 )
clf
plot( th2_deg,w3,'ro', th2_deg,w4,'go', th2_deg,th3d,'b', th2_deg,th4d,'k' )
xlabel( 'Theta 2 [deg]' )
ylabel( 'Angular velocity [rad/sec]' )
legend( 'link 3 complex numbers', 'link 4 complex numbers', ...
'link 3 geometric', 'link 4 geometric' )
title( 'Four bar r1=90, r2=30, r3=60, r4=45' )
figure( 3 )
clf
plot( th2_deg,a3,'ro', th2_deg,a4,'go', th2_deg,th3dd,'b', th2_deg,th4dd,'k' )
xlabel( 'Theta 2 [deg]' )
ylabel( 'Angular acceleration [rad/sec/sec]' )
legend( 'link 3 complex numbers', 'link 4 complex numbers', ...
'link 3 geometric', 'link 4 geometric' )
title( 'Four bar r1=90, r2=30, r3=60, r4=45' )
figure( 4 )
clf
plot( th2_deg,g3,'ro', th2_deg,g4,'go', th2_deg,th3ddd,'b', th2_deg,th4ddd,'k' )
xlabel( 'Theta 2 [deg]' )
ylabel( 'Angular jerk [rad/sec/sec/sec]' )
legend( 'link 3 complex numbers', 'link 4 complex numbers', ...
'link 3 geometric', 'link 4 geometric' )
title( 'Four bar r1=90, r2=30, r3=60, r4=45' )
% bottom of fourbar_kin.m