确定固定翼飞机的非线性动力学和静稳定性
这个例子展示了在MATLAB®中使用塞斯纳C182几何和系数数据创建和分析固定翼飞机的过程。
用于创建飞机的数据来自Jan Roskam的《飞机飞行动力学与控制》[1].
这个例子描述了:
通过创建和嵌套电梯控制面,然后创建副翼、方向舵、机翼和垂直稳定器,设置固定翼气动和控制面。
在固定翼飞机模型上创建类似于控制面的推进模型。
定义整个飞机。
定义飞机上的系数。
准备飞机进行数值分析。
进行数值分析。
设置固定翼气动和控制面
的Aero.FixedWing.Surface
Class既可以作为气动面,也可以作为控制面。
控件控制此行为可控
属性。
设置可控
来在
创建控件表面和ControlState
变量。
在气动表面上嵌套一个控制面,模拟飞机的实际结构。
下面的示例创建了一个电梯控制面,并将其嵌套在水平稳定器上。
电梯= fixedWingSurface (“电梯”,“上”,“对称”, -20年,20)
表面:[1x0气动固定翼。系数:[1x1气动。固定翼。系数]最大值:20最小值:-20可控:on对称:"Symmetric"控制变量:"Elevator"属性:[1x1 air . aircraft .Properties]
电梯。系数= fixedWingCoefficient (“电梯”)
表面:[1x0气动固定翼。系数:[1x1气动。固定翼。系数]最大值:20最小值:-20可控:on对称:"Symmetric"控制变量:"Elevator"属性:[1x1 air . aircraft .Properties]
horizontalStabilizer = fixedWingSurface (“HorizontalStabilizer”,“表面”、电梯)
horizontalStabilizer =表面属性:表面:[1x1 Aero.FixedWing.]系数:[1x1气动。固定翼。对称:"Symmetric" ControlVariables: [0x0 string]属性:[1x1 air . aircraft .Properties]
固定翼对象上的每个属性也可以通过构造时的Name、Value参数设置。此创建方法将在示例的其余部分中使用。
接下来,构造副翼,方向舵,机翼和垂直稳定器。
副翼= fixedWingSurface (“副翼”,“上”,“非对称”(-20年,20),...“系数”fixedWingCoefficient (“副翼”));舵= fixedWingSurface (“舵”,“上”,“对称”(-20年,20),...“系数”fixedWingCoefficient (“舵”));翼= fixedWingSurface (“翼”,“表面”、副翼);verticalStabilizer = fixedWingSurface (“VerticalStabilizer”,“表面”、舵);
定义推进
使用Aero.FixedWing.Thrust
对象在固定翼飞机模型上创建类似于控制面的推进模型。
的Aero.FixedWing.Thrust
对象总是可控的。它不能像空气动力学和控制表面那样嵌套。
螺旋桨= fixedWingThrust (“螺旋桨”,“系数”fixedWingCoefficient (“螺旋桨”))
螺旋桨=推力与性能:系数:[1x1气动固定翼。系数]最大值:1最小值:0可控:on对称:“对称”控制变量:“螺旋桨”属性:[1x1 air . aircraft .Properties]
构建飞机
确定了气动面、控制面和推力组件后,定义了整个飞机。
首先,定义一个独立的Aero.Aircraft.Properties
飞机的舱位。使用这个类来跟踪组件的版本,以及给定的飞机正在使用哪些组件。
所有航空。FixedWing
而且航空。飞机
类包含此属性。
C182Properties = Aero.Aircraft.Properties (...“名称”,“Cessna C182”,...“类型”,的“通用航空”,...“版本”,“1.0”,...“描述”,“塞斯纳182例子”)
名称:"Cessna C182"描述:"Cessna 182示例"类型:"General Aviation"版本:"1.0"
C182 =航空。FixedWing (...“属性”C182Properties,...“UnitSystem”,“英语(英尺/秒)”,...“AngleSystem”,“弧度”,...“TemperatureSystem”,“华”,...“ReferenceArea”, 174,...“ReferenceSpan”36岁的...“ReferenceLength”, 4.9,...“表面”[机翼,水平稳定器,垂直稳定器],...“手臂”螺旋桨)
C182 =固定翼的属性:参考面积:174参考跨度:36参考长度:4.9000系数:[1x1 air .FixedWing. properties]自由度:“6自由度”表面:[1x3气动固定翼。推力:[1x1气动固定翼。]性能:[1x1航空。飞机。单位系统:"English (ft/s)"温度系统:“华氏度”AngleSystem:“弧度”
设置飞机系数
接下来,定义飞机上的系数。
这些系数描述了飞机的动力特性。这个例子定义了标量常数系数,它定义了飞机的线性行为。
要定义固定翼飞机的非线性动态行为,定义仿真软件。LookupTable
系数。仿真软件。本例中不使用lookuptable。看一个使用Simulink的例子。LookupTables,打开线性控制的状态空间模型分析及静稳定性分析的例子。
默认情况下,所有系数都为0。
BodyCoefficients = {“CD”,“零”0.027;“氯”,“零”0.307;“厘米”,“零”0.04;“CD”,“α”0.121;“氯”,“α”4.41;“厘米”,“α”-0.613;“CD”,“AlphaDot”, 0“氯”,“AlphaDot”1.7;“厘米”,“AlphaDot”-7.27;“CD”,“问”, 0;“氯”,“问”3.9;“厘米”,“问”-12.4;“CY”,“β”-0.393;“氯”,“β”-0.0923;“Cn”,“β”0.0587;“CY”,“P”-0.075;“氯”,“P”-0.484;“Cn”,“P”-0.0278;“CY”,“R”0.214;“氯”,“R”0.0798;“Cn”,“R”-0.0937;};C182 = setCoefficient(C182, BodyCoefficients(:, 1), BodyCoefficients(:, 2), BodyCoefficients(:, 3));
系数可以在飞机上的任何部件上定义。这些组件可以包括任何Aero.FixedWing.Surface
或Aero.FixedWing.Thrust
.
的setCoefficient
方法提供了一个组件
名称,值
参数,该参数取所需组件名称上的系数,从而避免了知道组件在飞机上的确切位置的需要。
有效的组件名称取决于的名字
属性。
AileronCoefficients = {“CY”,副翼的, 0;“氯”,副翼的0.229;“Cn”,副翼的-0.0504;};ElevatorCoefficients = {“CY”,“电梯”0.187;“氯”,“电梯”0.0147;“Cn”,“电梯”-0.0805;};RudderCoefficients = {“CD”,“舵”, 0;“氯”,“舵”0.43;“厘米”,“舵”-1.369;};PropellerCoefficients = {“CD”,“螺旋桨”-21.1200;};C182 = setCoefficient(C182, AileronCoefficients(:, 1), AileronCoefficients(:, 2), AileronCoefficients(:, 3),“组件”,“副翼”);C182 = setCoefficient(C182,电梯系数(:,1),电梯系数(:,2),电梯系数(:,3),“组件”,“电梯”);C182 = setCoefficient(C182, RudderCoefficients(:, 1), RudderCoefficients(:, 2), RudderCoefficients(:, 3),“组件”,“舵”);C182 = setCoefficient(C182,螺旋桨系数(:,1),螺旋桨系数(:,2),螺旋桨系数(:,3),“组件”,“螺旋桨”);
定义当前状态
固定翼飞机已经完全建成,可以进行数值分析。
为了对固定翼飞机进行数值分析,定义一个Aero.FixedWing.State
对象。
的Aero.FixedWing.State
对象的当前状态航空。FixedWing
对象。的Aero.FixedWing.State
也是定义飞机的动态物理特性,包括质量和惯性的地方。
在本例中,我们将分析巡航状态。
CruiseState = Aero.FixedWing.State (...“UnitSystem”, C182。UnitSystem,...“AngleSystem”, C182。AngleSystem,...“TemperatureSystem”, C182。TemperatureSystem,...“质量”, 82.2981,...“U”, 220.1,...“AltitudeMSL”, 5000);CruiseState.Inertia.Variables = [948, 0,0;0,1346,0;0,0,1967;];CruiseState。CenterOfGravity = [0.264, 0,0] .* C182.ReferenceLength;CruiseState。CenterOfPressure = [0.25, 0,0] .* C182.ReferenceLength;CruiseState。Environment = aircraftEnvironment(C182,“是”, CruiseState.AltitudeMSL);
建立控制状态
除了环境和动态物理性能,Aero.FixedWing.State
类还持有当前控制面偏转和推力位置。这些职位是在ControlStates
财产。使用这个类设置控件状态。
默认情况下,该属性为空。从飞机上的控制面和推力信息初始化属性。
控件设置这些控件状态setupControlStates
下面的方法。
CruiseState = setupControlStates(CruiseState, C182)
CruiseState =状态和属性:α:0β:0 AlphaDot: 0 BetaDot: 0质量:82.2981惯性:[3 x3表]CenterOfGravity: [1.2936 0 0] CenterOfPressure: [1.2250 0 0] AltitudeMSL: 5000 GroundHeight: 0 XN: 0 XE: 0 XD: -5000 U: 220.1000 V: 0 W: 0φ:0θ:0ψ:0 P: 0问:0 R: 0重量:2.6488 e + 03 AltitudeAGL: 5000速度:220.1000水平速度:220.1000 MachNumber: 0.2006 BodyVelocity: [220.1000 0 0] GroundVelocity:[220.1000 0 0]你:220.1000虚拟现实:0或者说是:0 FlightPathAngle:0课程角度:0 ineraltobodymatrix: [3x3双]bodytoineralmatrix: [3x3双]BodyToWindMatrix: [3x3双]WindToBodyMatrix: [3x3双]BodyToStabilityMatrix: [3x3双]DynamicPressure: 49.6090环境:[1x1 air . aircraft . aircraft .]控制状态:[1x6航空。飞机。ControlState] OutOfRangeAction: "Limit" DiagnosticAction: "Warning" Properties: [1x1 Aero.Aircraft.Properties] UnitSystem: "English (ft/s)" TemperatureSystem: "Fahrenheit" AngleSystem: "Radians"
每个飞机配置只执行一次此操作。如果飞机上没有添加或删除控制面或推力,请跳过此步骤。
进行数值分析
此时,飞机和状态已经完全构造和定义好了。
固定翼飞机有许多数值分析方法,包括力和力矩、非线性动力学和静态稳定性。
力和时刻
要计算飞机在某一时刻的力和力矩,使用forcesAndMoments
方法。
这些力和力矩都在飞机机体框架内。在不同的坐标系中定义的系数应用了适当的变换矩阵来将它们转换到主体坐标系中。
[F, M] = forcesAndMoments(C182, CruiseState)
F =3×1-233.0633 0 -1.2484
M =3×1103.× 0 1.5101 0
非线性动力学
要计算飞机的动力学行为,使用nonlinearDynamics
方法。
的nonlinearDynamics
方法返回飞机上所选自由度变化率的向量。矢量的大小取决于自由度。要计算飞机随时间变化的动态行为,可以将矢量与ode求解器结合使用,例如ode45。
为了在不同飞机设计的保真度之间快速迭代,或从输出向量中删除不必要的状态,改变所选的自由度。这些变化率的定义如下:
负载(“astFixedWingDOFtable.mat”).DOFtable
ans =12×4表PM4 PM6 3自由度6自由度 ___ ___ ____ ____ dXN / dt“X”“X”“X”“X”dXE / dt " " X " " " X " dXD / dt“X”“X”“X”“X”dU / dt“X”“X”“X”“X”dV / dt " " X " " " X " dW / dt“X”“X”“X”“X”dP / dt "" "" "" " X”dQ / dt“”“”“”“X”博士/ dt "" "" "" " X”dPhi / dt "" "" "" " X”dTheta / dt“”“”“”“X”dPsi / dt "" "" "" " X”
dydt =非线性动力学(C182, CruiseState)
dydt =12×1220.1000 00 -2.8319 0 -0.0152 0 1.1219 00
静态稳定
静稳定性是指飞机从初始状态受到轻微扰动后恢复到初始状态的趋势。它是民用飞机的一个重要特征,减少了对复杂控制器维持动态稳定性的需求。在某些条件下,需要先进机动性的飞机可能会选择静不稳定性。
的航空。FixedWing
物体静稳定性法是根据飞机当前状态下的摄动所引起的力和力矩的变化计算的。
该方法将扰动与一组预定义的小于、大于或等于零的标准进行比较。还可以指定自定义条件。然后,该方法计算静态稳定性为:
如果满足条件,则扰动是静态稳定的。
如果不满足条件,则扰动是静不稳定的。
如果摄动为0,则摄动为静中性。
的staticStability
方法不执行基于需求的分析。只在初步设计阶段使用此方法。
[stability, derivatives] = staticStability(C182, CruiseState)
稳定=6×8表U V WαβP Q R ________ __________ ________ ________ ________ ________ ________ ________ 外汇“稳定 " "" "" "" "" "" "" "" ”“财政年度”不稳定 " "" "" "" "" "" "" FZ”“”“”稳定 " "" "" "" "" "" L "" "" "" "" " 稳定”“稳定”““““M”稳定稳定”“”“”“”“”“”“”“稳定”N "" "" "" "" " 稳定”“”“”“稳定”
衍生品=6×8表U V W Alpha Beta P Q R _______ ___________ _______ ______ _________ _______ _______ _______ FX -2.1178 -7.2191e-07 7.2946 1605.9 -0.035089 00 0 FY 0 14.354 00 3159.3 52.945 0 -151.07 FZ -24.08 -5.0022e-07 -174.01 -38300 -0.0265 0 -374.73 0 L 0 -138 00 -30374 -12300 0 2028 M 13.722 -5.8208e-06 -129.74 -28555 -0.28018 0 -5863.8 0 N 0 81.892 00 18024 -710.13 0 -2370.9
参考文献
罗斯卡姆,“飞机飞行动力学与自动飞行控制(上)”,DAR公司,2003。