我尝试在重力作用下获得四轴飞行器垂直运动的状态空间模型。
我无法模拟重力的影响。为此,我尝试将矩阵K添加到我的状态空间模型中,但没有成功。如果我使用的话没有区别:
sys = idss(A,B,C,D,K,x0,timestep)
或
sys = ss(A,B,C,D,timestep)
结果相同。有代码:
clear all
timestep = 0.002;
m = 0.0027;
g = 9.81;
T_hover = 20000;
Kt = g*m/T_hover;
A = [1 timestep ; 0 1];
B = [+(Kt/m)*(timestep^2)/2 ; +(Kt/m)*timestep];
K = [ -(g)*(timestep^2)/2 ; -(g)*timestep];
C = [1 0];
D = [0];
x0 = [0; 0];
sys = idss(A,B,C,D,K,x0,timestep)
length = 2000;
inputm = zeros(length,1);
inputm(300:500) = 25000;
t = 0:timestep:(length-1)*timestep;
[y_m,t_m,x_m] = lsim(sys,inputm,t,x0);
subplot(2,1,1);
plot(inputm);
title('input thrust');
ylim([-1000 26000]);
subplot(2,1,2);
plot(x_m);
legend('coordinate','speed');
也许我错过了一些明显的东西,请给我建议。