c01 Solution

Download as pdf or txt
Download as pdf or txt
You are on page 1of 8

ME 581 - Spring 2014 C01

Name ________________________

1) Estimate generalized coordinates q x 2 y 2 2 x 3 y 3 3 x 4 y 4


coordinate frames attached to the web cutter shown below. Use units of cm.
Link
Origin {ri}
Angle i

{ 0, 0 }

0 ,0
30 deg

0 deg

4 for local
T

4
T

}
3.5 , 2
90 deg

3.5 , 16.23 }
-60 deg

2) Complete the table of constant local body-fixed locations of specific points. Use units of cm.
s 3 '
s1 '
s 2 '
s 4 '
A

0,0

0, 0

4, 0

C
D

{ 13.21 , -2.03 }

T
T

0 ,0
{ 14.23 , 0

0,0
{ 20.32 , 0

{ 16.26 , -12.20 }

{ 7.11 , 10.16 }

3) Symbolically write a constraint vector for this mechanism. The driver constraint should
start 2 at 30 degrees and rotate at constant 60 rpm CCW for web motion from right to left.
4) Compute residuals of using values from parts 1) and 2) above.
0.6624 cm
maximum abs _________________________________

5) Symbolically write the Jacobian matrix q .


6) Evaluate the Jacobian from part 5) using values from parts 1) and 2) above.

-144.5768 cm2
det q symbolic _________________________________

7) Numerically estimate the Jacobian matix q using test_jac.m and compare to part 6).

-144.5756 cm2
det q numerical _________________________________
8) Replace the absolute angle driving constraint for 2 with a relative position driving constraint
between y3P and y4Q that would cut the web. Reevaluate the last row of the constraint vector and
the Jacobian both symbolically and numerically. Using values from parts 1) and 2) above,
compute residuals for your new driving constraint and the determinant of the Jacobian.
3.1074 cm
maximum abs _______________________

382.6448
det q _______________________

ME 581 - Spring 2014 C01

Name ________________________

P3
C3

12.20 cm

2.03 cm

y4

C4
Q

Q4
x4

7.11 cm
10.16 cm

BC =
14.23 cm

x3
y3
CD =
20.32 cm

AB =
4.00 cm

B3

x1

D
13.21 cm

x2
B2

y1
B

2.03 cm

y2 2

A1

A2
D4
D1

ME 581 - Spring 2014 C01

Name ________________________

% test_jac.m - evaluate Jacobian by numerical partial derivatives


%
used for ME 581 web cutter
% HJSIII, 08.04.02
% hold estimates for generalized coordinates
nq = length(q);
qhold = q;
% evaluate constraints
wc_phi
% hold constraints
phold = PHI;
% perturb one coordinate at a time
for iq = 1:nq,
q = qhold;
q(iq) = q(iq) + 0.01;
% change in constraints caused by coordinate perturbation is
% approximately equal to partial derivative
wc_phi
jtest(:,iq) = ( PHI - phold ) / 0.01;
end
% reset coordinates and constraints
q = qhold;
wc_phi

ME 581 - Spring 2014 C01

Name ________________________

link 2 angular driver

REV _ A


REV _ B

KINEMATIC REV _ C
DRIVER

REV _ D
DRIVER 2

I 2

I 2

0 2 x 2

0
2x 2

01x 2

r2 A r1 A
r3 B r2 B
r4 C r3 C
r4 D r1 D
2 _ START

2 t

B 2 s 2 ' A

0 2 x 2

0 2 x1

0 2 x 2

B 2 s 2 ' B

I 2

B3 s 3 ' B

0 2 x 2

0 2 x1

I 2

B 3 s 3 ' C

I 2

0 2 x1

0 2 x 2

0 2 x1

I 2

01x 2

01x 2

0 2 x1

0 2 x1

C
B 4 s 4 '

D
B 4 s 4 '

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
driver using cutter points P and Q

row 9 sec ond row of r3 P r4 Q 0

row 9
q

sec ond row of 0 2 x 2

0 2 x1

I 2

B3 s 3 ' P

I 2

B 4 s 4 ' Q

ME 581 - Spring 2014 C01

Name ________________________

>> wc_main_c01
Parts 4 and 6 ++++++++++++++++++++++++++++++++++++++++
PHI =
0
0
0.0359
0.0000
-0.0000
0
0.4500
0.6624
0
JAC =
1.0000
0
-1.0000
0
0
0
0
0
0

0
1.0000
0
-1.0000
0
0
0
0
0

0
0
2.0000
-3.4641
0
0
0
0
1.0000

0
0
1.0000
0
-1.0000
0
0
0
0

0
0
0
1.0000
0
-1.0000
0
0
0

0
0
0
0
14.2300
-0.0000
0
0
0

0
0
0
0
1.0000
0
1.0000
0
0

0
0
0
0
0
1.0000
0
1.0000
0

0
0
0
0
0
0
17.5976
10.1600
0

0
0
0
0
14.2298
0.0711
0
0
0

0
0
0
0
1.0000
0
1.0000
0
0

0
0
0
0
0
1.0000
0
1.0000
0

0
0
0
0
0
0
17.5465
10.2478
0

0
0
0
0
14.2300
-0.0000
0
0
12.2000

0
0
0
0
1.0000
0
1.0000
0
0

0
0
0
0
0
1.0000
0
1.0000
-1.0000

0
0
0
0
0
0
17.5976
10.1600
-12.3538

detJAC =
-144.5768
Parts 7 ++++++++++++++++++++++++++++++++++++++++
jtest =
1.0000
0
-1.0000
0
0
0
0
0
0

