# Boeing 747 Autopilot Vertical Speed Function (PID Controller)

I originally asked this over at the math stack-exchange but was told I might have better luck here. I have simply copy-pasted the question.

I am working on a Boeing 747 autopilot control system for an at-home flight simulator expansion, and unfortunately my knowledge and understanding of control theory and calculus is a little lacking and I am finding information pertaining to my specific problem difficult to find.

I do not think my question will require you to understand anything about aircraft dynamics, rather, I am simply looking for the mathematical result to a problem I have not been able to figure out.

The 747 autopilot has a vertical speed controller, which allows the pilot to set the rate of climb or descent as measured in feet per minute up or down (however bear in mind that the actual autopilot uses feet per second in that maths). According to the documentation I have on the autopilot, this function uses a proportional component to calculate how much to pitch the airplane up or down, and an integral component to eliminate steady state error.

The proportional control makes sense to me (I think), but the integrator is eluding me. My attempts to write this part of the code have resulted in nothing but uncontrollable oscillations.

In my documentation, it is written like this:

Proportional control: $$\frac {\theta_c}{\Delta \dot h}= 0.09$$ $$\frac {degree}{ft/sec}$$

where:

$$\theta_c$$ = commanded change of pitch in degrees

$$\dot h$$ = vertical speed (climb or descent) in feet per second

Integral control

$$\frac {(\frac{\theta_c}{\int \Delta \dot h})}{(\frac {\theta_c}{\Delta \dot h})} =0.2$$ with the units listed as $$\frac {integral}{displacement}$$

As I understand it, the proportioner will take the error of vertical speed (delta h dot) and produce 0.09 degrees of pitch change per foot/second of error. Please correct me if I am wrong here.

The integral control however, doesn't make much sense to me. As I understand, an integral controller sums up the error over time to produce an increasing control response to eliminate steady state error. But I do not see how to take the documentation above and turn it into a proper integrator. Unfortunately this is the only documentation I have and it is not beginner friendly and again, correct me if I am wrong.

I have an autopilot in the simulator currently that will accurately deflect the flight controls (in this case, the elevator) to the commanded position (that being the pitch error multiplied by 3.5, then subtracting a damping factor of 2.2 times the current pitch rate). The vertical speed mode mentioned above is meant to calculate how much to change the pitch of the airplane to arrive at the specified rate of climb or descent.

Thanks for any help!

• Uncontrolled oscillations sounds like either the gains are too high (easy to do with unit conversion fails) or the model is not accurate enough (time samples not sufficiently fine- sim leaves your controls at position x for the whole delta-t while in reality it should react to aircraft movement during that time and reach 0)
– Abel
Jul 9, 2022 at 9:34
• I agree. The documentation you have shown does not make sense. Jul 10, 2022 at 3:02
• I would be tempted to think the same, however the code running in Flight Sim processes 18 times per second. I would think that to be sufficiently quick enough for just about anything control-wise. I have double checked the units, feet per second and degrees of pitch as well. If you'd like to read the documentation for yourself, you can at the link at the end of this comment. Discussion of the pitch autopilot begins on page 564, with the specific gains and units on page 567. ntrs.nasa.gov/api/citations/19730001300/downloads/… Jul 10, 2022 at 5:47
• Please provide a block diagram of the controller you intended to implement and also the portion of the code which attempts to implement it. Integral control can be configured in multiple ways in relation to the proportional controller, and the choice affects the numerical value of the gain to be used. A block diagram of the intention with clearly labelled blocks and signal lines will help clear any confusion.
– AJN
Jul 10, 2022 at 12:28

Proportional plus Integral control can be implemented in different forms (Wikipedia). The proportional and integral parts can be computed independently and added together (parallel implementation). Another method is for the integral to act on the output of the proportional controller. In the first form, we would expect the gain of the integral control gain to have the units theta_c / integral vertical speed error. In the second form, we would expect the units to be theta_c / integral theta_c proportional.

The block diagram given in the linked pdf appears to indicate the second form. ## edit

As mentioned in the comment below by OP, the proportional signal is also added with the output of the integrator before being sent to the control effector. Picture by OP below. ## edit 2

how can I properly program the rate limiting function of 4 ft/sec^2

The ft/sec/sec limiting is done on the signal well before it fed into the proportional gain (displacement gain) or the integrator. The signal at that point, has the units of ft/sec. So the rate limiting can be directly implemented.

• Interesting. I had not considered the integral function modifying the output of the proportional component, though the block diagram example you provided is incorrect. The scan of the pages is really bad so it can be difficult to see the arrows. The actual path of the V/S or Vertical Speed function is shown in this image: i.imgur.com/L9Tjrtu.png Jul 11, 2022 at 17:53
• I had also neglected the block diagram (did I mention I am not an expert?). It would seem that you may still be correct because the integral function appears to use the output of the proportional function. Another question arises looking at this though, how can I properly program the rate limiting function of 4 ft/sec^2 into outputs that seem to be purely in degrees of pitch change? Jul 11, 2022 at 17:55