アート
美容とウェルネス
工芸
文化と歴史
エンターテインメント
環境
食品と飲料
リバースエンジニアリング
科学
スポーツ
テクノロジー
ウェアラブル
Gimballed Thrust Vectoring
Martin

作成者

Martin

27. 8月 2026NO
36
0
0
0
0

Gimballed Thrust Vectoring

A rocket ascending on its engine is balancing a pencil on a fingertip, and it is worse than that because the fingertip is doing the pushing. Thrust acts at the base while the centre of mass is far above it, so any small angular disturbance produces a moment that increases the disturbance — the vehicle is statically unstable and will tip over within seconds unless something actively corrects it. Fins work in the atmosphere and do nothing in vacuum. The answer used on every large launch vehicle is to swivel the engine itself: tilt the thrust a couple of degrees off-axis and it produces a restoring moment through a very long lever arm. This blueprint builds the gimbal and its control loop, and the important lesson is that the vehicle is not made stable — it stays unstable, and is flown by a loop fast enough to keep catching it.
上級者
6 hours 30 minutes

手順

1

Prove the instability with a broom handle

Feel the problem before instrumenting it.

  1. Balance a broom vertically on your palm and note what you must do to keep it up.
  2. Try it with your eyes closed.
  3. Now balance it the other way — hang it from your hand like a pendulum — and let go of the corrections.

Upright, it needs continuous correction and fails instantly without feedback; hanging, it is stable and needs nothing. A rocket under thrust is the upright case: thrust below, mass above, and every degree of tilt generating a moment that increases the tilt.

Notice what your hand actually does — it moves toward the direction of the fall. That is the counter-intuitive part and it is exactly what a gimballed engine does: to correct a tilt to the left, the engine swivels so the thrust pushes the BASE further left, rotating the vehicle back upright about its centre of mass.

This is why a rocket visibly leans and yet flies straight, and why gimbal deflections are small — one or two degrees is plenty, because the lever arm from engine to centre of mass is tens of metres.

このステップの材料:

Wooden Dowel (25mm)Wooden Dowel (25mm)1

必要な工具:

Smartphone with Slow-Motion VideoSmartphone with Slow-Motion Video
Tape Measure (5 m)Tape Measure (5 m)
Digital Angle GaugeDigital Angle Gauge
2

Build a two-axis gimbal ring

Two perpendicular hinges give you pitch and yaw from one mount.

  1. Machine an outer ring that pivots on two opposed bearings about one axis.
  2. Machine an inner ring pivoting inside it about the perpendicular axis.
  3. Mount your engine — or a mass dummy with a thrust source — in the inner ring.
  4. Check the two rotation axes intersect exactly, and that both pass through the engine’s thrust axis.

If the axes do not intersect at a common point, gimballing in one axis translates the engine sideways as well as rotating it, and the two control channels start interfering. That cross-coupling turns an already difficult control problem into a much harder one.

Reverse-engineering note: this is also why the propellant feed lines to a gimballed engine use flexible bellows arranged so their stiffness is symmetric about both axes. An asymmetric duct pushes the gimbal a little in one direction, and the control loop must fight that bias continuously — burning actuator power and margin for nothing.

このステップの材料:

Aluminium Plate (10mm)Aluminium Plate (10mm)1
Ball BearingBall Bearing4
Steel Dowel Pin (5mm)Steel Dowel Pin (5mm)4
M5 Cap Screws (20mm)M5 Cap Screws (20mm)8

必要な工具:

Milling Vise (4-inch)Milling Vise (4-inch)
Metal LatheMetal Lathe
Drill PressDrill Press
Dial IndicatorDial Indicator
Digital Caliper 6-InchDigital Caliper 6-Inch
Digital Angle GaugeDigital Angle Gauge
Torque WrenchTorque Wrench
Clear Safety GlassesClear Safety Glasses
3

Add actuators and measure the response you can command

