Project Overview
This project developed a MATLAB-based simulation tool for a screw-driven wheel-linkage mechanism. The system consists of a vertical screw/cylindrical actuator, a rotating wheel, a horizontal guide shaft, a sliding block, and an inclined linkage connecting the lower slider assembly to the upper rotating mechanism. In the model, Point A represents the sliding block mounted on the horizontal guide shaft near the base of the mechanism. Its motion is treated as a linear translation along the shaft. Point B represents the linkage joint used in the companion dynamic model, located along the connected linkage assembly between the slider motion and the rotating upper mechanism. Point C represents the tracked point associated with the screw-wheel interaction; it moves around the vertical screw/wheel path at a radius based on the wheel and screw geometry while also changing height according to the screw pitch.
The goal of the project was to translate the CAD mechanism into a computational model that could predict and visualize the motion of these critical points under different geometry and actuator inputs. The MATLAB GUI allows the user to enter key parameters such as wheel radius, screw radius, screw pitch, initial height of Point C, initial angular position, slider position, screw angular velocity, slider velocity, and total simulation time. The simulation then calculates 3D trajectory, vertical displacement, orbit angular velocity, self-angular velocity, slider position, and actuator response without requiring the user to manually edit the source code.
Modeling and Simulation

The motion of Point C was modeled using a circular path in the horizontal plane combined with vertical displacement from the screw input. The screw angular velocity was prescribed as a time-varying actuator input: ω_screw(t) = ωâ‚€ sin(2πt / t_end)
The slider velocity of Point A was modeled as a periodic linear input:
V_A(t) = V_A0 cos(2πt / t_end)
​
The angular position of Point C was updated over each time step using:
φ(t + Δt) = φ(t) + ω_screw(t)Δt
​
Because screw pitch is defined in meters per revolution, the vertical height of Point C is related to screw angular velocity by: h_C(t + Δt) = h_C(t) + (p / 2π)ω_screw(t)Δt
​
The 3D position of Point C was then calculated as:
x_C = (R + r)cos(φ)
y_C = (R + r)sin(φ)
z_C = h_C
​
The orbital velocity of Point C was calculated using: V_C = ω_orbit(R + r)
where: ω_orbit = ω_screw
​
The position of slider A along the guide shaft was updated using:
A(t + Δt) = A(t) + V_A(t)Δt
​
A companion ODE-based MATLAB model was also created to analyze the motion of another point in the mechanism. The state vector was defined as:
y = [s, s_dot, ψ, ψ_dot, θ, θ_dot]
where s is slider displacement, ψ and θ are angular coordinates, and the dotted terms represent velocity.
​
The position of Point B was calculated as:
x_B = s + Lcos(ψ)cos(θ)
y_B = Lsin(ψ)cos(θ)
​
The velocity components of Point B were calculated as:
x_B_dot = s_dot − Lsin(ψ)cos(θ)ψ_dot − Lcos(ψ)sin(θ)θ_dot
y_B_dot = Lcos(ψ)cos(θ)ψ_dot − Lsin(ψ)sin(θ)θ_dot
​
The ODE model used the following acceleration relationships:
s_ddot = [F − 2mL(θ_dot)²cos(θ)] / 4m
ψ_ddot = 0
θ_ddot = [−2m(s_ddot)sin(θ)] / [mL(1/6 + (3/2)sin²(θ))]
​
Results and Interpretation
The simulator generates plots for Point C x-position, y-position, vertical height, and 3D trajectory. These results show how screw rotation, wheel radius, screw radius, and pitch combine to create spatial motion. Additional plots show slider velocity, screw angular velocity, slider position along the guide shaft, orbit angular velocity, and self-angular velocity.
​
The companion ODE-based simulation adds a deeper analysis layer by calculating position, velocity, acceleration, and estimated joint-force behavior over time. These results help connect the visible motion of the CAD mechanism to engineering quantities used to evaluate mechanism response, actuator loading, and joint behavior.



Validation, Skills, and Significance
This project demonstrates a CAD-to-simulation workflow for mechanical mechanism analysis. The CAD model provided the physical basis for defining the simulation geometry, while MATLAB was used to convert the mechanism into a parametric computational model. The GUI makes the simulation more accessible by allowing users to change design variables and actuator inputs without directly editing the code.
The project highlights key mechanical engineering skills, including kinematic modeling, screw-motion relationships, numerical simulation, MATLAB GUI development, ODE-based motion analysis, and engineering data visualization. It also demonstrates how early-stage simulation can support mechanism design by helping engineers understand motion trends, compare input conditions, and identify areas where more detailed dynamic or structural analysis may be needed.
Future improvements could include enforcing full linkage constraints, adding contact/friction effects, refining the screw-nut motion relationship, and validating the simulation against measured motion data or a higher-fidelity multibody dynamics model.
