flybywiresim / aircraft

The A32NX & A380X Project are community driven open source projects to create free Airbus aircraft in Microsoft Flight Simulator that are as close to reality as possible.
https://flybywiresim.com
GNU General Public License v3.0
4.94k stars 1.02k forks source link

Digital BUSS #8370

Open tracernz opened 6 months ago

tracernz commented 6 months ago

Aircraft Version

Development

Description

Implement the digital backup speed scale from UAMM2.

References (optional)

No response

Additional info (optional)

No response

Discord Username (optional)

No response

ArtemisPlayer commented 5 months ago

Here is some documentation I found about DBUSS, I might start an implementation based on that, so please let me know if you have more accurate/specific docs.

The DBUSS (Digital BackUp Speed Scale) is a part of the UAMM2 (Unreliable Airspeed Management Means). Its role is to provide estimated airspeed based on AOA (from ADIRS), altitude (probably from GPS), N1 ratios from engines and flaps configuration (it may also take into consideration gear extension, speedbrakes status and landing light position, but I found no evidence of that). The obtained airspeed can be displayed on the PFD if the pilot chooses so (by pressing the Backup Speed/Altitude button) or if the FWCs (Flight Warning Computers) estimate that measured airspeed is unreliable.

My strategy is to interpolate the data from the FCOM (see pages 5535 to 5574 from this version) to create a function that looks like: fn estimate_airspeed(AOA, N1, altitude, speebrakes, flaps position, LG position) : Speed;. That is the core of the DBUSS.

Nevertheless, for that value to be useful in simulation, FCWs will need to be modified, see issue #8371.

Documentation:

lukecologne commented 5 months ago

It sounds like you want to implement the pitch-thrust procedure in reverse? While I guess that would in principle work (although I'm not sure why you want to use AOA instead of pitch in that case), it would take some time after the aircraft has settled at it's final speed in the new configuration after, for example, a thrust change. This is because the characteristic motion (the phygoid motion) is weakly damped and has a low frequency.

A better way (which is how it is done IRL) is to use the lift equation and assume the equilibrium there. This assumption is better because in this case, the relevant characteristic motion is the AOA oscillation, which has a higher frequency and has a higher damping, so it settles very quickly.

Also, taking parameters from the IRL docs is not a good idea, as the real aircraft does not necessarily correspond 1to1 to the sim aircraft, so you would potentially get wrong results for the resulting speed. When you take the lift equation and calculate the speed from there, you are left with some parameters that you know about the aircraft (lift coefficient, mass, etc.), so there is no need for interpolation of some huge table.

You can even go a step further, and include the load factor in the formula, so that it remains valid in dynamic maneouvers:

\begin{align}
F_L &= F_g \\
\Rightarrow \rho_0 \frac{v^2}{2} S c_L &= m g n_z \\
\Rightarrow v &= \sqrt{\frac{2 m g n_z}{\rho_0 S c_L}} \\
\end{align}

And $cL$ is then (with $c{L, 0}$, $c_{L, \alpha}$ varying with config)

c_L = c_{L, 0} + c_{L, \alpha} \alpha

You measure $\alpha$, $nz$, and the config, and you know $S$, $c{L, 0}$, $c_{L, \alpha}$, and $m$ is also known. So, you can calculate $v$ from there.

As a final note, the DBUSS (or the BUSS in general) is implemented in the FAC, so it would have to go in the generated C++ code, not rust/systems.

ArtemisPlayer commented 5 months ago

I see, that would quite simpler indeed.

I wanted to use AOA because I found on this page that is it used IRL. How would the pitch be measured (it can be complex, assuming an accelerating aircraft) ? Furthermore, AOA = alpha + cst assuming equilibrium (that's not exact, because of vertical wind (but in that case AOA would be more relevant because we seek airspeed), because of the lift provided by the aircraft body, etc. Anyway.), so that's more or less the same considering the approximations.

I will search for the lift factors, and post them here, a simple Google search was not enough. We can take into account the load factor only if we also include the lift factor variation due to flying commands I think, that won't ease the task.

Simplified table from the QRH. Page 159 from this PDF. To be honest I don't understand the speed result on that table (when flaps are deployed), does F stands for Fast and S for Slow ? That would be quite imprecise

Btw, I found was F and S speeds mean: F Speed | Minimum flap retraction speed after takeoff S Speed | Minimum slat retraction speed after takeoff

lukecologne commented 5 months ago

I wanted to use AOA because I found on this page that is it used IRL

Yes, it's used IRL with the method I explained because the lift coefficient depends on it.

How would the pitch be measured (it can be complex, assuming an accelerating aircraft)

Pitch angle is measured, or rather computed/measured indirectly by the IRs, quite reliably.

Furthermore, AOA = alpha + cst assuming equilibrium (that's not exact, because of vertical wind (but in that case AOA would be more relevant because we seek airspeed), because of the lift provided by the aircraft body, etc. Anyway.), so that's more or less the same considering the approximations.

Not sure I understand, AOA = $\alpha$, $\alpha$ is the formula sign for AOA. Maybe you mean $\theta = \alpha + \gamma$ (pitch = AOA + FPA)? This is btw. not exactly the same AOA as the airflow, as there is vertical wind as you said.

I will search for the lift factors, and post them here, a simple Google search was not enough. We can take into account the load factor only if we also include the lift factor variation due to flying commands I think, that won't ease the task.

No, you can just take the measured load factor.

ArtemisPlayer commented 5 months ago

Yes, it's used IRL with the method I explained because the lift coefficient depends on it. Pitch angle is measured, or rather computed/measured indirectly by the IRs, quite reliably.

I am not sure that I understood, why use the pitch ?

Not sure I understand, AOA = α, α is the formula sign for AOA. Maybe you mean θ=α+γ (pitch = AOA + FPA)? This is btw. not exactly the same AOA as the airflow, as there is vertical wind as you said.

Yeah, I messed up a little, but that's the idea.

No, you can just take the measured load factor.

Measured load factor ? In the second line of your equation (newton's second law), if the load factor increase on the right-hand side, something must increase on the left. That won't be the speed, surface or air density, so this is the lift ratio. Obviously, that comes from the flight commands.

lukecologne commented 5 months ago

I am not sure that I understood, why use the pitch ?

Well, you suggested the pitch-thrust-method, which would require to use the pitch, since that is what is given in the tables. But it doesn't matter, since this method is not actually used and not really ideal.

Measured load factor ? In the second line of your equation (newton's second law), if the load factor increase on the right-hand side, something must increase on the left. That won't be the speed, surface or air density, so this is the lift ratio. Obviously, that comes from the flight commands.

The causality is actually the other way around, with an elevator deflection you induce an increased $\alpha$, that increases $c_L$, which increases the total lift, resulting in a higher load factor. But since you measure both the actual $\alpha$, and actual $n_z$, you can just plug it into the formula and get out the speed (IAS in this case).