How fast the gimbal can move sets how unstable a vehicle you can fly.

  1. Fit two actuators — hobby servos are adequate at this scale — one per axis.
  2. Command a step change and film it, measuring the time to reach the commanded angle.
  3. Measure the maximum angular rate and the deflection range.
  4. Measure backlash by commanding a small reversal and seeing how much command produces no motion.

Backlash is the number that will hurt you. Any free play means a region where the loop commands a correction and nothing happens, and a control loop with a dead zone hunts — it overshoots, reverses, waits through the slack, overshoots the other way.

Actuator rate matters just as much. An unstable vehicle diverges at a characteristic rate, and the loop must be able to correct faster than it diverges. If the gimbal is slower than the tipping, no control law will save it.

Real vehicles use hydraulic actuators for exactly this reason, and some — including the Saturn V and the Shuttle — tapped high-pressure propellant from the turbopump as the hydraulic supply, so the engine powered its own steering.

このステップの材料:

Hobby ServoHobby Servo1 セット
RC ReceiverRC Receiver1 セット
Control HornControl Horn1 セット
ClevisClevis1 セット
Aluminium Flat Bar (3mm)Aluminium Flat Bar (3mm)1

必要な工具:

Oscilloscope 2-Channel 100MHzOscilloscope 2-Channel 100MHz
Digital Multimeter (Lab Grade)Digital Multimeter (Lab Grade)
Adjustable Bench Power Supply (30V/5A)Adjustable Bench Power Supply (30V/5A)
Smartphone with Slow-Motion VideoSmartphone with Slow-Motion Video
Digital Angle GaugeDigital Angle Gauge
Digital Caliper 6-InchDigital Caliper 6-Inch
Soldering StationSoldering Station
Clear Safety GlassesClear Safety Glasses
4

The control sketch

Upload this to the board before tuning. It reads the IMU, fuses gyro and accelerometer with a complementary filter, and drives both servos.

Note what the derivative term uses: the gyro rate directly, not a differentiated angle. Differentiating a noisy angle manufactures large spurious commands — the gyro already measures rate cleanly, so use it. The integral term is clamped, because an integrator that keeps accumulating while the servo is already at its limit will wind up and then overshoot badly when the error finally reverses.

Tune in the order Kp, then Kd, then Ki, one at a time, watching the serial telemetry.

gimbal_pid.inoarduino
/*
  Two-axis gimbal stabiliser — PID attitude hold
  Youblob blueprint: Gimballed Thrust Vectoring

  Reads pitch and roll rate from an MPU-6050 IMU, fuses them with the
  accelerometer via a complementary filter, and drives two servos to hold
  the thrust axis vertical.

  Hardware:
    MPU-6050  SDA -> A4, SCL -> A5, VCC -> 3.3V, GND -> GND
    Pitch servo signal -> D9      Yaw servo signal -> D10
    Servos powered from a SEPARATE 5V supply, grounds commoned.

  The derivative term uses the gyro rate DIRECTLY rather than differentiating
  the angle. Differentiating a noisy angle produces large spurious commands;
  the gyro already measures rate, cleanly. This matters — see step 4.
*/

#include <Wire.h>
#include <Servo.h>

const int MPU = 0x68;
Servo pitchServo, yawServo;

// --- Tune these on the test stand, in this order: Kp, then Kd, then Ki ---
float Kp = 4.0;
float Kd = 0.25;
float Ki = 0.4;

const float GIMBAL_LIMIT = 8.0;   // degrees of deflection the mechanism allows
const float SERVO_CENTRE = 90.0;
const float ALPHA        = 0.98;  // complementary filter: trust gyro short-term

float pitch = 0, yaw = 0;
float iPitch = 0, iYaw = 0;
unsigned long lastMicros = 0;

