Main Content

Aero.FixedWing.Thrust Class

Namespace: Aero

Define thrust vector on fixed-wing aircraft

Since R2021a

Description

Aero.FixedWing.Thrust creates an Aero.FixedWing thrust vector that describes the thrust of an aircraft.

Class Attributes

Sealed
true

For information on class attributes, see Class Attributes.

Creation

Description

example

fixedWingThrust = Aero.FixedWing.Thrust creates a single Aero.FixedWing.Thrust object with default property values.

fixedWingThrust = Aero.FixedWing.Thrust(N) creates an N-by-N matrix of Aero.FixedWing.Thrust objects with default property values.

fixedWingThrust = Aero.FixedWing.Thrust(M,N,P,...) or Aero.FixedWing.Thrust([M N P ...]) creates an M-by-N-by-P-by-... array of Aero.FixedWing.Thrust objects with default property values.

fixedWingThrust = Aero.FixedWing.Thrust(size(A)) creates an Aero.FixedWing.Thrust object that is the same size as A and all Aero.FixedWing.Thrust objects.

fixedWing.Thrust = Aero.FixedWing.Thrust(__,property,propertyValue) creates an array of Aero.FixedWing.Thrust objects with property, propertyValue pairs applied to each of the Aero.FixedWing.Thrust array objects. For a list of properties, see Properties.

Input Arguments

expand all

Number of fixed-wing thrust objects, specified as a scalar.

Number of fixed-wing thrust objects, specified as a scalar.

Number of fixed-wing thrust objects, specified as a scalar.

Size of fixed-wing thrust object, specified as a scalar.

Properties

expand all

Public Properties

Aero.FixedWing.Coefficients object, specified as a scalar, that defines the thrust vector.

Attributes:

GetAccess
public
SetAccess
public

Maximum thrust value, specified as a scalar numeric.

Dependencies

If Symmetry is set to Asymmetric, then this value applies to both control variables.

Attributes:

GetAccess
public
SetAccess
public

Data Types: double

Minimum thrust value, specified as a scalar numeric.

Dependencies

If Symmetry is set to Asymmetric, then this value applies to both control variables.

Attributes:

GetAccess
public
SetAccess
public

Data Types: double

Controllable thrust value, specified as on or off. To control the thrust value, set this property to on. Otherwise, set this property to off.

Attributes:

GetAccess
public
SetAccess
public

Data Types: logical

Symmetry of the thrust control, specified as Symmetric or Asymmetric.

The Asymmetric option creates two control variables, denoted by the name on the properties and appended by _1 and _2. These control variables can be independently controlled, but also produce an effective control variable specified by the name on the properties. You cannot set this effective control variable. This equation defines the control variable:

name = (name_1-name_2)/2.

You cannot set this effective control variable.

Attributes:

GetAccess
public
SetAccess
public

Data Types: char | string

Aero.Aircraft.Properties object, specified as a scalar.

Attributes:

GetAccess
public
SetAccess
public

Data Types: double

Protected Properties

Control variable names, specified as a vector. This property depends on Properties.Name, Controllable, and Symmetry.

Attributes:

GetAccess
Restricts access
SetAccess
protected

Data Types: char | string

Methods

expand all

Examples

collapse all

This example shows how to compute aircraft forces and moments using a FixedWing thrust.

Create a FixedWing thrust object, propeller.

propeller = Aero.FixedWing.Thrust(...
    Controllable="on", ...
    Properties=Aero.Aircraft.Properties("Name","Propeller"), ...
    Coefficients=Aero.FixedWing.Coefficient(...
      "StateVariables",["Propeller", "U"], ...
      "ReferenceFrame","Body" ...
    ) ...
)
propeller = 
  Thrust with properties:

        Coefficients: [1x1 Aero.FixedWing.Coefficient]
        MaximumValue: 1
        MinimumValue: 0
        Controllable: on
            Symmetry: "Symmetric"
    ControlVariables: "Propeller"
          Properties: [1x1 Aero.Aircraft.Properties]

