Sunteți pe pagina 1din 165

APPENDICE

Progetto di Costruzioni Aeronautiche

PROGRAMMI MATLAB
C01
C02
C03
C04
C05
C06
C07
C08
C09
C10
C11
C12
C13

WTO Preliminare
Alta velocit
Verifiche configurazioni
Analisi dei costi
Forma in pianta
Grafico decollo
Progetto ipersostentatori
Centraggio
Flessibilit
Polare
Analisi dei carichi
Pannello dorsale
Pannello ventrale

Progetto di Costruzioni Aeronautiche

C01

Progetto di Costruzioni Aeronautiche

07/07/06 1.49

C:\Documents and Settings\dedde\Desktop\MA...\Wto_preliminare0.m

1 of 4

1 % VALUTAZIONE PRELIMINARE DEL PESO AL DECOLLO


2 % ===========================================
3 % In questo programma si esegue una stima preliminare del massimo peso al
4 % decollo del velivolo in accordo con la procedura di prima approssimazione
5 % illustrata nel Capitolo 3 di "Airccraft design: a conceptual approach"
6 % di D.P.Raymer
7
8 %clear all
9 %clc
10
11 % FATTORI DI CONVERSIONE UNITA' DI MISURA
12
% 1 ft = 0.3048 m
13
% 1 n.m. = 1852 m
14
% 1 lb = 0.45359237 kg
15
16 % SCALATURA DELLA FUSOLIERA DI RIFERIMENTO
17 load('scalatura_fusoliera','VsBULK_cargo')
% volume occupato dalle merci [m]
18
19 % ----20 % DATI:
21 % ----22
% 1. SPECIFICA DI PROGETTO
23
% CARICO PAGANTE
24
% numero passeggeri in classe unica
25
% MISSIONE DI PROGETTO
26
% 1. Missione Ordinaria
27
% Crociera di missione
28
% tratta di progetto [m]
29
% numero di step in cui divissa la tratta
30
% altezza dello step [m]
31
% 1 quota di crociera [m]
32
% 2 quota di crociera [m]
% quota di crociera media [m]
33
34
a_cr = atmosfera(Hcr,'a'
% velocit del suono alla quota di crociera
media [m/s]
35
% 2. Riserve
36
% Riserve (trip fuel)
37
% rispetto al carburante totale necessario
per effettuare la missione ordinaria
38
% Crociera di diversione
39
% numero di mach
40
% tratta di diversione [m]
41
% quota crociera di diversione [m]
42
a_div = atmosfera(Hdiv,'a'
% velocit del suono alla quota di crociera
di diversione [m/s]
43
% Attesa di diversione
44
% durata attesa di diversione [s]
45
% quota attesa diversione [m]
46
47
% 2. AEA
48
% peso 1 passeggero [kg]
49
% peso 1 bagaglio [kg]
50
% densit merci esterne ai container
[kg/m]
51
% numero componenti equipaggio
52
% peso membro equipaggio (incluso bagaglio
a mano ed equipaggiamento) [kg]
53

07/07/06 1.49
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
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111

C:\Documents and Settings\dedde\Desktop\MA...\Wto_preliminare0.m

2 of 4

% 3. STIME AERODINAMICHE PRELIMINARI


% Rapporto tra la superficie bagnata totale e la superficie di riferimento
% da dati statistici
% Coefficiente di attrito medio
% Coefficiente di Oswald

% 4. PARAMETRI STATISTICI PER IL CALCOLO DEL PESO A VUOTO

% angolo di freccia costante


%
%
%
%

----------------------------------CALCOLO DEL PESO DEL CARICO PAGANTE


----------------------------------PASSEGGERI
% peso totale passeggeri [kg]

% BAGAGLI
Wbag = Np*wbag
% MERCI
Wcargo = VsBULK_cargo*roBULK_cargo

% peso totale bagagli [kg]


% peso totale merci

[kg]

% VOLUME LIMITED PAYLOAD [kg]


Wvlp = Wp + Wbag + Wcargo
% PESO DEL CARICO PAGANTE [kg]

%
%
%
%

-------------------------CALCOLO DEL PESO OPERATIVO


-------------------------EQUIPAGGIO (CREW)
% peso totale equipaggio [kg]

% CONTAINER
% non si trasportano container
% PESO OPERATIVO [kg]

%
%
%
%

------------------------------------------------------------------------CALCOLO DELLE FRAZIONI DI PESO DEI SEGMENTI DI MISSIONE (valori "storici")


------------------------------------------------------------------------1. TRATTA
% Decollo
% Salita
% Discesa e Atterraggio

% 2. DIVERSIONE
% Salita
% Discesa

% -----------------------------------------------------------% SCELTA DEI PARAMETRI DI PROGETTO (dati aereo di riferimento)


% ------------------------------------------------------------

07/07/06 1.49

C:\Documents and Settings\dedde\Desktop\MA...\Wto_preliminare0.m

3 of 4

112 % Numero di Mach di crociera


113
114 % Allungamento alare
115
116
117 fprintf('\n'
118 fprintf('\n'
119 disp('3. VALUAZIONE PRELIMINARE DEL PESO AL DECOLLO'
120 fprintf('\n'
121 disp(['Wpayload = ' num2str(Wpayload,5) ' kg'
122 fprintf('\n'
123 disp('Mcr
AR
Emax
Weo[kg]
Wf[kg]
Wto[kg]'
124
125 % ---------------------------------------------------------------------126 % PROCEDURA ITERATIVA PER LA VALUTAZIONE PRELIMINARE DEL PESO AL DECOLLO
127 % ---------------------------------------------------------------------128
129
130 for j1 = 1:length(Mcr)
131
132
for j2 = 1:length(AR)
133
134
% EFFICIENZA MASSIMA
135
136
137
138
% CALCOLO DELLE FRAZIONI DI CARBURANTE DEI RESTANTI SEGMENTI DI MISSIONE
139
% Crociera di missione: programma di volo di massima autonomia chilometrica
140
% efficienza in crociera
141
% SFC in crociera (dati aereo di
riferimento) [1/s]
142
% velocit di crociera [m/s]
% frazione di carburante
143
144
% Crociera di diversione: programma di volo di massima autonomia
chilometrica
145
% efficienza in crociera
146
% SFC in crociera (dati aereo di
riferimento) [1/s]
147
% velocit di crociera [m/s]
148
% frazione di carburante
149
% Attesa (Loiter) di diversione: programma di volo di massima autonomia
oraria
150
% efficienza durante l'attesa
151
% SFC in attesa (dati aereo di
riferimento) [1/s]
152
% frazione di carburante
153
154
% RAPPORTO PESO DI CORBURANTE / PESO AL DECOLLO
155
% Missione
156
157
% Riserva: margine sulla missione + riserva per la diversione
158
159
% Rapporto Peso di carburante / Peso al decollo
160
161
162
% PROCEDURA ITERATIVA PER IL CALCOLO DEL PESO AL DECOLLO
163
% contatore delle iterazioni
164

07/07/06 1.49

C:\Documents and Settings\dedde\Desktop\MA...\Wto_preliminare0.m

4 of 4

165
% valore iniziale peso al
decollo (dati aereo di riferimento) [kg]
166
while abs((Wto-Wtoi)/Wto) > 0.01
167
168
169
% PESO A VUOTO
170
% Rapporto Peso a vuoto / Peso
al decollo
171
% PESO AL DECOLLO
172
173
end
174
% peso a vuoto [kg]
175
176
% peso a vuoto operativo [kg]
177
% peso del combustibile [kg]
178
179
180
181
% PLOTTAGGIO RISULTATI
182
disp(sprintf('%0.2f %4.0f %7.1f %9.0f %9.0f %10.0f',[Mcr(j1) AR(j2) Emax Weo
183
end
184
185 end
186
187
188 save('Wto_preliminare', 'Wpayload','Wvlp','memo_Emax','memo_WTO')
189

07/07/06 1.50

C:\Documents and Settings\dedde\Desktop\MATLAB\1...\fusoliera0.m

1 of 5

1 % SCALATURA DELLA FUSOLIERA DI RIFERIMENTO


2 % ========================================
3 % In questo programma:
4 % 1) Si dimensiona la fusoliera del velivolo in base ai requisiti di
5 %
specifica (numero passeggeri), scalando le dimensioni della fusoliera
6 %
dell'aereo di riferimento (Airbus A320-200) di cui si mantengono
7 %
inalterate la sezione e le parti terminali (cockpit e cono di coda).
8 % 2) Si dimensiona il compartimento merci del velivolo stabilendo il
9 %
numero di container trasportabili, nonch la ripartizione
10 %
di bagagli e merce nelle stive.
11
12 clear all
13 clc
14
15 global scaltura_fusoliera
16
17 % Fattore di conversione inch/metri
18
% 1 in = 0,0254 m
19
20 % ---------------------------21 % 1. SCALATURA DELLA FUSOLIERA
22 % ---------------------------23
24 % CARATTERISTICHE FUSOLIERA AEREO DI RIFERIMENTO
25 % Dimensioni [m]
26
% lunghezza
27
% lunghezza cockpit
% lunghezza cono di coda
28
29
% larghezza
30
% altezza
31 % Allestimento cabina
32
% numero passeggeri in classe unica
% passo tra le file [m]
33
34
% numero sedili per fila
35
% numero file sedili
36
% lunghezza relativa alle file di sedili [m]
37
% lunghezza cabina [m]
38
39 % CARATTERISTICHE FUSOLIERA DEL VELIVOLO
40 % Allestimento cabina
41
% numero passeggeri in classe unica
42
% passo tra le file
43
% numero sedili per fila
44
% numero file sedili
% numero di posti eccedenti
45
46
% superficie totale minima da destinare alle
galleys [m]
47 % Dimensioni
48 % Dimensioni della sezione trasversale [m]
49
% larghezza
% altezza
50
51 % Scalatura lunghezza fusoliera [m]
52
% lunghezza relativa alle file di sedili
53
% riduzione lunghezza fusoliera riferimento
54
% lunghezza cabina
55
% lunghezza fusoliera
56
% lunghezza cockpit
57
% lunghezza cono di coda

07/07/06 1.50

C:\Documents and Settings\dedde\Desktop\MATLAB\1...\fusoliera0.m

2 of 5

58
% diametro equivalente fusoliera
59
% coefficiente cockpit
60
% coefficiente coda
61
62 % -----------------------------------------63 % 2. DIMENSIONAMENTO DEL COMPARTIMENTO MERCI
64 % -----------------------------------------65
66 % CARATTERISTICHE CONTAINER LD3/46
67 % Dimensioni [m]
68
% larghezza maggiore
% larghezza minore
69
70
% altezza maggiore
71
% altezza minore
72
% lunghezza
73 % Tangente angolo di inclinazione della base del container
74
75 % Area della sezione trasversale [m]
76
77 % Volume [m]
78
% volume esterno
% volume interno
79
80
81 % COMPARTMENTO MERCI AEREO DI RIFERIMENTO
82 % Dimensioni della sezione delle stive (escluso cono di coda) [m]
% larghezza maggiore
83
84
% larghezza minore
% altezza totale
85
86
% altezza minore
87 % Lunghezza delle stive [m]
88
% anteriore
89
% posteriore (parte a sez. costante)
% posteriore (cono di coda)
90
91
% posteriore totale
92
% totale (escluso cono di coda)
93 % Numero container trasportati nelle stive
94
% numero container LD3/46 nella stiva anteriore
95
% numero container LD3/46 nella stiva
posteriore
96
% numero container trasportabili
97 % Area della sezione trasversale delle stive (escluso cono di coda) [m]
98
99 % Volume delle stive [m]
100
% anteriore
% posteriore totale
101
102
% posteriore (parte a sez. costante)
103
% posteriore (cono di coda)
104
% totale (escluso cono di coda)
105
106 % COMPARTIMENTO MERCI DEL VELIVOLO
107 % Lunghezza delle stive [m]
108
% lunghezza totale stive nella parte a sez.
costante
109
% anteriore
110
% posteriore (parte a sez. costante)
111
% posteriore (cono di coda)
112 % Volume delle stive [m]
113
% anteriore

07/07/06 1.50

C:\Documents and Settings\dedde\Desktop\MATLAB\1...\fusoliera0.m

3 of 5

114
% posteriore (parte a sez. costante)
115
% posteriore (cono di coda)
116
% posteriore totale
117
% totale
118
119 % Numero di container trasportabili
120
% numero container trasportabili nella stiva
anteriore
121
% numero container trasportabili nella stiva
posteriore
% numero container trasportabili
122
123
% volume singolo bagaglio [m]
124
125
% volume totale bagagli [m]
126
% volume totale interno ai container [m]
127
128 if Vbag<=Vc_int
129
% Numero di container trasportati
130
% numero container nella stiva anteriore
131
% numero container nella stiva posteriore
132
% numero container
133
% Volume delle stive occupato dai container [m]
% stiva anteriore
134
% stiva posteriore
135
136
% totale
137
% Volume delle stive non occupato dai container [m]
138
% stiva anteriore
% stiva posteriore
139
140
% totale
141
% Volume dei container occupato dai bagagli [m]
142
143
% Volume dei container occupato dalle merci [m]
144
145
% Volume esterno ai container occupato dalle merci [m]
146
147
% Volume esterno ai container occupato dai bagagli [m]
148
149 else
150
% Volume delle stive [m]
151
% stiva anteriore
152
% stiva posteriore
153
% totale
154
% Volume delle stive occupato dai bagagli [m]
155
156
% Volume delle stive occupato dalle merci [m]
157
158
% Numero di container trasportati
159
% numero container nella stiva anteriore
160
% numero container nella stiva posteriore
161
% numero container trasportati
162 end
163
164 % ------------------------165 % VISUALIZZAZIONE RISULTATI
166 % ------------------------167 disp('1. SCALATURA DELLA FUSOLIERA ')
168 fprintf('\n')
169 disp('
AIRBUS A320-200 SCALATO
AIRBUS A320-200')

07/07/06 1.50

C:\Documents and Settings\dedde\Desktop\MATLAB\1...\fusoliera0.m

4 of 5

170 fprintf('\n')
171 disp(['seat single class
' num2str(Np) '
' num2str
(Np_r) ' '])
172 disp(['seat abreast
' num2str(Sa) '
' num2str
(Sa_r) ' '])
173 disp(['seat pitch [in]
' num2str(Sp/in2m) '
'
num2str(Sp_r/in2m) ' '])
174 fprintf('\n')
175 disp('EXTERNAL DIMENSIONS')
176 disp(['overall lenght [m]
' num2str(L,4) '
' num2str
(L_r) ' '])
177 disp(['max width [m]
' num2str(W) '
' num2str(W_r)
' '])
178 disp(['max depth [m]
' num2str(H) '
' num2str(H_r)
' '])
179 disp(['cockpit lenght [m]
' num2str(Lcc) '
' num2str
(Lcc_r) ' '])
180 disp(['tail lenght [m]
' num2str(Lt) '
' num2str
(Lt_r) ' '])
181 fprintf('\n')
182 disp('INTERNAL DIMENSIONS')
183 disp(['cabin lenght [m]
' num2str(Lcabin,4) '
'
num2str(Lcabin_r) ' '])
184 disp(['front hold lenght [m]
' num2str(Lsf,3) '
' num2str
(Lsf_r) ' '])
185 disp(['rear hold lenght [m]'])
186 disp(['
central
' num2str(Lsrc,3) '
' num2str
(Lsrc_r) ' '])
187 disp(['
tail
' num2str(Lsrt) '
' num2str
(Lsrt_r) ' '])
188 disp(['front hold volume [m]
' num2str(Vsf,3) '
' num2str
(Vsf_r) ' '])
189 disp(['rear hold volume [m]
' num2str(Vsr,4) '
' num2str
(Vsr_r) ' '])
190 fprintf('\n')
191 disp('TRASPORTABLE CONTAINERS')
192 disp(['N LD3/46 front hold
' num2str(ncf_t) '
'
num2str(ncf_r) ' '])
193 disp(['N LD3/46 rear hold
' num2str(ncr_t) '
'
num2str(ncr_r) ' '])
194 fprintf('\n')
195 fprintf('\n')
196 disp('2. DIMENSIONAMENTO DEL COMPARTIMENTO MERCI ')
197 fprintf('\n')
198 if Vbag > Vc_int
199
disp('Il numero dei container necessari per i bagagli superiore a quello dei
container trasportabili.'
200
disp('Si decide pertanto di non utilizzare container.'
201 else
202
disp(['internal container volume: ' num2str(Vc_int) ' m'])
203
disp(['
baggage: ' num2str(Vsc_bag) ' m'])
204
disp(['
cargo: ' num2str(Vsc_cargo) ' m'])
205
fprintf('\n')
206
disp(['external container volume: ' num2str(Vsc) ' m'])
207
disp(['
front: ' num2str(Vscf) ' m'])
208
disp(['
rear: ' num2str(Vscr) ' m'])
209 end
210 fprintf('\n')

07/07/06 1.50
211
212
213
214
215
216
217
218

C:\Documents and Settings\dedde\Desktop\MATLAB\1...\fusoliera0.m

disp(['bulk volume:
disp(['
front:
disp(['
rear:
disp(['
baggage:
disp(['
cargo:

'
'
'
'
'

num2str(VsBULK) ' m'])


num2str(VsBULKf) ' m'])
num2str(VsBULKr) ' m'])
num2str(VsBULK_bag) ' m'])
num2str(VsBULK_cargo) ' m'])

save('scalatura_fusoliera','VsBULK_cargo','W','H','L','nc'

5 of 5

07/07/06 1.53
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

C:\Documents and Settings\dedde\Desktop\MATLAB\1....\atmosfera.m

function [out] = atmosfera(H,par)


% International Standar Atmosphere
%--------------------------------------------------------------------------% Inputs: H
Height [m]
%
par
required output [string]
%
accepted values 't' 'p' 'rho' 'mu' 'ni' 'a'
% Outputs: T
Temperature
[K
]
%
p
Pressure
[Pa
]
%
rho Density
[Kg/m3 ]
%
mu
Viscosity
[Kg/m/s ]
%
ni
Kinematic Viscosity
[m2/s
]
%
a
Speed of Sound
[m/s
]
% Used function and routines: none
%
% SEA LEVEL VALUES
%

%--------------------------------------------------------------------------%-------------------------------------------------------------------------% Constant definition


% Perfect gas constant [J/Kg/K] (1715.7 ft lbf/slug/R)
% Gravitational Acceleration [m/s2] (32.174 ft/s2)
% parameter of the Sutherland law [mu=beta*T^(3/2)/(T+S)]
% parameter of the Sutherland law [mu=beta*T^(3/2)/(T+S)]
% Ratio of Specific Heats
% Sea level conditions
% Temperature [K]
% Pressure
[Pa]
% Density
[Kg/m3]
% Stratosphere conditions (h = 11000 m )

% 20000 m conditions

if H<11000

1 of 2

07/07/06 1.53
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
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109

else

C:\Documents and Settings\dedde\Desktop\MATLAB\1....\atmosfera.m

if H<20000

else

end
end
switch lower(par)
case 't'
case 'p'
case 'rho'
case 'mu'
case 'ni'
case 'a'
otherwise
end

2 of 2

C02

Progetto di Costruzioni Aeronautiche

07/07/06 3.01
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

C:\Documents and Settings\dedde\Desktop\MATLAB\2.A...\MAIN.high_speed4.m

clc
clear all
global ft2m nm2m lb2kg g d2r r2d in2m
% Costanti & fattori di conversione
%..........................................................................
% 1 ft = 0.3048 m
% 1 n.m. = 1852 m
% 1 lb = 0.45359237 kg
% accelerazione gravitazionale [m/s2]
% fattore di conversione deg --> rad
% fattore di conversione rad --> deg
% 1 in = 0.0254 m
%..........................................................................
%
% Payload

----------- D

I -----------

% numero passeggeri in classe unica


% Missione
% 1. Missione ordinaria
%
%
%
%

tratta di progetto [m]


quota di crociera [m]
durata attesa di missione [s]
quota attesa missione [m]

%
%
%
%
%

numero di mach
tratta di diversione [m]
quota crociera di diversione [m]
durata attesa di diversione [s]
quota attesa diversione [m]

% 2. Diversione

load('scalatura_fusoliera')

% Dati relativi alle dimensioni della


% fusoliera
load('Wto_preliminare')
% Stime del Wto preliminare per la data
% missione in funzione di AR e M
% numero di container LD3 presenti nelle
% stive
%
----------------------------------

% Variazioni dei parametri di progetto xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx


% (indice iM)
%
%
%
%
%

(indice iAR)

Variazione del Mach di crociera


Variazione di AR

NOTA
La variazione dei due parametri (M e AR) sopra elencati deve essere preceduta
dall'aggiornamento del file 'Wto_preliminare' tramite il programma
Wto_preliminare0.m

%(indice it_c) Variazione di t_c


% t_c rappresenta lo spessore percentuale nella sezione alare di design, a
% met tra la sezione al kink e al tip

1 of 7

07/07/06 3.01
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
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116

C:\Documents and Settings\dedde\Desktop\MATLAB\2.A...\MAIN.high_speed4.m

% (indice iKS) Variazione di KS


% KS il fattore di scalatura della superficie di minima resistenza
%xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
%--------------------------------------------------------------------------

for iM = 1:length(Mv)

%Ciclo for su M

for iAR = 1:length(ARv)

%Ciclo for su AR

for it_c = 1:length(t_cv) %Ciclo for su t_c

% Spessori Percentuali ---------------------------------------------------% Distribuzione di spessore percentuale del profilo alare lungo l'apertura alare
% Si ipotizza una distribuzione lineare
% spessore percentuale al root
% spessore percentuale al kink
% spessore percentuale al tip
% Spessore percentuale dei profili alari degli impennaggi (profilo NACA N63010A)
% individuato dalle ultime 2 cifre della denominazione
%-------------------------------------------------------------------------% Desing Point -----------------------------------------------------------% Il design point viene scelto a met della crociera essendo questa a quota
% costante pari ad Hcr

% Propriet atmosfera standard a quota di design


% Velocit di volo nel 1 step di crociera [m/s]
% Pressione dinamica [Pa]
%-------------------------------------------------------------------------%
% Coefficienti di primo tentativo per il calcolo del CL e di S
% coefficiente delle superfici bagnate
% fattore di efficienza di Oswald
% coefficiente d'attrito del velivolo

for iKS=1:1:length(KS) %Ciclo su KS

2 of 7

07/07/06 3.01

C:\Documents and Settings\dedde\Desktop\MATLAB\2.A...\MAIN.high_speed4.m

3 of 7

117 % Valore di primo tentativo del peso al design [N]


118
119
120
%-------------------------------------------%
121
% PROCEDURA IERATIVA PER IL PESO AL DECOLLO %
122
%-------------------------------------------%
123
%Il ciclo while seguente permette di determinare il Wto per ogni
124
%combinazione dei parametri di progetto
125
126
while abs(Wto-Wto1)/Wto1>0.001
127
128
% Valore di inizio ciclo del peso al decollo [kg]
129
130
% Valore di inizio ciclo del peso al design [N]
131
132
133
134
if iKS==1 % KS(1) corrisponde alla KS unitario. In questo caso il
135
% programma deve calcolare la SmD (superficie di minima)
136
% resistenza.
137
138
%::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
139
% I parametri seguenti sono necessari solo per il calcolo di SmD dato
140
% che negli altri casi (iKS > 1) la superficie e quindi il CLdes sono
141
% noti
142
%
143
% Valore di primo tentativo del CL di design
144
145
% Valore di primo tentativo della superficie di riferimento [m]
146
147
148
%::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
149
150
%------------------------------------------------------------%
151
% PROCEDURA ITERATIVA PER LA SUPERFICIE DI MINIMA RESISTENZA %
152
%------------------------------------------------------------%
153
%Il ciclo while seguente permette di determinare la S di minima
154
%resistenza per ogni combinazione dei parametri M, AR e t_c.
155
156
while abs(S-S1)/S1>.001
157
158
% MODELLO GEOMETRIA E AERODINAMICA
159
% ================================
160
161
162
163
164
% Dimensionameno Ala
165
% ------------------------------------------------------------166
% Angolo di freccia al 25% della corda
% [rad]
167
168
% Forma in pianta
169
[b, bK, etaR, etaK, lambdaW, alfa, lambdaN, lambdaK, lambda, cT, cCL, cK, cR,
...
170
171
% Corda media aerodinamica
172
173
%--------------------------------------------------------------

07/07/06 3.01

C:\Documents and Settings\dedde\Desktop\MATLAB\2.A...\MAIN.high_speed4.m

4 of 7

174
175
% Dimensionamento della coda
176
% ------------------------------------------------------------177
[SHt, sweepHt, ARHt, bHt, lambdaHt, cRHt, cTHt, macHt, xmacHt, ymacHt, LHt,
yRHt, SVt, sweepVt,...
178
ARVt, hVt, lambdaVt, cRVt, cTVt, macVt, xmacVt, ymacVt, LVt] = tail(S, L, b,
179
%-------------------------------------------------------------180
181
% Scalatura dei motori
182
% ------------------------------------------------------------183
[Tdes, airFlow_des, Weng, Leng, Dfan, kSFC, mBPR, Tcruise_des, n_cruise, BPR,
OPR, ESF] = ...
184
185
%-------------------------------------------------------------186
187
% Dimensionamento gondole motori (Short Fan Duct - SFD)
188
% ------------------------------------------------------------189
[LFf_DFC, DFe, Dlh, DFC, DGe, DGC, LFC, LGC] = nacelles_SFD(BPR, airFlow_des,
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
LFC, DFC,...
219
b, cT,...
220
221
222
223
224
225

%-------------------------------------------------------------% Dimensionamento dei piloni


% ------------------------------------------------------------%-------------------------------------------------------------% Superficie Bagnata
% ------------------------------------------------------------% Fusoliera
% Gondola Motore
% Ala
% Impennaggi
% Pilone
% Configurazione
%-------------------------------------------------------------% Calcolo dei vari coefficienti aerodinamici
% ------------------------------------------------------------% Coefficiente delle superfici bagnate
% Coefficiente di resistenza parassita della configurazione
CD0 = CD0_fun(M, Hdes, CLdes, S, SwetF, SwetW, SwetHt, SwetVt, SwetN, L, W, H,
mac, t_c, sweep25, macHt, macVt, sweepHt, sweepVt, c_pyl, SwetP,

% Coefficiente di attrito
% Fattore di efficienza di Oswald

07/07/06 3.01

C:\Documents and Settings\dedde\Desktop\MATLAB\2.A...\MAIN.high_speed4.m

5 of 7

226
% Coefficiente di resistenza indotta
227
228
%-------------------------------------------------------------229
230
% Aggiornamento del peso al design
231
232
233
% Aggiornamento del CL al design
234
235
236
% Aggiornamento della superficie di minima resistenza
237
238
239
end % Fine del ciclo while su S.
240
241
242
243
else % Relativo all'if su iKS. Se iKS > 1 S nota essendo nota SmD
244
% (calcolata quando iKS=1). In pratica nell'else non si fa altro
245
% che che appicare il MODELLO GEOMETRIA E AERODINAMICA senza
246
% bisogno del while su S.
247
248
% MODELLO GEOMETRIA E AERODINAMICA
249
% ================================
250
% Per i commenti si faccia riferimento all'analogo modello
251
% all'interno del ciclo while su S
252
253
% Noti una volta calcolata SmD
254
%
255
256
257
[b, bK, etaR, etaK, lambdaW, alfa, lambdaN, lambdaK, lambda, cT, cCL, cK, cR,
...
258
259
260
[SHt, sweepHt, ARHt, bHt, lambdaHt, cRHt, cTHt, macHt, xmacHt, ymacHt, LHt,
yRHt, SVt, sweepVt,...
261
ARVt, hVt, lambdaVt, cRVt, cTVt, macVt, xmacVt, ymacVt, LVt] = tail(S, L, b,
262
[Tdes, airFlow_des, Weng, Leng, Dfan, kSFC, mBPR, Tcruise_des, n_cruise, BPR,
OPR, ESF] = ...
263
264
[LFf_DFC, DFe, Dlh, DFC, DGe, DGC, LFC, LGC] = nacelles_SFD(BPR, airFlow_des,
265
266
267
268
269
270
271
272
273
LFC, DFC,...
274
b, cT,...
275
276

CD0 = CD0_fun(M, Hdes, CLdes, S, SwetF, SwetW, SwetHt, SwetVt, SwetN, L, W, H,


mac, t_c, sweep25, macHt, macVt, sweepHt, sweepVt, c_pyl, SwetP,

07/07/06 3.01

C:\Documents and Settings\dedde\Desktop\MATLAB\2.A...\MAIN.high_speed4.m

6 of 7

277
278
279
280
281
282
283
end % Fine dell'if. Si rientra nel ciclo while sul Wto.
284
285
%--------------------%
286
if iKS==1
%
%
287
288
else
%
289
%
290
end
%
291
%--------------------%
292
293
% Calcolo del volume complessivo dei serbatoi
294
295
296
% Prestazioni
297
% ------------------------------------------------------------------298
% Calcolo della frazione di combustibile relativa al Wto
299
[Wf_Wto,Wfris_Wto] = Wfuel_fun(M, Hcr, Xcr, Hdiv, Xdiv, tloi_mis, Hloi_mis, Mdiv,
tloi_div, ...
300
301
% Calcolo del peso di combustibile
302
303
304
%-------------------------------------------------------------------305
306
% Pesi strutturali
307
% ------------------------------------------------------------------308
% Generazione del vettore di input per la routine che implementa il
309
% modello di calcolo dei pesi per i vari componenti (modello NASA CR151970)
310
[General, Engine, Nacelle, Wing, Fuselage, Tail, System] = ...
311
NASA_input(Wto, Wf_Wto, Weng, Tcruise_des, Vtank, BPR, Dfan, S, b, AR, lambdaW,
sweep25deg, t_c, ...
312
313
% Calcolo dei pesi dei vari componenti
314
[Weo, We, Wparziali, Wdetail] = NASA_weights(General, Wing, Fuselage, Tail, Engine,
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331

%-------------------------------------------------------------------% Aggiornamento del peso al decollo

end % Fine del ciclo while su Wto.


count=count+1

-------- O

T ---------

% L'output viene organizzato in una struttura 3x3x3


% Ogni campo una matrice - length(KS) x N - dove ogniuna delle N colonne
% rappresenta un particolare output relativo al campo considerato
%

07/07/06 3.01
332
333
334
335
336
337
338
339
340

C:\Documents and Settings\dedde\Desktop\MATLAB\2.A...\MAIN.high_speed4.m

7 of 7

% Nota
% La prima riga della matrice di ogni campo rapresenta gli output relativi
% al valore della superficie di minima resistenza

config(iM,iAR,it_c).adimensional_parameters(iKS,:) = [CLdes CD0 CDcomp Cf e K Csw Wto/S

341
342
343
344 config(iM,iAR,it_c).wing(iKS,:) = [S AR b bK etaR etaK alfa lambda lambdaW lambdaN lambdaK
...
345
cCL cR cK cT t_c t_cR t_cK t_cT sweep25deg sweepLE...
346
347
348 config(iM,iAR,it_c).H_tail(iKS,:) = [SHt ARHt bHt lambdaHt cRHt cTHt t_c_tail sweepHt
macHt...
349
350
351 config(iM,iAR,it_c).V_tail(iKS,:) = [SVt ARVt hVt lambdaVt cRVt cTVt t_c_tail sweepVt...
352
353
354 config(iM,iAR,it_c).engine(iKS,:) = [Tdes airFlow_des Weng Leng Dfan kSFC mBPR
Tcruise_des...
355
356
357
358
359
360
361
362
363
364 disp(['M = ' num2str(Mv(iM)) ' ' 'AR = ' num2str(ARv(iAR)) ' ' 't_c = ' num2str(t_cv
(it_c))...
365
' ' 'KS = ' num2str(KS(iKS))])
366
367
368
369
370
371 end % end del for su KS
372
373 end % end del for su t_c
374
375 end % end del for su AR
376
377 end % end del For su M
378
379 save('config','config')
380
381 time=cputime-time

07/07/06 3.02
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

%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%

C:\Documents and Settings\dedde\Desktop\MATLAB\2.Alta Velo...\Airfoils.m

Scalatura profili alari


----------------------Scalatura dei profili alari per ottenere il richiesto rapporto t/c
res = Airfoils(file,treq,n)
Input
----file : file didefinizione profilo base (formato Selig)
treq : Rapporto spessore-corda richiesto
n : Numero di righe della matrice di output ()
Output
-----res : matrice nx3 :
res(:,1) --> estensioni della corda in coordinate
adimensionali
0.0 --> bordo di attacco del profilo
1.0 --> bordo di uscita del profilo
res(:,2) --> coordinate dorso del profilo / corda
res(:,3) --> coordinate ventre del profilo / corda

function res=Airfoils(file,treq,n)
if
end
if
end
if nargin<1
error('Incorrect number of inputs.')
end
%---- Apertura e caricamento dati file ---- %
fid=fopen(file,'r'
%
%
%
while 1
%
%
if readline==-1, break, end
%
if isempty(str2num(readline)), break, end %
%
end
%
%
%
%-------------------------------------------%

1 of 2

07/07/06 3.02
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
85
86
87

C:\Documents and Settings\dedde\Desktop\MATLAB\2.Alta Velo...\Airfoils.m

for j=1:npts

end

for j=1:n

end

2 of 2

07/07/06 3.02
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

%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%

C:\Documents and Settings\dedde\Desktop\MATLAB\2.Alta Velo...\alfazero.m

1 of 1

Calcolo di alfa
[alfa0] = alfazero(sweep25, AR, S, etaR, etaK, lambdaW)
La funzione calcola il valore di alfa (= estensione della corda in
corrispondenza della mezzeria in frazioni di corda al kink
cCl=cRn+alfa*cK) imponendo che l'angolo di freccia al bordo di uscita del
kink sia nullo
Input
----sweep25:
AR:
S:
etaR:
etaK:
lambdaW:

freccia al 25% della corda [rad]


allungamento alare (aspect ratio)
superficie di riferimento dell'ala [m]
coordinata della corda alla radice [m]
coordinata al kink [m]
rapporto di rastremazione ala

Output
-----alfa0: estensione di corda in corrispondenza della mezzeria in frazioni
di corda al kink che annulla sweepTEin.
Si pone infatti: cCL = cRn + alfa*cK
dove: cCL: corda all'asse della fusoliera
cRn: corda alla radice
cK: corda al kink

function [alfa0] = alfazero(sweep25, AR, S, etaR, etaK, lambdaW)

if alfa0<0
end
function tan_sweepTEin = tan_zero(alfa1,sweep25, AR, S, etaR, etaK, lambdaW)
lambdaN = lambdaW*(1-etaR+alfa1*(1-etaK)*(etaK-etaR)/etaK)/(1-lambdaW*(etaR+alfa1*(etaK% lambdaK = cT/cK
% lambda = cT/cCL
% tan(Angolo di freccia al bordo d'uscita inboard)
tan_sweepTEin = tan(sweep25) + (3*etaK + (4-3*etaK)/lambdaN - 4/lambda)/...

07/07/06 3.02
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

%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%

C:\Documents and Settings\dedde\Desktop\MATLAB\2.Alta Vel...\atmosfera.m

Atmosfera Standard
-----------------[T, p, rho, mu, ni, a] = atmosfera(H)
Input
----H: quota [m]
Output
-----T: temperatura [K]
p: pressione [Pa]
rho: density [kg/m]
mu: viscosity [kg/m/s]
ni: viscosit cinematica [m/s]
a: velocit del suono [m/s]

function [T, p, rho, mu, ni, a] = atmosfera(H)

% Costanti ---------------------------------------------------------------% costante gas perfetti [J/Kg/K]


% accelerazione gravitazionale [m/s2]
% parametro beta della legge di Sutherland [mu=beta*T^(3/2)/(T+S)]
% parametro S della legge di Sutherland [mu=beta*T^(3/2)/(T+S)]
% Rapporto tra i calori specifici
%-------------------------------------------------------------------------% Condizioni di riferimento - sea level (h = 0 m)-------------------------% Temperatura [K]
% Pressione [Pa]
% Densit [kg/m]
%-------------------------------------------------------------------------% Condizioni nella stratosfera (h = 11000 m )------------------------------

%-------------------------------------------------------------------------% Condizioni a 20000 m ----------------------------------------------------

%-------------------------------------------------------------------------if H<11000

else

1 of 2

07/07/06 3.02

C:\Documents and Settings\dedde\Desktop\MATLAB\2.Alta Vel...\atmosfera.m

59
if H<20000
60
61
62
63
64
65
66
else
67
68
69
70
71
72
73
end
74 end

2 of 2

07/07/06 3.02
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

%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%

C:\Documents and Settings\dedde\Desktop\MATLAB\2.Alta Velocit\CD0_fun.m

Coefficiene di resistenza parassita del velivolo


------------------------------------------------

CD0 = CD0_fun (M, Hcr, CLdes, S,


SwetN,
macHt,
b, cT,

SwetF, SwetW, SwetHt, SwetVt, ...


L, W, H, LFC, DFC, mac, t_c, sweep25, ...
macVt, sweepHt, sweepVt, c_pyl, SwetP...
lambdaN, cRHt, cTHt, bHt, cRVt, cTVt, hVt)

Input
----M:
Hdes:
CLdes:
S:
SwetF:
SwetW:
SwetN:
SwetHt:
SwetVt:
L:
W:
H:
LFC:
DFC:
mac:
t_c:
sweep25:
macHt:
macVt:
sweepHt:
sweepVt:
c_pyl:
SwetP:
b:
cT:
lambdaN:
cRHt:
cTHt:
bHt:
cRVt:
cTVt:
hVt:

numero di mach di volo


quota di design [m]
coefficiente di portanza di design
superficie di riferimento [m]
superficie bagnata fusoliera [m]
superficie bagnata ala [m]
superficie bagnata gondole motori [m]
superficie bagnata impennaggio orizzontale [m]
superficie bagnata impennaggio verticale [m]
lunghezza fusoliera [m]
larghezza fusoliera [m]
altezza fusoliera [m]
lunghezza gondole [m]
diametro gondole [m]
corda media aerodinamica ala [m]
spessore percentuale di riferimento del profilo alare
angolo di freccia al 25% della corda dell'ala [rad]
corda media aerodinamica dell'impennaggio orizzontale [m]
corda media aerodinamica dell'impennaggio verticale [m]
angolo di freccia al 25% della corda dell'impennaggio orizzontale [rad]
angolo di freccia al 25% della corda dell'impennaggio verticale [rad]
corda dei piloni all'attacco sulla gondola [m]
superficie bagnata piloni [m]
aperura alare [m]
corda al tip
cT/cRn
corda alla radice coda orizzontale [m]
corda all'estremit coda orizzontale[m]
apertura alare coda orizzontale[m]
corda alla radice coda verticale [m]
corda all'estremit coda verticale [m]
semi-apertura alare coda verticale [m]

Output
-----CD0: coefficiente di resistenza parassita del velivolo

function CD0 = CD0_fun(M, Hdes, CLdes, S, SwetF, SwetW, SwetHt, SwetVt, ...
SwetN, L, W, H, LFC, DFC, mac, t_c, sweep25, ...
macHt, macVt, sweepHt, sweepVt, c_pyl, SwetP,...
b, cT, lambdaN, cRHt, cTHt, bHt, cRVt, cTVt, hVt)
% Coefficienti di resistenza dei vari componeni
% -------------------------------------------------------% RUGOSITA' DEL RIVESTIMENTO (tab 12.4 Raymer)

1 of 4

07/07/06 3.02
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
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116

%
%
%
%
%

C:\Documents and Settings\dedde\Desktop\MATLAB\2.Alta Velocit\CD0_fun.m

kre=1.015e-5
kre=0.634e-5
kre=0.405e-5
kre=0.152e-5
kre=0.052e-5

-->
-->
-->
-->
-->

2 of 4

camouflage paint on alluminum


smooth paint
production sheet metal
polished sheet metal
smooth molded composite

% [m]
% ----------------- CD0 fusoliera ----------------------%
% coefficiente d'attrito equivalente
%
%
%
%
% fattore di interferenza
%
%
% fattore di forma
%
% area massima della sezione%
%
%
% coefficiente di resitenza parassita
%
%
%-------------------------------------------------------%
% ----------------------------------- CD0 ala ---------------------------------------%
% coefficiente d'attrito equivalente
%
%
%
%
% fattore di interferenza
%
%
% fattore di forma
%
% coordinata adimensionalizzata con la corda di massimo
%
% spessore del profilo (calcolata nel profilo di riferimento)
%
% Ricavabile attraverso la function Swet
%
%
%
%Calcolo angolo di sweep in corrispondenza della coord di massimo spessore
%
%
%
%
% coefficiente di resitenza parassita
%
%
%------------------------------------------------------------------------------------%
% spessore percenuale delle superfici di coda
% --------------------------- CD0 Coda orizzontale ---------------------------------------%
% coefficiente d'attrito equivalente
%
%
%
%
% fattore di interferenza
%
%
% fattore di forma
%
% coordinata adimensionalizzata con la corda di massimo
%
% spessore del profilo
%
% Ricavabile attraverso la function Swet
%
%
%Calcolo angolo di sweep in corrispondenza della coord di massimo spessore
%
%
%

07/07/06 3.02
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174

C:\Documents and Settings\dedde\Desktop\MATLAB\2.Alta Velocit\CD0_fun.m

3 of 4

%
%
%
%-----------------------------------------------------------------------------------------%
% coefficiente di resitenza parassita

% --------------------------- CD0 coda verticale -----------------------------------------%


% coefficiente d'attrito equivalente
%
%
%
%
% fattore di interferenza
%
%
% fattore di forma
%
% coordinata adimensionalizzata con la corda di massimo
%
% spessore del profilo
%
% Ricavabile attraverso la function Swet
%
%
%Calcolo angolo di sweep in corrispondenza della coord di massimo spessore
%
%
%
%
% coefficiente di resitenza parassita
%
%
%-----------------------------------------------------------------------------------------%
% ----------- CD0 Gondole motori ------------%
% coefficiente d'attrito equivalente
%
%
%
%
% fattore di interferenza
%
%
% fattore di forma
%
%
%
% coefficiente di resitenza parassita
%
%
%--------------------------------------------%
% -------------------------------- CD0 Piloni ---------------------------%
% coefficiente d'attrito equivalente
%
%
%
%
% fattore di interferenza
%
%
% fattore di forma
%
% coordinata adimensionalizzata con la corda di
%
% massimo spessore del profilo
%
% Ricavabile attraverso la function Swet
%
%
%Si considera per semplicit il l'angolo di sweep alla
%
%coord di max spessore nullo per il pilone
%
%
% coefficiente di resitenza parassita
%
%
%------------------------------------------------------------------------%
% --------------------- CD0 miscellaneus drag ---------------------------%
% Contributo dell'angolo di upsweep della fusoliera
%
% angolo di upsweep del cono di coda (10)
%

07/07/06 3.02
175
176
177
178
179
180
181
182
183
184
185

C:\Documents and Settings\dedde\Desktop\MATLAB\2.Alta Velocit\CD0_fun.m

% [rad]
% coefficiente di resitenza parassita

%
%
%
%------------------------------------------------------------------------%
% Coefficiente di resistenza parassita della configurazione =============%
%
%========================================================================%
%CD0_fus, CD0_ala, CD0_Ht, CD0_Vt, CD0_nac, CD0_pyl, CD0_misc

4 of 4

07/07/06 3.03

07/07/06 3.03
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

%
%
%
%
%
%
%
%
%
%
%
%
%
%
%

C:\Documents and Settings\dedde\Desktop\MATLAB\2.Alta Ve...\CDcomp_fun.m

CONTRIBUTO DELLA COMPRIMIBILITA' (CONTRIBUTO DEL REGIME TRANSONICO)


===================================================================
CDcomp=CDcomp_fun(M,sweep25,t_c,CLdes)
INPUT
----M:
sweep25:
t_c:
CLdes:

numero di Mach
angolo di freccia al 25% della corda
spessore percentuale
CL di design

OUTPUT
-----CDcomp:coefficiente di resistenza dovuto alla comprimibilit

function CDcomp=CDcomp_fun(M,sweep25,t_c,CLdes)

% Calcolo del Mach critico sulla base della definizione


% del Mach di drag rise della Boeing

% Calcolo del coefficiente di resistenza dovuto alla comprimibilit

1 of 1

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

%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%

C:\Documents and Settings\dedde\Desktop\MATLAB\2.Alta Velocit\Cf_fun.m

Coefficiente di attrito equivalente dei vari componenti


------------------------------------------------------Cf = Cf_fun(M, H, L, x_trans, kre)
Input
----M:
H:
L:
x_trans:

numero di Mach
quota di volo [m]
lunghezza caratteristica [m]
percentuale di L dove avviene la transizione
(misurata dal LE)
kre: indice di rugosit del rivestimento [m]

Output
-----Cf: coefficiente di attrito equivalente

function
% Propriet atmosfera standard alla quota di volo

% Velocit di volo [m/s]

% Numero di Reynolds per il calcolo del coefficiente di attrito equivalente

% Coefficiente di attrito equivalente nell'ipotesi di flusso turbolento

% Coefficiente di attrito equivalente nell'ipotesi di flusso laminare

% Coefficiente d'attrito equivalente nell'ipotesi di flusso misto


%===================================================================%
if x_trans>0.0
%
%
%
%
%
else
%
%flusso completamente turboleno
%
end
%
%===================================================================%

1 of 1

07/07/06 3.03

07/07/06 3.03
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

%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%

C:\Documents and Settings\dedde\Desktop\MATLAB\2.Alta ...\cma_trapezia.m

Corda media aerodinamica di un ala trapezia


------------------------------------------[mac,xmac,ymac] = cma_trapezia(cCL,cT,b,sweepLE,S)
cma_trapezia calcola il valore e le coordinate della corda media
aerodinamica di un'ala trapezia
Input
----S:
b:
cT:
cCL:
sweepLE:

superficie di riferimento dell'ala [m]


apertura alare [m]
corda all'estremit dell'ala (tip) [m]
corda all'asse fusoliera (inizio dell'ala) [m]
freccia al bordo d'attacco [deg]

Output
-----mac: corda media aerodinamica [m]
xmac: ascissa della corda media aerodinamica [m]
ymac: ordinata della corda media aerodinamica [m]

function [mac,xmac,ymac] = cma_trapezia(cCL,cT,b,sweepLE,S)


% lambda = cT/cCL
% Allungamento alare
% Corda media aerodinamica [m]

% Coordinate della corda media aerodinamica [m]

1 of 1

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

%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%

C:\Documents and Settings\dedde\Desktop\MATLAB\2.Alta Velo...\cma_wing.m

Corda media aerodinamica di un'ala con kink


------------------------------------------[mac,xmac,ymac] = cma_wing(cCL,cK,cT,b,bK,sweepLE,S)
La function cma_wing calcola la corda media aerodinamica e le sue
coordinate per un'ala con kink.
L'ala viene trattata come unione di 2 ali trapezie.
1=Ala interna
2=Ala esterna
Input
----cCL:
cK:
cT:
b:
bK:
sweepLE:
S:

corda all'asse fusoliera [m]


corda al kink [m]
corda all'estremit dell'ala (tip) [m]
apertura alare [m]
apertura alare al kink [m]
freccia al bordo d'attacco [rad]
superficie di riferimento dell'ala [m]

Output
-----mac: corda media aerodinamica [m]
xmac: ascissa della corda media aerodinamica [m]
ymac: ordinata della corda media aerodinamica [m]

function [mac,xmac,ymac] = cma_wing(cCL,cK,cT,b,bK,sweepLE,S)


%xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx%
%TESTER
%
%xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx%
% Calcolo MAC1 (Ala1 = parte int al kink)-------------------------------%
%
%
% corda minore (kink) [m]
%
% corda maggiore (asse fusoliera) [m]
%
% apertura alare (asse fusoliera-kink)[m] %
% superficie interna al kink [m]
%
%
%
%-----------------------------------------------------------------------%
% Calcolo MAC2 (Ala2 = parte ext al kink)-------------------------------%
%
%
% corda minore (tip) [m]
%
% corda maggiore (kink) [m]
%
% apertura alare (kink-tip)[m]
%
% superficie esterna al kink [m]
%
%
%
%-----------------------------------------------------------------------%
% Calcolo MAC dell'ala
% =========================================================================

1 of 2

07/07/06 3.03

C:\Documents and Settings\dedde\Desktop\MATLAB\2.Alta Velo...\cma_wing.m

59
60
61 %==========================================================================
62
63 %mac,xmac,ymac
64

2 of 2

07/07/06 3.04

C:\Documents and Settings\dedde\Desktop\MATLAB\2.Alta ...\engine_scale.m

1 of 3

1 % Scalatura motore di riferimento


2 % ------------------------------3 %
4 % [Tdes, airFlow_des, Weng, Leng, Dfan, kSFC, mBPR, Tcruise_des, n_cruise,...
5 % BPR, OPR, ESF] = engine_scale(Wto,M,Hcr)
6 %
7 % Il motore di riferimento scelto per la scalatura il CFM56 3C1.
8 % Le condizioni di volo di riferimento rispetto a cui viene fornita la
9 % spinta in crociera Tcruise sono:
10 % M = 0.8
11 % H = 35000 ft
12 %
13 % Input
14 % ----15 % Wto: peso al decollo del velivolo [kg]
16 %
M: mach di volo del velivolo
17 % Hdes: quota di design [m]
18 %
19 % Output
20 % -----21 %
Tdes: spinta massima al decollo [kg]
22 % airFlow_des: portata in massa di aria [kg/s]
23 %
Weng: peso del motore [kg]
24 %
Leng: lunghezza del motore [m]
25 %
Dfan: diametro del fan [m]
26 %
kSFC: fattore K relativo al consumo specifico
27 %
mBPR: fattore m relativo al consumo specifico
28 % Tcruise_des: spinta in crociera a 35000 ft e M=0.8 [kg]
29 %
n_cruise: fattore n relativo alla spinta installata
30 %
BPR: rapporto di bypass
31 %
OPR: overall pressure ratio
32 %
ESF: fattore di scalatura motore di riferimento
33
34
35 function [Tdes, airFlow_des, Weng, Leng, Dfan, kSFC, mBPR, Tcruise_des, n_cruise, BPR, OPR,
ESF] = ...
36
engine_scale(Wto, M, Hdes)
37
38
39 global lb2kg ft2m
40
41 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
42 %%%%% SCELTA DEL MOTORE DI RIFERIMENTO %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
43 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
44
45 %
%
46
47
48
49 %TbaseUP = TdesUP/ESFmin
%
50 %
%
51
52
53
54 %TbaseLO = TdesLO/ESFmax
%
55 %
%
56 %Con le seguenti scelte si ottiene il seguente campo di variazione
%
%
57 %Tbase0 = [5287 9694] [Kgf]

07/07/06 3.04
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
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115

C:\Documents and Settings\dedde\Desktop\MATLAB\2.Alta ...\engine_scale.m

%
%
%Si sceglie cos il CFM56 3C1 che con i suoi 8391 [kgf] si posiziona
%
%all'interno di tale intevallo
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%xxxxxxxxxxxxxxxxxxxxxxxxxxxxx%
%TESTER
%

%xxxxxxxxxxxxxxxxxxxxxxxxxxxxx%

% PROPRETA' MOTORE DI RIFERIMENTO (CFM56 3C1)=============================|


% spinta al decollo (punto fisso) [kg]
|
% spinta in crociera [kg]
|
% bypass ratio
|
% overall pressure ratio
|
% mass flow [kg/s]
|
% SFC in crociera [1/s]
|
% lunghezza [m]
|
% diametro del fan [m]
|
% peso del motore [kg]
|
% Mach di crociera
|
% quota crociera [m]
|
%=========================================================================|

% SCALATURA DEL MOTORE DI RIFERIMENTO


%==========================================================================
% Selezione della spinta massima al decollo (metodo statistico)
% spinta di design richiesta ad 1 motore [kg]
% Engine Scale Factor %
%
%%%%%%%%%%%%%%%%%%%%%%%
% Corrected air flow [kg/s] -----------------------------------------------

% Peso del motore [kg] ----------------------------------------------------

% Lunghezza [m] -----------------------------------------------------------

% Diametro del fan [m] ----------------------------------------------------

% Trust Specific Fuel Consumption: coefficiente di taratura --------------% coefficiente dipendente da BPR

2 of 3

07/07/06 3.04

C:\Documents and Settings\dedde\Desktop\MATLAB\2.Alta ...\engine_scale.m

3 of 3

116
%coefficiente di taratura
117
118 % Spinta in crociera [kg] ------------------------------------------------119
120 n_cruise = (log((Tcruise_base/Tbase)/((0.81066-0.01973*BPR)*((rho_base/rho0)^0.6))))/(log
121
122
123
124
125
126
127
128

%Si utilizza il mach vero e proprio dell'aereo e le propriet


%dell'atmosfera alla quota di design

%==========================================================================
%Tdes, airFlow_des, Weng, Leng, Dfan, kSFC, mBPR, Tcruise_des, n_cruise, BPR, OPR, ESF

07/07/06 3.04

C:\Documents and Settings\dedde\Desktop\MATLAB\2.Alta ...\nacelles_SFD.m

1 of 2

1 % Dimensionamento gondole motori


2 % -----------------------------3 %
4 % Impianto propulsivo: SHORT FAN DUCT (SFD)
5 %
6 % [beta, DFe, Dlh, DFC, DGe, DGC, LFC, LGC] = nacelles_SFD(BPR, airFlow, OPR, Dfan)
7 %
8 % Input
9 % ----10 %
BPR: bypass ratio del motore
11 % airFlow_des: portata in massa di aria elaborata dal motore [kg/s]
12 %
OPR: overall pressure ratio del motore
13 %
Dfan: diametro del fan del motore [m]
14 %
15 % Output
16 % -----17 % Dimensioni delle gondole motori di tipo SFD
18
19 function [LFf_DFC, DFe, Dlh, DFC, DGe, DGC, LFC, LGC] = nacelles_SFD(BPR, airFlow_des, OPR,
Dfan)
20
21 global lb2kg ft2m in2m
22
23 %xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx%
24 %TESTER
%
25
26
27 %xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx%
28
29
% numero di Mach massimo
30
31 % Conversione dei dati in ingresso in unit del sistema anglosassone
% [lb/s]
32
33
% [inch]
34
35 %xxxxxxxxxxxxx-PARAMETRI DI SCELTA-xxxxxxxxxxxx|
36
%
LFf/DFC
[0.7,0.9]
|
37 %xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx|
38
39 % Propriet geometriche delle gondole [in] -------------------------------%
40
%
%
%
EEEEEE N
N
%
41
42
%
E
N N
N
%
% EEE
N N N
%
43
%
E
N
N N
%
44
45
%
EEEEEE N
N
%
%
%
46
47 %-------------------------------------------------------------------------%
48
49 % Propriet geometriche delle gondole [m] ---%
%
%
50
51
%
sssss
II
%
%
s
II
%
52
53
%
sssss
II
%
54
%
s
II
%
%
ssssss
II
%
55
56
%
%
57 %--------------------------------------------%

07/07/06 3.04

C:\Documents and Settings\dedde\Desktop\MATLAB\2.Alta ...\nacelles_SFD.m

58
59 %LFf_DFC, DFe, Dlh, DFC, DGe, DGC, LFC, LGC

2 of 2

07/07/06 3.04

C:\Documents and Settings\dedde\Desktop\MATLAB\2.Alta Ve...\NASA_input.m

1 of 3

1 % CARATTERISTICHE DEI COMPONENTI DEL VELIVOLO


2 % ===========================================
3 % La function contiene i dati di ingresso per la routine NASA_weights che consente il
calcolo dei pesi dei
4 % componenti del velivolo in accordo con il modello NASA CR151970
5 %
6 %[General, Engine, Nacelle, Wing, Fuselage, Tail, System] = ...
7 %
NASA_input(Wto, Wf_Wto, W_eng, Tcruise_des, Vtank, BPR, Dfan, ...
8 %
S, b, AR, lambdaW, sweep25deg, t_c, SwetF, SHt, SVt, nLD3)
9 %
10 % INPUT
11 % ----12 %
Wto: peso al decollo in [kg]
13 %
Wto_Wf: frazione in peso di carburante
14 %
W_eng: peso di un motore [kg]
15 % Tcruise_des: spinta del motore in condizioni di crociera [kg]
16 %
Vtank: volume totale serbatoi [m]
17 %
BPR: rapporto di bypass
18 %
Dfan: diametro del fan del motore [m]
19 %
S: superficie alare di riferimento [m]
20 %
AR: allungamento alare
21 %
b: apertura alare [m]
22 %
lambdaW: rapporto di rastremazione dell'ala
23 % sweep25deg: angolo di freccia [deg]
24 %
t_c: spessore percentuale di riferimento
25 %
SHt: superficie impennaggio orizzontale [m]
26 %
SVt: superficie impennaggio verticale [m]
27 %
nLD3: numero container
28 %
29 % OUTPUT
30 % -----31 % General:
32 %
General(1): n passeggeri
33 %
General(2): n piloti
34 %
General(3): n assistenti di cabina
35 %
General(4): disposizione dei sedili
36 %
2 4 2 --> 242
37 %
3 3 --> 33
38 %
General(5): tipo di servizio
39 %
Short range --> 1
40 %
Medium range --> 2
41 %
Long range
--> 3
42 %
General(6): peso complessivo container e pallets [kg]
43 %
General(7): peso al decollo [kg]
44 %
General(8): peso zero fuel [kg]
45 %
General(9): fattore di carico ultimo
46 %
47 % Wing:
48 %
Wing(1): area superficie alare di riferimento [m]
49 %
Wing(2): allungamento alare
50 %
Wing(3): apertura alare [m]
51 %
Wing(4): rapporto di rastremazione ala
52 %
Wing(5): angolo di freccia [deg]
53 %
Wing(6): spessore percentuale medio
54 %
55 % Fusel: superficie bagnata fusoliera [m]
56 %
57 % Tail:

07/07/06 3.04

C:\Documents and Settings\dedde\Desktop\MATLAB\2.Alta Ve...\NASA_input.m

58 %
Tail(1): area superficie impennaggio orizzontale [m]
59 %
Tail(2): area superficie impennaggio verticale [m]
60 %
Tail(3): tipologia coda:
61 %
convenzionale --> 0
62 %
"T" tail --> 2
63 %
Tail(4): indice impianto propulsivo in coda:
64 %
tail mounted nacelle --> 1
65 %
no tail mounted nacelle --> 0
66 %
67 % Engine:
68
69 %
Engine(2): peso motore [kg]
70 %
Engine(3): spinta motore [kg]
71 %
Engine(4): volume totale serbatoi [m]
72 %
Engine(5): numero serbatoi
73 %
Engine(6): bypass ratio
74 %
Engine(7): diametro fan [m]
75 %
76 % Nacelle:
77 %
Nacelle(1): Inlet ratio
78 %
Nacelle(2): Fan ratio
79 %
Nacelle(3): Fan exhaust ratio
80 %
Nacelle(4): Fan translating strucure ratio
81 %
Nacelle(5): Average cowl core ratio
82 %
Nacelle(6): Thrust reverser diam. - fan diam. ratio
83 %
Nacelle(7): Nozzle length [m]
84 %
Nacelle(8): Horiz. dist. front spar to Eng+Nac c.g. [m]
85 %
Nacelle(9): Height of the pylon box [m]
86 %
Nacelle(10): Side profile area of the pylon [m]
87 %
Nacelle(11): Length of the engine exhaust nozzle [m]
88 %
89 % System:
90 %
System(1): tipo di sistema idraulico
91 %
System(2): tipo di sistema anti ghiaccio
92 %
System(3): tipo di avionica
93
94
95 function [General, Engine, Nacelle, Wing, Fusel, Tail, System] = ...
96
NASA_input(Wto, Wf_Wto, Weng, Tcruise_des, Vtank, BPR, Dfan, ...
97
S, b, AR, lambdaW, sweep25deg, t_c, SwetF, SHt, SVt, nLD3)
98
99 % GENERAL
100
% n passeggeri
101
% n piloti
% n assistenti di cabina
102
103
% disposizione dei sedili
104
% tipo di servizio
% peso complessivo container e pallets [kg]
105
???????????????????????
% peso al decollo [kg]
106
107
% peso zero fuel [kg]
108
% fattore di carico ultimo
???????????????????????????????
109
110 % ENGINE
111
% n motori
112
% peso motore [kg]
% spinta motore [kg]
113

2 of 3

07/07/06 3.04
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152

C:\Documents and Settings\dedde\Desktop\MATLAB\2.Alta Ve...\NASA_input.m


%
%
%
%

3 of 3

volume totale serbatoi [m]


numero serbatoi
bypass ratio
diametro fan [m]

% NACELLE
%
%
%
%
%
%
%
%
%
%
%

Inlet ratio
Fan ratio
Fan exhaust ratio
Fan translating strucure ratio
Average cowl core ratio
Thrust reverser diam. - fan diam. ratio
Nozzle length [m]
Horiz. dist. front spar to Eng+Nac c.g. [m]
Height of the pylon box [m]
Side profile area of the pylon [m]
Length of the engine exhaust nozzle [m]

% WING
%
%
%
%

area superficie alare di riferimento [m]


allungamento alare
apertura alare [m]
rapporto di rastremazione ala
% angolo di freccia [deg]
% spessore percentuale medio (t/c di riferimento)
% FUSELAGE
% superficie bagnata fusoliera [m]
% TAIL
% area superficie impennaggio orizzontale [m]
% area superficie impennaggio verticale [m]
% tipo di coda
% indice impianto propulsivo in coda
%

SYSTEM

???????????????????????????????????
% tipo di sistema idraulico
% tipo di sistema anti ghiaccio
% categoria di navigazione

07/07/06 3.04
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

C:\Documents and Settings\dedde\Desktop\MATLAB\2.Alt...\NASA_weights.m

1 of 10

% MODELLO DI CALCOLO DEI PESI STRUTTURALI


% =======================================
% Il modello sviluppato secondo i contenuti del documento NASA CFR 151970 (April, 1977)
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%

INPUT
----Vedi NASA_input
OUTPUT
-----OWE: Peso a vuoto operativo [kg]
MEW: Manufacturers empty weight [kg]
Wout_split: peso dei vari gruppi costituenti il velivolo [kg]
Wout_split(1): peso strutturale
Wout_split(2): peso unit di potenza
Wout_split(3): peso sistemi
Wout_split(4): peso allestimenti fissi
Wout_split(5): peso operativo
Wout_detail: peso dei vari componenti del velivolo
Wout_detail(1): ala
Wout_detail(2): fusoliera
Wout_detail(3): impennaggio orizzontale
Wout_detail(4): impennaggio verticale
Wout_detail(5): carrelli d'atterraggio
Wout_detail(6): piloni
Wout_detail(7): equipaggiamento motori
Wout_detail(8): sistemi carburante
Wout_detail(9): sistemi ausiliari motori
Wout_detail(10): unit di potenza ausiliaria (APU)
Wout_detail(11): impianto idraulico
Wout_detail(12): impianto aria condizionata
Wout_detail(13): impianto pneumatico
Wout_detail(14): impianto antighiaccio
Wout_detail(15): superfici di controllo
Wout_detail(16): avionica
Wout_detail(17): strumentazione
Wout_detail(18): impianto elettrico
Wout_detail(19): sistemi di carico e movimentazione
Wout_detail(20): allestimenti fissi
Wout_detail(21): olio
Wout_detail(22): equipaggio
Wout_detail(23): sedili equipaggio
Wout_detail(24): documentazione velivolo
Wout_detail(25): sedili passeggeri
Wout_detail(26): servizi per catering
Wout_detail(27): servizi di emergenza
Wout_detail(28): fluidi per bagni e cambuse
Wout_detail(29): container

function [OWE, MEW, Wout_split, Wout_detail] = ...


NASA_weights(General, Wing, Fusel, Tail, Engine, Nacelle, System)

07/07/06 3.04

C:\Documents and Settings\dedde\Desktop\MATLAB\2.Alt...\NASA_weights.m

2 of 10

59
60
61
62
63 % INPUT DATA AND PARAMETER SETTING
64 %--------------------------------65 % GENERAL
66
% n passeggeri
67
% n piloti
% n assistenti di cabina
68
% configurazione dei sedili
69
70
% tipo di servizio
% peso complessivo container e pallets [kg]
71
72
% peso al decollo [kg]
% peso zero fuel [kg]
73
% fattore di carico ultimo
74
75
76 % WING
77
% area superficie alare di riferimento [m]
78
% allungamento alare
% apertura alare [m]
79
% rapporto di rastremazione ala
80
81
% angolo di freccia [deg]
% spessore percentuale medio
82
83
84 % FUSELAGE
85
% superficie bagnata fusoliera [m]
86
87 % TAIL
% area superficie impennaggio orizzontale [m]
88
% area superficie impennaggio verticale [m]
89
90
% tipologia coda
% indice impianto propulsivo in coda
91
92
93 % LANDING GEAR
94
% set to 1 for low pressure tires
95
% set to 1 for increased sink speed
% Increase in sink speed [ft/s] with respect to 10 ft/s
96
% set to 1 kneeling preposition requirements
97
98
% set to 1 for for carbon brakes
99
100 % ENGINE
101
% n motori
102
% peso motore [kg]
% spinta motore [kg]
103
104
% volume totale serbatoi [m]
105
% numero serbatoi
% bypass ratio
106
107
% diametro fan [m]
% type of engine exhaust reversers and nozzles:
108
109
%
1 - cascade or target type reverser with traslating sleeve
110
%
2 - simple target type reverser with separate flowex haust
nozzle
111
%
3 - simple target type reverser with mixed flow exhaust
nozzle
112
%
4 - separate flow engine exhaust system without thrust
reverser
%
5 - short duct engine exhaust system without thrust reverser
113

07/07/06 3.04
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171

C:\Documents and Settings\dedde\Desktop\MATLAB\2.Alt...\NASA_weights.m


% type of engine throttle control system:
%
0 - without auto throttle
%
1 - with auto throttle

% NACELLES
%
%
%
%
%
%
%
%
%
%
%

Inlet ratio
Fan ratio
Fan exhaust ratio
Fan translating strucure ratio
Average cowl core ratio
Thrust reverser diam. - fan diam. ratio
Nozzle length [m]
Horiz. dist. front spar to Eng+Nac c.g. [m]
Height of the pylon box [m]
Side profile area of the pylon [m]
Length of the engine exhaust nozzle [m]

% SYSTEMS
% tipo di sistema idraulico
% tipo di sistema anti ghiaccio
% tipo di avionica

% WING WEIGHT
% ----------% Superficie alare in pianta [ft]
% Carico alare [lb/ft]
% Bending materail weight index IW

% Indice strutturale di resistenza a flessione [lb]


% Peso ala
if sw > 900 % Medium and Large Aircraft
% [lb]
else
% Small Aircraft
% [lb]
end
% [kg]

% FUSELAGE WEIGHT
% --------------% Peso fusoliera
if (Npn>100)
% Medium and Large Aircraft
% [lb]
else
% Small Aircraft
% [lb]
end
% [kg]

% TAIL WEIGHT
% ----------% superficie totale piani di coda [ft]
% peso complessivo Conventional Tail
% Peso impennaggio orizzontale (piano di coda) e impennaggio verticale (deriva)
if VTtype==0

3 of 10

07/07/06 3.04
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229

C:\Documents and Settings\dedde\Desktop\MATLAB\2.Alt...\NASA_weights.m

% Modello di ripartizione tra Fin e Tail Plane aggiunto 01/02/2002


% tail plane [lb]
% fin [lb]
else
% correction added for " T " Tail
% Modello di ripartizione tra Fin e Tail Plane aggiunto 01/02/2002
% tail plane [lb]
% fin [lb]
end
% Tail plane [kg]
% Fin [kg]

% LANDING GEAR WEIGHT


% ------------------% Peso max a decollo [lb]
% Superficie alare in pianta [ft]
% Peso dei vari componenti del gruppo carrelli
if (Npn>100)
% Medium and Large Aircraft
% [lb]
else
% Small Aircraft
% [lb]
end
% peso strutture [lb]
% peso sistemi controllo [lb]
% peso ruote e freni [lb]
% peso pneumatici [lb]
% Special correction terms

% add for low pressure tires


if i_tyres
% [lb]
end
% add for each ft/sec. Increase in sink speed with respect to 10 ft/sec
if i_speed
% [lb]
end
% add for kneeling preposition and inflate/deflate requirements
if i_kneeling
% [lb]
end
% subtract for carbon brakes
if i_carbon_brakes
% [lb]
end
% Peso gruppo carrelli
% [lb]
% [kg]

% PROPULSION SYSTEM WEIGHT (less engine)


% -------------------------------------% fan diameter [m]

4 of 10

07/07/06 3.04
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276

C:\Documents and Settings\dedde\Desktop\MATLAB\2.Alt...\NASA_weights.m


%
%
%
%
%
%
%
%
%
%

5 of 10

engine weight [kg]


lunghezza nozzle [in]
diametro fan [in]
peso motore [lb]
distanza c.g - front spar [in]
altezza riferimento pilone [in]
area laterale pilone [ft]
lunghezza scarico [in]
apertura alare [ft]
Spinta motore [lbst]

Fan thrust reverser


% [lbst] Spinta primary thrust reverser
% [lbst] Spinta fan thrust reverser
% peso complessivo fan reversers [lb]

Engine exhaust reversers and nozzles


% [in] thrust reverser diameter
if(ityrev == 1)
%
elseif(ityrev == 2)
%
elseif(ityrev == 3)
%
elseif(ityrev == 4)
%
else
%
end
%

[lb]
[lb]
[lb]
[lb]
[lb]

Fuel system (commercial)


% [lb]
% [kg] peso sistema alimentazione carbur.

% Engine system
if(ithrle==0)
% without auto throttle
% [lb]
else
% with auto throttle
% [lb]
end
% Peso totale sistemi motori [kg]
% peso totale propulsion system [lb]
% peso totale propulsion systems [kg]
% Nacelle Cowl
vic = ((1.316 + 0.0125*df)*rlidf *df + rlfdf*df+(1.316 + 0.0191*df)*rlfedf*df +

277
% peso totale nacelle cowls [lb]
278
279 % Nacelle Pylon
280
% demountable weigth for the power plant pod
[lb/eng]
281
% pilon index [lb/ft]
282
% peso totale piloni motore [lb]
283
284 % Nacelle Cowl correction for tail mounted S type nacelle
285 if VTtype2 == 1

07/07/06 3.04

C:\Documents and Settings\dedde\Desktop\MATLAB\2.Alt...\NASA_weights.m

6 of 10

286
% weight penalty due to tail
mounted
287
% S type nacelle [lb]
288 else
289
290 end
% peso totale nacelle [lb]
291
292
293
% peso COMPLESSIVO fan reversers [kg]
% peso COMPLESSIVO exaust reversers [kg]
294
% Peso COMPLESSIVO piloni [kg]
295
296
% peso COMPLESSIVO nacelles motori [lb]
297
298 % peso totale equipaggiamnento motori [kg]
299
300
301
302 % SYSTEMS WEIGHT
303 % -------------304 % Flight control and Hydraulics
305 % Electrical
306 % Pneumatic, Air Conditioning and Auxiliary Power
307 % Anti-icing
308 % Furnishing and Equipement
309 % Instruments
310 % Fuel Quantity Instruments
311 % Propulsion Instruments
312 % Other Instruments
313 % Avionics
314 % Load and Handling
315
316
% numero motori
% superficie bagnata fusoliera [m]
317
318
% volume serbatoi [lt]
319
320 % Conversioni unit di misura
321
% Superficie alare in pianta [ft]
% Superficie totale piani coda [ft]
322
% Superficia bagnata fusoliera [ft]
323
324
% Spinta motore [lb]
% Volume totale serbatoi [galloni]
325
326
327 % FLIGHT CONTROLS, HYDRAULICS
328
% superficie combinata ala-coda [ft]
329 if ityhys == 1 % Single Hydraulic system
330
% [lb]
331 else
332
if AAA <= 3000
% Multi-Hydraulic system with (sw + 1.44*st)<=3000)
% [lb]
333
334
else
% Multi-Hydraulic system with (sw + 1.44*st)>3000)
% [lb]
335
336
end
337 end
338
339
% peso sistemi controllo superfici [kg]
% peso sistemi idraulici [kg]
340
341
342

07/07/06 3.04

C:\Documents and Settings\dedde\Desktop\MATLAB\2.Alt...\NASA_weights.m

7 of 10

343 % ELECTRICAL
% peso sistemi elettrici [lb]
344
345
% peso sistemi elettrici [kg]
346
347
348 % PNEUMATIC, AIR CONDITIONING, AUXILIARY POWER
% pneumatic + air conditioning + APU [lb]
349
% APU [kg]
350
351
% pneumatic + air conditioning [lb]
% pneumatic [kg]
352
% air conditioning [kg]
353
354
355
356 % ANTI-ICING
357 if(ianice == 1)
% Nacelle Air Induction and Misc. Only
358
% [lb]
359 elseif(ianice == 2) % Wing Mounted Turbofan or Jet Engines without Tail Anti-icing
360
% [lb]
361 elseif(ianice == 3) % Wing Mounted Turbofan or Jet Engines with Tail Anti-icing
362
% [lb]
363 elseif(ianice == 4) % Fuselage and/or Tail Mounted Turbofan or Jet Engines with Tail Antiicing
364
% [lb]
365 else
% Wing Mounted Turboprop Engines with Tail Anti-icing
% [lb]
366
367 end
368
369
% peso sistemi anti ghiaccio [kg]
370
371
372 % INSTRUMENTS
373
% [lb]
% Peso strumentazione [kg]
374
375
376
377 % AVIONICS
378 if (iavion == 1)
% General Aviation
379
% [lb]
380 elseif(iavion == 2) % Category I or II Domestic
381
% [lb]
382 elseif(iavion == 3) % Category I or II Overwater
% [lb]
383
384 elseif(iavion == 4) % Category III Domestic
385
% [lb]
386 else (iavion == 5) % Category III Overwater
387
% [lb]
388 end
% Peso avionica [kg]
389
390
391
392 % LOAD AND HANDLING
393
% peso sistemi di carico e movimentazione [lb]
% peso sistemi di carico e movimentazione [kg]
394
395
396
397 % FURNISHINGS
398 if Npn < 80
% Commercial Npn <= 80
399
% [lb]

07/07/06 3.04
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457

C:\Documents and Settings\dedde\Desktop\MATLAB\2.Alt...\NASA_weights.m

else

% Commercial

Npn > 80
% [lb]

end
% peso allestimenti fissi [kg]

% OPERATING WEIGHT
% ---------------% UNUSABLE FUEL, OIL FOR ENGINES, OIL FOR APU
% [kg] following Torenbeek
% CREW
% [Kg] following AEA requirements
% CREW SEATS
if Serv_type == 1
% following Raymer and Torenbeek [kg]
else
% following Raymer and Torenbeek [kg]
end
% AIRCRAFT DOCUMENT AND TOOL KIT
% [kg] may be reduce to 2 kg for modern CD manuals
% PASSENGERS SEATS

if Serv_type == 1
% [Kg] following Torenbeek
% [Kg] following Torenbeek
% [Kg] following Torenbeek
else
% [Kg] following Torenbeek
% [Kg] following Torenbeek
% [Kg] following Torenbeek
end

for i=1:3
if ns(i)==0
elseif ns(i)==1
elseif ns(i)==2
elseif ns(i)==3
elseif ns(i)==4
elseif ns(i)==5
else
error('Invalid Seats Abreast Parameter')

8 of 10

07/07/06 3.04
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515

C:\Documents and Settings\dedde\Desktop\MATLAB\2.Alt...\NASA_weights.m

end
end
if ns(i)==0
elseif ns(i)==1
elseif ns(i)==2
elseif ns(i)==3
elseif ns(i)==4
elseif ns(i)==5
elseif ns(i)==6
elseif ns(i)==7
elseif ns(i)==8
else
error('Invalid Seats Abreast Parameter')
end
% GALLEY STRUCTURES, TABLES AND BABY BASSINETS, CATERING
if Serv_type == 3
% following AEA requirements [kg]
else
% following AEA requirements [kg]
end
% EMERGENCY
if Serv_type == 3
% following AEA requirements [kg]
else
% following AEA requirements [kg]
end
% WATER FOR GALLEY AND TOILETS, FLUIDS FOR TOILETS
if Serv_type == 1
% following Simpking & Rhodes [kg]
elseif Serv_type == 2
% following Simpking & Rhodes [kg]
else
% following Simpking & Rhodes [kg]
end

% OUTPUT
% -----% Peso strutturale
% Peso unit di potenza
% Peso sistemi
W_SYSTEMS = W_APU + W_hydr + W_air_cond + W_pneum + W_anti_ice + ...

9 of 10

07/07/06 3.04
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533

C:\Documents and Settings\dedde\Desktop\MATLAB\2.Alt...\NASA_weights.m

10 of 10

% Peso allestimenti
% Peso operativo
W_OPERATING = W_oil + W_crew + W_seat_cr + W_acdocs + W_seat_pax + ...

07/07/06 3.04

C:\Documents and Settings\dedde\Desktop\MATLAB\2.Alta Velocit\ndep.m

% Manufacturers Empty Weight


% allowances for 350 Kg supplemental avionics on buyer
% request plus 2% tolerance on MEW
% Operating Empty Weight

Wout_detail = [W_wing W_fuselage W_tailplane W_fin W_Landing_gear ...


W_pylon W_Equipped_engines Wfuelsys Wengsys ...
W_APU W_hydr W_air_cond W_pneum W_anti_ice W_fl_cntr ...
W_avn W_instr W_electric W_loadhand W_furn W_oil W_crew ...

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

function
%------------------------------------------------------------------------------%- funtion to calculate perimeter to chord ratio of a given airfoil geometry
%%- Inputs:
%- Outputs:
%- Used function and routines:
%------------------------------------------------------------------------------%------------------------------------------------------------------------------if col~=3
error('Function ndep. Input must be a mx3 matrix of airfoil geometry.')
end

%------------------------------------------------------------------------------%- Compute chord


%------------------------------------------------------------------------------%------------------------------------------------------------------------------%- Compute perimeter
%-------------------------------------------------------------------------------

for i=1:(row-1)

end

1 of 1

07/07/06 3.05

C:\Documents and Settings\dedde\Desktop\MATLAB\2.Alta Velocit\ndsa.m

1 of 2

1 % CALCOLO DEL RAPPORTO AREA/CORDA DI UN PROFILO ALARE DI GEOMETRIA ASSEGNATA TRA UNA SEZIONE
INIZIALE E UNA
2 %
===============================================================================================
==========
3 % SEZIONE FINALE DEL PROFILO
4 % ==========================
5
6 % INPUT
7 % ----8 % in: vettore di 3 elementi contenente le propriet del profilo alare da analizzare. La
prima colonna
9 %
contiene la spaziatura dei punti in cui viene suddivisa la corda del profilo,
adimensionalizzata
10 %
(corda=1). Il primo elemento il TE (trailing edge x=1) e l'ultimo il LE (leading
edge x=0).
11 %
La seconda e la terza colonna contengono rispettivamente le coordinate del dorso e
del ventre dei
12 %
profili in corrispondenza dei punti selezionati.
13 % xLE: posizione del punto iniziale del profilo a partire dal quale si vuole calcolare
l'area sottesa dal
14 %
profilo
15 % xTE: posizione del punto finale del profilo a partire dal quale si vuole calcolare l'area
sottesa dal
16 %
profilo
17
18 % OUTPUT
19 % -----20 % area: rapporto area della sezione del profilo / corda al quadrato
21
22
23
24 function area = ndsa(in,xLE,xTE)
25
26 % Ascisse dei punti in cui suddiviso il profilo: da 1 a 0
27
28 % Coordinata dei punti del dorso del profilo
29
30 % Coordinata dei punti del ventre del profilo
31
32
33 % Calcolo dello spessore del profilo lungo la corda (t/c)
34
35
36 % Calcolo della corda
37
38
39
40
41
42
43 %
-----------------------------------------------------------------------------------------------------44 % Funzione integranda per il calcolo dell'area del profilo tra LE e TE
45
46 function F = integrando_area(x,xdata,h_airfoil)
47

07/07/06 3.05

C:\Documents and Settings\dedde\Desktop\MATLAB\2.Alta Velocit\ndsa.m

48
% Interpolo i dati ottenuti dalla function airfoil e calcolo lo spessore del
profilo tra LE e TE
49
F = interp1(xdata,h_airfoil,x,'spline'

2 of 2

07/07/06 3.05

07/07/06 3.05
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

%
%
%
%
%
%
%
%
%
%
%
%
%
%

C:\Documents and Settings\dedde\Desktop\MATLAB\2.Alta Ve...\oswald_fun.m

Fattore d efficienza di Oswald


-----------------------------e = oswald_fun(AR, lambdaW, CD0)
Input
----AR: allungamento alare (aspect ratio)
lambdaW: rapporto di rastremazione dell'ala
CDo: coefficiente di resistenza parassita
Output
-----e: fattore di efficienza di Oswald

function e = oswald_fun(AR, lambdaW, CD0)


% Dati da interpolare

% Calcolo coefficiente C1
C1 = interp2(x,y,z,lambdaW,AR,'cubic'
% Calcolo coefficiente C2 e fattori di correzione dovuti a viscosit e twist

% Calcolo fattore di efficienza di Oswald

1 of 1

C:\Documents and Settings\dedde\Desktop\MATLAB\2.Alta ...\plotgrafici4.m

1 of 3

1 %plot dei risultati


2 clear all
3 clc
4 load config
5
6
7
8
9 xstr={'W_t_o [kg]' 'W_f_u_e_l [kg]' 'W_e_o [kg]' 'W_e [kg]' 'W_d_e_s [kg]'
'\Lambda_2_5 [deg]'
10
11 for i=1:3
12
for k=1:3
13
for j=1:3
14
%S
15
16
%Wto
%Wfuel
17
%Weo
18
19
%We
%Wdes
20
%swep25deg
21
22
end
23
24
for g=1:6
25
26
figure(g)
27
28
29
30
hold on
31
title(['M=' num2str(M(i)) '
t/c=' num2str(t_c(k))],'FontSize',
8,'FontWeight','b')
32
box on
33
plot(S(i,1,k).s,var(i,1,k).graf(:,g),'b',S(i,2,k).s,var(i,2,k).graf(:,g),'r',S
(i,3,k).s,var(i,3,k).graf(:,g),'g')
34
35
if g~=6
36
if (g == 1)|(g == 5)
37
legend('AR=7','AR=8','AR=9','Location', 'SouthWest'
38
else
39
legend('AR=7','AR=8','AR=9'
40
end
41
%set(gca,'YLim',[0 6e4],'LineWidth',1.5)
42
else
43
if i > 1
44
legend('AR=7','AR=8','AR=9','Location', 'SouthWest'
45
%set(gca,'YLim',[10 31],'LineWidth',1.5)
46
string = {['\color{blue}S_m_D = ' num2str(S(i,1,k).s(1),'%6.0f') '
'
'\color{blue}\Lambda_2_5 _m_D = ' num2str(var(i,1,k).graf(1,6),'%6.0f')],
47
['\color{red}S_m_D = ' num2str(S(i,2,k).s(1),'%6.0f') '
'
'\color{red}\Lambda_2_5 _m_D = ' num2str(var(i,2,k).graf(1,6),'%6.0f')],
48
['\color{green}S_m_D = ' num2str(S(i,3,k).s(1),'%6.0f') '
'
'\color{green}\Lambda_2_5 _m_D = ' num2str(var(i,3,k).graf(1,6),'%6.0f'
49
50
%text(105,13,string,'FontSize',8)
51
text(105,var(i,1,k).graf(5,g),string,'FontSize',8)
else
52

07/07/06 3.05

C:\Documents and Settings\dedde\Desktop\MATLAB\2.Alta ...\plotgrafici4.m

53
legend('AR=7','AR=8','AR=9'
54
%set(gca,'YLim',[10 31],'LineWidth',1.5)
55
string = {['\color{blue}S_m_D = ' num2str(S(i,1,k).s(1),'%6.0f') '
'\color{blue}\Lambda_2_5_m_D = ' num2str(var(i,1,k).graf(1,6),'%6.0f')],
56
['\color{red}S_m_D = ' num2str(S(i,2,k).s(1),'%6.0f') '
'\color{red}\Lambda_2_5_m_D = ' num2str(var(i,2,k).graf(1,6),'%6.0f')],
57
['\color{green}S_m_D = ' num2str(S(i,3,k).s(1),'%6.0f') '
'\color{green}\Lambda_2_5_m_D = ' num2str(var(i,3,k).graf(1,6),'%6.0f'
58
59
%text(85,28,string,'FontSize',8)
60
text(85,var(i,1,k).graf(5,g),string,'FontSize',8)
61
end
62
end
63
64
if g == 1
65
string = {['\color{blue}S_m_D = ' num2str(S(i,1,k).s(1),'%6.0f') '
'
{blue}W_T_O _m_D = ' num2str(var(i,1,k).graf(1,1),'%6.0f')],
66
['\color{red}S_m_D = ' num2str(S(i,2,k).s(1),'%6.0f') '
'
{red}W_T_O _m_D = ' num2str(var(i,2,k).graf(1,1),'%6.0f')],
67
['\color{green}S_m_D = ' num2str(S(i,3,k).s(1),'%6.0f') '
'
{green}W_T_O _m_D = ' num2str(var(i,3,k).graf(1,1),'%6.0f'
68
69
%text(105,8000,string,'FontSize',8)
70
text(105,var(i,1,k).graf(5,g),string,'FontSize',8)
71
72
elseif g == 2
73
string = {['\color{blue}S_m_D = ' num2str(S(i,1,k).s(1),'%6.0f') '
'
{blue}W_f_u_e_l _m_D = ' num2str(var(i,1,k).graf(1,2),'%6.0f')],
74
['\color{red}S_m_D = ' num2str(S(i,2,k).s(1),'%6.0f') '
'
{red}W_f_u_e_l _m_D = ' num2str(var(i,2,k).graf(1,2),'%6.0f')],
75
['\color{green}S_m_D = ' num2str(S(i,3,k).s(1),'%6.0f') '
'
{green}W_f_u_e_l _m_D = ' num2str(var(i,3,k).graf(1,2),'%6.0f'
76
77
%text(85,51000,string,'FontSize',8)
78
text(85,var(i,1,k).graf(5,g),string,'FontSize',8)
79
80
elseif g == 3
81
string = {['\color{blue}S_m_D = ' num2str(S(i,1,k).s(1),'%6.0f') '
'
{blue}W_e_o _m_D = ' num2str(var(i,1,k).graf(1,3),'%6.0f')],
82
['\color{red}S_m_D = ' num2str(S(i,2,k).s(1),'%6.0f') '
'
{red}W_e_o _m_D = ' num2str(var(i,2,k).graf(1,3),'%6.0f')],
83
['\color{green}S_m_D = ' num2str(S(i,3,k).s(1),'%6.0f') '
'
{green}W_e_o _m_D = ' num2str(var(i,3,k).graf(1,3),'%6.0f'
84
85
%text(85,51000,string,'FontSize',8)
86
text(85,var(i,1,k).graf(5,g),string,'FontSize',8)
87
88
elseif g == 4
89
string = {['\color{blue}S_m_D = ' num2str(S(i,1,k).s(1),'%6.0f') '
'
{blue}W_e _m_D = ' num2str(var(i,1,k).graf(1,4),'%6.0f')],
90
['\color{red}S_m_D = ' num2str(S(i,2,k).s(1),'%6.0f') '
'
{red}W_e _m_D = ' num2str(var(i,2,k).graf(1,4),'%6.0f')],
91
['\color{green}S_m_D = ' num2str(S(i,3,k).s(1),'%6.0f') '
'
{green}W_e _m_D = ' num2str(var(i,3,k).graf(1,4),'%6.0f'
92
93
%text(85,51000,string,'FontSize',8)
94
text(85,var(i,1,k).graf(5,g),string,'FontSize',8)
95

2 of 3

'
'
'

'\color
'\color
'\color

'\color
'\color
'\color

'\color
'\color
'\color

'\color
'\color
'\color

07/07/06 3.05

C:\Documents and Settings\dedde\Desktop\MATLAB\2.Alta ...\plotgrafici4.m

3 of 3

96
elseif g == 5
97
string = {['\color{blue}S_m_D = ' num2str(S(i,1,k).s(1),'%6.0f') '
' '\color
{blue}W_d_e_s _m_D = ' num2str(var(i,1,k).graf(1,5),'%6.0f')],
98
['\color{red}S_m_D = ' num2str(S(i,2,k).s(1),'%6.0f') '
' '\color
{red}W_d_e_s _m_D = ' num2str(var(i,2,k).graf(1,5),'%6.0f')],
99
['\color{green}S_m_D = ' num2str(S(i,3,k).s(1),'%6.0f') '
' '\color
{green}W_d_e_s _m_D = ' num2str(var(i,3,k).graf(1,5),'%6.0f'
100
101
%text(105,8000,string,'FontSize',8)
102
text(105,var(i,1,k).graf(5,g),string,'FontSize',8)
103
104
end
105
106
box on
107
set(gca,'XLim',[80 140],'LineWidth',1.5)
108
109
110
set(legend,'FontSize',6,'FontWeight','b')
111
112
subplot(3,3,4)
113
ylabel(xstr(g),'FontSize',10,'FontWeight','b')
114
115
subplot(3,3,8)
116
xlabel('S [m]','FontSize',10,'FontWeight','b')
117
end
118
end
119 end
120
121 %line([Sr(1,1,1).Sz(5) Sr(1,1,1).Sz(5)],[pesi(1,1,1).Wdes(1) pesi(1,1,1).Wdes(5)])
122 %line([Sr(1,1,1).Sz(1) Sr(1,1,1).Sz(5)],[pesi(1,1,1).Wdes(5) pesi(1,1,1).Wdes(5)])
123
124 %line([Sr(2,1,1).Sz(5) Sr(2,1,1).Sz(5)],[pesi(2,1,1).Wdes(1) pesi(2,1,1).Wdes
(5)],'Color','r')
125 %line([Sr(2,1,1).Sz(1) Sr(2,1,1).Sz(5)],[pesi(2,1,1).Wdes(5) pesi(2,1,1).Wdes
(5)],'Color','r')
126 %axis xy
127
128

07/07/06 3.05
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

%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%

C:\Documents and Settings\dedde\Desktop\MATLAB\2.Alta Velocit\pylon.m

1 of 1

Dimensionamento piloni
---------------------[b_eng, c_eng, c_pyl] = pylon(b, bK, cR, cK, cT, etaR, LFC,
LFf_DFC, DFC, LGC)
Input
----b: apertura alare al tip [m]
bK: apertura alare al kink [m]
cR: corda dell'ala al root [m]
cK: corda dell'ala al kink [m]
cT: corda dell'ala al tip [m]
etaR: posizione adimensionalizzata del root dell'ala
LFC: lunghezza della gondola (parte anteriore) [m]
LFf_DFC: parametro LFf_DFC della gondola
DFC: diametro della gondola [m]
LGC: lunghezza della gondola (parte posteriore) [m]
Output
-----b_eng: apertura alare in corrispondenza della posizione del motore [m]
c_eng: corda dell'ala in corrispondenza della posizione del motore [m]
c_pyl: corda del pilone all'attacco sulla gondola [m]

function [b_eng, c_eng, c_pyl] = pylon(b, bK, cR, cK, cT, etaR, LFC, LFf_DFC, DFC, LGC)
%xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx%
%TESTER
%

%xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx%
% apertura alare in corrispondenza della posizione del motore
% posizione trasversale motore rispetto all'asse fusoliera
% posizione root dell'ala rispetto all'asse fusoliera
% posizione kink dell'ala rispetto all'asse fusoliera
% posizione tip dell'ala rispetto all'asse fusoliera

% corda dell'ala in corrispondenza dell'attacco del motore


if yeng < yK
else
end
% corda del pilone all'attacco sulla gondola (SFD)

%b_eng, c_eng, c_pyl

07/07/06 3.06
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

%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%

C:\Documents and Settings\dedde\Desktop\MATLAB\2.Alta Velocit\sweep.m

Angolo di freccia - Modello di Mason


-----------------------------------[sweep25] = sweep(Mdd, CL, t_c)
Si suppone di volare ad un mach di crociera pari al Mdd
Input
----Mdd: mach di drag rise
CL: coefficiente di portanza (design)
t_c: spessore percentuale dell'ala di riferimento (profilo a met tra
kink e tip)
Output
-----sweep25: angolo di freccia al 25% della corda [rad]
sweep25deg: angolo di freccia al 25% della corda [deg]

function [sweep25,sweep25deg]=sweep(Mdd,CL,t_c)
%xxxxxxxxxxx
%TESTER
%

%xxxxxxxxxxx
% Parametri di correlazione

if CL>0
MddStar

= KDD0/cos_sweepStar - ...
KDDtc*t_c/cos_sweepStar^2 - ...

else

end
if Mdd>MddStar
warning('Function sweep: Richiesto Mach di drag rise troppo alto.')
else

1 of 2

07/07/06 3.06

C:\Documents and Settings\dedde\Desktop\MATLAB\2.Alta Velocit\sweep.m

59
if Mdd<MddMin
60
61
else
62
63
64
65
66
67
68
69
70
71
if isempty(fs2)
72
73
else
74
75
if isempty(fs1)
76
77
else
78
79
end
80
end
81
if abs(sol-1.0)<0.0001
82
83
else
84
85
end
86
end
87 end
88
89
90
91 %sweep25,sweep25deg

2 of 2

07/07/06 3.06
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

%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%

C:\Documents and Settings\dedde\Desktop\MATLAB\2.Alta Velocit\Swet.m

Superficie bagnata di un'ala trapezia


------------------------------------La function calcola la superficie bagnata di un'ala trapezia
integrando tra la radice e l'estremit il prodotto della corda
e del rapporto perimetro/corda (ndep)
Sww = Swet(L, c1, c2, sect1, sect2, m)
Input
----L:
c1:
c2:
sect1:
sect2:
m:

lunghezza della parte di ala considerata (da una sezione ad un'altra) [m]
corda all'estremit iniziale [m]
corda all'estremit finale [m]
propriet del profilo alare che si trova all'estremit iniziale
propriet del profilo alare che si trova all'estremit finale
numero dei punti in cui si valuta il contorno del profilo

Output
-----Sww: superficie bagnata della superficie alare considerata

function Sww = Swet(L, c1, c2, sect1, sect2, m)


%xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx%
%TESTER
%

%xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx%
% Discretizzazione dell'ala lungo l'apertura
% numero di tratti in cui viene suddivisa l'ala

% coordinata adimensionale del profilo lungo l'apertura dell'ala

% Andamento delle corde dei profili

% Calcolo di ndep (rapporto perimetro/corda) -----------------------------%


for j=1:n
%
for i=1:m
%
%
%
%
%
%
end %
|
Attivare per trovare
%
|--- la coordinata adim
%[vmax,imax]=max(x)% <-------------------------|
del max spessore

%
%
%

1 of 2

07/07/06 3.06
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
85
86
87
88
89
90
91
92
93

C:\Documents and Settings\dedde\Desktop\MATLAB\2.Alta Velocit\Swet.m

%x(imax(2),1)

%
%
%
%
end
%
%-------------------------------------------------------------------------%

2 of 2

% <-------------------------|

%Calcolo superficie bagnata (ALA COMPLETA)


%=====================================%
%
%=====================================%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%La sezione seguente calcola la sup bagnata ipotizzando che sia ndep ad %
%avere un andamento lineare e non le dimesioni dei profili
%
%hold on
%
%for k=1:m
%

%end
%

%
%

%plot(eta,ndep_L,'r')
%plot(eta,ndep_span)

%
%

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

07/07/06 3.06
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22

%
%
%
%
%
%
%
%
%
%
%
%
%
%

C:\Documents and Settings\dedde\Desktop\MATLAB\2.Alta...\Swet_fuselage.m

Superficie bagnata fusoliera


---------------------------SwetF = Swet_fuselage(L,H,W)
Input
----L: lunghezza fusoliera [m]
H: altezza fusoliera
[m]
W: larghezza fusoliera [m]
Output
-----SwetF: superficie bagnata della fusoliera [m]

function SwetF = Swet_fuselage(L,H,W)

1 of 1

07/07/06 3.06
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

%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%

C:\Documents and Settings\dedde\Desktop\MATLAB\2.Alta ...\Swet_nacelle.m

Superficie bagnata GONDOLA motore


--------------------------------SwetN = Swet_nacelle(LFC, DFC, LFf_DFC, Dlh, DFe, LGC, DGC, DGe)
Input
----LFC [m]
DFC [m]
LFf_DFC
Dlh [m]
DFe [m]
LGC [m]
DGC [m]
DGe [m]

|
|
|
| > Dimensioni gondola motore
|
|
|
|

Output
-----SwetN: superficie bagnata di UNA gondola motore [m]

function SwetN = Swet_nacelle(LFC, DFC, LFf_DFC, Dlh, DFe, LGC, DGC, DGe)

1 of 1

07/07/06 3.06
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

%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%

C:\Documents and Settings\dedde\Desktop\MATLAB\2.Alta Ve...\Swet_pylon.m

Superficie bagnata di un pilone


------------------------------SwetP = Swet_pylon(c_pyl, c_eng)
Per i piloni si utilizza il profilo alare utilizzato per gli impennaggi
(NACA 63A010)
Come indicato dalla sigla del profilo lo spessore percentuale del profilo
il 10% (ultime 2 cifre dell'indicazione)
Input
----c_pyl: corda piloni all'attacco sulle gondole [m]
c_eng: corda dell'ala corrisondente alla posizione dei motori [m]
Output
-----SwetP: superficie bagnata di un pilone [m]

function SwetP = Swet_pylon(c_pyl, c_eng)


%xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx%
%TESTER
%
%xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx%
% Propriet del profilo --------------------------------------------------%
% rapporto t/c per un profilo NACA 63A010
%
% numero di punti in cui calcolo le dimensioni del profilo%
pyl_sect_id = './airfoil_data/N63010A.dat'
%
%
%-------------------------------------------------------------------------%
% altezza del pilone
% Calcolo superficie bagnata ==========================%
% Si divide per 2 visto che il pilone una semiala
%
%
%======================================================%

1 of 1

07/07/06 3.07

07/07/06 3.06
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

%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%

C:\Documents and Settings\dedde\Desktop\MATLAB\2.Alta Vel...\Swet_tail.m

Superfici bagnate degli impennaggi di coda


-----------------------------------------Si utilizza il profilo alare NACA 63A010 (Spessore percentuale al 10%
come indicato dalle ultime due cipre della sigla)
[Swet_Ht, Swet_Vt] = Swet_tail(yRHt, cRHt, cRVt, cTHt, cTVt, bHt, hVt)
Input
----yRHt:
cRHt:
cRVt:
cTHt:
cTVt:
bHt:
hVt:

ordinata del root rispetto all'asse di fus


corda alla radice della coda orizzontale
corda alla radice della coda verticale
corda al tip della coda orizzontale
corda al tip della coda verticale
apertura alare della coda orizzontale
apertura alare della coda verticale

[m]
[m]
[m]
[m]
[m]
[m]
[m]

Output
-----SwetHt: superficie bagnata impennaggio orizzontale [m]
SwetVt: superficie bagnata impennaggio verticale
[m]

function [SwetHt, SwetVt] = Swet_tail(yRHt, cRHt, cRVt, cTHt, cTVt, bHt, hVt)
%xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx%
%TESTER
%

%xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx%
% Propriet del profilo degli impennaggi ---------------------------------%
% rapporto t/c per un profilo NACA 63A010
%
% numero di punti in cui calcolo le dimensioni del profilo%
tail_sect_data = './airfoil_data/N63010A.dat'
%
%
%-------------------------------------------------------------------------%
% Calcolo superficie bagnata ---------------------------------------------%
% Coda orizzontale
% posizione dell'estremit (tip)
% lunghezza dal root al tip di una semicoda
%-------------------------------------------------------------------------% Coda verticale
%il /2 tiene di conto il fatto che il pennone verticale una semiala
%--------------------------------------------------------------------------

1 of 1

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

%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%

C:\Documents and Settings\dedde\Desktop\MATLAB\2.Alta Vel...\Swet_wing.m

Suerficie bagnata ala


--------------------SwetW = Swet_wing(cR, cT, cK, b, bK, etaR, t_cR, t_cK, t_cT)
sc_root: profilo alla radice
sc_kink: profilo al kink
sc_tip: profilo all'estremit
Input
----cR:
cK:
cT:
b:
bK:
etaR:
t_cR:
t_cK:
t_cT:

corda alla radice dell'ala [m]


corda al kink dell'ala [m]
corda al tip dell'ala [m]
apertura alare [m]
apertura alare al kink [m]
posizione della radice dell'ala
spessore percentuale al root
spessore percentuale al kink
spessore percentuale al tip

Output
-----SwetW: superficie bagnata dell'ala [m]

function SwetW = Swet_wing(cR, cT, cK, b, bK, etaR, t_cR, t_cK, t_cT)
%xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx%
%TESTER
%

%xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx%
% Ordinate dei vari profili -------%
% posizione del root %
% posizione del kink %
% posizione del tip %
%----------------------------------%
% Profili alari --------------------------------------------------%
%
%
% numero di punti in cui calcolo le dimensioni del profilo %
%
%
% Profilo alla radice (root)
%
root_sect_data = './airfoil_data/sc_root.dat'
%
%
% Profilo al kink
%
kink_sect_data = './airfoil_data/sc_kink.dat'
%
%
% Profilo all'estremit (tip)
%
tip_sect_data = './airfoil_data/sc_tip.dat'
%
%
%-----------------------------------------------------------------%
% Calcolo superficie bagnata ---------------------------------------------%
% Si considera l'ala con kink come unione di 2 ali trapezie: le 2 parti
%
% sono la parte interna e la parte esterna al kink
%

1 of 2

07/07/06 3.07
58
59
60
61
62
63
64
65
66
67

C:\Documents and Settings\dedde\Desktop\MATLAB\2.Alta Vel...\Swet_wing.m

%
%
%
%
%
% distanza dal kink al tip di una semiala
%
%
%
%
%=========================================================================%
%
%=========================================================================%
% distanza dal root al kink di una semiala

2 of 2

07/07/06 3.07
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

%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%

C:\Documents and Settings\dedde\Desktop\MATLAB\2.Alta Velocit\tail.m

Dimensionamento superfici di coda


--------------------------------[SHt, sweepHt, ARHt, bHt, lambdaHt, cRHt, cTHt,...
macHt, xmacHt, ymacHt, LHt, yRHt, SVt, sweepVt,...
ARVt, hVt, lambdaVt, cRVt, cTVt, macVt, xmacVt, ymacVt,...
LVt] = tail(S,L,b,mac,sweep25)

Input
----S:
L:
b:
mac:
sweep25:

superficie di riferimento dell'ala [m]


lunghezza della fusoliera [m]
apertura alare dell'ala [m]
corda media aerodinamica dell'ala [m]
freccia al 25% della corda dell'ala [rad]

Output
-----IMPENNAGGIO ORIZZONTALE
SHt: superficie di coda necessaria [m]
sweepHt: freccia al 25% della corda [rad]
ARHt: allungamento alare
bHt: apertura alare coda orizzontale[m]
lambdaHt: rapporto di rastremazione
cRHt: corda alla radice [m]
cTHt: corda all'estremit [m]
macHt: corda media aerodinamica [m]
xmacHt: ascissa della corda media aerodinamica [m]
ymacHt: ascissa della corda media aerodinamica [m]
LHt: distanza tra i punti al 25% della mac dell'ala e della coda orizzontale
yRHt: Posizione della radice della coda orizzontale
IMPENNAGGIO VERTICALE
SVt: superficie di coda necessaria [m]
sweepVt: freccia al 25% della corda [rad]
ARVt: allungamento alare
hVt: semi-apertura alare coda verticale [m]
lambdaVt: rapporto di rastremazione
cRVt: corda alla radice [m]
cTVt: corda all'estremit [m]
macVt: corda media aerodinamica [m]
xmacVt: ascissa della corda media aerodinamica [m]
ymacVt: ascissa della corda media aerodinamica [m]
LVt: distanza tra i punti al 25% della mac dell'ala e della coda verticale

function [SHt, sweepHt, ARHt, bHt, lambdaHt, cRHt, cTHt,...


macHt, xmacHt, ymacHt, LHt, yRHt, SVt, sweepVt,...
ARVt, hVt, lambdaVt, cRVt, cTVt, macVt, xmacVt, ymacVt,...
LVt] = tail(S,L,b,mac,sweep25)
global r2d d2r
%xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx%
%TESTER
%

1 of 3

07/07/06 3.07
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
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115

C:\Documents and Settings\dedde\Desktop\MATLAB\2.Alta Velocit\tail.m

%xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx%
%%%%PARMAMETRI DECISIONALI%%%%%%%%
% LHt/L
[0.50,0.55]%
% LVt/LHt
[0.90,1.00]%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%PARAMETRI PROGETTUALI%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
| Coefficienti del volume di coda
%
% |
%
%
%
% | Rapporti di ratremazione
%
% |
%
%
%
% | Maggiorazioni sulla freccia rispetto a sweep25
%
% |
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

% Impennaggio orizzontale
% ------------------------------------------------------------------------%
% Ordinata della radice della coda orizzontale. Si ipotizza che%
% la fusoliera sia diminuita di circa il 50% in larghezza.
%
% Coincide con la larghezza di fusoliera all'altezza della coda%
%
%
% Lunghezza della fusoliera rettificata per un'aereo con motori sulle ali %
%[m]
%
% Superficie orizzontale di coda
%
%[m]
%
%
%
% Freccia al 25% della corda
%
%
% [deg]
%
% [rad]
%
% Aspect Ratio
%
%
% Apertura alare [m]
%
%
% Corda alla radice [m]
%
%
% Corda all'estremit [m]
%
%
% Freccia al bordo d'attacco [rad]
%
%
% Corda media aerodinamica e sua posizione [m]
%
%
%-------------------------------------------------------------------------%

% Impennaggio verticale
% ------------------------------------------------------------------------%
% Lunghezza della fusoliera rettificata per un'aereo con motori sulle ali %
% [m]
%
% Superficie verticale di coda [m]
%
%
%
% Freccia al 25% della corda
%
% [deg]
%

2 of 3

07/07/06 3.07
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132

C:\Documents and Settings\dedde\Desktop\MATLAB\2.Alta Velocit\tail.m


% [rad]

%
%
% Aspect Ratio
%
%
% Altezza della coda [m]
%
%
% Corda alla radice [m]
%
%
% Corda all'estremit [m]
%
%
% Freccia al bordo d'attacco [rad]
%
%
% Corda media aerodinamica e sua posizione [m]
%
%
%-------------------------------------------------------------------------%
%yRHt,cRHt,cRVt,cTHt,cTVt,bHt,hVt,sweepHt,sweepVt

3 of 3

07/07/06 3.07

C:\Documents and Settings\dedde\Desktop\MATLAB\2.Alta V...\tank_volume.m

1 % Volume dei serbatoi


2 % ------------------3 %
4 % Vtank = tank_volume(b, bK, etaR, t_cR, t_cK, t_cT, cR, cK, cT, lambdaN)
5 %
6 % Input
7 % ----8 %
b: apertura alare [m]
9 %
bK: apertura alare al kink [m]
10 %
etaR: coordinata adimensionalizzata del root rispetto all'asse della
11 %
fusoliera
12 %
t_cR: spessore percentuale del profilo alare al root
13 %
t_cK: spessore percentuale del profilo alare al kink
14 %
t_cT: spessore percentuale del profilo alare al tip
15 %
cR: corda al root [m]
16 %
cK: corda al kink [m]
17 %
cT: corda al tip [m]
18 % lambdaN: rapporto di rastremazione cT/cRn
19 %
20 % Output
21 % -----22 % Vtank: volume complessivo dei serbatoi [m]
23
24
25 function [Vtank,Vtank_fus] = tank_volume(b, bK, etaR, t_cR, t_cK, t_cT, cR, cK, cT,
lambdaN)
26
27
28 %PARAMETRI DIMENSIONALI PER I SERBATOI xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx%
29
%Rapporto tra corda-serbatoio al K e corda al K [0.47,0.5] %
%Rapporto tra corda-serbatoio al R e corda cRn [0.47,0.5] %
30
31
%Rapporto tra ordinata TipTank e ordinata Tip [0.76,0.82] %
32 %xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx%
33
34 % Posizioni delle varie sezioni dell'ala rispetto all'asse della fusoliera%
% 2 x distanza CL-T [m]
%
35
36
% 2 x distanza CL-K [m]
%
% 2 x distanza CL-R [m]
%
37
% 2 x distanza CL-TT [m]
%
38
39
%
40 % Posizione relative tra le varie sezioni dell'ala
%
41
% distanza R-K [m]
%
42
% distanza R-T [m]
%
43
% distanza TT-R [m]
%
% distanza T-K [m]
%
44
45
% distanza TT-K [m]
%
46 %-------------------------------------------------------------------------%
47
48 % Corde e bordi del cassone alare ----------------------------------%
49 % Corda al tip tank
%
%
50
51 % Corda al root per l'ala trapezia
%
%
52
53
%
54 % Corde del cassone alare
%
55
% root
%
56
% kink
%
% tip
%
57

1 of 3

07/07/06 3.07
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
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
%
112
113

C:\Documents and Settings\dedde\Desktop\MATLAB\2.Alta V...\tank_volume.m


% tip tank

%
%
% Bordi di attacco e di uscita delle varie sezioni del cassone
%
% Kink
%
%
%
% Tip
%
%
%
% Root
%
%
%
% Tip tank
%
%
%
%-------------------------------------------------------------------%
% Propriet dei profili alari --------------------------------------------%
%
% Profilo al root
%
root_sect_id = './airfoil_data/sc_root.dat'
%
%
% Profilo al kink
%
kink_sect_id = './airfoil_data/sc_kink.dat'
%
%
% Profilo al tip
%
tip_sect_id = './airfoil_data/sc_tip.dat'
%
%
%
%
% distanza percentuale del Tip Tank
%
%
for i=1:m
%
% Calcolo della geometria del profilo al TT
%
%
%
%
% Profilo alla radice dimensionato (c = cR)
%
%
%
%
end
%
%-------------------------------------------------------------------------%
% Serbatoi alari ---------------------------------------------------------% Volume serbatoi relativo alla parte interna al kink [m]
% Volume serbatoi relativo alla parte esterna al kink [m]
Vtank_out = volume(dKTT, cK, cTT, kink_sect, tiptank_sect, xtLE_K, xtLE_TT, xtTE_K,
% Volume complessivo serbatoi sulle ali [m]
%-------------------------------------------------------------------------% Serbatoio di fusoliera -------------------------------------------------%
% Nell'ipotesi di prolungare il profilo alla radice nel cassone alare
%

% Volume serbatoio [m]

%
%

2 of 3

07/07/06 3.07
114
115
116
117
118
119
120
121
122
123
124
125
126

C:\Documents and Settings\dedde\Desktop\MATLAB\2.Alta V...\tank_volume.m

%
%
%Nell'ipotesi che il serbatoi all'interno del cassone sia rettangolare di %
%altezza pari all'altezza massima del profilo di radice
%
%Vtank_fus = ctR*(t_cR*cR)*yR
%
%-------------------------------------------------------------------------%
% Volume complessivo [m]
%====================================================%
% Si introduce una riduzione del 5% per tenere conto %
% del volume proprio delle strutture
%
%
%
%====================================================%

3 of 3

07/07/06 3.07
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

%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%

C:\Documents and Settings\dedde\Desktop\MATLAB\2.Alta Velocit\volume.m

Volume del serbatoio alare di un ala trapezia


--------------------------------------------------------La funzione calcola il volume dei serbatoi all'interno di un ala trapezia
integrando la funzione ndsa (rapporto tra superficie e corda al quadrato)
lungo l'apertura alare
Vtank = volume(L, c1, c2, sect1, sect2, xLE1, xLE2, xTE1, xTE2, m)
Input
----L:
c1:
c2:
sect1:
sect2:
xLE1:
xLE2:
xTE1:
xTE2:
m:

lunghezza della parte di ala considerata (da una sezione ad un'altra) [m]
corda all'estremit iniziale [m]
corda all'estremit finale [m]
propriet del profilo alare che si trova all'estremit iniziale
propriet del profilo alare che si trova all'estremit finale
posizione del bordo di attacco del cassone nel profilo maggiore
posizione del bordo di attacco del cassone nel profilo minore
posizione del bordo di uscita del cassone nel profilo maggiore
posizione del bordo di uscita del cassone nel profilo minore
numero dei punti in cui si valuta il contorno del profilo

Output
-----Vtank: superficie bagnata della superficie alare considerata

function Vtank = volume(L, c1, c2, sect1, sect2, xLE1, xLE2, xTE1, xTE2, m)
%xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx%
%TESTER
%

%xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx%
% Discretizzazione ala
% numero di tratti in cui viene suddivisa l'ala
% coordinata adimensionale del profilo lungo l'apertura dell'ala

% Andamento delle corde dei profili intermedi

% Calcolo di ndsa
for j=1:n
for i=1:m

end

1 of 2

07/07/06 3.07
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
85
86
87
88
89
90
91

C:\Documents and Settings\dedde\Desktop\MATLAB\2.Alta Velocit\volume.m

end
%Volume del serbatoio alare (ALA COMPLETA)===%
%
%============================================%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%La sezione seguente calcola il volume del serbatoio ipotizzando che sia %
%ndsa ad avere un andamento lineare e non le dimesioni dei profili
%
%hold on
%
%for k=1:m
%

%end
%

%
%

%plot(eta,ndsa_L,'r')
%
%plot(eta,ndsa_span)
%
%Vtank_L=(L*2)*trapz(eta,ndsa_L.*chord.^2)
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

2 of 2

07/07/06 3.07
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

%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%

C:\Documents and Settings\dedde\Desktop\MATLAB\2.Alta Velo...\Wdes_fun.m

Peso del velivolo al design point


--------------------------------Wdes = Wdes_fun(Xdes, Hdes, Wto, M, kSFC, mBPR, CD0, K, S)
Il peso al design si calcola togliendo al peso al decollo il peso di
carburante utilizzato per raggiungere il punto di design.
Il punto di design viene scelto a met del primo step di crociera
Iput
---Xdes:
Hdes:
Wto:
M:
kSFC, mBPR:
CD0, K:
S:

lunghezza della prima [m]


quota del primo step di crociera [m]
peso al decollo [kg]
mach di volo
parametri del TSFC del motore
coefficienti della polare del velivolo
superficie alare di riferimento

Output
-----Wdes: peso del velivolo al design [N]

|--------------------------|
|Schema delle fasi di volo |
|--------------------------|
3 _______des_______ 4
/
\
/
\
/
\
8 _____ 9
/
\
/
\
/
5
/
10
/
(())
/
((()))
/
6__/
11
1____/ 2
\____7
\__

function Wdes = Wdes_fun(Xdes, Hdes, Wto, M, kSFC, mBPR, CD0, K, S)


global g
%temperatura s.l. [K]
% Calcolo delle varie frazioni di combustibile
%--------------% Decolo (1-2)
%--------------% Salita (2-3)
%--------------% Crociera (3-des) --------------------------------------------------%
% Peso all'inizio della crociera [N]
%
%

1 of 2

07/07/06 3.07
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76

C:\Documents and Settings\dedde\Desktop\MATLAB\2.Alta Velo...\Wdes_fun.m

% Propriet dell'atmosfera standard alla quota considerata

%
%
% Velocit di volo [m/s]
%
%
% Pressione dinamica [Pa]
%
%
%
%
%
% Calcolo della razione di combustibile
%
%
%
%
%
%
%--------------------------------------------------------------------%
% ===================%
% % Peso del velivolo al design [N]
%====================%

2 of 2

07/07/06 3.07
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

%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%

C:\Documents and Settings\dedde\Desktop\MATLAB\2.Alta ...\Wdes_pre_fun.m

Peso al punto di design preliminare


----------------------------------Si utilizza il modello cruise climb per la crociera
Wdes_pre = Wdes_pre_fun(Emax,Vcr,Wto,Xdes)
Input
----Emax:
Vdes:
Wto:
Xdes:

valore di primo tentativo dell'efficienza massima del velivolo


velocit di volo in crociera [m/s]
peso al decollo [kg]
lunghezza della tratta di design [m]
Inserire:
- la met del primo tratto della crociera
- met della tratta di crociera se la crociera avviene a quota
costante

Output
-----Wdes_pre: peso preliminare del velivolo al design [N]
|--------------------------|
|Schema delle fasi di volo |
|--------------------------|
3 _______des_______ 4
/
\
/
\
/
\
8 _____ 9
/
\
/
\
/
5
/
10
/
(())
/
((()))
/
6__/
11
1____/ 2
\____7
\__

function Wdes_pre = Wdes_pre_fun(Emax,Vcr,Wto,Xdes)


global g
% Valore di primo tentativo del consumo specifico in crociera (aereo di riferimento)
% [1/s]
% Decollo (1-2)
% Salita (2-3)

% Crociera (3-des): programma di volo di massima autonomia chilometrica


% efficienza in crociera
% frazione di carburante
% Peso dell'aereo al design point (des) [N]

1 of 1

07/07/06 3.08
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

%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%

C:\Documents and Settings\dedde\Desktop\MATLAB\2.Alta Vel...\Wfuel_fun.m

1 of 3

MODELLO PRESTAZIONI: Calcolo del peso del carburante


------------------------------------------------------------------------PROGRAMMA DI VOLO CROCIERA: "Step Cruise" a massima autonomia chilometrica
PROGRAMMA DI VOLO ATTESA: Massima autonomia oraria a quota costante
Wf_Wto = Wfuel_fun(M, Hcr, Xcr, Hdiv, Xdiv, dt_m, Hloi_m, Mdiv, dt_r, ...
Hloi_r, CD0, K, kSFC, mBPR, Wto, S)
Input
----M:
Hcr:
Xcr:
Hdiv:
Xdiv:
dt_m:
Hloi_m:
Mdiv:
dt_r:
Hloi_r:
CD0, K:
kSFC,mBPR :
Wto:
S:

mach di volo
quota di crociera [m]
lunghezza tratta di crociera [m]
quota crociera di diversione [m]
lunghezza tratta di diversione [m]
durata attesa missione [s]
quota attesa missione [m]
mach di volo in diversione
durata attesa diversione [s]
quota attesa diversione [m]
coefficienti della polare del velivolo
coefficienti relativi al motore (pag 28 Fanteria)
peso al decollo [kg]
superficie alare di riferimento [m]

Output
-----Wf_Wto: rapporto peso di combustibile/peso al decollo velivolo
|--------------------------|
|Schema delle fasi di volo |
|--------------------------|
3 _________________ 4
/
\
/
\
/
\
8 _____ 9
/
\
/
\
/
5
/
10
/
(())
/
((()))
/
6__/
11
1____/ 2
\____7
\__

function [Wf_Wto,Wfris_Wto] = Wfuel_fun(M, Hcr, Xcr, Hdiv, Xdiv, dt_m, Hloi_m, Mdiv, dt_r,
Hloi_r, CD0, K, kSFC, mBPR, Wto, S)
global g
% Temperatura s.l. [K]
% Calcolo della frazione di combustibile per la missione
% ------------------------------------------------------

07/07/06 3.08
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
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115

C:\Documents and Settings\dedde\Desktop\MATLAB\2.Alta Vel...\Wfuel_fun.m

% Decollo (1-2)

% Salita (2-3)

% Crociera (3-4):

massima autonomia chilometrica-----------------------%


%
%Peso di inizio crociera [N]
%
%
% Propriet atmosfera standard alla quota di crociera
%
%
% Velocit di volo [m/s]
%
%
% Pressione dinamica [Pa]
%
%
% Consumo specifico [1/s]
%
%
%
% Calcolo frazione di combustibile
%
%
%
%
%
% Peso di fine crociera [N]
%
%
%-----------------------------------------------------------------------%

C
R
O
C
I
E
R
A

% Discesa (4-5)
%
%
% Attesa (5-6)----------------------------------------------------------%
% Propriet dell'atmosfera standard alla quota di attesa
%
%
% Velocit di volo
%
% La velocit di volo si considera costante e pari alla velocit di
%
% efficienza massima all'inizio della fase di loiter
%
%
%
% Pressione dinamica [Pa]
%
%
% Consumo specifico [1/s]
%
%
% Calcolo frazione di combustibile
%
%
%
%
%-----------------------------------------------------------------------%
% Discesa e atterraggio (6-7)

%
% Frazione di combustibile necessario per la missione ==|
%|
%=======================================================|

A
T
T
E
S
A

2 of 3

07/07/06 3.08
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171

C:\Documents and Settings\dedde\Desktop\MATLAB\2.Alta Vel...\Wfuel_fun.m

% Calcolo dellafrazione di cobustibile di riserva


% ----------------------------------------------% Salita diversione (6-8)

% Crociera diversione (8-9): massima autonomia chilometrica ------------%


%
% Peso all'inizio della crociera di diversione [N] %
%
% Propriet dell'atmosfera standard alla quota di crociera di div
%
%
% Velocit di volo [m/s]
%
%
% Pressione dinamica [Pa]
%
%
% Consumo specifico [1/s]
%
%
% Calcolo frazione di combutibile
%
%
%
%
%-----------------------------------------------------------------------%

C
R
O
C
I
E
R
A

% Discesa diversione (9-10)

% Peso all'inizio dell'attesa di diversione [N]

% Attesa diversione ----------------------------------------------------%


% Propriet dell'atmosfera standard alla quota considerata
%
%
% Velocit di volo
%
% La velocit di volo si considera costante e pari alla velocit di
%
% efficienza massima all'inizio della fase di loiter
%
%
%
% Pressione dinamica [Pa]
%
%
% Consumo specifico [1/s]
%
% [1/s]
%
% Calcolo frazione di combustibile
%
%
%
%
%-----------------------------------------------------------------------%

A
T
T
E
S
A

% Frazione di combustibile necessario per le riserve ============================|


% Si considera una maggiorazione del 5% sul combustibile necessario
|
% a realizzare la missione
|
%|
%================================================================================|
% Frazione dicombustibile complessiva ==|
%
|
%=======================================|

3 of 3

07/07/06 3.08
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

%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%

C:\Documents and Settings\dedde\Desktop\MATLAB\2.Alta...\wing_geometry.m

1 of 2

Geometria in pianta dell'ala


---------------------------[b, bK, etaR, etaK, lambdaW, alfa, lambdaN, lambdaK, lambda, cT, cCL, cK, cR, ...
sweepLE, sweepTEin, sweepTEout] = wing_geometry(sweep25, AR, S, W)
Input
-----sweep25: freccia al 25% della corda [rad]
AR: allungamento alare (aspect ratio)
S: superficie alare di riferimento [m]
W: larghezza fusoliera [m]
Output
-----b: apertura alare [m]
bK: apertura alare al kink [m]
etaR: coordinata della corda alla radice
etaK: coordinata al kink
lambdaW: rapporto di rastremazione ala
alfa: estensione di corda in corrispondenza della mezzeria in
frazioni di corda al kink
lambdaN: cT/cRn
lambdaK: cT/cK
lambda: cT/cCL
cT: corda all'estremit dell'ala (tip) [m]
cCL: corda all'asse fusoliera (centerline) [m]
cK: corda al kink [m]
cR: corda alla radice (root) [m]
sweepLE: freccia al bordo d'attacco [rad]
sweepTEin: freccia al bordo di uscita interno al kink (inboard) [rad]
sweepTEout: freccia al bordo di uscita esterno al kink (outboard) [rad]

function [b, bK, etaR, etaK, lambdaW, alfa, lambdaN, lambdaK, lambda, cT, cCL, cK, cR, ...
sweepLE, sweepTEin, sweepTEout] = wing_geometry(sweep25, AR, S, W)
global d2r r2d
%xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx%
%TESTER
%
%xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx%
%xxxxxxxxxxxxx-PARAMETRI DA SCEGLIERE IN BASE AD AEREI SIMILI-xxxxxxxxxxxx|
%
|
%(etaK=KetaK*etaR) intervallo di variazione [2.5,3.5]|
%rapporto di rastremazione dell'ala
|
%
intervallo di variazione [0.20,0.25]|
%-------------------------------------------------------------------------|
% ---------- Aperture alari e coordinate adimensionali --------------%
% coordinata adimensionale della radice dell'ala
%
% apertura alare [m]
%
% coordinata adimensionale corda di radice %
% coordinata adimensionale del kink
%
%
% Estensione di corda in corrispondenza della mezzeria in frazioni
%
% di corda al kink (si sceglie alfa in modo che l'angolo di freccia %
% al bordo di uscita interno al kink - sweepTEin - sia nullo
%

07/07/06 3.08
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
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105

C:\Documents and Settings\dedde\Desktop\MATLAB\2.Alta...\wing_geometry.m

%
%
% Apertura alare al kink [m]
%
%--------------------------------------------------------------------%

% ------------------ Rapporti di rastremazione ----------------------%


% Calcolo lambdaN = cT/cRn
%
lambdaN = lambdaW*(1 - etaR + alfa*(1 - etaK)*(etaK - etaR)/etaK)/...%
%
% Calcolo lambdaK = cT/cK
%
%
% Calcolo lambda = cT/cCL
%
%
%--------------------------------------------------------------------%
% ---------------------- Corde ------------------------%
% Corda all'estremit dell'ala (tip) [m]
%
%
% Corda all'asse della fusoliera [m]
%
%
% Corda al kink [m]
%
%
% Corda alla radice (root) [m]
%
%
%------------------------------------------------------%
% ------------------------ Angoli di freccia ----------------------------%
% Freccia al bordo d'entrata (uguale per inboard e outboard)
%
tan_sweepLE = tan(sweep25) + ((1 - lambdaN)/(lambdaN*AR))/...
%
%
%
% Freccia al bordo d'uscita interno al kink (inboard)
%
tan_sweepTEin = tan(sweep25)+(3*etaK + (4-3*etaK)/lambdaN - 4/lambda)/...%
%
%
% Freccia al bordo d'uscita esterno al kink (outboard)
%
tan_sweepTEout = tan(sweep25) - (3*(1-lambdaN)/(lambdaN*AR))/...
%
%
%
%
%
|
%
%
| Conversioni in gradi
%
%
|
%
%
|
%
%------------------------------------------------------------------------%
%cR, cT, cK, b, bK, etaR, sweep25

2 of 2

C03

Progetto di Costruzioni Aeronautiche

07/07/06 3.56
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

%
%
%
%
%
%
%
%
%
%
%
%
%

C:\Documents and Settings\dedde\Desktop\MATLAB\3.Ver...\verifiche_alta.m

VERIFICHE DI ALTA VELOCITA'


=========================================================================
Tra le 243 configurazioni fornite dal progetto di alta velocit si
selezionano quelle che soddisfano i seguenti requisiti di alta velocit:
1) il volume dei serbatoi deve essere sufficiente a imbarcare il carburante
necessario a realizzare la missione maggiorato del 50% del volume
limited payload (AEA REQUIREMENTS page 16)
2) la spinta installata in crociera deve essere sufficiente a garantire
un rateo di salita minimo di 300 ft/min alla quota di crociera, alla
velocit massima (AEA REQUIREMENTS)
3) l'angolo di freccia al 25% della corda deve essere non inferiore ai 10
per permettere il posizionamento del carrello main

clear all
clc
global ft2m min2s g
% Costanti & fattori di conversione
%..........................................................................
% 1 ft = 0.3048 m
% 1 min = 60 s
% accelerazione gravitazionale [m/s]
%..........................................................................
%--------------------------- D A T I ----------------------------------% Dati per le verifiche
load('Wto_preliminare', 'Wvlp')
% volume limited payload [kg]
% quota di crociera [m]
% densit carburante (da AEA) [kg/m]
% Caricamento configurazioni ottenute dal progetto di alta velocit
load config.mat
% Variazioni dei parametri di progetto
%..........................................................................
% (indice iM)
Variazione del Mach di crociera
% (indice iAR)

Variazione di AR

% (indice it_c) Variazione di t_c


% (indice iKS)
% Variazione di KS
%..........................................................................
% contatore delle configurazioni

% inizializzazione delle variabili di memorizzazione dei risultati

% formato degli output


formato_check = '%3.0f %7.2f %4.0f %7.2f %7.2f %10.2f %11.2f %9.0f'
formato_acceptable = '%3.0f %7.2f %4.0f %7.2f %7.2f %10.2f %11.2f %9.0f'

1 of 3

07/07/06 3.56

C:\Documents and Settings\dedde\Desktop\MATLAB\3.Ver...\verifiche_alta.m

59
60 for iM = 1:length(Mv)
61
for iAR = 1:length(ARv)
62
for it_c = 1:length(t_cv)
63
for iKS = 1:length(KSv)
64
65
66
% Parametri della configurazione
67
% Mach
% allungamento alare
68
% spessore percentuale riferimento
69
70
% coefficiente superficie
71
72
% Dati per le verifiche (dal progetto di alta velocit)
73
% peso di carburante necessario per la missione [kg]
74
75
% peso al decollo [kg]
76
77
% superficie alare di riferimento [m]
78
79
% coefficiente resistenza parassita velivolo
80
81
% coefficiente resistenza indotta velivolo
82
83
% spinta a punto fisso dei motori [kg]
84
85
% rapporto di bypass
86
87
% fattore n della spinta installata
88
89
% angolo di freccia al 25% della corda [deg]
90
91
92
% 1) VERIFICA CAPACITA' SERBATOI
93
% --------------------------------------------------------94
% Volume carburante necessario (requisito AEA 10)
95
%[m]
96
% Volume carburante disponibile (volume serbatoi)
%[m]
97
98
% Verifica
99
if Vtank>=Vnec
100
101
else
102
103
end
104
105
% --------------------------------------------------------106
107
% 2) VERIFICA SPINTA INSTALLATA IN CROCIERA
108
% --------------------------------------------------------109
% Calcolo della spinta installata in crociera [kg]
110
111
% Calcolo della spinta necessaria in crociera [kg]
112
113
% Verifica
114
if Tnec <= Tinst
115
116
else

2 of 3

07/07/06 3.56

C:\Documents and Settings\dedde\Desktop\MATLAB\3.Ver...\verifiche_alta.m

117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162

3 of 3

end
% ---------------------------------------------------------

07/07/06 3.57
% 3) VERIFICA ANGOLO DI FRECCIA DELL'ALA
% --------------------------------------------------------if sweep25 >= 10
else
end
% --------------------------------------------------------% MEMORIZZAZIONE RISULTATI VERIFICHE

% ISOLAMENTO CONFIGURAZIONI ACCETTABILI


if check_tank==1 & check_trust==1 & check_sweep==1
HS_acceptable = vertcat(HS_acceptable, sprintf(formato_acceptable,
end
end
end
end
end
% VISUALIZZAZIONE DEI RISULTATI
% ----------------------------disp('VERIFICHE DI ALTA VELOCITA''')
fprintf('\n')
disp('Analisi delle 243 configurazioni ottenute dal progetto di alta velocit:')
disp(' N
M
AR
t/c
KS
Vtank/Vnec Tinst/Tnec Sweep25')
disp(HS_check)
fprintf('\n')
disp('Le configurazioni che soddisfano i requisiti di alta velocit sono:')
disp(' N
M
AR
t/c
KS
Vtank/Vnec Tinst/Tnec Sweep25')
disp(HS_acceptable)
% SALVATAGGIO RISULTATI
% --------------------save('alta', 'HS_memo')

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24

%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%

C:\Documents and Settings\dedde\Desktop\MATLAB\3....\spinta_installata.m

CALCOLO DELLA SPINTA INSTALLATA IN CROCIERA


------------------------------------------------------------------------Tinst = spinta_installata(Hcr, M, Tpf, BPR, n)
INPUT
----Tpf:
Hcr:
M:
BPR:
n:

spinta a punto fisso dei motori [kg]


quota di crociera [m]
mach di volo
rapporto di bypass del motore
coefficiente di taratura del motore relativo alla spinta
installata

OUTPUT
-----Tinst: spinta installata in crociera[kg]

function Tinst = spinta_installata_crociera(Hcr, M, Tpf, BPR, n)


rho_cr = atmosfera(Hcr,'rho'
rho_0 = atmosfera(0,'rho'

% densit aria alla quota di crociera [kg/m]


% densit aria SL [kg/m]

1 of 1

07/07/06 3.57

07/07/06 3.57
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

%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%

C:\Documents and Settings\dedde\Desktop\MATLAB\3....\spinta_necessaria.m

CALCOLO DELLA SPINTA NECESSARIA IN CROCIERA


------------------------------------------------------------------------Tnec = spinta_necessaria(Wto, Hcr, M, S, K, CD0)
La verifica viene effettuata dove le condizioni da soddisfare sono pi
gravose, ovvero dove la spinta necessaria maggiore. Questo si verifica
all'inizio della crociera dove il peso massimo, il CL massimo e quindi
anche D (resistenza aerodinamica) massima
INPUT
----Wto:
Hcr:
M:
S:
K, CD0:

peso del velivolo al decollo [kg]


quota di crociera [m]
mach di volo
superficie alare di riferimento [m]
coefficienti della polare del velivolo

OUTPUT
-----Tnec: spinta necessaria in crociera [kg]

function Tnec = spinta_necessaria(Wto, Hcr, M, S, K, CD0)


global ft2m min2s g
% frazione peso decollo
% frazione peso salita
% peso a inizio crociera [N]
a_cr = atmosfera(Hcr,'a'
rho_cr = atmosfera(Hcr,'rho'
% velocit di crociera [m/s]
% pressione dinamica in crociera [Pa]
% coeff. di portanza a inizio crociera
% resistenza a inizio crociera [N]
% rateo di salita (AEA) [m/s]
% gradiente di salita
% spinta necessaria per la crociera [kg]

1 of 1

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

%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%

C:\Documents and Settings\dedde\Desktop\MATLAB\3.V...\verifica_decollo.m

VERIFICA DELLE PRESTAZIONI DI DECOLLO


------------------------------------------------------------------------Tra le 243 configurazioni fornite dal progetto di alta velocit si
selezionano quelle che soddisfano le seguenti prestazioni in decollo.
Il rapporto Tpf/Wto installato (spinta massima disponibile a punto fisso/
peso al decollo) non deve essere inferiore a:
1) il rapporto Tpf/Wto necessario per consentire il superamento
dell'ostacolo quando si verifichi l'avaria ad un motore in
corrispondenza della velocit decisionale
2) il rapporto Tpf/Wto necessario per consentire il soddisfacimento dei
requisiti normativi (FAR25) nei tre segmenti di salita successivi
alla fase di ground roll.
Poich si verificato che il vincolo pi stringente rappresentato dal
soddisfacimento di 1), si decide di calcolare il Clmax al decollo
imponendo che 1) sia soddisfatto (si assume che la lunghezza di campo
bilanciata sia uguale alla massima lunghezza della pista disponibile al
decollo e cos si ricava il TOP. Dalla definizione del TOP, imponendo che
il rapporto spinta peso sia pari a quello massimo installato, si ricava
il CLmax al decollo minimo necessario per il soddisfacimento di 1)).
Noto il Clmax al decollo, si eseguono le verifiche di cui al punto 2).

clear all
clc
% Costanti & fattori di conversione
%..........................................................................
% 1 ft = 0.3048 m
% 1 lb = 0.45359237 kg
% accelerazione gravitazionale [m/s]
%..........................................................................
% Variazioni dei parametri di progetto
%..........................................................................
% (indice iM)
Variazione del Mach di crociera
% (indice iAR)

Variazione di AR

% (indice it_c) Variazione di t_c


% (indice iKS)
% Variazione di KS
%..........................................................................
%----------------------------- D A T I --------------------------------% Caricamento configurazioni ottenute dal progetto di alta velocit ------load config.mat
% Requisiti da specifica: PISTA di DECOLLO -------------------------------% lunghezza pista [m]
% quota pista [m]

% rapporto tra le densit


% Rapporto Tpf/Wto installato a punto fisso ------------------------------% short-medium range

1 of 5

07/07/06 3.57
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
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116

C:\Documents and Settings\dedde\Desktop\MATLAB\3.V...\verifica_decollo.m


% numero di motori

% Requisiti normativi (FAR 25.121a/b/c) ----------------------------------% gli indici 1 2 3 si riferiscono rispettivamente al 1 2 3 segmento di salita
% 1 motore in avaria per tutti i segmenti di salita
% gradienti di salita

% rapporto Velocit di stallo / Velocit nel segmento

% ------------------------------------------------------------------------% CALCOLO DEL TOP


% --------------% Curva BFL vs TOP relativa ad un bimotore in unit anglosassoni

% Lunghezza di campo bilanciata (BFL) [ft]


% Takeoff Parameter (TOP) [kg/m]

% contatore delle configurazioni

% inizializzazione delle variabili di memorizzazione dei risultati

% formato degli output


formato_check = '%3.0f %7.2f %4.0f %7.2f %7.2f %12.2f %12.2f %12.2f %12.2f'
formato_acceptable = '%3.0f %7.2f %4.0f %7.2f %7.2f %12.2f %12.2f %12.2f %12.2f'
for iM = 1:length(Mv)
for iAR = 1:length(ARv)
for it_c = 1:length(t_cv)
for iKS = 1:length(KSv)

% PARAMETRI DELLA CONFIGURAZIONE


% -----------------------------% Mach
% allungamento alare
% spessore percentuale riferimento
% coefficiente superficie
% DATI RICAVATI DAL PROGETTO DI ALTA VELOCITA'
% -------------------------------------------% peso al decollo [kg]
% carico alare al decollo [kg/m]

2 of 5

07/07/06 3.57
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174

C:\Documents and Settings\dedde\Desktop\MATLAB\3.V...\verifica_decollo.m


% superficie alare di riferimento [m]
% coefficiente resistenza parassita velivolo
% fattore di Oswald
% rapporto di bypass

% CALCOLO DEL CLmaxTO MINIMO NECESSARIO


% ------------------------------------% CL in decollo
% velocit di stallo
% PESO DEL VELIVOLO NEI 3 SEGMENTI DI SALITA
% ------------------------------------------

% POLARE DEL VELIVOLO NEI 3 SEGMENTI DI SALITA


% -------------------------------------------% Fattore correttivo per il CD0 nei vari segmenti di salita
% formula 12.37 da Raymer

dCDO_gear = K_gear*Sgear/S

% formule statistiche
% Raymer (table 12.5)
%
% flap decollo + carrelli estratti
% flap decollo + carrelli retratti
% flap retratti + carrelli retratti

% Coefficiente di resistenza parassita

% Fattore di Oswald
% Si trascura la variazione del
% fattore di Oswald rispetto
% alla configurazione di crociera
% CALCOLO DEI Tpf/Wto NECESSARI PER I 3 SEGMENTI DI SALITA
% -------------------------------------------------------% 1 SEGMENTO DI SALITA
Tpf_Wto1 = T_Wnecessario(CGR1, CLmaxTO, CD01, e1, AR,...

% 2 SEGMENTO DI SALITA
Tpf_Wto2 = T_Wnecessario(CGR2, CLmaxTO, CD02, e2, AR,...

% 3 SEGMENTO DI SALITA
Tpf_Wto3 = T_Wnecessario(CGR3, CLmaxTO, CD03, e3, AR,...

3 of 5

07/07/06 3.57

C:\Documents and Settings\dedde\Desktop\MATLAB\3.V...\verifica_decollo.m

175
% VERIFICA 1 SEGMENTO DI SALITA
176
% --------------------------------------------------------177
if Tpf_Wto1 <= Tpf_Wto_inst
178
179
else
180
181
end
182
183
% --------------------------------------------------------184
185
% VERIFICA 2 SEGMENTO DI SALITA
186
% --------------------------------------------------------187
if Tpf_Wto2 <= Tpf_Wto_inst
188
189
else
190
191
end
192
193
% --------------------------------------------------------194
195
% VERIFICA 3 SEGMENTO DI SALITA
196
% --------------------------------------------------------197
if Tpf_Wto3 <= Tpf_Wto_inst*0.96
198
199
else
200
201
end
202
203
% --------------------------------------------------------204
205 % MEMORIZZAZIONE RISULTATI VERIFICHE
206
207
208
209
210
211
212 % ISOLAMENTO CONFIGURAZIONI ACCETTABILI
213 if checkTO1==1 & checkTO2==1 & checkTO3==1
214
215
216 end
217
218
end
219
end
220
end
221 end
222
223 % VISUALIZZAZIONE DEI RISULTATI
224 % ----------------------------225 disp('VERIFICA DELLE PRESTAZIONI DI DECOLLO')
226 fprintf('\n')
227 disp('Analisi delle 243 configurazioni ottenute dal progetto di alta velocit:')
228 disp(' N
M
AR
t/c
KS
Tinst/Tnec1 Tinst/Tnec2 Tinst/Tnec3
CLmaxTO')
229 disp(TO_check)
230 fprintf('\n')
231 disp('Le configurazioni che soddisfano i requisiti di decollo sono:')

4 of 5

07/07/06 3.57

C:\Documents and Settings\dedde\Desktop\MATLAB\3.V...\verifica_decollo.m

232 disp(' N
M
AR
t/c
CLmaxTO')
233 disp(TO_acceptable)
234
235 % SALVATAGGIO RISULTATI
236 % --------------------237 save('decollo', 'TO_memo')

KS

Tinst/Tnec1

Tinst/Tnec2

Tinst/Tnec3

5 of 5

07/07/06 3.57
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

%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%

C:\Documents and Settings\dedde\Desktop\MATLAB...\verifica_atterraggio.m

VERIFICA DELLE PRESTAZIONI DI ATTERRAGGIO


------------------------------------------------------------------------Tra le 243 configurazioni fornite dal progetto di alta velocit si
selezionano quelle che soddisfano le seguenti prestazioni in atterraggio:
1) La massima velocit di avvicinamento non deve essere inferiore a
1.3 volte la velocit di stallo in atterraggio
2) La lunghezza massima della pista di atterraggio non deve essere
inferiore all'LDA (Landing Distance Available), ovvero alla
lunghezza di pista necessaria all'atterragio (LDR) maggiorata con
un coefficiente correttivo di sicurezza (1/0.6)
3) La spinta necessaria per eseguire la manovra di GO AROUND,
rispettando i vincoli imposti dalla normativa FAR 25, non deve
essere superiore a quella installata nelle condizioni di
atterraggio.
Il procedimento che si decide di adottare il seguente:
A) Si determina il minimo CLmaxTA (coeffiente di portanza massimo
all'atterraggio) necessario a soddisfare i requisiti 1) e 2).
A questo scopo si osserva che la velocit di stallo e l'LDA sono
entrambe funzioni inversamente proporzionali al CLmaxTA, e pertanto
si sceglie come ClmaxTA il massimo tra quello che soddisfa il
requisito di specifica sulla lunghezza di pista disponibile (punto2)
e quello che soddisfa il requisito sulla massima velocit di
avvicinamento consentita (punto1)----> CLmin
B) Si determina il massimo intervallo di CLmaxTA che soddisfi i
requisiti 3)---->[CLinf CLsup]
C) Si confrontano i risultati ottenuti ai punti A) e B)e si
determina, se esiste, il massimo intervallo di CLmaxTA che soddisfi
tutte le prestazioni di atterraggio richieste.
Il peso massimo all'atterraggio non quello al termine della missione
come calcolato dal progetto di alta velocit,ma una scelta di progetto.
Tipicamente si sceglie Wla=0.85Wto, ma date le piccole dimensioni del
velivolo e la breve tratta cui destinato, si fissa tale parametro a
0.92 volte il peso al decollo.

clear all
clc
% Costanti & fattori di conversione
%..........................................................................
% 1 ft = 0.3048 m
% fattore di conversione nodi-->m/s
% accelerazione gravitazionale [m/s]
%..........................................................................
% Variazioni dei parametri di progetto
%..........................................................................
% (indice iM)
Variazione del Mach di crociera
% (indice iAR)

Variazione di AR

% (indice it_c) Variazione di t_c


% (indice iKS)
% Variazione di KS
%..........................................................................

1 of 6

07/07/06 3.57
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
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116

C:\Documents and Settings\dedde\Desktop\MATLAB...\verifica_atterraggio.m

%----------------------------- D A T I --------------------------------% Caricamento configurazioni ottenute dal progetto di alta velocit ------load config.mat
% Requisiti da specifica: ATTERRAGGIO ------------------------------------% velocit massima di avvicinamento [m/s]
% lunghezza pista [m]
% quota pista [m]

% rapporto tra le densit


% Dati per il calcolo di LDA ---------------------------------------------% altezza dell'ostacolo [m]
% fattore di carico
% pendenza della fase di avvicinamento [rad]
% coefficiente di attrito di rotolamento
% Vapproach/VstLA
% Vflare/VstLA
% Rapporto Tpf/Wto installato a punto fisso ------------------------------% short-medium range
% numero di motori
%
%
%
%

Requisiti normativi (FAR 25.119/25.121d) -------------------------------gli indici 1/2 si riferiscono rispettivamente alla 1/2 condizione di
go around
numero di motori in avaria

% coefficiente relativo al n di motori in avaria

% gradienti di salita

% rapporto Velocit di stallo / Velocit di salita

% ------------------------------------------------------------------------% contatore delle configurazioni

% inizializzazione delle variabili di memorizzazione dei risultati

% formato degli output


formato_check = '%3.0f %6.2f %3.0f %6.2f %6.2f %8.2f %12.2f'
formato_acceptable = '%3.0f %7.2f %4.0f %7.2f %7.2f %12.2f %12.2f'
for iM = 1:length(Mv)
for iAR = 1:length(ARv)
for it_c = 1:length(t_cv)
for iKS = 1:length(KSv)

2 of 6

07/07/06 3.57
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174

C:\Documents and Settings\dedde\Desktop\MATLAB...\verifica_atterraggio.m

3 of 6

% PARAMETRI DELLA CONFIGURAZIONE


% -----------------------------% Mach
% allungamento alare
% spessore percentuale riferimento
% coefficiente superficie
% DATI RICAVATI DAL PROGETTO DI ALTA VELOCITA'
% -------------------------------------------% peso al decollo [kg]
% superficie alare di riferimento [m]
% coefficiente resistenza parassita velivolo
% fattore di Oswald
% rapporto di bypass

% Peso del velivolo all'atterraggio [kg] (scelta progettuale)

% Carico alare all'atterraggio [kg/m]

% Rapporto Tpf/Wla installato a punto fisso

% POLARE DEL VELIVOLO NELLE DUE CONDIZIONI DI GO AROUND


% ----------------------------------------------------% Fattore correttivo per il CD0
% formula 12.37 da Raymer
% formula 12.37 da Raymer
% formule statistiche
% Raymer (table 12.5)
%
% flap atterraggio + carrelli estratti
% flap approaching + carrelli retratti
% Coefficiente di resistenza parassita

% Fattore di Oswald
% Si trascura la variazione del fattore di Oswald rispetto
% alla configurazione di crociera

%
%
%
%
%

A) CALCOLO DEL CLmaxLA MINIMO NECESSARIO A SODDISFARE I


REQUISITI 1) E 2)
--------------------------------------------------------Calcolo sulla base del requisito sulla velocit massima
consentita in avvicinamento

07/07/06 3.57
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232

C:\Documents and Settings\dedde\Desktop\MATLAB...\verifica_atterraggio.m

% Calcolo sulla base del requisito sulla massima lunghezza


% della pista di decollo

CLmaxLA_LLA = (Wla_S/(rho0*(sigma_LA^2)*(LDR - ...


hs/tan(gamma_a))))*((((K_Va + K_VTD)^2)/(2*g*(nz - 1)))*...

% CLmax minimo necessario per soddisfare i requisiti 1) e 2)


% --------------------------------------------------------% B) CALCOLO DEL MASSIMO INTERVALLO DI CLmaxLA CHE SODDISFI
%
LE 2 CONDIZIONI DI GO AROUND
% --------------------------------------------------------% Calcolo sulla base della 1 condizione di go around
[CLinf1 CLsup1 check1] = intervallo_CLmaxLA(Tpf_Wla_inst,...
Wla_S, CGR1, CD01, e1, AR, VstLA_V1, aLA, rhoLA,...

% Calcolo sulla base della 2 condizione di go around


[CLinf2 CLsup2 check2] = intervallo_CLmaxLA(Tpf_Wla_inst,...
Wla_S, CGR2, CD02, e2, AR, VstLA_V2, aLA, rhoLA,...

% Estremi dell'intervallo di CLmaxLA che soddisfa entrambe


% le condizioni di go around
if check1==1 & check2==1

end
if check1==0 | check2==0
CLinf = ' ga '
CLsup = ' ga '
end
% --------------------------------------------------------% C) CALCOLO DELL'INTERVALLO DI CLmaxLA CHE SODDISFI TUTTI
%
I REQUISITI DI ATTERRAGGIO
% --------------------------------------------------------% Se la verifica al punto B) ha prodotto esito positivo,
% possono verificarsi 3 casi:
if check3==1
if CLmin<=CLinf

end
if CLmin>CLinf & CLmin<=CLsup

end

4 of 6

07/07/06 3.57
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289

C:\Documents and Settings\dedde\Desktop\MATLAB...\verifica_atterraggio.m


if CLmin>CLsup
CLmaxLAinf = ' LA '
CLmaxLAsup = ' LA '
end
end
% Se la verifica al punto B) ha prodotto esito negativo,
% la configurazione va scartata
if check3==0
CLmaxLAinf = ' ga '
CLmaxLAsup = ' ga '
end
% ---------------------------------------------------------

% OUTPUT RISULTATI VERIFICHE

if CLsup1>=10
strCL=num2str(CLsup1,'%2.1f'
else
strCL=num2str(CLsup1,'%1.2f'
end
LA_check = vertcat(LA_check, [sprintf(formato_check,check)...
'
' num2str(CLinf1,'%1.2f')...
'
' strCL...
'
' num2str(CLinf2,'%1.2f')...
'
' num2str(CLsup2,'%1.2f')...
'
' num2str(CLmaxLAinf,'%1.2f')...
'
' num2str(CLmaxLAsup,'%1.2f'
% MEMORIZZAZIONE RISULTATI VERIFICHE
if check1==0

end
if check2==0

end
if check3==0

end
if check3==1 & checkLA==0

end
memoLA = [CLmaxLA_app CLmaxLA_LLA CLinf1 CLsup1 CLinf2 CLsup2 CLmaxLAinf CLmaxLAsup

5 of 6

07/07/06 3.57

C:\Documents and Settings\dedde\Desktop\MATLAB...\verifica_atterraggio.m

6 of 6

290 % ISOLAMENTO CONFIGURAZIONI ACCETTABILI


291 if checkLA==1
292
293
294 end
295
end
296
end
297
end
298 end
299
300 % VISUALIZZAZIONE DEI RISULTATI
301 % ----------------------------302 disp('VERIFICA DELLE PRESTAZIONI DI ATTERRAGGIO')
303 fprintf('\n')
304 disp('Analisi delle 243 configurazioni ottenute dal progetto di alta velocit:')
305 fprintf('\n')
306 disp('
CONFIGURAZIONE
VERIFICHE: CLmaxLA
RISULTATO')
307 disp('xxxxxxxxxxxxxxxxxxxxxxxxxxxx
..........................................................
xxxxxxxxxxxxxxxxxxxxxxxx')
308 disp(' N M
AR t/c
KS
CLmax_Vapp CLmax_Lpista [CLinf1 CLsup1] [CLinf2
CLsup2] [CLmaxLAinf CLmaxLAsup]')
309 disp(LA_check)
310 fprintf('\n')
311 disp('Le configurazioni che soddisfano i requisiti di atterraggio e i corrispondenti')
312 disp('intervalli di CLmaxLA sono:')
313 disp(' N
M
AR
t/c
KS
[CLmaxLAinf
CLmaxLAsup]')
314 disp(LA_acceptable)
315
316 % SALVATAGGIO RISULTATI
317 % --------------------318 save('atterraggio', 'LA_memo')

07/07/06 3.57
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

%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%

C:\Documents and Settings\dedde\Desktop\MATLAB\3.Ve...\verifiche_bassa.m

VERIFICHE DI BASSA VELOCITA'


------------------------------------------------------------------------Tra le 243 configurazioni fornite dal progetto di alta velocit si
selezionano quelle che soddisfano i requistiti di bassa velocit
(prestazioni di decollo e atterraggio). Inoltre si richiede che
1) CLmax di decollo non superiore a 2.4
2) CLmax di atterraggio non superiore a 3
3) CLmax di decollo non superiore all'80% del CLmax di atterraggio
Si procede come segue:
Si definisce CLmaxLA minimo accettabile quello per cui risulta
CLmaxTO=80%CLmaxLA. Quindi, per quelle configurazioni che soddisfano i
requisiti di atterraggio, si sceglie come CLmaxLA il minimo valore
appartenente all'intervallo ottenuto dalle verifiche di atterraggio che
sia non inferiore al CLmax minimo accettabile. Si sceglie il minimo
CLmaxLA perch ci facilita il progetto degli ipersostentatori.
Determinate in questo modo le configurazioni che soddisfano i requisiti
di decollo, di atterraggio e il vincolo sul minimo scarto tra i CLmax, si
eseguono le verifiche 1) e 2)

clear all
clc
% Caricamento risultati ottenuti dalle verifiche di decollo
load decollo.mat

% Caricamento risultati ottenuti dalle verifiche di atterraggio


load atterraggio.mat

% Variazioni dei parametri di progetto


%..........................................................................
% (indice iM)
Variazione del Mach di crociera
% (indice iAR)

Variazione di AR

% (indice it_c) Variazione di t_c


% (indice iKS)
% Variazione di KS
%..........................................................................
% contatore delle configurazioni

1 of 4

07/07/06 3.57
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
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116

C:\Documents and Settings\dedde\Desktop\MATLAB\3.Ve...\verifiche_bassa.m

% inizializzazione delle variabili di memorizzazione dei risultati

% formato degli output


formato_check1 = '%3.0f %6.2f %3.0f %6.2f %6.2f %7.2f %7.2f %7.2f %7.2f %7.2f %7.2f'
formato_check2 = '%3.0f %6.2f %3.0f %6.2f %6.2f %8.2f'
formato_acceptable = '%3.0f %6.2f %3.0f %6.2f %6.2f %7.2f %7.2f %7.2f %7.2f %7.2f'
for iM = 1:length(Mv)
for iAR = 1:length(ARv)
for it_c = 1:length(t_cv)
for iKS = 1:length(KSv)

% PARAMETRI DELLA CONFIGURAZIONE


% -----------------------------% Mach
% allungamento alare
% spessore percentuale riferimento
% coefficiente superficie
%
%
%
%
%
%
%
%
%
%
%
%
%

DECOLLO

ATTERRAGGIO

% CALCOLO DI CLmaxLA
% --------------------------------------------------------% Se le verifiche di atterraggio hanno prodotto esito
% positivo, possono verificarsi 3 casi:
if checkLA==1
% CLmaxLA minimo accettabile
if CLmaxLA_MIN<=CLmaxLAinf

end
if CLmaxLA_MIN>CLmaxLAinf & CLmaxLA_MIN<=CLmaxLAsup

end
if CLmaxLA_MIN>CLmaxLAsup
CLmaxLA = ' LS '
k = ' LS '

2 of 4

07/07/06 3.57
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174

C:\Documents and Settings\dedde\Desktop\MATLAB\3.Ve...\verifiche_bassa.m

3 of 4

end
end
% Se le verifiche di atterraggio hanno prodotto esito
% negativo, la configurazione va scartata
if checkLA==0
CLmaxLA = ' LA '
k = ' LA '
end
% --------------------------------------------------------% Output delle verifiche di bassa velocit
if CLinf1==0
CLinf1 = ' ga '
CLsup1 = ' ga '
end
if CLinf2==0
CLinf2 = ' ga '
CLsup2 = ' ga '
end
if CLmaxLAinf==0
CLmaxLAinf = ' ga '
CLmaxLAsup = ' ga '
end
if CLmaxLAinf==-1
CLmaxLAinf = ' LA '
CLmaxLAsup = ' LA '
end
if CLsup1>10
strCL=num2str(CLsup1,'%2.1f'
else
strCL=num2str(CLsup1,'%1.2f'
end

LS_check1 = vertcat(LS_check1, [sprintf(formato_check1,check1)...


'
' num2str(CLinf1,'%1.2f')...
'
' strCL...
'
' num2str(CLinf2,'%1.2f')...
'
' num2str(CLsup2,'%1.2f')...
'
' num2str(CLmaxLAinf,'%1.2f')...
'
' num2str(CLmaxLAsup,'%1.2f'

LS_check2 = vertcat(LS_check2, [sprintf(formato_check2,check2)...


'
' num2str(CLmaxLAinf,'%1.2f')...
'
' num2str(CLmaxLAsup,'%1.2f')...
'
' num2str(CLmaxLA,'%1.2f')...
'
' num2str(k,'%1.2f'
% Isolamento delle configurazioni accettabili
if Tinst_Tnec_TO1>=1 & Tinst_Tnec_TO2>=1 & Tinst_Tnec_TO3>=1 & ...
checkLA==1 & checkLS==1 & ...
CLmaxTO<=2.4 & CLmaxLA<=3
acceptable = [C M AR t_c KS Tinst_Tnec_TO1 Tinst_Tnec_TO2 Tinst_Tnec_TO3 CLmaxLA_app

07/07/06 3.57

C:\Documents and Settings\dedde\Desktop\MATLAB\3.Ve...\verifiche_bassa.m

4 of 4

175
LS_acceptable = vertcat(LS_acceptable, [sprintf(formato_acceptable,acceptable)...
176
'
' num2str(CLinf1,'%1.2f')...
177
'
' strCL...
178
'
' num2str(CLinf2,'%1.2f')...
179
'
' num2str(CLsup2,'%1.2f')...
180
'
' num2str(CLmaxTO,'%1.2f')...
181
'
' num2str(CLmaxLA,'%1.2f')...
182
'
' num2str(k,'%1.2f'
183 end
184
185 % Memorizzazione risultati
186 if checkLA==0
187
188 end
189 if checkLA==1 & checkLS==0
190
191 end
192
193
194
end
195
end
196
end
197 end
198
199
200 % VISUALIZZAZIONE DEI RISULTATI
201 % ----------------------------202 disp('VERIFICHE DI BASSA VELOCITA''')
203 fprintf('\n')
204 disp('Analisi delle 243 configurazioni ottenute dal progetto di alta velocit:')
205 disp('
CONFIGURAZIONE
DECOLLO: Tinst/Tnec
ATTERRAGGIO: CLmaxLA')
206 disp('xxxxxxxxxxxxxxxxxxxxxxxxxxxx
..............................
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx')
207 disp(' N M
AR t/c
KS
1 TO
2 TO
3 TO CLmaxTO 1 LA
2 LA
[3
LA: cond1] [3 LA: cond2] [CLmaxLAinf CLmaxLAsup]')
208 disp(LS_check1)
209 fprintf('\n')
210 disp(' N M
AR t/c
KS
CLmaxTO
[CLmaxLAinf CLmaxLAsup]
CLmaxLA
CLmaxTO/CLmaxLA')
211 disp(LS_check2)
212 fprintf('\n')
213 disp('Le configurazioni che soddisfano i requisiti di bassa velocit sono:')
214 disp('
CONFIGURAZIONE
DECOLLO: Tinst/Tnec
ATTERRAGGIO:
CLmaxLA
RISULTATI')
215 disp('xxxxxxxxxxxxxxxxxxxxxxxxxxxx
.....................
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx .................................')
216 disp(' N M
AR t/c
KS
1 TO
2 TO
3 TO
1 LA
2 LA
[3 LA: cond1]
[3 LA: cond2] CLmaxTO CLmaxLA CLmaxTO/CLmaxLA')
217 disp(LS_acceptable)
218
219 % SALVATAGGIO RISULTATI
220 % --------------------221
222 save('bassa', 'LS_memo')

07/07/06 3.58

07/07/06 3.58
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

C:\Documents and Settings\dedde\Desktop\MATLAB\3.Veri...\T_Wnecessario.m

% PRESTAZIONE DI SALITA: CALCOLO DEL RAPPORTO T/W NECESSARIO A PUNTO FISSO


% ------------------------------------------------------------------------%
% function T_Wpf = T_Wnecessario(CGR, CLmax, CD0, e, AR, Vst, Vst_V, a, sigma,
%
Koe, BPR, W)
%
% Si considera un generico tratto di salita e, sotto le ipotesi di volo
% quasi stazionario e angolo di pendenza della traiettoria piccolo, si
% calcola il rapporto spinta/peso necessario per effettuare la manovra di
% salita e lo si ricondiuce a punto fisso.
%
% INPUT
% ----% CGR: gradiente di salita
%CLmax: CL massimo nella configurazione di salita
% CD0: coefficiente di resistenza parassita nella configurazione di salita
%
e: fattore di Oswald nella configurazione di salita
%
AR: allungamento alare
% Vst: velocit di stallo nella configurazione di salita
%Vst_V: rapporto velocit stallo/ velocit di salita
%
a: velocit del suono dell'aria alla quota di salita = quota pista
%sigma: rapporto tra le densit dell'aria alla quota di salita e a quota 0
% Koe: coefficiente relativo al n di motori in avaria
% BPR: rapporto di bypass dei motori
%
W: peso del velivolo nel tratto di salita [kg]
%
% OUTPUT
% -----% T_Wpf: rapporto T/W a punto fisso necessario per superare i requisiti sul
%
tratto di salita considerato
function T_Wpf = T_Wnecessario(CGR, CLmax, CD0, e, AR, Vst, Vst_V, a, ...
sigma, Koe, BPR, W)
% rapporto spinta/peso necessario
% spinta necessaria [kg]
% spinta necessaria a punto fisso [kg]
% velocit velivolo [m/s]

% rapporto spinta/peso necessario a punto fisso

1 of 1

C:\Documents and Settings\dedde\Desktop\MATLAB\3...\MAIN.verifiche_243.m

1 of 4

1 % VERFICHE DELLE 243 CONFIGURAZIONI


2 % =================================
3 % Tra le 243 configurazioni fornite dal progetto di alta velocit si
4 % selezionano quelle che soddisfano i requistiti di alta e bassa velocit.
5
6 clear all
7 clc
8
9 % Caricamento risultati ottenuti dalle verifiche di alta velocit
10 load alta.mat
11
12
13
14
15 % Caricamento risultati ottenuti dalle verifiche di bassa velocit
16 load bassa.mat
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31 % Variazioni dei parametri di progetto
32 %..........................................................................
% (indice iM)
Variazione del Mach di crociera
33
34
35
% (indice iAR) Variazione di AR
36
37
% (indice it_c) Variazione di t_c
38
% (indice iKS)
39
40
% Variazione di KS
41 %..........................................................................
42
43 % contatore delle configurazioni
44
45
46 % inizializzazione delle variabili di memorizzazione dei risultati
47
48
49
50
51 % formato degli output
52 formato_check = '%3.0f %5.2f %2.0f %5.2f %5.2f %7.2f %10.2f %10.2f %7.2f %7.2f %7.2f %7.2f
%7.2f'
53 formato_acceptable = '%3.0f %5.2f %2.0f %5.2f %5.2f %7.2f %10.2f %10.2f %7.2f %7.2f %7.2f %
7.2f %7.2f'
54
55 for iM = 1:length(Mv)
56
for iAR = 1:length(ARv)

07/07/06 3.58
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
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114

C:\Documents and Settings\dedde\Desktop\MATLAB\3...\MAIN.verifiche_243.m

for it_c = 1:length(t_cv)


for iKS = 1:length(KSv)

%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%

if CLinf2==0
CLinf2 = ' ga '
CLsup2 = ' ga '
end
if CLmaxLA==0
CLmaxLA = ' LA '
k = ' LA '
else
if CLmaxLA==-1
CLmaxLA = ' LS '
k = ' LS '
else
end
end
if CLsup1>10
strCL=num2str(CLsup1,'%2.1f'
else
strCL=num2str(CLsup1,'%1.2f'
end

07/07/06 3.58

C:\Documents and Settings\dedde\Desktop\MATLAB\3...\MAIN.verifiche_243.m

3 of 4

115 check = [C M AR t_c KS HS_memo(C,:) Tinst_Tnec_TO1 Tinst_Tnec_TO2 Tinst_Tnec_TO3

% PARAMETRI DELLA CONFIGURAZIONE


% -----------------------------% Mach
% allungamento alare
% spessore percentuale riferimento
% coefficiente superficie

% Output delle verifiche


if CLinf1==0
CLinf1 = ' ga '
CLsup1 = ' ga '
end

2 of 4

ALTA

BASSA

116 check_243 = vertcat(check_243, [sprintf(formato_check,check)...


117
'
' num2str(CLinf1,'%1.2f')...
118
'
' strCL...
119
'
' num2str(CLinf2,'%1.2f')...
120
'
' num2str(CLsup2,'%1.2f')...
121
'
' num2str(CLmaxTO,'%1.2f')...
122
'
' num2str(CLmaxLA,'%1.2f')...
123
'
' num2str(k,'%1.2f'
124
125 % Isolamento e memorizzazione delle configurazioni accettabili
126 if Vtank_Vnec>=1 & Tinst_Tnec_CR>=1 & sweep25>=10 & ...
127
Tinst_Tnec_TO1>=1 & Tinst_Tnec_TO2>=1 & Tinst_Tnec_TO3>=1 & ...
128
CLmaxLA>0 & ...
129
CLmaxTO<=2.4 & CLmaxLA<=3
130
131
acceptable = [C M AR t_c KS HS_memo(C,:) Tinst_Tnec_TO1 Tinst_Tnec_TO2 Tinst_Tnec_TO3
132
acceptable_243 = vertcat(acceptable_243, [sprintf(formato_acceptable,acceptable)...
133
'
' num2str(CLinf1,'%1.2f')...
134
'
' strCL...
135
'
' num2str(CLinf2,'%1.2f')...
136
'
' num2str(CLsup2,'%1.2f')...
137
'
' num2str(CLmaxTO,'%1.2f')...
138
'
' num2str(CLmaxLA,'%1.2f')...
139
'
' num2str(k,'%1.2f'
140
141
142
143
144 end
145
end
146
end
147
end
148 end
149
150
151 % VISUALIZZAZIONE DEI RISULTATI
152 % ----------------------------153 disp('VERIFICHE')
154 fprintf('\n')
155 disp('Analisi delle 243 configurazioni ottenute dal progetto di alta velocit:')
156 fprintf('\n')
157 disp('
CONFIGURAZIONE
ALTA VELOCITA''
DECOLLO: Tinst/Tnec
ATTERRAGGIO: CLmaxTA
RISULTATI')
158 disp('xxxxxxxxxxxxxxxxxxxxxxxx .............................. xxxxxxxxxxxxxxxxxxxxx
.............................................
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx')
159 disp(' N M
AR t/c
KS
Vtank/Vnec Tinst/Tnec Sweep25 1 TO
2 TO
3 TO
1
LA
2 LA
[3 LA: cond1] [3 LA: cond2] CLmaxTO CLmaxLA CLmaxTO/CLmaxLA')
160 disp(check_243)
161 fprintf('\n')
162 disp('Le configurazioni che soddisfano i requisiti di alta e bassa velocit sono:')
163 fprintf('\n')
164 disp('
CONFIGURAZIONE
ALTA VELOCITA''
DECOLLO: Tinst/Tnec
ATTERRAGGIO: CLmaxTA
RISULTATI')
165 disp('xxxxxxxxxxxxxxxxxxxxxxxx .............................. xxxxxxxxxxxxxxxxxxxxx
.............................................
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx')

07/07/06 3.58
166
LA
167
168
169
170
171

C:\Documents and Settings\dedde\Desktop\MATLAB\3...\MAIN.verifiche_243.m

disp(' N M
AR t/c
2 LA
[3 LA: cond1]
disp(acceptable_243)

KS
Vtank/Vnec Tinst/Tnec Sweep25 1 TO
2 TO
[3 LA: cond2] CLmaxTO CLmaxLA CLmaxTO/CLmaxLA')

% SALVATAGGIO RISULTATI
% --------------------save('verifiche', 'memo_243')

3 TO

4 of 4
1

C04

Progetto di Costruzioni Aeronautiche

07/07/06 4.00

C:\Documents and Settings\dedde\Desktop\MATLAB...\MAIN.DOC_calculation.m

1 % COSTI OPERATIVI DIRETTI


2 % =======================
3 % In questo programma si esegue:
4 %
1) Il calcolo dei costi operativi diretti delle configurazioni che
5 %
soddisfano i requisiti di alta e bassa velocit
6 %
2) L'analisi dei costi della configurazione ottima che quella che,
7 %
tra le configurazioni che soddisfano i requisiti di alta e bassa
8 %
velocit, rende minimi i costi operativi diretti
9
10 clear all
11 clc
12
13 % Costanti & fattori di conversione
14 %..........................................................................
15
% 1 ft = 0.3048 m
% 1 n.m. = 1852 m
16
17
% 1 lb = 0.45359237 kg
18 %..........................................................................
19
20 %--------------------------- D A T I ----------------------------------21
% Seats number [--]
% Number of cabin attendants
22
23
% Cruise altitude [m]
% Max range (max Wvlp) [m]
24
!!!!!!!!!!!!!!!!!!!!!
25
!!!!!!!!!!!!!!!!!!!!!
% Stage Length = Range [km]
26
27
% Number of aircrafts delivered
28
% Consumer Price Index 2006
% Consumer Price Index 1995
29
30
% Current Fuel Price [US$/kg]
% Number of engines
31
32
% Number of shafts
% Number of compressor stages
33
34
35
36 % Caricamento dati ottenuti dalla stima del Wto preliminare
37 load('Wto_preliminare', 'Wvlp')
38
39 % Caricamento configurazioni ottenute dal progetto di alta velocit
40 load config.mat
41
42 % Caricamento configurazioni che soddisfano le verifiche di alta e bassa
43 % velocit
44 load verifiche.mat
45
46 % ------------------------------------------------------------------------47
48 % xxxxxxxxxxxxxxxxxxxxxxxxxx ANALISI DEI COSTI xxxxxxxxxxxxxxxxxxxxxxxxxxxx
49 % inizializzazione delle variabili di memorizzazione dei risultati
50
51
52
53 % formato degli output
54 formato_acceptable = '%3.0f %6.2f %3.0f %6.2f %6.2f %20.6f '
55
56 for i = 1:length(config_v)

1 of 6

07/07/06 4.00

C:\Documents and Settings\dedde\Desktop\MATLAB...\MAIN.DOC_calculation.m

2 of 6

57
58
% PARAMETRI DELLA CONFIGURAZIONE
59
% -----------------------------60
% Numero della configurazione
% Mach
61
62
% Allungamento alare
% Spessore percentuale riferimento
63
% Coefficiente superficie
64
65
66
% INDICI DELLA CONFIGURAZIONE
67
% --------------------------68
69
70
71
72
73
% DATI RICAVATI DAL PROGETTO DI ALTA VELOCITA'
74
% -------------------------------------------75
% Max Take Off Weight [kg]
76
% Payload Weight [kg]
?????????????????
77
%Wpayload =
% Volume limited payload [kg]
?????????????????
78
Wfuel = config(iM,iAR,it_c).weights(iKS,3)-...
% Fuel Weight [kg]
79
80
!!!!!!!!!!!!!!!!!
81
!!!!!!!!!!!!!!!!!
82
% Operating Empty Weight [kg]
% Manufacturers' Empty Weight [kg]
83
84
% Engine weight [kg]
% Sea level Static TO Trust [kg]
85
86
% Static thrust [lb]
% Bypass ratio
87
% Overall Pressure ratio (Fan included)
88
89
90
% BLOCK TIME
91
% ---------92
% Mean Velocity over Range [m/s]
% Mean Velocity over Range [km/h]
93
94
95
% Flight time [hr]
96
% Block time [hr]
% Utilisation [hr/year]
97
98
% Commercial speed [km/hr]
99
100
% AIRCRAFT DELIVERY PRICE
101
% ----------------------% A/C max speed [m/s]
102
103
Ceng_1995 = 2.451e-14*(Tdes_lb^3) - 2.846e-9*(Tdes_lb^2) + (1.838e-4*Tdes_lb) + 6.321e104
105
106
107
108
109

% Cost of one engine (Current Year) [MUSD]


% Aircraft Delivery Price (Current Year) [MUSD]
% AIRCRAFT OWNERSHIP COSTS
% ------------------------

07/07/06 4.00
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167

C:\Documents and Settings\dedde\Desktop\MATLAB...\MAIN.DOC_calculation.m

% FLIGHT COSTS
% ------------

% MAINTENANCE COSTS
% -----------------

% DIRECT OPERATING COSTS


% ----------------------

% MEMORIZZAZIONE DEI DOC PER LE CONFIGURAZIONI ACCETTABILI


% --------------------------------------------------------

% CONFIGURAZIONE CHE MINIMIZZA I DOC


% --------------------------------if DOC<DOCminimi
%
%
%
%
%
%
%

parametri della configurazione ottima


Block Time
Direct Operating Costs
Aircraft Delivery Price
Aircraft Ownership Costs
Flight Costs
Mainteinance Costs

end
end
% xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
% xxxxx ANALISI DEI COSTI DELLA CONFIGURAZIONE DI OTTIMO SELEZIONATA xxxxxx
% PARAMETRI DELLA CONFIGURAZIONE
% Numero della configurazione
% Mach
% Allungamento alare
% Spessore percentuale riferimento
% Coefficiente superficie
% BLOCK TIME
%
%
%
%

Flight time [hr]


Block time [hr]
Utilisation [hr/year]
Commercial speed [km/hr]

% DIRECT OPERATING COSTS


%
%
%
%
%
%

Direct Operating Cost [USD current/seat*Km]


Aircraft Ownership Costs [% of DOC]
Mainteinance costs [% of DOC]
Crew costs [% of DOC]
Fuel costs [% of DOC]
Landing Fees [% of DOC]

3 of 6

07/07/06 4.00
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225

C:\Documents and Settings\dedde\Desktop\MATLAB...\MAIN.DOC_calculation.m


% Navigation Charges [% of DOC]
% Groud Handling Charges [% of DOC]
% Flight Costs [% of DOC]

% AIRCRAFT DELIVERY PRICE


%
%
%
%
%
%
%
%
%
%
%

Aircraft Delivery Price [MUSD]


Manufacturers' Standard Study Price [MUSD]
Engineering Costs [% of MSP]
Tooling Costs [% of MSP]
Manifacturing Costs [% of MSP]
Quality Control Costs [% of MSP]
Develpement Support Costs [% of MSP]
Filght Test Costs [% of MSP]
Manufactoring Materials Costs [% of MSP]
Avionics Costs [% of MSP]
Engines Total Costs [% of MSP]

%%%%%%%%%%%%%% Everything from here on is [USD current/FH] %%%%%%%%%%%%%%%%


% AIRCRAFT OWNERSHIP COSTS
%
%
%
%

Aircraft Ownership Costs


Depreciation
Interest
Insurance

% FLIGHT COSTS
%
%
%
%
%
%

Flight Costs
Crew costs
Fuel costs
Landing Fees
Navigation Charges
Ground Handling Charges

% MAINTENANCE COSTS
% Mainteinance costs
% Airframe Mainteinance costs
% Engine time dependent costs
% Engine cycle dependent costs
% Total engine Mainteinance costs
% xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
% VISUALIZZAZIONE DEI RISULTATI
% ----------------------------disp('I costi opetativi diretti delle configurazioni che soddisfano i ')
disp('requisiti di alta e bassa velocit sono:')
fprintf('\n')
disp(' N M
AR
t/c
KS
DOC [USD current/(seat*Km)]')
disp(acceptable_DOC)
fprintf('\n')
disp('La configurazione che minimizza i costi operativi diretti :')
disp('-----------------------------------------------------------')
disp(sprintf('Configurazione
= %1.0f',C))
disp(sprintf('Mach
= %1.2f',M))
disp(sprintf('Allungamento alare
= %1.0f',AR))
disp(sprintf('Spessore percentuale
= %1.2f',t_c))
disp(sprintf('Coefficiente superficie
= %1.2f',KS))
disp('-----------------------------------------------------------')

4 of 6

07/07/06 4.00

C:\Documents and Settings\dedde\Desktop\MATLAB...\MAIN.DOC_calculation.m

5 of 6

226 fprintf('\n')
227
228 disp('DIRECT OPERATING COSTS')
229 disp('----------------------')
230 disp(sprintf('Direct Operating Cost [USD/seat*Km] = %1.6f',DOC))
231 disp(sprintf('Block time [Hr]
= %1.2f',Bt))
232 disp(sprintf('Commercial speed [km/hr]
= %1.2f',Vb))
233 disp(sprintf('Utilisation [hr/year]
= %1.0f',U))
234 disp(sprintf('Aircraft Delivery Price [MUSD]
= %1.2f',ADP))
235 fprintf('\n')
236
237 disp('AIRCRAFT OWNERSHIP COSTS [USD/FH]')
238 disp('---------------------------------')
239 disp(sprintf('Depreciation
= %1.0f',Dep))
240 disp(sprintf('Interest
= %1.0f',Int))
241 disp(sprintf('Insurance
= %1.0f',Ins))
242 disp(sprintf('TOT
= %1.0f',AC))
243 fprintf('\n')
244
245 disp('FLIGHT COSTS [USD/FH]')
246 disp('---------------------')
247 disp(sprintf('Crew costs
= %1.0f',CREW_cost))
248 disp(sprintf('Fuel costs
= %1.0f',FUEL_cost))
249 disp(sprintf('Tax (Landing Fees)
= %1.0f',LF_cost))
250 disp(sprintf('Tax (Navigation Charges)
= %1.0f',NC_cost))
251 disp(sprintf('Tax (Ground Handling Charges)
= %1.0f',GHC_cost))
252 disp(sprintf('TOT
= %1.0f',FC))
253 fprintf('\n')
254
255 disp('MAINTENANCE COSTS [USD/FH]')
256 disp('--------------------------')
257 disp(sprintf('Airframe Maintenance Costs
= %1.0f',AMCost))
258 disp(sprintf('Engine Time Dependent Costs
= %1.0f',EMCost_hr))
259 disp(sprintf('Engine Cycle Dependent Costs
= %1.0f',EMCost_cycle))
260 disp(sprintf('TOT
= %1.0f',MC))
261
262 % PLOTTAGGI GRAFICI A TORTA
263 % ------------------------264
265 % RIPARTIZIONE DEGLI AIRCRAFT MANUFACTURERS' STANDARD STUDY PRICE
266 figure(1)
267
268 pie(MSPsplit)
269 leg1 = legend('Engineering','Tooling','Manufacturing','Quality control','Development
support',...
270
'Flight test','Manufacturing materials','Avionics','Engines total'
271 set(leg1,'FontSize',8)
272 title('Aircraft Manufacturers'' Standard Study Price','FontSize',12,'FontWeight','b')
273
274 % RIPARTIZIONE DEI COSTI OPERATIVI DIRETTI
275 figure(2)
276
277 pie(DOC_part)
278 leg2 = legend('Aircraft Ownership Costs','Maintenance Costs','Flight Costs'
279 set(leg2,'FontSize',8)
280 title('Direct Operative Costs (DOC)','FontSize',12,'FontWeight','b')
281
282 colormap(map)

07/07/06 4.00

C:\Documents and Settings\dedde\Desktop\MATLAB...\MAIN.DOC_calculation.m

6 of 6

283
284 figure(3)
285 DOC_comp = [Dep Int Ins AMCost EMCost_hr EMCost_cycle...
286
287
288 pie(DOC_split)
289 leg3 = legend('Depreciation','Interest','Insurance','Crew costs','Fuel costs','Landing
Fees',...
290
'Navigation Charges','Ground Handling Charges','Airframe Mainteinance costs',...
291
'Engine time dependent cost','Engine cycle dependent cost'
292 set(leg3,'FontSize',8)
293 title('Direct Operative Costs (DOC)','FontSize',12,'FontWeight','b')
294
...
295
...
296
297 colormap(map)

07/07/06 4.00
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

C:\Documents and Settings\dedde\Desktop\MATLAB\4.Anali...\adp_function.m

% AIRCRAFT DELIVERY PRICE & MANUFACTURERS' STANDARD STUDY PRICE


% ------------------------------------------------------------%
% function [ADPout,MSPsplit] = adp_function(Vmax,Weo,Neng,Ceng,Q,CPI)
%
% Input
%
Vmax [m/s]
% A/C max speed
%
Weo
[Kg]
% Operating Empty Weight
%
Neng [--]
% Number of engines
%
Ceng [MUSD] % Cost of one engine (Current Year)
%
Q
[--]
% Number of aircrafts delivered
%
CPI
[--]
% Consumer Price Index Current Year
% Output
%
ADPout =
%
ADP [MUSD] % A/C delivery price
%
MSP [MUSD] % A/C manufacturers' standard study price
%
MSPsplit=
%
CE
[% of MSP] % Engineering Costs
%
CT
[% of MSP] % Tooling Costs
%
CM
[% of MSP] % Manifacturing Costs
%
CQ
[% of MSP] % Quality Control Costs
%
Cdev [% of MSP] % Develpement support Costs
%
CF
[% of MSP] % Filght test Costs
%
CMM
[% of MSP] % Manufactoring materials Costs
%
CAV
[% of MSP] % Avionics Costs
%
Cengt [% of MSP] % Engines total Costs
%
function [ADPout,MSPsplit] = adp_function(Vmax,Weo,Neng,Ceng,Q,CPI)
% Consumer Price Index 1986
% ==========================================================================%
% VARIABLE PARAMETERS
% Number of test aircrafts
% Avionics cost as % of overall MSP (5%-25%)
% ==========================================================================%
% PARAMETERS
% Cost rates (1986 USD/hour)

% Capitalised Interests on Progress Payments


% Chance Orders
% Unit Conversion
% [lb]
% [knots]
% [USD current]
% DAPCA MSP cost model (From Raymer, pp. 491-507)
% Engineering Hours
% Tooling Hours

1 of 2

07/07/06 4.00

C:\Documents and Settings\dedde\Desktop\MATLAB\4.Anali...\adp_function.m

59
60
% Manifacturing Hours
61
62
% Quality control Hours
63
64
65
% Costs
% [USD current]
66
67
% [USD current]
% [USD current]
68
% [USD current]
69
70
71
% Develpement support cost [USD current]
72
73
% Filght test cost [USD current]
74
75
% Manufactoring materials cost [USD current]
76
77
% Avionics cost calulated as a percentage (av_p) of MSP [USD current]
78
79
% MANUFACTURERS' STANDARD STUDY PRICE [USD current]
80
81
82 % AIRCRAFT DELIVERY PRICE [USD current]
83
84
85 % OUTPUT
86
87

2 of 2

07/07/06 4.00
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

C:\Documents and Settings\dedde\Desktop\MA...\aircraft_ownership_costs.m

% AIRCRAFT OWNERSHIP COSTS


% -----------------------%
% function [AC_cost,AC_split] = aircraft_ownership_costs(ADP,Ceng,Neng,U)
%
% Input
%
ADP
[MUSD]
Aircraft Delivery Price (Current Year)
%
Ceng
[MUSD]
Cost of one engine (Current Year)
%
Neng
[--]
Number of engines
%
U
[hr/year] Utilisation
%
% Output
%
AC_Cost
[USD current/FH] % Aircraft costs
% If called with two output arguments gives also
%
AC_split
=
%
Dep [% of AC_cost]
% Depreciation
%
Int [% of AC_cost]
% Interest
%
Ins [% of AC_cost]
% Insurance
function [AC_Cost,AC_split] = aircraft_ownership_costs(ADP,Ceng,Neng,U)
% PARAMETERS
% Years of utilization
% Preliminary calculations & Unit Conversion
% [USD current]
% [USD current]
%%%%%% Everything from here on is per flight hour %%%%%%%%
% AIRCRAFT PRICE DEPENDENT COSTS
% total investment
% Depreciation
% Interest
% Insurance
% OUTPUT
% [USD current / FH]
if nargout > 1
end

1 of 1

07/07/06 4.00
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

C:\Documents and Settings\dedde\Desktop\MATLAB\4.Analisi...\block_time.m

% BLOCK TIME
% ---------%
% function [FLT_BT_U] = block_time(R,Vrange)
%
% Input
%
R
[km]
Range (Stage Length)
%
Vrange
[km/hr] Mean Velocity over Range
% Output
%
FLT_BT_U_VB =
%
FLTt
[hr]
Flight time
%
Bt
[hr]
Block time
%
U
[hr/year] Utilisation
%
Vb
[km/hr]
Commercial speed
function [FLT_BT_U_VB] = block_time(R,Vrange)
% FLIGHT TIME
% [hr]
% BLOCK TIME & UTILISATION
if R<5000
% [hr] Block time
% [hr/year] utilisation
else
% [hr] Block time
% [hr/year] utilisation
end
% COMMERCIAL SPEED
% [km/hr] commercial speed

1 of 1

07/07/06 4.00

07/07/06 4.00
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

C:\Documents and Settings\dedde\Desktop\MATLAB\4.Anali...\DOC_function.m

% DIRECT OPERATING COSTS


% ---------------------%
% function [DOC,DOC_split] = DOC_function(AC_Cost,Mis_Cost,M_Cost,Nseats,Vb)
%
% Input
%
AC_Cost
% [USD/FH] Aircraft ownership costs
%
Mis_Cost
% [USD/FH] Flight costs
%
M_Cost
% [USD/FH] Mainteinance costs
%
Nseats
% [--] seats number
%
Vb
% [km/hr] commercial speed
%
% Output
%
DOC
% [USD current/(seat*Km)] Direct Operating Cost
% If called with two output arguments gives also
%
DOC_split =
%
AC_Cost
[% of DOC]
%
M_cost
[% of DOC]
%
CREW_cost
[% of DOC]
%
FUEL_cost
[% of DOC]
%
LF
[% of DOC]
%
NC
[% of DOC]
%
GHC
[% of DOC]
function [DOC,DOC_split] = DOC_function(AC_Cost,Mis_Cost,M_Cost,Nseats,Vb)

% TOTAL COSTS PER FLIGHT HOUR

(USD current/FH)

% DIRECT OPERATING COST


% [USD current/(seats*Km)]
if nargout > 1

end

1 of 1

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

C:\Documents and Settings\dedde\Desktop\MATLAB\4.Anali...\flight_costs.m

% FLIGHT COSTS
% -----------%
% function [Mis_C] = flight_costs(Natt,Wto,Wpay,Wf,R,Bt,FLTt,FP,CPI)
%
% Input
%
Natt
[--]
Number of cabin attendants
%
Wto
[Kg]
Max Take Off weight
%
Wpay
[Kg]
Payload Weight
%
Wf
[Kg]
Fuel weight
%
R
[km]
Range
%
Bt
[hr]
Block time
%
FLTt
[hr]
Flight time
%
FP
[US$/kg] Current Fuel Price
%
CPI
[--]
Consumer Price Index Current Year
% Output
%
Mis_Cost =
%
CREW_cost
[USD current/FH] Crew costs
%
FUEL_cost
[USD current/FH] Fuel costs
%
LF
[USD current/FH] Landing Fees
%
NC
[USD current/FH] Navigation Charges
%
GHC
[USD current/FH] Groud Handling Charges
function [Mis_Cost] = flight_costs(Natt,Wto,Wpay,Wf,R,Bt,FLTt,FP,CPI)
% Consumer Price Index 1986
% PARAMETERS
% Crew Cost rates (1986 USD)
if R<5000
% [(USD 1986)/hr] for 2 pilots
% [((USD 1986)/hr)/crewmemeber]
else
% [(USD 1986)/hr] for 2 pilots
% [((USD 1986)/hr)/crewmemeber]
end
% Preliminary calculations & Unit Conversion
% [Metric Tonnes]
% [Metric Tonnes]
%%%%%% Everything from here on is per flight hour %%%%%%%%
% CREW DEPENDENT COSTS

% FUEL DEPENDENT COSTS


% [USD current]
% NAVIGATION & TAXES DEPENDENT COSTS
if R<5000
% [USD 1986] Landing Fees
% [USD 1986] Navigation Charges
% [USD 1986] Groud Handling Charges
else
% [USD 1986] Landing Fees
% [USD 1986] Navigation Charges
% [USD 1986] Groud Handling Charges

1 of 2

07/07/06 4.00

C:\Documents and Settings\dedde\Desktop\MATLAB\4.Anali...\flight_costs.m

59
end
60
61
62
63
64
65
66 % MISSION COSTS PER FLIGHT HOUR
67

%
%
%
%

[USD
[USD
[USD
[USD

current]
current]
current]
current]

(USD current/FH)

Landing Fees
Navigation Charges
Groud Handling Charges
Crew Cost

2 of 2

07/07/06 4.01
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

C:\Documents and Settings\dedde\Desktop\MATLAB\4....\maintenance_costs.m

% MAINTEINANCE COSTS
% -----------------%
% function [M_Cost,M_Cost_split] = maintenance_costs(AC_INFO,ENGINFO,CPI)
%
% Input
%
AC_INFO (i)
%
1
ADP
[MUSD] Aircraft Delivery Price
%
2
FLTt
[hr]
Flight time
%
3
Bt
[hr]
Block time
%
4
We
[Kg]
Manufacturers Empty Weight
%
ENGINFO (i)
%
1
Weng
[kg]
Engine weight
%
2
Neng
[--]
Number of engines
%
3
Ceng
[MUSD] Cost of one engine (Current Year)
%
4
BPR
[--]
Bypass ratio
%
5
OAPR
[--]
Overall Pressure ratio (Fan included)
%
6
Nshaft [--]
Number of shaft
%
7
Ncomp [--]
Number of compressor stages
%
8
Tmax
[Kg]
Sea level Static TO Trust
%
CPI
[--]
Consumer Price Index Current Year
% Output
%
M_Cost
[USD current/FH]
Mainteinance costs
%
M_Cost_split =
%
AMCost
[% of M_Cost]
%
EMCost_hr
[% of M_Cost]
%
EMCost_cycle [% of M_Cost]
%
EMCost
[% of M_Cost]
function [M_Cost,M_Cost_split] = maintenance_costs(AC_INFO,ENGINFO,CPI)
% Consumer Price Index 1986
%[MUSD]

Aircraft Delivery Price

%[Kg]

Manufacturers Empty Weight

%[kg]
%[--]
%[MUSD]
%[--]
%[--]
%[--]
%[--]
%[kg]

Engine weight
Number of engines
Cost of one engine (Current Year)
Bypass ratio
Overall Pressure ratio (Fan included)
Number of shaft
Number of compressor stages
Sea level Static TO Trust

% PARAMETERS
% Cost rates (1986 USD/hour)

% Preliminary calculations & Unit Conversion


% [kg]
% [Metric Tonnes]
% [Metric Tonnes]
% [USD current]
% [USD current]

1 of 2

07/07/06 4.01

C:\Documents and Settings\dedde\Desktop\MATLAB\4....\maintenance_costs.m

2 of 2

59 %%%%%% Everything from here on is per flight hour %%%%%%%%


60
61 % MAINTENANCE DEPENDENT COSTS
62
63
% Airframe
64
% [USD
1986/Bt]
% [USD current/Bt]
65
66
% [USD current/FH]
67
% Engine
68
69
70
71
72
% [USD 1986/FH]
73
74
% [USD 1986/Cycle]
75
% [USD current/FH]
76
77
% [USD current/Cycle]
78
% [USD 1986/FH]
79
80
% [USD 1986/Cycle]
81
% [USD current/FH]
82
83
% [USD current/Cycle]
84
% [USD current/FH]
85
86
% [USD current/Cycle]
87
% [USD current/FH]
88
89
90 % OUTPUT
91
% [USD current/FH]
92
93 if nargout > 1
94
95 end

C05

Progetto di Costruzioni Aeronautiche

07/07/06 4.02
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

C:\Documents and Settings\dedde\Desktop\MATLAB\5.Forma in pianta\MAIN.m

% Forma in pianta dell'ala


% -----------------------clear all
clc
% Caricamento dati del velivolo
load config.mat
% Selezione della configurazione ottima
% identificatore del numero di mach
% identificatore dell'allungamento alare
% identificatore dello spessore percentuale
% identificatore del coefficiente di variazione della superficie

% DATI RELATIVI ALLA CONFIGURAZIONE OTTIMA


% ---------------------------------------% Fusoliera

% Ala e cassone

% Impennaggio orizzontale

% Impennaggio verticale

1 of 2

07/07/06 4.02

C:\Documents and Settings\dedde\Desktop\MATLAB\5.Forma in pianta\MAIN.m

2 of 2

59
60
61
62
63
64
65 tailplane(L_ht, b_ht, cR_ht, cT_ht, AR_ht, lambda_ht, sweep25ht, mac_ht, xmac_ht,...
66
L_vt, h_vt, cR_vt, cT_vt, AR_vt, lambda_vt, sweep25vt, mac_vt, xmac_vt, mac, xmac, Xwf,
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89

% Motori

figure(1)
box on
xlabel('[m]','FontSize',12,'FontWeight','b')
ylabel('[m]','FontSize',12,'FontWeight','b')
xmax_plot=Lfus+5
ymin_plot=-0.5*b-2
ymax_plot=0.5*b+2
axis([xmin_plot xmax_plot ymin_plot ymax_plot])

plot(asse,asse_plot,'k-.')

07/07/06 4.02
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

C:\Documents and Settings\dedde\Desktop\MATLAB\5.Forma in pianta\ala.m

% FUSOLIERA
function ala(Xwf, etaR, bK, b, sweepLE, cCL, cR, cK, cT, lambdaN)
%PARAMETRI DIMENSIONALI PER I SERBATOI xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx%
%Rapporto tra corda-serbatoio al K e corda al K [0.47,0.5] %
%Rapporto tra corda-serbatoio al R e corda cRn [0.47,0.5] %
%Rapporto tra ordinata TipTank e ordinata Tip [0.76,0.82] %
%xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx%
% Posizioni delle varie sezioni
% 2 x distanza
% 2 x distanza
% 2 x distanza
% 2 x distanza

dell'ala rispetto all'asse della fusoliera%


CL-T [m]
%
CL-K [m]
%
CL-R [m]
%
CL-TT [m]
%
%
% Posizione relative tra le varie sezioni dell'ala
%
% distanza R-K [m]
%
% distanza R-T [m]
%
% distanza TT-R [m]
%
% distanza T-K [m]
%
% distanza TT-K [m]
%
%-------------------------------------------------------------------------%
% Corde e bordi del cassone alare ----------------------------------%
% Corda al tip tank
%
%
% Corda al root per l'ala trapezia
%
%
%
% Corde del cassone alare
%
% root
%
% kink
%
% tip
%
% tip tank
%
%
% Bordi di attacco e di uscita delle varie sezioni del cassone
%
% Kink
%
%
%
% Tip
%
%
%
% Root
%
%
%
% Tip tank
%
%
%
%-------------------------------------------------------------------%

1 of 2

07/07/06 4.02
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
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99

C:\Documents and Settings\dedde\Desktop\MATLAB\5.Forma in pianta\ala.m

figure(1)
hold on
line([Cs(1)
line([Cd(1)
line([Gs(1)
line([Gd(1)
line([Hs(1)
line([Hd(1)
line([Fs(1)
line([Fd(1)

Gs(1)],[Cs(2)
Gd(1)],[Cd(2)
Hs(1)],[Gs(2)
Hd(1)],[Gd(2)
Fs(1)],[Hs(2)
Fd(1)],[Hd(2)
Ds(1)],[Fs(2)
Dd(1)],[Fd(2)

line([Acs(1)
line([Bcs(1)
line([Acs(1)
line([Acd(1)
line([Dcs(1)
line([Dcd(1)
line([Dcs(1)
line([Dcd(1)

Gs(2)],'Color','b')
Gd(2)],'Color','b')
Hs(2)],'Color','b')
Hd(2)],'Color','b')
Fs(2)],'Color','b')
Fd(2)],'Color','b')
Ds(2)],'Color','b')
Dd(2)],'Color','b')

Acd(1)],[Acs(2)
Bcd(1)],[Bcs(2)
Ccs(1)],[Acs(2)
Ccd(1)],[Acd(2)
Ccs(1)],[Dcs(2)
Ccd(1)],[Dcd(2)
Bcs(1)],[Dcs(2)
Bcd(1)],[Dcd(2)

Acd(2)],'Color','r')
Bcd(2)],'Color','r')
Ccs(2)],'Color','r')
Ccd(2)],'Color','r')
Ccs(2)],'Color','r')
Ccd(2)],'Color','r')
Bcs(2)],'Color','r')
Bcd(2)],'Color','r')

2 of 2

07/07/06 4.02
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

C:\Documents and Settings\dedde\Desktop\MATLAB\5.Forma in p...\engines.m

% MOTORI
% ------

function engines(Xwf, etaR, bK, b, sweepLE, cCL, cR, cK, cT, Le, De)

% posizione motori lungo l'apertura alare


% corda in corrispondenza di yE
if yE <= yK
cE = interp1([yR yK],[cR cK],yE)
else
cE = interp1([yK yT],[cK cT],yE)
end

figure(1)
hold on
line([Bis(1) Bos(1)],[Bis(2) Bos(2)],'Color','b')
line([Bos(1) Cos(1)],[Bos(2) Cos(2)],'Color','b')
line([Bis(1) Ais(1)],[Bis(2) Ais(2)],'Color','b')
line([Bs(1) As(1)],[Bs(2) As(2)],'Color','r','LineStyle',':')
line([Bid(1) Bod(1)],[Bid(2) Bod(2)],'Color','b')
line([Bod(1) Cod(1)],[Bod(2) Cod(2)],'Color','b')
line([Bid(1) Aid(1)],[Bid(2) Aid(2)],'Color','b')
line([Bd(1) Ad(1)],[Bd(2) Ad(2)],'Color','r','LineStyle',':')

1 of 2

07/07/06 4.02

C:\Documents and Settings\dedde\Desktop\MATLAB\5.Forma in p...\engines.m

2 of 2

07/07/06 4.02
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

C:\Documents and Settings\dedde\Desktop\MATLAB\5.Forma in...\fusoliera.m

% FUSOLIERA
function fusoliera(Lfus, Lcockpit, Lseats, wfus)

figure(1)
hold on

plot(xAC,yAC,'k')

plot(xAB,yAB,'k')
yCE = line([C(1) E(1)],[C(2) E(2)],'Color','k'
yBD = line([B(1) D(1)],[B(2) D(2)],'Color','k'

plot(xEF,yEF,'k')

plot(xDF,yDF,'k')
axis equal

function [a,b,c]=parabola(x1,y1,x2,y2)

1 of 1

07/07/06 4.02

C:\Documents and Settings\dedde\Desktop\MATLAB\5.Forma in...\tailplane.m

1 of 1

1 % IMPENNAGGIO ORIZZONTALE
2
3 function tailplane(L_ht, b_ht, cR_ht, cT_ht, AR_ht, lambda_ht, sweep25ht, mac_ht,
xmac_ht,...
4
L_vt, h_vt, cR_vt, cT_vt, AR_vt, lambda_vt, sweep25vt, mac_vt, xmac_vt, mac, xmac, Xwf,
sweepLE)
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27 figure(1)
28 hold on
29
30 line([Av(1) Bsv(1)],[Av(2) Bsv(2)],'Color','b')
31 line([Dv(1) Csv(1)],[Dv(2) Csv(2)],'Color','b')
32 line([Bsv(1) Csv(1)],[Bsv(2) Csv(2)],'Color','b')
33 line([Av(1)-1 Dv(1)+1],[7 7],'Color','b','Linestyle','-.')
34
35 line([A(1) Bs(1)],[A(2) Bs(2)],'Color','b')
36 line([A(1) Bd(1)],[A(2) Bd(2)],'Color','b')
37 line([D(1) Cs(1)],[D(2) Cs(2)],'Color','b')
38 line([D(1) Cd(1)],[D(2) Cd(2)],'Color','b')
39 line([Bs(1) Cs(1)],[Bs(2) Cs(2)],'Color','b')
40 line([Bd(1) Cd(1)],[Bd(2) Cd(2)],'Color','b')
41
42
43

C06

Progetto di Costruzioni Aeronautiche

07/07/06 4.03
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

C:\Documents and Settings\dedde\Desktop\MATLAB\6.Gr...\grafico_decollo.m

clear all
clc
% SELEZIONE DELLA CONFIGURAZIONE OTTIMA
% ------------------------------------% identificatore del numero di mach
% identificatore dell'allungamento alare
% identificatore dello spessore percentuale
% identificatore del coefficiente di variazione della superficie
% Costanti & fattori di conversione
%..........................................................................
% 1 ft = 0.3048 m
% 1 lb = 0.45359237 kg
% accelerazione gravitazionale [m/s]
%..........................................................................
%----------------------------- D A T I --------------------------------% Caricamento dati del velivolo ottenuti dal progetto di alta velocit ---load config.mat
% Dati ricavati dal progetto di alta velocit ----------------------------% peso al decollo [kg]
% carico alare al decollo [kg/m]
% superficie alare di riferimento [m]
% allungamento alare
% coefficiente resistenza parassita velivolo
% fattore di Oswald
% rapporto di bypass

% Requisiti da specifica: PISTA di DECOLLO -------------------------------% lunghezza pista [m]


% quota pista [m]

% rapporto tra le densit


% Rapporto Tpf/Wto installato a punto fisso ------------------------------% short-medium range
% numero di motori
% Requisiti normativi (FAR 25.121a/b/c) ----------------------------------% gli indici 1 2 3 si riferiscono rispettivamente al 1 2 3 segmento di salita
% 1 motore in avaria per tutti i segmenti di salita
% gradienti di salita

% rapporto Velocit di stallo / Velocit nel segmento

1 of 4

07/07/06 4.03
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
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116

C:\Documents and Settings\dedde\Desktop\MATLAB\6.Gr...\grafico_decollo.m

% peso del velivolo nei 3 segmenti di salita [kg]

% Polare del velivolo nei 3 segmenti di salita ---------------------------% Fattore correttivo per il CD0 nei vari segmenti di salita
% formula 12.37 da Raymer
% formule statistiche
% Raymer (table 12.5)
%
% flap decollo + carrelli estratti
% flap decollo + carrelli retratti
% flap retratti + carrelli retratti
% Coefficiente di resistenza parassita

% Fattore di Oswald
% Si trascura la variazione del
% fattore di Oswald rispetto
% alla configurazione di crociera
% ------------------------------------------------------------------------% CALCOLO DEL TOP
% --------------% Curva BFL vs TOP relativa ad un bimotore in unit anglosassoni

% Lunghezza di campo bilanciata (BFL) [ft]


% Takeoff Parameter (TOP) [kg/m]

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% ANALISI DELLA PRESTAZIONE DI DECOLLO DELLA CONFIGURAZIONE DI OTTIMO
% SELEZIONATA
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% CL MASSIMO AL DECOLLO

% Rapporto Tpf/Wto necessario a consentire il superamento dell'ostacolo %


% quando si verifichi l'avaria ad un motore in corrispondenza della
%
% velocit decisionale
%
% CL al decollo

% Rapporto Tpf/Wto necessario per consentire il soddisfacimento dei %


% requisiti normativi (FAR25) nei tre segmenti di salita successivi %
% alla fase di ground roll.
%
% velocit di stallo [m/s]

2 of 4

07/07/06 4.03

C:\Documents and Settings\dedde\Desktop\MATLAB\6.Gr...\grafico_decollo.m

3 of 4

117
118 % 1 SEGMENTO DI SALITA
119 Tpf_Wto1 = T_Wnecessario(CGR1, CLmaxTO, CD01, e1, AR,...
120
121
122 % 2 SEGMENTO DI SALITA
123 Tpf_Wto2 = T_Wnecessario(CGR2, CLmaxTO, CD02, e2, AR,...
124
125
126 % 3 SEGMENTO DI SALITA
127 Tpf_Wto3 = T_Wnecessario(CGR3, CLmaxTO, CD03, e3, AR,...
128
129
130 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
131 % PLOTTAGGIO DEI RISULTATI
132 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
133 figure(1)
134 hold on
135
136 % CURVE T/W vs CLmaxTO
137 % -------------------138 % Curve Tpf/Wto necessari vs CLmaxTO
139 plot(CLmaxTO,Tpf_Wto1,'g',CLmaxTO,Tpf_Wto2,'r',CLmaxTO,Tpf_Wto3,'y',CLmaxTO,
T_Wtop,'b','LineWidth',1.5)
140
141 % Curva Tpf/Wto installata vs ClmaxTO
142
143 plot(CLmaxTO,T_Winst,'k','LineWidth',1.5,'LineStyle','-.')
144
145 % PUNTI D'INTERSEZIONE TRA LE CURVE
146 % --------------------------------147 % Punto d'intersezione tra la curva relativa al superamento dell'ostacolo
148 % e la spinta disponibile
149
150
151 plot(CLmaxTO_min,Tpf_Wto_inst,'o','MarkerSize',
7,'MarkerEdgeColor','k','MarkerFaceColor','b')
152
153 %Punto d'intersezione tra la curva relativa al 2 segmento e la spinta disponibile
154 CLmaxTO_max = fzero(@(CLmaxTO_max) inters_max(CLmaxTO_max, CGR2, CD02, e2, AR, VstTO_V2,
aTO, rhoTO,...
155
156 plot(CLmaxTO_max,Tpf_Wto_inst,'o','MarkerSize',
7,'MarkerEdgeColor','k','MarkerFaceColor','b')
157
158 % Punto d'intersezione tra la curva relativa al 2 segmento di salita e la
159 % curva relativa al TOP
160 CLmaxTO_opt = fzero(@(CLmaxTO_opt) inters_opt(CLmaxTO_opt, CGR2, CD02, e2, AR, VstTO_V2,
aTO, rhoTO,...
161
162
163
164 plot(CLmaxTO_opt,T_W_opt,'o','MarkerSize',7,'MarkerEdgeColor','k','MarkerFaceColor','m')
165
166 box on
167 grid
168 set(gca,'LineWidth',1.5)
169 hleg = legend('1 segm salita','2 segm salita','3 segm salita','TOP','T/W disponibile'

07/07/06 4.03
170
171
172
173
174
175
176
177
178
179
180

C:\Documents and Settings\dedde\Desktop\MATLAB\6.Gr...\grafico_decollo.m

4 of 4

set(hleg,'FontSize',10,'FontWeight','b')
title('Prestazione di Decollo:
T/W vs C_L_m_a_x_T_O','FontSize',12,'FontWeight','b')
xlabel('C_L_m_a_x_T_O','FontSize',10,'FontWeight','b')
ylabel('T/W','FontSize',10,'FontWeight','b','Rotation',0)
disp('Il valore MINIMO ammissibile per il CL massimo al decollo :')
disp([num2str(CLmaxTO_min)])
disp('Il valore OTTIMO per il CL massimo al decollo :')
disp([num2str(CLmaxTO_opt)])
disp('Il valore MASSIMO ammissibile per il CL massimo al decollo :')
disp([num2str(CLmaxTO_max)])

07/07/06 4.03
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18

function

C:\Documents and Settings\dedde\Desktop\MATLAB\6.Grafico...\inters_max.m


IMAX = inters_max(CLmax, CGR, CD0, e, AR, Vst_V, a, rho,...
sigma, Koe, BPR, W, W_S, Tpf_Wto_inst, g)

% rapporto spinta/peso necessario


% spinta necessaria [kg]
% spinta necessaria a punto fisso [kg]
% velocit di stallo [m/s]
% velocit velivolo [m/s]

% rapporto spinta/peso necessario a punto fisso

% INTERSEZIONE TRA LE 2 CURVE


% ---------------------------

1 of 1

07/07/06 4.03
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23

function

C:\Documents and Settings\dedde\Desktop\MATLAB\6.Grafico...\inters_opt.m


IOPT = inters_opt(CLmax, CGR, CD0, e, AR, Vst_V, a, rho,...
sigma, Koe, BPR, W, W_S, TOP, g)

% rapporto spinta/peso necessario


% spinta necessaria [kg]
% spinta necessaria a punto fisso [kg]
% velocit di stallo [m/s]
% velocit velivolo [m/s]

% rapporto spinta/peso necessario a punto fisso

% RAPPORTO T/W RELATIVO AL TOP


% ----------------------------

% INTERSEZIONE TRA LE 2 CURVE


% ---------------------------

1 of 1

C07

Progetto di Costruzioni Aeronautiche

07/07/06 4.04

C:\Documents and Settings\dedde\Desktop\MATLA...\MAIN_ipersostentatori.m

1 of 3

1 % PROGETTO DEL SISTEMA DI IPERSOSTENTAZIONE


2 % =========================================
3 % In questo programma si analizzano alcune tipologie di sistemi di
4 % ipersostentazione allo scopo di scegliere quella che genera un incremento
5 % di portanza del velivolo (rispetto alla configuarazione pulita di alta
6 % velocit) sufficiente a garantire le prestazioni di bassa velocit.
7 % Poich si osserva che l'atterraggio la prestazione pi vincolante, ci
8 % si limita a determinare il coefficiente di portanza massimo del velivolo
9 % ipersostentato e lo si confronta con il CLmax richiesto per la manovra di
10 % atterraggio.
11
12 % Per valutare l'effetto degli ipersostentatori di bordo d'attacco e di
13 % bordo d'uscita sul coefficiente di portanza massimo del velivolo si fa
14 % riferimento all'appendice G di " Synthesis of subsonic airplane design"
15 % di E.Torenbeek
16
17 clear all
18 clc
19
20 % SELEZIONE DELLA CONFIGURAZIONE OTTIMA
21 % ------------------------------------% indice del numero di Mach
22
23
% indice dell'allungamento alare
% indice dello spessore percentuale
24
25
% indice del coefficiente di variazione della superficie
26
27 %----------------------------- D A T I --------------------------------28 % Caricamento dati del velivolo ottenuti dal progetto di alta velocit ---29 load config.mat
30
31 % Curva di portanza del profilo alare pulito
32 % Si sceglie il profilo supercritico NACA 65-412: dall'Abbott si ricavano
33 % le caratteristiche seguenti
34
% coefficiente di portanza a incidenza nulla
35
% coefficiente di portanza massimo
% pendenza curva di portanza
36
37
38 % Caratteristiche dell'ala pulita
39
% superficie alare di riferimento [m]
40
% apertura alare [m]
41
% apertura al kink [m]
% apertura alla radice [m]
42
43
% coeff. di rastremazione dell'ala
% corda alla radice [m]
44
% corda al kink [m]
45
46
% corda all'estremit [m]
% freccia al 25% della corda [rad]
47
48
49 % Caratteristiche dell'ala ipersostentata (lucido 18 alta velocit)
50 % Flaps
51
52
53
54
55
% approssimazione
56
57
% approssimazione trapezio (il 2 serve per le 2
semiali)

07/07/06 4.04

C:\Documents and Settings\dedde\Desktop\MATLA...\MAIN_ipersostentatori.m

2 of 3

58
% approssimazione trapezio (il 2 serve per le 2
semiali)
59
% area interessata dai flaps [m]
60
61 % Slats
62
63
% approssimazione
64
65
66
67
68
% approssimazione trapezio (il 2 serve per le 2
semiali)
69
% approssimazione trapezio (il 2 serve per le 2
semiali)
% area interessata dagli slats [m]
70
71 % ------------------------------------------------------------------------72
73 % CURVA DI PORTANZA DEL PROFILO ALARE IPERSOSTENTATO
74 % -------------------------------------------------75
76
77
78
79 % COEFFICIENTE DI PORTANZA MASSIMO DELL'ALA FINITA IPERSOSTENTATA
80 % --------------------------------------------------------------81
82
83
84 % Coefficiente di portanza massimo dell'ala ipersostentata: si considerano
85 % tutte le possibili combinazioni flaps + slats
86
87 % ssf + plef
88
89 % ssf + s
90
91 % ssff + plef
92
93 % ssff + s
94
95 % dsff_fv + plef
96
97 % dsff_fv + s
98
99 % dsff_vg + plef
100
101 % dsff_vg + s
102
103
104 % COEFFICIENTE DI PORTANZA MASSIMO DEL VELIVOLO IPERSOSTENTATO
105 % -----------------------------------------------------------106
107 % Contributi aggiuntivi
108 [air_ssf_plef, air_ssf_s, air_ssff_plef, air_ssff_s,...
109 air_fv_plef, air_fv_s, air_vg_plef, air_vg_s]...
110
111
112 % CLmax del velivolo ipersostentato: si considerano tutte le possibili

07/07/06 4.04

C:\Documents and Settings\dedde\Desktop\MATLA...\MAIN_ipersostentatori.m

3 of 3

113 % combinazioni flaps + slats


114
115 % ssf + plef
116
117 % ssf + s
118
119 % ssff +plef
120
121 % ssff + s
122
123 % dsff_fv + plef
124
125 % dsff_fv + s
126
127 % dsff_vg + plef
128
129 % dsff_vg + s
130
131
132 % VISUALIZZAZIONE DEI RISULTATI
133 % ----------------------------134
135 CLmax = [CLmax_ssf_plef, CLmax_ssf_s, CLmax_ssff_plef, CLmax_ssff_s,...
136
137
138 formato = '%11.4f %7.4f %11.4f %7.4f %11.4f %7.4f %11.4f %7.4f'
139
140 fprintf('\n')
141 disp('COEFFICIENTE DI PORTANZA MASSIMO DEL VELIVOLO IPERSOSTENTATO')
142 disp
('------------------------------------------------------------------------------------------------')
143 disp('
ssf
ssff
dsff_fv
dsff_vg')
144 disp('
plef
s
plef
s
plef
s
plef
s')
145 disp(['
CLmax_W ', sprintf(formato,CLmax)])
146 disp
('------------------------------------------------------------------------------------------------')

07/07/06 4.04
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

%
%
%
%
%
%
%
%
%

C:\Documents and Settings\dedde\Desktop\MATLAB\7.Progetto ...\aircraft.m

COEFFICIENTE DI PORTANZA MASSIMA DEL VELIVOLO


=============================================
I seguenti pedici si riferiscono alla tipologia di ipersostentatori
scelti per il bordo d'uscita:
ssf:
ssff:
dsff_fv:
dsff_vg:

single
single
double
double

slotted
slotted
slotted
slotted

flaps
fowler flaps
fowler flaps with fixed vane
fowler flaps with variable geometry

% I seguenti pedici si riferiscono alla tipologia di ipersostentatori


% scelti per il bordo d'attacco:
%
% plef: plain leading edge flaps
%
s: slats & Krueger flaps
% INPUT
% ----%
CLmax_W:
%
%
%
%
%
%
%
%
%
deltaCl0_flap:
%
%
%
%
% deltaClmax_flap:
%
%
%
%
S:
%
Swf_in:
%
lambda:
%
b:
%
bk:

coefficiente di portanza massimo dell'ala ipersostentata


CLmax_W(1) = CLmaxW_ssf_plef
CLmax_W(2) = CLmaxW_ssf_s
CLmax_W(3) = CLmaxW_ssff_plef
CLmax_W(4) = CLmaxW_ssff_s
CLmax_W(5) = CLmaxW_fv_plef
CLmax_W(6) = CLmaxW_fv_s
CLmax_W(7) = CLmaxW_vg_plef
CLmax_W(8) = CLmaxW_vg_s
incremento del Cl0 del profilo dovuto ai flaps
deltaCl0_flap(1) = deltaCl0_ssf
deltaCl0_flap(2) = deltaCl0_ssff
deltaCl0_flap(3) = deltaCl0_dsff_fv
deltaCl0_flap(4) = deltaCl0_dsff_vg
incremento del Clmax del profilo dovuto ai flaps
deltaClmax_flap(1) = deltaClmax_ssf
deltaClmax_flap(2) = deltaClmax_ssff
deltaClmax_flap(3) = deltaClmax_dsff_fv
superficie alare di riferimento [m]
area interessata dai flaps interni al kink [m]
coeff. di rastremazione dell'ala
apertura alare [m]
apertura al kink [m]

% OUTPUT
% -----% air: contributo al coefficiente di portanza massimo del velivolo dovuto
%
al piano di coda orizzontale, all'interferenza flap/fusoliera e ai
%
flap cutouts. Si considerano tutte le possibili combinazioni
%
flaps + slats.
function [air_ssf_plef, air_ssf_s, air_ssff_plef, air_ssff_s,...
air_fv_plef, air_fv_s, air_vg_plef, air_vg_s]...
= aircraft(CLmax_W, deltaCl0_flap, deltaClmax_flap, S, Swf_in, lambdaW, b, bK)
% Coefficiente di portanza massimo dell'ala ipersostentata: si considerano
% tutte le possibili combinazioni flaps + slats
% ssf + plef
% ssf + s

1 of 3

07/07/06 4.04
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
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116

C:\Documents and Settings\dedde\Desktop\MATLAB\7.Progetto ...\aircraft.m

% ssff + plef
% ssff + s
% dsff_fv + plef
% dsff_fv + s
% dsff_vg + plef
% dsff_vg + s

% Incremento del Cl0 del profilo dovuto ai flaps


% ssf
% ssff
% dsff_fv
% dsff_vg
% Incremento del Clmax del profilo dovuto ai
%
%
%
%
%
%
%
%

flaps
ssf
ssff
dsff_fv
dsff_vg

CONTRIBUTO DEL PIANO DI CODA ORIZZONTALE


---------------------------------------Si assume un valore di deportanza in coda pari al 5% della portanza in
ala

% ssf + plef
% ssf + s
% ssff + plef
% ssff + s
% dsff_fv + plef
% dsff_fv + s
% dsff_vg + plef
% dsff_vg + s

% CORREZIONI DOVUTE ALL'INTERFERENZA FLAP/FUSOLIERA


% ------------------------------------------------% flap/fuselage interference factor
% distanza asse fusoliera/inboard end of flap
% L'interferenza dipende dalla tipologia di ipersostentatori scelti per il
% bordo d'uscita
% ssf

2 of 3

07/07/06 4.04
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160

C:\Documents and Settings\dedde\Desktop\MATLAB\7.Progetto ...\aircraft.m

% ssff
% dsff_fv
% dsff_vg

% CORREZIONI DOVUTE AI FLAP CUTOUTS


% --------------------------------% area dell'ala interessata dai flap cutouts
% La perdita di portanza dovuta ai flap cutouts dipende dalla tipologia di
% ipersostentatori scelti per il bordo d'uscita
% ssf
% ssff
% dsff_fv
% dsff_vg

% CONTRIBUTO TOTALE AL COEFFICIENTE DI PORTANZA MASSIMO DEL VELIVOLO


% -----------------------------------------------------------------% Si considerano tutte le possibili combinazioni flaps + slats
% ssf + plef
% ssf + s
% ssff + plef
% ssff + s
% dsff_fv + plef
% dsff_fv + s
% dsff_vg + plef
% dsff_vg + s

3 of 3

07/07/06 4.04
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

%
%
%
%
%
%
%
%
%

C:\Documents and Settings\dedde\Desktop\MATLAB\7.Progetto i...\airfoil.m

1 of 3

CURVA DI PORTANZA DEL PROFILO ALARE


===================================
I seguenti pedici si riferiscono alla tipologia di ipersostentatori
scelti per il bordo d'uscita:
ssf:
ssff:
dsff_fv:
dsff_vg:

single
single
double
double

slotted
slotted
slotted
slotted

flaps
fowler flaps
fowler flaps with fixed vane
fowler flaps with variable geometry

% I seguenti pedici si riferiscono alla tipologia di ipersostentatori


% scelti per il bordo d'attacco:
%
% plef: plain leading edge flaps
%
s: slats & Krueger flaps
% INPUT
% ----%
Cl0: coefficiente di portanza a incidenza nulla del profilo pulito
% Clmax: coefficiente di portanza massimo del profilo pulito
% Clalfa: pendenza della curva di portanza del profilo pulito
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%

OUTPUT
-----deltaCl0_flap: incremento del Cl0 del profilo dovuto ai flaps
deltaCl0_flap(1) = deltaCl0_ssf
deltaCl0_flap(2) = deltaCl0_ssff
deltaCl0_flap(3) = deltaCl0_dsff_fv
deltaCl0_flap(4) = deltaCl0_dsff_vg
deltaClmax_flap: incremento del Clmax del profilo dovuto ai flaps
deltaClmax_flap(1) = deltaClmax_ssf
deltaClmax_flap(2) = deltaClmax_ssff
deltaClmax_flap(3) = deltaClmax_dsff_fv
deltaClmax_flap(4) = deltaClmax_dsff_vg
deltaClmax_slat: incremento del Clmax del profilo dovuto agli slats
deltaClmax_slat(1) = deltaClmax_plef
deltaClmax_slat(2) = deltaClmax_s

function [deltaCl0_flap, deltaClmax_flap, deltaClmax_slat]= airfoil(Cl0, Clmax, Clalfa)


% CURVA DI PORTANZA DEL PROFILO ALARE IPERSOSTENTATO
% ------------------------------------------------------------------------% EFFETTO DEGLI IPERSOSTENTATORI DI BORDO D'USCITA (FLAP)
[deltaCl0_ssf, deltaClmax_ssf, Clalfa_ssf,...
deltaCl0_ssff, deltaClmax_ssff, Clalfa_ssff,...
deltaCl0_dsff_fv, deltaClmax_dsff_fv, Clalfa_dsff_fv,...
deltaCl0_dsff_vg, deltaClmax_dsff_vg, Clalfa_dsff_vg]...

% EFFETTO DEGLI IPERSOSTENTATORI DI BORDO D'ATTACCO (SLAT)


[deltaCl0_plef, deltaClmax_plef,...

% EFFETTO COMPLESSIVO DEGLI IPERSOSTENTATORI DI BORDO D'ATTACCO DI BORDO


% D'USCITA SULLA CURVA DI PORTANZA DEL PROFILO ALARE PULITO
% Si considerano tutte le possibili combinazioni flaps + slats

07/07/06 4.04
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
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116

C:\Documents and Settings\dedde\Desktop\MATLAB\7.Progetto i...\airfoil.m

% ssf + plef

% ssf + s

% ssff + plef

% ssff + s

% dsff_fv + plef

% dsff_fv + s

% dsff_vg + plef

% dsff_vg + s

% MEMORIZZAZIONE E PLOTTAGGIO RISULTATI


% ------------------------------------% LEGENDA
disp('LEGENDA')
disp('-------------------------------------------------------------|')
disp('Tipologia di flap utilizzati
|')
disp('
ssf: single slotted flaps
|')
disp('
ssff: single slotted fowler flaps
|')
disp('dsff_fv: double slotted fowler flaps with fixed vane
|')
disp('dsff_vg: double slotted fowler flaps with variable geometry |')
fprintf('\n')
disp('Tipologia di slat utilizzati
|')
disp('plef: plain leading edge flaps
|')
disp('
s: slats & Krueger flaps
|')
disp('-------------------------------------------------------------|')
fprintf('\n')
disp('CURVA DI PORTANZA DEL PROFILO ALARE')

2 of 3

07/07/06 4.04

C:\Documents and Settings\dedde\Desktop\MATLAB\7.Progetto i...\airfoil.m

3 of 3

117 disp
('------------------------------------------------------------------------------------------------')
118
119 % PROFILO ALARE PULITO
120 disp('*) Curva di portanza del profilo alare pulito')
121 disp(sprintf('
Cl0 %6.1f', Cl0))
122 disp(sprintf('
Clmax %6.1f', Clmax))
123 disp(sprintf('
Clalfa %6.1f', Clalfa))
124 fprintf('\n')
125
126 % FLAP
127
128 deltaClmax_flap = [deltaClmax_ssf, deltaClmax_ssff, deltaClmax_dsff_fv,
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151

formato_flap = '%10.4f %10.4f %10.4f %10.4f'


disp('*) Effetto dei flaps')
disp('
ssf
ssff
dsff_fv
dsff_vg')
disp(['
deltaCl0_flap', sprintf(formato_flap,deltaCl0_flap)])
disp(['
deltaClmax_flap', sprintf(formato_flap,deltaClmax_flap)])
disp(['Clalfa_flap [1/rad]', sprintf(formato_flap,Clalfa_flap )])
fprintf('\n')
% SLAT

formato_slat = '%10.4f %10.4f'


disp('*) Effetto degli slats')
disp('
plef
s')
disp(['
deltaCl0_slat', sprintf(formato_slat,deltaCl0_slat)])
disp(['
deltaClmax_slat', sprintf(formato_slat,deltaClmax_slat)])
fprintf('\n')
% FLAP + SLAT
Cl0_fs = [Cl0_ssf_plef, Cl0_ssf_s, Cl0_ssff_plef, Cl0_ssff_s, Cl0_fv_plef, Cl0_fv_s,

152 Clmax_fs = [Clmax_ssf_plef, Clmax_ssf_s, Clmax_ssff_plef, Clmax_ssff_s, Clmax_fv_plef,


153 Clalfa_fs = [Clalfa_ssf_plef, Clalfa_ssf_s, Clalfa_ssff_plef, Clalfa_ssff_s,
154
155 formato_fs = '%11.4f %7.4f %11.4f %7.4f %11.4f %7.4f %11.4f %7.4f'
156 disp('*) Curva di portanza del profilo alare ipersostentato')
157 disp('
ssf
ssff
dsff_fv
dsff_vg')
158 disp('
plef
s
plef
s
plef
s
plef
s')
159 disp(['
Cl0 ', sprintf(formato_fs,Cl0_fs)])
160 disp(['
Clmax ', sprintf(formato_fs,Clmax_fs)])
161 disp(['
Clalfa ', sprintf(formato_fs,Clalfa_fs)])
162 disp
('------------------------------------------------------------------------------------------------')

07/07/06 4.04
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

C:\Documents and Settings\dedde\Desktop\MATLAB\7.Progetto ...\LE_flaps.m

% EFFETTO DELLA DEFLESSIONE DEGLI IPERSOSTENTATORI DI BORDO D'ATTACCO SULLA


% CURVA DI PORTANZA DEL PROFILO ALARE
% ------------------------------------------------------------------------% INPUT
% ----% Clalfa: pendenza della curva di portanza del profilo pulito
%
%
%
%
%
%
%
%
%
%

OUTPUT
-----deltaCl0: variazione del Cl0 dovuto agli slat
deltaClmax: incremento del coefficiente portanza massimo dovuto agli slat
I pedici si riferiscono alla tipologia di ipersostentatori scelti per il
bordo d'attacco:
plef: plain leading edge flaps
s: slats & Krueger flaps

function [deltaCl0_plef, deltaClmax_plef,...


deltaCl0_s, deltaClmax_s] = LE_flaps(Clalfa)
% PLAIN LEADING EDGE FLAPS
% -----------------------% SCELTE DI PROGETTO
% cs/c
% massima deflessione del flap [rad]
% PARAMETRI

% CURVA DI PORTANZA DEL PROFILO SLATTATO


% Riduzione del coefficiente di portanza a incidenza nulla
% Incremento del massimo coefficiente di portanza

% SLATS & KRUEGER FLAPS


% --------------------% SCELTE DI PROGETTO
% cs/c
% CURVA DI PORTANZA DEL PROFILO SLATTATO
% Riduzione del coefficiente di portanza a incidenza nulla
% Incremento del massimo coefficiente di portanza

1 of 1

07/07/06 4.05
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

C:\Documents and Settings\dedde\Desktop\MATLAB\7.Progetto ...\TE_flaps.m

%
%
%
%
%
%
%
%
%

EFFETTO DELLA DEFLESSIONE DEGLI IPERSOSTENTATORI DI BORDO D'USCITA SULLA


CURVA DI PORTANZA DEL PROFILO ALARE PULITO
-------------------------------------------------------------------------

%
%
%
%
%
%
%
%
%
%
%
%
%

OUTPUT
-----deltaCl0: incremento del Cl0 del profilo dovuto ai flaps
deltaClmax: incremento del Clmax del profilo dovuto ai flapS
Clalfa: pendenza della curva di portanza del profilo flappato

INPUT
----Cl0: coefficiente di portanza a incidenza nulla del profilo pulito
Clmax: coefficiente di portanza massimo del profilo pulito
Clalfa: pendenza della curva di portanza del profilo pulito

I pedici si riferiscono alla tipologia di ipersostentatori scelti per il


bordo d'uscita:
ssf:
ssff:
dsff_fv:
dsff_vg:

single
single
double
double

slotted
slotted
slotted
slotted

flaps
fowler flaps
fowler flaps with fixed vane
fowler flaps with variable geometry

function [deltaCl0_ssf, deltaClmax_ssf, Clalfa_ssf,...


deltaCl0_ssff, deltaClmax_ssff, Clalfa_ssff,...
deltaCl0_dsff_fv, deltaClmax_dsff_fv, Clalfa_dsff_fv,...
deltaCl0_dsff_vg, deltaClmax_dsff_vg, Clalfa_dsff_vg]...
= TE_flaps(Cl0, Clmax, Clalfa)
% SINGLE SLOTTED FLAPS
% -------------------% SCELTE DI PROGETTO
% c'/c
NB:DEVE ESSERE MINORE DEL FOWLER!
% deflessione del flap [rad]
% PARAMETRI
% fig. G7
% cf/c'

NB:DIPENDE DA deltaf!

% fig. G5
% CURVA DI PORTANZA DEL PROFILO FLAPPATO
% Incremento del coefficiente di portanza a incidenza nulla
% Incremento del massimo coefficiente di portanza
% Pendenza della curva di portanza flappata

% SINGLE SLOTTED FOWLER FLAPS


% --------------------------% SCELTE DI PROGETTO
% c'/c

1 of 3

07/07/06 4.05
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
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116

C:\Documents and Settings\dedde\Desktop\MATLAB\7.Progetto ...\TE_flaps.m

2 of 3

% deflessione del flap [rad]


% PARAMETRI
% fig. G7
% cf/c'

NB:DIPENDE DA deltaf!

% fig. G5
% CURVA DI PORTANZA DEL PROFILO FLAPPATO
% Incremento del coefficiente di portanza a incidenza nulla
% Incremento del massimo coefficiente di portanza
% Pendenza della curva di portanza flappata

% DOUBLE SLOTTED FOWLER FLAPS WITH FIXED VANE


% ------------------------------------------% SCELTE DI PROGETTO
% c'/c
% deflessione del flap [rad]
% PARAMETRI
% fig. G7
% cf/c'

% fig. G6
% CURVA DI PORTANZA DEL PROFILO FLAPPATO
% Incremento del coefficiente di portanza a incidenza nulla
% Incremento del massimo coefficiente di portanza
% Pendenza della curva di portanza flappata

% DOUBLE SLOTTED FOWLER FLAPS WITH VARIABLE GEOMETRY


% -------------------------------------------------% SCELTE DI PROGETTO
% c'/c
NB:DEVE ESSERE MAGGIORE DI QUELLO FISSO!
% deflessione del forward flap [rad]
% deflessione dell'aft section rispetto al forward flap
% PARAMETRI
% Effetto del forward flap
% fig. G7
% cf/c'

% fig. G5
% Effetto dell'aft section
% fig. G7
% cf/c'

[rad]

07/07/06 4.05
117
118
119
120
121
122
123
124
125
126
127
128

C:\Documents and Settings\dedde\Desktop\MATLAB\7.Progetto ...\TE_flaps.m

3 of 3

% fig. G6
% CURVA DI PORTANZA DEL PROFILO FLAPPATO
% Incremento del coefficiente di portanza a incidenza nulla

% Incremento del massimo coefficiente di portanza


deltaClmax_dsff_vg = (Clmax + eta1*alfa1*Clalfa*deltaf1 + eta2*alfa2*Clalfa*deltaf2)*ci_c
% Pendenza della curva di portanza flappata

07/07/06 4.05
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

%
%
%
%
%
%
%
%
%

C:\Documents and Settings\dedde\Desktop\MATLAB\7.Progetto iper...\wing.m

1 of 3

COEFFICIENTE DI PORTANZA MASSIMO DELL'ALA FINITA


================================================
I seguenti pedici si riferiscono alla tipologia di ipersostentatori
scelti per il bordo d'uscita:
ssf:
ssff:
dsff_fv:
dsff_vg:

single
single
double
double

slotted
slotted
slotted
slotted

flaps
fowler flaps
fowler flaps with fixed vane
fowler flaps with variable geometry

% I seguenti pedici si riferiscono alla tipologia di ipersostentatori


% scelti per il bordo d'attacco:
%
% plef: plain leading edge flaps
%
s: slats & Krueger flaps
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%

INPUT
----Clmax:
sweep25:
S:
Swf:
Sws:
deltaClmax_flap:

coefficiente di portanza massimo del profilo alare pulito


freccia alare al 25% della corda [rad]
superficie alare di riferimento [m]
area interessata dai flaps [m]
area interessata dagli slats [m]
incremento del Clmax del profilo dovuto ai flaps
deltaClmax_flap(1) = deltaClmax_ssf
deltaClmax_flap(2) = deltaClmax_ssff
deltaClmax_flap(3) = deltaClmax_dsff_fv
deltaClmax_flap(4) = deltaClmax_dsff_vg
deltaClmax_slat: incremento del Clmax del profilo dovuto agli slats
deltaClmax_slat(1) = deltaClmax_plef
deltaClmax_slat(2) = deltaClmax_s

% OUTPUT
% -----% CLmax_W:
%
%
%
%
%
%
%
%

coefficiente
CLmax_W(1) =
CLmax_W(2) =
CLmax_W(3) =
CLmax_W(4) =
CLmax_W(5) =
CLmax_W(6) =
CLmax_W(7) =
CLmax_W(8) =

di portanza massimo dell'ala ipersostentata


CLmaxW_ssf_plef
CLmaxW_ssf_s
CLmaxW_ssff_plef
CLmaxW_ssff_s
CLmaxW_fv_plef
CLmaxW_fv_s
CLmaxW_vg_plef
CLmaxW_vg_s

function CLmax_W = wing(Clmax, sweep25, S, Swf, Sws, deltaClmax_flap, deltaClmax_slat)


% Incremento del Clmax del profilo dovuto ai
%
%
%
%

flaps
ssf
ssff
dsff_fv
dsff_vg

% Incremento del Clmax del profilo dovuto agli slats


% plef
% s
% COEFFICIENTE DI PORTANZA MASSIMO DELL'ALA PULITA
% ------------------------------------------------

07/07/06 4.05

C:\Documents and Settings\dedde\Desktop\MATLAB\7.Progetto iper...\wing.m

2 of 3

59
60
61 % COEFFICIENTE DI PORTANZA MASSIMO DELL'ALA IPERSOSTENTATA
62 % -------------------------------------------------------63
64 % INCREMENTO DEL CLmax DELL'ALA DOVUTO AI FLAPS
65 % L'incremento dipende dalla tipologia di ipersostentatori scelti per il
66 % bordo d'uscita
67
68 % Single slotted flaps
69
70 % Single slotted fowler flaps
71
72 % Double slotted fowler flaps with fixed vane
73
74 % Double slotted fowler flaps with variable geometry
75
76
77 % INCREMENTO DEL CLmax DELL'ALA DOVUTO AGLI SLATS
78 % L'incremento dipende dalla tipologia di ipersostentatori scelti per il
79 % bordo d'attacco
80
81 % Plain leading edge flaps
82
83 % Slats & Krueger flaps
84
85
86 % EFFETTO COMPLESSIVO DEGLI IPERSOSTENTATORI SUL CLmax DELL'ALA
87 % Si considerano tutte le possibili combinazioni flaps + slats
88
89 % ssf + plef
90
91 % ssf + s
92
93 % ssff + plef
94
95 % ssff + s
96
97 % dsff_fv + plef
98
99 % dsff_fv + s
100
101 % dsff_vg + plef
102
103 % dsff_vg + s
104
105
106 % MEMORIZZAZIONE E PLOTTAGGIO RISULTATI
107 % ------------------------------------108 CLmax_W = [CLmaxW_ssf_plef, CLmaxW_ssf_s, CLmaxW_ssff_plef, CLmaxW_ssff_s,...
109
110
111 formato_fs = '%11.4f %7.4f %11.4f %7.4f %11.4f %7.4f %11.4f %7.4f'
112
113 fprintf('\n')
114 disp('COEFFICIENTE DI PORTANZA MASSIMO DELL''ALA FINITA')
115 disp
('---------------------------------------------------------------------------------------------

07/07/06 4.05

C:\Documents and Settings\dedde\Desktop\MATLAB\7.Progetto iper...\wing.m

3 of 3

----')
116 disp('*) Coefficiente di portanza massima dell''ala pulita')
117 disp(sprintf('
CLmax %6.1f', CLmax))
118 fprintf('\n')
119 disp('*) Coefficiente di portanza massima dell''ala ipersostentata')
120 disp('
ssf
ssff
dsff_fv
dsff_vg')
121 disp('
plef
s
plef
s
plef
s
plef
s')
122 disp(['
CLmax_W ', sprintf(formato_fs,CLmax_W)])
123 disp
('------------------------------------------------------------------------------------------------')
124

C08

Progetto di Costruzioni Aeronautiche

07/07/06 4.06
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

C:\Documents and Settings\dedde\Desktop\MATLAB...\Posizione_baricentro.m

1 of 5

% Calcolo della posizione del baricentro e della sua escursione


% ------------------------------------------------------------clc
clear all

load './config/config.mat'

% provvisorio...poi verr passata direttamente la


% configurazione scelta
load './WTO_pre/scalatura_fusoliera.mat'
iM=3,iAR=3,it_c=3,iKS=8
% ALA
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%

apertura alare [m]


apertura alare al kink [m]
coordinata adimensionale radice [m]
rapporto di rastremazione cT/cRn
corda all'asse fusoliera [m]
corda alla radice [m]
corda al kink [m]
corda all'estemit [m]
spessore percentuale alla radice
spessore percentuale al kink
spessore percentuale all'estremit
freccia al bordo d'attacco [rad]
corda media aerodinamica [m]
posizione x corda media aerodinamica [m]
posizione y corda media aerodinamica [m]

% IMPENNAGGIO ORIZZONTALE
%
%
%
%
%
%
%
%
%

apertura alare [m]


corda alla radice [m]
corda all'estremit [m]
freccia al 25% della corda [rad]
corda media aerodinamica [m]
posizione x corda media aerodinamica [m]
posizione y corda media aerodinamica [m]
lunghezza di fusoliera corretta
posizione della radice [m]

%
%
%
%
%
%
%
%

apertura alare [m]


corda alla radice [m]
corda all'estremit [m]
freccia al 25% della corda [rad]
corda media aerodinamica [m]
posizione x corda media aerodinamica [m]
posizione y corda media aerodinamica [m]
lunghezza di fusoliera corretta

% IMPENNAGGIO VERTICALE

% GONDOLE & Piloni


% lunghezza anteriore della gondola [m]
% lunghezza posteriore
% lunghezza della gondola
% diametro esterno della gondola [m]
% semiapertura motore
% corda motore

07/07/06 4.06
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
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116

C:\Documents and Settings\dedde\Desktop\MATLAB...\Posizione_baricentro.m

% PESI DEI VARI COMPONENTI DEL VELIVOLO


% Pesi componenti
% Nota. I vari pesi di dettaglio relativi alla struttura dell'areo verranno
% magiorati di una tolleranza del 2%.
% Peso massimo al decollo
Wfuel = config(iM,iAR,it_c).weights(iKS,3)
% Peso carburante
% Payload
% Parametri di progetto
%$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
% distanza tra nose e bordo d'attacco dell'ala in
% corrispondenza della corda all'asse fusoliera cCL
%$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
%FUSOLIERA ---------------------------------------------------------------% distanza del baricentro del gruppo fusoliera dal nose
% dell'aereo
% L'escursione varia da 0.42-0.45 *L
% distanza tra nose e posizione del riferimento per il
% calcolo della posizione del baricentro

%-------------------------------------------------------------------------%CODA --------------------------------------------------------------------% peso impennaggio orizzontale


%peso impennaggio verticale
[xCGgt,Wgt] = CG_tail(bHt,cRHt,cTHt,hVt,cRVt,cTVt,mac,LHt,...
%-------------------------------------------------------------------------%GRUPPO ALA (ala + motori + gondole + sistemi)----------------------------[xCGw,Ww] = CG_wing(b, bK, etaR, cR, cK, cT, lambdaN, ymac,...
%-------------------------------------------------------------------------%CARBURANTE ----------------------------------------------------------------% Densit carburante [kg/m] (dalle norme AEA)

[xCGin, Wtank_in, xCGout, Wtank_out, xCGfus, Wtank_fus] = CG_tank(b, bK,...

Wtank = Wtank_in + Wtank_out

%-------------------------------------------------------------------------%PAYLOAD & EQUIPAGGIO-----------------------------------------------------%

2 of 5

07/07/06 4.06

C:\Documents and Settings\dedde\Desktop\MATLAB...\Posizione_baricentro.m

3 of 5

117 [xCGVLP,WVLP,xCGcrew,Wcrew,WcargoF,xCGcargoF,WcargoRT,xCGcargoRT]= CG_payload(Xwg,cR,cCL,


118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173

%-------------------------------------------------------------------------%CARRELLI ----------------------------------------------------------------%Carrello nose


%posizione del carrello anteriore rispetto al nose

% Il carrello anteriore + piccolo dei due


% posteriori. Per questo il suo peso si stima
% come il 30% del totale.
%Carrelli in ala
% Il fattore mopltiplicativo pu variare tra [0.5-0.6]
% 70% del peso complessivo dei carrelli
% Peso e baricentro complessivo del gruppo carrelli

%-------------------------------------------------------------------------%Peso & baricentro Empty Operative ----------------------------------------

%-------------------------------------------------------------------------%Peso & baricentro MTO ---------------------------------------------------%Peso massimo al decollo. Se si aumenta il payload


%si deve diminuire il carburante

% Nota. Anche non limitandosi alla situazione di design analizzata sopra si


% trovano variazioni minime rispetto ad i casi analzzati
%Massimo carico

%xCGMTOc =(Weo*xCGeo + WVLP*xCGVLP + Wfuelc*xCGtank)/(WTO*mac)


%Massimo carburante

%xCGMTOf =(Weo*xCGeo + Wpayf*xCGVLP + Wtank*xCGtank)/(WTO*mac)


%-------------------------------------------------------------------------%Peso & baricentro Max fuel -----------------------------------------------

%--------------------------------------------------------------------------

07/07/06 4.06
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231

C:\Documents and Settings\dedde\Desktop\MATLAB...\Posizione_baricentro.m

4 of 5

%Peso & baricentro Max cargo ----------------------------------------------

% Escursione Baricentro --------------------------------------------------plot(xCGeo_mac,Weo,'o','MarkerFaceColor','b','MarkerEdgeColor','k','MarkerSize',10)


hold on
plot(xCGMTO_mac,WTO,'o','MarkerFaceColor','r','MarkerEdgeColor','k','MarkerSize',10)
plot(xCGmaxF_mac,WmaxF,'o','MarkerFaceColor','g','MarkerEdgeColor','k','MarkerSize',10)
plot(xCGmaxC_mac,WmaxC,'o','MarkerFaceColor','y','MarkerEdgeColor','k','MarkerSize',10)
hleg = legend('EO','PAY+FUEL','FUEL','PAY'
set(hleg,'FontSize',12,'FontWeight','b')
xlabel('Posizione del baricentro [% mac]','FontSize',12,'FontWeight','b')
ylabel('Peso [kg]','FontSize',12,'FontWeight','b')
title('Escursione del baricentro','FontSize',14,'FontWeight','b')
grid
box on
set(gca,'XLim',[0.1 0.32],'LineWidth',1.5,'XTick',[0.1 0.15 0.2 0.25 0.3 0.32],...
'XTickLabel',[10 15 20 25 30 32])
set(gca,'YLim',[2.5e4 5.5e4],'LineWidth',1.5)
text(0.11,2.95e4,'W_E_O','Color','b','FontSize',15,'FontWeight','b')
text(0.11,5.1e4,'W_T_O','Color','r','FontSize',15,'FontWeight','b')
plot([0.1 0.32],[Weo Weo],'b-.','Linewidth',2)
plot([0.1 0.32],[WTO WTO],'r-.','Linewidth',2)
%=========================================================================%
%-------------------------------------------------------------------------%
%:::::::: V E R I F I C H E
C A R R E L L I ::::::::::%
%-------------------------------------------------------------------------%
%=========================================================================%
% 1) Clearence motori .....................................................
% altezza carrello posteriore [m] (carrello scarico)
% b_eng per definizione una semiapertura

%angolo di diedro [rad]


% Clearence a carrello scarico

% Hlg - Ylg*tan(gamma) % altezza carrello anteriore (carrello scarico)


% vedere sezione fusoliera in scalatura fusoliera
% Clearence a carrello carico

% 2) Angolo di seduta ---> beta > theta ...................................


% La posizione verticale del baricentro coincide con il pavimento
%Escursione max del CG

07/07/06 4.06

C:\Documents and Settings\dedde\Desktop\MATLAB...\Posizione_baricentro.m

5 of 5

232
233
234 % 3) Angolo di turn over ..................................................
235
236
237
238
239
240
241
242 % 4) Carico sul carrello anteriore ........................................
243
244
245
246 % Nota. Si dovrebbe considerare anche l'ipotesi di baricentro avanzato per
247 % questa verifica. Dato che la posizione avanzata di baricentro si verifica
248 % al Weo non ci sono problemi di sovraccarico del carrello anche se si
249 % superano i limiti di tolleranza del rapporto Fn/W...
250 %
251
252 %
253
254
255 %Fn_Wmin= 1/(1 + bnm/bmm)
256 %
257 % Si ottiene un rapporto leggermente superiore di 0.15. Se per andiamo a
258 % guardare la forza che agisce sul carrello
259 %
260 %Fn1 = Fn_Wmin*Weo % = 4242 N
261 %Fn0 = Fn_W*WTO
% = 6177 N
262
263 disp('VERIFICA CARRELLI')
264 disp(['Angolo diedro dell''ala: ' num2str(gammadeg) '' ' [3 7]'])
265 disp(['Altezza del carrello main: ' num2str(Hlg) ' m'])
266 disp(['Angolo di seduta beta: ' num2str(beta) '' ' [beta > 15]'])
267 disp(['Angolo phi1: ' num2str(phi1) ''])
268 disp(['Angolo di stabilit psi: ' num2str(psi) '' ' [psi < 55]'])
269 disp(['Rapporto tra la reazione vincolare sul carrello nose e il peso: ' num2str(Fn_W) '
[0.08 < Fn/W < 0.15]'])
270 fprintf('\n')
271 disp(['Distanza ventre fusoliera - suolo : ' num2str(Ha) ' m'])
272 disp(['Distanza baricentro - suolo: ' num2str(zCG) ' m'])
273 disp(['Distanza gondole - suolo (carrello scarico): ' num2str(He) ' m'])
274 disp(['Distanza gondole - suolo (carrello carico): ' num2str(Hec) ' m'])
275 disp(['Distanza tra i carrelli lungo la centerline: ' num2str(d) ' m'])
276 disp(['Distanza tra carrello nose e posizione pi arretrata baricentro: ' num2str(bn) '
m'])
277 disp(['Distanza tra carrello main e posizione pi arretrata baricentro: ' num2str(bm) '
m'])
278
279 figure(2)
280 diag_pass = diag_pass(xCGeo,Weo,WTO,Xrif,mac,WcargoF,xCGcargoF,WcargoRT,xCGcargoRT,xCGin,

07/07/06 4.06

C:\Documents and Settings\dedde\Desktop\MATLAB\8.Centraggio\area_CG.m

1 of 2

1 % Calcolo di superficie e baricentro delle varie sezioni di serbatoio


2 % ------------------------------------------------------------------3 %
4 % [area,x] = area_CG(in,xLE,xTE)
5 %
6 % Input
7 % ----8 % in: vettore di 3 elementi contenente le propriet del profilo alare da analizzare. La
prima colonna
9 %
contiene la spaziatura dei punti in cui viene suddivisa la corda del profilo,
adimensionalizzata
10 %
(corda=1). Il primo elemento il TE (trailing edge x=1) e l'ultimo il LE (leading
edge x=0).
11 %
La seconda e la terza colonna contengono rispettivamente le coordinate del dorso e
del ventre dei
12 %
profili in corrispondenza dei punti selezionati.
13 % xLE: posizione del punto iniziale del profilo a partire dal quale si vuole calcolare
l'area sottesa dal
14 %
profilo
15 % xTE: posizione del punto finale del profilo a partire dal quale si vuole calcolare l'area
sottesa dal
16 %
profilo
17 %
18 % Output
19 % -----20 % area: area della sezione del profilo
21 %
x: posizione del baricentro della sezione del serbatoio rispetto al LE
22
23
24 function [area,x] = area_CG(in,xLE,xTE)
25
26 % Ascisse dei punti in cui suddiviso il profilo: da 1 a 0
27
28 % Coordinata dei punti del dorso del profilo
29
30 % Coordinata dei punti del ventre del profilo
31
32
33 % NOTA. [end:-1:1] inverte l'ordine dei dati...tale operazione serve solo a
34 % rendere pi intuitivi gli integrali seguenti. Anche non invetendo i dati
35 % infatti l'integale non cambia visto che anche se gli estremi di
36 % integrazione lo renderebbero negativo anche il dy di integrazione
37 % negativo = si ottiene il solito risultato
38
39 % Calcolo dello spessore del profilo lungo la corda (t/c)
40
41
42 % Calcolo della corda
43
44
45 % Calcolo dell'area della sezione
46
47
48 % Calcolo dell'integrale h*x (sorta di momento statico)
49
50
51
%distanza LE cassone - CG
52

07/07/06 4.06

C:\Documents and Settings\dedde\Desktop\MATLAB\8.Centraggio\area_CG.m

2 of 2

53 %
-----------------------------------------------------------------------------------------------------54 % Funzione integranda per il calcolo dell'area del profilo tra LE e TE
55
56 function Fnum = integrando_mstat(x1,xdata,h_airfoil)
57
58
% Interpolo i dati ottenuti dalla function airfoil e calcolo lo spessore del
profilo tra LE e TE
59
Fnum = interp1(xdata,h_airfoil.*xdata,x1,'spline'
60
61 % Funzione integranda per il calcolo di h*x del profilo tra LE e TE
62 function Fden = integrando_area(x2,xdata,h_airfoil)
63
64
% Interpolo i dati ottenuti dalla function airfoil e calcolo lo spessore del
profilo tra LE e TE
65
Fden = interp1(xdata,h_airfoil,x2,'spline'

07/07/06 4.06
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

%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%

C:\Documents and Settings\dedde\Desktop\MATLAB\8.Centra...\CG_fusolage.m

Baricentro gruppo fusoliera


--------------------------[xCGgf,Wgf] = CG_fusolage(xCGgf_nose,Wdetail,Xwg,xmac)
Input
----xCGgf_nose: distanza del baricentro del gruppo fusoliera dal nose
Wdetail: peso dei componenti dell'aereo
Xwg: distanza tra nose e bordo d'attacco dell'ala in
corrispondenza della corda all'asse fusoliera cCL
Output
-----xCGgf: posizione del baricentro del gruppo fusoliera rispetto
al LE della mac
Wgf: peso del gruppo fusoliera

function [xCGgf,Wgf] = CG_fusolage(xCGgf_nose,Wdetail,Xrif)


% peso dei vari componenti che formano il gruppo fusoliera
% fusoliera + 350 kg a disp. dell'utente
% APU (in coda all'aereo)
% impianto idraulico
% impianto di condizionamento
% impianto pneumatico (per semplicit in fus)
% impianto antighiaccio (per semplicit in fus)
% avionica
% strumentazione
% impianto elettrico
% sistemi di carico e movimentazione di questo
% allestimenti fissi
% olio
% sedili equipaggio
% documentazione velivolo
% sedili passeggeri
% servizi per catering
% serizi di emergenza
% fluidi pe bagni e cambuse
% container
% Nota. L'aumento del 2% rappresena la tolleranza strutturale utilizzata
% anche in NASAweight nella parte di alta velocit.
Wgf = Wfus+Wapu+Whyd+Wair+Wpne+Wice+Wavi+Wstr+Wele+Wcar+Wfix+Woil+Ws_c+...
% peso complessivo del gruppo fusoliera
%posizione del baricentro a partire dal LE della mac

1 of 1

07/07/06 4.06

C:\Documents and Settings\dedde\Desktop\MATLAB\8.Centraggio\CG_payload.m

1 of 2

1 function [xCGVLP,WVLP,xCGcrew,Wcrew,WcargoF,xCGcargoF,WcargoRT,xCGcargoRT]= CG_payload(Xwg,


cR,cCL,Xrif)
2
3
% 1 in = 0,0254 m
4
5
% lunghezza cockpit
% lunghezza parte centrale fusoliera (a sezione costante)
6
% Area sezione stiva
7
8
% Volume cargo totale
% Volume cargo coda
9
% lunghezza stiva di coda
10
11
12 % Allestimento cabina
13
% numero passeggeri in classe unica
% passo tra le file
14
% numero sedili per fila
15
16
% numero file sedili
% lunghezza relativa alle file di sedili
17
% peso singolo passeggero
18
19
20 %Equipaggio
21
% Peso componente equipaggio
22
23 % Si correggono le dimensioni delle stive per essere compatibili con la
24 % posizione dell'ala derivante dal centraggio
25
26 LcargoR = Lcok + Lcen - (Xwg + cCL) % Lunghezza stiva posteriore
27
% Volume stiva posteriore
28
% Volume stiva anteriore
29 LcargoF = (VcargoTOT - VcargoT - VcargoR)/Ac% Lunghezza stiva anteriore
30
31
32
% deve essere > 0
33
34 % si considera che le varie stive siano occupate con una densit pari
35 % a 160 [kg/m] in modo omogeneo.
36 % 160 infatti pari alla densit dei bagagli (20/0.125) e alla densit
37 % delle merci fuori dai container come previsto dalle norme AEA.
38 % L'unica approssimazione di questo metodo quindi il non considerare la
39 % non divisibilit del bagaglio.
40
41
42
43 % Calcolo del baricentro dei bagagli rispetto al nose
44
45
% Stiva anteriore
% Stiva posteriore
46
% Stiva coda --> 0.3 e non 0.5 visto
47
48
% che la sezione non costante
49 WcargoF = VcargoF*ro_bulk
50 WcargoR = VcargoR*ro_bulk
51 WcargoT = VcargoT*ro_bulk
52
53
% Peso max cargo imbarcabile
54
55
56
57

07/07/06 4.06
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
85
86
87
88
89
90

C:\Documents and Settings\dedde\Desktop\MATLAB\8.Centraggio\CG_payload.m

%Passeggeri

%Piloti
% 2 piloti
% I piloti si trovano all'incirca a met del cockpit

%Assistenti di volo

% Il baricentro coincide con quello dei passggeri


% Peso e baricentro equipaggio

% Peso e baricentro payload

2 of 2

07/07/06 4.06
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

%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%

C:\Documents and Settings\dedde\Desktop\MATLAB\8.Centraggio\CG_tail.m

1 of 1

Baricentro coda
--------------[xCGgt,Wgt] = CG_tail(bHt,cRHt,cTHt,hVt,cRVt,cTVt,mac,LHt,...
ymacHt,sweepHt,LVt,ymacVt,sweepVt,WHt,WVt)
Input
----bHt: apertura coda orizzontale
cRHt: corda sull'asse di fusoliera coda orizzontale
cTHt: corda al tip coda orizzonale
hVt: semiapertura coda verticale
cRVt: corda alla radice coda verticale
cTVt: corda al tip coda verticale
mac: corda media aerodinamica
LHt: distanza 25%mac - 25%macHt
ymacHt: posizione trasversale macHt
sweepHt: angolo di freccia coda orizzontale
LVt: distanza 25%mac - 25%macVt
ymacVt: posizione verticale macVt
sweepVt: angolo di freccia coda verticale
WHt: peso coda orizzontale
WVt: peso coda veticale
Output
-----xCGgt: posizione del baricentro della coda rispetto al LE della mac
Wgt: peso della coda

function [xCGgt,Wgt] = CG_tail(bHt,cRHt,cTHt,hVt,cRVt,cTVt,mac,LHt,...


ymacHt,sweepHt,LVt,ymacVt,sweepVt,WHt,WVt)
%Coda orizzontale
% distanza dall'asse fusoliera dell'estremit dell'impennaggio orizzontale
% posizione trasversale baricentro dall'asse fusoliera (radice impennaggio orizzontale)
% corda in corrispondenza del baricentro dell'impennaggio

% posizione del baricentro rispetto al LE della mac

%Coda verticale
% posizione veticale baricentro dalla sezione di radice
% corda in corrispondenza del baricentro dell'impennaggio

% posizione del baricentro rispetto al LE della mac

% Peso e posizione del baricentro gruppo coda

07/07/06 4.06
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

%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%

C:\Documents and Settings\dedde\Desktop\MATLAB\8.Centraggio\CG_tank.m

Volume dei serbatoi e posizione CG


---------------------------------[xCGin, Wtank_in, xCGout, Wtank_out, xCGfus, Wtank_fus] = CG_tank...
(b, bK, etaR, t_cR, t_cK, t_cT,cR,cK,cT,lambdaN, sweepLE, ro_fuel, ymac)
Input
----b: apertura alare [m]
bK: apertura alare al kink [m]
etaR: coordinata adimensionalizzata del root rispetto all'asse della
fusoliera
t_cR: spessore percentuale del profilo alare al root
t_cK: spessore percentuale del profilo alare al kink
t_cT: spessore percentuale del profilo alare al tip
cR: corda al root [m]
cK: corda al kink [m]
cT: corda al tip [m]
lambdaN: rapporto di rastremazione cT/cRn
sweepLE: angolo di freccia al LE dell'ala [rad]
ro_fuel: densit carburante [kg/m]
ymac: posizione della mac rispetto all'asse difusoliera [m]
Output
-----xCGin, Wtank_in, xCGout, Wtank_out, xCGfus, Wtank_fus
Pesi e posizioni dei baricentri dei vari serbatoi considerati pieni di
carburante

function [xCGin, Wtank_in, xCGout, Wtank_out, xCGfus, Wtank_fus]...


= CG_tank(b, bK, etaR, t_cR, t_cK, t_cT, cR, cK, cT,...
lambdaN, sweepLE, ro_fuel, ymac)

%PARAMETRI DIMENSIONALI PER I SERBATOI xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx%


%Rapporto tra corda-serbatoio al K e corda al K [0.47,0.5] %
%Rapporto tra corda-serbatoio al R e corda cRn [0.47,0.5] %
%Rapporto tra ordinata TipTank e ordinata Tip [0.76,0.82] %
%xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx%
% Posizioni delle varie sezioni
% 2 x distanza
% 2 x distanza
% 2 x distanza
% 2 x distanza

dell'ala rispetto all'asse della fusoliera%


CL-T [m]
%
CL-K [m]
%
CL-R [m]
%
CL-TT [m]
%
%
% Posizione relative tra le varie sezioni dell'ala
%
% distanza R-K [m]
%
% distanza R-T [m]
%
% distanza TT-R [m]
%
% distanza T-K [m]
%
% distanza TT-K [m]
%
%-------------------------------------------------------------------------%
% Corde e bordi del cassone alare ----------------------------------%
% Corda al tip tank
%
%

1 of 3

07/07/06 4.06
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
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116

C:\Documents and Settings\dedde\Desktop\MATLAB\8.Centraggio\CG_tank.m

% Corda al root per l'ala trapezia

%
%
%
% Corde del cassone alare
%
% root
%
% kink
%
% tip
%
% tip tank
%
%
% Bordi di attacco e di uscita delle varie sezioni del cassone
%
% Kink
%
%
%
% Tip
%
%
%
% Root
%
%
%
% Tip tank
%
%
%
%-------------------------------------------------------------------%
% Propriet dei profili alari --------------------------------------------%
%
% Profilo al root
%
%
root_sect_id = './airfoil_data/sc_root.dat'
%
% Profilo al kink
%
%
kink_sect_id = './airfoil_data/sc_kink.dat'
%
% Profilo al tip
%
tip_sect_id = './airfoil_data/sc_tip.dat'
%
%
%
%
% distanza percentuale del Tip Tank
%
%
for i=1:m
%
% Calcolo della geometria del profilo al TT
%
%
%
%
% Profilo alla radice dimensionato (c = cR)
%
%
%
%
% Profilo al kink
dimensionato (c = cK)
%
%
%
%
end
%
%-------------------------------------------------------------------------%
% Serbatoi alari ---------------------------------------------------------% Volume e CG serbatoio relativo alla parte interna al kink [m]
[xCGinLE,yCGinR,Vtank_in] = volume_CG(dRK, cR, cK, root_sect, kink_sect,...

2 of 3

07/07/06 4.06
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
%
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161

C:\Documents and Settings\dedde\Desktop\MATLAB\8.Centraggio\CG_tank.m

%posizione trasversale CG rispetto all'asse di fus


% Ascissa del CG del carburante contenuto nel serbatoio interno al kink
% rispetto al LE della mac nell'ipotesi di serbatoio pieno
% Peso combustibile in tank-in
% Volume e CG serbatoio relativo alla parte esterna al kink [m]
[xCGoutLE,yCGoutK, Vtank_out] = volume_CG(dKTT, cK, cTT, kink_sect,...

%posizione trasversale CG rispetto all'asse di fus


% Ascissa del CG del carburante contenuto nel serbatoio interno al kink
% rispetto al LE della mac nell'ipotesi di serbatoio pieno
% Peso combustibile in tank-out
%-------------------------------------------------------------------------% Serbatoio di fusoliera -------------------------------------------------%
% Nell'ipotesi di prolungare il profilo alla radice nel cassone alare
%

% Area della sezione al root e posizione del CG rispetto al LE della corda


% al root

% Ascissa del CG del carburante contenuto in fusoliera rispetto al LE della


% mac nell'ipotesi di serbatoio pieno

% Volume serbatoio [m]


% Peso combustibile in fusoliera
%
%
%
%
%

Nota. :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
Metodo semplificato per il calcolo dell'ordinata del baricentro (Fanteria)
[areaK,xCGKLE] = xCGsez_rel(Ksect,xtLE_K,xtTE_K)
yy=dRK*(areaR + 3*areaK + 2*sqrt(areaR*areaK))/...

%
% La formula stima molto bene l'ordinata del baricentro come si pu vedere
% sbloccando e comparando yy con yCGinR. L'unico problema e che il semplice
% utilizzo di questa formula non basta visto che non fornisce la x del CG

3 of 3

07/07/06 4.06
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

%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%

C:\Documents and Settings\dedde\Desktop\MATLAB\8.Centraggio\CG_wing.m

Baricenro della struttura alare


------------------------------[xCGw,Ww] = CG_wing(b, bK, etaR, cR, cK, cT, lambdaN, ymac,...
sweepLE, Wdetail, b_eng, c_eng, Lnac)
Input
----b: apertura alare [m]
bK: apertura alare al kink [m]
etaR: coordinata adimensionalizzata del root rispetto all'asse della
fusoliera
cR: corda al root [m]
cK: corda al kink [m]
cT: corda al tip [m]
lambdaN: rapporto di rastremazione cT/cRn
sweepLE: angolo di freccia bordo di atacco
Wdetail: Pesi componenti
b_eng: semiapertura motori
c_eng: corda motori
Lnac: lunghezza gondola
Output
-----xCGw: x baricentro ala + motore
Ww: peso ala + motore

function [xCGw,Ww] = CG_wing(b, bK, etaR, cR, cK, cT, lambdaN, ymac,...
sweepLE, Wdetail, b_eng, c_eng, Lnac)

%PARAMETRI DIMENSIONALI PER I SERBATOI xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx%


%Rapporto tra corda-serbatoio al K e corda al K [0.47,0.5] %
%Rapporto tra corda-serbatoio al R e corda cRn [0.47,0.5] %
%Rapporto tra ordinata TipTank e ordinata Tip [0.76,0.82] %
%xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx%
% Posizioni delle varie sezioni
% 2 x distanza
% 2 x distanza
% 2 x distanza
% 2 x distanza

dell'ala rispetto all'asse della fusoliera%


CL-T [m]
%
CL-K [m]
%
CL-R [m]
%
CL-TT [m]
%
%
% Posizione relative tra le varie sezioni dell'ala
%
% distanza R-K [m]
%
% distanza R-T [m]
%
% distanza TT-R [m]
%
% distanza T-K [m]
%
% distanza TT-K [m]
%
%-------------------------------------------------------------------------%
% Corde e bordi del cassone alare ----------------------------------%
% Corda al tip tank
%
%
% Corda al root per l'ala trapezia
%
%
%
% Corde del cassone alare
%

1 of 3

07/07/06 4.06
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
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116

C:\Documents and Settings\dedde\Desktop\MATLAB\8.Centraggio\CG_wing.m


% root
% kink
% tip

%
%
%
% tip tank
%
%
% Bordi di attacco e di uscita delle varie sezioni del cassone
%
% Kink
%
%
%
% Tip
%
%
%
% Root
%
%
%
% Tip tank
%
%
%
%-------------------------------------------------------------------%
% Calcolo del baricentro della struttura alare

% Posizionamento corda del baricentro rispetto al kink


if dCGgw < dRK

else

end
% Posizione del baricentro ala rispetto al LE della mac
% Posizione del baricentro motore rispetto al LE della mac

% Pesi dei componenti ala & motore

%
%

% ala
| Rivedere la attribuzione
% sistemi carburante
| dei pesi ad ala o motore
% superfici di controllo|
|
? ?
%
|
?
?
|
?
% piloni
|
?
% motori e nacelles
|
?
% sistemi ausiliari motori|
?
|
?
%
|
o

%NOTA. Si sceglie di considerare i pesi completi e non le met nonostante


%
nella prima parte si sia trattato una semiala
% Peso e baricentro complessivo

2 of 3

07/07/06 4.06
117

C:\Documents and Settings\dedde\Desktop\MATLAB\8.Centraggio\CG_wing.m

3 of 3

07/07/06 4.07

C:\Documents and Settings\dedde\Desktop\MATLAB\8.Centraggio\diag_pass.m

1 % Diagramma di carico dei passeggeri


2
3 function diag_pass = diag_pass(xCGeo,Weo,WTO,Xrif,mac,WcargoF,xCGcargoF,WcargoRT,
xCGcargoRT,xCGin,Wtank_in,xCGout,Wtank_out,xCGVLP,Wpay)
4
5
% 1 in = 0,0254 m
6
% lunghezza cockpit
7
8
9 % Allestimento cabina
10
% numero passeggeri in classe unica
11
% passo tra le file
% numero sedili per fila
12
13
% numero file sedili
% lunghezza relativa alle file di sedili
14
% peso singolo passeggero
15
16
17 %Passeggeri
18
% posizione ultima fila
19
%posizione prima fila
20
21 %Sedili finestrino da tail a nose (1TN)
22
23
24
25
26
27
28
29
30
31
32
33 for i = 1:1:Nf
34
35
36
37
38
39
40
41
42
43
44
45
46
47 end
48
49
50
51
52
53
54
55
56
57

1 of 5

07/07/06 4.07
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
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115

C:\Documents and Settings\dedde\Desktop\MATLAB\8.Centraggio\diag_pass.m

for i= 1:1:Nf

end

for i= 1:1:Nf
if i == Nf
else
end

if i == 1
else
end

end

2 of 5

07/07/06 4.07

C:\Documents and Settings\dedde\Desktop\MATLAB\8.Centraggio\diag_pass.m

3 of 5

116 hold on
117 diag_pass = plot(xCG1TN./mac,W1TN,xCG1NT./mac,W1NT,xCG2TN./mac,W2TN,xCG2NT./mac,W2NT,
xCG3TN./mac,W3TN,xCG3NT./mac,W3NT,'linewidth',2)
118
119 %CARGO - Nell'ipotesi che il velivolo venga caricato con il baricentro dei
120 %passeggeri nella posizione pi avanzata
121
122
123
124
125
126
127
128
129
130 plot([xCGpmin/mac xCGpcFmin/mac],[Wpmin,WpcFmin],'k:',[xCGpcFmin/mac xCGpcmin/mac],[WpcFmin
Wpcmin],'k:')
131
132 %CARGO - Nell'ipotesi che il velivolo venga caricato con il baricentro dei
133 %passeggeri nella posizione pi arretrata
134
135
136
137
138
139
140
141 plot([xCGpmax/mac xCGpcRTmax/mac],[Wpmax,WpcRTmax],'k:',[xCGpcRTmax/mac xCGpcmax/mac],
[WpcRTmax Wpcmax],'k:')
142
143
144
145
146
147
148
149
150 %plot([xCG3TN(end)/mac xCGpcRTdes/mac],[W3TN(end),WpcRTdes],'k:',[xCGpcRTdes/mac
xCGpcdes/mac],[WpcRTdes Wpcdes],'k:')
151
152
153
154
155
156
157
158 %plot([xCGpcmin/mac xCGpcfoutmin/mac],[Wpcmin Wpcfoutmin],'r',[xCGpcfoutmin/mac
xCGpcfmin/mac],[Wpcfoutmin Wpcfmin],'r')
159
160
161
162
163
164
165
166 plot([xCGpmax/mac xCGpfoutmax/mac],[Wpmax Wpfoutmax],'g',[xCGpfoutmax/mac xCGfmax/mac],
[Wpfoutmax Wpfmax],'g')
167

07/07/06 4.07

C:\Documents and Settings\dedde\Desktop\MATLAB\8.Centraggio\diag_pass.m

4 of 5

168
169
170
171
172
173
174 plot([xCGpmin/mac xCGpfinmin/mac],[Wpmin Wpfinmin],'g',[xCGpfinmin/mac xCGfmin/mac],
[Wpfinmin Wpfmin],'g')
175
176
177 %Wpfout = Wpay + Wtank_out + Weo
178 %xCGpfout = (Wpay*xCGpay + Wtank_out*xCGout + Weo*xCGeo)/Wpfout
179
180 %Wpf = Wpfout + Wtank_in
181 %xCGf = (Wpfout*xCGpfout+ Wtank_in*xCGin)/Wpf
182
183
184
185 %plot([xCG/mac xCGpfout/mac],[Wpay+Weo Wpfout],'g',[xCGpfout/mac xCGf/mac],[Wpfout
Wpf],'g')
186
187
188
189
190
191
192
193 %plot([xCGpcFmin/mac xCGpcFfoutmin/mac],[WpcFmin WpcFfoutmin],'m',[xCGpcFfoutmin/mac
xCGpcFfmin/mac],[WpcFfoutmin WpcFfmin],'m')
194
195
196
197
198
199
200
201
202
203
204 %plot([xCGmaxC/mac xCGpfoutdes/mac],[WmaxC Wpfoutdes],'r',[xCGpfoutdes/mac xCGfdes/mac],
[Wpfoutdes Wpfdes],'r')
205
206
207 % Escursione Baricentro --------------------------------------------------208 %plot(xCGeo_mac,Weo,'o','MarkerFaceColor','b','MarkerEdgeColor','k','MarkerSize',10)
209 %hold on
210 %plot(xCGpmax/mac,Wpmax,'o','MarkerFaceColor','r','MarkerEdgeColor','k','MarkerSize',10)
211 %plot(xCGpmin/mac,Wpmin,'o','MarkerFaceColor','g','MarkerEdgeColor','k','MarkerSize',10)
212 %plot(xCGmaxC_mac,WmaxC,'o','MarkerFaceColor','y','MarkerEdgeColor','k','MarkerSize',10)
213 %plot(xCGpcFmin/mac,WpcFmin,'o','MarkerFaceColor','y','MarkerEdgeColor','k','MarkerSize',
10)
214 %plot(xCGpcRTmin/mac,WpcRTmin,'o','MarkerFaceColor','y','MarkerEdgeColor','k','MarkerSize',
10)
215
216 %set(hleg,'FontSize',12,'FontWeight','b')
217 xlabel('Posizione del baricentro [% mac]','FontSize',12,'FontWeight','b')
218 ylabel('Peso [kg]','FontSize',12,'FontWeight','b')
219 title('Diagramma di carico dei passeggeri','FontSize',14,'FontWeight','b')

07/07/06 4.07
220
221
222
223
224
225
226
227
228
229
230
231
232

C:\Documents and Settings\dedde\Desktop\MATLAB\8.Centraggio\diag_pass.m

grid
box on
set(gca,'XLim',[0.1 0.32],'LineWidth',1.5,'XTick',[0.1 0.15 0.2 0.25 0.3 0.32],...
'XTickLabel',[10 15 20 25 30 32])
set(gca,'YLim',[2.5e4 5.5e4],'LineWidth',1.5)
text(0.11,2.95e4,'W_E_O','Color','b','FontSize',15,'FontWeight','b')
text(0.11,5.1e4,'W_T_O','Color','r','FontSize',15,'FontWeight','b')
plot([0.1 0.32],[Weo Weo],'b-.','Linewidth',2)
plot([0.1 0.32],[WTO WTO],'r-.','Linewidth',2)

5 of 5

07/07/06 4.07
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

C:\Documents and Settings\dedde\Desktop\MATLAB\8.Centraggio\volume_CG.m

% Volume & baricentro di un'ala trapezia


% -------------------------------------%
% La funzione calcola il volume dei serbatoi all'interno di un ala trapezia
% integrando l'area di ogni singola sezione nell'apertura
%
% Per quanto riguarda il baricentro si ottiene una precisione dell'ordine
% dei 10 cm con n=100
%
% [xCGLE,yCG,Vtank] = volume_CG(L, c1, c2, sect1, sect2, xLE1, xLE2,...
%
xTE1, xTE2, m)
% Input
% ----%
L: lunghezza della parte di ala considerata [m]
%
c1: corda all'estremit iniziale [m]
%
c2: corda all'estremit finale [m]
% sect1: propriet del profilo alare che si trova all'estremit iniziale
% sect2: propriet del profilo alare che si trova all'estremit finale
% xLE1: posizione del bordo di attacco del cassone nel profilo maggiore
% xLE2: posizione del bordo di attacco del cassone nel profilo minore
% xTE1: posizione del bordo di uscita del cassone nel profilo maggiore
% xTE2: posizione del bordo di uscita del cassone nel profilo minore
%
m: numero dei punti in cui si valuta il contorno del profilo
%
% Output
% -----%
xCG: ascissa del baricentro relativa al LE del profilo in cui cade CG
%
yCG: ordinata del baricentro relativa al profilo 1
% Vtank: superficie bagnata della superficie alare considerata
%
function [xCGLE,yCG,Vtank] = volume_CG(L, c1, c2, sect1, sect2, xLE1,...
xLE2, xTE1, xTE2, m)
%xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx%
%TESTER
%

%xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx%
% Discretizzazione ala
% numero di tratti in cui viene suddivisa l'ala
% coordinata adimensionale del profilo lungo l'apertura dell'ala

% Andamento delle corde dei profili intermedi

%
% Inizializzazione
%

1 of 2

07/07/06 4.07
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
85
86
87
88
89
90
91
92

C:\Documents and Settings\dedde\Desktop\MATLAB\8.Centraggio\volume_CG.m

% Calcolo dell'area e della posizione del baricentro


for j=1:n
for i=1:m

end

% vettore delle aree


% somma delle aree

% Nota. La formula sovrastante calcola la xCG rispetto al LE del


% profilo 1. Si preferisce utilzzare quella sotto che da la xCG
% rispetto al LE del profilo in cui cade il baricentro

end
%Volume del serbatoio alare (ALA COMPLETA)===%
%
%============================================%

2 of 2

C09

Progetto di Costruzioni Aeronautiche

07/07/06 4.08
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

C:\Documents and Settings\dedde\Desktop\MATLAB\9.Fless...\flessibilita.m

% Flessibilit
%
% Il pogramma seguente traccia il diagramma di flessibilit della
% configurazione scelta
clc
clear all
global ft2m nm2m lb2kg g d2r r2d in2m
% Costanti & fattori di conversione
%..........................................................................
% 1 ft = 0.3048 m
% 1 n.m. = 1852 m
% 1 lb = 0.45359237 kg
% accelerazione gravitazionale [m/s2]
% fattore di conversione deg --> rad
% fattore di conversione rad --> deg
% 1 in = 0.0254 m
%..........................................................................
%
% Payload

----------- D

I -----------

% numero passeggeri in classe unica


% Missione
% 1. Missione ordinaria
%
%
%
%

tratta di progetto [m]


quota di crociera [m]
durata attesa di missione [s]
quota attesa missione [m]

%
%
%
%
%

numero di mach
tratta di diversione [m]
quota crociera di diversione [m]
durata attesa di diversione [s]
quota attesa diversione [m]

% 2. Diversione

load './config/config.mat'

iM=3,iAR=3,it_c=3,iKS=8

1 of 4

07/07/06 4.08

C:\Documents and Settings\dedde\Desktop\MATLAB\9.Fless...\flessibilita.m

2 of 4

59
60
61
62
63
64
65
66
67
68
69
70
71 Wtank =config(iM,iAR,it_c).wing(iKS,27)*ro_fuel%-0.5*config(iM,iAR,it_c).wing(iKS,28))
*ro_fuel
72
73 % Nota. Nel resto del programma con Wfin si indica lo "zero fuel weight"
74
75
76 %- A 77
78 [WinA,WrisA] = Win_flex(Hdiv, Xdiv, tloi_mis, Hloi_mis, Mdiv, tloi_div,...
79
80
81 [XA,WrisA] = X_flex(M, Hcr, Hdiv, Xdiv, tloi_mis, Hloi_mis, Mdiv, ...
82
83 %- B 84
85
86 [XB,WrisB] = X_flex(M, Hcr, Hdiv, Xdiv, tloi_mis, Hloi_mis, Mdiv,...
87
88
89 %- C 90
91 WfinC = Wto - Wtank
92 [XC,WrisC] = X_flex(M, Hcr, Hdiv, Xdiv, tloi_mis, Hloi_mis, Mdiv,...
93
94
95 %- D 96 WinD = Weo + Wtank
97 WfinD = Weo
98 [XD,WrisD] = X_flex(M, Hcr, Hdiv, Xdiv, tloi_mis, Hloi_mis, Mdiv,...
99
100
101 % GRAFICO DEI RISULTATI
102 hold on
103
104 % Zero fuel Weight
105 plot([0 XB],[WfinA WfinB],'b',[XB XC],[WfinB WfinC],'b',[XC XD],...
106
[WfinC WfinD],'b','Linewidth',2)
107 % Take-off Weight
108 plot([0 XB],[WinA WinB],'r',[XB XC],[WinB WinC],'r',[XC XD],[WinC WinD],...
109
'r','Linewidth'
110 % Landing Weight
111 plot([0 XB],[WfinA+WrisA WfinB+WrisB],':b',[XB XC],[WfinB+WrisB ...
112
WfinC+WrisC],':b',[XC XD],[WfinC+WrisC WfinD+WrisD],':b'
113
114 % Maximu Landing Weight
115 plot([0 4300],.92*[Wto Wto],'k-.','Linewidth',2)

07/07/06 4.08

C:\Documents and Settings\dedde\Desktop\MATLAB\9.Fless...\flessibilita.m

3 of 4

116
117 % Peso operativo
118 plot([0 XB],[Weo+WrisA Wto-WVLP],'g',[XB XC],[Wto-WVLP Weo+Wtank],...
119
'g',[XC XD],[Weo+Wtank Weo+Wtank],'g','Linewidth',2)
120 plot([XD 4300],[Weo+Wtank Weo+Wtank],':g')
121
122 %Peso a vuoto operativo
123 plot([0 4300],[Weo Weo],'b-.','Linewidth',2)
124
125 %Peso massimo al decollo
126 plot([0 4300],[Wto Wto],'r-.','Linewidth',2)
127
128 %Design point
129
130
131 plot([Xdes Xdes],[2.5e4 Wdes],'--m',[0 Xdes],[Wdes Wdes],'--m')
132 plot(Xdes,Wdes,'o','MarkerFaceColor','m','MarkerEdgeColor','k','MarkerSize',10)
133
134 % Assi verticali
135 plot([XB XB],[2.5e4 5.2e4],':k',[XC XC],[2.5e4 5.2e4],':k',[XD XD],[2.5e4 5.2e4],':k')
136
137 %grid
138 box on
139 set(gca,'XLim',[0 4000],'LineWidth',1.5)
140 set(gca,'YLim',[2.5e4 5.2e4],'LineWidth',1.5)
141
142 xlabel('Tratta di crociera [nm]','FontSize',12,'FontWeight','b')
143 ylabel('Peso [kg]','FontSize',12,'FontWeight','b')
144 title('Diagramma di flessibilit','FontSize',14,'FontWeight','b')
145
146 text(100,0.92*Wto,'Maximum Landing Weight','Color','k','FontSize',
8,'VerticalAlignment','bottom')
147 text(100,Wto,'Maximum Take-off Weight','Color','r','FontSize',
8,'VerticalAlignment','bottom')
148 text(100,Weo,'Operational Empty Weight','Color','b','FontSize',
8,'VerticalAlignment','bottom')
149 text(1500,4.90e4,'Take-off Weight','Color','r','FontSize',
10,'VerticalAlignment','bottom','FontWeight','b')
150 text(750,3.5e4,'Operatig Weight','Color','g','FontSize',
10,'VerticalAlignment','bottom','FontWeight','b','rotation',24)
151 text(1650,3.75e4,'Zero Fuel Weight','Color','b','FontSize',
10,'VerticalAlignment','bottom','FontWeight','b','rotation',-16)
152 text(1500,4.12e4,'Landing Weight','Color','b','FontSize',
8,'VerticalAlignment','bottom','rotation',-18)
153
154 %freccie
155 annotation('doublearrow',[0.3575 .3575],[0.545 0.6055],'color','b'
156 annotation('doublearrow',[0.87 .87],[0.215 0.610],'color','g'
157
158 text(780,39500,'Reserve Fuel Weight','Color','b','FontSize',
8,'VerticalAlignment','bottom','rotation',90)
159 text(2385,3.3e4,'Useful Fuel Capacity','Color','g','FontSize',
8,'VerticalAlignment','bottom','rotation',90)
160 text(Xdes,Wdes,'
\leftarrow Design Point','Color','m','FontSize',8,'FontWeight','b')
161 text(XB,Weo,'L_1 ','VerticalAlignment','top','HorizontalAlignment','right')
162 text(Xdes,Weo,' L_D_E_S','VerticalAlignment','top','HorizontalAlignment','left')
163 text(XC,Weo,'L_2 ','VerticalAlignment','top','HorizontalAlignment','right')
164 text(XD,Weo,' L_3','VerticalAlignment','top','HorizontalAlignment','left')

07/07/06 4.08
165
166
167
168
169
170
171

C:\Documents and Settings\dedde\Desktop\MATLAB\9.Fless...\flessibilita.m

fprintf('Lunghezza tratte \n')


fprintf('\n')
fprintf('max payload range:
L1 = %4.0f \n',XB)
fprintf('nominal payload range: L2 = %4.0f \n',XC)
fprintf('ferry range:
L3 = %4.0f \n',XD)

4 of 4

07/07/06 4.08
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

%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%

C:\Documents and Settings\dedde\Desktop\MATLAB\9.Flessibilt\Win_flex.m

Landing weight e riserve per tratta di crociera nulla


----------------------------------------------------Questo programma calcola le riserve necessarie a compiere esclusivamente
la missione di diversione. Non si considera quindi tutta la parte a monte
del punto 6 nello schema seguente.
[Win,Wris] = Win_flex(Hdiv, Xdiv, tloi_mis, Hloi_mis, Mdiv,...

Input
----Hdiv:
Xdiv:
tloi_mis:
Hloi_mis:
Mdiv:
tloi_div:
Hloi_div:
CD0, K:
kSFC,mBPR :
Wto:
S:

quota crociera di diversione [m]


lunghezza tratta di diversione [m]
durata attesa missione [s]
quota attesa missione [m]
mach di volo in diversione
durata attesa diversione [s]
quota attesa diversione [m]
coefficienti della polare del velivolo
coefficienti relativi al motore (pag 28 Fanteria)
peso al decollo [kg]
superficie alare di riferimento [m]

Output
-----Win: Landing Weight per un tratto nullo di crociera
Wris: Riserve necessarie per la diversione
|--------------------------|
|Schema delle fasi di volo |
|--------------------------|
3 _________________ 4
/
\
/
\
/
\
8 _____ 9
/
\
/
\
/
5
/
10
/
(())
/
((()))
/
6__/
11
1____/ 2
\____7
\__

function [Win,Wris] = Win_flex(Hdiv, Xdiv, tloi_mis, Hloi_mis, Mdiv,...


global g
% Temperatura s.l. [K]
% [N] Lo zero fuel weight noto

1 of 2

07/07/06 4.08
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
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114

C:\Documents and Settings\dedde\Desktop\MATLAB\9.Flessibilt\Win_flex.m

while abs(W10-W10p)/W10p > 0.001


% Attesa diversione ----------------------------------------------------%
% Propriet dell'atmosfera standard alla quota considerata
%
%
% Velocit di volo
%
% La velocit di volo si considera costante e pari alla velocit di
%
% efficienza massima all'inizio della fase di loiter
%
%
%
% Pressione dinamica [Pa]
%
%
% Consumo specifico [1/s]
%
% [1/s]
%
% Calcolo frazione di combustibile
%
%
%
%
%-----------------------------------------------------------------------%
end

A
T
T
E
S
A

% Discesa diversione (9-10)

while abs(W8-W8p)/W8p > 0.001


% Crociera diversione (8-9): massima autonomia chilometrica ------------%
%
%
%
% Propriet dell'atmosfera standard alla quota di crociera di div
%
%
% Velocit di volo [m/s]
%
%
% Pressione dinamica [Pa]
%
%
% Consumo specifico [1/s]
%
%
% Calcolo frazione di combutibile
%
%
%
%
%-----------------------------------------------------------------------%
end

% Peso riserve [N]


% Peso al decollo [Kg]
% Peso riserve [kg]

C
R
O
C
I
E
R
A

2 of 2

07/07/06 4.08
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

%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%

C:\Documents and Settings\dedde\Desktop\MATLAB\9.Flessibilt\X_flex.m

Tratta di crociera & riserve


---------------------------La funzione calcola il valore della trata di crociera e le riserve noti
il peso di take-off e dello zero fuel weight.
[X,Wris] = X_flex(M, Hcr, Hdiv, Xdiv, tloi_mis, Hloi_mis,...
Mdiv, tloi_div, Hloi_div, CD0, K, kSFC, mBPR, Win,Wfin,S)
Input
----M:
Hcr:
Hdiv:
Xdiv:
tloi_mis:
Hloi_mis:
Mdiv:
tloi_div:
Hloi_div:
CD0, K:
kSFC,mBPR :
Win:
Wfin:
S:

mach di volo
quota di crociera [m]
quota crociera di diversione [m]
lunghezza tratta di diversione [m]
durata attesa missione [s]
quota attesa missione [m]
mach di volo in diversione
durata attesa diversione [s]
quota attesa diversione [m]
coefficienti della polare del velivolo
coefficienti relativi al motore (pag 28 Fanteria)
Peso al decollo [kg]
Zero fuel weight [kg]
superficie alare di riferimento [m]

Output
-----X: lunghezza tratta di crociera
Wris: Carburante necessario per le riserve
|--------------------------|
|Schema delle fasi di volo |
|--------------------------|
3 _________________ 4
/
\
/
\
/
\
8 _____ 9
/
\
/
\
/
5
/
10
/
(())
/
((()))
/
6__/
11
1____/ 2
\____7
\__

function [X,Wris] = X_flex(M, Hcr, Hdiv, Xdiv, tloi_mis, Hloi_mis,...


Mdiv, tloi_div, Hloi_div, CD0, K, kSFC, mBPR, Win,Wfin,S)
global g nm2m
% Temperatura s.l. [K]

while abs(W6-W6p)/W6 > 0.001


%-------------------------------------------------------------------------

1 of 3

07/07/06 4.08
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
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116

C:\Documents and Settings\dedde\Desktop\MATLAB\9.Flessibilt\X_flex.m

while abs(W10-W10p)/W10p > 0.001


% Attesa diversione ----------------------------------------------------%
% Propriet dell'atmosfera standard alla quota considerata
%
%
% Velocit di volo
%
% La velocit di volo si considera costante e pari alla velocit di
%
% efficienza massima all'inizio della fase di loiter
%
%
%
% Pressione dinamica [Pa]
%
%
% Consumo specifico [1/s]
%
% [1/s]
%
% Calcolo frazione di combustibile
%
%
%
%
%-----------------------------------------------------------------------%
end

A
T
T
E
S
A

% Discesa diversione (9-10)

while abs(W8-W8p)/W8p > 0.001


% Crociera diversione (8-9): massima autonomia chilometrica ------------%
%
%
%
% Propriet dell'atmosfera standard alla quota di crociera di div
%
%
% Velocit di volo [m/s]
%
%
% Pressione dinamica [Pa]
%
%
% Consumo specifico [1/s]
%
%
% Calcolo frazione di combutibile
%
%
%
%
%-----------------------------------------------------------------------%
end

C
R
O
C
I
E
R
A

2 of 3

07/07/06 4.08
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
%
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168

C:\Documents and Settings\dedde\Desktop\MATLAB\9.Flessibilt\X_flex.m

while abs(W5-W5p)/W5p > 0.001


% Attesa (5-6)----------------------------------------------------------%
% Propriet dell'atmosfera standard alla quota di attesa
%
% Velocit di volo
% La velocit di volo si considera costante e pari alla velocit di
% efficienza massima all'inizio della fase di loiter

%
%
%
%
%
% Pressione dinamica [Pa]
%
%
% Consumo specifico [1/s]
%
%
% Calcolo frazione di combustibile
%
%
%
%
%-----------------------------------------------------------------------%
end

%
A
T
T
E
S
A

end
% Decollo (1-2)

% Salita (2-3)

% Crociera (3-4):

massima autonomia chilometrica-----------------------%


%Peso di inizio crociera [N]

%
%
% Propriet atmosfera standard alla quota di crociera
%
%
% Velocit di volo [m/s]
%
%
% Pressione dinamica [Pa]
%
%
% Consumo specifico [1/s]
%
%
%-----------------------------------------------------------------------%

X = ((M*a_cr)/(SFC_cr*sqrt(K*CD0)))*atan((((W3/S)/(q_cr*sqrt(CD0/K)))*...

% Tratta di crociera [nm]

C
R
O
C
I
E
R
A

3 of 3

C10

Progetto di Costruzioni Aeronautiche

07/07/06 4.09
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

C:\Documents and Settings\dedde\Desktop\MATLAB\10.Polare\polare.m

% POLARE DEL VELIVOLO (NON IPERSOSTENTATO)


% ========================================
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% La resistenza del velivolo data da:
%
% ---------------------------------------------------------------------% CD = CD_parassita(Re,M) + CD_lift(M,Re,CL) + CD_misc + CD_comp(M,CL)
% ---------------------------------------------------------------------%
% ma data la debole dipendenza di CD da M per bassi valori di M, si pu
% considerare:
%
% --------------------------------% CD = CDo + K*CL + deltaCD_comp
% --------------------------------%
% con
%
CDo = (CD_parassita + CD_misc + CDo_comp)des = costante
%
K = Kdes = costante
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
clear all
clc
% SELEZIONE DELLA CONFIGURAZIONE OTTIMA
% ------------------------------------% identificatore del numero di mach
% identificatore dell'allungamento alare
% identificatore dello spessore percentuale
% identificatore del coefficiente di variazione della superficie
% Costanti & fattori di conversione
%..........................................................................
% 1 ft = 0.3048 m
% 1 n.m. = 1852 m
% 1 lb = 0.45359237 kg
%..........................................................................
%----------------------------- D A T I --------------------------------% Numero di Mach
% Quota di crociera
% Caricamento dati del velivolo ottenuti dal progetto di alta velocit ---load config.mat
% Dati ricavati dal progetto di alta velocit ----------------------------CLdes = config(iM,iAR,it_c).adimensional_parameters(iKS,1)

1 of 4

07/07/06 4.09
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
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116

C:\Documents and Settings\dedde\Desktop\MATLAB\10.Polare\polare.m

%-------------------------------------------------------------------------% EFFETTO DEL NUMERO DI MACH SULLA RESISTENZA DEL VELIVOLO


% ========================================================
CDO_des = CD0_fun(Mdes, Hcr, S, SwetF, SwetW, SwetHt, SwetVt,...
SwetN, L, W, H, LFC, DFC, mac, t_c, sweep25,...
macHt, macVt, sweepHt, sweepVt, c_pyl, SwetP,...

% Variazione del coefficiente di portanza del velivolo


colore = ['b' 'g' 'r' 'c' 'm' 'y' 'k'
% Variazione del numero di Mach

for iCL=1:length(CLv)

for iM=1:length(Mv)

% Coefficiente di resistenza dovuto agli effetti della comprimibilit

2 of 4

07/07/06 4.09
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174

C:\Documents and Settings\dedde\Desktop\MATLAB\10.Polare\polare.m

% Coefficiente di resistenza parassita

% Coefficiente di resistenza dovuta alla portanza

% Coefficiente di resistenza del velivolo


end
% Plottaggio
figure(1)
plot(Mv,CD,colore(iCL),'LineWidth',1.5)
hold on
end
legenda = legend(['C_L = ', num2str(CLv(1))], ['C_L = ', num2str(CLv(2))], ...
['C_L = ', num2str(CLv(3))], ['C_L = ', num2str(CLv(4))], ...
['C_L = ', num2str(CLv(5))], ['C_L = ', num2str(CLv(6))], ...
['C_L = '
set(legenda,'FontSize',8,'FontWeight','b')
title('Effetto del numero di Mach sulla resistenza','FontSize',12,'FontWeight','b')
xlabel('M','FontSize',12,'FontWeight','b')
ylabel('C_D','FontSize',12,'FontWeight','b','Rotation',0)
grid
box on
set(gca,'LineWidth',1)
% EFFETTO DEL NUMERO DI MACH SULLA FORMA DELLA POLARE DEL VELIVOLO
% ================================================================
% Variazione del numero di Mach
colore = ['b' 'g' 'r' 'y' 'k'
% Variazione del coefficiente di portanza del velivolo

for iM=1:length(Mv)

for iCL= 1:length(CLv)

% Coefficiente di resistenza dovuta alla portanza

% Coefficiente di resistenza dovuto agli effetti della comprimibilit


end
% Coefficiente di resistenza del velivolo

% Plottaggio
figure(2)
plot(CD,CLv,colore(iM),'LineWidth',1.5)

3 of 4

07/07/06 4.09
175
176
177
178
179
180
181
182
183
184
185
186
187

C:\Documents and Settings\dedde\Desktop\MATLAB\10.Polare\polare.m

4 of 4

hold on
end
Mmin = sprintf('%0.2g'
legenda = legend(['M=0 to M=', num2str(Mmin)], ['M = ', num2str(Mv(2))], ...
['M = ', num2str(Mv(3))], ['M = '
set(legenda,'FontSize',8,'FontWeight','b')
title('Effetto del numero di Mach sulla forma della polare','FontSize',12,'FontWeight','b')
xlabel('C_D','FontSize',12,'FontWeight','b')
ylabel('C_L','FontSize',12,'FontWeight','b','Rotation',0)
grid
box on
set(gca,'LineWidth',1)

07/07/06 4.10
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

%
%
%
%
%
%
%
%
%
%
%
%
%
%

C:\Documents and Settings\dedde\Desktop\MATLAB\10.Polare\lift_fun.m

Fattore di efficienza di Oswald


------------------------------_
function CD_lift = lift_fun(AR, lambdaW, CD0, CL)
Input
----AR:
lambdaW:
CDO:
CL:
Output
-----CD_lift:

allungamento alare (aspect ratio)


rapporto di rastremazione dell'ala
coefficiente di resistenza a portanza nulla
coefficiente di portanza del velivolo

coefficiente di resistenza dovuto alla portanza

function K = lift_fun(AR, lambdaW, CD0, CL)


% Dati da interpolare

% Calcolo coefficiente C1
C1 = interp2(x,y,z,lambdaW,AR,'cubic'
% Calcolo coefficiente C2 e fattori di correzione dovuti a viscosit e twist

1 of 1

C11

Progetto di Costruzioni Aeronautiche

07/07/06 4.11
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

C:\Documents and Settings\dedde\Desktop\MATLAB\11.Anaisi d...\MAIN_CDS.m

% Caratteristiche di sollecitazione
%
% Il programma trova le CDS per ogni configurazione e le salva nel file CDS

clc
clear all

global ft2m nm2m lb2kg g d2r r2d in2m


% Costanti & fattori di conversione
%..........................................................................
% 1 ft = 0.3048 m
% 1 n.m. = 1852 m
% 1 lb = 0.45359237 kg
% accelerazione gravitazionale [m/s2]
% fattore di conversione deg --> rad
% fattore di conversione rad --> deg
% 1 in = 0.0254 m
%..........................................................................
load './config/config.mat'

% quota di crociera [m]

load load_factor

for i=1:3
for j=1:3

1 of 2

07/07/06 4.11

C:\Documents and Settings\dedde\Desktop\MATLAB\11.Anaisi d...\MAIN_CDS.m

59
60
61
62
63
64
65
66
67 end
68 end
69
70 save('CDS','CDS','M','nz','W','EAS','sweep50e')
71

2 of 2

07/07/06 4.11

C:\Documents and Settings\dedde\Desktop\MA...\ala_trapezia_equivalente.m

1 of 2

1 % Ala trapezia equivalente


2 % -----------------------3 % Questo programma genera la geometria in pianta di un'ala trapezia
4 % equivalente a quella con kink di ingresso
5 %
6 % Input
7 % ----8 %
b: apertura alare [m]
9 %
bK: apertura alare al kink [m]
10 %
etaR: coordinata adimensionale della radice
11 %
cCL: corda all'asse fusoliera [m]
12 %
cR: corda alla radice [m]
13 %
cK: corda al kink [m]
14 %
cT: corda all'estremit dell'ala [m]
15 % sweepLE: freccia alare al bordo d'attacco [rad]
16 %
17 % Output
18 % -----19 %
S_e: superficie alare esposta [m]
20 %
cRe: corda alla radice [m]
21 %
cCLe: corda all'asse fusoliera [m]
22 % lambda_e: rapporto rastremazione
23 %
AR_e: allungamento alare
24 % sweep25e: freccia al 25% della corda [deg]
25 % sweepLEe: freccia al bordo d'attacco [deg]
26 % sweepTEe: freccia al bordo d'uscita [deg]
27 % sweep50e: freccia al 50% della corda [deg]
28 %
mac_e: corda media aerodinamica [m]
29 % meanc_e: corda media geometrica [m]
30
31 function [S_e, cRe, cCLe, lambda_e, AR_e, sweep25e, sweepLEe, sweepTEe, sweep50e, mac_e,
meanc_e] = ...
32
ala_trapezia_equivalente(b, bK, etaR, cCL, cR, cK, cT, sweepLE)
33
34
35 % SUPERFICIE ALARE DI RIFERIMENTO
36 % Superficie alare inboard
37
38 % Superficie alare outboard
39
40 % Superficie fusoliera
41
42 % Superficie di riferimento
43
44
45
46
47 % SUPERFICIE ALARE ESPOSTA
48
49
50 % CORDE CARATTERISTICHE
51 % Corda alla radice
52
53 % Corda all'asse fusoliera
54
55
56 % RAPPORTO DI RASTREMAZIONE
57

07/07/06 4.11
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81

C:\Documents and Settings\dedde\Desktop\MA...\ala_trapezia_equivalente.m

% ALLUNGAMENTO ALARE

% ANGOLO DI FRECCIA
% Freccia al 25% della corda

% freccia al bordo d'attacco

% freccia al bordo d'uscita

% freccia al 50% della corda

% CORDA MEDIA AERODINAMICA

% CORDA MEDIA GEOMETRICA

2 of 2

07/07/06 4.11
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

%
%
%
%
%
%
%

C:\Documents and Settings\dedde\Desktop\MATLAB\11.Anais...\analisi_CDS.m

Plottaggio e analisi delle CDS


-----------------------------Il programma esegue l'analisi e il plottaggio dei carichi distribuiti e
delle CDS di sollecitazione. Per plottare la configurazione di massima
sollecitazione chiudere entrambi i men.

clc
clear all
load CDS
% accelerazione gravitazionale [m/s2]
load './config/config.mat'
iM=3,iAR=3,it_c=3,iKS=8
% semiapertura motore
%Posizione dell'attacco del carrello dall'asse di fus

% Definizioni delle ascisse delle sezioni alari da analizzare in %

% si plottano i risultati solo dalla radice al tip

for i=1:3
for j=1:3

fprintf('M50 = %4.3f M60 = %4.3f \n',[Mfsect1(i,j) Mfsect2(i,j)])


end
end

fase = ['Decollo
' 'Crociera
' 'Atterraggio '
velocita = ['Va/Vb)' 'Vc)
' 'Vd)
'
disp('CONFIGURAZIONE DI MASSIMA SOLLECITAZIONE')

1 of 3

07/07/06 4.11

C:\Documents and Settings\dedde\Desktop\MATLAB\11.Anais...\analisi_CDS.m

59 fprintf('\n')
60
61 disp(['Fase di volo:
' fase(imax1,:) '(velocit = ' velocita(jmax1,:)])
62
63 fprintf('Mach di volo:
M = %4.3f \n',M(imax1,jmax1))%,disp('jj')
64 fprintf('EAS:
%4.3f m/s \n',EAS(imax1,jmax1))
65 fprintf('Fattore di carico: nz = %1.2f \n',nz(imax1,jmax1))
66 fprintf('Peso:
%4.0f kg \n',W(imax1,jmax1)/g)
67
68 fprintf('\n')
69 fprintf('\n')
70
71 disp(['SEZIONE AL ' num2str(Xsect1*100) '%'
72 fprintf('Momento flettente = %4.3e N*m \n',(maxMf1))
73
74 fprintf('\n')
75
76 disp(['SEZIONE AL ' num2str(Xsect2*100) '%'
77 fprintf('Momento flettente = %4.3e N*m \n',(maxMf2))
78
79 % PLOTTAGGIO DEI RISULTATI
80
81 c1 = menu({'Scegliere una fase di volo' 'chiudere per avere condizioni di max
sollecitazione'},'Decollo','Crociera','Atterraggio'
82 c2 = menu({'Scegliere una velocit di volo' 'chiudere per avere condizioni di max
sollecitazione'},'Va/Vb','Vc','Vd'
83 if
84
85 end
86 if c2==0
87
88 end
89
90
91 figure(1)
92 plot(CDS(c1,c2).eta(indR:end),CDS(c1,c2).Mf(indR:end),'r','linewidth',1.5)
93 title('Momento Flettente','FontSize',14,'FontWeight','b')
94 xlabel('\eta','FontSize',12,'FontWeight','b')
95 ylabel('M_f [N*m]','FontSize',12,'FontWeight','b')
96 box on
97 set(gca,'linewidth',1.5)
98 line([0.125 1],[0 0],'color','k','Linestyle',':')
99
100
101 figure(2)
102 plot(CDS(c1,c2).eta(indR:end),CDS(c1,c2).T(indR:end),'linewidth',1.5)
103 title('Taglio','FontSize',14,'FontWeight','b')
104 xlabel('\eta','FontSize',12,'FontWeight','b')
105 ylabel('T [N]','FontSize',12,'FontWeight','b')
106 box on
107 set(gca,'linewidth',1.5)
108 line([0.125 1],[0 0],'color','k','Linestyle',':')
109
110 figure(3)
111 title('Distribuzione dei Carichi','FontSize',14,'FontWeight','b')
112 xlabel('\eta','FontSize',12,'FontWeight','b')
113 ylabel('q [N/m]','FontSize',12,'FontWeight','b')
114 hold on

2 of 3

07/07/06 4.11

C:\Documents and Settings\dedde\Desktop\MATLAB\11.Anais...\analisi_CDS.m

3 of 3

115 box on
116 qq = plot(CDS(c1,c2).eta(indR:end),-CDS(c1,c2).q_s(indR:end),...
117
CDS(c1,c2).eta(indR:end),-CDS(c1,c2).q_f(indR:end),...
118
CDS(c1,c2).eta(indR:end),CDS(c1,c2).q_l(indR:end),...
119
120 set(qq,'linewidth',1.5)
121
122
123 line([Xhlg Xhlg],[0 -CDS(c1,c2).Cc1/2],'linewidth',2,'linestyle','-.')
124 line([Xbeng Xbeng],[0 -CDS(c1,c2).Cc2/2],'linewidth',2,'linestyle','-.','color','r')
125
126 plot(Xhlg,-CDS(c1,c2).Cc1/2,'v','MarkerFaceColor','b','MarkerEdgeColor','k','MarkerSize',
10)
127 plot(Xbeng,-CDS(c1,c2).Cc2/2,'v','MarkerFaceColor','r','MarkerEdgeColor','k','MarkerSize',
10)
128 line([0.125 1],[0 0],'color','k')
129 hleg = legend('q_s_t_r_u_c_t','q_f_u_e_l','q_l_i_f_t','q_g_l_o_b_a_l'
130 set(hleg,'FontSize',10,'FontWeight','b')
131
132 text(Xbeng,0,[' F_e_n_g_ = ' num2str(CDS(c1,c2).Cc2,'%10.0f') '
N'],'Color','r','FontSize',8,'VerticalAlignment','middle','rotation',90)
133 text(Xhlg,0,[' F_g_e_a_r = ' num2str(CDS(c1,c2).Cc1,'%10.0f') ' N'],'Color','b','FontSize',
8,'VerticalAlignment','middle','rotation',90)
134

07/07/06 4.12
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

%
%
%
%
%
%
%

C:\Documents and Settings\dedde\Desktop\MATLAB\11...\diagramma_manovra.m

Diagramma di manovra
-------------------Il programma seguente plotta i diagrammi di manovra relativi a tre
condizioni di volo e quindi tre pesi diversi.
Salva poi i risultati che trova sui fattori di carico e velocit
equivalenti nel file load_factor.mat

clc
clear all
global ft2m nm2m lb2kg g d2r r2d in2m
% Costanti & fattori di conversione
%..........................................................................
% 1 ft = 0.3048 m
% 1 n.m. = 1852 m
% 1 lb = 0.45359237 kg
% accelerazione gravitazionale [m/s2]
% fattore di conversione deg --> rad
% fattore di conversione rad --> deg
% 1 in = 0.0254 m
%..........................................................................
load './config/config.mat'

iM=3,iAR=3,it_c=3,iKS=8

% quota di crociera [m]

% Coefficiente di
%
%
%

portanza dell'ala ipersostentata


decollo
approccio
atterraggio
% CL minimo

1 of 4

07/07/06 4.12

C:\Documents and Settings\dedde\Desktop\MATLAB\11...\diagramma_manovra.m

2 of 4

59 % Fattori di carico massimo e minimo


60
61
62
63
64 % Densit dell'aria s.l.m.
65
66
67
68
69
70
71 hold on
72 box on
73
74 % CONDIZIONE 1 - Diagrammi al decollo
75
76
77
78
79
80 xlabel('Equivalent Air Speed
[m/s]','FontSize',12,'FontWeight','b')
81 ylabel('Load Factor
n_z','FontSize',12,'FontWeight','b')
82 title(['Diagramma di manovra ' 'h = ' num2str(h) ' W = W_T_O'],'FontSize',
14,'FontWeight','b')
83 figure(2)
84 [nzBup1,nzCup1,nzDup1,nzDdo1,nzCdo1,nzBdo1,EAS_B1]=plot_raffica(h, W, M, S, CLmax0, AR,
85 xlabel('Equivalent Air Speed
[m/s]','FontSize',12,'FontWeight','b')
86 ylabel('Load Factor
n_z','FontSize',12,'FontWeight','b')
87 title(['Diagramma di raffica ' 'h = ' num2str(h) ' W = W_T_O'],'FontSize',
14,'FontWeight','b')
88 figure(3)
89 plot_inviluppo(h, W, M, S, CLmax0, CLmaxF, CLmin, conf,nzBup1,nzCup1,nzDup1,nzDdo1,nzCdo1,
nzBdo1,EAS_B1)
90 xlabel('Equivalent Air Speed
[m/s]','FontSize',12,'FontWeight','b')
91 ylabel('Load Factor
n_z','FontSize',12,'FontWeight','b')
92 title(['Inviluppo di volo ' 'h = ' num2str(h) ' W = W_T_O'],'FontSize',
14,'FontWeight','b')
93
94 % CONDIZIONE 2 - Diagrammi in crociera
95 figure(4)
96
97
98
99
100
101 xlabel('Equivalent Air Speed
[m/s]','FontSize',12,'FontWeight','b')
102 ylabel('Load Factor
n_z','FontSize',12,'FontWeight','b')
103 title(['Diagramma di manovra ' 'h = ' num2str(h) ' W = W_D_E_S'],'FontSize',
14,'FontWeight','b')
104 figure(5)
105 [nzBup2,nzCup2,nzDup2,nzDdo2,nzCdo2,nzBdo2,EAS_B2]=plot_raffica(h, W, M, S, CLmax0, AR,
106 xlabel('Equivalent Air Speed
[m/s]','FontSize',12,'FontWeight','b')
107 ylabel('Load Factor
n_z','FontSize',12,'FontWeight','b')
108 title(['Diagramma di raffica ' 'h = ' num2str(h) ' W = W_D_E_S'],'FontSize',
14,'FontWeight','b')

07/07/06 4.12

C:\Documents and Settings\dedde\Desktop\MATLAB\11...\diagramma_manovra.m

3 of 4

109 figure(6)
110 plot_inviluppo(h, W, M, S, CLmax0, CLmaxF, CLmin, conf,nzBup2,nzCup2,nzDup2,nzDdo2,nzCdo2,
nzBdo2,EAS_B2)
111 xlabel('Equivalent Air Speed
[m/s]','FontSize',12,'FontWeight','b')
112 ylabel('Load Factor
n_z','FontSize',12,'FontWeight','b')
113 title(['Inviluppo di volo ' 'h = ' num2str(h) ' W = W_D_E_S'],'FontSize',
14,'FontWeight','b')
114
115 % CONDIZIONE 3 - Diagrammi in atterraggio
116 figure(7)
117
118
119
120
121
122 xlabel('Equivalent Air Speed
[m/s]','FontSize',12,'FontWeight','b')
123 ylabel('Load Factor
n_z','FontSize',12,'FontWeight','b')
124 title(['Diagramma di manovra ' 'h = ' num2str(h) ' W = W_E_O+W_p_a_y'],'FontSize',
14,'FontWeight','b')
125 figure(8)
126 [nzBup3,nzCup3,nzDup3,nzDdo3,nzCdo3,nzBdo3,EAS_B3]=plot_raffica(h, W, M, S, CLmax0, AR,
127 xlabel('Equivalent Air Speed
[m/s]','FontSize',12,'FontWeight','b')
128 ylabel('Load Factor
n_z','FontSize',12,'FontWeight','b')
129 title(['Diagramma di raffica ' 'h = ' num2str(h) ' W = W_E_O+W_p_a_y'],'FontSize',
14,'FontWeight','b')
130 figure(9)
131 plot_inviluppo(h, W, M, S, CLmax0, CLmaxF, CLmin, conf,nzBup3,nzCup3,nzDup3,nzDdo3,nzCdo3,
nzBdo3,EAS_B3)
132 xlabel('Equivalent Air Speed
[m/s]','FontSize',12,'FontWeight','b')
133 ylabel('Load Factor
n_z','FontSize',12,'FontWeight','b')
134 title(['Inviluppo di volo ' 'h = ' num2str(h) ' W = W_E_O+W_p_a_y'],'FontSize',
14,'FontWeight','b')
135
136 % Per la successiva analisi dei carichi si vanno a riassumere le condizioni
137 % di carico in una matrice. Per quanto riguarda i punti A e B si sceglie
138 % tra i due quello che comporta una situazione di carico + gravosa
139
140
141
142
143
144
145
146
147
148
149 for i=1:3
150
151 if nzBv(i)>2.5
152
153
154 else
155
156
157 end
158
159 if nzCv(i)>2.5

07/07/06 4.12
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183

C:\Documents and Settings\dedde\Desktop\MATLAB\11...\diagramma_manovra.m

else
end

if nzDv(i)>2.5
else
end

end

save('load_factor','nzTO','nzCR','nzLA','EASto','EAScr','EASla')

4 of 4

07/07/06 4.12

C:\Documents and Settings\dedde\Desktop\MATLAB\11.Anaisi ...\diederich.m

1 % Metodo di Diederich per il calcolo della portanza in ala


2 % ------------------------------------------------------------------------3 % Il modello adottato per il calcolo della distribuzione di portanza lungo
4 % l'apertura alare riportato nell' appendice E del Torenbeek (paragrafo E4)
5 %
6 % Input
7 % ----8 % Wing_plan_geo: geometria dell'ala trapezia equivalente
9 %
Wing_plan_geo(1): rapporto di rastremazione
10 %
Wing_plan_geo(2): apertura alare
11 %
Wing_plan_geo(3): freccia al 25% della corda [deg]
12 %
Wing_plan_geo(4): superficie esposta
13 %
M: numero di mach
14 %
CLw: coefficiente di portanza in ala
15 %
tiptwist: svergolamento alare (tip nose down) [deg]
16 %
cl_alpha: pendenza della curva di portanza dell'ala
17 %
cl_alpha_i: pendenza della curva di portanza teorica del profilo alare
18 %
twist_law: tipologia di distribuzione di svergolamento
19 %
20 % Output
21 % -----22 % etha: coordinata adimensionale lungo l'apertura alare
23 % Clxc: distribuzione del (Cl x c) in apertura
24 %
Cl: distribuzione di Cl in apertura
25 % Claxc: distribuzione del (Cla x c) in apertura
26 %
Cla: distribuzione di Cla in apertura
27 % Clbxc: distribuzione del (Clb x c) in apertura
28 %
Clb: distribuzione di Clb in apertura
29
30
31 function [etha, Clxc, Cl, Claxc, Cla, Clbxc, Clb] = diederich(Wing_plan_geo, M, CLw,
tiptwist,...
32
cl_alpha, cl_alpha_i,
twist_law)
33
34 % Controllo delle variabili in ingresso
35 if nargin < 7
36
twist_law = 'quadratic'
37 end
38 if nargin < 6
39
40 end
41 if nargin < 5
42
43 end
44 if nargin < 4
45
error('Not enough input arguments.')
46 end
47
48 % CARATTERISTICHE ALA TRAPEZIA EQUIVALENTE
49 % ---------------------------------------50 % rapporto di rastremazione
51
52 % apertura alare
53
54 % freccia alare al 25% della corda [deg]
55
56 % superficie alare esposta

1 of 4

07/07/06 4.12
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
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114

C:\Documents and Settings\dedde\Desktop\MATLAB\11.Anaisi ...\diederich.m

% allungamento alare ala trapezia equivalente


% corda all'asse fusoliera ala trapezia equivalente
% corda all'estremit ala trapezia equivalente
% freccia al 25% della corda ala trapezia equivalente [rad]
% freccia al bordo d'attacco ala trapezia equivalente [rad]
% freccia al bordo d'uscita ala trapezia equivalente [rad]
% freccia al 50% della corda ala trapezia equivalente [rad]
% corda media aerodinamica ala trapezia equivalente
% corda media geometrica ala trapezia equivalente

% DISCRETIZZAZIONE DELL'ALA: COORDINATA ADIMENSIONALE


% ---------------------------------------------------

% DISTRIBUZIONE DI CORDA
% ----------------------

% PARAMETRI
% --------% coefficiente di comprimibilit
% freccia alare corretta per gli effetti di comprimibilit

% CALCOLO DELLA PENDENZA DELLA CURVA DI PORTANZA: METODO DI DIEDERICH


% ------------------------------------------------------------------% pendenza del coefficiente di portanza del profilo teorico
if isempty(cl_alpha_i)
end
% pendenza del coefficiente di portanza dell'ala teorico
if isempty(cl_alpha)

end
% DISTRIBUZIONE DI SVERGOLAMENTO
% -----------------------------switch lower(twist_law)
case 'linear'
% distribuzione lineare
case 'quadratic'

% distribuzione quadratica

case 'cubic'

% distribuzione cubica

2 of 4

07/07/06 4.12
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172

C:\Documents and Settings\dedde\Desktop\MATLAB\11.Anaisi ...\diederich.m

otherwise
end
% PARAMETRO DI SIMILITUDINE
% -------------------------

% COEFFICIENTI DI DIEDERICH
% ------------------------% C1:
C1 = b*x + a*x^2

% C3:

C3 = b*x + a*x^2

% C2:

C2 = 1 - C1 - C3

% C4

% FUNZIONE DI DISTRIBUZIONE DI PORTANZA


% ------------------------------------% DATI

ff = [1.27
0.90
0.64

1.27
0.98
0.82

1.25
1.11
1.04

1.17
1.27
1.28

1.02
1.19
1.27

0.76
0.90
0.95

0.00
-0.09
-0.08

% CALCOLO f(LAM_beta,etha)
for j=1:length(ystar)
fbase(j) = interp1(Lambda_e,ff(:,j),LAM_beta,'linear'
end
f = interp1(ystar,fbase,etha,'spline'

%
%
%
%

DISTRIBUZIONE DI PORTANZA
------------------------DISTRIBUZIONE DI PORTANZA AGGIUNTIVA
coefficiente di Anderson La

% Distribuzione del (Cla x c) in apertura


% distribuzione di Cl in apertura

% DISTRIBUZIONE DI PORTANZA BASE


% svergolamento della semiala nel punto in cui il coefficiente di portanza
% base assume il valore nullo
% coefficiente di Anderson Lb

3 of 4

07/07/06 4.12
173
174
175
176
177
178
179
180
181
182
183

C:\Documents and Settings\dedde\Desktop\MATLAB\11.Anaisi ...\diederich.m

% Distribuzione del (Clb x c) in apertura


% distribuzione di Cl in apertura

% DISTRIBUZIONE COMPLESSIVA DI PORTANZA


% Distribuzione del (Cl x c) in apertura
% distribuzione di Cl in apertura

4 of 4

07/07/06 4.12
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

C:\Documents and Settings\dedde\Desktop\MATL...\distribuzione_portanza.m

% Calcolo della distribuzione di portanza


%
% Il programma calcola e plotta gli andamenti del coefficiente di portanza
% e del suo prodotto per la corda.

clc
clear all
global ft2m nm2m lb2kg g d2r r2d in2m
% Costanti & fattori di conversione
%..........................................................................
% 1 ft = 0.3048 m
% 1 n.m. = 1852 m
% 1 lb = 0.45359237 kg
% accelerazione gravitazionale [m/s2]
% fattore di conversione deg --> rad
% fattore di conversione rad --> deg
% 1 in = 0.0254 m
%..........................................................................
load './config/config.mat'

iM=3,iAR=3,it_c=3,iKS=8

% Densit dell'aria s.l.m.

% Calcolo dell'ala trapezia equivalente

1 of 5

07/07/06 4.12

C:\Documents and Settings\dedde\Desktop\MATL...\distribuzione_portanza.m

59 % ------------------------------------60 [S_e, cRe, cCLe, lambda_e, AR_e, sweep25e, sweepLEe, sweepTEe, sweep50e, mac_e,
...
61
62
63 load load_factor
64 % Coefficienti di portanza delle varie configurazioni
65
66 % Configurazione 1. Decollo
67
68
69 for i =1:3
% coefficiente di portanza
70
velivolo
% coefficiente di portanza
71
72
73
74 end
75
76 % Configurazione 2. Crociera
77
78
79 for i =1:3
% coefficiente di portanza
80
velivolo
81
% coefficiente di portanza
82
83
84 end
85
86 % Configurazione 3. Atteraggio
87
88
89 for i =1:3
% coefficiente di portanza
90
velivolo
91
% coefficiente di portanza
92
93
94 end
95
96 CL_to
97
98 % CALCOLO DELLA DISTRIBUZIONE DI PORTANZA IN ALA
99 % ==============================================
100 % Geometria dell'ala trapezia equivalente
101
102
103
104
105 % Svergolamento alare (tip nose down) [deg]
106
107 % Distribuzione di svergolamento
108 twist_law = 'cubic'
109 % Pendenza teorica della curva di portanza dell'ala
110
111 % Pendenza teorica della curva di portanza del profilo alare
112

2 of 5

meanc_e] =

del
dell'ala

del
dell'ala

del
dell'ala

07/07/06 4.12
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156

% 1. DECOLLO
% ---------% CONFIGURAZIONE CORRISPONDENTE A VA O A VB
[eta_to1, Clxc_to1, Cl_to1, Claxc_to1, Cla_to1, Clbxc_to1, Clb_to1] = ...
% CONFIGURAZIONE CORRISPONDENTE A VC
[eta_to2, Clxc_to2, Cl_to2, Claxc_to2, Cla_to2, Clbxc_to2, Clb_to2] = ...
% CONFIGURAZIONE CORRISPONDENTE A VD
[eta_to3, Clxc_to3, Cl_to3, Claxc_to3, Cla_to3, Clbxc_to3, Clb_to3] = ...

% 2. CROCIERA
% ----------% CONFIGURAZIONE CORRISPONDENTE A VA O A VB
[eta_cr1, Clxc_cr1, Cl_cr1, Claxc_cr1, Cla_cr1, Clbxc_cr1, Clb_cr1] = ...
% CONFIGURAZIONE CORRISPONDENTE A VC
[eta_cr2, Clxc_cr2, Cl_cr2, Claxc_cr2, Cla_cr2, Clbxc_cr2, Clb_cr2] = ...
% CONFIGURAZIONE CORRISPONDENTE A VD
[eta_cr3, Clxc_cr3, Cl_cr3, Claxc_cr3, Cla_cr3, Clbxc_cr3, Clb_cr3] = ...

% 3. ATTERRAGGIO
% -------------% CONFIGURAZIONE CORRISPONDENTE A VA O A VB
[eta_la1, Clxc_la1, Cl_la1, Claxc_la1, Cla_la1, Clbxc_la1, Clb_la1] = ...
% CONFIGURAZIONE CORRISPONDENTE A VC
[eta_la2, Clxc_la2, Cl_la2, Claxc_la2, Cla_la2, Clbxc_la2, Clb_la2] = ...
% CONFIGURAZIONE CORRISPONDENTE A VD
[eta_la3, Clxc_la3, Cl_la3, Claxc_la3, Cla_la3, Clbxc_la3, Clb_la3] = ...

%
%
%
%

PLOTTAGGIO DEI RISULTATI


========================
MEMORIZZAZIONE DEI RISULTATI
Coordinata adimensionale della semiala

157
158
159
...
160
161
162
...
163
164

C:\Documents and Settings\dedde\Desktop\MATL...\distribuzione_portanza.m

3 of 5

07/07/06 4.12

C:\Documents and Settings\dedde\Desktop\MATL...\distribuzione_portanza.m

4 of 5

165
166
167 for j = 1:9
168
169
170
171
172
173
174
175
176
figure
177
subplot(2,1,1) % Distribuzione del coefficiente di portanza in apertura
178
hplot = plot(eta_plot,Cl_plot,eta_plot,Cla_plot,'r',eta_plot,Clb_plot,'g'
179
set(hplot,'LineWidth',1)
180
title('Distribuzione di portanza in apertura:
C_l(\eta)','FontSize',
10,'FontWeight','b')
181
xlabel('\eta','FontSize',10,'FontWeight','b')
182
ylabel('C_l(\eta)','FontSize',10,'FontWeight','b')
183
hleg = legend('C_l(\eta)','C_l_A(\eta)','C_l_B(\eta)'
184
set(hleg,'FontSize',10,'FontWeight','b')
185
box on
186
set(gca,'LineWidth',1)
187
grid
188
189
subplot(2,1,2) % Distribuzione del prodotto coefficiente di portanza x corda in
apertura
190
hplot = plot(eta_plot,Clxc_plot,eta_plot,Claxc_plot,'r',eta_plot,Clbxc_plot,'g'
191
set(hplot,'LineWidth',1)
192
title('Distribuzione di portanza in apertura:
C_l(\eta) x c(\eta)','FontSize',
10,'FontWeight','b')
193
xlabel('\eta','FontSize',10,'FontWeight','b')
194
ylabel('C_l(\eta) x c(\eta)','FontSize',10,'FontWeight','b')
195
hleg = legend('C_l(\eta) x c(\eta)','C_l_A(\eta) x c(\eta)','C_l_B(\eta) x c(\eta)'
196
set(hleg,'FontSize',10,'FontWeight','b')
197
box on
198
set(gca,'LineWidth',1)
199
200
201
axis([0 1 yplot_min yplot_max])
202
grid
203 end
204
205 figure(1)
206 subplot(2,1,1)
207 title('DECOLLO (Configurazione corrispondente a V_A o V_B):
C_l(\eta)','FontSize',
10,'FontWeight','b')
208 subplot(2,1,2)
209 title('DECOLLO (Configurazione corrispondente a V_A o V_B):
C_l(\eta) x c
(\eta)','FontSize',10,...
210
'FontWeight','b')
211 figure(2)
212 subplot(2,1,1)
213 title('DECOLLO (Configurazione corrispondente a V_C):
C_l(\eta)','FontSize',
10,'FontWeight','b')
214 subplot(2,1,2)
215 title('DECOLLO (Configurazione corrispondente a V_C):
C_l(\eta) x c(\eta)','FontSize',
10,'FontWeight','b')

07/07/06 4.12

C:\Documents and Settings\dedde\Desktop\MATL...\distribuzione_portanza.m

5 of 5

216 figure(3)
217 subplot(2,1,1)
218 title('DECOLLO (Configurazione corrispondente a V_D):
C_l(\eta)','FontSize',
10,'FontWeight','b')
219 subplot(2,1,2)
220 title('DECOLLO (Configurazione corrispondente a V_D):
C_l(\eta) x c(\eta)','FontSize',
10,'FontWeight','b')
221 figure(4)
222 subplot(2,1,1)
223 title('CROCIERA (Configurazione corrispondente a V_A o V_B):
C_l(\eta)','FontSize',
10,'FontWeight','b')
224 subplot(2,1,2)
225 title('CROCIERA (Configurazione corrispondente a V_A o V_B):
C_l(\eta) x c
(\eta)','FontSize',10,...
226
'FontWeight','b')
227 figure(5)
228 subplot(2,1,1)
229 title('CROCIERA (Configurazione corrispondente a V_C):
C_l(\eta)','FontSize',
10,'FontWeight','b')
230 subplot(2,1,2)
231 title('CROCIERA (Configurazione corrispondente a V_C):
C_l(\eta) x c(\eta)','FontSize',
10,...
232
'FontWeight','b')
233 figure(6)
234 subplot(2,1,1)
235 title('CROCIERA (Configurazione corrispondente a V_D):
C_l(\eta)','FontSize',
10,'FontWeight','b')
236 subplot(2,1,2)
237 title('CROCIERA (Configurazione corrispondente a V_D):
C_l(\eta) x c(\eta)','FontSize',
10,...
238
'FontWeight','b')
239 figure(7)
240 subplot(2,1,1)
241 title('ATTERRAGGIO (Configurazione corrispondente a V_A o V_B):
C_l(\eta)','FontSize',
10,'FontWeight','b')
242 subplot(2,1,2)
243 title('ATTERRAGGIO (Configurazione corrispondente a V_A o V_B):
C_l(\eta) x c
(\eta)','FontSize',10,...
244
'FontWeight','b')
245 figure(8)
246 subplot(2,1,1)
247 title('ATTERRAGGIO (Configurazione corrispondente a V_C):
C_l(\eta)','FontSize',
10,'FontWeight','b')
248 subplot(2,1,2)
249 title('ATTERRAGGIO (Configurazione corrispondente a V_C):
C_l(\eta) x c
(\eta)','FontSize',10,...
250
'FontWeight','b')
251 figure(9)
252 subplot(2,1,1)
253 title('ATTERRAGGIO (Configurazione corrispondente a V_D):
C_l(\eta)','FontSize',
10,'FontWeight','b')
254 subplot(2,1,2)
255 title('ATTERRAGGIO (Configurazione corrispondente a V_D):
C_l(\eta) x c
(\eta)','FontSize',10,...
256
'FontWeight','b')
257
258

07/07/06 4.12

C:\Documents and Settings\dedde\Desktop\MATLAB\11.An...\plot_inviluppo.m

1 of 4

1 % Plottaggio dell'inviluppo di volo


2 %
3 % La seguente funzione unisce i diagrammi di raffica e manovra per
4 % generarne l'inviluppo
5 %
6 % Input
7 % ----8 %
h : quota di volo [m]
9 %
W : Peso dell'aereo [kg]
10 %
M : Mach di volo
11 %
S : supercifie alare
12 % CLmax : coefficiente di portanza massimo
13 % CLmaxF: coefficiente di portanza massimo con flap
14 % CLmin : coefficiente di portanza minimo
15 %
conf : numero configurazione
16 %nzBup,nzCup,nzDup,nzDdo,nzCdo,nzBdo : fattori di carico
17 % EAS_B : velocit equivalente punto B
18
19
20
21 function plot_inviluppo(h, W, M, S, CLmax, CLmaxF, CLmin, conf,nzBup,nzCup,nzDup,nzDdo,
nzCdo,nzBdo,EAS_B)
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43 if conf~=2
44
45
46
47
48
49
if conf==1
50
51
52
elseif conf==3
53
54
55
end
56 end
57

07/07/06 4.12
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
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112

C:\Documents and Settings\dedde\Desktop\MATLAB\11.An...\plot_inviluppo.m

2 of 4

if h > htr

% velocit di crociera vera


% velocit di crociera equivalente
else
end

% velocit di picchiata equivalente (metodo 1)


% velocit di picchiata equivalente (metodo 2)
% velocit di picchiata equivalente

graf = plot(EAS1up,plot1up,[EASa EASd],[nz_max nz_max],...


[EASd EASd],[nz_max 0],EASdo,plotdo,[EASh EASc],[nz_min nz_min],...

set(graf,'LineWidth',1,'color','b','linestyle',':')
hold on

set(gca,'LineWidth',1,'XLim',[0 270],'YLim',[-1.5 3.5],...


'YTick',[-1.5 -1 -0.5 0 0.5 1 1.5 2 2.5 3 3.5])
plot([0 270],[0 0],'k')

if conf~=2

set(graf3,'LineWidth',1.5,'color','b','linestyle','--')
end
graf5=plot([0 EAS_B],[1 nzBup],[0 EAS_B],[1 nzBdo],[0 EASc],[1 nzCup],[0 EASc],[1 nzCdo],[0

113
114 set(gca,'LineWidth',1,'XLim',[0 270],'YLim',[-2 4],...

07/07/06 4.12
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172

C:\Documents and Settings\dedde\Desktop\MATLAB\11.An...\plot_inviluppo.m

'YTick',[-2 -1.5 -1 -0.5 0 0.5 1 1.5 2 2.5 3 3.5 4])


set(graf5,'LineWidth',1,'color','k','linestyle',':')
hold on
set(graf6,'LineWidth',1,'color','k','linestyle',':')

% Le seguenti condizioni non prendono in considerazione tutte le possibili


% forme dell'inviluppo di volo. In caso di cambiamento delle condizioni di
% volo potrebbe essere necessario aggiungerne di nuove.
%==========================================================================
if nzBup<2.5
graf = plot(EAS1up,plot1up,'r','linewidth'
else

graf = plot(EAS1up,plot1up,'r','linewidth'
end
if (nzCup>2.5)|(nzBup<2.5)

plot([EASa EASx1 EASc],[2.5 2.5 nzCup],'r','linewidth',2)


if nzDup<2.5

plot([EASc EASx2 EASd],[nzCup 2.5 2.5],'r','linewidth',2)


else
plot([EASc EASd],[nzCup nzDup],'r','linewidth',2)
end
end

if ((nzCup>2.5)&(nzBup>2.5))
plot([EAS1up(end) EASc],[plot1up(end) nzCup],'r','linewidth',2)
end
if (nzCup<2.5)
plot([EASa EASd],[2.5 2.5],'r','linewidth',2)
end
if (nzDdo>0)
else
end
plot([EASd EASd],[nzDup nzDdo1],'r','linewidth',2)
if nzCdo>-1
else
end

3 of 4

07/07/06 4.12
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196

C:\Documents and Settings\dedde\Desktop\MATLAB\11.An...\plot_inviluppo.m

if (nzCdo<-1)&(nzDdo>0)

plot([EASd EASx3 EASc EASx4],[0 nzx3 nzCdo -1],'r','linewidth',2)


elseif (nzCdo>-1)&(nzDdo<0)

plot([EASd EASx3 EASc EASdo(end)],[nzDdo nzx3 -1 plotdo(end)],'r','linewidth',2)


elseif (nzCdo<-1)&(nzDdo<0)
plot([EASd EASc EASx4 EASh],[nzDdo nzCdo -1 -1],'r','linewidth',2)
else
plot([EASd EASc EASh],[0 -1 -1],'r','linewidth',2)
end

plot(EASdo,plotdo,'r','linewidth',2)
%==========================================================================

4 of 4

07/07/06 4.12
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

C:\Documents and Settings\dedde\Desktop\MATLAB\11.Anai...\plot_manovra.m

% Plottaggio del diagramma di manovra


%
% Input
% ----%
h : quota di volo [m]
%
W : Peso dell'aereo [kg]
%
M : Mach di volo
%
S : supercifie alare
% CLmax : coefficiente di portanza massimo
% CLmaxF: coefficiente di portanza massimo con flap
% CLmin : coefficiente di portanza minimo
%
conf : numero configurazione

function [EASc,EASd,EASs1,EASa]=plot_manovra(h, W, M, S, CLmax, CLmaxF, CLmin, conf)

if conf~=2

if conf==1

elseif conf==3

end
end

if h > htr

% velocit di crociera vera

1 of 3

07/07/06 4.12

C:\Documents and Settings\dedde\Desktop\MATLAB\11.Anai...\plot_manovra.m

59
60
% velocit di crociera equivalente
61
62 else
63
64 end
65
66
67 % velocit di picchiata equivalente (metodo 1)
68
69 % velocit di picchiata equivalente (metodo 2)
70
71 % velocit di picchiata equivalente
72
73
74
75
76
77
78
79
80
81
82
83
84 graf = plot(EAS1up,plot1up,[EASa EASd],[nz_max nz_max],...
85
[EASd EASd],[nz_max 0],EASdo,plotdo,[EASh EASc],[nz_min nz_min],...
86
87
88 set(graf,'LineWidth',1.5,'color','r')
89 hold on
90
91
92 set(gca,'LineWidth',1,'XLim',[0 270],'YLim',[-2 4],...
93
'YTick',[-2 -1.5 -1 -0.5 0 0.5 1 1.5 2 2.5 3 3.5 4])
94 plot([0 270],[0 0],'k')
95 graf2 = plot([0 EASd],[1 1],[EASs1 EASs1],[0 1],...
96
97 set(graf2,'LineWidth',1,'color','k','linestyle',':')
98 text(EASc+1,0,[' V_C = ' num2str(EASc,
3)],'VerticalAlignment','top','HorizontalAlignment','left','rotation',90)
99 text(EASs1+1,0,[' V_S_1 = ' num2str(EASs1,
2)],'VerticalAlignment','top','HorizontalAlignment','left','rotation',90)
100 text(EASd+1,0,[' V_D = ' num2str(EASd,
3)],'VerticalAlignment','top','HorizontalAlignment','left','rotation',90)
101 text(EASa+1,0,[' V_A = ' num2str(EASa,
3)],'VerticalAlignment','top','HorizontalAlignment','left','rotation',90)
102
103 if conf~=2
104
105
106
107 set(graf3,'LineWidth',1.5,'color','b','linestyle','--')
108
109 set(graf4,'LineWidth',1,'color','k','linestyle',':')
110 text(EASs0+1,0,[' V_S_0 = ' num2str(EASs0,
2)],'VerticalAlignment','top','HorizontalAlignment','left','rotation',90)
111 text(EASf+1,0,[' V_F = ' num2str(EASf,

2 of 3

07/07/06 4.12

C:\Documents and Settings\dedde\Desktop\MATLAB\11.Anai...\plot_manovra.m

3)],'VerticalAlignment','top','HorizontalAlignment','left','rotation',90)
112
113 end
114

3 of 3

07/07/06 4.12

C:\Documents and Settings\dedde\Desktop\MATLAB\11.Anai...\plot_raffica.m

1 of 3

1 % Plottaggio del diagramma di raffica


2 %
3 % Input
4 % ----5 %
h : quota di volo [m]
6 %
W : Peso dell'aereo [kg]
7 %
M : Mach di volo
8 %
S : supercifie alare
9 % CLmax : coefficiente di portanza massimo
10 % CLmaxF: coefficiente di portanza massimo con flap
11 %
AR : aspect ratio
12 % sweep25: angolo di freccia al 25% della corda
13 % lambda : rapporto di rastremazione
14 % EASc,EASd,EASs1 : velocit equivalenti
15
16
17 function [nzBup,nzCup,nzDup,nzDdo,nzCdo,nzBdo,EAS_B]=plot_manovra(h, W, M, S, CLmax, AR,
sweep25, lambda,EASc,EASd,EASs1)
18
19
20
21
22
23
24
% accelerazione gravitazionale [m/s2]
25
26
27
28 % Corda media geometrica
29
30
31 % Quote connesse ai requisiti delle normative [m]
32
33
34
35 if h < h_gust1
36
% velocit equivalente di raffica per VB
% velocit equivalente di raffica per VC
37
% velocit equivalente di raffica per VD
38
39 elseif h > h_gust1 & h < h_gust2
40
% velocit equivalente di raffica per VB
41
42
43
44
% velocit equivalente di raffica per VC
45
46
47
48
% velocit equivalente di raffica per VD
49
50
51
52 end
53
54 % Parametro CLalfa (formula empirica da Torenbeek)
55
56
% fattore di comprimibilit
57

07/07/06 4.12
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
85
86
87
88
89
90
91
92

C:\Documents and Settings\dedde\Desktop\MATLAB\11.Anai...\plot_raffica.m

2 of 3

% Rapporto di massa del velivolo

% Fattore di attenuazione della raffica

%
%
%
%
%
%
%
%

VELOCITA' DI MASSIMA INTENSITA' DELLA RAFFICA


--------------------------------------------La velocit di massima intensit della raffica la minima tra:
- velocit data dall'intersezione tra la curva di stallo a flaps retratti
e la linea rappresentante la 'rough air gust velocity'
- Vs1*sqrt(nG_C) dove Vs1 la velocit di stallo a flaps retratti e nG_C
il fattore di carico dovuto alla raffica per la velocit VC
Intersezione tra curva di stallo e linea della 'rough air gust velocity'

% Vs1*sqrt(nG_C)

% FATTORI DI CARICO DI RAFFICA


% ---------------------------% punto B'
% punto C'
% punto D'
% punto E'
% punto F'
% punto G'
graf1=plot([0 EAS_B],[1 nzBup],[0 EAS_B],[1 nzBdo],[0 EASc],[1 nzCup],[0 EASc],[1 nzCdo],[0

93
94 set(gca,'LineWidth',1,'XLim',[0 270],'YLim',[-2 4],...
95
'YTick',[-2 -1.5 -1 -0.5 0 0.5 1 1.5 2 2.5 3 3.5 4])
96 set(graf1,'LineWidth',1,'color','k','linestyle','-')
97 hold on
98
99
100 plot([0 270],[1 1],'k','linestyle','-.')
101
102 plot([EAS_B EAS_B],[nzBup nzBdo],'k','linestyle',':')
103
104 %plot([EASc 0],[nzCup nzCup],'k','linestyle',':')
105 %plot([EASd 0],[nzDup nzDup],'k','linestyle',':')
106 text(EAS_B+1,1,[' V_B = ' num2str(EAS_B,
3)],'VerticalAlignment','middle','HorizontalAlignment','left','rotation',90)
107 text(EAS_B,nzBup,[' nz = ' num2str(nzBup,
3)],'VerticalAlignment','bottom','HorizontalAlignment','right')
108 text(EASc,nzCup,[' nz = ' num2str(nzCup,
3)],'VerticalAlignment','top','HorizontalAlignment','right')
109 text(EASd,nzDup,[' nz = ' num2str(nzDup,
3)],'VerticalAlignment','bottom','HorizontalAlignment','right')
110

07/07/06 4.12

C:\Documents and Settings\dedde\Desktop\MATLAB\11.Anai...\plot_raffica.m

3 of 3

07/07/06 4.12

C:\Documents and Settings\dedde\Desktop\MATLAB\11.Anai...\q_carburante.m

1 of 3

1 % Carico distrubuito dovuto al carburante


2 % --------------------------------------3 %
4 % [eta_fuel,q_fuel] = q_carburante(b, bK, etaR, t_cR, t_cK, t_cT, cR, cK, cT, lambdaN)
5 %
6 % Input
7 % ----8 %
b: apertura alare [m]
9 %
bK: apertura alare al kink [m]
10 %
etaR: coordinata adimensionalizzata del root rispetto all'asse della
11 %
fusoliera
12 %
t_cR: spessore percentuale del profilo alare al root
13 %
t_cK: spessore percentuale del profilo alare al kink
14 %
t_cT: spessore percentuale del profilo alare al tip
15 %
cR: corda al root [m]
16 %
cK: corda al kink [m]
17 %
cT: corda al tip [m]
18 % lambdaN: rapporto di rastremazione cT/cRn
19 %
20 % Output
21 % -----22 % eta_fuel : ascissa curvilinea
23 %
q_fuel : carico distribuito
24
25
26 function [eta_fuel,q_fuel] = q_carburante(b, bK, etaR, t_cR, t_cK, t_cT, cR, cK, cT,
lambdaN)
27
28
29 %PARAMETRI DIMENSIONALI PER I SERBATOI xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx%
%Rapporto tra corda-serbatoio al K e corda al K [0.47,0.5] %
30
31
%Rapporto tra corda-serbatoio al R e corda cRn [0.47,0.5] %
32
%Rapporto tra ordinata TipTank e ordinata Tip [0.76,0.82] %
33 %xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx%
34
35 % Posizioni delle varie sezioni dell'ala rispetto all'asse della fusoliera%
36
% 2 x distanza CL-T [m]
%
% 2 x distanza CL-K [m]
%
37
% 2 x distanza CL-R [m]
%
38
39
% 2 x distanza CL-TT [m]
%
40
%
41 % Posizione relative tra le varie sezioni dell'ala
%
42
% distanza R-K [m]
%
% distanza R-T [m]
%
43
% distanza TT-R [m]
%
44
45
% distanza T-K [m]
%
% distanza TT-K [m]
%
46
47 %-------------------------------------------------------------------------%
48
49
50
51 % Corde e bordi del cassone alare ----------------------------------%
52 % Corda al tip tank
%
53
%
54 % Corda al root per l'ala trapezia
%
%
55
56
%
57 % Corde del cassone alare
%

07/07/06 4.12
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
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105

C:\Documents and Settings\dedde\Desktop\MATLAB\11.Anai...\q_carburante.m

2 of 3

% root
% kink
% tip

%
%
%
% tip tank
%
%
% Bordi di attacco e di uscita delle varie sezioni del cassone
%
% Kink
%
%
%
% Tip
%
%
%
% Root
%
%
%
% Tip tank
%
%
%
%-------------------------------------------------------------------%
% Propriet dei profili alari --------------------------------------------%
%
% Profilo al root
%
root_sect_id = './airfoil_data/sc_root.dat'
%
%
% Profilo al kink
%
kink_sect_id = './airfoil_data/sc_kink.dat'
%
%
% Profilo al tip
%
tip_sect_id = './airfoil_data/sc_tip.dat'
%
%
%
%
% distanza percentuale del Tip Tank
%
%
for i=1:m
%
% Calcolo della geometria del profilo al TT
%
%
%
%
% Profilo alla radice dimensionato (c = cR)
%
%
%
%
end
%
%-------------------------------------------------------------------------%

[eta_fuelIN,q_fuelIN] = q_fuel_rel(cR, cK, root_sect, kink_sect, xtLE_R, xtLE_K, xtTE_R,

106
107 [eta_fuelOUT,q_fuelOUT] = q_fuel_rel(cK, cTT, kink_sect, tiptank_sect, xtLE_K, xtLE_TT,
108
109
110
111 eta_fuel1 = [eta_fuelIN*dRK*2/(b),(eta_fuelOUT(2:end)*dKTT*2/b + eta_fuelIN(end)*dRK*2/b)]
112 %

07/07/06 4.12

C:\Documents and Settings\dedde\Desktop\MATLAB\11.Anai...\q_carburante.m

113 %eta_fuelIN(1)
114 %eta_fuel1(1)
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129

3 of 3

07/07/06 4.12
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

%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%

C:\Documents and Settings\dedde\Desktop\MATLAB\11.Anaisi...\q_fuel_rel.m

1 of 2

Carico distribuito dovuto al carburante di un ala trapezia


--------------------------------------------------------La funzione calcola il volume dei serbatoi all'interno di un ala trapezia
integrando la funzione ndsa (rapporto tra superficie e corda al quadrato)
lungo l'apertura alare
[eta_fuel,q_fuel] = q_fuel_rel(c1, c2, sect1, sect2, xLE1, xLE2, xTE1, xTE2, m)
Input
----L:
c1:
c2:
sect1:
sect2:
xLE1:
xLE2:
xTE1:
xTE2:
m:

lunghezza della parte di ala considerata (da una sezione ad un'altra) [m]
corda all'estremit iniziale [m]
corda all'estremit finale [m]
propriet del profilo alare che si trova all'estremit iniziale
propriet del profilo alare che si trova all'estremit finale
posizione del bordo di attacco del cassone nel profilo maggiore
posizione del bordo di attacco del cassone nel profilo minore
posizione del bordo di uscita del cassone nel profilo maggiore
posizione del bordo di uscita del cassone nel profilo minore
numero dei punti in cui si valuta il contorno del profilo

Output
-----eta_fuel : ascissa curvilinea
q_fuel : carico distribuito

function [eta_fuel,q_fuel] = q_fuel_rel(c1, c2, sect1, sect2, xLE1, xLE2, xTE1, xTE2, m)
global g
%xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx%
%TESTER
%

%xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx%
% Discretizzazione ala
% numero di tratti in cui viene suddivisa l'ala
% coordinata adimensionale del profilo lungo l'apertura dell'ala

% Andamento delle corde dei profili intermedi

% Calcolo di ndsa
for j=1:n
for i=1:m

07/07/06 4.12
58
59
60
end
61
62
63
64 end
65
66
67
68
69

C:\Documents and Settings\dedde\Desktop\MATLAB\11.Anaisi...\q_fuel_rel.m

% NOTA. Solo il 95% del volume del


% cassone viene occupatodal carburante

2 of 2

07/07/06 4.12

C:\Documents and Settings\dedde\Desktop\MATLAB\11.Anaisi...\q_portanza.m

1 of 2

1 % Distribuzione di portanza
2 % ------------------------3 %
4 % Questa funzione fornisce gli input a diederich per il calcolo della
5 % portanza.
6 %
7 % Input
8 % ----9 %
W : peso [kg]
10 %
nz : fattore di carico
11 %
EAS : velocit equivalente [m/s]
12 %
b : apertura alare [m]
13 %
bK: apertura al kink [m]
14 %
etaR: posizione della radice dell'ala
15 %
cCL: corda sull'asse di fusoliera
16 %
cR: corda di radice
17 %
cK: corda al kink
18 %
cT: corda al tip
19 % sweepLE : angolo di freccia al bordo di attacco
20 %
M : mach di volo
21 %
S :superficie di riferimento
22 %
23 % Output
24 % -----25 %
eta_fuel : ascissa curvilinea
26 %
q_fuel : carico distribuito
27
28 function [eta_lift,q_lift,sweep50e] = q_portanza(W, nz, EAS, b, bK, etaR, cCL, cR,...
29
cK, cT, sweepLE,M,S)
30
31 % Densit dell'aria s.l.m.
32
33
34 % Calcolo dell'ala trapezia equivalente
35 % ------------------------------------36 [S_e, cRe, cCLe, lambda_e, AR_e, sweep25e, sweepLEe, sweepTEe, sweep50e, mac_e, meanc_e] =
...
37
38
39
% coefficiente di portanza del velivolo
% coefficiente di portanza dell'ala
40
41
42
43 % CALCOLO DELLA DISTRIBUZIONE DI PORTANZA IN ALA
44 % ==============================================
45 % Geometria dell'ala trapezia equivalente
46
47
48
49
50 % Svergolamento alare (tip nose down) [deg]
51
52 % Distribuzione di svergolamento
53 twist_law = 'quadratic'
54 % Pendenza teorica della curva di portanza dell'ala
55
56 % Pendenza teorica della curva di portanza del profilo alare
57

07/07/06 4.12

C:\Documents and Settings\dedde\Desktop\MATLAB\11.Anaisi...\q_portanza.m

58
59 [eta_lift, Clxc, Cl, Claxc, Cla, Clbxc, Clb] = ...
60
61
62

2 of 2

07/07/06 4.13
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

%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%

C:\Documents and Settings\dedde\Desktop\MATLAB\11.Ana...\q_strutturale.m

Carico distibuito dovuto alla struttura alare


---------------------------------------------

[eta_struct,q_struct] = q_strutturale(cR, cK, cT, Ww, S,

dCLR, dRK, dKT, b)

Input
----cR : corda di radice
cK : corda al kink
cT : corda al tip
Ww : peso gruppo ala
S : superficie alare
dCLR : distanza asse fusoliera - radice
dRK : distanza radice kink
dKT : distanza kink tip
b : apertura alare
Output
-----eta_fuel : ascissa curvilinea
q_fuel : carico distribuito

function [eta_struct,q_struct] = q_strutturale(cR, cK, cT, Ww, S,

% Discretizzazione ala
% numero di tratti in cui viene suddivisa l'ala
% coordinata adimensionale del profilo lungo l'apertura dell'ala

% Andamento delle corde dei profili intermedi

dCLR, dRK, dKT, b)

1 of 1

07/07/06 4.13

C:\Documents and Settings\dedde\Desktop\MATLAB\11.Anaisi dei ca...\Ude.m

1 of 2

1 % Intensit di raffica
2 % -------------------3 %
4 % Il programma plotta l'andamento dell'intensita di raffica al variare
5 % della quota per le velocit di volo VB VC e VD
6
7 clear all
8 clc
9
10
11 % Dati
12 % ---13 % Quote connesse ai requisiti delle normative
14
15
16
17 % Quota
18
19
20 % Velocit derivate di raffica [ft/s]
21 % -----------------------------------------------------22 % Le velocit di raffica Ude equivalente sono espresse in termini di velocit equivalente e
fanno
23 % riferimento a una precisa velocit V
24
25
26
27 for j = 1:length(h_span)
28
% quota
29
30
if h <= h_gust1
31
% velocit equivalente di raffica per VB
32
% velocit equivalente di raffica per VC
33
% velocit equivalente di raffica per VD
34
elseif h > h_gust1 & h <= h_gust2
35
% velocit equivalente di raffica per VB
36
37
38
39
% velocit equivalente di raffica per VC
40
41
42
43
% velocit equivalente di raffica per VD
44
45
46
47
end
48
% Memorizzazione dei risultati
49
50
51
52 end
53
54 % PLOTTAGGIO DEI RISULTATI
55 % -----------------------56 figure(1)
57 plot(Ude_B_memo,h_span,Ude_C_memo,h_span,'r',Ude_D_memo,h_span,'g','LineWidth',2)

07/07/06 4.13

C:\Documents and Settings\dedde\Desktop\MATLAB\11.Anaisi dei ca...\Ude.m

2 of 2

58 box on
59 title('Intensit di Raffica','FontSize',12,'FontWeight','b')
60 xlabel('Velocit di raffica
Ude [ft/s]','FontSize',12,'FontWeight','b')
61 ylabel('h
[ft]','FontSize',12,'FontWeight','b')
62 set(gca,'XTick',[0 12.5 25 38 50 66],'XTickLabel',[0 12.5 25 38 50 66],...
63
'YTick',[0 1e4 2e4 3e4 4e4 5e4],'YTickLabel',[0 1e4 2e4 3e4 4e4 5e4],'LineWidth',1)
64
65 text(20,3.5e4,'U_d_e @ V_B','Color','g','FontSize',
12,'VerticalAlignment','bottom','FontWeight','b','rotation',-66)
66 text(39,3.5e4,'U_d_e @ V_B','Color','r','FontSize',
12,'VerticalAlignment','bottom','FontWeight','b','rotation',-48)
67 text(53,3.5e4,'U_d_e @ V_B','Color','b','FontSize',
12,'VerticalAlignment','bottom','FontWeight','b','rotation',-45)
68
69 grid

07/07/06 4.13
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

%
%
%
%
%

C:\Documents and Settings\dedde\Desktop\MATLAB\11.Anaisi dei ...\Vc_Vd.m

Vc e Vd al variare della quota


----------------------------Il programma plotta l'andamento di delle velocit di crociera e
piacchiata e dei relativi numeri di mach in funzione della quota

clear all
clc
% Dati -------------------------------------------------------------------% Fattori di conversione
% Numero di Mach di crociera
% Densit dell'aria s.l.m.
% Quota di transizione per VC e VD: 20000 ft

%-------------------------------------------------------------------------%
%
%
%
%

VELOCITA' DI CROCIERA VC IN FUNZIONE DELLA QUOTA


-----------------------------------------------20000 ft < h < 50000 ft
In questo intervallo di quota la velocit equivalente di crociera si
calcola mantenendo il numero di mach costante al variare della quota

for
% quota
% atmosfera standard
% numero di mach
% velocit di crociera vera
% velocit di crociera equivalente
EASc = Vc*sqrt(rho/rho0)

end
%
%
%
%
%
%

0 ft < h < 20000 ft


In questo intervallo di quota la velocit equivalente di crociera si
calcola supponendo che la pressione dinamica sia costante e quindi che
la velocit equivalente sia costante. Il valore che assume quello in
corrispondenza della quota critica: 20000 ft
quota

% velocit di crociera equivalente

1 of 2

07/07/06 4.13

C:\Documents and Settings\dedde\Desktop\MATLAB\11.Anaisi dei ...\Vc_Vd.m

2 of 2

59
60
61
62
63
64 % VELOCITA' DI PICCHIATA VD
65 % ------------------------66 % Il valore della velocit di picchiata equivalente dato dal minimo tra:
67 % 1. velocit equivalente calcolata sulla base di un numero di mach pari a:
68 %
MD = MC*(1 + 0.07)
69 % 2. 1.25 volte la velocit equivalente di crociera corrispondente alla quota critica di
20000 ft
70
71
72 for j = 1:length(hd)
73
% quota
74
75
% atmosfera standard
76
77
% mach di picchiata
78
79
% velocit di picchiata equivalente (metodo 1)
80
81
% velocit di picchiata equivalente (metodo 2)
82
83
% velocit di picchiata equivalente
84
85
86
87
88 end
89
90 % PLOTTAGGIO DEI RISULTATI
91 % -----------------------92 figure(1)
93 plot(EASch,hc,EASdh,hd,'r')
94
95 set(hh,'Linestyle','-.','color','g')
96 hold on
97 axis([80 250 0 16e3])
98 title('Velocit di crociera e Velocit di picchiata','FontSize',12,'FontWeight','b')
99 xlabel('EAS
[m/s]','FontSize',12,'FontWeight','b')
100 ylabel('h
[m]','FontSize',12,'FontWeight','b')
101 hleg = legend('V_C','V_D'
102 set(hleg,'FontSize',12,'FontWeight','b')
103 figure(2)
104 plot(Mcv,hc,Mdv,hd,'r')
105 title('Mach di crociera e Mach di picchiata','FontSize',12,'FontWeight','b')
106 xlabel('M','FontSize',12,'FontWeight','b')
107 ylabel('h
[m]','FontSize',12,'FontWeight','b')
108 hleg = legend('M_C','M_D'
109 set(hleg,'FontSize',12,'FontWeight','b')
110
111 set(hh,'Linestyle','-.','color','g')

C12

Progetto di Costruzioni Aeronautiche

07/07/06 4.14
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

C:\Documents and Settings\dedde\Desktop\MATLAB\12....\Pannello_dorsale.m

% Plottaggio correnti
% ------------------%
% Il programma fornisce gli input alla funzione di plottaggio dei pannelli
clc
clear all
global ft2m nm2m lb2kg g d2r r2d in2m
% Costanti & fattori di conversione
%..........................................................................
% 1 ft = 0.3048 m
% 1 n.m. = 1852 m
% 1 lb = 0.45359237 kg
% accelerazione gravitazionale [m/s2]
% fattore di conversione deg --> rad
% fattore di conversione rad --> deg
% 1 in = 0.0254 m
%..........................................................................
load './config/config.mat'

iM=3,iAR=3,it_c=3,iKS=8

[cs50, cs60, t50, t60] = ...


cassone(b, bK, etaR, t_cR, t_cK, t_cT, cR, cK, cT, lambdaN)

% Momento flettente estremo nelle sezioni al 50% e al 60% dell'apertura alare

hb50 = 0.85*t50
hb60 = 0.85*t60

% SCELTA DEL MATERIALE: 7075-T6 Bare-Sheet


% ---------------------------------------% modulo di Young
% Coefficiente n

1 of 3

07/07/06 4.14
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
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
...
108
109
110
111
112
113
114
115

C:\Documents and Settings\dedde\Desktop\MATLAB\12....\Pannello_dorsale.m

2 of 3

% Tensione in corrispondenza di Es=0.7 [MPa]

c1 = menu({'Scegliere il tipo di irrigidimento'},'Corrente a Z','Corrente integrale I'


c2 = menu({'Scegliere una sezione'},'sezione al 50%','sezione al 60%'
if c1==0
error('Nessun corrente selezionato')
break
else
if c2==0
error('Nessuna sezione selezionata')
break
end
end

if
else
end
if

sezione='50%'
else

sezione='60%'
end

% Caratteristiche del pannello irrigidito ad alfa massimo


[N, sigma, t, ts, b, h, d, zCG, peso] = ...

% Caratteristiche del pannello irrigidito a b costante


[As_bt_b, ts_t_b, alfa_b, N_b, sigma_b, t_b, ts_b, h_b, d_b, zCG_b, As_b, A_b, peso_b] =
pannello_b_cost(E, sigma07, n, Mextr, hb, cs, Lbaia, b_cost, tipo_corrente)

plot_pannello(t, ts, b, h, d, zCG, tipo_corrente,peso,sigma)


xlabel('mm','FontSize',12,'FontWeight','b')
ylabel('mm','FontSize',12,'FontWeight','b')
title(['\alpha = \alpha_m_a_x sezione al ',sezione],'FontSize',14,'FontWeight','b')

07/07/06 4.14
116
117
118
119
120
121
122
123
124
125
126
127

C:\Documents and Settings\dedde\Desktop\MATLAB\12....\Pannello_dorsale.m

plot_pannello(t_b, ts_b, b_cost*1000, h_b, d_b, zCG_b, tipo_corrente,peso_b,sigma_b)


xlabel('mm','FontSize',12,'FontWeight','b')
ylabel('mm','FontSize',12,'FontWeight','b')
title(['b = cost sezione al ',sezione],'FontSize',14,'FontWeight','b')

disp(sprintf('

delta_peso:

%1.3f', delta_peso))

3 of 3

07/07/06 4.14
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

%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%

C:\Documents and Settings\dedde\Desktop\MATLAB\12.Pannello ...\cassone.m

Dimensioni del cassone


---------------------[cs50, cs60, t50, t60] = ...
cassone(b, bK, etaR, t_cR, t_cK, t_cT, cR, cK, cT, lambdaN)
Input
----b: apertura alare [m]
bK: apertura alare al kink [m]
etaR: coordinata adimensionalizzata del root rispetto all'asse della
fusoliera
t_cR: spessore percentuale del profilo alare al root
t_cK: spessore percentuale del profilo alare al kink
t_cT: spessore percentuale del profilo alare al tip
cR: corda al root [m]
cK: corda al kink [m]
cT: corda al tip [m]
lambdaN: rapporto di rastremazione cT/cRn
Output
-----cs50:
cs60:
t50:
t60:

larghezza cassone
larghezza cassone
altezza max cassone
altezza max cassone

sez
sez
sez
sez

al
al
al
al

50%
60%
50%
60%

function [cs50, cs60, t50, t60] = ...


cassone(b, bK, etaR, t_cR, t_cK, t_cT, cR, cK, cT, lambdaN)

%PARAMETRI DIMENSIONALI PER I SERBATOI xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx%


%Rapporto tra corda-serbatoio al K e corda al K [0.47,0.5] %
%Rapporto tra corda-serbatoio al R e corda cRn [0.47,0.5] %
%Rapporto tra ordinata TipTank e ordinata Tip [0.76,0.82] %
%xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx%
% Posizioni delle varie sezioni
% 2 x distanza
% 2 x distanza
% 2 x distanza
% 2 x distanza

dell'ala rispetto all'asse della fusoliera%


CL-T [m]
%
CL-K [m]
%
CL-R [m]
%
CL-TT [m]
%
%
% Posizione relative tra le varie sezioni dell'ala
%
% distanza R-K [m]
%
% distanza R-T [m]
%
% distanza TT-R [m]
%
% distanza T-K [m]
%
% distanza TT-K [m]
%
%-------------------------------------------------------------------------%
% Corde e bordi del cassone alare ----------------------------------%
% Corda al tip tank
%
%
% Corda al root per l'ala trapezia
%
%
%
% Corde del cassone alare
%

1 of 2

07/07/06 4.14
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
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102

C:\Documents and Settings\dedde\Desktop\MATLAB\12.Pannello ...\cassone.m


% root
% kink
% tip

%
%
%
% tip tank
%
%-------------------------------------------------------------------%

% corda al 50% dell'apertura alare


if y50 <= yK
% corda alare
% corda cassone
else
% corda alare
% corda cassone
end
% corda al 60% dell'apertura alare
if y60 <= yK
% corda alare
% corda cassone
else
% corda alare
% corda cassone
end
% SPESSORE DEL PROFILO
% -------------------% spessore percentuale t/c al 50% dell'apertura alare
if y50 <= yK
else
end

% spessore percentuale t/c al 60% dell'apertura alare


if y60 <= yK
else
end

2 of 2

07/07/06 4.14
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21

%
%
%
%
%
%
%
%
%
%
%

C:\Documents and Settings\dedde\Desktop\MATLAB\12.Panne...\K_integrale.m

1 of 3

Coefficiente di instabilit locale in per correnti a I


-----------------------------------------------------Input
----ts_t:
h_b:

parametro adimensionale ts/t


parametro adimensionale h/b

Output
-----K: coefficiente di instabilit locale corrispondente ai valori di h/b e ts/t

function [K] = K_integrale(h_b,ts_t)

% Vettore di valori di H/B (colonne nella matrice dei valori di K/K0)

% Vettore di valori di TS/T (righe nella matrice dei valori di K/K0)


TS_T = [0.5 0.6 0.7 0.8 0.9 1 1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8 1.9 2 2.1 2.2 2.3 2.4 2.5 2.6

22
23 % K0 (Coefficiente di instabilit locale di una piastra semplicemente appoggiata su tutti i
lati)
24
25
26 % Matrice dei valori dei coefficienti di instabilit locale K adimensionalizzati con K0
27 %
---- H_B -->
28 %
|
29 % TS_T
30 %
|
31 %
v
32
33 K_K0 = [0.991436464 0.967127072 0.851657459 0.625414365 0.478729282 0.378176796 0.306353591
0.253314917 0.212707182 0.181491713 0.156629834 0.136464088 0.119889503 0.106353591 0.094751381
0.085082873 0.077071823 0.063535912 0.05359116
34
1
0.979834254 0.936464088 0.834530387 0.657734807 0.522651934 0.424861878
0.351933702 0.29640884 0.252762431 0.218508287 0.190607735 0.167679558 0.148618785 0.132872928
0.119337017 0.10801105 0.089502762 0.075414365
35
1.012707182 0.99558011 0.961325967 0.897237569 0.78839779 0.656353591 0.542541436
0.453314917 0.383701657 0.328729282 0.284530387 0.248618785 0.219337017 0.194751381 0.174309392
0.156629834 0.141712707 0.117679558 0.099171271
36
1.030110497 1.015745856 0.987292818 0.937569061 0.858287293 0.753314917 0.644198895
0.547790055 0.468508287 0.404143646 0.351381215 0.308287293 0.272651934 0.24281768 0.217403315
0.195856354 0.177624309 0.147790055 0.124861878
37
1.052209945 1.041436464 1.017679558 0.976243094 0.912154696 0.825138122 0.72679558
0.63121547 0.547237569 0.476243094 0.416850829 0.367403315 0.325966851 0.290883978 0.261325967
0.235911602 0.214088398 0.178453039 0.151381215
38
1.079281768 1.072928177 1.05359116 1.01878453 0.964088398 0.888674033 0.798895028
0.706353591 0.620165746 0.544751381 0.479834254 0.424861878 0.378453039 0.338950276 0.304972376
0.275966851 0.250828729 0.209944751 0.178176796
39
1.111325967 1.109668508 1.095303867 1.066022099 1.019060773 0.951657459 0.867955801
0.777624309 0.690055249 0.610773481 0.541436464 0.481491713 0.43038674 0.386464088 0.348618785
0.316022099 0.287845304 0.241436464 0.205524862
40
1.147513812 1.151104972 1.14198895 1.11878453 1.078453039 1.017955801 0.93839779
0.849171271 0.759668508 0.676519337 0.602486188 0.538121547 0.482320442 0.433977901 0.392541436
0.356353591 0.324861878 0.27320442 0.232872928

07/07/06 4.14

C:\Documents and Settings\dedde\Desktop\MATLAB\12.Panne...\K_integrale.m

2 of 3

41
1.187569061 1.19640884 1.192541436 1.175690608 1.142541436 1.08839779 1.012707182
0.92320442 0.830939227 0.743646409 0.664640884 0.595303867 0.53480663 0.482320442 0.436740331
0.396961326 0.362430939 0.305248619 0.260773481
42
1.229834254 1.243922652 1.24558011 1.235359116 1.210220994 1.163812155 1.091712707
1.001381215 0.905524862 0.812983425 0.728729282 0.654143646 0.588674033 0.531491713 0.481767956
0.43839779 0.400552486 0.338121547 0.288950276
43
1.273756906 1.292541436 1.299171271 1.295303867 1.279005525 1.24281768 1.176243094
1.08480663 0.984254144 0.885911602 0.79558011 0.714917127 0.644198895 0.582320442 0.528453039
0.48121547 0.439779006 0.371546961 0.317955801
44
1.317679558 1.340055249 1.351104972 1.353038674 1.34558011 1.322651934 1.265469613
1.173480663 1.067679558 0.962707182 0.865469613 0.778729282 0.701933702 0.635082873 0.576519337
0.525138122 0.48038674 0.405801105 0.347513812
45
1.360220994 1.385359116 1.399171271 1.405524862 1.405248619 1.396685083 1.358563536
1.267679558 1.156077348 1.043646409 0.938950276 0.845027624 0.762430939 0.689779006 0.626243094
0.570718232 0.522099448 0.441436464 0.378176796
46
1.400552486 1.42679558 1.442541436 1.451657459 1.455801105 1.456077348 1.448618785
1.367679558 1.249723757 1.129005525 1.016298343 0.914917127 0.825414365 0.746961326 0.678176796
0.618232044 0.565469613 0.478176796 0.409668508
47
1.437845304 1.464364641 1.480662983 1.490883978 1.497237569 1.501104972 1.503038674
1.472651934 1.348618785 1.219060773 1.097237569 0.987845304 0.891160221 0.806353591 0.732320442
0.667403315 0.610497238 0.516298343 0.442265193
48
1.471546961 1.497237569 1.513535912 1.524033149 1.53121547 1.536464088 1.540055249
1.54281768 1.453038674 1.313812155 1.182596685 1.064364641 0.959944751 0.868508287 0.788674033
0.71878453 0.657458564 0.555801105 0.475966851
49
1.501381215 1.525966851 1.541712707 1.551933702 1.559392265 1.564640884 1.56878453
1.571823204 1.562983425 1.413259669 1.271823204 1.144198895 1.031767956 0.933149171 0.847237569
0.771823204 0.705801105 0.596685083 0.510773481
50
1.527900552 1.551104972 1.565745856 1.575690608 1.582596685 1.587569061 1.591712707
1.594751381 1.597237569 1.517403315 1.364917127 1.227900552 1.106629834 1.000828729 0.908287293
0.827348066 0.756353591 0.638950276 0.546961326
51
1.551104972 1.572651934 1.586187845 1.59558011 1.601933702 1.606906077 1.610497238
1.613259669 1.615469613 1.617403315 1.462430939 1.314917127 1.18480663 1.070994475 0.971546961
0.88480663 0.808839779 0.682872928 0.584254144
52
1.571546961 1.591436464 1.603867403 1.612430939 1.618508287 1.622651934 1.625966851
1.628729282 1.630662983 1.632320442 1.564088398 1.405524862 1.265745856 1.143922652 1.037292818
0.944475138 0.862983425 0.728453039 0.622928177
53
1.589226519 1.607458564 1.619060773 1.62679558 1.632320442 1.636187845 1.639226519
1.641712707 1.643370166 1.644751381 1.645856354 1.5
1.350276243 1.21961326 1.105524862
1.006353591 0.919337017 0.775690608 0.662983425
54
1.604696133 1.621546961 1.632320442 1.639226519 1.644198895 1.647790055 1.650552486
1.652486188 1.654143646 1.655248619 1.656353591 1.597790055 1.437569061 1.298066298 1.176519337
1.070441989 0.977624309 0.824309392 0.70441989
55
1.618232044 1.633701657 1.643370166 1.65
1.65441989 1.657734807 1.660220994
1.661878453 1.663259669 1.664364641 1.66519337 1.665745856 1.528453039 1.379281768 1.249723757
1.136464088 1.037845304 0.874861878 0.747237569
56
1.63038674 1.644475138 1.653314917 1.659116022 1.663259669 1.666298343 1.668508287
1.670165746 1.671270718 1.672099448 1.672928177 1.673480663 1.622375691 1.463535912 1.325414365
1.205248619 1.1
0.92679558 0.791436464
57
1.640883978 1.653867403 1.661878453 1.667127072 1.670994475 1.673756906 1.675690608
1.677071823 1.678176796 1.679005525 1.679558011 1.680110497 1.68038674 1.550552486 1.40359116
1.275966851 1.164364641 0.98038674 0.836740331
58
1.65
1.661878453 1.669337017 1.674309392 1.677624309 1.680110497 1.681767956
1.683149171 1.684254144 1.68480663 1.685359116 1.685911602 1.686187845 1.640331492 1.484530387
59
60
61 % Selezione dei parametri che definiscono il coefficiente d'instabilit locale per la
geometria assegnata

07/07/06 4.14

C:\Documents and Settings\dedde\Desktop\MATLAB\12.Panne...\K_integrale.m

62
63
64
65
66
67
68 % rapporto K/K0
69
70 % coefficiente correttivo d'instabilit locale
71

3 of 3

07/07/06 4.14
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20

%
%
%
%
%
%
%
%
%
%
%
%

C:\Documents and Settings\dedde\Desktop\MATLAB\12.Pannello d...\K_zeta.m

1 of 3

Coefficiente di instabilit locale in per correnti a Z


-----------------------------------------------------Input
----ts_t:
h_b:

parametro adimensionale ts/t


parametro adimensionale h/b

Output
-----K: coefficiente di instabilit locale corrispondente ai valori di h/b
e ts/t

function [K] = K_zeta(h_b,ts_t)


% Valore assegnato di F/H

% Vettore di valori di H/B (colonne nella matrice dei valori di K/K0)


H_B = [0.2 0.25 0.3 0.35 0.4 0.45 0.5 0.55 0.6 0.65 0.7 0.75 0.8 0.85 0.9 0.95 1 1.05 1.1

21
22 % Vettore di valori di TS/T (righe nella matrice dei valori di K/K0)
23 TS_T = [0.5 0.6 0.7 0.8 0.85 0.9 0.95 1 1.05 1.1 1.15 1.2 1.25 1.3 1.4 1.5 1.6 1.7 1.8 1.9 2
24
25 % Coefficiente di instabilit locale di una piastra semplicemente appoggiata su tutti i
lati)
26
27
28 % Matrice dei valori dei coefficienti di instabilit locale K adimensionalizzati con K0
29 %
---- H_B -->
30 %
|
31 % TS_T
32 %
|
33 %
v
34
35 K_K0 = [1.087569061
1.073756906
1.063535912
1.054696133
1.046132597
1.036740331
1.025138122
1.008839779
0.944475138
0.804696133
0.693922652
0.60441989
0.53121547
0.470718232
0.419889503
0.37679558
0.340055249
0.308287293
0.280939227
0.25718232
0.236187845
36
1.139226519
1.120165746
1.106353591
1.095027624
1.084530387
1.074033149
1.062430939
1.048618785
1.03038674
1.003038674
0.954972376
0.849447514
0.748895028
0.664640884
0.593370166
0.533149171
0.481491713
0.437016575
0.398342541
0.365469613
0.335082873
37
1.198066298
1.174861878
1.157734807
1.143922652
1.132044199
1.120441989
1.108839779
1.09558011
1.080110497
1.060220994
1.033149171
0.994198895
0.936187845
0.858287293
0.77679558
0.702486188
0.636740331
0.579558011
0.529281768
0.485359116
0.44640884
38
1.259668508
1.233701657
1.214364641
1.199171271
1.186187845
1.174309392
1.162430939
1.149723757
1.135635359
1.119060773
1.098618785
1.071823204
1.036187845
0.98839779
0.928176796
0.859944751
0.790883978
0.725966851
0.666850829
0.613812155
0.566022099
39
1.290607735
1.263535912
1.243646409
1.228176796
1.214917127
1.202762431
1.191160221
1.179005525
1.165745856
1.150276243
1.131767956
1.108287293
1.078176796
1.038674033
0.987845304
0.927624309
0.862154696
0.796961326
0.735635359
0.679005525
0.627900552
40
1.320441989
1.293093923
1.272928177
1.25718232
1.243922652

07/07/06 4.14

C:\Documents and Settings\dedde\Desktop\MATLAB\12.Pannello d...\K_zeta.m

2 of 3

1.232044199
1.220718232
1.209116022
1.19640884
1.182320442
1.165469613
1.144751381
1.11878453
1.085082873
1.04198895
0.989226519
0.929005525
0.865745856
0.803314917
0.744475138
0.690331492
41
1.349723757
1.322099448
1.301933702
1.286187845
1.272928177
1.261325967
1.250552486
1.239502762
1.227624309
1.214640884
1.199447514
1.18121547
1.158563536
1.129834254
1.09281768
1.046685083
0.99198895
0.931767956
0.870165746
0.809944751
0.753314917
42
1.377348066
1.350276243
1.330110497
1.314640884
1.301657459
1.290607735
1.280110497
1.269889503
1.258839779
1.246961326
1.233425414
1.217403315
1.197790055
1.172928177
1.141436464
1.101104972
1.052209945
0.995856354
0.935635359
0.875138122
0.816850829
43
1.403867403
1.377071823
1.357458564
1.342265193
1.329834254
1.319337017
1.309392265
1.299723757
1.289779006
1.279281768
1.267127072
1.253038674
1.236187845
1.214917127
1.188121547
1.15359116
1.110220994
1.058287293
1.000552486
0.940607735
0.880939227
44
1.429005525
1.402762431
1.383701657
1.36878453
1.35718232
1.346961326
1.337845304
1.329005525
1.320165746
1.310773481
1.300000000
1.287845304
1.273480663
1.255524862
1.232872928
1.20359116
1.166022099
1.120994475
1.064917127
1.005801105
0.945856354
45
1.452209945
1.427071823
1.408563536
1.394475138
1.383149171
1.373756906
1.36519337
1.357458564
1.349447514
1.341160221
1.332044199
1.321546961
1.309392265
1.294475138
1.275690608
1.251657459
1.219889503
1.180110497
1.128453039
1.071546961
1.011325967
46
1.474033149
1.449723757
1.432044199
1.418508287
1.40801105
1.399171271
1.391712707
1.384530387
1.377348066
1.370165746
1.362430939
1.35359116
1.343370166
1.33121547
1.316022099
1.296685083
1.270718232
1.235911602
1.190883978
1.137016575
1.077900552
47
1.494198895
1.470994475
1.454143646
1.441436464
1.431491713
1.423480663
1.416298343
1.409944751
1.403867403
1.397790055
1.391160221
1.383977901
1.375690608
1.365745856
1.353867403
1.33839779
1.318232044
1.290055249
1.251657459
1.202209945
1.144751381
48
1.512707182
1.490883978
1.474585635
1.462707182
1.45359116
1.446132597
1.439779006
1.434254144
1.429005525
1.423756906
1.418232044
1.412154696
1.405524862
1.397790055
1.38839779
1.37679558
1.361325967
1.340331492
1.309392265
1.266298343
1.212154696
49
1.545856354
1.525966851
1.511878453
1.501381215
1.493370166
1.487292818
1.482044199
1.477900552
1.474033149
1.470441989
1.466850829
1.462983425
1.458839779
1.454143646
1.448895028
1.442541436
1.434530387
1.424033149
1.409116022
1.385082873
1.344475138
50
1.573756906
1.556077348
1.543646409
1.534530387
1.527624309
1.522651934
1.51878453
1.515469613
1.512707182
1.510220994
1.50801105
1.505801105
1.503314917
1.500828729
1.497790055
1.494751381
1.490883978
1.486187845
1.480662983
1.472651934
1.459116022
51
1.597237569
1.581767956
1.570718232
1.562707182
1.556906077
1.552762431
1.549723757
1.547513812
1.54558011
1.543922652
1.542541436
1.541436464
1.540055249
1.538950276
1.537569061
1.535911602
1.534254144
1.532596685
1.53038674
1.527624309
1.524309392
52
1.616850829
1.603314917
1.593370166
1.586740331
1.581767956
1.578453039
1.575966851
1.574309392
1.57320442
1.572099448
1.571546961
1.570994475
1.570441989
1.569889503
1.569337017
1.56878453
1.568232044
1.567679558
1.566850829
1.566298343
1.56519337
53
1.633425414
1.621546961
1.612983425
1.606906077
1.602762431
1.600000000
1.598342541
1.596961326
1.596132597
1.595856354
1.59558011
1.595303867
1.595303867
1.595303867
1.595303867
1.595303867
1.595303867
1.595303867
1.595303867
1.595027624
1.595027624
54
1.647513812
1.636740331
1.629281768
1.624033149
1.620718232
1.618508287
1.616850829
1.616022099
1.615745856
1.615469613
1.615469613
1.615745856
1.615745856
1.616022099
1.616298343
1.616574586
1.616850829

07/07/06 4.14

C:\Documents and Settings\dedde\Desktop\MATLAB\12.Pannello d...\K_zeta.m

3 of 3

1.617127072
1.617403315
1.617679558
1.617955801
55
1.659116022
1.649723757
1.643093923
1.638674033
1.635911602
1.633977901
1.632872928
1.632044199
1.632044199
1.632044199
1.632320442
1.632596685
1.632872928
1.633149171
1.633701657
1.633977901
1.634530387
1.63480663
1.635359116
1.635635359
1.635911602
56
1.681491713
1.674585635
1.66961326
1.666298343
1.664364641
1.663259669
1.662707182
1.662430939
1.662430939
1.662707182
1.662983425
1.663535912
1.663812155
1.664364641
1.664917127
1.665469613
1.666022099
57
58
59 % Selezione dei parametri che definiscono il coefficiente d'instabilit locale per la
geometria assegnata
60
61
62
63
64
65
66 % rapporto K/K0
67
68 % coefficiente correttivo d'instabilit locale
69

07/07/06 4.14
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

%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%

C:\Documents and Settings\dedde\Desktop\MATLAB\12.P...\moduli_elastici.m

Caratteristiche del materiale


----------------------------function [Et,Es,tau] = moduli_elastici(E, sigma07, n, sigma)
Input
----E:
sigma07:
n:
sigma:
eps:

modulo di Young del materiale [MPa]


tensione in corrispondenza di Es=0.7 [MPa]
parametro di Ramberg-Osgood
tensione di lavoro
deformazioni

Output
-----Et: modulo di elasticit tangente
Es: modulo di elasticit secante
tau: coef. di correzione plastica

function [Et,Es,tau,eps] = moduli_elastici(E, sigma07, n, sigma)

1 of 1

07/07/06 4.14

C:\Documents and Settings\dedde\Desktop\MATLAB\12.P...\pannello_b_cost.m

1 of 6

1 % Dimensionamento pannello a passo costante


2 % ----------------------------------------3 %
4 % La lunghezza libera d'inflessione coincide con la lunghezza di una baia tra 2 centine
perch il
5 % coefficiente di vincolo si suppone unitario. Si considera cio il pannello semplicemente
appoggiato sulle
6 % centine
7 %
8 % Input
9 % ----10 %
E: modulo di Young del materiale [MPa]
11 %
sigma07: tensione in corrispondenza di Es=0.7 [MPa]
12 %
n: fattore n del materiale
13 %
M: momento flettente estremo [N*m]
14 %
hb: altezza cassone ideale [m]
15 %
w: larghezza del cassone [m]
16 %
L: lunghezza libera d'inflessione [m]
17 %
b: passo tra gli irrigidimenti [m]
18 % choose_correnti: identificatore tipo correnti
19 %
1) correnti a Z
20 %
2) correnti integrali
21 %
22 % Output
23 % -----24
25 % ts_t_opt: parametro adimensionale ts/t del pannello
26 % alfa_opt: efficienza strutturale del pannello
27 %
N: indice di carico
28 %
sigma: tensione di progetto [MPa]
29 %
t: spessore lamiera
30 %
ts: spessore corrente
31 %
h: altezza corrente
32 %
d: lunghezza flangia corrente
33 %
zCG: posizione baricentro dall'asse della lamiera
34 %
As: area sezione irrigidimento
35 %
A: area sezione irrigidimento + lamiera collaborante
36
37
38 function [As_bt_opt, ts_t_opt, alfa_opt, N, sigma, t, ts, h, d, zCG, As, A, peso_b] = ...
39
pannello_b_cost(E, sigma07, n, M, hb, w, L, b, choose_correnti)
40
41
42
43 % COEFFICIENTE CORRETTIVO D'INSTABILITA' LOCALE
44 % --------------------------------------------45 switch choose_correnti
46
case 1 % correnti a Z
47
% parametro adimensionale d/h per cui si conoscono le curve K/K0
48
case 2 % correnti integrali
49
50 end
51
52
53 % MOMENTO FLETTENTE ESTREMO
54 % ------------------------% [N*mm]
55
56

07/07/06 4.14
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
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114

C:\Documents and Settings\dedde\Desktop\MATLAB\12.P...\pannello_b_cost.m

% DIMENSIONI DEL CASSONE


% ---------------------% altezza del cassone [mm]
% larghezza del cassone [mm]
% lunghezza baia tra due centine [mm]
% passo tra gli irrigidimenti [mm]

% VETTORE DI VALORI DEL RAPPORTO ts/t


% ----------------------------------switch choose_correnti
case 1 % correnti a Z
case 2

% correnti integrali

end

% DATI DI PRIMO TENTATIVO


% ----------------------% posizione baricentro irrigidimento + lamiera collaborante
% altezza equivalente del cassone
% indice di carico
N1 = M/(bw*w)
% inizializzazione variabili

% CICLO ITERATIVO SUL FATTORE DI CARICO


% ------------------------------------% valore di primo tentativo dell'efficienza strutturale
while abs((N-N1)/N1)>1e-3
% indice di carico all'inizio della generica iterazione

% CICLO ITERATIVO SULLA TENSIONE DI PROGETTO


% -----------------------------------------% valore di primo tentativo della tensione di progetto

while abs((sigma-sigma1)/sigma1)>1e-3
% CICLO ITERATIVO PER LA CORREZIONE DI PLASTICITA'
% -----------------------------------------------% valore di inizio iterazione della tensione di progetto

% modulo di elasticit tangente e secante del materiale

% coefficienti di correzione plastica

2 of 6

07/07/06 4.14
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
pannello
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170

C:\Documents and Settings\dedde\Desktop\MATLAB\12.P...\pannello_b_cost.m

3 of 6

% CICLO ITERATIVO SUL VALORE IMPOSTO DI alfa_b


% -------------------------------------------% inizializzazione delle variabili di memorizzazione

for j_tst = 1:length(ts_t_span)


% parametro adimensionale ts/t

% valore imposto di alfa_b

% valore di primo tentativo del rapporto adimensionale h/b

switch choose_correnti
case 1

case 2

end
% valore di primo tentativo di alfa_b calcolato dalla geometria del

% CICLO DI RICERCA DEL VALORE As/(b*t) CHE FORNISCE IL


% VALORE IMPOSTO alfa_b
while abs((alfa_b1 - alfa_b)/alfa_b1)>1e-2

% valore di inizio iterazione del rapporto adimensionale h/b


switch choose_correnti
case 1

% rapporto t/t_mean
% rapporto rho/h
rho_h = sqrt((As_bt/(((1 + As_bt)^2)*(1 + 2*d_h)))*(1/3 +
case 2

% rapporto t/t_mean
% rapporto rho/h
end
% nuovo valore dell'efficienza strutturale

07/07/06 4.14

C:\Documents and Settings\dedde\Desktop\MATLAB\12.P...\pannello_b_cost.m

4 of 6

171
172
% valore di fine iterazione di alfa_b calcolato dalla geometria del
pannello
173
174
end
175
% Memorizzazione dell'efficienza strutturale per le coppie
176
177
% rapporto ts/t
178
179
% efficienza strutturale
% coefficiente d'instabilit locale
180
181
end
182
183
valore
184
% dell'efficienza strutturale
185
% efficienza strutturale
186
As_bt = As_bt_memo(pos_alfa_max)
187
% rapporto ts/t
188
% coefficiente d'instabilit locale
189
switch choose_correnti
190
case 1
191
192
case 2
193
194
end
195
196
% valore di fine iterazione della tensione di progetto
197
sigma1 = alfa*sqrt(N*E*tau/L)
198
end
199
200
% valore della tensione di progetto corretto per effetto della plasticit
201
202
203
% modulo di elasticit tangente e secante del materiale
204
205
206
% coefficiente correttivo di plasticit relativo alla tensione d'instabilit
euleriana
207
208
209
% coefficiente correttivo di plasticit relativo alla tensione d'instabilit locale
210
211
212
% GEOMETRIA DEL PANNELLO
213
% ---------------------214
% spessore medio irrigidimento + lamiera collaborante (lo ricavo dall'espressione
della tensione di
215
% collasso)
216
217
218
% spessore del rivestimento
219
220
221
% spessore irrigidimento
222
223
224
% rapporto t/b (lo ricavo dall'espressione della tensione d'instabilit locale)

07/07/06 4.14

C:\Documents and Settings\dedde\Desktop\MATLAB\12.P...\pannello_b_cost.m

5 of 6

225
226
227
% passo tra gli irrigidimenti
228
229
230
% altezza dell'irrigidimento
231
232
233
% posizione baricentro irrigidimento + lamiera collaborante
234
235
236
% valore di fine iterazione dell'altezza equivalente del cassone
237
238
239
% valore di fine iterazione dell'indice di carico
240
241 end
242
243
244 % VALORI AL TERMINE DELLA PROCEDURA ITERATIVA
245 % ------------------------------------------246 % parametri adimensionali del pannello
247
248
249
250 % efficienza strutturale
251
252 % indice di carico
253
254 % tensione di progetto [MPa]
255
256
257 % FATTORI DI CORREZIONE PLASTICA
258 % modulo di elasticit tangente e secante del materiale
259
260 % coefficiente di correlazione plastica
261
262 % coefficiente correttivo di plasticit relativo alla tensione d'instabilit euleriana
263
264 % coefficiente correttivo di plasticit relativo alla tensione d'instabilit locale
265
266
267 % GEOMETRIA DEL PANNELLO
268 % spessore medio irrigidimento + lamiera collaborante (dall'espressione della tensione di
collasso)
269
270 % spessore del rivestimento
271
272 % spessore irrigidimento
273
274 % altezza dell'irrigidimento
275
276 % lunghezza della flangia del corrente a Z
277
278 % posizione baricentro irrigidimento + lamiera collaborante
279
280 % valore di fine iterazione dell'altezza equivalente del cassone
281

07/07/06 4.14

C:\Documents and Settings\dedde\Desktop\MATLAB\12.P...\pannello_b_cost.m

282 % area dell'irrigidimento


283
284 % area dell'irrigidimento + lamiera collaborante
285
286
287

6 of 6

07/07/06 4.15

C:\Documents and Settings\dedde\Desktop\MATLAB\12....\pannello_eff_max.m

1 of 4

1 % Pannellodi efficienza massima


2 % ----------------------------3 %
4 % Input
5 % ----6 %
7 %
E: modulo di Young del materiale [MPa]
8 %
sigma07: tensione in corrispondenza di Es=0.7 [MPa]
9 %
n: fattore n del materiale
10 %
M: momento flettente estremo [N*m]
11 %
hb: altezza cassone ideale [m]
12 %
w: larghezza del cassone [m]
13 %
L: lunghezza libera d'inflessione [m]
14 %
tipo_corrente: identificatore tipologia di correnti
15 %
1. correnti a Z
16 %
2. correnti integrali
17 %
18 % Output
19 % -----20 %
N: indice di carico
21 % sigma: tensione di progetto [MPa]
22 %
t: spessore lamiera
23 %
ts: spessore corrente
24 %
b: passo tra i correnti
25 %
h: altezza corrente
26 %
d: lunghezza flangia corrente
27 %
zCG: posizione baricentro dall'asse della lamiera
28
29
30 function [N, sigma, t, ts, b, h, d, zCG, peso] = pannello_eff_max(E, sigma07, n, M, hb, w,
L, choose_correnti)
31
32
33 % SOLUZIONE DI OTTIMO
34 % ------------------35 switch choose_correnti
36
% CORRENTI A Z
37
case 1
38
% Soluzione di Farrar
39
% efficienza strutturale massima
40
% parametro adimensionale ts/t
41
% parametro adimensionale As/(b*t)
42
% Altri parametri geometrici
43
% parametro adimensionale d/h
44
% parametro adimensionale h/b
45
% CORRENTI INTEGRALI
46
case 2
47
% Soluzione di Catchpole
% efficienza strutturale massima
48
% parametro adimensionale ts/t
49
50
% parametro adimensionale h/b
51
% Altri parametri geometrici
52
% parametro adimensionale As/(b*t)
53 end
54
55 % COEFFICIENTE CORRETTIVO D'INSTABILITA' LOCALE
56 % --------------------------------------------57 % E' noto perch tutti i parametri adimensionali che identificano la geometria del pannello

07/07/06 4.15

C:\Documents and Settings\dedde\Desktop\MATLAB\12....\pannello_eff_max.m

irrigidito sono
58 % noti
59 switch choose_correnti
60
case 1 % CORRENTI A Z
61
% curve relative al coefficiente correttivo K (relative a d/h=0.3)
62
63
case 2 % CORRENTI INTEGRALI
64
% curve relative al coefficiente correttivo K
65
66 end
67
68
69 % MOMENTO FLETTENTE ESTREMO
70 % ------------------------% [N*mm]
71
72
73 % DIMENSIONI DEL CASSONE
74 % ---------------------75
% altezza del cassone [mm]
% larghezza del cassone [mm]
76
77
% lunghezza baia tra due centine [mm]
78
79 % DATI DI PRIMO TENTATIVO
80 % ----------------------81 % posizione baricentro irrigidimento + lamiera collaborante
82
83 % altezza equivalente del cassone
84
85 % indice di carico
86
87 % inizializzazione variabili
88
89
90 % CICLO ITERATIVO ESTERNO SUL FATTORE DI CARICO
91 % --------------------------------------------92 while abs((N-N1)/N1)>1e-3
93
94
% indice di carico all'inizio della generica iterazione
95
96
97
98
% CICLO ITERATIVO RELATIVO ALLA CORREZIONE DI PLASTICITA'
99
% -----------------------------------------------------100
% valore di primo tentativo tensione di progetto [MPa]
101
102
103
for i=1:1:500 % La differenza tra le 2 sigma oscilla intorno a 0.
104
% Per questo si usa il ciclo for
105
% Co 500 passi l'errore sulla 8 cifra decimale
106
107
108
% modulo di elasticit tangente e secante del materiale
109
110
111
tau
112
% valore di fine iterazione della tensione di progetto
113
114
sigma1-sigma0

2 of 4

07/07/06 4.15

C:\Documents and Settings\dedde\Desktop\MATLAB\12....\pannello_eff_max.m

3 of 4

115
end
116
117
118
% valore della tensione di progetto corretto per effetto della plasticit
119
120
121
% modulo di elasticit tangente e secante del materiale
122
123
124
% coefficiente correttivo di plasticit relativo alla tensione d'instabilit
euleriana
125
126
127
% coefficiente correttivo di plasticit relativo alla tensione d'instabilit locale
128
129
130
% GEOMETRIA DEL PANNELLO
131
% ---------------------132
% spessore medio irrigidimento + lamiera collaborante (dalla tensione di collasso)
133
134
135
% spessore del rivestimento
136
137
138
% spessore irrigidimento
139
140
141
% rapporto t/b (lo ricavo dall'espressione della tensione d'instabilit locale)
142
143
144
% passo tra gli irrigidimenti
145
146
147
% altezza dell'irrigidimento
148
149
150
% posizione baricentro irrigidimento + lamiera collaborante
151
152
153
% valore di fine iterazione dell'altezza equivalente del cassone
154
155
156
% valore di fine iterazione dell'indice di carico
157
158 end
159
160
161 % VALORI AL TERMINE DELLA PROCEDURA ITERATIVA
162 % ------------------------------------------163 % indice di carico
164
165 % tensione di progetoo [MPa]
166
167
168 % FATTORI DI CORREZIONE PLASTICA
169 % modulo di elasticit tangente e secante del materiale
170
171 % coefficiente di correlazione plastica

07/07/06 4.15
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206

C:\Documents and Settings\dedde\Desktop\MATLAB\12....\pannello_eff_max.m

% coefficiente correttivo di plasticit relativo alla tensione


% d'instabilit euleriana
% coefficiente correttivo di plasticit relativo alla tensione
% d'instabilit locale

% GEOMETRIA DEL PANNELLO


% spessore medio irrigidimento + lamiera collaborante (lo ricavo
% dall'espressione della tensione di collasso)
% spessore del rivestimento
% spessore irrigidimento
% rapporto t/b (lo ricavo dall'espressione della tensione
% d'instabilit locale)
% passo tra gli irrigidimenti
% altezza dell'irrigidimento
% posizione baricentro irrigidimento + lamiera collaborante
% valore di fine iterazione dell'altezza equivalente del cassone
% lunghezza della flangia del corrente a Z
if choose_correnti == 1

else

end

4 of 4

07/07/06 4.15
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

%
%
%
%
%
%
%
%
%
%
%
%
%
%

C:\Documents and Settings\dedde\Desktop\MATLAB\12.Pan...\plot_pannello.m

1 of 3

PLottaggio pannello irrigidito


-----------------------------Input
----t: spessore lamiera
ts: spessore corrente
b: passo tra i correnti
h: altezza corrente
d: lunghezza flangia corrente
zCG: posizione baricentro dall'asse della lamiera
choose_correnti: tipo corrente
peso: superficie dell'elemento corrente + lamiera collaborante
sigma: tensione di lavoro

function plot_pannello(t, ts, b, h, d, zCG, choose_correnti,peso,sigma)


switch choose_correnti
% CORRENTI A Z
% -----------case 1

% BARICENTRO LAMIERA + CORRENTE

% PLOTTAGGIO
figure
hold on

axis([xmin_plot xmax_plot ymin_plot ymax_plot])


grid minor
box on
xlabel('mm','FontSize',10,'FontWeight','b')
ylabel('mm','FontSize',10,'FontWeight','b')
text((ts/2+2),CG(2),'C.G.','FontSize',10,'FontWeight','b')
axis equal
%corrente Z

zz = patch(polyZx,polyZy,'y','LineWidth',1.5,'FaceAlpha'
%panello
line([-b/2 b/2],[t/2 t/2],'Linewidth',1.5,'color','k'
line([-b/2 b/2],[-t/2 -t/2],'Linewidth',1.5,'color','k'

patch(polyPx,polyPy,[1 0.5 0],'LineWidth',1.5,'FaceAlpha',0.7,'EdgeColor','none')

07/07/06 4.15

C:\Documents and Settings\dedde\Desktop\MATLAB\12.Pan...\plot_pannello.m

2 of 3

59
%anima
60
61
62
63
line(animaZx,animaZy,'Linestyle','-.'
64
65
% BARICENTRO
66
plot(CG(1),CG(2),'o','MarkerFaceColor','b','MarkerEdgeColor','b','MarkerSize',7)
67
68
69
% CORRENTI INTEGRALI
70
% -----------------71
case 2
72
% BARICENTRO LAMIERA + CORRENTE
73
74
75
% PLOTTAGGIO
76
figure
77
78
hold on
79
80
81
82
83
axis([xmin_plot xmax_plot ymin_plot ymax_plot])
84
grid minor
85
box on
86
xlabel('mm','FontSize',10,'FontWeight','b')
87
ylabel('mm','FontSize',10,'FontWeight','b')
88
text((ts/2+2),CG(2),'C.G.','FontSize',10,'FontWeight','b')
89
axis equal
90
91
%corrente I
92
93
94
95
patch(polyIx,polyIy,[1 0.5 0],'LineWidth',1.5,'FaceAlpha',0.7,'Edgecolor','none')
96
97
line([-b/2 b/2],[t/2 t/2],'Linewidth',1.5,'color','k'
98
line([b/2 ts/2 ts/2 -ts/2 -ts/2 -b/2],-[t t h+t h+t t t] + t/2,'Linewidth',
1.5,'color','k'
99
100
%anima
101
102
103
104
line(animaIx,animaIy,'Linestyle','-.'
105
106
%Campitura
107
%for x=-b/2:b/50:b/2-2*b/50
108
%
109
110
%end
111
112
% BARICENTRO
113
plot(CG(1),CG(2),'o','MarkerFaceColor','b','MarkerEdgeColor','b','MarkerSize',7)
114
115 end

07/07/06 4.15
116
117
118
119
120
121
122
123
124
125
126
127
128

C:\Documents and Settings\dedde\Desktop\MATLAB\12.Pan...\plot_pannello.m

% VISUALIZZAZIONE DEI RISULTATI


% ----------------------------disp(sprintf(' Passo tra i correnti: %3.0f mm', b))
disp(sprintf('Spessore rivestimento: %1.2f mm', t))
disp(sprintf('
Spessore corrente: %1.2f mm', ts))
disp(sprintf('
Altezza corrente: %2.2f mm', h))
disp(sprintf('
tensione: %3.0f mm', sigma))
if choose_correnti == 1
disp(sprintf('
Larghezza flangia: %2.2f mm', d))
end
fprintf('\n')

3 of 3

07/07/06 4.15
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

C:\Documents and Settings\dedde\Desktop\MATLAB\...\proprieta_materiale.m

% Propriet del materiale


% -----------------------

clear all
clc
% PROPRIETA' MATERIALE: Al 7075-T6
% -------------------------------% coefficiente di Poisson
% modulo di Young [MPa]
% tensione di snervamento a compressione [MPa]
% tensione ultima di rottura [MPa]
% tensione corrispondente deformazione permanente del 7% [MPa]
% parametro di Ramberg-Osgood

% DIAGRAMMA TENSIONI DEFORMAZIONI


% ------------------------------% tensioni
% deformazioni

figure
subplot(2,2,1)
plot(epsilon,sigma,'r','LineWidth',1.5)
title('Diagramma sforzo - deformazione','FontSize',8,'FontWeight','b')
xlabel('\epsilon','FontSize',10,'FontWeight','b')
ylabel('\sigma [MPa]','FontSize',10,'FontWeight','b')
box on
grid

% MODULO DI ELASTICITA' TANGENTE


% ------------------------------

subplot(2,2,2)
plot(sigma,Et,'LineWidth',1.5)
title('Modulo di elasticit tangente','FontSize',8,'FontWeight','b')
xlabel('\sigma
[MPa]','FontSize',10,'FontWeight','b')
ylabel('E_t
[MPa]','FontSize',10,'FontWeight','b')
box on
grid

% MODULO DI ELASTICITA' SECANTE


% -----------------------------

subplot(2,2,3)
plot(sigma,Es,'LineWidth',1.5)
title('Modulo di elasticit secante','FontSize',8,'FontWeight','b')
xlabel('\sigma
[MPa]','FontSize',10,'FontWeight','b')
ylabel('E_s
[MPa]','FontSize',10,'FontWeight','b')
box on
grid

1 of 2

07/07/06 4.15
59
60
61
62
63
64
65
66
67
68
69
70
71

C:\Documents and Settings\dedde\Desktop\MATLAB\...\proprieta_materiale.m

% COEFFICIENTE DI CORREZIONE PLASTICA


% -----------------------------------

subplot(2,2,4)
plot(sigma,tau,'LineWidth',1.5)
title('Fattore di Plasticit','FontSize',8,'FontWeight','b')
xlabel('\sigma
[MPa]','FontSize',10,'FontWeight','b')
ylabel('\tau','FontSize',10,'FontWeight','b','Rotation',0)
box on
grid

2 of 2

C13

Progetto di Costruzioni Aeronautiche

07/07/06 4.16
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

%
%
%
%
%

C:\Documents and Settings\dedde\Des...\MAIN1_SollecitazioniAffaticanti.m

Diagramma di manovra
-------------------Il programma seguente plottare i diagrammi di manovra relativi a tre
condizioni di volo e quindi tre pesi diversi

clc
clear all
global ft2m nm2m lb2kg g d2r r2d in2m
% Costanti & fattori di conversione
%..........................................................................
% 1 ft = 0.3048 m
% 1 n.m. = 1852 m
% 1 lb = 0.45359237 kg
% accelerazione gravitazionale [m/s2]
% fattore di conversione deg --> rad
% fattore di conversione rad --> deg
% 1 in = 0.0254 m
%..........................................................................
load './config/config.mat'

iM=3,iAR=3,it_c=3,iKS=8

% quota di crociera [m]


% tratta di progetto [m]

1 of 2

07/07/06 4.16

C:\Documents and Settings\dedde\Des...\MAIN1_SollecitazioniAffaticanti.m

59
% decollo
% approccio
60
61
% atterraggio
62
% CL minimo
63 % Fattori di carico massimo e minimo
64
65
66
67
68 % Densit dell'aria s.l.m.
69
70
71
72
73
74
75
% [h]
76
77 % Vita di progetto [h]
78
79 % Numero voli
80
81
82
83 %Calcolo dei pesi
84 [W1,W2,W3] = calcolo_pesi(M, Hcr, Xcr, CD0, K, kSFC, mBPR, Wto, S)
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99 [delta_nzm, Ncicli_m] = numero_cicli_carico('m'
100
101 [delta_nzr1, Ncicli_r1] = numero_cicli_carico('r', Nvoli, 1, X1, ...
102
103 [delta_nzr2, Ncicli_r2] = numero_cicli_carico('r', Nvoli, 2, X2, ...
104
105 [delta_nzr3, Ncicli_r3] = numero_cicli_carico('r', Nvoli, 3, X3, ...
106
107
108 [Mf50med1,Mf50med2,Mf50med3,Mf50max_m1,Mf50max_m2,Mf50max_m3,Mf50max_r1,Mf50max_r2,
Mf50max_r3...
109
Mf60med1,Mf60med2,Mf60med3,Mf60max_m1,Mf60max_m2,Mf60max_m3,Mf60max_r1,
Mf60max_r2,Mf60max_r3]=...
110
momenti(W1,W2,W3,EAS1,EAS2,EAS3,M1,M2,M3,delta_nzm,delta_nzr1,delta_nzr2,
111
112 save('momenti')

% Coefficiente di portanza dell'ala ipersostentata

2 of 2

07/07/06 4.16
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

C:\Documents and Settings\dedde\Desktop\MATLAB\...\MAIN2_durability&CA.m

clc
clear all
global ft2m nm2m lb2kg g d2r r2d in2m
% Costanti & fattori di conversione
%..........................................................................
% 1 ft = 0.3048 m
% 1 n.m. = 1852 m
% 1 lb = 0.45359237 kg
% accelerazione gravitazionale [m/s2]
% fattore di conversione deg --> rad
% fattore di conversione rad --> deg
% 1 in = 0.0254 m
%..........................................................................
load './config/config.mat'

iM=3,iAR=3,it_c=3,iKS=8

[cs50, cs60, t50, t60] = ...


cassone(b, bK, etaR, t_cR, t_cK, t_cT, cR, cK, cT, lambdaN)

load momenti

% Vita di progetto

% [h]
[h]

% Numero voli

c1 = menu({'Scegliere una sezione'},'sezione al 50%','sezione al 60%'


if c1==0
error('Nessun sezione selezionata')

1 of 4

07/07/06 4.16
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
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116

C:\Documents and Settings\dedde\Desktop\MATLAB\...\MAIN2_durability&CA.m

break
end

if c1==1

sezione='50%'
else

sezione='60%'
end
[sigmamax,sigmamed,sigmaalt,Ncicli,punto_operativo,tipo_carico,sigmamed_2]...
= tensioni(Mfmed1,Mfmed2,Mfmed3,Mfmax_m1,Mfmax_m2,Mfmax_m3,...
Mfmax_r1,Mfmax_r2,Mfmax_r3,...
Ncicli_m,Ncicli_r1,Ncicli_r2,Ncicli_r3,...
tmed,hb,cs,...
Ncicli_m,Ncicli_r1,Ncicli_r2,Ncicli_r3
% CALCOLO DEL NUMERO CUMULATIVO DI CICLI IN VITA
% ---------------------------------------------for j = 2:length(Ncicli)
end

for j = 1:length(Ncicli)
end
% CICLO GAG (GROUND - AIR - GROUND)
% --------------------------------% Numero di cicli GAG nella vita di progetto

2 of 4

07/07/06 4.16

C:\Documents and Settings\dedde\Desktop\MATLAB\...\MAIN2_durability&CA.m

117 n_life_GAG = Nvoli


118 % Tensioni
119 [sigma_max_GAG, sigma_min_GAG, sigma_mean_GAG, sigma_alt_GAG] = ...
120 tensioni_GAG(sum_cicli_vita, sigmamax, n_life_GAG, sigmamed_2)
121 % Numero di cicli a rottura
122 Nrott_GAG = cicli_rottura(sigma_alt_GAG, sigma_mean_GAG)
123
124
125 % CALCOLO DEL DANNEGGIAMENTO DOVUTO AI CARICHI DI MANOVRA E RAFFICA
126 % ----------------------------------------------------------------127 for j = 1:length(Ncicli)
128
129 end
130
131
132 % CALCOLO DEL DANNEGGIAMENTO DOVUTO AL CICLO GAG
133 % ---------------------------------------------134 danno_GAG = n_life_GAG/Nrott_GAG
135
136
137 % CALCOLO DEL DANNEGGIAMENTO TOTALE
138 % --------------------------------139 danno_tot = sum(danno) + danno_GAG
140
141
142 disp(['Carichi di raffica per la sezione al ' sezione])
143
144
145 tab_format=' %c
%1.0f
%1.2f
%5.0f
%3.1f
%3.1f
3e\n'
146
disp(['T.C. ' ' P.O ' ' sigma_med ' '
sigma_max ' '
Ncicli ' '
danno'])
147
148 for i=1:length(tab(:,1))
149
150 end
151
152
153
154
155 c2 = menu({'Scegliere la geometria del corrente'},'Z','J'
156 if c1==0
157
error('Nessuna geometria selezionata')
158
break
159 end
160
161
162
163 if c2==1
164
if c1==1
165
166
167
Curvak_in = './crack/Z50/FILE28.DAT'
168
Curvak_out = './crack/Z50/FILE30.DAT'
169
Curvak_dir = './crack/Z50'
170
else
171
172

3 of 4

%
Nrott ' '

07/07/06 4.16
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225

C:\Documents and Settings\dedde\Desktop\MATLAB\...\MAIN2_durability&CA.m

Curvak_in = './crack/Z60/FILE28.DAT'
Curvak_out = './crack/Z60/FILE30.DAT'
Curvak_dir = './crack/Z60'
end
else
if c1==1

Curvak_in = './crack/J50/FILE28.DAT'
Curvak_out = './crack/J50/FILE30.DAT'
Curvak_dir = './crack/J50'
else

Curvak_in = './crack/J60/FILE28.DAT'
Curvak_out = './crack/J60/FILE30.DAT'
Curvak_dir = './crack/J60'
end
end
Tmax = tmed/1.5
Tmin = tmed/2
t_lam
t_cor
% % Verifica sulla scelta fatta per lo spessore del rivestimento
if t_lam < Tmin | t_lam > Tmax
error('Lo spessore della lamiera non corretto')
end
% % Dati d'ingresso per il software CURVAK
% disp('Dati di ingresso per il software CURVAK')
% disp('Sezione al 50% dell''apertura alare: correnti a Z')
%
[sigma_limite, HS, WS, Drivetto, Privetto] = ...

disp(['Eseguire CURVAK.EXE nella cartella ' Curvak_dir])


fprintf('\n')
disp('Il File di INPUT appena stato aggiornato con i dati plottati sopra')
pause
% % Risultati

crack_arrest(b_irr*1000, sigma_limite, out)


%
% Plottaggio della sezione del pannello irrigidito
plot_pannello(t_lam*1000, t_cor*1000, b_irr*1000, HS, WS, c2)
% title('Sezione al 50%: correnti a Z','FontSize',10,'FontWeight','b')

4 of 4

07/07/06 4.16
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

%
%
%
%
%
%
%
%

C:\Documents and Settings\dedde\Desktop\MATLAB\13.Pan...\calcolo_EAS_M.m

Calcolo velocit equivalente


---------------------------[EAS, M] = calcolo_EAS_M(h, W, M, S, CLmax, CLmin, punto_operativo)
La funzione trova la velocit equivalente data una particolare
configurazione caratterizzata da h, W, M, S, CLmax, CLmin,
punto_operativo

function [EAS, M] = calcolo_EAS_M(h, W, M, S, CLmax, CLmin, punto_operativo)

if h > htr
% velocit di crociera vera
% velocit di crociera equivalente
else

end
switch punto_operativo
case {1,3}

case 2

end

1 of 2

07/07/06 4.16
59
60
61

C:\Documents and Settings\dedde\Desktop\MATLAB\13.Pan...\calcolo_EAS_M.m

2 of 2

07/07/06 4.16
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

%
%
%
%
%
%
%
%
%
%
%
%
%
%

C:\Documents and Settings\dedde\Desktop\MATLAB\13.P...\calcolo_momento.m

Calcolo dei momenti flettenti nelle sezioni al 50% e al 60% di b


[Mf50,Mf60] = calcolo_momento(delta_nz,EAS,M,W)
Input
----delta_nz:
EAS:
M:
W:

variazione del fattore di carico rispetto ad 1


velocit equivalente
mach di volo
peso dell'aereo

Output
-----Mf50,Mf60: momenti flettenti nelle sezioni al 50% e al 60% di b

function [Mf50,Mf60] = calcolo_momento(delta_nz,EAS,M,W)


global ft2m nm2m lb2kg g d2r r2d in2m
% Costanti & fattori di conversione
%..........................................................................
% 1 ft = 0.3048 m
% 1 n.m. = 1852 m
% 1 lb = 0.45359237 kg
% accelerazione gravitazionale [m/s2]
% fattore di conversione deg --> rad
% fattore di conversione rad --> deg
% 1 in = 0.0254 m
%..........................................................................
load './config/config.mat'

iM=3,iAR=3,it_c=3,iKS=8

1 of 4

07/07/06 4.16
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
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116

C:\Documents and Settings\dedde\Desktop\MATLAB\13.P...\calcolo_momento.m

% PESI DEI VARI COMPONENTI DEL VELIVOLO


% Pesi componenti
% Nota. I vari pesi di dettaglio relativi alla struttura dell'areo verranno
% Pesi dei componenti ala & motore
% ala
% sistemi carburante
% superfici di controllo
%
% peso dell'ala e dei relativi componenti
%
% piloni
% motori e nacelles
% sistemi ausiliari motori
%
% Un singolo motore e sistemi relativi
% semiapertura motore
% 1 carrello posteriore = 35% del peso
% complessivo dei carrelli
%Posizione dell'attacco del carrello dall'asse di fus
% Densit dell'aria s.l.m.

% Densit del carburante nei serbatoi


%
%
%
%
%

Nota. Si considera per semplicit il serbatoio sempre completamente


riempito da un liquido a densit variabile a seconda del suo reale
riempimento. ES. Serbatoio riempito al 50% = si considera il
serbatoio riempito con un fluido di densit pari al 50% di quella del
carburante

% CARICHI DISTRIBUITI
% Gli eta vanno da 0 a 1 ma hanno passi variabili e diversi da un carico ad un altro
[eta_lift,q_lift,sweep50e_deg] = q_portanza(W, nz, EAS, b, bK, etaR, cCL, cR,...

2 of 4

07/07/06 4.16
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173

C:\Documents and Settings\dedde\Desktop\MATLAB\13.P...\calcolo_momento.m

% il passo con cui vegono interpolate e ricalcolate


% distribuzioni di pesi e CDS

%
%
%
%
%

Si uniformano le eta dei vari carichi e si amplificano a seconda del nz


Il fattore riduttivo cos(sweep50e) tiene conto che le distribuzioni di
carico non sono pi pensate sulla semiapertura ma su una trave di
lunghezza b/(2*cos(sweep50e))

q_f = interp1(eta_fuel,q_fuel,eta,'cubic'
q_s = interp1(eta_struct,q_struct,eta,'cubic'
q_l = interp1(eta_lift,q_lift,eta,'cubic'
% Carico distribuito globale
% Risultante del carico distribuito
% Braccio di d1

% Risultante delle forze

Mf(1)=-d1*d2/d1*(b/2)/(cos(sweep50e)) - Cc1*Hlg/(cos(sweep50e)) - Cc2*b_eng/(cos


% Mf di vincolo
% Reazione vincolare
%
%
%
%
%
%

Per il calcolo delle CDS seguenti si sfrutta il fatto che il Taglio


l'integrale del carico distribuito, il Momento flettente l'integrale del Taglio
La trave/ala viene divisa in tre segmenti per la presenza dei carichi
concentrati (motore e carrello(pensato estratto))
I fattori (b/2)/(cos(sweep50e)) sono dovuti al fatto che l'integrazione
avviene su una variabile adimensionale (x1)

for

if i>=2
if x < (Hlg*2/b)

3 of 4

07/07/06 4.16
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207

C:\Documents and Settings\dedde\Desktop\MATLAB\13.P...\calcolo_momento.m

elseif x < b_eng*2/b

else

end
end
end

4 of 4

07/07/06 4.17
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

%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%

C:\Documents and Settings\dedde\Desktop\MATLAB\13.Pann...\calcolo_pesi.m

Calcolo dei pesi


---------------La funzione calcola il peso del velivolo nei punti della missione scelti
per il dimensionamento a durability
[W1s,W2s,W3s] = calcolo_pesi(M, Hcr, Xcr, CD0, K, kSFC, mBPR, Wto, S)
Input
----M:
Hcr:
Xcr:
CD0, K:
kSFC,mBPR :
Wto:
S:

mach di volo
quota di crociera [m]
lunghezza tratta di crociera [m]
coefficienti della polare del velivolo
coefficienti relativi al motore (pag 28 Fanteria)
peso al decollo [kg]
superficie alare di riferimento [m]

Output
-----Wf_Wto: rapporto peso di combustibile/peso al decollo velivolo
|--------------------------|
|Schema delle fasi di volo |
|--------------------------|
3 _______2s________ 4
/
\
/
\
/
\
1s
3s
/
\
/
\
/
6
1____/ 2
\____7

function [W1s,W2s,W3s] = calcolo_pesi(M, Hcr, Xcr, CD0, K, kSFC, mBPR, Wto, S)


global g
% Temperatura s.l. [K]
% Calcolo della frazione di combustibile per la missione
% -----------------------------------------------------% Decollo (1-2)

% Salita (2-3)

1 of 2

07/07/06 4.17
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
85
86
87
88
89
90
91
92
93
94
95

C:\Documents and Settings\dedde\Desktop\MATLAB\13.Pann...\calcolo_pesi.m

% Crociera (3-4):

massima autonomia chilometrica-----------------------%


%
%Peso di inizio crociera [N]
%
%
% Propriet atmosfera standard alla quota di crociera
%
%
% Velocit di volo [m/s]
%
%
% Pressione dinamica [Pa]
%
%
% Consumo specifico [1/s]
%
%
%
% Calcolo frazione di combustibile
%
%
%
%
%
% Peso di fine crociera [N]
%
%
%-----------------------------------------------------------------------%

% Peso di met crociera (= Wdes)[N]

% Discesa e atterraggio (6-7)

C
R
O
C
I
E
R
A

2 of 2

07/07/06 4.17

07/07/06 4.17

C:\Documents and Settings\dedde\Desktop\MATLAB\13.Pan...\cicli_rottura.m

1 of 1

1 % CALCOLO DEL NUMERO DI CICLI A ROTTURA


2 % =====================================
3 % Per il calcolo del numero di cicli a rottura si fa riferimento al modello Boeing
4 % Si considera come materiale la lega di alluminio 2024 - T3
5
6 % INPUT
7 % ----8 % sigma_alt: tensione alternata [MPa]
9 % sigma_mean: tensione media [MPa]
10
11 % OUTPUT
12 % -----13 % N: numero cicli a rottura del materiale
14
15
16 function N = cicli_rottura(sigma_alt, sigma_mean)
17
18
19 % Conversione dati in ingresso
20
% 1 ksi = 6.894757293 MPa
21
% tensione alternata [ksi]
22
% tensione media [ksi]
23
24
25 % PARAMETRI DEL MODELLO
26 % --------------------27 % sigma_mean_0: per la lega di alluminio selezionata vale 45 ksi
28
29 % finish factor
30
31 % DFR: DFRbase per un corrente a J e per l'alluminio vale 20
32
33
34
35
36 % NUMERO DI CICLI A ROTTURA
37 % ------------------------38 % Inverto la formula della Boeing che fornisce l'espressione della tensione alternata in
funzione del numero
39 % di cicli a rottura. Il parametro S vale 2 per alluminio
40
41

C:\Documents and Settings\dedde\Desktop\MATLAB\13.Pann...\crack_arrest.m

1 of 2

1 % VERIFICA A CRACK ARREST DEL PANNELLO VENTRALE


2 % =============================================
3
4 % INPUT
5 % ----6 %
b: passo tra gli irrigidimenti [mm]
7 % sigma_limite: tensione limite nella sezione considerata
8 %
out_CURVAK: matrice contenente i risultati forniti dal software CURVAK
9
10
11 function crack_arrest(b, sigma_limite, out_CURVAK)
12
13
14
15 % ELABORAZIONE RISULTATI OTTENUTI DAL SOFTWARE "CURVAK"
16 % ----------------------------------------------------17 % Semilunghezza di fessura [mm]
18
19 % Fattore di riduzione del fattore di intensit degli sforzi nel pannello irrigidito
rispetto ad un pannello
20 % non irrigidito con la stessa lunghezza di frattura
% k pannello / k lamiera
21
22 % Fattore di sovraccarico del primo corrente integro
23
24 % Tensione residua lamiera
25
26 % tensione residua corrente
27
28
29
30 % ANDAMENTO DEL FATTORE DI RIDUZIONE PER LA LAMIERA CR IN FUNZIONE DELL'APERTURA DELLA
CRICCA
31 %
------------------------------------------------------------------------------------------32 figure
33
34 plot(a,C_R,'LineWidth',1.5)
35 xlabel('a
[mm]','FontSize',10,'FontWeight','b'
36 ylabel('C_R','FontSize',10,'FontWeight','b'
37 set(hf,'XLim',[a(1)-10 a(end)+10])
38 grid
39
40 % ANDAMENTO DEL FATTORE DI AMPLIFICAZIONE PER IL CORRENTE LS IN FUNZIONE DELL'APERTURA DELLA
CRICCA
41 %
-----------------------------------------------------------------------------------------------42
43 plot(a,L_S,'LineWidth',1.5)
44 xlabel('a
[mm]','FontSize',10,'FontWeight','b')
45 ylabel('L_S','FontSize',10,'FontWeight','b')
46 set(hf,'XLim',[a(1)-10 a(end)+10])
47 grid
48
49 % ANDAMENTO DELLE TENSIONI IN FUNZIONE DELL'APERTURA DELLA CRICCA
50 % --------------------------------------------------------------51 % Posizione del primo corrente integro
52

07/07/06 4.17
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69

C:\Documents and Settings\dedde\Desktop\MATLAB\13.Pann...\crack_arrest.m

2 of 2

% Tensione limite operativa

figure
hplot = plot(a,sigma_lam,'m',pos_cor_x,pos_cor_y,'g-.',x_sigma,sigma_limite,'r--'
set(hplot,'LineWidth',1.5)
xlabel('a','FontSize',10,'FontWeight','b'
ylabel('\sigma [MPa]','FontSize',10,'FontWeight','b'
hold on
plot(a,sigma_cor,'LineWidth'
h_leg = legend('Tensione pannello irrigidito','Posizione corrente','\sigma_l_i_m_i_t_e',...
'Tensione rottura corrente'
set(h_leg,'FontSize',8,'FontWeight','b')
grid

07/07/06 4.17

C:\Documents and Settings\dedde\Desktop\MATLAB\1...\crack_arrest_input.m

1 of 4

1 % DATI D'INGRESSO PER LA VERIFICA A CRACK ARREST


2 % ==============================================
3 % La function calcola i dati d'ingresso necessari a poter eseguira la verifica del pannello
irrigidito a
4 % crack arrest mediante il software CURVAK
5
6 % INPUT
7 % ----8 %
Mlimite: momento flettente nella sezione considerata
9 %
w_cassone: larghezza cassone [m]
10 %
h_cassone: altezza cassone [m]
11 %
t_mean: spessore generalizzato del pannello [m]
12 %
T: spessore rivestimento [mm]
13 %
TS: spessore corrente [mm]
14 %
b: passo degli irrigidimenti
15 % choose_correnti: identificatore della forma dei correnti
16 %
1. correnti a "Z"
17 %
2. correnti a "J"
18
19 % OUTPUT
20 % -----21 % sigma_limite: tensione operativa limite [MPa]
22 %
HS: altezza corrente [mm]
23 %
WS: larghezza flangia inferiore corrente [mm]
24 %
Drivetto: diametro dei rivetti [mm]
25 %
Privetto: diametro dei rivetti [mm]
26
27
28 function [sigma_limite, HS, WS, Drivetto, Privetto] = ...
29
crack_arrest_input(Mlimite, w_cassone, h_cassone, t_mean, T, TS, b,
choose_correnti, Curvak_in)
30
31
32 % Conversione dati di ingresso
33
% passo tra gli irrigidimenti [mm]
% larghezza cassone alare [mm]
34
35
% altezza cassone alare [mm]
% spessore generalizzato pannello [mm]
36
% spessore rivestimento [mm]
37
38
% spessore corrente [mm]
39
40
41 % TENSIONE LIMITE
42 % --------------43
% indice di carico
44
% tensione limite [MPa]
45
46 % GEOMETRIA DEL CORRENTE
47 % ---------------------48 % Area della sezione del corrente
49
50
51 switch choose_correnti
52
case 1 % correnti a "Z"
53
54
55
56
case 2 % correnti a "J"

07/07/06 4.17
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
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114

C:\Documents and Settings\dedde\Desktop\MATLAB\1...\crack_arrest_input.m

end
% DIMENSIONI DEI RIVETTI
% ----------------------

disp(sprintf('Tensione limite: %3.2f MPa', sigma_limite))


disp(sprintf('Semi passo tra i correnti: %1.2f mm', b/2))
disp(sprintf('Spessore rivestimento: %1.2f mm', T))
disp(sprintf('Spessore corrente: %1.2f mm', TS))
disp(sprintf('Altezza corrente: %2.2f mm', HS))
disp(sprintf('Larghezza flangia inferiore corrente: %2.2f mm', WS))
disp(sprintf('Diametro rivetti: %2.2f mm', Drivetto))
disp(sprintf('Passo rivetti: %2.2f mm', Privetto))
fprintf('\n')
% Il file28 e' in formato libero ed e' corredato dai nomi delle variabili
% assegnate. Esse sono:
%
si deve porre pari a 2, cioe' il primo corrente (il centrale)
%
e' rotto.
% ICONF1,ICONF2 = indici della posizione della fessura rispetto a corrente
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%

%
%

foro di alloggiamento di un rivetto.


e' sufficiente un valore di 5-6, poiche' valori piu' elevati aumentano
i tempi di calcolo senza aumentare la precisione.
AIN, DA, NP = si chiede di fare l'analisi per NP lunghezze di fessura, a
partire da AIN con incrementi uguali pari a DA (mm)
S = semi-passo tra i correnti (mm)
T = spessore rivestimento (mm)
D = diametro del rivetto (mm)
P = passo tra i rivetti, generalmente 5 D, (mm)
ER = modulo elastico materiale rivetto (MPa)
TS,WS,HS = spessore (costante), larghezza flangia inf., altezza totale
per corrente a Z, (mm)
SIG = tensione asintotica per la quale si effettua il conto, MPa
(siccome si tratta il problema in modo lineare, senza plasticita',
e' ininfluente).
FPL = ha significato per il caso elasto-plastico. Porre rigorosamente 0.
EF = rapporto tra la flessibilita' del rivetto e quella di riferimento,
che il programma calcola da se' utilizzando l'espressione fornita
da H. Huth (LBF-Germania). Se posto pari a 0, si esegue il caso

pari a 0.5, poiche' il corrente e' collegato da due rivetti (molle


in parallelo).

%
% Nel caso che si usi un corrente a J o ad omega, si deve completare la
% descrizione della geometria del corrente da tastiera.
% nel caso di corrente a J il significato dei simboli quello di figura:

2 of 4

07/07/06 4.17
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172

%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%

C:\Documents and Settings\dedde\Desktop\MATLAB\1...\crack_arrest_input.m


WS
|<------->|
_________
| ________|
| |
| |
TK=TS ->| |<HS
| |
| |
________| |_______
|__________________|
----------------------------------------------------------------------------------|<---------------->|
WD

N.B. Il programma contiene un'espressione del Kc del rivestimento in funzione


dello spessore, ma si intende che esso e' di 2024!
N.B. Il corrente e' sempre in 7075!
Outputs in file30.dat
a,ci,ellest,sigcrl,sigcrc
a
ci
ellest
sigcrl
sigcrc

-->
-->
-->
-->
-->

semilunghezza di fessura (mm)


k pann./k lamiera
fattore di sovraccarico del primo corrente integro
Tensione residua lamiera
Tensione residua corrente

%Struttura originale del file input (sotto quella generata qui (identica))
% 2 1 1 10 90
INDCOR, iconf1 (riv), iconf2 (corr), nr, np
% 70.00
4.00
1.00 240.49 50.00
2.00
0.00
S,T,EF,SIG,Ain,da,fpl
% 2000.00 18.50
3.70
3.40 28.72 57.47 71000
W,P,D,TS,WS,HS,ER

3 of 4

07/07/06 4.17

C:\Documents and Settings\dedde\Desktop\MATLAB\1...\crack_arrest_input.m

4 of 4

173 % 2 1 1 10 90
174 % 70.00
4.00
1.00 240.49 50.00
2.00
0.00
175 % 2000.00 18.50
3.70
3.40 28.72 57.47 71000.00
176
177 fid = fopen(Curvak_in, 'wt'
178 fprintf(fid, '%1d %2d %2d %3d %3d\n%2.2f %6.2f %6.2f %7.2f %6.2f %6.2f %6.2f\n%4.2f %6.2f %
6.2f %6.2f %6.2f %6.2f %9.2f',...
179
180

07/07/06 4.17

C:\Documents and Settings\dedde\Desktop\MATLAB\13.Pannello ...\momenti.m

1 of 1

1 function [Mf50med1,Mf50med2,Mf50med3,Mf50max_m1,Mf50max_m2,Mf50max_m3,Mf50max_r1,Mf50max_r2,
Mf50max_r3...
2
Mf60med1,Mf60med2,Mf60med3,Mf60max_m1,Mf60max_m2,Mf60max_m3,Mf60max_r1,Mf60max_r2,
Mf60max_r3]=...
3
momenti(W1,W2,W3,EAS1,EAS2,EAS3,M1,M2,M3,delta_nzm,delta_nzr1,delta_nzr2,
delta_nzr3)
4
5 % Momenti medi (nz = 1)
6
7
8
9
10
11 for j1=1:length(delta_nzr1)
12 % Punto operativo 1
13
14
15 % Punto operativo 3
16
17 end
18
19 for j2=1:length(delta_nzr2)
20 % Punto operativo 2
21
22 end
23
24 for j3=1:length(delta_nzm)
25
26
27
28
% Punto operativo 2
29 end

07/07/06 4.17

C:\Documents and Settings\dedde\Desktop\MATLAB\...\numero_cicli_carico.m

1 of 3

1 % NUMERO COMPLESSIVO DEI CICLI DI CARICO DOVUTI A RAFFICHE E MANOVRE


2 % -----------------------------------------------------------------3 % Il numero di eccedenze per i carichi dovuti a raffiche e manovre si calcola dai diagrammi
riportati nel
4 % report NACA TN 4332.
5 % CARICHI DI MANOVRA
6 % Per quanto riguarda i carichi di manovra il diagramma fornisce il numero di ccedenze per
volo per ogni
7 % valore della variazione del fattore di carico (che viene quindi fissato). Per trovare il
numero
8 % complessivo di cicli di carico sufficiente moltiplicare il numero delle eccedenze per
il numero di voli.
9 % CARICHI DI RAFFICA
10 % Per quanto riguarda i carichi di raffica il diagramma fornisce il numero di eccedenze per
miglia nautiche
11 % percorse che corrisponde ad una certa intensit di raffica Ude e ad un certo intervallo
di quota.
12 % Data la dipendenza dall'intervallo di quota le eccedenze saranno diverse nei vari punti
operativi.
13 % La variazione del fattore di carico viene calcolata con la formula gi vista per la
costruzione del
14 % diagramma di raffica
15 %
16 %
17 % Input
18 % ----19 % choose_carichi: identificatore della tipologia di carichi per cui si vuole calcolare il
numero di cicli
20 %
1. carichi di manovra
21 %
2. carichi di raffica
22 %
Nvoli: numero di voli
23 %
config_volo: identificatore della configurazione di volo per il caso di carichi da
raffica
24 %
1. decollo
25 %
2. 1 step crociera
26 %
3. 2 step crociera
27 %
4. atterraggio
28 %
mn_percorse: miglia nautiche percorse nel segmento di missione analizzato necessario
per calcolare il
29 %
numero di cicli nel caso di carichi di raffica
30 %
H: quota operativa [m]
31 %
sweep25: freccia alare al 25% della corda [deg]
32 %
AR: allungamento alare
33 %
lambda: rapporto di rastremazione
34 %
M: mach di volo operativo
35 %
S: superficie alare di riferimento [m]
36 %
W: peso del velivolo nel punto operativo selezionato [N]
37 %
EAS: velocit equivalente operativa [m/s]
38 %
39 % Output
40 % -----41 % delta_nz: variazione del fattore di carico dovuto alla manovra o alla raffica
42 %
Ncicli: numero complessivo di cicli affaticanti corrispondente al carico di manovra o
di raffica
43
44
45 function [delta_nz, Ncicli] = numero_cicli_carico(tipo_carico, Nvoli, punto_operativo,
mn_percorse, ...

07/07/06 4.17

C:\Documents and Settings\dedde\Desktop\MATLAB\...\numero_cicli_carico.m

2 of 3

46
H, sweep25, AR, lambda, M, S, W, EAS)
47
48
49 global ft2m g
50
51
52 switch tipo_carico
53
54
% ECCEDENZE RELATIVE AI CARICHI DI MANOVRA PER VOLO
55
% ------------------------------------------------56
case 'm'
57
% Variazione del fattore di carico
58
59
% numero di eccedenze per volo
60
ecc = [(18.56-3.6269) (3.6269-7.0859e-1) (7.0859e-1-1.3844e-1) (1.3844e-1-2.7047e2)...
61
(2.7047e-2-5.284e-3) (5.284e-3-1.032e-3) (1.032e-3-2.01698e-4) (2.01698e-43.9406e-5)...
62
63
% ECCEDENZE RELATIVE AI CARICHI DI RAFFICA PER MIGLIA NAUTICHE PERCORSE
64
% --------------------------------------------------------------------65
case 'r'
66
switch punto_operativo
67
% DECOLLO E ATTERRAGGIO
68
case {1,3}
69
% Intensit di raffica [ft/s]
70
71
72
ecc = [(1e-2-1.2e-3) (1.2e-3-2e-4) (2e-4-5e-5) (5e-5-2e-5)...
73
74
75
% CROCIERA
76
case {2}
77
% Intensit di raffica [ft/s]
78
79
% numero di eccedenze per miglia nautiche percorse
80
81
ecc = [(6e-3-2e-4) (2e-4-6e-5) (6e-5-4e-6) (4e-6-1.1e-6)...
82
(1.1e-6-5e-7) (5e-7-1.5e-7) (1.5e-7-5e-8) (5e-8-2e-8) (2e-8-7e%
83
84
end
85
% VARIAZIONE DEL FATTORE DI CARICO
86
% densit atmosfera s.l.m.
87
88
% Atmosfera standard alla quota operativa
89
90
% Freccia alare al 50% della corda
91
92
93
% Parametro CLalfa (formula empirica da Torenbeek)
94
% fattore di comprimibilit
95
96
% corda media geometrica
97
98
% Rapporto di massa del velivolo
99
100
% Fattore di attenuazione della raffica

07/07/06 4.17
101
102
103
104
105
106
107
108
109
110
111
112
113
114

C:\Documents and Settings\dedde\Desktop\MATLAB\...\numero_cicli_carico.m

% Variazione del fattore di carico dovuto alla raffica


end

% NUMERO COMPLESSIVO DI CICLI DI CARICO


% ------------------------------------switch tipo_carico
case 'm'
case 'r'
end

3 of 3

07/07/06 4.23
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

C:\Documents and Settings\dedde\Desktop\MATLAB\13.Pan...\plot_pannello.m

1 of 2

% PLOTTAGGIO DEL PANNELLO IRRIGIDITO


% ==================================
% INPUT
% ----%
t: spessore lamiera
% ts: spessore corrente
%
b: passo tra i correnti
%
h: altezza corrente
%
d: lunghezza flangia corrente
% zCG: posizione baricentro dall'asse della lamiera

function plot_pannello(t, ts, b, h, d, choose_correnti)


switch choose_correnti
% CORRENTI A Z
% -----------case 1

% PLOTTAGGIO
figure
hold on

axis([xmin_plot xmax_plot ymin_plot ymax_plot])


grid minor
box on
xlabel('mm','FontSize',10,'FontWeight','b')
ylabel('mm','FontSize',10,'FontWeight','b')
axis equal
%corrente Z

zz = patch(polyZx,polyZy,'y','LineWidth',1.5,'FaceAlpha'
%panello
line([-b/2 b/2],[t/2 t/2],'Linewidth',1.5,'color','k'
line([-b/2 b/2],[-t/2 -t/2],'Linewidth',1.5,'color','k'

patch(polyPx,polyPy,[1 0.5 0],'LineWidth',1.5,'FaceAlpha',0.7,'EdgeColor','none')


%anima

07/07/06 4.23

C:\Documents and Settings\dedde\Desktop\MATLAB\13.Pan...\plot_pannello.m

2 of 2

59
60
61
line(animaZx,animaZy,'Linestyle','-.'
62
63
64
65
66
% CORRENTI INTEGRALI
67
% -----------------68
case 2
69
% BARICENTRO LAMIERA + CORRENTE
70
71
72
% PLOTTAGGIO
73
figure
74
75
hold on
76
77
78
79
80
axis([xmin_plot xmax_plot ymin_plot ymax_plot])
81
grid minor
82
box on
83
xlabel('mm','FontSize',10,'FontWeight','b')
84
ylabel('mm','FontSize',10,'FontWeight','b')
85
86
axis equal
87
88
%corrente Z
89
90
91
92
zz = patch(polyZx,polyZy,'y','LineWidth',1.5,'FaceAlpha'
93
94
%panello
95
line([-b/2 b/2],[t/2 t/2],'Linewidth',1.5,'color','k'
96
line([-b/2 b/2],[-t/2 -t/2],'Linewidth',1.5,'color','k'
97
98
99
100
101
patch(polyPx,polyPy,[1 0.5 0],'LineWidth',1.5,'FaceAlpha',0.7,'EdgeColor','none')
102
103
%anima
104
105
106
107
line(animaZx,animaZy,'Linestyle','-.'
108
109
110 end
111
112

07/07/06 4.24
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

C:\Documents and Settings\dedde\Desktop\MATLAB\13.Pannello...\tensioni.m

% Calcolo delle tensioni


%
% La funzione calcola le tensioni relative alle sollecitazioni dovute alla
% turbolenza.
function [sigma_max_ord, sigma_med_ord, sigma_alt_ord, Ncicli_ord,...
punto_operativo_ord, tipo_carico_ord, sigma_med_2] = tensioni...
(Mf_med1,Mf_med2,Mf_med3,Mf_max_m1,Mf_max_m2,Mf_max_m3,...
Mf_max_r1,Mf_max_r2,Mf_max_r3,...
Ncicli_m,Ncicli_r1,Ncicli_r2,Ncicli_r3,...
tmed,hb,w_cassone,...

% CALCOLO DELLA TENSIONE MEDIA NEI PUNTI OPERATIVI [MPa]


% ------------------------------------------------

% CALCOLO DELLA TENSIONE MASSIMA NEI PUNTI OPERATIVI [MPa]


% -------------------------------------------------% Carichi di manovra

% Carichi di raffica

% CALCOLO DELLA TENSIONE ALTERNATA NEI PUNTI OPERATIVI [MPa]


% ---------------------------------------------------% Carichi di manovra

% Carichi di raffica

%Riordino delle tensioni in modo decrescente


sigma_max = [sigma_max_m1 sigma_max_r1 sigma_max_m2 sigma_max_r2 ...

Mf_max = [Mf_max_m1 Mf_max_r1 Mf_max_m2 Mf_max_r2 ...

sigma_med = [sigma_med_1*ones(1,length(sigma_max_m1)+length(sigma_max_r1))...
sigma_med_2*ones(1,length(sigma_max_m2)+length(sigma_max_r2))...

1 of 2

07/07/06 4.24

C:\Documents and Settings\dedde\Desktop\MATLAB\13.Pannello...\tensioni.m

2 of 2

59 sigma_alt = [sigma_alt_m1 sigma_alt_r1 sigma_alt_m2 sigma_alt_r2 ...


60
61
62 punto_operativo = [1*ones(1,length(sigma_max_m1)+length(sigma_max_r1))...
63
2*ones(1,length(sigma_max_m2)+length(sigma_max_r2))...
64
65
66 tipo_carico = [109*ones(1,length(sigma_max_m1)) 114*ones(1,length(sigma_max_r1))...
67
109*ones(1,length(sigma_max_m2)) 114*ones(1,length(sigma_max_r2))...
68
69
70
71
72 [sigma_max_ord, index] = sort(sigma_max,'descend'
73
74
75
76
77
78
79
80
81
82
83 for j=1:length(index)
84
% numero di cicli
% tensione media
85
86
% tensione alternata
87
88
89
% identificatore punto operativo
90
% identificatore tipo di carico
91 end
92
93 %Display dei risultati
94 disp('Carichi di raffica per la sezione al 50%')
95
96
97 tab_format=' %c
%1.0f
%1.2f
%5.0f
%3.2f
%3.2f
%4e\n'
98
disp(['T.C. ' ' P.O ' ' delta_nz ' '
Mf-max ' '
sigma_max ' '
sigma_med ' '
Ncicli '])
99 for i=1:length(tab(:,1))
100
101 end
102

07/07/06 4.24

C:\Documents and Settings\dedde\Desktop\MATLAB\13.Pann...\tensioni_GAG.m

1 of 2

1 % Tensioni nel ciclo GAG (GROUND - AIR - GROUND)


2 % ---------------------------------------------3 % La tensione massima si trova andando ad interpolare i valori della tensione massima
corrispondenti al
4 % numero di cicli sull'intera vita di progetto e scegliendo dalla curva interpolante la
tensione a cui
5 % corrisponde un numero di cili pari al numero di voli.
6 % La tensione minima si calcola come la met della tensione media in crociera cambiata di
segno.
7
8
9 function [sigma_max_GAG, sigma_min_GAG, sigma_med_GAG, sigma_alt_GAG] = ...
10
tensioni_GAG(sum_n_life, sigma_max, Nvoli, sigma_med_cr)
11
12
13
14 % TENSIONE MASSIMA
15 % ---------------16 % Costruisco il polinomio interpolante i dati trovati
17
18
19
20
21
22
23 figure
24
25 semilogx(sum_n_plot,Smax_plot,sum_n,Smax,'xr','LineWidth'
26 ylabel('\sigma_m_a_x [MPa]','FontSize',12,'FontWeight','b')
27 xlabel('\Sigma n','FontSize',12,'FontWeight','b')
28 axis([1 10^(6.42) 50 250])
29 grid
30 % Trovo dalla curva interpolante la tensione corrispondente al numero di voli
31
32
33
34
35 if abs(sum_n_plot(lim_sup)-Nvoli) < abs(sum_n_plot(lim_inf)-Nvoli)
36
37 else
38
39 end
40
41 % Tensione massima
42 sigma_max_GAG = Smax_plot(pos_Nvoli)
43
44 line([Nvoli Nvoli 1],[50 sigma_max_GAG sigma_max_GAG],'Linestyle','.','color','r','LineWidth',2)
45
46 % TENSIONE MINIMA
47 % --------------48
49
50
51 % TENSIONE MEDIA
52 % -------------53
54

07/07/06 4.24

C:\Documents and Settings\dedde\Desktop\MATLAB\13.Pann...\tensioni_GAG.m

55
56 % TENSIONE ALTERNATA
57 % -----------------58

2 of 2

S-ar putea să vă placă și