Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Negative drag due to elevator deflection #357

Closed
seanmcleod opened this issue Dec 11, 2020 · 7 comments
Closed

Negative drag due to elevator deflection #357

seanmcleod opened this issue Dec 11, 2020 · 7 comments
Labels

Comments

@seanmcleod
Copy link
Member

While debugging a difference in trim results I noticed that the drag due to elevator deflection was negative for the 737 model.

    aero/coefficient/CD0 = 2801.679561
    aero/coefficient/CDi = 3813.129823
    aero/coefficient/CDflap = 5689.318388
    aero/coefficient/CDgear = 1928.582504
    aero/coefficient/CDsb = 0.000000
    aero/coefficient/CDsb = 0.000000
    aero/coefficient/CDsp = 0.000000
    aero/coefficient/CDbeta = 0.007089
    aero/coefficient/CDde = -181.721539

Taking a look at the 737 model's calculation for elevator deflection drag it's using elevator-pos-norm [-1, +1] without converting it to an absolute value, hence the reason you can see negative drag values.

<function name="aero/coefficient/CDde">
    <description>Drag_due_to_Elevator_Deflection</description>
    <product>
        <property>aero/qbar-psf</property>
        <property>metrics/Sw-sqft</property>
        <property>fcs/elevator-pos-norm</property>
        <value>0.059</value>
    </product>
</function>

In context that means at around the critical AoA of ~12.5 degrees the negative drag from a full elevator deflection will completely cancel out the total induced drag!

image

Also if the aircraft was trimmed at say ~2 degrees AoA and you put in a sudden step of full elevator deflection the aircraft would actually start accelerating with this extra negative drag 'thrust'.

In addition to the sign issue with the elevator deflection the use of a normalized position [-1, +1] is unusual since the coefficient is normally per radian. It's not impossible that it's been converted/scaled, however the value of 0.059 is very similar to the typical values published that are per radian.

The 737 model for example has a maximum elevator deflection of 0.3 rad so if the figure of 0.059 is per radian then that would equate to a value of 0.018 for a normalized range.

I did a search through all the JSBSim aircraft for /CDde to see whether the 737 model was an exception or not.

Unfortunately it's not. The following aircraft models follow the same setup as the 737 model.

Incorrect use of elevator-pos-norm

<function name="aero/coefficient/CDde">

<function name="aero/coefficient/CDde">

<function name="aero/coefficient/CDde">

<function name="aero/coefficient/CDde">

<function name="aero/coefficient/CDde">

<function name="aero/coefficient/CDde">

<function name="aero/coefficient/CDde">

<function name="aero/coefficient/CDde">

<function name="aero/coefficient/CDde">

<function name="aero/coefficient/CDde">

<function name="aero/coefficient/CDde">

<function name="aero/coefficient/CDde">

<function name="aero/coefficient/CDde">

<function name="aero/coefficient/CDde">

<function name="aero/coefficient/CDde">

<function name="aero/coefficient/CDde">

<function name="aero/coefficient/CDde">

<function name="aero/coefficient/CDde">

<function name="aero/coefficient/CDde">

Correct use of mag-elevator-pos-rad

The following aircraft make use of the magnitude that the FCS provides - mag-elevator-pos-rad which is an absolute version and radian based.

            <function name="aero/coefficient/CDde">
                <description>Drag_due_to_elevator_Deflection</description>
                <product>
                    <property>aero/qbar-psf</property>
                    <property>metrics/Sw-sqft</property>
                    <property>fcs/mag-elevator-pos-rad</property>
                    <value>0.0500</value>
                </product>
            </function>

<function name="aero/coefficient/CDde">

<function name="aero/coefficient/CDDe">

<function name="aero/coefficient/CDDe">

<function name="aero/coefficient/CDDe">

<function name="aero/coefficient/CDde">

<function name="aero/coefficient/CDde">

<function name="aero/coefficient/CDDe">

<function name="aero/coefficient/CDde">

<function name="aero/coefficient/CDde">

<function name="aero/coefficient/CDde">

Coefficient of 0

The following aircraft make use of mag-elevator-pos-rad but have a coefficient of 0.

<function name="aero/coefficient/CDDe">

<function name="aero/coefficient/CDDe">

<function name="aero/coefficient/CDDe">

Sort of correct use of <abs> elevator-pos-norm </abs>

Some aircraft make use of an absolute version of elevator-pos-norm using <abs /> but should more than likely be using pos-rad.

<function name="aero/coefficient/CDde">

<function name="aero/coefficient/CDde">

<function name="aero/coefficient/CDde">

Correct sign but confusing elevator-pos-rad and elevator-pos-norm?

The following two aircraft use a table to get the sign correct, but they appear to be confusing elevator-pos-rad with elevator-pos-norm.

                          <independentVar>fcs/elevator-pos-rad</independentVar>
                          <tableData>
                              -1.0000	0.1140
                              0.0000	0.0000
                              1.0000	0.1140
                          </tableData>

<function name="aero/coefficient/CDDe">

<description>Drag_due_to_Elevator_Deflection</description>

Sign issue with elevator-pos-rad

This aircraft uses elevator-pos-rad but forgets about the sign issue.

<function name="aero/coefficient/CDde">

Table based elevator-pos-rad that gets the sign correct

<function name="aero/coefficient/CDde">

Aeromatic

Lastly I took at look at the Aeromatic source code to see if it was possibly the reason for most of the incorrect cases, but at least currently, I didn't look at it's source code history, it does the correct thing, outputting - <abs><property>fcs/elevator-pos-rad</property></abs>

To Do

I'm busy preparing a pull request to correct all the examples listed above that I labelled problematic, unless someone tells me I've got it all wrong 😉.

@bcoconni
Copy link
Member

Looks good to me ! 👍

Out of curiosity, I have checked the official c172p model for FlightGear and they are using the exact same function than our c172p model: the drag is computed correctly with fcs/mag-elevator-pos-rad and cancelled out with a 0 value.

            <function name="aero/coefficient/CDDe">
                <description>Drag_due_to_Elevator_Deflection</description>
                <product>
                    <property>aero/qbar-psf</property>
                    <property>metrics/Sw-sqft</property>
                    <property>fcs/mag-elevator-pos-rad</property>
                    <value>0.0000</value>
                </product>
            </function>

@seanmcleod
Copy link
Member Author

seanmcleod commented Dec 22, 2020

Example of the increase in IAS as a step input to the elevator is made with the 737 model.

Same 737 model except that the orange version /fdm/jsbsim/velocities/vc-kts uses <abs> for elevator deflection drag.

image

And how the IAS differs over the next 8s. This is in response to an elevator doublet.

image

@Octal450
Copy link

Octal450 commented Jan 30, 2021

Its definitely wrong. Negative drag should not. Either use the property that has absolute value or do it yourself.. for example in my MD-11:

	<function name="aero/coefficient/CDde_lo">
		<description>Drag due to left outer elevator</description>
		<product>
			<property>aero/qbar-psf</property>
			<property>metrics/Sw-sqft</property>
			<abs><toradians><property>hydraulics/elevator-out-l/final-deg</property></toradians></abs>
			<value>0.003625</value>
		</product>
	</function>

Kind Regards,
Josh

@bcoconni
Copy link
Member

@Octal450 What's wrong ?

@bcoconni
Copy link
Member

@seanmcleod it seems this issue has been fixed. Shall we close it now ?

@seanmcleod
Copy link
Member Author

Yep, closing.

@Octal450
Copy link

@Octal450 What's wrong ?

Just agreeing with that it was wrong, that's all.

Kind Regards,
Josh

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

3 participants