Force Analysis Of Inclined Leg Press Machine Virtual Work D

This analysis was performed by Daniel Langley and Evan Bowers - Fall 2010 ME 4640 TN Tech University

Figure 1: Nautilus Inclined Leg Press Machine

flickr:5264759051

The Problem

The scope of this force analysis is to use the method of virtual work to solve the input force required to move the weight carriage of the leg press machine through each position.

Discussion of Methodology

We decided to use the method of virtual work because we were not concerned with the internal forces of the mechanism. The method of virtual work is much simpler than using some other methods such as the matrix method.

Method of vitual work

The method of virtual work is a method for force analysis defined with the following assumptions: "If a conservative, rigid-body mechanism is in equilibrium under the action of external forces, the total work done by these forces is 0 for small (virtual) displacements. [1]" Mathematically:

(1)
\begin{split} \delta W& =\Sigma \vec{F} \cdot \delta s + \Sigma \vec{T} \cdot \delta \theta \\ & \Rightarrow \Sigma \vec{F} \cdot \frac{\delta s}{dt} +\Sigma \vec{T} \cdot \frac{\delta \theta}{dt}\\ & \Rightarrow \boxed{\sum_i \vec{F_i} \cdot \vec{V_i} + \sum_i \vec{T} \cdot \vec{\omega_j}=0}\\ \end{split}

For the purposes of this analysis, all masses and internal forces were neglected. Only the effects of the weight and the input force were considered.

Linkage Position Solution

In order to properly execute the method of virtual work at every linkage position, we need to solve the linkage position. Below is a drawing of the vector loop model:

flickr:5266849457

This vector loop has the following loop closure equation:

(2)
\begin{align} \begin {split} \L: \vec{r_1} + \vec{r_2} - \vec{r_s_a} - \vec{r_s} + \vec{r_3} = 0\\ \end{split} \end{align}

From this loop, we have two unknown angles:

(3)
\begin{align} \theta_1 \quad \theta_2 \end{align}

The position solution was obtained by using an algebraic solution presented in section 4.5 of Design of Machinery by Robert L. Norton.
A photo of the hand calculation can be found here: Position Solution Page 2

Figure 2

A plot of the linkage position is shown below:

flickr:5264977937

Figure 3

Shown below are snapshots of a simulation of the linkage:

flickr:5265590920

Solving the Velocity of The Linkage

Taking the first time derivative of the position loop equations, yields

(4)
\begin{align} V_x: -r_1 \dot{\theta_1} \sin{\theta_1}-r_2 \dot{\theta_2} \sin{\theta_2}-\dot{r_s}=0 \end{align}
(5)
\begin{align} V_y: r_1 \dot{\theta_1} \cos{\theta_1}+r_2 \dot{\theta_2} \cos{\theta_2}=0 \end{align}

Casting into matrix form:

(6)
\begin{equation} [C][V]=[B] \end{equation}

Where:

