Kinematic Analysis Equations & Code

Kinematic Analysis Equations & Code

Figure 1. Gear box CAD drawing with labelled parts.

The CAD is not my work, it is taken as a screenshot from the YouTube page  on the right; I overlaid the picture with eh arrows and text to serve as a reference for the equations used below. Fan speeds were taken from the information on this page:

https://www.rewci.com/12-inch-oscillating-table-fan-3-speed.html


Video 1. Youtube video of gear box mechanism

This video shows gears in the gear box when the fan is in action. Again, this wasn't developed by me, however it is a good illustration of what’s going on.


The Gears

Worm gears are usually used when large speed reductions are needed. The gear ratio of a worm gear is worked out through the following formula:

(Number of teeth on worm wheel)/(Number of teeth on worm)

The worm acts as a single toothed gear so the ratio is;
Number of teeth on wormwheel/1.
Since my worm wheel has a teeth of 51, the gear ratio is 51:1, with an rpm of 1450 (from fan speed link above).

Below are the results from the counted teeth and measured diameter of the gears


Figure 2. Four bar mechanism illustrated, with measurements from the pictures on the right


Four Bar Link Measurements

MATLAB CODE

%Author: Emmanuel Akita

%This function executes plots for fan head position (theta_4), fan head angular velocity fan head angular acceleration

% It is based on the assumptions that all angles are at the tails of the  vectors and that they are measured from the positive X-axis in degrees.

% It also assumes the vector loop is R2 - R3 - R4 - R1 = 0

%input: fan speed in rpm


function [] = fan(RPM)

w = 13;% worm gear

wg = 51; % worm gear

cg_1 = 12;   cg_2 = 61; %circular gear 1 and 2

GR = (w/wg) *(cg_1/cg_2);

a = 0.55; %measured, in inches

b =3 ;% measured, in inches

c= 3; %measured, in inches

d = 0.72; %measured, in inches

% r_in = 0.3145; %calculated from measured value, in inches

% r_out = 1.1811; %calculated from measured value, in inches

theta2=0:360;


for i = 1 : length(theta2)

    omega2(i) = RPM*GR ;   %fan speed is reduced by gear ratio

    alpha2(i) = 0;

    k1 = d/a;

    k2 = d/c;

    k3 = ((a^2 - b^2 + c^2 + d^2) / (2 * a * c));

    

    Acons = cosd(theta2(i)) - k1 - k2 * cosd(theta2(i)) + k3;

    Bcons = -2 * sind(theta2(i));

    Ccons = k1 - (k2 + 1) * cosd(theta2(i)) + k3;

    Y_t4= -Bcons - sqrt((Bcons)^2 - 4 * Acons * Ccons); %xcomponent for theta 4 calculation

    X_t4= 2*Acons; %y component for theta 4 calculation

    theta4(i) = (2 * (atand(Y_t4/X_t4)));

    

    % Now to find theta3, find k4 and k5 below:

    k4 = d / b;

    k5 = ((c^2 - d^2 - a^2 - b^2) / (2 * a * b));

    Dcons = cosd(theta2(i)) - k1 + k4 * cosd(theta2(i)) + k5;

    Econs = -2 * sind(theta2(i));

    Fcons = k1 + (k4 - 1) * cosd(theta2(i)) + k5;

    

    X_t3= -Econs -  sqrt((Econs)^2 - 4 * Dcons * Fcons); %xcomponent for theta 3 calculation

    Y_t3= 2 * Dcons; %y component for theta 3 calculation

    theta3(i) = (2 * (atand(X_t3/Y_t3)));

    omega3(i) = (a * omega2(i))/b * (sind(theta4(i) - theta2(i))) / (sind(theta3(i) - theta4(i))) ;

    omega4(i) = (a * omega2(i))/c * (sind(theta2(i) - theta3(i))) / (sind(theta4(i) - theta3(i)));

    

    %determine link 3 and 4 alpha

    A = c * sind(theta4(i));

    B= b * sind(theta3(i));

    C =  a * alpha2 (i)* sind(theta2(i)) + a* omega2(i)^2 * cosd(theta2(i)) +  b*omega3(i) ^2 * cosd(theta3(i)) - c*omega4(i)^2 *cosd(theta4(i));

    D = c*cosd(theta4(i));

    E = b * cosd(theta3(i));

    F =  a * alpha2(i) * cosd(theta2(i)) - a* omega2(i)^2 * sind(theta2(i)) -  b*omega3(i) ^2 *sind(theta3(i)) + c*omega4(i)^2 *sind(theta4(i));

    alpha3(i) = (C*D - A*F) / (A*E - B*D);

    alpha4(i) = (C*E - B*F) / (A*E - B*D);

    alpha(i) = theta2(i) -theta3(i);

    beta(i) = theta4(i) -theta3(i);

    if (alpha(i) > 90)

        alpha(i) = 180 - alpha(i);

    end

    

    if (beta(i) > 90)

        beta(i) = 180 - beta(i);

    end

    

    MA(i) = c * sind(beta(i)) * omega2(i) / (a * sind(alpha(i))* omega4(i));    

end


%plot results

figure

plot(theta2, (theta4))

xlabel('\theta_2 (deg)')

ylabel('\theta_4 (deg)')


figure

plot(omega2,omega4)

xlabel('\omega_2 (rpm)')

ylabel('\omega_4 (rpm)')


figure

plot(theta2, omega4)

xlabel('\theta_2 (deg)')

ylabel('\omega_4 (rpm)')


figure

plot(theta2, alpha3)

xlabel('\theta_2 (deg)')

ylabel('\alpha_3 (rev/min^2)')


figure

plot(theta2, alpha4)

xlabel('\theta_2 (deg)')

ylabel('\alpha_4 (rev/min^2)')


figure

plot(theta2, MA)

xlabel('\theta_2 (deg)')

ylabel('MA')

end



Equations for MATLAB Code
Below are snapshots of handwritten equations used for the code