Assign the propeller thrust to the FixedWing aircraft object, aircraft.Set the coefficient reference frame, Stability.

aircraft = Aero.FixedWing(...
    ReferenceArea=30, ...
    ReferenceSpan=12, ...
    Thrusts=propeller, ...
    Properties=Aero.Aircraft.Properties("Name","Aircraft"))
aircraft = 
  FixedWing with properties:

        ReferenceArea: 30
        ReferenceSpan: 12
      ReferenceLength: 0
         Coefficients: [1x1 Aero.FixedWing.Coefficient]
     DegreesOfFreedom: "6DOF"
             Surfaces: [1x0 Aero.FixedWing.Surface]
              Thrusts: [1x1 Aero.FixedWing.Thrust]
          AspectRatio: 4.8000
           Properties: [1x1 Aero.Aircraft.Properties]
           UnitSystem: "Metric"
    TemperatureSystem: "Kelvin"
          AngleSystem: "Radians"

aircraft.Coefficients.ReferenceFrame = "Stability";

Set the coefficients for aircraft.

BodyCoefficients = {
    'CD', 'Zero', 0.02;
    'CD', 'Alpha', 0.1;
    'CL', 'Alpha', 4.5;
};
PropellerCoefficients = {
    'CX', 'Propeller', 8
    'CX', 'U', -0.1;
};
aircraft = setCoefficient(...
    aircraft, ...
    BodyCoefficients(:, 1), ...
    BodyCoefficients(:, 2), ...
    BodyCoefficients(:, 3));
aircraft = setCoefficient(...
    aircraft, ...
    PropellerCoefficients(:, 1), ...
    PropellerCoefficients(:, 2), ...
    PropellerCoefficients(:, 3), ...
    "Component", "Propeller");

Get the cruise state for aircraft.

state = Aero.FixedWing.State(...
    Mass=200, ...
    U=50, ...
    Alpha=0.01);
state = setupControlStates(state, aircraft);
state = setState(state, "Propeller", 0.63)
state = 
  State with properties:

                    Alpha: 0.0100
                     Beta: 0
                 AlphaDot: 0
                  BetaDot: 0
                     Mass: 200
                  Inertia: [3x3 table]
          CenterOfGravity: [0 0 0]
         CenterOfPressure: [0 0 0]
              AltitudeMSL: 0
             GroundHeight: 0
                       XN: 0
                       XE: 0
                       XD: 0
                        U: 50
                        V: 0
                        W: 0
                      Phi: 0
                    Theta: 0
                      Psi: 0
                        P: 0
                        Q: 0
                        R: 0
                   Weight: 1962
              AltitudeAGL: 0
                 Airspeed: 50.0025
              GroundSpeed: 50
               MachNumber: 0.1469
             BodyVelocity: [50 0 0.5000]
           GroundVelocity: [50 0 0]
                       Ur: 50
                       Vr: 0
                       Wr: 0.5000
          FlightPathAngle: 0
              CourseAngle: 0
     InertialToBodyMatrix: [3x3 double]
     BodyToInertialMatrix: [3x3 double]
         BodyToWindMatrix: [3x3 double]
         WindToBodyMatrix: [3x3 double]
    BodyToStabilityMatrix: [3x3 double]
    StabilityToBodyMatrix: [3x3 double]
          DynamicPressure: 1.5314e+03
              Environment: [1x1 Aero.Aircraft.Environment]
            ControlStates: [1x1 Aero.Aircraft.ControlState]
         OutOfRangeAction: "Limit"
         DiagnosticAction: "Warning"
               Properties: [1x1 Aero.Aircraft.Properties]
               UnitSystem: "Metric"
        TemperatureSystem: "Kelvin"
              AngleSystem: "Radians"

Compute the resulting forces and moments for aircraft.

[F, M] = forcesAndMoments(aircraft, state)
F = 3×1

  893.6216
         0
 -114.9385

M = 3×1

     0
     0
     0

Limitations

You cannot subclass Aero.FixedWing.Thrust.

Version History

Introduced in R2021a