MATLAB®
I have commonly utilized MATLAB® and SIMULINK® throughout my schooling at Cal Poly. These powerful tools have allowed me to simulate complicated dynamics problems, solve Ordinary Differential equations, and simply present data in a clear and concise manner.
I have organized this page by class, focusing primarily on intermediate (3D) dynamics. To view my scripts/reports, simply click the buttons/GIFs below, and a PDF will open in your browser.
Intermediate Dynamics
I enjoyed creating the bowling ball simulation, pictured below. This script takes three initial horizontal translational velocities and three initial angular velocities before modeling 10 seconds of motion for the three scenarios. The third scenario is then used to create a GIF of the 10 seconds of motion, including the moment where the ball begins to roll without slipping. This particular GIF shows a ball with an initial backspin of -30 rad/s and a linear velocity of 15 ft/s.
For the culminating project of my intermediate dynamics lab, I was tasked with simulating a walking trebuchet. The GIF below and corresponding script are the product of multiple weeks of work and the application of many of the conceptual and technical skills learned in the class. It should also be noted that given the complexity and size of the project, my professor provided students with some sample code and framework to keep the project within the scope of the class. Given a set of initial parameters including trebuchet orientation and ball release angle, the script models trebuchet motion and calculates ball trajectory and speed throughout the course of its motion.
I found intermediate dynamics very engaging and enjoyable. I have long prided myself on my visualization abilities in engineering problems and natural phenomena. This class challenged me with very non-intuitive concepts such as gyroscopic motion and complex three dimensional kinematic systems. I regularly apply the lessons learned in this class when climbing outdoors and building anchor systems.
Mechanical Controls
More recently, I used SIMULINK® block diagrams to model control systems. My class followed a two week per lab format - week one focused on system identification, and week two used these parameters to build a closed loop control system. This was then modeled in SIMULINK® to confirm safe operation before being applied to the experimental setup. While the following lab report is a document I created with my lab partner Alec Savoye, I think it is representative of my understanding and skillset in SIMULINK®.
The two tank control system targeted the lower tank height, and exhibited second order system behavior. After completing our formal data collection, my partner and I experimented with various other disturbances, including partially closing the valve draining the top tank - effectively changing a system parameter. It was satisfying to observe the system adjust and as expected, bring the top tank to a higher level to compensate for the more resistive inter-tank valve.