-
Notifications
You must be signed in to change notification settings - Fork 0
/
flight_details.m
84 lines (68 loc) · 2.13 KB
/
flight_details.m
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
addpath('includes');
angle = 70; % Óãîë âûëåòà â ãðàäóñàõ
speed = 45; % Ñêîðîñòü â êì/÷ ó îñíîâàíèÿ òðàìïëèíà
centerHeigt = 1; % Âûñîòà öåíòðà òÿæåñòè îò ïîêðûòèÿ
rampHeight = 2; % Âûñîòà êðîìêè âûëåòà íàä îñíîâàíèåì, ãäå èçìåðÿëè ñêîðîñòü. ìåòðû
lastX = 1000; % Ïîñëå ýòîé äèñòàíöèè ìîäåëü îñòàíàâëèâàåòñÿ
lastY = -1; % Íèæå ýòîé âûñîòû ìîäåëü îñòàíàâëèâàåòñÿ
aerodynamic = aerodynamic_coefficient();
G = 9.807;
angle = angle*pi/180;
speed = speed/3.6;
speed = sqrt(speed^2-2*G*rampHeight); % Ïàäåíèå ñêîðîñòè íà òðàìïëèíå
res = sim('flight_model'); % Çàïóñê ìîäåëè
Xs = res.X.Data;
Ys = res.Y.Data;
realXs = res.realX.Data;
realYs = res.realY.Data;
speeds = res.speed.Data;
t = tiledlayout(3,4); % Äàëåå îòðèñîâêà ãðàôèêîâ
t.TileSpacing = 'compact';
t.Padding = 'compact';
nexttile(2,[2 3]);
plot(Xs,Ys,'b:');
hold on
plot(realXs,realYs,'b-')
axis image
% çäåñü äåëàþ padding äëÿ ãðàôèêà
rangeX = max(max(Xs),max(realXs)) - min(min(Xs),min(realXs));
rangeY = max(max(Ys),max(realYs)) - min(min(Ys),min(realYs));
padding = max(rangeX,rangeY)*0.07;
yl = ylim();
xl = xlim();
xl = [xl(1)-padding,xl(2)+padding];
ylim([yl(1)-padding,yl(2)+padding]);
xlim(xl);
legend({'Öåíòð òÿæåñòè','Ïîäîøâà'},'Location','northeast')
xlabel('Äèñòàíöèÿ(ì)')
ylabel('Âûñîòà(ì)')
hold off
title('Ãåîìåòðèÿ ïîë¸òà');
speeds = speeds*3.6; % ïåðåâîäèì â êì/÷
nexttile(10,[1 3])
yyaxis left
plot(Xs,speeds);
rangeY = max(max(speeds),max(speeds)) - min(min(speeds),min(speeds));
padding = rangeY*0.07;
yl = ylim();
yl = [yl(1)-padding,yl(2)+padding];
ylim(yl);
xlim(xl);
xlabel('Äèñòàíöèÿ(ì)')
ylabel('Ñêîðîñòü(êì/÷)')
yyaxis right
hold on
plot(Xs,res.tout);
hold off
ylabel('Âðåìÿ(ñåê)')
title('Ïàðàìåòðû ïîë¸òà');
legend({'Ñêîðîñòü','Âðåìÿ'},'Location','southeast')
nexttile(9)
Ys = linspace(yl(1),yl(2),50);
Xs = ((Ys/3.6).^2)/(2*G);
plot(Xs,Ys);
ylim(yl);
xlim([min(Xs),max(Xs)]);
xlabel('Âûñîòà(ì)')
ylabel('Ñêîðîñòü(êì/÷)')
title('Ýêâèâàëåíòíàÿ âûñîòà');