Aero.FixedWing.Surface Class
Namespace: Aero
Description
Aero.FixedWing.Coefficient
defines the dynamic and control surfaces on an
Aero.FixedWing
aircraft.
Creation
Description
fixedWingSurface = Aero.FixedWing.Surface
creates a single
Aero.FixedWing.Surface
object with default property values.
fixedWingSurface = Aero.FixedWing.Surface(
creates an N-by-N matrix of
N
)Aero.FixedWing.Surface
objects with default property values.
fixedWingSurface = Aero.FixedWing.Surface(
or
M
,N
,P
,...)Aero.FixedWing.Surface([
creates an M-by-N-by-P-by-...
array of M
N
P
...])Aero.FixedWing.Surface
objects with default property
values.
fixedWingSurface = Aero.FixedWing.Surface(size(
creates an A
))Aero.FixedWing.Surface
object of the same size as
A
and all Aero.FixedWing.Surface
objects.
fixedWingSurface = Aero.FixedWing.Surface(__,property,propertyValue)
creates an array of Aero.FixedWing.Surface
objects with
property
, propertyValue
pairs
applied to each of the Aero.FixedWing.Surface
array objects. For a list of
properties, see Properties.
Properties
Public Properties
Surfaces
— Aero.FixedWing.Surface
objects
vector
Aero.FixedWing.Surface
objects providing nested control surfaces,
specified as a vector.
Attributes:
GetAccess | public |
SetAccess | public |
Coefficients
— Aero.FixedWing.Coefficients
objects
scalar
Aero.FixedWing.Coefficients
objects that define the control
surface, specified as a scalar.
Attributes:
GetAccess | public |
SetAccess | public |
MaximumValue
— Maximum value of control surfaces
infinity (default) | scalar numeric
Maximum value of control surfaces, 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
MinimumValue
— Minimum value of control surface
negative infinity (default) | scalar numeric
Minimum value of control surface, 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
— Controllable control surface
off
(default) | on
Controllable control surface specified as on
or
off
. To control the control surface, set this property to
on
. Otherwise, set this property to
off
.
Attributes:
GetAccess | public |
SetAccess | public |
Data Types: logical
Symmetry
— Symmetry of control surface
Symmetric
(default) | Asymmetric
Symmetry of the control surface, 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
Properties
— Aero.Aircraft.Properties
object
scalar
Aero.Aircraft.Properties
object, specified as a scalar.
Attributes:
GetAccess | public |
SetAccess | public |
Data Types: double
Protected Properties
ControlVariables
— Control variable names
vector
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
Public Methods
getCoefficient | Get coefficient for fixed-wing surface object |
getControlStates | Get control states for Aero.FixedWing.Surface
object |
setCoefficient | Set coefficient values for Aero.FixedWing.Surface
object |
update | Update Aero.FixedWing.Surface object |
Examples
Define Aerodynamic Surface and Compute Static Stability of Aircraft
This example shows how to define aircraft aerodynamic surfaces using the FixedWing.Surface
object. It then shows how to compute the static stability of the aircraft.
Create two FixedWing
surfaces, elevator
and horizontalStabilizer
. elevator
is defined as an inner nested surface of horizontalStabilizer
.
elevator = Aero.FixedWing.Surface(... Controllable="on",... MinimumValue=deg2rad(-20),... MaximumValue=deg2rad(20), ... Properties=Aero.Aircraft.Properties("Name","Elevator"), ... Coefficients=Aero.FixedWing.Coefficient("StateVariables",... "Elevator","ReferenceFrame","Stability")); horizontalStabilizer = Aero.FixedWing.Surface(... Surfaces=elevator, ... Properties=Aero.Aircraft.Properties("Name","HorizontalStabilizer"))
horizontalStabilizer = Surface with properties: Surfaces: [1x1 Aero.FixedWing.Surface] Coefficients: [1x1 Aero.FixedWing.Coefficient] MaximumValue: Inf MinimumValue: -Inf Controllable: off Symmetry: "Symmetric" ControlVariables: [0x0 string] Properties: [1x1 Aero.Aircraft.Properties]
Assign the horizontalStabilizer
surface to the FixedWing
aircraft object, aircraft
.
aircraft = Aero.FixedWing(... ReferenceArea=30, ... ReferenceSpan=12, ... Surfaces=horizontalStabilizer)
aircraft = FixedWing with properties: ReferenceArea: 30 ReferenceSpan: 12 ReferenceLength: 0 Coefficients: [1x1 Aero.FixedWing.Coefficient] DegreesOfFreedom: "6DOF" Surfaces: [1x1 Aero.FixedWing.Surface] Thrusts: [1x0 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; }; ElevatorCoefficients = { 'CL', 'Elevator', 0.4; 'Cm', 'Elevator', -1.3; }; aircraft = setCoefficient(... aircraft, ... BodyCoefficients(:, 1), ... BodyCoefficients(:, 2), ... BodyCoefficients(:, 3)); aircraft = setCoefficient(... aircraft, ... ElevatorCoefficients(:, 1), ... ElevatorCoefficients(:, 2), ... ElevatorCoefficients(:, 3), ... "Component", "Elevator");
Get the cruise state for aircraft
.
state = Aero.FixedWing.State(... Mass=200, ... U=50, ... Alpha=0.006, ... CenterOfGravity=[1, 0, 0]); state = setupControlStates(state, aircraft); state = setState(state, "Elevator", deg2rad(-2))
state = State with properties: Alpha: 0.0060 Beta: 0 AlphaDot: 0 BetaDot: 0 Mass: 200 Inertia: [3x3 table] CenterOfGravity: [1 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.0009 GroundSpeed: 50 MachNumber: 0.1469 BodyVelocity: [50 0 0.3000] GroundVelocity: [50 0 0] Ur: 50 Vr: 0 Wr: 0.3000 FlightPathAngle: 0 CourseAngle: 0 InertialToBodyMatrix: [3x3 double] BodyToInertialMatrix: [3x3 double] BodyToWindMatrix: [3x3 double] WindToBodyMatrix: [3x3 double] BodyToStabilityMatrix: [3x3 double] StabilityToBodyMatrix: [3x3 double] DynamicPressure: 1.5313e+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 static stability for the FixedWing
object aircraft
and surfaces, horizontalStabilizer
and elevator
.
[stability, deriv] = staticStability(aircraft, state)
stability=6×8 table
U V W Alpha Beta P Q R
________ _________ ________ ________ _________ _________ _________ _________
FX "Stable" "" "" "" "" "" "" ""
FY "" "Neutral" "" "" "" "" "" ""
FZ "" "" "Stable" "" "" "" "" ""
L "" "" "" "" "Neutral" "Neutral" "" ""
M "Stable" "" "" "Stable" "" "" "Neutral" ""
N "" "" "" "" "Neutral" "" "" "Neutral"
deriv=6×8 table
U V W Alpha Beta P Q R
_______ ___________ _______ __________ __________ _ _ _
FX -37.378 -3.7744e-06 -55.201 -2758.1 -0.0094274 0 0 0
FY 0 0 0 0 0 0 0 0
FZ 0.73969 -2.4329e-06 -4153.9 -2.077e+05 -0.0060459 0 0 0
L 0 0 0 0 0 0 0 0
M 0.73969 -2.4329e-06 -4153.9 -2.077e+05 -0.0060459 0 0 0
N 0 0 0 0 0 0 0 0
Limitations
You cannot subclass Aero.FixedWing.Surface
.
Version History
Introduced in R2021a
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)