弹体配平和线性化
此示例说明如何使用 Simulink® Control Design™ 来配平和线性化弹体。
使用传统方法设计自动驾驶仪时,必须针对大量配平飞行条件建立弹体俯仰动态的线性模型。MATLAB® 可以确定配平条件,并直接从非线性 Simulink® 和 Aerospace Blockset™ 模型中推导线性状态空间模型。这既节省时间,又有助于验证模型。您可以通过 Simulink Control Design 提供的函数使用开环频率(或时间)响应可视化弹体的行为。
初始化制导模型
第一个问题是找到升降舵偏转角,以及由此生成的配平弹体速率 (q),当导弹以设定速度飞行时,这将生成给定的入射角值。一旦找到配平条件,就可以推导配平条件周围状态的扰动动态的线性模型。
open_system('AirframeTrim');

定义状态值
hInitial = 10000/m2ft; % Trim Height [m] MInitial = 3; % Trim Mach Number alphaInitial = -10*d2r; % Trim Incidence [rad] thetaInitial = 0*d2r; % Trim Flightpath Angle [rad] vInitial = MInitial*(340+(295-340)*hInitial/11000); % Total Velocity [m/s] qInitial = 0; % Initial pitch Body Rate [rad/sec]
设置工作点和状态设定
第一个状态设定是位置状态,第二个状态设定是 theta。两者均已知,但未处于稳态。第三个状态设定是弹体轴角速度,其变量 w 处于稳态。
opspec = operspec('AirframeTrim');
opspec.States(1).Known = [1;1];
opspec.States(1).SteadyState = [0;0];
opspec.States(2).Known = 1;
opspec.States(2).SteadyState = 0;
opspec.States(3).Known = [1 1];
opspec.States(3).SteadyState = [0 1];
搜索工作点,设置 I/O,然后线性化
op = findop('AirframeTrim',opspec); io(1) = linio('AirframeTrim/Fin Deflection',1,'input'); io(2) = linio('AirframeTrim/Selector',1,'output'); io(3) = linio(sprintf(['AirframeTrim/Aerodynamics &\n', ... 'Equations of Motion']),3,'output'); sys = linearize('AirframeTrim',op,io);
Operating point search report:
---------------------------------
opreport =
Operating point search report for the Model AirframeTrim.
(Time-Varying Components Evaluated at time t=0)
Operating point specifications were successfully met.
States:
----------
Min x Max dxMin dx dxMax
__________ __________ __________ __________ __________ __________
(1.) AirframeTrim/Aerodynamics & Equations of Motion/3DOF (Body Axes)/Position
0 0 0 -Inf 967.6649 Inf
-3047.9999 -3047.9999 -3047.9999 -Inf -170.6254 Inf
(2.) AirframeTrim/Aerodynamics & Equations of Motion/3DOF (Body Axes)/Theta
0 0 0 -Inf -0.21604 Inf
(3.) AirframeTrim/Aerodynamics & Equations of Motion/3DOF (Body Axes)/U,w
967.6649 967.6649 967.6649 -Inf -14.0977 Inf
-170.6254 -170.6254 -170.6254 0 -7.439e-08 0
(4.) AirframeTrim/Aerodynamics & Equations of Motion/3DOF (Body Axes)/q
-Inf -0.21604 Inf 0 3.3582e-08 0
Inputs:
----------
Min u Max
_______ _______ _______
(1.) AirframeTrim/Fin Deflection
-Inf 0.13615 Inf
Outputs:
----------
Min y Max
__________ __________ __________
(1.) AirframeTrim/q
-Inf -0.21604 Inf
(2.) AirframeTrim/Az
-Inf -7.439e-08 Inf
选择配平状态,创建 LTI 对象,并绘制波特响应
airframe = ss(sys.A(3:4,3:4),sys.B(3:4,:),sys.C(:,3:4),sys.D); set(airframe,'inputname',{'Elevator'}, ... 'outputname',[{'az'} {'q'}]); ltiview('bode',airframe); bdclose('AirframeTrim');


另请参阅
主题
- Aerospace Blockset
- Create Aerospace Models (Aerospace Blockset)