Computational Deployment: Simulating A Rocket

The model rocket project has long been a favorite at the Academy. For the past fifteen years, students have designed, fabricated and then launched model rockets as the first project of the program. Over the years, I have tweaked the project several times, each time finding new ways to introduce authentic analysis in the process.

This year I have taken a deep dive into computational modeling, and as part of the rocket project, students were asked to create a simulation of their rocket prior to launch. In this post I will discuss how I did this, and how it turned out.

Simulating The Momentum Principle:

Prior to getting started on this, students investigated the causal relationship between forces and changes in motion. Using force sensors, carts, weights and elastic cords of different lengths, students began building a qualitative and quantitative model relating the momentum of a particle to the forces acting on the particle.

Screen Shot 2018-12-22 at 9.27.05 AM

In previous years, I waited to introduce momentum until after a significant amount of time was spent on forces, balanced and unbalanced. This year I decided to go directly to momentum. This is a bit of a break from the established modeling instruction sequence, but I think its a good alternative that is also suggested by the great textbook Matter and Interactions. The momentum principle can easily be modeled computationally and I think the students are able to grasp it conceptually.

I have included a link to a Google Doc that is the introductory activity that I created. My approach here, as it has been with this entire unit is to give the students guided questions that allow the students to discover and investigate the code required to simulate the momentum principle. This is my first attempt, and I am sure it will undergo many revisions:

Simulating The Momentum Principle

Introducing Conditional Behavior

One of the really great things about building a simulation of a rocket has three distinct phases of its trajectory – the thrust phase, the cruise phase and the descent phase. This gives the students three different phenomena to study and simulate: positive acceleration when two unbalanced forces are acting on the rocket during the thrust phase, free fall when the fuel runs out, and then constant velocity when the parachute has been deployed.

In order to simulate this, students needed a way to change the forces acting on the rocket at different time intervals. This is done using a conditional statement:

If This Then That

Conditional statements are very easy to create in Tychos – but they work a bit differently from other programming interfaces. Here is an example:

# The thrust force - F (thrust, rocket, fuel)
Ftrf = if (t < 1.8, [0, 6], [0, 0])

In this code snippet, a force is given a different value based on a condition, in this case whether the time in the simulation is less than 1.8 seconds. If it is, then the force is given a positive 6 value in the Y direction, and if the time is greater than 1.8 seconds, then the force becomes zero.

This allows the students to simulate the thrust phase of the rocket by having the thrust force disappear once the fuel has run out. We conducted tests on Estes C6-5 rocket engines in order to establish the time value. You can read more about how we did this here.

The students did the same thing to figure out when the parachute should deploy. Again this was established based on information from Estes as well as our own tests.

Comparing Simulation Data to Real Data

The students could analyze the simulated rocket behavior by using the graphing tools in Tychos. The students graphed the vertical velocity as well as the vertical position of their simulated rockets. Here is an example of what those graphs look like:

Screen Shot 2018-12-22 at 10.22.21 AM

The last step of the process was for the students to compare their simulated data to the real data that was captured by the altimeter that we use in the rocket’s payload. Below are two images of the graphs of the data they retrieved from the rocket’s altimeter:


velocity data from altimeter – imported into LoggerPro


altitude data from altimeter – imported into LoggerPro

The shapes of the graphs from the simulated data and the real data are very similar! That was certainly exciting to see that the simulations were at least giving results that qualitatively matched the real behavior of the rockets.

Two factors that certainly created significant discrepancies between the real rockets and the simulated rockets was the existence of air resistance on the real rocket, and the fact that the real rockets didn’t always go perfectly straight up! We plan on modifying the simulations, but that will have to wait for a future post.

Simulating Circular Motion: An Inquiry Approach

This semester I have been very busy working on a new approach to teaching Physics. This has actually been part of an effort that has spanned more than three years, but this year I have really embraced this change and I have much to share.

This post is a preview of many to come. I am going to write several posts documenting my efforts and experiences throughout the school year. Hopefully these posts will help me capture what I have learned in the process, and perhaps will be a guide for anyone else who might be interested.

Analytical Models Emerge From Computational Models

With the help and insights of others, I have been mapping out a new scope and sequence for teaching Physics that incorporates computational modeling as the primary method of modeling Physics. Rather than looking at computational modeling as an “add on”, I have been exploring the idea that analytical models are emergent. Computational models are more fundamental and analytical models emerge from those computational models.

The basic approach here has been to start with computational modeling, and then to allow the students to discover the analytical models that are revealed. This has been an exciting “unveiling” of physical patterns for the students. The other thing that I have witnessed is that students seem to intuit the principles of Calculus, even though my students are not at that level in mathematics training. More on this in a future post.

In future posts, I will report out on how this has been going and what I have learned in the process. For now, I simply want to share an example.

The Inquiry Lessons: Discovering Centripetal Acceleration

One of the aspects of this project has been to re-invent many of my lessons. I have been creating inquiry based lessons based on an approach known as POGIL. I am not POGIL trained, so I wouldn’t say my activities are actual POGIL activities – they are POGIL “inspired”.

In the first lesson, students learned how to simulate an object moving in a circular path. I have attempted to incorporate an inquiry approach where students are guided using questions, as opposed to holding their hands. This approach can be messy, but I have found it has always lead to great conversations, unanticipated insights from the students and it gives the students a sense of discovery.

I have included a link to the lesson which you are free to copy, modify, etc. without any restrictions.

Lesson 1: Simulating Spinning Motion

Keep in mind that my students had already learned how to code movement, so if you are new to computational modeling, I will soon be writing some posts that introduce students to this approach and to computational modeling in general.

In the second lesson, students simulated circular motion using angular quantities. They then explored how they could represent the tangential velocity and then they explored what the acceleration was. This led them to discover that the simulation revealed that the acceleration vector pointed to the center of the circle. Through some guided inquiry, they discovered a number of interesting details, such as the acceleration increased when the radius declined, and that the tangential speed had a significant affect on the acceleration.

Here is a link to the lesson:

Lesson 2: Circular Motion

I do use a tool, that I am actually partly developing with some friends as the simulation software, called Tychos, but you can modify the lesson to use any coding platform you like (of course I like Tychos, but I am a bit biased!)

Please feel free to comment here to give me feedback on the lessons if you feel inclined. I am certainly on a learning path myself, and I am sure there are many improvements that could be made!

Thanks in advance,