主要内容

用线性化固定翼飞机进行控制和静稳定性分析

这个例子展示了如何将固定翼飞机转换为线性时不变(LTI)状态空间模型进行线性分析。

这个例子描述了:

  • 从DATCOM文件导入和填充数据。

  • 用DATCOM数据建造固定翼飞机。

  • 固定翼飞机静稳定性计算。

  • 将固定翼飞机沿初始状态线性化。

  • 用动态响应验证静力稳定性分析。

  • 隔离电梯-俯仰传递函数,设计电梯反馈控制器。

定义固定翼飞机和国家

这个例子使用了一个为Sky Hogg飞机创建的DATCOM文件。

首先,使用datcomimport导入DATCOM输出文件。

allData = datcomimport (“astSkyHoggDatcom.out”假的,0);skyHoggData = allData {1}
skyHoggData =结构体字段:案例:“SKYHOGG BODY-WING-HORIZONTAL TAIL-VERTICAL尾配置“马赫:[0.1000 - 0.2000 0.3000 - 0.3500]alt:(1000 3000 5000 7000 9000 11000 13000 15000)α:[-16 -12 8 4 2 0 2 4 8 12]nmach: 4 nalt: 8 nalpha: 10 rnnub:[]大卖场:0循环:2 sref: 225.8000 cbar: 5.7500 blref: 41.1500暗淡:“英尺”引出:“度”stmach: 0.6000 tsmach: 1.4000保存:0药栓:[]修剪:0潮湿:1建立:1部分:0 highsym: 1 highasy: 0 highcon: 0 tjet: 0 hypeff: 0磅:0压水式反应堆:0接地:0 wsspn: 18.7000 hsspn: 5.7000 ndelta: 5三角洲:[-20 -10 0 10 20]deltal: [] deltar:[]已:0 grndht:[]配置:[1 x1 struct]版本:1976 cd: [10 x4x8双]cl: [10 x4x8双]厘米:[10 x4x8双]cn: [10 x4x8双]ca:[10x4x8 double] cma: [10x4x8 double] cyb: [10x4x8 double] cnb: [10x4x8 double] cla: [10x4x8 double] qqinf: [10x4x8 double] eps: [10x4x8 double] depsdalp: [10x4x8 double] clq: [10x4x8 double] cmq: [10x4x8 double] cmq: [10x4x8 double] cmq: [10x4x8 double] cmad: [10x4x8 double] cyp: [10x4x8 double] cnp:[10x4x8 double] cnr: [10x4x8 double] clr: [10x4x8 double] dcl_sym: [5x4x8 double] dcl_sym: [5x4x8 double] dcl_sym: [5x4x8 double] dcl_sym: [5x4x8 double] dcdmin_sym: [5x4x8 double] clad_sym: [5x4x8 double] chd_sym: [5x4x8 double] dcdi_sym: [10x5x4x8 double]

接下来,准备DATCOM查找表。

DATCOM查找表可能缺少值,因为表只填充了整个列的一个值。

这个缺失的数据在查找表中以99999的值表示,可以使用fillmissing的“前一个”方法来填充。

在这个例子中, C y β C n β C 江西 , C mq 缺失的数据。

skyHoggData。中青文= fillmissing (skyHoggData.cyb,“以前”“MissingLocations”, skyHoggData。的地方= = 99999);skyHoggData.cnb = fillmissing (skyHoggData.cnb,“以前”“MissingLocations”, skyHoggData.cnb == 99999);skyHoggData。clq = fillmissing (skyHoggData.clq,“以前”“MissingLocations”, skyHoggData。clq = = 99999);skyHoggData。cmq =, fillmissing (skyHoggData.cmq“以前”“MissingLocations”, skyHoggData。cmq = =, 99999);

填补了缺失的数据后,就可以建造固定翼飞机了。

首先,固定翼飞机要准备好所需的飞机名称。

还可以通过传递一个空的固定翼对象,从DATCOM结构上的“case”字段提取飞机名称。

skyHogg = Aero.FixedWing ();skyHogg.Properties.Name =“Sky_Hogg”;skyHogg。DegreesOfFreedom =“3自由度”;[skyHogg, cruiseState] = datcomToFixedWing(skyHogg, skyHoggData);

datcomToFixedWing将从datcom结构转换到固定翼对象及其状态的所有兼容数据。然而,返回状态仍然需要处理,以获得所需的飞机初始条件。

在这个例子中,环境、质量、惯性、空速和压力中心都需要调整。

h = 2000;cruiseState。AltitudeMSL = h;cruiseState。环境= aircraftEnvironment (skyHogg,“是”、h);cruiseState。U = 169.42;cruiseState。质量= 1299.214;cruisestate . inerti . variables = [5787.969 0 117.64;0 6928.93 0;-117.64 0 11578.329];cruiseState。CenterOfPressure = [0.183, 0, 0];

计算静态稳定性

执行静态稳定性分析有助于确定系统的动态稳定性,而无需计算系统的动态响应。

