Imagine a very simple conventional aircraft, with very simple mechanical controls. From an initial straight flight condition of constant altitude, constant airspeed and wings leveled, in a given moment, for some reason, it is required that the aircraft climbs with a constant angle of trajectory. In order to perform this maneuver, the pilot will have to find the right combination of surfaces deflections (let’s say elevator and horizontal stabilizer) and possibly engine throttle setting. Now imagine that there was a device interfacing the pilot and the surface deflection commands such that, somehow, it was possible to the pilot to simply “communicate” to the flying machine his/her intention to climb with a constant angle of trajectory. This is part of the idea behind the Fly-By-Wire (FBW) systems, available in most of the modern aircraft.
Bill Palmer, in his book Airbus A330 Normal Law, makes a very good summary of the philosophy of modern Fly-by-Wire systems: to make possible to the pilot to tell the aircraft safely “what to do” instead of “how to do it”. Usually this will be related to parameters of the aircraft performance. Using the previous example to illustrate, we would command an allowed angle of trajectory instead of surface deflections.
A conventional input command would deflect the elevators and this would eventually cause a variation in the overall lift on the aircraft (as explained in this other article); in an augmented system (FBW), usually the longitudinal input commands a pitch rate or a rate of angle of trajectory (called gamma). A possible approach to implement a controller for this purpose would involve feeding back the normal load factor to the elevator command. But, in order to improve the handling qualities of the augmented system, we should find out how to get over sensor signal issues like, possibly, the Non-Minimum-Phase (NMP) zero of the natural response of load factor when measured at the aircraft C.G., as described by the aforementioned article.
Is it possible to get rid of Non-Minimum-Phase (NMP) zero in load factor response? Is it related to the position where the load factor is measured? Is there a better position to place the accelerometer to feedback purposes? These are some questions that this article intends to answer or at least to address a path to the answer. It can be seen as a second part of my previous article about NMP zero in normal load factor response.
Load factor response
Let us try to understand this phenomenon qualitatively first. As introduced in a previous article, we call load factor, the acceleration of the aircraft in the normal stability axis measured in g (the acceleration of gravity) or simply the ratio of the lift to the weight, such that, a level flight is said to be an 1-g flight, for example, once that the lift is balanced by the aircraft weight in such condition. If this is a steady condition, i.e. straight flight with wings leveled and no pitch rate, regardless of the position where we put our sensor (accelerometer), we will obtain the readout of 1 g. We are considering different positions here as the various stations throughout the longitudinal axis of the aircraft as shown in Figure 1.
Figure 1. Examples of different possible stations for accelerometer positioning. The white circle represents the CG position and the reference such that x=0ft at it. |
What if, all of sudden, we apply a longitudinal command such that the body develops an angular acceleration, that is to say a pitch rate derivative (keeping no yawing, nor rolling moments)? Now the readout of an accelerometer placed at a distance of xa from the aircraft CG could be approximated by the following expression:
nz_xa = nz_CG + xa*qp/g0
nz_CG: load factor measured at aircraft CG using positive sign convention upwards (straight level flight is +1g, for example)
xa: distance of accelerometer position to aircraft CG using positive sign convention towards the aircraft nose
qp: pitch rate derivative using positive sign convention when the nose is lifting up related to the horizon
g0: acceleration of gravity
Equation 1. Load factor measurement at different stations
An interesting fact about the Nz response when we apply an elevator deflection to pitch up the aircraft, for example, is that, depending on the accelerometer position, we will see firstly a decrease of Nz before building up (the actual expected response). As explained in the other article, this happens because the elevator deflection produces a decrease in the overall lift on the aircraft before generating the moment to increase the angle-of-attack of the wings which will increase the lift and finally will overcome the initial lift decrease.
As usual, we need a model
As in the previous article, we will use here the F-16 model from Stevens & Lewis that I implemented as a GitHub project called McFlight. For our purposes, a state-space representation of the linearized aircraft model around a given flight condition will be enough. Find below the description of such model:
- Steady flight condition: straight level flight at sea level, speed V = 502 ft/s, cg at 0.35 of MAC (Mean Aerodynamic Chord), and mass m = 20490 lb
- State (X):
- u_ftps: speed at longitudinal axis (x)
- w_ftps: speed at vertical axis (z)
- theta_rad: pitch angle in radians
- q_rps: pitch rate in radians per second
- Controls (U):
- throttle: engine command (from 0 to 1)
- elev_deg: elevator deflection in degrees
- Outputs (Y):
- nx_g: acceleration in longitudinal axis in g
- ny_g: acceleration in lateral axis in g
- nz_g: acceleration in vertical axis in g
- alpha_deg: angle-of-attack in degrees
- q_rps: pitch rate in radians per second
- Q_lbfpft2: dynamic pressure in lb-force per square feet
- mach: Mach number
- nzs_g: load factor in stability axis, i.e., 1g at straight level flight condition
The data in matrices A, B, C and D can be seen directly at GitHub repository, at the trim sce file, specifically.
Prior to any further investigation, we have to make sure that our linear model is as representative as the non-linear model in the surrounding area of the steady flight condition. For this purpose, let us compare theta and q outputs when the system is input by an elevator step.
(a) |
(b) |
(c) Figure 2. Comparison between linear and non-linear models for an elevator step input (a) and corresponding theta (b) and pitch-rate (c) responses. |
As shown in Figure 2, for an elevator deflection of one degree, our linear model presents a very good matching with the non-linear model for maneuvers within 8 deg/s of pitch rate and 16 deg of theta, which are good enough for our studies.
Measuring the load factor
From now on, we will use the linear model. As we described above, this model gives us the load factor measurement at CG position (nzs_g). However, we can apply the equation 1 to calculate the load factor response at different positions throughout the aircraft longitudinal axis. In the state-space representation we can perform some matrices operations to produce the new output.
Let us use the suffix p to indicate a derivative, then we can write the state-space representation as:
Xp = A.X + B.u
Y = C.X + D.u
Algebraically we have to calculate some new lines at matrices C and D such that we obtain the new required output, which we will call nz_acc_g (load factor at accelerometer). Considering the order of states, controls and output variables as specified previously, we know that the fourth element of Xp will give us the derivative of pitch rate, i.e., Xp[4] = qp, that can also be written as:
Xp[4] = A[4,:] * X + B[4,:] * u
where A[4,:] represents the full fourth line of matrix A and B[4,:] the full fourth line of matrix B. We also know that the eighth element of Y will give us nzs_g, i.e.:
Y[8] = C[8,:] * X + D[8,:] * u
In order to calculate the load factor at the accelerometer position, using equation 1, we will have:
nz_acc_g = nzs_g + (xa/g)*qp
Y[9] = Y[8] + (xa/g)*Xp[4]
Y[9] = (C[8,:]*X + D[8,:]*u) + (xa/g) * (A[4,:]*X + B[4,:]*u)
Y[9] = (C[8,:] + (xa/g)*A[4,:])*X + (D[8,:] + (xa/g)*B[4,:])*u
In other words, we will augment the matrices C and D with the new lines from the calculations above. In Scilab code, for instance, as can be seen at GitHub, we will have:
C_body(9,:) = C_body(8,:) + l_arm_ft/params.g0_ftps2*A_body(4,:);
D_body(9,:) = D_body(8,:) + l_arm_ft/params.g0_ftps2*B_body(4,:);
where l_arm_ft = xa and params.g0_ftps2 is the acceleration of gravity.
The Figure 3 shows the load factor response for three different values of xa positions. Note that as xa increases, towards the aircraft nose, the initial nz response in the opposite direction (negative) decreases such that when xa is 6.1ft, the nz response is always greater than zero throughout the time. In the frequency domain, we will observe that the zero at the right-half of s-plane for measurements at CG will move out towards the infinity as xa increases. Then, at xa=6.1ft, the NMP zero effect disappears or at least is not noticeable (red curve at Figure 3). The point where this happens is considered an “instantaneous center of rotation”.
Figure 3. Load factor measured at different stations of the aircraft. |
For the sake of accuracy, we didn’t produce the xa=6.1ft by trial-and-error. McRuer tells us that the “instantaneous center of rotation” can be found by the quotient of two control stability derivatives, i.e.,
xa = Z_delev/M_delev
Z_delev is the dimensional derivative of the force in Z axis of body reference due to elevator deflection
M_delev is the dimensional derivative of pitching moment due to elevator deflection
These derivatives are calculated by the script stability_deriv_body at McFlight.
Accelerometers position
As you may expect, I paved all the way down here to say that the best place to install the accelerometers is in the “instantaneous center of rotation”. Indeed, but as noticed by McRuer, this location varies as CG position and effective control arm change depending on the aircraft configuration. One possible alternative would be choosing somewhere in the neighbourhood and/or estimate its position taking into account the accuracy of the other parameters involved in the calculation (as pitch rate derivative, for example).
In case of fighters (as our F-16), in order to provide the pilot with a very precise control of g-load in high-g maneuvers, the nz control law can use the signal provided by an accelerometer placed at the pilot station (Stevens & Lewis, 2003).
In summary, the best choice to place the accelerometers will take into account several requirements, including the aeroservoelasticity ones to avoid unintended interactions between the flight control law and the structural modes of the aircraft. This leads, for example, to place the sensor close to a node of the fuselage bending moment. Anyway, once again, aircraft development is not achievable by the decisions of one single discipline.