Main Content

staticStability

Class: Aero.FixedWing
Package: Aero

Calculate static stability of fixed-wing aircraft

Syntax

stability = staticStability(aircraft,state)
stability = staticStability(___,Name,Value)
[stability,derivatives] = staticStability(___)

Description

stability = staticStability(aircraft,state) calculates the static stability stability of a fixed-wing aircraft aircraft at an Aero.FixedWing.State state. This method calculates static stability from changes in body forces and moments due to perturbations of an aircraft state. By default, these states are airspeed, angle of attack, angle of side slip, and body roll rates. To change these states, see criteriaTable.

The staticStability method evaluates the changes in body forces and moments after a perturbation as either greater than, equal to, or less than 0 using the matching entry in the criteria table.

  • If the evaluation of a criterion is met, the aircraft is statically stable at that condition.

  • If the evaluation of a criterion is not met, the aircraft is statically unstable at that condition.

  • If the perturbation value is set to 0, the aircraft is statically neutral at that condition.

stability = staticStability(___,Name,Value) calculates the static stability result with the specified Name,Value arguments. Specify any of the input argument combinations in the previous syntaxes followed by Name,Value pairs as the last input arguments.

[stability,derivatives] = staticStability(___) returns the body forces and moments derivatives table along with the static stability. Specify any of the input argument combinations in the previous syntaxes.

Input Arguments

expand all

Aero.FixedWing object, specified as a scalar.

Data Types: double

Aero.FixedWing.State object, specified as a scalar.

Data Types: double

Name-Value Arguments

Specify optional pairs of arguments as Name1=Value1,...,NameN=ValueN, where Name is the argument name and Value is the corresponding value. Name-value arguments must appear after other arguments, but the order of the pairs does not matter.

Before R2021a, use commas to separate each name and value, and enclose Name in quotes.

Example: 'RelativePerturbation','1e-5'

Static stability test criteria, specified as a 6-by-N table, where N is number of variables.

  • If the value being evaluated is 0, it is neutral.

  • If the value being evaluated does not meet the criteria, it is unstable.

  • If the criterion is an empty string or is missing, then the stability result is an empty string.

The criteria table has these requirements:

  • Each entry in the criteria table must be '<', '>', '', or missing.

  • The table must have six rows: 'FX', 'FY', 'FZ', 'L', 'M', and 'N'.

  • N number of variables for columns.

By default, this table appears as:

 UVWAlphaBetaPQR
