Analisi e Ottimizzazione di Traiettorie per SPHERES Zero Robotics Competition 2012 Di cosa si tratta? • Occorre muoversi da un punto A ad un punto B e nel frattempo far fuoriuscire del pulviscolo • Entro un tempo dato (vincolo) • Consumando poco (minimizzazione/vincolo) • Ottenendo il massimo dei punti (ottimizzazione) • Qual e’ la strategia e/o la traiettoria migliore per ottenere tutto cio’? Proviamo a fare un po di conti ? Spostamento e Rotazione (nube) C B (nube) A (punto di partenza) Spostamento Rettilineo (A->C) • • • • • Satellite inizialmente fermo Accelerazione uniforme (quanta?) Moto rettilineo uniforme (per quanto tempo?) Decelerazione uniforme (quanta?) Arresto (circa…) Spostamento Rettilineo Consumo (s) RILASCIO PULVISCOLO F(N) v(m/s) B A acc t(s) C moto uniforme dec acc moto uniforme dec Spostamento Rapido Consumo (s) F(N) V(m/s) B A C C B t(s) Facciamo un po di conti… Azione e reazione Legge di Newton: CO2 F = M*a • F = forza applicata (N) • M = massa di SPHERES (kg), NON “peso” • a = accelerazione (m/s2) Facciamo un po di conti… Durante l’accelerazione (moto accelerato, da fermo): V = a*t 2 S = ½*a*t • • • • V = velocita’ (m/s) a = accelerazione (m/s2) t = tempo (s) S = spostamento (m) Facciamo un po di conti… Moto rettilineo uniforme: V = costante S = V*t • V = velocita’ (m/s) • S = spostamento (m) • t = tempo (s) Facciamo un po di conti… Consumo (carburante): CS = KC * F * t CS = KC * M * a * t = KC * M * V • • • • • • CS = consumo (espresso in s di carburante consumato) F = forza (N) t = tempo (s) KC = consumo specifico (dipende dal motore…) (s/(Ns)) V = velocita’ (m/s) M = massa (kg) Caratterizzazione SPHERES Ma quanto valgono i parametri di SPHERES? Si lanciano delle simulazioni variando F: F T S CS KC M FMAX 0.001N 10s 0 0.01N 10s 0.12m 0 1s 10s/(Ns) 4.15kg - 0.02N 10s 0.24m 2s 10s/(Ns) 4.15kg - 0.05N 10s 0.54m 4.5s 10s/(Ns) 4.15kg 0.046N 0.1N 10s 0.54m 4.5s 10s/(Ns) 4.15kg 0.046N KR ≈ 0.05s/(o/s) E per rilasciare la polvere? Occorre far ruotare SPHERES a 30o/s, una tantum, tramite una coppia. Ma quanto consumo? CR = KR*ωROT • CR = consumo per ruotare (s) • ωROT = velocita’ angolare di rotazione (o/s) • KR = consumo specifico per ruotare ≈ 0.05 s/(o/s) CR ≈ 1.5s Prossimo passo E ora proviamo a: • unire le varie formule, • fare un po di conti, • ragionarci sopra, • ottimizzare le scelte… Sembra facile… ma lo e’! Spostamento Rettilineo Consumo (s) F(N) V(m/s) t(s) TA TS TA TA TS TA Carburante totale Sapendo che: CS = KC*F*t il consumo per giungere a destinazione sara’: CD = P*2*(K 2*(K (KC*F*TA) • • • • CD = consumo per giungere a destinaz. P = numero di tratti rettilinei KC = consumo specifico TA = tempo di accelerazione/decelerazione Spostamento Rettilineo Consumo (s) F(N) V(m/s) TA V/2 TS TA TA V/2 V/2 TS TA t(s) V/2 Spostamento complessivo Spazio totale percorso: ST = P*V*(TA+TS) (TA+TS) = ST / (P*V) • ST = spazio totale percorso per giungere a destinazione • P = numero di tratti rettilinei • TA = tempo di accelerazione/decelerazione • TS = tempo di moto uniforme Combiniamo le formule… Partendo quindi da: CD = P*2*KC*F*TA F*TA = CD/(P*2*KC) (impulso) F = M*a a=F/M V = a*TA V = F/M*TA F*TA=V*M (impulso) Uguagliando, si ottiene la velocita’ di crociera: V = CD/(P*2*KC*M) • • • • CD = consumo per giungere a destinazione P = numero di tratti rettilinei KC = consumo specifico M = massa di SPHERES Spostamento Rettilineo Consumo (s) F(N) V(m/s) t(s) TA TS TA TA TS TA Tempo per giungere Tempo per giungere a destinazione: TD = P*(2*TA+TS) TD =P*(TA+TS)+P*TA • • • • TD = tempo per giungere a destinazione P = numero di tratti rettilinei TA = tempo di accelerazione/decelerazione TS = tempo di moto uniforme Combiniamo le formule… Partendo da: F*TA=V*M TA=V*M/F (TA+TS) = ST / (P*V) TD =P*(TA+TS)+P*TA Tempo per giungere a destinazione: TD = P*ST/(P*V) + P*V*M/F Sostituendo ancora: V = CD/(2*P*KC*M) Si ha: TD =(2*ST*P*KC*M/CD) + CD/(2*KC*F) • • • • TD = tempo per giungere a destinazione P = numero di tratti rettilinei ST = spazio totale percorso per giungere a destinazione CD = Consumo di carburante per giungere a destinazione Combiniamo le formule… Attenzione alle formule! Valgono fintanto che TA+TS > TA Ovvero P*(TA+TS) > P*TA (2*ST*P*KC*M/CD) > CD/(2*KC*F) 1o termine Ovvio! Ma non scordiamolo! 2o termine Verifica dimensionale Proviamo a verificare le “unita’ di misura” della formula TD = (83s2/m * P*ST/CD) + CD/0.92 • ST e’ espresso in m • CD e’ espresso in s (unita’ di misura “strana” per un consumo, ma e’ quella usata per SPHERES) • P e’ un numero intero puro Quindi… [s] = ([s2/m] * [m]/[s]) + [s] Corretto! Un esempio TD = (83s2/m * P*ST/CD) + CD/0.92 Se: • ST = 0.9m (p.to di partenza – satellite) • P = 5 (= 4/5 nubi) • CD = 10s Si ha: TD =(83s2/m * 5*0.9m/10s) + 10s/0.92 = > 37.3s + 10.8s = 48.1s Attenzione… • Le formule trovate valgono se la forza e’ applicata lungo uno degli assi propri del satellite Xs,Ys,Zs. • Cosa succede se si vuole applicare una forza lungo una direzione diversa? • Caso peggiore: la direzione Fx=Fy=Fz=F • Tre propulsori attivi (X, Y, Z) consumo triplo • Forza √ (Fx2+Fy2+Fz2) = √3 * F • Quindi consumo di piu’ a parita’ di forza Z • KC aumenta di un fattore √3. Y F X Prima ottimizzazione… Sapendo che: TD = (2*ST*P*KC*M/CD) + CD/(2*KC*F) Premesso che: ST, M, KC, NON si possono variare • Quale valore di F scegliero’? Il MASSIMO! (FMAX ) TD = (83s2/m > * P*ST/CD) + CD/0.92 • Quale valore di CD scegliero’? Dipende… • Quale valore di P scegliero’? Dipende… Adesso tocca a voi… TD = (83s2/m * P*ST/CD) + CD/0.92 TD CD P*ST 1m 1s 84.1s 2m 3m 4m 6m 8m TD 2s 3s 5s 7.5s 10s 15s 20s CD Adesso tocca a voi… TD = (83s2/m * P*ST/CD) + CD/0.92 Tempo a destino 150 1 1.5 2 100 Td (s) 2.5 3 4 5 50 6 8 10 0 0 5 10 15 Cd (s) 20 25 Ragioniamo un po’… … sulla formula TD = (83s2/m * (P*ST)/CD) + CD/0.92 • A parita’ di consumo CD il tempo totale TD aumenta all’aumentare del prodotto (P * ST) • A parita’ di punti P e di percorso totale ST, il tempo totale dipende dal consumo CD. Ci sara’ un “ottimo” (prossima pagina). • A parita’ di tempo totale TD il consumo CD dipende dal prodotto (P * ST) Seconda ottimizzazione… Se: TD = (83s2/m * (P*ST)/CD) + CD/0.92 Ha un TD “minimo”, dove la derivata e’ nulla! TA+TS < TA d TD(CD) / d CD = 0 T -(83s2/m * (P*ST)/CTD2+T) >+T 1/0.92 = 0 CD,opt2 = (83s2/m * (P*ST) * 0.92) D A S A CD,opt = √(76.4s2/m * (P*ST)) CD Oppure… … il grafico puo’ essere letto “a rovescio” Se voglio far in fretta, consumo parecchio Se voglio consumare TD poco, devo andare adagio Cosa mi conviene? In entrambi i casi perdo punti… CD Ottimizzazione Punteggio Se arrivo per primo, il punteggio finale sara’ dato da : Q = (K – TD) + 2 * (CTOT - CD) Dove: • Punti per chi arriva primo (piu’ si arriva in fretta, piu’ si guadagna) • K e’ una costante che tiene conto del tempo necessario per le “altre manovre” e del tempo richiesto al secondo per terminare • TD e’ il tempo necessario per depositare le nubi ed uscire da zona 1 • Carburante rimasto • CTOT e’ il carburante a disposizione (sommato al rifornimento) • CD e’ il consumo per depositare le nubi ed uscire dalla zona 1 Da cui: Q = K’ – TD – 2 * CD Ottimizzazione Punteggio Sostituendo, si ha: Q = K’ – ((83s2/m * P*ST/CD) + CD/0.92) - 2 * CD Q = K’ - (83s2/m * P*ST/CD) – 3.09 * CD Di cui si cerca il massimo in funzione di CD (derivata = 0, come prima…) CD,opt = 5.18s * √((P*ST) * m-1) e, sostituendo: Qopt = K’ – 2 * 3.09 * CD,opt Qopt = K’ – 32.0s * √((P*ST) * m-1) Quindi, quanti punti “costa” una nube in piu? Spostamento e Rotazione P=5 P=4 P=3 P=2 P=1 +S4+ ST=S1+ P=2 +S5 +S2+ +S3+ A (punto di partenza) P=1 (sat) Punteggio finale (ST = 1m) P (nubi) 1 (0) 2 (1) 3 (2) 4 (3) 5 (4) 7 (6) 9 (8) 11 (10) Q Penalty Pulv. -32s -12s -42.3s -8.8s -8s -55.4s -5.4s -16s -64s -2.3s -24s -71.6s -28s -84.7s -28s -96s -28s -106.1s -28s TOT -44s -59.1s -76.8s -90.3s -100s -113s -124s -134s CD,opt 5.2s 7.3s 9.0s 10.4s 11.6s 13.7s 15.5s 17.2s Punteggio finale (ST = 1m) P (nubi) 1 (1) 2 (2) 3 (3) 4 (4) 5 (5) 7 (7) Q Penalty Pulv. -32s -8.8s -8s -42.3s -5.4s -16s -55.4s -2.3s -24s -64s -28s -71.6s -28s -84.7s -28s TOT -48.8s -63.7s -81.7s -92s -100s -113s CD,opt 5.2s 7.3s 9.0s 10.4s 11.6s 13.7s Ma Attenzione… Ci sono anche tanti altri fattori da tenere in considerazione… • Piu’ pulviscolo rilascio piu’ rallento l’avversario… • Piu’ velocemente arrivo al rifornimento piu’ probabilita’ ho di prendere il piu’ fornito… • Ecc. Ecc. Ora avete gli strumenti matematici per considerarli tutti… Concludendo… BUONA GARA E CHE VINCA IL MIGLIORE!