void setup() {
  Serial.begin(115200);
  Wire.begin();
  Wire.beginTransmission(MPU);
  Wire.write(0x6B); Wire.write(0);      // wake the MPU-6050
  Wire.endTransmission(true);

  pitchServo.attach(9);
  yawServo.attach(10);
  pitchServo.write(SERVO_CENTRE);
  yawServo.write(SERVO_CENTRE);

  delay(2000);                          // let the rotor and the IMU settle
  lastMicros = micros();
}

void loop() {
  Wire.beginTransmission(MPU);
  Wire.write(0x3B);
  Wire.endTransmission(false);
  Wire.requestFrom(MPU, 14, true);

  int16_t ax = Wire.read() << 8 | Wire.read();
  int16_t ay = Wire.read() << 8 | Wire.read();
  int16_t az = Wire.read() << 8 | Wire.read();
  Wire.read(); Wire.read();             // discard temperature
  int16_t gx = Wire.read() << 8 | Wire.read();
  int16_t gy = Wire.read() << 8 | Wire.read();

  unsigned long now = micros();
  float dt = (now - lastMicros) / 1000000.0;
  lastMicros = now;
  if (dt <= 0 || dt > 0.2) return;      // ignore a stalled or first iteration

  float gyroPitchRate = gx / 131.0;     // deg/s at default +/-250 deg/s range
  float gyroYawRate   = gy / 131.0;

  float accPitch = atan2(ay, az) * 57.2958;
  float accYaw   = atan2(-ax, sqrt((float)ay * ay + (float)az * az)) * 57.2958;

  // Complementary filter: gyro is accurate short-term but drifts;
  // the accelerometer is noisy but has no long-term drift. Blend them.
  pitch = ALPHA * (pitch + gyroPitchRate * dt) + (1.0 - ALPHA) * accPitch;
  yaw   = ALPHA * (yaw   + gyroYawRate   * dt) + (1.0 - ALPHA) * accYaw;

  iPitch = constrain(iPitch + pitch * dt, -20, 20);   // clamp: anti-windup
  iYaw   = constrain(iYaw   + yaw   * dt, -20, 20);

  // Correct TOWARD the fall: a positive pitch error commands the nozzle to
  // push the base the same way, rotating the vehicle back upright.
  float cmdPitch = Kp * pitch + Ki * iPitch + Kd * gyroPitchRate;
  float cmdYaw   = Kp * yaw   + Ki * iYaw   + Kd * gyroYawRate;

  cmdPitch = constrain(cmdPitch, -GIMBAL_LIMIT, GIMBAL_LIMIT);
  cmdYaw   = constrain(cmdYaw,   -GIMBAL_LIMIT, GIMBAL_LIMIT);

  pitchServo.write(SERVO_CENTRE + cmdPitch);
  yawServo.write(SERVO_CENTRE + cmdYaw);

  static unsigned long lastLog = 0;
  if (millis() - lastLog > 50) {        // 20 Hz telemetry for tuning
    lastLog = millis();
    Serial.print(pitch, 2); Serial.print(',');
    Serial.print(cmdPitch, 2); Serial.print(',');
    Serial.print(yaw, 2); Serial.print(',');
    Serial.println(cmdYaw, 2);
  }
}

このステップの材料:

Microcontroller BoardMicrocontroller Board1
Inertial Measurement Unit (6-Axis)Inertial Measurement Unit (6-Axis)1
Hookup Wire (22 AWG)Hookup Wire (22 AWG)1 reel

必要な工具:

Computer with Arduino IDEComputer with Arduino IDE
Digital Multimeter (Lab Grade)Digital Multimeter (Lab Grade)
Oscilloscope 2-Channel 100MHzOscilloscope 2-Channel 100MHz
5

Close a PID loop and tune it on a test stand

Now fly the instability on a stand where failure costs nothing.

  1. Mount the whole assembly on a single-axis pivot so it can tip but not fall.
  2. Add an inertial sensor measuring angle and angular rate.
  3. Implement a control loop: proportional to angle error, derivative on rate, a little integral for steady bias.
  4. Start with proportional only, increase gain until it oscillates, then add derivative and back the gain off.

