飞机纵向运动线性化方程过渡曲线matlab
时间: 2023-09-25 07:13:19 浏览: 211
飞机纵向运动方程可以表示为:
m * q_dot_dot = -m * g * sin(theta) - C_L * 0.5 * rho * V^2 * S - C_D * 0.5 * rho * V^2 * S * sign(V) + T
其中,m是飞机的质量,q_dot_dot是飞机的俯仰角加速度,g是重力加速度,theta是飞机的俯仰角,C_L是升力系数,rho是空气密度,V是飞机的速度,S是机翼面积,C_D是阻力系数,sign(V)是速度的符号函数(即当V>0时为1,当V<0时为-1),T是推力。
为了进行方程的线性化,我们需要对方程进行泰勒展开,并保留一阶项(即舍去高阶项)。假设当前状态为q1, q2, q3, q4, q5, q6,对应的状态变量分别为:
q1: 飞机的俯仰角
q2: 飞机的俯仰角速度
q3: 飞机的速度
q4: 飞机的高度
q5: 发动机推力
q6: 大气密度
则可以将飞机纵向运动方程表示为:
q1_dot = q2
q2_dot = (-m*g*cos(q1) - 0.5*rho*q3^2*S*C_L - 0.5*rho*q3^2*S*C_D*sign(q3))/m
q3_dot = -q3*1.0/q4*(0.5*rho*q3^2*S*(C_L*cos(q1)-C_D*sin(q1))+q5-m*g*sin(q1))
q4_dot = -q3*sin(q1)
q5_dot = 0
q6_dot = 0
其中,q1_dot表示飞机的俯仰角速度,q2_dot表示飞机的俯仰角加速度,q3_dot表示飞机的速度变化率,q4_dot表示飞机高度的变化率,q5_dot表示发动机推力的变化率,q6_dot表示大气密度的变化率。
将上述方程用matlab代码表示为:
function [dqdt] = linearized_equations(t,q)
% 参数定义
m = 10000; % 飞机质量
S = 50; % 机翼面积
g = 9.8; % 重力加速度
rho = 1.225; % 大气密度
C_L = 1.2; % 升力系数
C_D = 0.04; % 阻力系数
q5 = 50000; % 发动机推力
% 状态变量
q1 = q(1); % 飞机的俯仰角
q2 = q(2); % 飞机的俯仰角速度
q3 = q(3); % 飞机的速度
q4 = q(4); % 飞机的高度
q6 = q(6); % 大气密度
% 方程
dqdt = zeros(6,1);
dqdt(1) = q2;
dqdt(2) = (-m*g*cos(q1) - 0.5*rho*q3^2*S*C_L - 0.5*rho*q3^2*S*C_D*sign(q3))/m;
dqdt(3) = -q3*1.0/q4*(0.5*rho*q3^2*S*(C_L*cos(q1)-C_D*sin(q1))+q5-m*g*sin(q1));
dqdt(4) = -q3*sin(q1);
dqdt(5) = 0;
dqdt(6) = 0;
end
其中,t是时间变量,q为状态变量,dqdt为状态变量的导数。可以使用ode45函数对该方程进行求解。
阅读全文