CAPITOLO 3: Prove di simulazione
condotte con ABS
3.1 INTRODUZIONE
In questo capitolo si presentano i risultati di due diversi test effettuati con la versione originale di ABS2.0 e con la versione aggiornata con le function scritte in C++. Infine si fa un confronto tra le prestazioni dei due diversi codici.
Lo scopo delle prove di confronto fatte è quello di verificare in che misura possa incidere sui tempi di calcolo il tipo di linguaggio di programmazione.
Era già noto da precedenti lavori di tesi (cfr. [3]) che, in questo senso, il linguaggio di programmazione C++ era più efficiente di quello Matlab.
Durante lo svolgimento di questo lavoro sono stati testati dei semplici sistemi Simulink costituiti da un unico blocco. Sono state fatte varie prove utilizzando blocchi contenenti m-function in Matlab e le loro corrispondenti in C++ ed S-m-function in Matlab e le loro corrispondenti in C++.
Si è notato come, a beneficiare maggiormente dell’uso del C++, siano le S-function che, come mostrato nel precedente capitolo, sono costituite da una sequenza di subroutines piuttosto che da una sola come le m-function.
3.2 FRENATA 3.2.1 Inputs
I dati di ingresso della simulazione sono contenuti in quattro files Matlab consultabili interamente nell’appendice A-1.
Nelle seguenti tabelle si mostrano i dati di ingresso più importanti per la simulazione di frenata.
NOME DESCRIZIONE VALORE
M Massa dell’aereo [lb] 21227.8
b Apertura alare [m] 27.05
S Superficie alare [m2] 61.0
cmean Corda media aerodinamica [m] 2.303
Ix Componente x tensore d’inerzia [Kg* m2] 156438.22 Iy Componente y tensore d’inerzia [Kg* m2] 307879.5*2
Iz Componente z tensore d’inerzia [Kg* m2] 740607.6
Ixz Componente xz tensore d’inerzia [Kg* m2] - 27938.9
CLo CL0 0.25
CLalfa CLα [1/rad] 5.44
CLde CLδe [1/rad] 0.35001
k K drag to lift coefficient 0.04
CDo CD0 0.06
Cmo Cm0 0.11695
Cmalfa Cmα -4.1367
Cmde Cmδe -2.69978
Tab. 3.1 Geometria dell’aereo (da “RegAC”)
NOME DESCRIZIONE VALORE
Start_time Tempo di inizio simulazione [sec] 0.0
Stop_time Tempo di fine simulazione [sec] 0.6
Max_step Passo massimo di integrazione 0.0001
Tab. 3.2, Regolazioni della simulazione (da “Control”)
T_c Valore percentuale manetta 0
LB_switch Posizione switch freno sinistro 3 (gradino)
LB_start Tempo di inizio gradino di frenata 0.1
LB_period Periodo del gradino di frenata 0.3
LB_ampl Ampiezza gradino di frenata [fless. pedale] 25
RB_switch Posizione switch freno destro 3 (gradino)
RB_start Tempo di inizio gradino di frenata 0.1
RB_period Periodo del gradino di frenata 0.3
RB_ampl Ampiezza gradino di frenata [fless. pedale] 25
S_switch Posizione switch sterzata 1 (costante)
S_c Valore angolo di sterzata [rad] 0
Tab. 3.3, Comandi del pilota (da “Pilot”)
NOME DESCRIZIONE VALORE
d_con_o Distanza longitudinale tra il carrello anteriore e quello principale [m]
10.668083
hcg_o Altezza da terra baricentro aereo [m] 2.287097
dcg_con_o Distanza longitudinale tra la proiezione a
terra del baricentro e il carrello principale 0.5359030 track_o Distanza laterale tra i punti di contatto a
terra dei carrelli principali [m]
4.1
Vcg_o Velocità longitudinale aereo [m/s] 20
phi_o Angolo di rollio [rad] 0
theta_o Angolo di beccheggio [rad]
0.9144690E-06
psi_o Angolo di imbardata [rad] 0
de_o Angolo di piano di coda [rad] 0
da_o Angolo alettoni [rad] 0
dr_o Angolo timone di coda [rad] 0
dt_o Percentuale manetta [%] 40
spin_main Selettore spin pneumatici del carrello
principale (0 Æ ω = ωequil 1Æ ω = 0) 0 spin_nose Selettore spin pneumatici del carrello
anteriore (0 Æ ω = ωequil 1Æ ω = 0) 0
Tab. 3.4, Valori iniziali (da Initcond)
Come si vede dalle Tab. 3.3 e Tab. 3.4, l’aereo, in equilibrio sulla pista a velocità di 20 m/s con i pneumatici in rotazione alla velocità angolare di equilibrio, dopo 0.1 sec. di simulazione subisce un gradino di frenata della durata di 0.3 sec.
3.2.2 Risultati
Come era lecito aspettarsi gli output dei due codici sono risultati identici.
Si riportano di seguito alcuni dei grafici più significativi ottenuti con la versione di ABS aggiornata.
Questi si possono confrontare con i diagrammi riportati in appendice A-3.1 ottenuti con il vecchio codice.
Fig. 3.2 Velocità del centro di massa nel sistema di rif. Inerziale [m/s]
Fig. 3.4 Angoli di Eulero
Fig. 3.6 Deformazione [m] e velocità di deformazione [m/s] del carrello sinistro lungo Z
Fig. 3.8 Accelerazione del mozzo della ruota [m/s2] del carrello sinistro
Fig. 3.10 Velocità del mozzo della ruota [m/s] del carrello anteriore
Fig. 3.12 Velocità angolare [rad/s] e accelerazione angolare [rad/s2] pneumatici principali
Fig. 3.14 Velocità angolare [rad/s] e accelerazione angolare [rad/s2] pneumatico anteriore
3.3 SPIN-UP 3.3.1 Inputs
Si mostrano solo i dati di input che vengono modificati rispetto alla precedente simulazione.
NOME DESCRIZIONE VALORE
LB_switch Posizione switch freno sinistro 1 (costante)
LB_c Valore input di frenata 0
RB_switch Posizione switch freno destro 1 (costante)
RB_c Valore input di frenata 0
Tab. 3.5 Comandi del pilota (da “Pilot”)
NOME DESCRIZIONE VALORE
spin_main Selettore spin pneumatici del carrello
principale (0 Æ ω = ωequil 1Æ ω = 0) 1 spin_nose Selettore spin pneumatici del carrello
anteriore (0 Æ ω = ωequil 1Æ ω = 0) 1
Tab. 3.6 Valori iniziali (da “Initcond”)
In pratica lo spin-up viene simulato facendo partire la simulazione con l’aereo in equilibrio su pista alla velocità di 20 m/s ma con i pneumatici inizializzati a velocità angolare nulla.
Fig. 3.17 Velocità del centro di massa nel sistema di rif. Inerziale [m/s]
Fig. 3.21 Deformazione [m] e velocità di deformazione [m/s] del carrello sinistro lungo X
Fig. 3.22 Deformazione [m] e velocità di deformazione [m/s] del carrello sinistro lungo Z
Fig. 3.23 Accelerazione del mozzo della ruota [m/s2] del carrello sinistro
Fig. 3.25 Velocità angolare [rad/s] e accelerazione angolare [rad/s2] pneumatici principali
3.4 CONFRONTO TRA I RISULTATI OTTENUTI CON FUNCTION MATLAB E C++
Si sono confrontati i tempi di calcolo delle due simulazioni condotte utilizzando sia il codice ABS originale, sia quello avente le funzioni in C++.
Il calcolatore utilizzato è un PC Pentium 3 a 600 Mhz con 256 Megabytes di RAM. La versione di Matlab/Simulink usata è la 6.1.
I risultati sono illustrati nella seguente tabella.
Tipo di simulazione Tempo di simulazione Tempo di calcolo con function Matlab Tempo di calcolo con function C++ Rapporto tempo Matlab/tempo C++
FRENATA 0.6 sec. 701.45 sec. 44.05 sec. 15.92
SPIN-UP 0.6 sec. 694.65 sec. 44.05 sec. 15.76
Tab. 3.7 Confronto tempi di simulazione
I risultati finali dell’intero lavoro di aggiornamento del codice sono stati molto soddisfacenti: si è avuto una diminuizione media dei tempi di calcolo di quasi 16 volte. Ciò risulta molto vantaggioso nel caso di uso intensivo del codice.