无法执行任务,因为左边的大小是1×1和右边的大小是1 -到- 79201。

1视图(30天)
嗨。首先很抱歉问同一个问题一次又一次的但是我真的接近解决方案(可能没有)。我有两个问题。
1)这段代码试图解决6常微分方程与6状态变量(水平位置(x1和x2),高度(x3),真正的空速(x4),航向角(x5)和飞机的质量(x6)]和3控制输入(发动机推力(u1)、银行角度(u2)和飞行路线角(u3)]用欧拉方法。不同的飞行动作执行指定的时间间隔。
速度。米,Cruise_Vel。米,Des_Vel。米,Thr_cl。米,Thr_cr。米,Thr_des。米,fuel_cl。米,fuel_cr。m, fuel_des.m、den.m den_cr.m、den_des.m drag.m, drag_cr.m, drag_des.m, lift.m, lift_cr.m lift_des。m是功能分离选项卡。主文件中的代码(Flight.m)是:
%从h1 = 1100 [m] h2与α= 5 = 1600 [m]飞行路线角。
%为t = 60分钟执行巡航飞行。
%与β= 30银行角度,直到转航向由η= 270◦改变。
从h2 = 1600 [m] %下降h1和ζ= 4 = 1100 [m]◦飞行路线角。
%完成360◦在水平飞行(徘徊)转。
%下降和κh3 = 800 [m] = 4.5◦飞行路线角。
%飞机属性
W = .44225E + 06;% .44225E + 3吨= .44225E + 6公斤
S = .51097E + 03;%的表面积(m ^ 2)
g0 = 9.80665;%重力加速度(m / s2)
x6 = W;
%使用数值方法求解一阶的颂歌
t0 = 0;
往往= 3960;
h = 0.05;
N = (tend-t0) / h;
t = t0: h:一般;
x = 0(6、长度(t));
%初始条件
x (: 1) = (0, 0, 3608.92; 1.0 e + 2 * 1.161544478045788; 0; W);
我= 2:长度(t)
如果和(x(3张)> 3608.92 x(3张)< = 5249.3)%从h1 = 1100 [m] h2与α= 5 = 1600 [m]飞行路线角。
t = 0:60;
x4 =速度(3608.9:5249.3);%改变速度(米/秒)
x5 = 0;%改变头部角(度)
f = fuel_cl (3608.9:5249.3);%改变燃料流量(公斤/分钟)
:5249.3 u1 = Thr_cl (3608.9);%改变推力[N]
u2 = 0;%改变银行角度(度)
u3 = 5;%改变飞行路线角(度)
V_ver = x4 * sin (u3);%改变垂直速度(米/秒)
重金属镉=阻力(3608.9:5249.3,x4);%改变阻力系数
Cl =提升(3608.9:5249.3,x4);%改变升力系数
p =窝(3608.9:5249.3);%改变密度(公斤/立方米)
elseif和(x(3张)> 5249.3 x(3张)< = 5249.3)%为t = 60分钟执行巡航飞行。
t = 60:3660
x4 = Cruise_Vel (5249.3);%改变速度(米/秒)
x5 = 0;%改变头部角(度)
f = fuel_cr (5249.3);%改变燃料流量(公斤/分钟)
u1 = Thr_cr (5249.3);%改变推力[N]
u2 = 0;%改变银行角度(度)
u3 = 0;%改变飞行路线角(度)
V_ver = x4 * sin (u3);%改变垂直速度(米/秒)
5249.3重金属镉= drag_cr (x4);%改变阻力系数
Cl = lift_cr (5249.3, x4);%改变升力系数
p = den_cr (5249.3);%改变密度(公斤/立方米)
结束
%与β= 30银行角度,直到转航向由η= 270◦改变。
t = 3660:3720
x4 = Cruise_Vel (5249.3);%改变速度(米/秒)
x5 = 0:30:270;%改变头部角(度)
f = fuel_cr (5249.3);%改变燃料流量(公斤/分钟)
u1 = Thr_cr (5249.3);%改变推力[N]
u2 = 30;%改变银行角度(度)
u3 = 0;%改变飞行路线角(度)
V_ver = x4 * sin (u3);%改变垂直速度(米/秒)
5249.3重金属镉= drag_cr (x4);%改变阻力系数
Cl = lift_cr (5249.3, x4);%改变升力系数
p = den_cr (5249.3);%改变密度(公斤/立方米)
结束
elseif和(x(3张)< 5249.3 x(3张)> = 3608.9)从h2 = 1600 [m] %下降h1和ζ= 4 = 1100 [m]◦飞行路线角。
t = 3720:3780;
x4 = Des_Vel (5249.3, 3608.9);%改变速度(米/秒)
x5 = 270;%改变头部角(度)
f = fuel_des (5249.3, 3608.9);%改变燃料流量(公斤/分钟)
u1 = Thr_des (5249.3, 3608.9);%改变推力[N]
u2 = 0;%改变银行角度(度)
u3 = 4;%改变飞行路线角(度)
V_ver = x4 * sin (u3);%改变垂直速度(米/秒)
重金属镉= drag_des (5249.3, 3608.9, x4);%改变阻力系数
Cl = lift_des (5249.3, 3608.9, x4);%改变升力系数
p = den_des (5249.3, 3608.9);%改变密度(公斤/立方米)
elseif和(x(3张)< 3608.9 x(3张)> = 3608.9)%完成360◦在水平飞行(徘徊)转。
t = 3780:3900;
x4 = Cruise_Vel (3608.9);%改变速度(米/秒)
朗= (60 120 180 240 270 270 300 360);
x5 = wrapTo360(朗);%改变头部角(度)
f = fuel_cr (3608.9);%改变燃料流量(公斤/分钟)
u1 = Thr_cr (3608.9);%改变推力[N]
u2 = 0;%改变银行角度(度)
u3 = 0;%改变飞行路线角(度)
V_ver = x4 * sin (u3);%改变垂直速度(米/秒)
3608.9重金属镉= drag_cr (x4);%改变阻力系数
Cl = lift_cr (3608.9, x4);%改变升力系数
p = den_cr (3608.9);%改变密度(公斤/立方米)
elseif和(x(3张)< 3608.9 x(3张)> = 2624.67)%下降和κh3 = 800 [m] = 4.5◦飞行路线角。
t = 3900:3960;
x4 = Des_Vel (3608.9, 2624.67);%改变速度(米/秒)
x5 = 270;%改变头部角(度)
f = fuel_des (3608.9, 2624.67);%改变燃料流量(公斤/分钟)
u1 = Thr_des (3608.9, 2624.67);%改变推力[N]
u2 = 0;%改变银行角度(度)
u3 = 4.5;%改变飞行路线角(度)
V_ver = x4 * sin (u3);%改变垂直速度(米/秒)
重金属镉= drag_des (3608.9, 2624.67, x4);%改变阻力系数
Cl = lift_des (3608.9, 2624.67, x4);%改变升力系数
p = den_des (3608.9, 2624.67);%改变密度(公斤/立方米)
其他的
流(“一个问题发生。”);
结束
dx1dt = x4。* cos (x5)。* cos (u3);
dx2dt = x4。* sin (x5)。* cos (u3);
dx3dt = x4。* sin (u3);
dx4dt =重金属镉。* * p。* (x4 ^ 2)。/ (2。* x6) g0。* sin (u3) + u1. / x6;
dx5dt = cl。* * p。* x4. / (2 * x6)。*罪(u2);
dx6dt = - f;
(我)= x(1张)+ h * dx1dt;% % %线136% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
(我)= x(2张)+ h * dx2dt;
(我)= x(3张)+ h * dx3dt;
(我)= x(4张)+ h * dx4dt;
(我)= x(5张)+ h * dx5dt;
我x(6日)= x(6张)+ h * dx6dt;
结束
合计= cell2mat (f);%的总燃料消耗量在任务(公斤/分钟)
Tot_fuel =金额(合计);
图(1)
plot3 (x1 (:), x2 (:), x3 (:));% 3 d图形位置
图(2)
情节(t, x4 (:));% vta−时间图
图(3)
情节(t, V_ver (:));% V_vertical−时间图
图(4)
情节(t, x5 (:));%标题−时间图
图(5)
情节(t, x6 (:));%质量−时间图
图(6)
情节(t, u1 (:));%推力−时间图
图(7)
情节(t, u2 (:));%的倾斜角−时间图
图(8)
情节(t, u3 (:));%飞行路线角−时间图
流(在任务是%的总燃料消耗量。2 f(公斤),Tot_fuel * / 60);
我得到这个错误:
不能执行任务,因为左边的大小是1×1和右边的大小是1 -到- 79201。
错误在飞行中(第136行)
(我)= x(1张)+ h * dx1dt;
dx1dt 1 -到- 79201人。是因为我提到的函数的输出长度在分离标签linspace (H1, H2, 79201) ?如果是我应该焊割,如果没有我该怎么办?的长度是79201 t。在我之前面对数组大小的问题。我有更好的建议持开放态度。
2)与这些线我试图状态高度[x(3张)]保持不变:
elseif和(x(3张)> 5249.3 x(3张)< = 5249.3)%为t = 60分钟执行巡航飞行。
和国家下降:
elseif和(x(3张)< 3608.9 x(3张)> = 2624.67)%下降和κh3 = 800 [m] = 4.5◦飞行路线角。
他们是正确的吗?如果没有,你能提供修正后的版本吗?
谢谢。
3评论
Torsten
Torsten 2022年1月3日
编辑:Torsten 2022年1月3日
我的意思是:
而不是设置
H_climb = linspace (H1, H2, 79201);
在“速度”,简单地设置
H_climb = x3
x3高度是你的解决方案在时间t(张)(因此 一个单一的值 )。
这将返回 一个单一的值 x4。
相同的其他推导模型变量x5, f, u1, u2, u3,重金属镉、Cl和p。

登录置评。

答案(0)

类别

找到更多的在制导、导航和控制(GNC)帮助中心文件交换

s manbetx 845


释放

R2021a

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!