(skyHogg, cruiseState)
稳定=6×8表U V WαβP Q R  ________ _________ ________ ________ _________ _________ ________ _________ 外汇“稳定 " "" "" "" "" "" "" "" “财政年度”“中立 " "" "" "" "" "" "" FZ”“”“”稳定 " "" "" "" "" "" L  "" "" "" "" " 中性”“中性”““““M”稳定稳定”“”“”“”“”“”“稳定”““N  "" "" "" "" " 中性”“”“”“中性”

在静稳定力和力矩、前向和垂直速度扰动以及攻角扰动的情况下,系统的动态稳定性在前向和垂直速度扰动时趋于振荡稳态。

要验证此行为,请使用Control System Toolbox™。

线性化固定翼飞机

要使用控制系统工具箱™中的工具,请围绕一个状态将飞机线性化。

这是通过使用线性化方法与以前相同的巡航状态。

linSys = linearize(skyHogg, cruiseState)
linSys = = XN XD U W问XN 0 0 1 0 0 XD 0 0 0 1 0 U 0 1.319 e-06 -0.001714 - -0.0007608 0 W 0 0 -0.002705 -0.3319 2.557 Q 0 0 0.03443 -1.19 -24.84 -2.586θ0 0 0 0 1θXN e-07 XD -2.957 U -0.5617 W -4.867 e-08问θ0 B =δXN 0 XD U -0.0004314 W -0.02084 Q -2.239θ0 C = XN XD U W QθXN 1 0 0 0 0 0 XD 0 1 0 0 0 0 0 0 1 0 00 W 0 0 0 1 0 0 Q 0 0 0 0 1 0 Theta 0 0 0 0 0 1 D = Delta XN 0 XD 0 U 0 W 0 Q 0 Theta 0 Continuous-time state-space model.

用动态响应验证静态稳定性

通过构建线性状态空间模型,可以绘制系统的动态行为。

为了验证系统的静态稳定性结果与系统的动态行为,根据初始条件绘制状态空间模型。

为了在系统中引起扰动,在电梯信号中增加一个5度的步长,持续1秒。

x0 = getState(cruiseState, linSys.OutputName);T = linspace(0,50,500);u = 0(大小(t));U (t > 1 & t < 2) = 5;lsim (linSys, u, t, x0)

图中包含6个轴对象。坐标轴对象1包含2个类型为line的对象。这些对象代表驱动输入,linSys。axis对象2包含2个类型为line的对象。这些对象代表驱动输入,linSys。坐标轴对象3包含2个类型为line的对象。这些对象代表驱动输入,linSys。axis对象4包含2个类型为line的对象。这些对象代表驱动输入,linSys。axis对象5包含2个类型为line的对象。 These objects represent Driving inputs, linSys. Axes object 6 contains 2 objects of type line. These objects represent Driving inputs, linSys.

正如静态稳定性分析的预期,空速和俯仰率是稳定的,当响应一个小扰动在电梯。

隔离电梯-俯仰响应

除了静态稳定性验证之外,将控制面与它们预期的动态响应隔离开来,可以帮助设计特定于单个面的控制器。

在这种情况下,只有一个控制面,电梯。

电梯控制飞机的俯仰响应。为了显示一个俯仰响应,隔离电梯输入的俯仰角度到电梯传递函数。

linSysElevatorTF =特遣部队(linSys (6,1))
从输入“δ”输出linSysElevatorTF =“θ”:-2.239 s ^ 3 - 0.7221 s ^ 2 - 0.001232 - 8.935 e-09  ----------------------------------------------------------------- ^ 5 + 25.17年代^ 4 + 11.33 s ^ 3 + 0.0387 s ^ 2 + 0.008227 + 5.712 e-08连续时间传递函数。
步骤(linSysElevatorTF)

图中包含一个轴对象。标题为From: Delta To: Theta的轴对象包含一个类型为line的对象。这个对象表示linSysElevatorTF。

由阶跃图可以看出,电梯输入的俯仰响应具有不理想的振荡特性和较大的稳态误差。

通过在电梯输入端加入PID反馈控制器,可以获得更理想的俯仰响应。

C = pidtune (linSysElevatorTF“PID”
C = 1 Ki *——s with Ki = -0.000596连续时间I-only控制器。
(linSysElevatorTF * C, 1)
“θ”elevatorFeedback =从输入到输出:0.001335 s ^ 3 + 0.0004304 s ^ 2 + 7.346 e-07 e-12 s + 5.327  ------------------------------------------------------------------------ ^ 6 + 25.17年代^ 5 + 11.33 s ^ 4 + 0.04004 s ^ 3 + 0.008657 s ^ 2 + 7.917 e-07 s + 5.327 e-12连续时间传递函数。
步骤(elevatorFeedback)

图中包含一个轴对象。标题为From: In(1) To: Theta的轴对象包含一个类型为line的对象。这个对象表示elevatorFeedback。

相关的话题