0
1.0000
0
-1.0000
0
0
0
0
0

0
0
2.0173
-3.4540
0
0
0
0
1.0000

0
0
1.0000
0
-1.0000
0
0
0
0

0
0
0
1.0000
0
-1.0000
0
0
0

det_jtest =
-144.5756
Part 8 ++++++++++++++++++++++++++++++++++++++++
PHI =
0
0
0.0359
0.0000
-0.0000
0
0.4500
0.6624
3.1074
JAC =
1.0000
0
-1.0000
0
0
0
0
0
0
detJAC =
382.6448

0
1.0000
0
-1.0000
0
0
0
0
0

0
0
2.0000
-3.4641
0
0
0
0
0

0
0
1.0000
0
-1.0000
0
0
0
0

0
0
0
1.0000
0
-1.0000
0
0
1.0000

ME 581 - Spring 2014 C01

Name ________________________

% wc_main_c01.m - web cutter four-bar for ME 581


%
main for Computer 1
% HJSIII, 14.02.12
clear
% initialize
wc_ini_c01;
% evaluate constraints and Jacobian
wc_phi;
% parts 4 and 6 - residuals and Jacobian
disp( 'Parts 4 and 6 ++++++++++++++++++++++++++++++++++++++++' )
PHI
JAC
detJAC = det( JAC )
% part 7 - numerical Jacobian
disp( 'Part 7 ++++++++++++++++++++++++++++++++++++++++' )
test_jac
jtest
det_jtest = det( jtest )
% part 8 - cutter = r3P(2) - r4Q(2);
disp( 'Part 8 ++++++++++++++++++++++++++++++++++++++++' )
PHI(9) = cutter;
Jlink3 =
Jlink4 =
JAC(9,:)
PHI
JAC
detJAC =

[ eye(2)
B3*s3pP ];
[ -eye(2) -B4*s4pQ ];
= [ 0 0 0 Jlink3(2,:)
det(JAC)

Jlink4(2,:) ];

ME 581 - Spring 2014 C01


% wc_ini_c01.m - web cutter four-bar for ME 581
%
initialize constants and assembly guesses
% HJSIII, 14.02.12
% general constants
d2r = pi / 180;
R = [ 0 -1 ; 1 0 ];
% mechanism constants
len2 = 4;
len3 = 14.23;
len4 = 20.32;
s2pA = [ 0 0 ]';
s2pB = [ len2 0 ]';
s3pB = [ 0 0 ]';
s3pC = [ len3 0 ]';
s3pP = [ 16.26 -12.20 ]';
s4pC = [ 0 0 ]';
s4pD = [ len4 0 ]';
s4pQ = [ 7.11 10.16 ]';
r1A = [ 0
0 ]';
r1D = [ 13.21 -2.03 ]';
% initial guesses
phi2 = 30 * d2r;
phi3 = 90 * d2r;
phi4 = -60 * d2r;
q(1,1) = 0;
q(2,1) = 0;
q(3,1) = phi2;
q(4,1) = 3.5;
q(5,1) = 2;
q(6,1) = phi3;
q(7,1) = 3.5;
q(8,1) = 16.23;
q(9,1) = phi4;
% driver for crank - phi2 = phi2_0 + w2*t
phi2_0 = 30 * d2r;
w2 = +60 * 2 * pi / 60;
% 60 rpm CCW, convert to rad/sec
t = 0;

Name ________________________

ME 581 - Spring 2014 C01

Name ________________________

% wc_phi_c01.m - web cutter four-bar for ME 581


%
evaluate constraints and Jacobian for crank driving constraint
% HJSIII, 14.02.12
% global location of local frames and rotation matrices
r2 = q(1:2);
r3 = q(4:5);
r4 = q(7:8);
phi2 = q(3);
phi3 = q(6);
phi4 = q(9);
A2 = [ cos(phi2) -sin(phi2); sin(phi2) cos(phi2) ];
A3 = [ cos(phi3) -sin(phi3); sin(phi3) cos(phi3) ];
A4 = [ cos(phi4) -sin(phi4); sin(phi4) cos(phi4) ];
B2 = R * A2;
B3 = R * A3;
B4 = R * A4;
% global
r2A = r2
r2B = r2
r3B = r3
r3C = r3
r4C = r4
r4D = r4
r3P = r3
r4Q = r4

locations of points
+ A2*s2pA;
+ A2*s2pB;
+ A3*s3pB;
+ A3*s3pC;
+ A4*s4pC;
+ A4*s4pD;
+ A3*s3pP;
+ A4*s4pQ;

% revolute
PHI(1:2,1)
PHI(3:4,1)
PHI(5:6,1)
PHI(7:8,1)

constraints
= r2A - r1A;
= r3B - r2B;
= r4C - r3C;
= r4D - r1D;

% crank driver constraint


PHI(9,1) = phi2 - phi2_0 - w2*t;
% Jacobian by rows
JAC = zeros(9,9);
JAC(1:2,1:3) = [ eye(2)

B2*s2pA ];

JAC(3:4,1:3) = [ -eye(2)
JAC(3:4,4:6) = [ eye(2)

-B2*s2pB ];
B3*s3pB ];

JAC(5:6,4:6) = [ -eye(2)
JAC(5:6,7:9) = [ eye(2)

-B3*s3pC ];
B4*s4pC ];

JAC(7:8,7:9) = [

eye(2)

B4*s4pD ];

% driver constraint in Jacobian


JAC(9,3) = 1;
% current results
current_crank = phi2 / d2r;
cutter = r3P(2) - r4Q(2);

You might also like