Pages

Sunday, May 24, 2020

Roader Coaster

There's a road near us with a bump, and almost every time we go over it, I get the feeling of my stomach dropping, just like a roller coaster. As with most things that I dislike (as well as things I enjoy, or I'm curious about) I wondered if I could model what's going on!

My assumption was that in going over the bump, the car was accelerating at some significant fraction of gravity. Given the car's velocity and the shape of the bump, I should be able to find the acceleration. The first thing I thought of was centripetal acceleration:
This is the acceleration required to move in a circle, where v is the velocity, and r is the radius of the circle. We have a curve, not a circle though, so how can we get a radius? There's an idea called an osculating circle, which touches a point on a curve and has a radius that allows it to match the curve (at least on an infinitesimal scale) at that point. Before we can calculate that though, we need to define our bump.

I figured a Gaussian curve would make a nice smooth bump. Unfortunately, combining that equation with the osculating circle makes for a huge mess, so I figured I'd let Python deal with it:
The point moves at a constant velocity along the curve – This is a bit more complicated than it sounds. We need to take into account both the x- and y-movement:
Since we're already doing things numerically, we can choose our points to be evenly spaced along the curve, rather than the more typical spacing along x.

After making that fancy animation though, I realized it's not the centripetal acceleration we're interested in, but only the y-direction, since that is what will cancel gravity. Calibrating the bump to 75 cm high, and the car surface speed to 30 mph gives the y-acceleration as
The maximum is just over 0.5% of gravity, so I'm underestimating either the size of the bump, or the sensitivity of my gut!

No comments:

Post a Comment