I've been working on rocket stabilization for my graduation project similar to this video: Roll gyro stabilized rocket with automatic control system.

I used a low cost MEMS sensor (MPU-6050) and was able to find accurate roll, pitch & yaw of the rocket using a kalman filter and sensor calibration. Later I installed some servo motors on the body to control movable fins, similar to the video. I built an air tunnel to test "making fast air flow directly to the rocket."

My goal is to set a specific pitch and yaw angle to the PID controller so that it moves the fins and makes the rocket stable within it (like the video). What I'm unable to determine is the transfer function that will translate the desired pitch to an action by the motor to make the rocket compensate for deviations and stay stable.

For example, I want pitch = 30 degrees.

The sensor reads 35, thus I have a 5 degree error, which is propagated to the PID controller .

The PID will then output a value that will be translated to a motion by the servo connected to the fins that control the pitch.

How do I find this equation, taking into consideration speed and other dependencies.

  • 1
    $\begingroup$ Can you be more specific with your problem? Is this just a motor control issue (in which case look to Electronics.StackExchange) or is the issue with the software you're using? A bit more info on your setup (software, electronics, etc) would be helpful, but it sounds like this might not be the best place to get an answer. $\endgroup$ Oct 18, 2014 at 15:21
  • $\begingroup$ @ForgeMonkey it's about the rocket equation of motion and how the rocket responds to the deflection of aileron or rudder by a specific degree for example :) $\endgroup$ Oct 19, 2014 at 22:03
  • $\begingroup$ Any chance you happened to figure it out? $\endgroup$
    – Jonathan
    Apr 22, 2019 at 15:55

1 Answer 1


This might be better suited to aviation.stackexchange.com since your question is actually about aerodynamics.

That being said, what self respecting rocket guy doesn't know a thing or two about aerodynamics.

The rate of rotation is really what's important here. So your (35-30) = 5 is all well and good, but do you want to correct that in a second, 5 seconds, etc. Lets assume for the numbers that you want to correct it in a second.

Rate of rotation (for correction) = 5 (degrees) / 1 (seconds) = 5 degrees/second

Now this is where you need to know some masses. the amount of force required to give your rocket a 5 degree/second rotation is dependent on the mass of the rocket, or more specifically the distribution of mass radially (assuming it's axially symmetrical)... wait a minute this is getting too complicated, surely there's an easier way?

Luckily there is. If you want to stop the rocket spinning you just have to make sure you turn the fins a little bit if it's spinning slowly and a lot if it's spinning quickly. What you need is a Closed loop transfer function!

The specific design of the closed loop transfer function can be worked out from estimations of the mass distributions - much, much easier. So step by step:

1) find the coefficient of lift of the aerofoil used for the fin

2) estimate the mass of the rocket

3) pick some reasonable example values for rate of rotation

4) calculate the forces required to stop these rotations - see here and here

5) calculate the angles required from the fins to match these force

6) build your close loop transfer function

7) test on some sort of computer program before flight!

Step 7 isn't strictly necessary, but if you've got your number wrong and haven't realised then you could actually make things worse. Somewhat unrelated, but I came across this video of a high spin rate rocket while producing this answer:

Estimate this spin rate!

  • $\begingroup$ Counting frames I got a peak of about 450rpm. Tip: you can advance/reverse single frames in YouTube with the comma and period keys. $\endgroup$
    – Avi Cherry
    Apr 23, 2019 at 18:03

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.