(7)
\begin{align} [V]=\begin{bmatrix} \ \dot{\theta_1}\\ \ \dot{\theta_2}\\ \end {bmatrix} \end{align}
(8)
\begin{align} [C]=\begin{bmatrix} \ -r_1\sin{\theta_1}&-r_2\sin{\theta_2\\ \ r_1\cos{\theta_1}&r_2\cos{\theta_2\\ \end {bmatrix} \end{align}
(9)
\begin{align} [B]=\begin{bmatrix} \ \dot{r_s}\\ \ 0\\ \end {bmatrix} \end{align}

Solving for velocity:

(10)
\begin{equation} [V] =[C]^{-1} [B] \end{equation}

Solving the input force with Virtual Work

We will make use of the method of virtual work to solve the input force required to move the weight carriage. From equation (1) We can solve for the force with the known velocity solved in equation (10).
Mathematically, rearranged from equation (1):

(11)
\begin{align} F_p_r_e_s_s = \frac{weight \cdot \cos{(\frac{\pi}{4})}\dot{r_s}}{\dot{r_s}\cdot\sin{(\theta_2 - \pi)}} \end{align}

In MATLAB, equation (11) is solved inside a for loop to plot a curve of input force with respect to time.

flickr:5266791099

Discussion of Results

Results of Force Analysis

From the force analysis performed on the leg press machine, at first glance we note that the input force required is higher at the initial position. This is when the linkage is closer to the users body. Nautilus designed this machine to have more resistance when the user's legs were closer to their body, targeting specific leg muscle groups. Note that the lengths of the links used in this analysis were rough estimates and not actual lengths of links on the Nautilus leg press. Changing the lengths of the links can drastically affect the shape of the force curve. In addition to this, adjusting the range of motion as well the input parameters (velocity and acceleration) will affect the initial and final forces required. For example, if the initial position of the weight slider is moved closer to the user, the initial force will be greater. Also, if the acceleration of the weight slider is increased, the entire force curve will increase in magnitude.

MATLAB Code for Force Analysis

%***********************************************************************
%  Leg Press Machine Force Analysis ************************************
%  ME 4640 Daniel Langley **********************************************
%          Evan Bowers    **********************************************
%***********************************************************************

clear all 
dtr = pi/180; %degrees to radians

%**********************
% Dimensions and inputs
%***********************
Fw = 200; % lbs

r1 = 3; % ft
r2 = 1.4;
r3 = 1;
theta3 = -50*dtr;
rsa = 0.25;
rs0 = -3.25;
t = linspace(0,1.25);
rs_ddot = -2;
rs_dot = rs_ddot.*t;
rs = rs0 - .5.*rs_ddot*t.^2;
branch = 1;
%***********************
% Position Solution
%***********************
 box = 2.5; scale = [-box,box,-box,box];

 for j=1:length(t)% for j=1:length(theta2)

     c3 = cos(theta3);
     s3 = sin(theta3);

     x = rs(j) - r3*c3;
     y = rsa - r3*s3;
     A = x^2+y^2+r2^2-r1^2+2*x*r2;
     B = -4*y*r2;
     C = x^2+y^2+r2^2-r1^2-2*x*r2;

     t1 = (-B+branch*(B^2-4*A*C)^.5)/(2*A);

     theta2 = (2*atan(t1));
     c2 = cos(theta2);
     s2 = sin(theta2);

     theta1 = atan2((rsa-r3*s3-r2*s2),(rs(j)-r3*c3-r2*c2));
     theta1s(j)=theta1/dtr;
     theta2s(j)=theta2/dtr;

     s1 = sin(theta1);
     c1 = cos(theta1);

     c= [-r1*s1 -r2*s2
         r1*c1 r2*c2];

     bv = [rs_dot(j)
         0];

     v = inv(c)*bv;

     theta1_dot(j) = v(1);
     theta2_dot(j) = v(2);

ba = [rs_ddot+r1*theta1_dot(j)^2*c1+r2*theta2_dot(j)^2*c2
      r1*theta1_dot(j)^2*s1+r2*theta2_dot(j)^2*s2];

     a = inv(c)*ba;
     theta1_ddot(j) = a(1);
     theta2_ddot(j) = a(2);

     %*****************************
     % Solve Virtual Work in Loop
     %*****************************

     F2(j) = ((Fw*cosd(45))*rs_dot(j))/(rs_dot(j)* sin(theta2 - pi));

    %*************************
    % Plot & Animate
    %*************************

    tilt =  0.7854;

    p1 = 0;
    p2 = p1 + r3*exp(i*(theta3+tilt));
    p3 = p2 + r1*exp(i*(theta1+tilt));
    p4 = p3 + r2*exp(i*(theta2+tilt));
    p5 = p4 - rsa*exp(i*(pi/2+tilt));
    p6 = p5 - rs(j)*exp(i*tilt);
    figure(1)
    plot_pts = [p1,p2,p3,p4,p5,p6,p1];

    plot(plot_pts)
    axis(scale)
    pause(.01)
    plot_pts_store(j,:)=plot_pts;
    check(j,1) = abs(p3-p2);
    check(j,2) = abs(p4-p3);
%     hold on
 end
hold on
plot(plot_pts_store,'LineWidth',3)
title('Leg Press Linkage with Position Curves');

figure(2)
plot(t,F2)
xlabel('Time in Seconds');
ylabel('Input Force');
title('Incline Leg Press Force Analysis');
Fmax = max(F2)
figure(3)
plot(rs,theta1s,rs,theta2s)
xlabel('Distance of Slider (ft)');
ylabel('Angle of Rotation (Degrees)');
legend('Theta1','Theta2');