August 2025 - December 2025 (Solidworks, Dynamic Simulation, Linkage Synthesis, PID Control, Arduino)
For Design and Manufacturing II (ME 350), my team was tasked with designing and building a linkage driven by a DC motor to work with a closed-loop PID control based on encoder readings and move through specific positions. The design process began by sketching a linkage on Solidworks that would move through a range of 4 desired positions while maintaining a transmission angle close to 90degrees. After developing a rough sketch, a rough 3D model of 5 designs was created and imported into Adams (a dynamic simulation software).
Adams was used to determine the linkage's power consumption, and coupling this data with each linkage's transmission angle, a final linkage design was chosen and modeled in Solidworks, using joint stackups that would minimize friction while maintaining rigidity:
After landing on an initial linkage design, the team used an inertia matching procedure to find the maximum inertial position of the linkage and using it along with the motor inertia to land at an optimal transmission ratio. Additionally, the team checked the results of the inertia matching procedure with a resolution analysis, to make sure our transmission would provide the necessary step resolution for our motor's encoder. We landed at a conservative value of N=2 and designed the transmission system:
Additionally, the team performed torque transfer calculations between the driving gear and the motor shaft's set screw as well as the driven gear and the driving link's spring pin connection to ensure these components would not fail under maximum torque conditions. The linkage was then manufactured using the machine shop's water jet, mill, lathe, and 3D printer. Each component had a 2D manufacturing drawing calling out important dimensions and tolerances to make sure the system would work as intended.
The main goal of the linkage was to survive as long as possible in a game where moving targets on power screws would try to reach the end of a track. The moving targets could be reset by successfully shining our linkage's flashlight at the corresponding target. The control scheme of the linkage was to read the moving target's position using ultrasonic sensors, process which target was closest to completing its lap, and then move to that target's position as fast as possible using PID control. In between rounds, the linkage would forcibly hit the rightmost hard stop and limit switch to recalibrate its position on the encoder and Arduino code. The PID gains were based on a lot of trial and error, making sure our linkage would not overshoot its targets while also maintaining a fast rise time. Our linkage ended up performing extremely well as one of the top performers in the class:
Team Members: Aryan Parikh, Carlos Perez, Jimmy Kaleta, Elijah Quan