MPC控制带有不稳定杆的飞机
此示例显示了如何使用MPC控制器控制具有饱和执行器的不稳定飞机。
有关使用明确的MPC控制器控制同一植物的示例,请参见明确的MPC控制飞机具有不稳定的杆子。
定义飞机型号
以下线性时间不变模型来自飞机在3000英尺高的高度和0.6马赫的速度[1]的纵向动力学的线性化。开环模型具有以下状态空间矩阵:
a = [-0.0151 -60.5651 0 -32.174;-0.0001 -1.3411 0.9929 0;0.00018 43.2541 -0.86939 0;0 0 1 0];b = [-2.516 -13.136;-0.1689 -0.2514;-17.251 -1.5766;0 0];C = [0 1 0 0;0 0 0 1]; D = [0 0; 0 0];
The inputs, states and outputs of the linear model represent deviations from their respective nominal values at the nonlinear model operating point.
Here, the state variables are:
正向速度(ft/sec)
attack angle (deg)
音高率(DEG/sec)
pitch angle (deg)
The manipulated variables are the elevator and flaperon angles, in degrees. The attack and pitch angles are measured outputs to be regulated.
创建工厂,并将初始状态指定为零。
植物= ss(a,b,c,d);x0 =零(4,1);
The open-loop system is unstable.
潮湿(植物)
杆阻尼频率时间常数(RAD/秒)(秒)-7.50E-03 + 5.56E-02I 1.34E-01 5.61E-02 1.33E + 02 -7.50E-03-5.56E-03-5.56E-02I 1.34E-01 5.61 5.61 5.61E -02 1.33E+02 5.45E+00 -1.00E+00 5.45E+00 -1.83E -01 -7.66E+00 1.00E+00+00 7.66E+00 1.30E 1.30E -01
指定控制器约束
两个操纵变量都在+/- 25度之间约束。使用比例因素促进MPC调整。比例因素的典型选择是操作范围的上限/下限。
mv = struct(',{-25,-25},'最大限度',{25,25},'比例因子',{50,50});
指定植物产出的比例因子。
ov = struct('比例因子',{60,60});
Specify Controller Tuning Weights
控制任务是要获得分段恒定参考的零偏移,同时避免由于输入饱和而引起不稳定。由于MV和OV变量均已在MPC控制器中缩放,因此MPC权重无量纲,并应用于缩放的MV和OV值。在此示例中,通过指定比音高角度的重量大的重量来强调跟踪攻击角度。
权重= struct('MV',[0 0],“ mvrate',[0.1 0.1],'OV',[200 10]);
创建MPC控制器
创建一个MPC控制器与指定的工厂model, a sample time of 0.05 sec. (20 Hz), a prediction horizon of 10 steps, a control horizon of 2 steps, and the previously specified weights, constraints and scale factors.
MPCOBJ = MPC(植物,0.05,10,2,重量,MV,OV);
计算闭环直流增益矩阵
Calculate the steady state output sensitivity of the closed loop. A zero value means that the measured plant output can track the desired output reference setpoint.
cloffset(mpcobj)
- >将模型转换为离散时间。- >假设添加到测量的输出通道#1中的输出干扰是集成的白噪声。- >假设添加到测量的输出通道#2中的输出干扰是集成的白噪声。- >“ model.noise”属性为空。假设每个测得的输出上都有白噪声。ANS = 1.0E -11 * -0.0088 0.0013 0.2372 0.0051
使用Simulink®模拟金宝app
使用si金宝appmulink分别在攻击和俯仰角的参考信号上模拟闭环响应,分别为0.1度和2度。
Open the Simulink model and set theMPC控制器财产为MPCobj
。对于此示例,已经设置了属性。
mdl ='mpc_aircraft'; open_system(mdl)
使用Simulink从命令行模拟系统金宝appSIM
命令。
SIM(MDL)
打开显示操纵变量和飞机输出响应的范围
open_system('mpc_aircraft/MV')open_system(“ mpc_aircraft/攻击角响应”)open_system('mpc_aircraft/俯仰角响应')
不出所料,闭环响应显示了两个通道的良好设定值跟踪性能。
References
[1] P. Kapasouris,M。Athans和G. Stein,“针对具有饱和执行器的不稳定植物的反馈控制系统的设计”,Proc。IFAC SEMMP。关于非线性控制系统设计,Pergamon出版社,第302--307页,1990年
[2] A. Bemporad, A. Casavola, and E. Mosca, "Nonlinear control of constrained linear systems via predictive reference management",IEEE®trans。自动控制, vol. AC-42, no. 3, pp. 340-349, 1997.
bdclose(mdl)