Proportional alone gives an oscillation that never settles; adding derivative damps it; too much integral makes it sluggish and prone to wind-up. The derivative term is what makes this work — it responds to how fast the error is GROWING, so it starts correcting before the error is large.

Compare with the constant-speed propeller governor from the aviation batch: same negative feedback, same hunting failure when tuned too aggressively. The difference is that a governor is correcting a stable system and this loop is the only thing preventing a tumble.

Filter the derivative term. Rate signals are noisy, and differentiating noise produces large spurious commands that will shake the airframe — several early vehicles had control loops that excited their own structural bending modes, with the sensor reading the vibration the actuator had just created.

このステップの材料:

Inertial Measurement Unit (6-Axis)Inertial Measurement Unit (6-Axis)1
Microcontroller BoardMicrocontroller Board1
Hookup Wire (22 AWG)Hookup Wire (22 AWG)1 reel

必要な工具:

Oscilloscope 2-Channel 100MHzOscilloscope 2-Channel 100MHz
Digital Multimeter (Lab Grade)Digital Multimeter (Lab Grade)
Adjustable Bench Power Supply (30V/5A)Adjustable Bench Power Supply (30V/5A)
Smartphone with Slow-Motion VideoSmartphone with Slow-Motion Video
Digital Angle GaugeDigital Angle Gauge
Soldering StationSoldering Station
Clear Safety GlassesClear Safety Glasses
6

Compare the alternatives and see why gimbals won

Several ways exist to steer a rocket. Measure what each costs.

  1. Build a jet vane — a small heat-resistant paddle that deflects the exhaust — and measure the side force and the thrust LOST to its drag.
  2. Model vernier thrusters: small fixed engines used only for control.
  3. Consider fluid injection: squirting liquid into one side of the nozzle to create an asymmetric shock.
  4. Tabulate side force, thrust penalty and complexity for each.

Jet vanes are simple, work from the instant of ignition, and sit in the exhaust stream eroding while stealing a few percent of thrust. Verniers are clean but are extra engines. Fluid injection has no moving parts in the flow and limited authority. Gimbals cost nothing in thrust and demand a mechanism, flexible plumbing and hydraulic power.

The V-2 used graphite jet vanes because gimballing a whole engine in 1942 was beyond the state of the art; they eroded badly and the accuracy suffered. As actuators improved, gimbals took over everywhere the thrust penalty mattered — which is to say, everywhere the rocket equation is watching.

Solid motors cannot gimbal a whole engine easily, so they steer by gimballing just the nozzle on a flexible bearing — a laminated stack of rubber and metal shims, stiff against thrust and compliant in bending. The Shuttle boosters steered exactly that way.

このステップの材料:

Graphite BlockGraphite Block1
Aluminium Flat Bar (3mm)Aluminium Flat Bar (3mm)1
Graph PaperGraph Paper1 pad

必要な工具:

Spring Scale (0-500 g)Spring Scale (0-500 g)
Infrared ThermometerInfrared Thermometer
Digital Caliper 6-InchDigital Caliper 6-Inch
File SetFile Set
Smartphone with Slow-Motion VideoSmartphone with Slow-Motion Video
Digital Scale (0.01 g)Digital Scale (0.01 g)
Clear Safety GlassesClear Safety Glasses
Face ShieldFace Shield

材料

15

必要な工具

20

関連ブループリント

これらのブループリントは知識を共有しています — 技術、材料、原理

CC0 パブリックドメイン

このブループリントはCC0で公開されています。許可を求めずに、自由にコピー、修正、配布、あらゆる目的で使用できます。

メイカーを応援するには、ブループリント経由で製品を購入してください。メイカーには メイカーコミッション がベンダーにより設定されています。または、このブループリントの新しいイテレーションを作成し、自分のブループリントにコネクションとして含めて収益を共有できます。

ディスカッション

(0)

ログイン してディスカッションに参加

コメントを読み込み中...