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 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 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 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 Pair Arguments

Specify optional comma-separated pairs of Name,Value arguments. Name is the argument name and Value is the corresponding value. Name must appear inside quotes. You can specify several name and value pair arguments in any order as Name1,Value1,...,NameN,ValueN.

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 Arguments

expand all

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

Forces and moments derivatives, 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
Introduced in R2021a