An experiment by Tom McCracken.



Link to GitHub repository containing source, demonstration/documentation (this page) and license for use.

About

This project is aimed at developing a Javascript library to model simple Planetary (Epicyclic) Gear Trains for animation purposes. In particular the library supports modeling the positions and velocities of planetary gear trains comprising one inner "sun" gear, one outer "ring" gear and one or more central "planet" gears (within a carrier).

The library, including this demonstration/documentation web page, is hosted on GitHub and licensed under the permissive open source Apache 2.0 License. The key project files, located within the GitHub repository, are as follows:

This project demonstration/documentation web page is located within the repository /docs/ folder. In this demonstration, a planetary gear train is modeled and animated using an HTML5 canvas element.

Usage

Instantiation

To create an instance of a planetary gear model within an application, the constructor can be called as follows.

var planetary_gear = new PlanetaryGear (size_input_mode,
                                        size_A,
                                        size_B,
                                        speed_input_mode,
                                        speed_A,
                                        speed_B,
                                        tooth_pitch,
                                        number_of_planets);

The following is an explanation of the constructor parameters:

Updating positions

The following method can be called to update the positions of the components within a planetary gear model.

planetary_gear.fixed_speed_update(elapsed_time);

This will update the positions of the components within the overall model based on the total time that has elapsed since the beginning of the simulation. The parameter "elapsed_time" needs to be passed to the method. This assumes that the modeled components travel at a fixed speed.

Animation

Whilst animation of planetary gear trains is not the primary purpose of this project, the demonstration/documentation web page files demonstrate how various model parameters can be accessed in order for an application to animate the planetary gear train.

Note: This animation example does not accurately model gears using involute profiles; it only approximates the shape of a gear tooth with a simple trapezium profile.

Theory

The library uses the following equations to determine the unknown size and speed variables based on the known variables and the particular size and speed input modes that have been selected. The variables Ws, Wp, Wc and Wr represent the angular velocities of the sun gear, planet gear(s), carrier, and ring gear respectively and the variables Ns, Np and Nr represent the sizes (numbers of teeth) of the sun gear, planet gear(s) and ring gear respectively.

Size calculations

Speed calculations