FX'<'''''''''''''''
FY'''<'''''''''''''
FZ'''''<'''''''''''
L'''''''''''<''<'''
M'>''''''<''''''<'''
N'''''''''>''''''<'

Data Types: string

Relative perturbation of the system, specified as a scalar numeric. This perturbation takes the form of:

Perturbation TypeDefinition

System State perturbation

statePert = RelativePerturbation+1e-3*RelativePerturbation*|baseValue|

System input perturbation

ctrlPert = RelativePerturbation+1e-3*RelativePerturbation*|baseValue|

To calculate the Jacobian of the system, linearize uses the result of these equations in conjunction with the 'DifferentialMethod' property.

Example: 'RelativePerturbation',1e-5

Data Types: double

Direction while perturbing, specified as 'Forward', 'Backward', or 'Central'.

DirectionDescription

'Forward'

Forward difference method that adds statePert and ctrlPert to the base states and inputs, respectively.

'Backward'

Backward difference method that adds statePert and ctrlPert to the base states an inputs, respectively.

'Central'

Central difference method that adds and subtracts statePert and ctrlPert to and from the base states and inputs, respectively.

Example: 'DifferentialMethod','Backward'

Data Types: char | string

Output reference of the forces and moments calculation, specified as:

  • "Body"

  • "Wind"

  • "Stability"

Example: OutputReferenceFrame="Stability"

Output Arguments

expand all

Stability of fixed-wing aircraft, returned as a 6-by-N table.

Forces and moments derivatives output in OutputReferenceFrame, returned as a 6-by-N table.

Examples

expand all

Calculate the static stability of a Cessna C182.

[C182, CruiseState] = astC182();
stability = staticStability(C182, CruiseState)
stability =

  6×8 table

             U           V           W         Alpha        Beta         P           Q           R    
          ________    ________    ________    ________    ________    ________    ________    ________

    FX    "Stable"    ""          ""          ""          ""          ""          ""          ""      
    FY    ""          "Stable"    ""          ""          ""          ""          ""          ""      
    FZ    ""          ""          "Stable"    ""          ""          ""          ""          ""      
    L     ""          ""          ""          ""          "Stable"    "Stable"    ""          ""      
    M     "Stable"    ""          ""          "Stable"    ""          ""          "Stable"    ""      
    N     ""          ""          ""          ""          "Stable"    ""          ""          "Stable"

Calculate the static stability of a Cessna C182 with a custom criteria table.

[C182, CruiseState] = astC182();
CT = C182.criteriaTable()
CT{"FX", "U"} = ">"
 stability = staticStability(C182, CruiseState, "CriteriaTable", CT)
CT =

  6×8 table

           U      V      W     Alpha    Beta     P      Q      R 
          ___    ___    ___    _____    ____    ___    ___    ___

    FX    "<"    ""     ""      ""      ""      ""     ""     "" 
    FY    ""     "<"    ""      ""      ""      ""     ""     "" 
    FZ    ""     ""     "<"     ""      ""      ""     ""     "" 
    L     ""     ""     ""      ""      "<"     "<"    ""     "" 
    M     ">"    ""     ""      "<"     ""      ""     "<"    "" 
    N     ""     ""     ""      ""      ">"     ""     ""     "<"


CT =

  6×8 table

           U      V      W     Alpha    Beta     P      Q      R 
          ___    ___    ___    _____    ____    ___    ___    ___

    FX    ">"    ""     ""      ""      ""      ""     ""     "" 
    FY    ""     "<"    ""      ""      ""      ""     ""     "" 
    FZ    ""     ""     "<"     ""      ""      ""     ""     "" 
    L     ""     ""     ""      ""      "<"     "<"    ""     "" 
    M     ">"    ""     ""      "<"     ""      ""     "<"    "" 
    N     ""     ""     ""      ""      ">"     ""     ""     "<"


stability =

  6×8 table

              U            V           W         Alpha        Beta         P           Q           R    
          __________    ________    ________    ________    ________    ________    ________    ________

    FX    "Unstable"    ""          ""          ""          ""          ""          ""          ""      
    FY    ""            "Stable"    ""          ""          ""          ""          ""          ""      
    FZ    ""            ""          "Stable"    ""          ""          ""          ""          ""      
    L     ""            ""          ""          ""          "Stable"    "Stable"    ""          ""      
    M     "Stable"      ""          ""          "Stable"    ""          ""          "Stable"    ""      
    N     ""            ""          ""          ""          "Stable"    ""          ""          "Stable"

Calculate the static stability of a Cessna C182 using the central differential method.

[C182, CruiseState] = astC182();
stability = staticStability(C182, CruiseState, "DifferentialMethod", "Central")
stability =

  6×8 table

             U           V           W         Alpha        Beta         P           Q           R    
          ________    ________    ________    ________    ________    ________    ________    ________

    FX    "Stable"    ""          ""          ""          ""          ""          ""          ""      
    FY    ""          "Stable"    ""          ""          ""          ""          ""          ""      
    FZ    ""          ""          "Stable"    ""          ""          ""          ""          ""      
    L     ""          ""          ""          ""          "Stable"    "Stable"    ""          ""      
    M     "Stable"    ""          ""          "Stable"    ""          ""          "Stable"    ""      
    N     ""          ""          ""          ""          "Stable"    ""          ""          "Stable"

Calculate the static stability and derivatives of a Cessna C182.

[C182, CruiseState] = astC182();
[stability,derivatives] = staticStability(C182, CruiseState)
stability =

  6×8 table

             U           V           W         Alpha        Beta         P           Q           R    
          ________    ________    ________    ________    ________    ________    ________    ________

    FX    "Stable"    ""          ""          ""          ""          ""          ""          ""      
    FY    ""          "Stable"    ""          ""          ""          ""          ""          ""      
    FZ    ""          ""          "Stable"    ""          ""          ""          ""          ""      
    L     ""          ""          ""          ""          "Stable"    "Stable"    ""          ""      
    M     "Stable"    ""          ""          "Stable"    ""          ""          "Stable"    ""      
    N     ""          ""          ""          ""          "Stable"    ""          ""          "Stable"

derivatives =

  6×8 table

             U            V            W       Alpha        Beta            P              Q           R   
          _______    ___________    _______    ______    __________    ___________    ___________    ______

    FX     -2.118    -5.4001e-08     7.2955    1606.1    -0.0023309              0              0         0
    FY          0        -15.415          0         0       -3392.8        -647.47              0    1847.5
    FZ    -24.083    -5.9117e-07    -174.03    -38305     -0.026503              0         -33669         0
    L           0        -130.33          0         0        -28686    -1.5042e+05              0     24801
    M      17.028     4.5475e-07    -105.88    -23303      0.018739              0    -5.2223e+05         0
    N           0         83.944          0         0         18476        -8595.5              0    -29248

Version History

Introduced in R2021a