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
Aero.FixedWing.Surface objects providing nested control surfaces,
specified as a vector.
Attributes:
GetAccess | public |
SetAccess | public |
Aero.FixedWing.Coefficients objects that define the control
surface, specified as a scalar.
Attributes:
GetAccess | public |
SetAccess | public |
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
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 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 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
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
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
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: [1×1 Aero.FixedWing.Surface]
Coefficients: [1×1 Aero.FixedWing.Coefficient]
MaximumValue: Inf
MinimumValue: -Inf
Controllable: off
Symmetry: "Symmetric"
ControlVariables: [0×0 string]
Properties: [1×1 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: [1×1 Aero.FixedWing.Coefficient]
DegreesOfFreedom: "6DOF"
Surfaces: [1×1 Aero.FixedWing.Surface]
Thrusts: [1×0 Aero.FixedWing.Thrust]
AspectRatio: 4.8000
Properties: [1×1 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: [3×3 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: [3×3 double]
BodyToInertialMatrix: [3×3 double]
BodyToWindMatrix: [3×3 double]
WindToBodyMatrix: [3×3 double]
BodyToStabilityMatrix: [3×3 double]
StabilityToBodyMatrix: [3×3 double]
DynamicPressure: 1.5313e+03
Environment: [1×1 Aero.Aircraft.Environment]
ControlStates: [1×1 Aero.Aircraft.ControlState]
OutOfRangeAction: "Limit"
DiagnosticAction: "Warning"
Properties: [1×1 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.7517e-06 -55.201 -2758.1 -0.0094274 0 0 0
FY 0 0 0 0 0 0 0 0
FZ 0.73969 -2.3874e-06 -4153.9 -2.077e+05 -0.0060459 0 0 0
L 0 0 0 0 0 0 0 0
M 0.73969 -2.3988e-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.
Sélectionner un site web
Choisissez un site web pour accéder au contenu traduit dans votre langue (lorsqu'il est disponible) et voir les événements et les offres locales. D’après votre position, nous vous recommandons de sélectionner la région suivante : .
Vous pouvez également sélectionner un site web dans la liste suivante :
Comment optimiser les performances du site
Pour optimiser les performances du site, sélectionnez la région Chine (en chinois ou en anglais). Les sites de MathWorks pour les autres pays ne sont pas optimisés pour les visites provenant de votre région.
Amériques
- 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)