The goal of this project was to create a fully functional Simulink model that accurately simulates the descent stage of a landing rocket. This model was made for a larger project in which I attempted to design a model rocket capable of autonomous landing. In this project, I incorporated accurate thrust look-up tables, mass flow rate from the motor, drag, and a PID for stable thrust vector control. After I completed the model, I tested which motors, ascent altitude, weight, and other factors would be needed to land a model rocket softly.
I started by reusing parts of another Simulink model I had previously built (described below) to obtain an accurate calculation of drag force. Once I had that, I created a basic falling model by subtracting drag from gravity, which let me simulate how a rocket would fall from a set altitude. Then I added a trigger so that a simulated motor (represented by a force lookup table) would activate at a specific altitude to slow the rocket’s descent. Finally, I introduced a PID controller using Simulink’s built-in block. The controller calculates the rocket’s angle error, runs it through the PID loop, and corrects it using thrust vector control(controlled by servos) to maintain the rocket's stability. I also used metric units(like most of my simulations) to avoid any unwanted errors and strange conversions.
The main challenge I faced was getting the motor to ignite at a specific altitude. This was tricky because the motor’s force lookup table required a time input that needed to start only once the rocket reached the triggered altitude, and not repeat afterward. To solve this, I used a memory block to store the moment the trigger was activated and subtracted that value from the simulation time to create a local time input. However, the memory block caused slight jumps in the signal, resulting in unintentional force spikes. I resolved the issue by creating a subsystem that activated only when the rocket reached the trigger altitude, and I also made sure there were no forces before deploy altitude.
Simulink, physics-based simulations, motor thrust, mass flow rate, PID control, and motor ignitions.
While not compared to real flight data yet, this model has been a critical part of the design choices for my rockets. Furthermore, it has created a starting point for the PID tuning, which will hopefully reduce testing and lead to good results on the first launch. It has also taught me lots about physics, drag, rockets, and how to implement Simulink into designs.
The goal of this project was to minimize testing for model rockets by simulating their trajectories in Simulink. This was done to improve my rocketry team’s chances of making the American Rocketry Challenge finals by reducing testing times and costs. Additionally, the idea was to use one test flight to adjust the drag coefficient in the simulation to match the rocket’s actual altitude on the test flight. From there, we adjusted the simulated rocket’s weight until it reached the desired altitude, and then applied the same weight change to the actual rocket.
I started by creating a basic physics model where a constant force was applied to an object resisting gravity. I integrated the force to get acceleration, then velocity, and finally altitude. After that, I built a drag model that took the drag coefficient and reference area as user inputs. Using the drag equation, I calculated the drag force and using all three forces calculated the net force. Next, I created a force lookup table to accurately simulate motor ignition. I sourced thrust data for specific motors online, as many have been tested and documented. The final component I added was mass flow rate, which I calculated using the motor’s total impulse, propellant weight, and thrust. This gave me the amount of mass expelled at each moment, which I integrated over time and subtracted from the rocket’s total mass.
The main challenge I faced was learning how to use Simulink to build semi complex physics models and run simulations. However, I really enjoyed the process, and it became easier as I gained experience.
Simulink, physics-based simulations, motor thrust, mass flow rate, and drag calculations.
This model has been successfully implemented for my rocketry team and is now a critical part in adjusting our designs after and before test flights. It successfully estimates the general height of a specific rocket and is our primary tool after using Open Rocket and a CFD tool.