• Non ci sono risultati.

Controllo Ottimo per Veicoli Robotici da Corsa

N/A
N/A
Protected

Academic year: 2021

Condividi "Controllo Ottimo per Veicoli Robotici da Corsa"

Copied!
204
0
0

Testo completo

(1)

Universit`

a di Pisa

FACOLT `

A DI INGEGNERIA

Corso di Laurea Specialistica in Ingegneria dell’Automazione

Tesi di laurea specialistica

Controllo Ottimo in Tempo Reale

per Veicoli Robotici da Corsa

Candidato:

Alessio Salvatore Coppola

Relatore:

Prof.ssa Lucia Pallottino

Correlatore:

(2)
(3)

Ringraziamenti

Il mio primo ringraziamento è rivolto alla Prof.ssa Lucia Pallottino e al Dott. Paolo

Salaris per avermi offerto la possibilità di realizzare questo interessante lavoro

e per avermi saputo guidare con professionalità e competenza durante tutto lo

sviluppo di questa tesi.

Il ringraziamento più importante va alla mia famiglia, a mio padre, a mia madre e

a mio fratello Davide che anche se lontani mi hanno fatto sentire vicino tutto il loro

supporto e il loro affetto e mi hanno permesso di raggiungere questo importante

traguardo.

(4)
(5)

Indice

Indice

V

Introduzione

XI

1

Modello cinematico di una macchina robotica da corsa

1

1.1 Premesse sui robot mobili su ruote (WMR) . . . .

1

1.2 Modello dinamico di una macchina . . . .

2

1.3 Cinematica di un veicolo car-like . . . .

4

1.3.1 Parametrizzazione dei coefficienti . . . .

5

1.3.2 Vincolo di non ribaltamento . . . .

6

1.3.3 Effetto-suolo aerodinamico su veicoli da corsa . . . .

7

2

Controllo Ottimo per Macchine da Corsa

9

2.1 Introduzione al controllo ottimo . . . .

9

2.1.1 Controllo ottimo vincolato . . . 12

2.2 Problema ottimo per un veicolo car-like . . . 13

2.2.1 Presentazione del problema . . . 13

2.2.2 Estremali e attivazione dei vincoli . . . 13

2.2.3 Considerazioni finali sul controllo ottimo . . . 17

2.3 Dalla pianificazione ottima locale a quella real-time globale . . . 18

3

Analisi numerica della manovra in curva

19

3.1 Applicazioni e librerie per il controllo ottimo . . . 19

3.1.1 Risolutori per la programmazione non lineare . . . 21

3.2 Introduzione a GPOPS-II . . . 21

3.2.1 Sommario . . . 21

3.2.2 Generalità matematiche sugli strumenti utilizzati nei

soft-ware di controllo ottimo . . . 21

3.2.3 Il controllo ottimo con GPOPS-II . . . 24

3.3 Studio della manovra in curva . . . 27

3.3.1 Setting di simulazione . . . 27

3.3.2 TEST 1 . . . 27

3.3.3 TEST 2 . . . 28

3.4 Spazio di percorrenza minimo per una curva a raggio massimo

costante . . . 29

(6)

3.4.2

Setting di simulazione . . . 31

3.4.3

Risultati numerici . . . 33

4 Analisi della manovra ottima nei tratti rettilinei

37

4.1 Introduzione . . . 37

4.2 Tratti rettilinei percorsi a velocità costante . . . 37

4.2.1

Movimento di tipo RSL . . . 38

4.2.2

Movimento di tipo LSR . . . 40

4.3 Tratti rettilinei percorsi a velocità variabile . . . 41

4.3.1

Movimento di tipo SRSLS . . . 41

4.3.2

Movimento di tipo SLSRS . . . 45

4.4 Simulazione di un rettilineo tramite Matlab . . . 47

4.4.1

Setting di simulazione . . . 48

4.4.2

Risultati numerici . . . 48

4.4.3

Note Conclusive . . . 58

5 Analisi matematica della durata minima di uscita dal settore

59

5.1 Introduzione . . . 59

5.2 Analisi della manovra in un settore rettilineo . . . 59

5.3 Analisi della manovra in una curva . . . 61

6 Pianificazione globale su tracciato

65

6.1 Il circuito di Sepang . . . 65

6.1.1

Introduzione . . . 65

6.1.2

Dati tecnici del tracciato . . . 66

6.2 Circuito Sepang per GPOPS-II . . . 67

6.2.1

Rappresentazione del tracciato da corsa . . . 69

6.2.2

Setting di simulazione . . . 70

6.3 Circuito Sepang-like ridotto . . . 71

6.3.1

TEST 1 . . . 74

6.3.2

TEST 2 . . . 77

6.3.3

Circuito Sepang-like ridotto percorso con a

l

=

3 g . . . 82

6.4 Circuito Sepang-like ridotto adattato . . . 89

6.4.1

Studio delle tipologie di curve candidate . . . 89

6.4.2

Setting di simulazione . . . 100

6.4.3

Risultati ottenuti con accelerazione laterale massima 3 g . . . 100

6.4.4

Conclusione delle prove effettuate . . . 123

6.5 Analisi della concatenazione tra gli estremali . . . 129

6.5.1

Studio dei singoli settori . . . 129

6.5.2

Riepilogo degli estremali presenti nel tracciato . . . 164

6.5.3

Analisi del giro completo . . . 165

7 Simulazioni su software TORCS

169

7.1 Una panoramica generale su TORCS . . . 169

7.2 Implementazione del Controllore di Moto . . . 170

7.3 Tuning della legge di controllo con Matlab . . . 173

VI

(7)

7.4 Adattamento delle leggi di controllo su TORCS . . . 175

7.4.1 Configurazione della macchina TORCS . . . 175

7.4.2 Risultati ottenuti . . . 176

Conclusioni e sviluppi futuri

179

A Informazioni numeriche sul circuito Sepang-Like

181

A.1 Messaggi di uscita ottenuti nelle simulazioni con il circuito

Sepang-like ridotto . . . 181

(8)
(9)

Sommario

Nella presente tesi viene discusso il problema di controllo ottimo in tempo reale per una macchina robotizzata da corsa, con la finalità di riuscire a percorrere un tracciato nel minor tempo possibile.

In primo luogo, vengono identificate la sequenza di manovre ottime che permettono alla macchina di completare ogni settore del percorso con tempo minimo: inizialmente vengo-no studiate le mavengo-novre elementari che soddisfavengo-no le condizioni di ottimalità del Principio del Minimo di Pontryagin, sviluppando un alfabeto dei casi possibili; in secondo luogo, si cerca la sequenza di manovre elementari che permetta di attraversare ogni porzione di circuito nel minor tempo possibile, al variare della posizione assunta dalla macchina all’interno del tracciato. In secondo fase, affrontiamo il problema della pianificazione globale della traiettoria congiungendo tutte le manovre ammissibili che attraversano ogni settore del circuito, attraverso la costruzione di un grafo orientato che può essere interro-gato durante la guida della macchina, in tempo reale, per scegliere i comandi di controllo coerenti con le manovre ottime studiate. A supporto di quanto esposto analiticamente, vengono forniti risultati numerici tramite il software per la risoluzione di problemi di controllo ottimo GPOPS−II , su Matlab , per rettilinei e curve generiche, e dopo anche su un circuito definito nella tesi stessa.

Infine, i risultati numerici ottenuti con GPOPS−II sul circuito completo sono utilizzati per controllare una macchina del simulatore di guida TORCS in tempo reale.

In this work we discussed the problem of optimal control in real time for robotic racing car, with the aim of being able to complete a track in the shortest possible time.

Abstract

First, we identified optimal maneuvers sequence that allow the car to complete each sec-tion of the course with minimum time: initially we studied elementary maneuvers that satisfy the Pontryagin Minimum, developing an alphabet of possible cases; secondly, we search the sequence of elementary maneuvers that allows to cross any portion of the cir-cuit in the shortest possible time, to vary the position assumed the car inside the track. In the second phase, we address the problem of the global planning of the trajectory, joining all feasible maneuvers that cross each sector of the circuit, through the construction of a directed graph that can be queried during driving the car, in real time, to choose control commands consistent with the optimal maneuvers studied. To support of the above, we provided numerical results using a software for solving optimal control problems GPOPS-II, on Matlab, for generic straight and curves, and then also on a circuit described in the thesis.

Finally, we used the numerical results obtained with GPOPS-II on full circuit to control a car on the driving simulator TORCS, in real time.

(10)
(11)

Introduzione

Il controllo di veicoli autonomi è un compito altamente complesso. Realizzare un veicolo in grado di muoversi senza indicazioni da parte del pilota richiede una vasta conoscen-za teorica e pratica: un veicolo autonomo deve essere in grado di prendere decisioni in maniera indipendente, riuscendo a rispondere alle situazioni che si presentano nel modo più adatto. I veicoli autonomi possono essere progettati per svolgere differenti mansioni: applicazioni indoor come la pulizia di ambienti estesi, operazioni di servizio in musei e negozi, sorveglianza interna di edifici, e stoccaggio di merci in magazzini automatizzati; applicazioni outdoor come il campo militare e le operazioni di sminamento, esplorazio-ne subacquea e spaziale, protezioesplorazio-ne civile e boschiva. In questa tesi abbiamo deciso di concentrarci sul controllo di veicoli autonomi in un ambiente da competizione, ovvero nel caso di macchine che competono su un circuito per vincere una gara: questo scenario può essere applicato in maniera generale su qualsiasi percorso noto, e quindi la pianificazione ottima può essere utilizzata in campi diversi da quello competitivo, ottenendo un metodo universale di controllo ottimo in tempo reale.

Uno dei problemi di maggiore ricerca in merito alla guida autonoma per macchine da cor-sa è lo sviluppo di adeguati algoritmi in grado di pianificare una traiettoria che permetta al veicolo di completare il numero di giri assegnato al circuito considerato, nel minor tempo possibile.

Nella pianificazione della traiettoria bisogna considerare il contesto in cui si muove la macchina. La scelta del percorso da seguire è molto differente nel caso di circuito per competizioni da corsa, rispetto la strada cittadina [1] e [2]: infatti, l’ambiente dove si svolgono le competizioni è fortemente strutturato, mentre il circuito è accessibile solo ad un numero ristretto e noto di macchine.

Sebbene il controllo di veicoli autonomi può sembrare un argomento abbastanza recente, diverse ricerche sono state effettuate nel campo della robotica da moltissimo tempo: la maggior parte delle attività svolte in merito fanno riferimento alla pianificazione del per-corso, come dimostrano i risultati ottenuti da NavLab, a cominciare dal 1987 [3], [4]. Da allora, progressi significativi sono stati raggiunti in questo campo di ricerca: la Defense Advanced Research Projects Agency(DARPA) ha organizzato il DARPA Grand Challenge (nel 2004 e nel 2005) ed il DARPA Urban Challenge (nel 2007), al fine di testare la robu-stezza di varie tipologie di pianificazione della traiettoria, su veicoli differenti. Il DARPA Grand Challenge del 2005 è stato vinto da Stanley [5], un veicolo autonomo dell’Universi-tà di Stanford che è riuscito a percorrere 212 km autonomamente prima di finire fuori dal circuito. Un altro veicolo autonomo dell’Università di Stanford, chiamato Junior [6] arrivò secondo nel DARPA Urban Challenge del 2007 dietro il Tartan Racing Team dell’Università Carnegie Mellon [7], dopo aver percorso autonomamente su un percorso urbano di 96 km in mezzo al traffico.

Esistono molte attività di ricerca che si focalizzano sullo studio del controllo autonomo di macchine da corsa all’interno di un ambiente di simulazione: l’ottimizzazione della traiettoria in questo campo viene mostrata in molti articoli, si veda [8], [9], [10]. La

(12)

combinazione di un software di ottimizzazione con un simulatore di guida è destinata al controllo ottimo di una macchina su un particolare tracciato: molti dei simulatori da corsa utilizzano l’intelligenza artificiale (o driver IA) che impiega algoritmi di calcolo più o meno complessi in grado di fornire la traiettoria desiderata; più recentemente, sono stati proposti approcci più complessi come mostrati negli articoli di Gerdts [11], [12], e Kirches [13]; inoltre, una soluzione ai problemi di controllo ottimo periodici in test-driving per macchine viene mostrato da Sager [14]. Per trovare la traiettoria ottima sono stati utilizzati anche gli algoritmi genetici, come mostrato nell’articolo [15].

Nella campo della robotica molto lavoro è stato svolto anche nella ricerca di percorsi a minima lunghezza su differenti tipologie di veicolo: i veicoli car-like sono stati utilizzati da Dubins [16], da Reeds e Sheep [17] e da Alexander ed altri [18]; altri hanno preso in considerazione robot con guida differenziale e sensori a ridotto campo di vista [19], [20]. LaValle ed altri [21] si sono preoccupati di investigare sulla rotazione minima delle ruote di robot a guida differenziale. Per quanto concerne lo studio delle traiettorie a tempo minimo sono stati sviluppati articoli su veicoli a guida differenziale [22], su veicoli omnidirezionali [23], sia su robot mobili guidati con controlli limitati [24], sia su veicoli con ruote guidate in maniera indipendente [25].

Il contenuto esposto in questa tesi parte da un’attività di ricerca effettuata da Pallottino ed altri [26], [27], riguardante lo studio delle manovre ottime che una macchina da corsa deve eseguire per percorrere una generica pista nel minor tempo possibile: l’approccio seguito nell’analisi della soluzione al problema di controllo ottimo fa riferimento ad un articolo differente [27], che si basa sulla decomposizione del tracciato in settori, e ciascun settore in celle; in questo modo è possibile ottenere un approccio che fornisce una solu-zione risultante da un “buon” compromesso tra prestazioni e tempo di calcolo. In primo luogo, si sintetizza una pianificazione locale che connetta i centri di due celle situate alla frontiera di un settore per tutte le velocità iniziali e finali previste in un opportuno insieme discreto di riferimento: dai risultati ottenuti con la pianificazione locale di ciascun settore, costruiamo un grafo dove i nodi sono associati alle celle, e gli archi pesati ed orientati tra due nodi hanno come costo il tempo minimo di percorrenza necessario a raggiunge-re il nodo successivo. Successivamente, viene sviluppata una pianificazione globale, che fornisca una soluzione all’intero tracciato, risolvendo una ricerca del cammino minimo sull’intero grafo rappresentante la connessione tra tutti i settori del circuito.

Partendo da [26] e [27], è stato modificato il modello cinematico del veicolo secondo le esigenze, fornendo anche una valutazione analitica sui parametri che ne identificano le prestazioni da competizione; successivamente è stato risolto il problema del controllo ottimo per il modello proposto, fornendo un alfabeto delle manovre ottime identificate. Oltre ad esporre varie considerazioni di tipo matematico su tratti di strada retti o curvi, sono stati prodotti numerosi risultati numerici in merito alle ipotesi di lavoro adottate. Il modello utilizzato in questa tesi è ispirato a quello proposto per la macchina Stanley di Stanford [28], che offre una sufficiente copertura ai più importanti fenomeni fisici che di solito sono considerati in questo caso. Sono previsti due ingressi di controllo, in modo da dividere il problema in due sotto-problemi: un angolo di sterzo che agisce sul volante in modo da permettere il controllo dell’orientazione della macchina; un’accelerazione di comando che agisce sulla potenza del motore e permette di controllare la velocità del veicolo.

Quando un veicolo percorre una pista segue una traiettoria che appartiene ad un insieme di infinite traiettorie possibili: una traiettoria ottima è il percorso seguito dalla macchina per completare un giro del circuito nel minor tempo possibile. La ricerca della traiettoria ottima è stata affrontata nel modo seguente: trovare un insieme di manovre che permettano alla macchina di passare nel minor tempo possibile da una configurazione ad un’altra, ciascuna

(13)

identificata da una posizione sul circuito e da una velocità, rispettando i vincoli dinamici della macchina e i vincoli geometrici del tracciato.

Il lavoro svolto è servito ad applicare il controllo ottimo delle manovre che un veicolo può effettuare durante una gara con un approccio di pianificazione globale che fosse possibile eseguire in contemporanea con la guida della macchina stessa: in altre parole, abbiamo sviluppato uno studio locale dei settori che comprendono il circuito e successivamente abbiamo raccolto le informazioni in una forma che potesse essere utilizzata durante la fase di guida in maniera semplice ed efficace, con tempi di risposta che permettano un controllo real-time sui comandi di guida della macchina. Inizialmente viene presentato il modello cinematico che rappresenta la macchina robotica da corsa e vengono studiate le manovre che soddisfano le condizioni di ottimalità del Principio del Minimo di Pontrya-gin, fornendo un alfabeto delle manovre elementari. Il procedimento adottato prevede la scomposizione del tracciato in settori, e ciascun settore in celle: dapprima viene cercata la sequenza di manovre elementari identificante la traiettoria ottima che connette i centri di due celle situati alla frontiera di ogni settore. Successivamente, costruiamo un grafo che rappresenta l’intero circuito, dove i nodi sono associati alle celle di ciascun settore, a gli archi rappresentano il costo della traiettoria ammissibile che permette di passare da una cella all’altra nel minor tempo possibile. Giunti a questa fase, è possibile eseguire una pianificazione globale della traiettoria in tempo reale, utilizzando un algoritmo di ricerca del cammino minimo sul grafo costruito.

La tesi è suddivisa nel modo seguente:

• Nel Capitolo 1 viene presentato il modello cinematico utilizzato per descrivere l’evo-luzione nel tempo della dinamica della nostra macchina, assieme ai parametri che identificano le prestazioni di competizione desiderate, e con i vincoli dinamici che rendano realistica la dinamica del veicolo stesso.

• Nel Capitolo 2 viene trattato lo studio del problema di controllo ottimo, ricavando gli estremali che rappresentano le manovre ottime del modello cinematico considerato. Il capitolo fornisce anche un alfabeto delle manovre ottime ricavate attraverso lo studio dell’Hamiltoniano con il Principio del Minimo di Pontryagin.

• Nel Capitolo 3 viene esposto l’ambiente software GPOPS−II su cui è stato testato il procedimento seguito, ed un primo approccio numerico sulle manovre necessarie ad affrontare una generica curva di un tracciato. Dopo aver presentato l’ambiente software su cui sono stati sviluppati i test numerici, il capitolo mostra un primo approccio, meno rigoroso e più generale, sulla risoluzione numerica del problema di controllo ottimo per una generica curva, evidenziando l’attivazione dei vincoli sulle variabili di stato e controllo; successivamente, viene proposto un approccio più accurato, considerando curve speciali (ben descritte all’interno del capitolo), al fine di ottenere un procedimento metodologico alla trattazione del problema di controllo ottimo per un veicolo che si trova su una porzione di tracciato curvilineo. • Nel Capitolo 4 viene sviluppato uno studio analitico sulla traiettoria di una mac-china che percorre un rettilineo, individuando le manovre elementari che connetto-no la posizione finale a quella iniziale, con un approccio tipo Dubins. Il capitolo espone il problema in due fasi: prima viene studiato il problema in condizioni di velocità costante; successivamente, si considera la dinamica del modello cine-matico proposto, con la velocità del veicolo variabile nel tempo. A fine capitolo vengono forniti i risultati numerici ottenuti su un generico rettilineo, rispetto alle informazioni introdotte nelle pagine precedenti.

(14)

• Nel Capitolo 5 si affronta analiticamente l’evoluzione della velocità nel tempo, for-nendo una risposta matematica al tempo necessario a percorrere ogni tipo di settore, rettilineo o curvilineo, con il profilo di velocità desiderato.

• Nel Capitolo 6 si descrivono i risultati numerici ottenuti con GPOPS−II su un trac-ciato ricavato dalle geometrie del circuito Sepang. La prima parte del capitolo espone le caratteristiche generali del tracciato considerato durante il processo simu-lativo; in secondo luogo, vengono proposti alcuni test sul circuito descritto; succes-sivamente, vengono utilizzate le informazioni presenti nel capitolo 3 per migliorare i risultati ottenuti sul circuito proposto: i risultati acquisiti in quest’ultima fase vengono utilizzati per fornire le parole (le WORDS) che identificano le traiettorie ottime, secondo l’alfabeto delle manovre esposto nel capitolo 2.

• Nel Capitolo 7 si propone l’utilizzo real-time delle informazioni ottenute nei capitoli precedenti per guidare la macchina in un ambiente fisicamente ben costruito come TORCS, con una traiettoria ottima risultante dai dati numerici ottenuti con Matlab. Il capitolo mostra prima le leggi di controllo in grado di permettere l’inseguimento di una traiettoria risultante da un insieme di traiettorie note a priori; successiva-mente le leggi di controllo vengono testate su Matlab, ed infine si adatta il controllo del moto per una macchina TORCS in grado di replicare le prestazioni utilizzate nei testing del capitolo precedente.

(15)

Capitolo 1

Modello cinematico di una

macchina robotica da corsa

1.1

Premesse sui robot mobili su ruote (WMR)

I robot mobili (o Autonomous Mobile Robots, AMR) rappresentano uno dei più recenti sviluppi all’interno della Robotica. A differenza dei robot che operano in ambienti in-dustriali, siano essi fissi o anche capaci di spostarsi come gli AGV (Automated Guided Vehicles), i robot mobili più avanzati sono principalmente destinati ad operare in ambienti non strutturati, le cui caratteristiche sono variabili e non note a priori. In conseguenza di ciò, il paradigma di funzionamento di un robot mobile si basa in larga misura sulla capacità del sistema di compiere, in maniera autonoma, scelte e decisioni che consenta-no di ottimizzare il proprio comportamento in relazione alle circostanze e al compito da svolgere.

Esistono diverse categorie di robot mobili, da quelli dotati di gambe a quelli che sfruttano lo scivolamento su una superficie a basso attrito tangenziale, da quelli dotati di cingoli a quelli che si muovono tramite delle eliche in un ambiente sottomarino.

Sicuramente la categoria più diffusa è quella dei robot mobili su ruote (o Wheeled Mobile Robot, WMR). La nascita dei primi robot su ruote, risale agli anni 50: la tecnologia fu sviluppata per la prima volta da Barret Electronics, per Grand Rapids, Michigan; attorno agli anni 70 la tecnologia arrivò anche in Europa.

Le ruote risultano sicuramente il mezzo di locomozione più semplice in un ambiente ter-restre. Presentano ridotti problemi di stabilità, usano, a parità di distanza percorsa, meno energia rispetto ad altri sistemi di locomozione e permettono ad un robot di spostarsi molto velocemente. I veicoli che si muovono su ruote sono agevolmente manovrabili, alcuni sono capaci di girare su se stessi o di muoversi parallelamente al proprio asse. I robot mobili su ruote, a seconda del loro grado di mobilità, possono essere suddivisi in due categorie: robot con mobilità localmente ristretta; robot con piena mobilità.

Nel primo caso avremo robot che presentano dei vincoli anolonomi (o non olonomi), nel secondo caso invece parleremo di robot omnidirezionali.

Per robot mobile su ruote non olonomo s’intende un veicolo che non può muoversi in tutte le direzioni.

Un modello cinematico che approssima la mobilità di un’automobile viene definito car-like: caratterizzato da vincoli anolonomi, con l’ipotesi che le ruote girino senza slittamenti. Per il veicolo olonomo c’è invece la piena mobilità.

(16)

In termini matematici un sistema è olonomo quando le equazioni che lo descrivono, che possono anche contenere le derivate rispetto al tempo delle coordinate, possono essere comunque trasformate in equazioni che contengono le coordinate stesse. Tali equazioni possono quindi essere integrate. Invece, un sistema è anolonomo quando le equazioni non possono essere integrate. La caratteristica è che il numero delle variabili di stato eccede il numero dei gradi di libertà di un numero pari alle equazioni di vincolo non integrabili. I problemi principali associati a questi problemi sono la stabilizzazione, la pianificazione e l’inseguimento di una traiettoria (si veda [29], [30] e [31] per approfondimenti).

Vi sono diversi tipi di robot su ruote, e uno tra i più interessanti per la nostra applicazione è il modello Car-like: i veicoli di tipo car-like sono dotati di quattro ruote, due ruote fisse sull’asse posteriore e due ruote orientabili sull’asse anteriore. Il motore che governa il movimento determina la trazione (anteriore o posteriore) del robot. Un secondo motore regola il meccanismo di sterzo, e permette al veicolo di girare tramite una rotazione delle ruote anteriori.

1.2

Modello dinamico di una macchina

Per utilizzare un modello realistico della macchina, che comprendesse la cinematica e gli effetti dinamici più importanti abbiamo preso in esame il lavoro svolto da Hoffmann [28]. Definito un sistema di riferimento Globale hWi = {Ow; Xw, Yw, Zw}, consideriamo il

modello dinamico di una macchina tipo biciclo [32] come mostrato in figura 1.1, gli ef-fetti dell’aderenza delle gomme e del motore del servosterzo1 forniscono le relazioni

dinamiche seguenti:          ˙vx= Fxr+Fxfcos ϕ−Fm yfsin ϕ+ ˙ϑ vy ˙vy= Fyr +Fxfsin ϕ+Fyfcos ϕ m − ˙ϑ vx ¨ϑ = lf(Fxfsin ϕ+Fyfcos ϕ)−lrFyr Iz |ϕ| 6 ϕmax

Figura 1.1. Modello dinamico di una macchina

dove vx e vy indicano le velocità longitudinale e laterale del Centro di Massa (CdM) del

veicolo, ϕ è l’angolo di sterzo (con ϕmax massimo angolo di sterzata) e ϑ rappresenta la 1dispositivo che gestisce la sterzata del veicolo assieme il volante

(17)

direzione del veicolo rispetto l’asse Xw. L = lf+ lr è l’interasse delle ruote, con lfe lr le

distanze longitudinali dal CdM delle ruote anteriori e posteriori.

Ciascuna ruota fornisce una forza di trazione laterale della ruota Fyfe Fyrperpendicolare

alla direzione di rotolamento della ruota stessa, ed una forza longitudinale di trazione Fxf

e Fxrparallela alla direzione di rotolamento.

Le forze laterali sono definite nel modo seguente: Fyf ≈ −cyαf

Fyr≈ −cyαr

dove l’approssimazione è dovuta alla linearizzazione delle relazioni non lineari per asfalto asciutto, e cy rappresenta la rigidità centripeta della gomma (nota anche come costante

di trazione laterale). αf e αr sono gli angoli di deriva delle ruote anteriori e posteriori,

espressi nel modo seguente: αf=tan−1vy+ ˙ϑ lf vx  + ϕ αr=tan−1 v y− ˙ϑ lr vx 

Allo stesso modo, le forze longitudinali sono definiti dalle relazioni seguenti: Fxf ≈ cxσf

Fxr≈ cxσr (1.1)

dove anche qui l’approssimazione è dovuta alla linearizzazione delle relazioni non lineari per asfalto asciutto, mentre cx è la rigidità longitudinale della gomma (nota anche come

costante di trazione longitudinale). σfe σrindicano il rapporto di slittamento della ruota

(anteriore o posteriore), e sono definite nel modo seguente: σi=

 reffωw,i−vx

vx durante la frenata

reffωw,i−vx

reffωw,i durante l’accelerazione

con i ∈ {f, r} (1.2)

dove reffè il raggio efficace della ruota e ωw,i è la velocità angolare della ruota. Il

mo-dello dinamico può essere modificato aggiungendo il contributo della forza aerodinamica sul veicolo Faero = CXvαx, dove CX è il coefficiente di resistenza aerodinamica2 (più in

generale in aerodinamica si indica con CD, ma in ambito automobilistico viene cambiato

il pedice della costante), mentre α = 1 rappresenta un moto d’aria laminare3e α = 2 inve-ce un moto turbolento4. Per semplicità si è deciso di utilizzare il primo caso. Il modello

completo è dunque il sistema seguente:                ˙x = vx cos ϑ − vy sin ϑ

˙y = vx sin ϑ + vy cos ϑ

˙vx = Fxr+Fxfcos ϕ−Fm yfsin ϕ+ ˙ϑ vy−Faerom

˙vy = Fyr+Fxfsin ϕ+Fm yfcos ϕ − ˙ϑ vx

¨ϑ = lf(Fxfsin ϕ+Fyfcos ϕ)−lrFyr

Iz

(1.3)

2il coefficiente di resistenza C

D (o CX) è un termine adimensionale che varia in funzione della

forma geometrica dell’ala, dell’angolo di attacco, del numero di Reynolds e del numero di Mach. La forza di resistenza viene influenzata dalla superficie frontale della vettura

3un flusso laminare presenta un moto dell’aria con scorrimento di strati infinitesimi gli uni sugli

altri senza alcun tipo di rimescolamento di fluido: il flusso è governato dalle forze viscose ed è costante nel tempo

4il flusso turbolento è il moto di un fluido in cui le forze viscose non sono sufficienti a contrastare

le forze d’inerzia: il moto delle particelle del fluido che ne risulta avviene in maniera caotica, senza seguire traiettorie ordinate, come succede invece nel caso di regime laminare

(18)

dove gli ingressi sono l’angolo di sterzata ϕ e la velocità angolare delle ruote ωw

risul-tante dalle applicazione delle relazioni 1.1. Si noti che x, y e ϑ sono espressi nel sistema di riferimento globale, mentre le velocità vxe vy sono espressi nel sistema di riferimento

locale alla macchina, con origine sul CdM. Più in dettaglio, le coordinate x e y indicano la posizione del centro dell’asse delle ruote posteriori, m è la massa della vettura mentre Izè il momento d’inerzia rispetto l’asse Z.

1.3

Cinematica di un veicolo car-like

Il lavoro svolto in questa tesi prevede l’impiego di veicoli robotici tipo biciclo (car-like), ovvero un uniciclo collegato rigidamente ad un secondo uniciclo tramite un link perpen-dicolare al primo uniciclo: scelto un vettore configurazione rappresentante il moto del veicolo unicamente sul piano come q = [x, y, ϑ, v]T, partendo dal sistema 1.3, si ottiene il

modello cinematico seguente:

    ˙x ˙y ˙ϑ ˙v     =     vcos ϑ vsin ϑ v Ltan ϕ av− b vα     (1.4)

dove x e y sono le coordinate dell’interasse dell’uniciclo posteriore rispetto al sistema di riferimento globale, ϑ è l’orientazione del link di connessione, lungo L, rispetto all’asse X globale, v è la velocità longitudinale, mentre ave ϕ rappresentano gli ingressi di controllo

per l’accelerazione e la sterzata del veicolo; inoltre, b indica il coefficiente legato all’inerzia del veicolo, e α invece è un parametro generale che può valere 1 o 2.

Il modello 1.4 è ottenuto imponendo b = CX

m e

av=

Fxr+ Fxf cos ϕ − Fyf sin ϕ

m

che può essere semplificato con l’espressione av≈

Fxr+ Fxf

m

visto che l’angolo di sterzata è limitato; il termine ˙ϑ vyinfine, non viene preso in

conside-razione.

Nello sviluppo del controllo ottimo, non sono stati presi in considerazione vincoli sulle variabili di stato, ed in particolare sulla velocità, visto che il problema di controllo otti-mo ne può risultare irrisolvibile. Sono invece previste delle limitazioni sulle variabili di controllo:

• av∈ [amin, amax]

• ϕ ∈ [−ϕmax, +ϕmax]

(19)

Successivamente, l’accelerazione di comando minima e massima verranno scelte come amax = b vmaxe amin= −b vmax in modo da limitare indirettamente la velocità

massi-ma raggiungibile dal veicolo nel primo caso, ed ottenere un’azione frenante simile al caso reale con la seconda scelta: infatti, se il veicolo viene comandato con accelerazione di con-trollo massima, la velocità cresce fino a giungere a quella massima, rimanendo costante e pari a vmax (visto che ˙v = amax− b vmax =0 per come è stata scelta amax); viceversa,

se il veicolo viene comandato con accelerazione di controllo minima, la velocità decresce in maniera più rapida fino a giungere ad una velocità che rimane maggiore di zero per l’ottimalità della soluzione (a tal proposito si aggiunge un vincolo sulla velocità v > 0 che non viene preso in considerazione nell’analisi dell’ottimo, visto che una soluzione che minimizza il tempo di percorrenza tramite il controllo ottimo non può prevedere che la velocità si annulli; per come è fatta la dinamica del vettore configurazione del veicolo considerato, una velocità nulla comporterebbe la fermata del veicolo stesso o la partenza da fermo se av6= 0).

Si nota che nella dinamica della velocità in 1.4 l’andamento della velocità nel tempo è di tipo asintotico e quindi, la definizione di accelerazione di comando massima appena data comporterà il raggiungimento della velocità massima per il nostro veicolo in un tempo infinito: per questo motivo, nei casi in cui sarà necessario il raggiungimento della velocità massima concordata sarà opportuno scegliere gli ingressi di controllo nell’accelerazione nel modo seguente:

amax= +b pvvmax

amin= −b pvvmax (1.5)

dove pv > 1 (es: pv = 1.02 o 1.05) serve ad allontanare l’asintotica convergenza della

velocità al valore massimo ammissibile.

Infine, il biciclo sarà soggetto ad un’accelerazione laterale al = v

2

R (dove R è il raggio

di curvatura) il che supporrà la presenza di un vincolo di non ribaltamento, che limiterà la velocità in curva, in modo tale che la forza di frizione possa fornire l’accelerazione laterale richiesta mv 2 R 6µ m g => v 2tan ϕ 6 a lL, con R = tan ϕL (1.6)

dove m è la massa del veicolo e g invece l’accelerazione gravitazionale.

1.3.1

Parametrizzazione dei coefficienti

Il coefficiente b è un parametro di rallentamento della dinamica della velocità, che serve ad identificare l’accelerazione coerente alle caratteristiche del veicolo, ovvero permette di far evolvere la velocità in modo da tenere conto della massa che il veicolo possiede. Per scegliere al meglio il coefficiente b si può dunque prendere in considerazione il rapporto potenza-peso della vettura reale ed identificare il valore di b che lo renda più realistico. In generale

P

m = F vm = mm˙v v = ˙v v

P

m = (av− b vα) v

Nel caso di α = 1 e av= amaxsi ottiene

P

m = (b vmax− b v) v → P

(20)

b =

P m

(vmax− v) v (1.7)

In base a prove di simulazione, si è deciso di adottare un veicolo con massa pari a 642 kg, con una potenza di 750 CV, ovvero circa 551.6 kW: il rapporto potenza-peso così ottenuto è 0.8592 kW/kg, mentre b è stato ricavato approssimando la relazione (1.7) nel modo seguente: b = P m (vmax− v) v ≈ P m (v∗)2

Scegliendo una velocità massima vmax = 350 km/h e pv = 1.02 nella definizione dei

limiti sull’accelerazione di comando 1.5, e ricavando il coefficiente b tramite l’imposizione di v∗pari a 230 km/h, il nostro veicolo si muove con le prestazioni seguenti:

• Accelerazione da 0 a 100 km/h in circa 1.56 secondi; • Accelerazione da 0 a 200 km/h in circa 3.90 secondi; • Accelerazione da 0 a 300 km/h in circa 8.71 secondi; • Accelerazione da 0 a 350 km/h in circa 18.68 secondi; • Frenata da 200 km/h a 0 in circa 2.10 secondi;

1.3.2

Vincolo di non ribaltamento

Figura 1.2.Rappresentazione della direzione

delle forze agenti su una macchina quando si trova in una curva

Nel moto del veicolo curvilineo entra in gioco la forza associata all’accelerazione centripeta (forza centripeta, Fc), che

agi-sce nella direzione del raggio di curvatura, verso il centro della curva descritta (vedi fi-gura 1.2): questa forza produce un cambia-mento nella direzione del vettore velocità ed un moto circolare; questa forza centri-peta è risultate da una forza di attrito sta-tico (forza di attrito traversale del veicolo) in direzione perpendicolare al moto, che impedisce il ribaltamento del veicolo, ga-rantendo l’aderenza con il suolo; nel caso di moto su piano orizzontale questa forza di attrito dipende solamente dal coefficien-te di attrito statico delle ruocoefficien-te sul coefficien-terreno e dalla forza peso del veicolo; affinchè il veicolo non si ribalti la velocità del veicolo

deve essere tale che la forza centripeta risultante non superi la forza centripeta massi-ma accettabile, ovvero quella che impedisca il ribaltamento della massi-macchina (dettata dalla forza di attrito) Fc6Fs m ac6µsm g mvR2 6µsm g v2 R 6µsg v2tan ϕ 6 µsg L

6

(21)

Definendo con al = µsgl’accelerazione centripeta massima permessa, il vincolo di non

ribaltamentoè

v2tan ϕ 6 alL (1.8)

Un’interessante risultato da sottolineare è che la condizione trovata sull’accelerazione centripeta non dipende dalla massa del veicolo5.

1.3.3

Effetto-suolo aerodinamico su veicoli da corsa

Un’interessante analisi può essere eseguita sul veicolo per aumentare l’aderenza con il terreno, utilizzando l’effetto-suolo aerodinamico associato alle macchine da corsa(si ve-da [33] e [34]). L’effetto-suolo aerodinamico consiste nella generazione di una forza di deportanza, che è la componente della forza aerodinamica6 che schiaccia il veicolo verso il

suolo, senza gravare sul peso della macchina: in realtà la forza aerodinamica tende per sua natura a produrre una portanza, Lift, componente della forza aerodinamica globale calcolata in direzione perpendicolare alla direzione della velocità che tende a sollevare la vettura; modificando la forma del fondo delle vetture da corsa in maniera opportuna è possibile invertirne il funzionamento. La deportanza utilizza la direzione del vento rispetto la macchina e la forma del telaio7 per aumentare l’aderenza con il suolo, per

incrementare la velocità in curva e per migliorare la stabilità del veicolo; la forza di depor-tanza gioca un ruolo importante nella riduzione del tempo di percorrenza del tracciato, influenzando la velocità e l’accelerazione (principalmente in curva) e quindi le prestazioni generali.

L’effetto-suolo è spiegabile con le leggi della fluidodinamica8 il potere energetico di un

flusso è dato dalla sua velocità e dalla propria pressione. A meno di dissipazioni, la som-ma di questi due termini energetici si som-mantiene costante ed è quindi possibile convertire la velocità in pressione e viceversa. Nel caso specifico l’aria che si insinua tra la vettura e la strada aumenta la sua velocità quando lo spazio tra le due superfici diminuisce, pertanto cala la pressione esercitata dal fluido stesso sulle sue superfici (depressione). Tale effetto può quindi essere sfruttato per aumentare la forza deportante che spinge il fondo della vettura verso il basso; in questo modo si ottiene un maggiore carico aerodinamico, per-mettendo quindi una maggiore aderenza e forza d’attrito tra le parti a contatto (come gli pneumatici degli autoveicoli). L’inserimento di appendici aerodinamiche deportanti (es: alettoni9, diffusori10) possono aumentare questa spinta verso il basso, ma alcuni possono

causare anche una resistenza all’avanzamento, come effetto collaterale.

Quando si considera l’aerodinamica delle macchine da corsa, l’obiettivo primario è quello di generare un livello di deportanza (portanza negativa) desiderata in grado di garantire la minore resistenza possibile del vento rispetto al veicolo. L’importanza dell’effetto-suolo è data dal fatto che la velocità media di una macchina determina il tempo impiegato dal veicolo a percorrere l’intero circuito, la quale sarà influenzata dalle accelerazioni possibili

5Fonte http://www.fisica.uniud.it/~giannozz/Corsi/FisI/Slides/Forces.pdf 6Forza generata dal contrasto del flusso d’aria con il moto della vettura

7Rispetto le autovetture si parla di telaio monoscocca, essendo un tutt’uno con la carrozzeria 8Fonte http://it.wikipedia.org/wiki/Effetto_suolo_nelle_auto

9L’alettone è un elemento aerodinamico simile a delle ali, fisso o mobile, atto a generare una

spinta verso il basso del veicolo per incrementarne l’aderenza al suolo; produce una resistenza all’avanzamento [35]

10Il diffusore è un particolare elemento aerodinamico fisso collocato sul fondo di una vettura, atto

a generare una spinta verso il basso del veicolo per incrementarne l’aderenza al suolo; non produce una resistenza all’avanzamento [35]

(22)

e quindi dai cambiamenti della velocità: nel 1960 è stato trovato che le frenate, le accele-razioni e le prestazioni in curva di una macchina da corsa sono fattori che influenzano le prestazioni di un veicolo [36].

Fatte queste considerazioni, prendendo in considerazione una forza di deportanza FL,

diretta verso il basso, l’accelerazione laterale massima11che è possibile raggiungere senza

che il veicolo si ribalti è: al= µmax m g + FL m = µmax  g +FL m  (1.9) dove µmax è il valore massimo del coefficiente di attrito, m è la massa del veicolo, e g è

l’accelerazione gravitazionale.

In questo modo è possibile aumentare la velocità massima raggiungibile in curva v 6 √

alR, ottenendo delle prestazioni migliori (ed una velocità media più elevata) nell’intero

tracciato.

L’inserimento di una forza di deportanza aerodinamica può causare un aumento della forza di resistenza diretta longitudinalmente alla vettura, in direzione opposta al senso del moto, che limita la velocità massima che il veicolo è in grado di raggiungere tra le curve: questa velocità verrà raggiunta quando la potenza trasmessa dal motore al suolo attraverso le ruote motrici sarà totalmente assorbita dalla forza di resistenza prodotta dal veicolo [37]; di conseguenza esiste un trade-off tra la forza di deportanza aggiuntiva ri-chiesta per massimizzare l’accelerazione laterale in curva, e la forza di resistenza prodotta come effetto collaterale che riduce la velocità.

11In vetture di Formula 1 l’accelerazione laterale massima in curva può arrivare a picchi di 5 − 6 g,

fonte http://en.wikipedia.org/wiki/G_force

(23)

Capitolo 2

Controllo Ottimo per Macchine da

Corsa

2.1

Introduzione al controllo ottimo

In un problema di ottimizzazione si vuole determinare il massimo (o minimo) valore di una funzione ed eventualmente il valore delle variabili per cui tale massimo viene raggiunto.

Il calcolo delle variazioni invece si occupa di massimizzare (o minimizzare) un funzionale. Un funzionale è una funzione di funzioni e quindi associa un valore ad una funzione (o equivalentemente il dominio di un funzionale è un insieme di funzioni). L’esempio più classico del calcolo delle variazioni è quello della determinazione delle geodetiche: curve a lunghezza minima tra due punti. La nascita del calcolo delle variazioni viene associata al problema della curva brachistocrona [38] di Johann Bernoulli del 1696. La brachistocrona è la curva che permette ad una particella con massa di andare da un punto ad un altro nel minor tempo possibile.

Il controllo ottimo invece si occupa di determinare il controllo che fa evolvere il sistema ottimizzando un certo funzionale1.

In un problema di controllo ottimo sono presenti: l’insieme degli stati, l’insieme dei controlli, l’equazione dinamica, le condizioni iniziali del sistema, la funzione costo da ottimizzare, vincoli su stati e/o controlli.

Consideriamo un sistema dinamico non lineare nella forma piuttosto generale ˙q = f(q, u), q ∈ Rn, u ∈ Rm, q(0) = q

0 (2.1)

Consideriamo anche un indice obiettivo J = Ψ(q(T )) +

ZT

0 L(q(t), u(t)) dt (2.2)

che considera i valori ottenuti dallo stato ad un tempo finale T, assieme l’andamento dello stato e del controllo lungo tutto l’intervallo tra t = 0 e t = T.

Si noti che la funzione obiettivo è interamente determinata, per un dato sistema dinamico e per date condizioni iniziali, dalla funzione di ingresso u(t).

1Fonte http://www.centropiaggio.unipi.it/sites/default/files/course/material/

(24)

Consideriamo il problema di minimizzare J, che rappresenta un funzionale in quanto fun-zione di funzioni, rispetto alle possibili scelte del controllo. In generale, i valori istantanei del controllo potranno essere soggetti a restrizioni.

Quello posto è un problema di calcolo variazionale, cioè un problema di ottimizzazione in cui la incognita è una funzione invece che semplicemente una variabile incognita. Un particolare ingresso ˆu(t) è ottimo se J( ˆu) 6 J(u), ∀u ∈ U.

Essendo la minimizzazione di J soggetta al vincolo tra l’andamento di q(t) e quello di u(t) espresso dalla dinamica, possiamo procedere, secondo una tecnica analoga a quella dei moltiplicatori di Lagrange nel caso di ottimizzazione di funzioni con vincoli, a scrivere un indice modificato

J0= J − ZT

0 λ

T(˙q − f(q, u)) dt, λ ∈ Rn

per il quale vale ovviamente J0= J, ∀t, ∀u, qualsiasi sia la scelta del moltiplicatore λ ∈ Rn,

che potrà essere variabile nel tempo (cioè una funzione λ : [0, T] → Rn, t 7→ λ(t)).

Riscriviamo J0= Ψ(q(T )) + ZT 0 h L(q(t), u(t)) + λTf(q, u) − λT ˙qidt := Ψ(q(T )) + ZT 0 h H(λ, q, u) − λT ˙qi dt

dove si è definito implicitamente il funzionale

H(λ, q, u, t) := L(q, u, t) + λTf(q, u) (2.3)

che viene detto Hamiltoniano del problema e che dipende da q, u, da t (anche se non sempre esplicitamente) e dalla variabile λ detta co-stato.

Si evidenzia che se l’Hamiltoniano non dipende esplicitamente dal tempo (ovvero se il costo e la dinamica sono tempo-invarianti), si ha che, in corrispondenza di traiettorie ottimali, l’Hamiltoniano stesso è costante, vale a dire è un integrale primo del moto.

Cercando di dare condizioni necessarie affinchè un ingresso ˆu(t) sia ottimo, consideria-mo il problema localmente, cioè confrontiaconsideria-mo l’indice ottenuto da ˆu(t) rispetto a quello ottenuto da funzioni u(t) che differiscano poco da ˆu(t).

Considereremo quindi funzioni u per cui valga k ˆu − uk := min

i

ZT

0 |ˆui(t) − ui(t)| dt < ε

con ε opportunamente piccolo (si noti che sono ammesse differenze anche grandi tra le componenti di ingresso, purchè per tempi brevi).

Per la continuità delle soluzioni delle equazioni differenziali ordinarie, anche le solu-zioni q(t, q0, u) differiranno poco dalla soluzione q(t, q0, ˆu), e scriveremo q(t, q0, ˆu) −

q(t, q0, u) = δq(t), con kδq(t)k infinitesimo dello stesso ordine di ε.

La funzione obiettivo è corrispondentemente modifica da δJ0= Ψ(q(T ) + δq(T )) − Ψ(q(T ))+ + ZT 0 [H(λ, q + δq, u) − H(λ, q, ˆu)] dt+ − ZT 0 h λT(˙q + δ ˙q) − λT ˙qidt

10

(25)

Approssimando al primo ordine, e indicando con un pedice le derivate parziali, si ha Ψ(q(T ) + δq(T )) − Ψ(q(T ))≈ Ψq(q(T ))δq(T ), e ZT 0 [H(λ, q + δq, u) − H(λ, q, ˆu)] dt = = ZT 0 [H(λ, q + δq, u) − H(λ, q, u) + H(λ, q, u) − H(λ, q, ˆu)] dt = ≈ ZT 0 [Hq(λ, q, u)δq + H(λ, q, u) − H(λ, q, ˆu)] dt

Usando invece la regola di integrazione per parti, si ha che il terzo addendo in δJ0vale

ZT 0 λ Tδ˙q dt =hλTδqiT 0 − ZT 0 ˙λ Tδq dt = = λ(T )Tδq(T ) − λ(0)Tδq(0) −ZT 0 ˙λ Tδq dt

Osservando che δq(0) = 0 (le variazioni del controllo non hanno influenza sulle condizio-ni icondizio-niziali), possiamo scrivere

δJ0hΨq(q(T )) − λT(T ) i δq(T )+ + ZT 0 h Hq(λ, q, u) + ˙λT i δq dt+ − ZT 0 [H(λ, q, u) − H(λ, q, ˆu)] dt

a meno di infinitesimi di ordine superiore rispetto a ε. Possiamo adesso semplificare δJ0

usando la libertà che ci è concessa nella scelta di λ(t). Ponendo infatti ˙λ(t) = −HT q(λ, q, u) e λ(T) = ΨTq(q(T )), (2.4) si ottiene δJ0= ZT 0 [H(λ, q, u) − H(λ, q, ˆu)] dt .

Si noti che le scelte fatte per λ(t) equivalgono a definire una equazione differenziale ordi-naria aggiunta al problema, con condizioni non iniziali come consueto, bensì terminali. Se ˆu(t) è ottima, come supposto, allora deve essere δJ0>0, ∀u(t) nell’insieme considerato.

Questo implica che per ogni t, valga

H(λ, q, u) > H(λ, q, ˆu) . (2.5)

Questa condizione, molto più forte della disequazione appena vista, discende dal fatto che, se esistesse una u per la quale, anche in un solo istante t∗, valesse H(λ, q, u(t

)) < H(λ, q, ˆu(t∗

)), allora si potrebbe costruire un nuovo ingresso w(t) = ˆu(t), ∀t 6= t∗, ma

w(t∗) = u(t), per la quale risulterebbe δJ

0<0, contro l’ipotesi che ˆu sia ottima.

È ovvio che la relazione (2.5), quando fossero noti lo stato ed il co-stato ad un tempo t, permetterebbe di trovare il valore ottimo u con la soluzione di un normale problema di

(26)

minimizzazione di una funzione rispetto ad una variabile. In particolare, se gli ingressi non sono soggetti a vincoli, una condizione necessaria affinchè ˆu(t) sia ottimo è che esso sia un estremo di H(λ, q, u), cioè che

∂uH(λ, q, u)|u=ˆu=0 condizione di stazionarietà (2.6)

Un contributo importante che generalizza la applicabilità di questa osservazione al caso (praticamente molto importante) in cui i valori del controllo siano limitati in un insieme compatto u(t) ∈ U, è il seguente

Principio del Minimo (o Massimo) di Pontryagin[39]: se ˆu(t) è il controllo otti-mo, allora H(λ(t), q(t), ˆu(t)) assume il valore minimo (o massimo) tra quelli ottenuti da u(t) ∈ U.

Si osservi esplicitamente come i minimi di una funzione continua su un compatto possono essere ottenuti non solo nei punti estremali ma anche sulla frontiera dell’insieme.

Riassumendo, se ˆu(t) e q(t) sono la funzione di ingresso e la corrispondente traiettoria di stato soluzioni del problema di controllo ottimo sopra definito, allora esiste una traiettoria (detta di co-stato) λ(t) che soddisfa le condizioni seguenti:

˙q = f(q, ˆu) dinamica dello stato

q(0) = q0 condizioni iniziali in q

˙λ = −∂

∂qLT(q, ˆu) −∂q∂ fT(q, ˆu)λ(t) dinamica del co-stato

λ(T ) = ∂q∂ ΨT(q(T )) condizioni finali sul co-stato

H(λ, q, u, t) = L(q, u, t) + λTf(q, u) equazione Hamiltoniana

(2.7)

ed inoltre vale

H(λ, q, ˆu) 6 H(λ, q, u), ∀u ∈ U . (2.8)

Questo sistema di equazioni definisce completamente l’ottimo, nel senso che si hanno tante equazioni quante incognite: queste ultime sono le 2 n + m funzioni u(t), q(t) e λ(t), determinate dalle 2 n equazioni differenziali ordinarie dello stato e del co-stato, con le loro rispettive condizioni agli estremi, e dalle m condizioni di minimizzazione dell’Hamiltoniano.

La soluzione di questo sistema di equazioni non è peraltro facile nel caso generale. Una delle cause principali di tali difficoltà deriva dal fatto che le condizioni agli estremi sono miste iniziali e finali. Anche le soluzioni numeriche possono risultare molto impegnative.

2.1.1

Controllo ottimo vincolato

In presenza di vincoli sulle variabili di stato e di controllo il problema di controllo ot-timo subisce delle modifiche nell’equazione di Hamilton e nelle equazioni di Eulero-Lagrange [40].

Consideriamo un insieme di vincoli di disuguaglianza C1, C2, ..., Cpnella forma Ci(q, u, t) 6

0 ∀i ∈ {1, 2, ..., p}, e definiamo un Hamiltoniano aumentato

Ha(λ, q, u) = L(q, u) + λTf(q, u) + µTC(q, u) (2.9)

dove µi=



>0 se Ci=0 (vincolo attivo) =0 se Ci<0 (vincolo non attivo)

(27)

affinchè µiCi =0 ∀i.

Così facendo il problema di controllo ottimo conterrà le condizioni seguenti:

˙q = f(q, u) dinamica dello stato

Ha= L(q, u) + λTf(q, u) + µTC(q, u) Hamiltoniano aumentato

˙λ = − ∂

∂qHTa dinamica del co-stato

∂uHa=0 condizione di stazionarietà

(2.10)

2.2

Problema ottimo per un veicolo car-like

L’obiettivo di questo lavoro è di trovare un percorso ottimo per il veicolo car-like simile al biciclo, ovvero identificare una sequenza di manovre che permettano alla macchina di completare il tracciato nel tempo minore possibile.

2.2.1

Presentazione del problema

Consideriamo un veicolo con il modello seguente:        ˙x = v cos ϑ ˙y = v sin ϑ ˙ϑ = v Ltan ϕ ˙v = av− b vα (2.11)

dove il vettore configurazione q = [x, y, ϑ, v]T ne rappresenta il moto sul piano, e u =

[av, ϕ]T gli ingressi di controllo, come descritto nella sezione 1.3.

Il problema di controllo ottimo per la pianificazione locale della traiettoria è: min av(t),ϕ(t) ZT 0 dt, soggetto a av(t)∈ [amin, amax] ϕ(t)∈ [−ϕmax, ϕmax] v2(t)tan ϕ 6alL (2.12)

dove T è il tempo finale.

Nella ricerca degli estremali di ottimalità non è necessario che la velocità massima vmax

sia accessibile in tempo finito e quindi imporremo come scelta sulla variabile di controllo dell’accelerazione un limite massimo amax = b vmax; così facendo avremo il vincolo

sulla velocità massima incluso in quello sull’accelerazione di comando, ottenendo un Hamiltoniano di cui si riesce a fornire una soluzione ottima.

2.2.2

Estremali e attivazione dei vincoli

Per trovare una soluzione al problema proposto è necessario identificare l’insieme degli estremali che verificano le condizioni necessarie per l’ottimalità, in base al Principio del Minimo di Pontryagin, tenendo conto della presenza dei vincoli sulle variabili di stato e di controllo.

Il vincolo sull’accelerazione laterale massima genera le condizioni seguenti C1(q, u) = +v2 tan ϕ − alL 60

(28)

Quindi, la funzione Hamiltoniana associata al problema di controllo ottimo considerato è H (q, u, λ, µ) =1 + λ1vcos ϑ + λ2v sin ϑ + λ3vL tan ϕ + λ4(av− b vα) +

+ µ1v2tan ϕ − alL



− µ2v2tan ϕ + alL

 (2.14)

dove µ1=0 quando v2tan ϕ < alLaltrimenti µ1>0, e µ2=0 quando v2tan ϕ > −alL

altrimenti µ2>0.

La dinamica delle variabili co-stato λ = [λ1, λ2, λ3, λ4]T è:

               ˙λ1= −∂x∂ HT =0 ˙λ2= −∂y∂ HT =0 ˙λ3= −∂ϑ∂HT = λ1vsin ϑ − λ2v cos ϑ

˙λ4= −∂v∂ HT = − λ1 cos ϑ − λ2sin ϑ − λ3tan ϕL + λ4α b vα−1+

−2 (µ1− µ2) vtan ϕ

(2.15)

Definendo λ1= dcos γ e λ2= d sin γ otteniamo

               ˙λ1=0 ˙λ2=0 ˙λ3= d vsin (ϑ − γ) ˙λ4= − d vcos (ϑ − γ) − λ3tan ϕL + λ4α b vα−1+ −2 (µ1− µ2) v tan ϕ H =1 + d v cos (ϑ − γ) + λ3vL tan ϕ + λ4 (av− b vα) + + µ1  v2 tan ϕ − alL  − µ2  v2 tan ϕ + alL  (2.16)

Le equazioni di Eulero-Lagrange rispetto alle variabili di controllo sono:    ∂ ∂avH =0; λ4=0 → ˙λ4=0 ∂ ∂ϕH =0; λ3vL+ µ1v2− µ2v2  1 + tan2ϕ =0 λ3= − (µ1− µ2) L v (2.17) Quindi:  λ4=0; ˙λ4=0 se amin< av< amax λ3= − (µ1− µ2) L v se −ϕmax< ϕ < +ϕmax (2.18)

CASO 1: v

2

tan ϕ = a

l

L

, a

v

∈ ]a

min

; a

max

[, ϕ ∈ ]−ϕ

max

; +ϕ

max

[

In questo caso il vincolo sulle variabili di stato e di controllo C1 è attivo (lo stesso può

essere fatto se C2 è attivo), ovvero assumiamo che v2 tan ϕ = alL: con questa ipotesi

µ1>0 e µ2=0 (C1e C2sono eventi mutualmente esclusivi). L’Hamiltoniano è dunque:

H =1 + d v cos (ϑ − γ) + λ3Lv tan ϕ + λ4 (av− b vα)

Inoltre, le ipotesi amin< av < amax e −ϕmax < ϕ < +ϕmax permettono di utilizzare

le condizioni di stazionarietà            λ3= −µ1L v  µ1>0 v >0 → λ360  λ4=0

˙λ4=0; −d v cos (ϑ − γ) + µ1vtan ϕ − 2 µ1vtan ϕ = 0

−d vcos (ϑ − γ) − µ1vtan ϕ = 0; µ1= −dcos (ϑ−γ)vtan ϕ

14

(29)

Dato che v2tan ϕ = alL, allora                ϕ =tan−1 alL v2 λ3= dva2 l cos (ϑ − γ) λ4=0 µ1= −dav2 lLcos (ϑ − γ) µ2=0

La funzione Hamiltoniana può essere riscritta come segue: H =1 + 2 d v cos (ϑ − γ)

Visto che l’Hamiltoniano non dipende esplicitamente dal tempo la sua derivata deve essere nulla e quindi si ottiene:

˙H = dH

dt =2 d ˙v cos (ϑ − γ) − 2 d v sin (ϑ − γ) ˙ϑ =

=2 d (av− b vα)cos (ϑ − γ) − 2 d al sin (ϑ − γ) = 0

(av− b vα)cos (ϑ − γ) = al sin (ϑ − γ) → av= b vα+ al tan (ϑ − γ)

Sotto queste condizioni avremo dunque: Tratto T ˙v 6= 0 av= b vα+ al tan (ϑ − γ) ϕ =tan−1 alL v2 R = va2 l (2.19)

CASO 2: v

2

tan ϕ = a

l

L

e a

v

= a

max

(o a

min

)

Nel caso in cui il vincolo C1 (o C2) rimane attivo, ma av = amax (o amin): la velocità

cresce fino a vmax (o diminuisce fino a vmin); ϕ cambia con v secondo la relazione

v2tan ϕ = alL; il vincolo sull’accelerazione laterale massima può essere scritta in termini

di raggio di curvatura R come v2 = R a

l, quindi l’estremale è una curva con un raggio

che cresce (o decresce) proporzionalmente a v2. Sotto queste condizioni avremo dunque:

Tratto T ˙v 6= 0 av= amax (o amin) ϕ =tan−1 alL v2 R = va2 l (2.20)

CASO 3: v

2

tan ϕ = a

l

L

e ϕ =

±ϕ

max

Se il vincolo C1 (o C2) rimane attivo, ma ϕ = ±ϕmax: la velocità rimane costante ed

(30)

condizione ˙v = 0 risulta essere pari a av = b vα; il raggio di curvatura rimane costante

R = tan ϕL ; l’estremale è una curva a raggio costante, con raggio di curvatura minimo.

Sotto queste condizioni si avrà dunque: Tratto C ˙v = 0 av= b vα ϕ =±ϕmax R = tan ϕL = Rmin (2.21)

CASO 4: v

2

tan ϕ < a

l

L

, a

v

∈ ]a

min

; a

max

[, ϕ ∈ ]−ϕ

max

; +ϕ

max

[

Nel caso in cui entrambi i vincoli C1e C2non siano attivi, l’accelerazione laterale massima

non viene raggiunta, µ1= µ2=0. L’Hamiltoniano è

H =1 + 2 d v cos (ϑ − γ)

dato che: µ1 = 0 e µ2 = 0 per ipotesi; λ3 = − (µ1− µ2) L v = 0 e λ4 = 0 secondo le

condizioni (2.18).

La dinamica del co-stato λ4è

˙λ4= −dcos (ϑ − γ) = 0 → ˙ϑ = 0, ovvero ϕ = 0

Arrivati a questo punto, derivando la funzione H rispetto al tempo otteniamo ˙H = dH dt = d˙v cos (ϑ − γ) − d v sin (ϑ − γ) ˙ϑ = = d (av− b vα)cos (ϑ − γ) − d v sin (ϑ − γ) v Ltan ϕ = = d (av− b vα)cos (ϑ − γ) = 0 → av= b vα

Si ottiene così un tratto rettilineo, ovvero: Tratto S ˙v = 0 av= b vα ϕ =0 R = ∞ (2.22)

CASO 5: v

2

tan ϕ < a

l

L

e a

v

= a

max

(o a

min

)

Nel caso in cui il vincolo C1 (o C2) non è attivo, ma av = amax (o amin): la velocità

cresce fino a vmax (o diminuisce fino a vmin); ϕ rimane nullo visto che il co-stato λ3=0

e quindi dalla sua dinamica si trova

˙λ3=0; d v sin (ϑ − γ) = 0 → ˙ϑ = 0, ovvero ϕ = 0 Ciò comporta che l’estremale è ancora un tratto rettilineo:

Tratto S ˙v 6= 0 av= amax (o amin) ϕ =0 R = ∞ (2.23)

16

(31)

CASO 6: v

2

tan ϕ < a

l

L

e ϕ =

±ϕ

max

Nel caso in cui il vincolo C1(o C2) non è attivo, l’ipotesi ϕ = ±ϕmax rappresenterebbe

un paradosso dato che la condizione di stazionarietà generata dalla variabile di controllo avcontinua a valere, e quindi la variabile co-stato λ4=0 ottenendo dalla sua dinamica

˙λ4=0; −d cos (ϑ − γ) = 0 → ˙ϑ = 0, ovvero ϕ = 0

Dunque, nel caso in cui l’accelerazione laterale massima non è raggiunta, non esistono soluzioni ottime che prevedano un percorso non rettilineo. In altri termini, se v2 tan ϕ < alL allora il veicolo deve percorrere una traiettoria con ϕ = 0 per mantenersi su un

percorso ottimo.

2.2.3

Considerazioni finali sul controllo ottimo

Figura 2.1.Diagramma di flusso decisionale delle soluzioni ottime

La manovra ottima è dunque una sequenza di:

• rettilinei, percorsi con accelerazione (o decelerazione) di comando massima, o con velocità costante;

• archi di cerchio, attraversati con raggio di curvatura costante, pari a quello minimo, e accelerazione laterale massima;

• raccordi di transizione, percorsi con accelerazione laterale massima, o accelerazione (o decelerazione) di comando massima.

(32)

2.3

Dalla pianificazione ottima locale a quella real-time

glo-bale

L’approccio seguito in questa tesi si ispira al lavoro svolto nell’articolo [27]: il passaggio dalla pianificazione locale del moto a quella globale viene effettuato attraverso l’utilizzo di una metodologia di discretizzazione della pista e la costruzione di un grafo orientato.

Figura 2.2. Rappresentazione del settore e

delle celle di frontiera Il circuito viene diviso in settori, i

qua-li prevedono alla frontiera una discretiz-zazione delle posizioni e velocità che la macchina può assumere come stato inizia-le o finainizia-le sul tratto locainizia-le (vedi figura 2.2): ogni posizione finale del settore corrente è la posizione finale del settore successi-vo; le posizioni iniziali del settore corrente invece, sono identiche alle posizioni finali del settore precedente; così facendo, ogni settore prevede che il proprio spazio di

ini-zio e fine sia partiini-zionato in un numero finito di celle, che associamo ai nodi di un grafo. Se l’intero tracciato è diviso in Nssettori (di curve e rettilinei), allora si ottiene la sequenza

di settori S1, S2, . . . , SNs, assumendo che SNs+1≡ S1.

Figura 2.3.Rappresentazione di settori adiacenti

All’interno del circuito, due no-di sono tra no-di loro connessi se nel tracciato si trovano su setto-ri adiacenti (vedi figura 2.3), e se esiste una sequenza di manovre ammissibile (WORDS), generata dall’alfabeto esposto nel paragra-fo 2.2.2, in modo tale che il veico-lo sia in grado di muoversi dalla cella iniziale a quella finale. Nei capitoli 4 e 3 vengono discusse le sequenze di manovre che risolvono la pianificazione locale in settori rettilinei e curvi, mostrando anche dei risultati numerici sul problema affrontato. Inoltre, ogni arco del grafo prevede un costo che indica il tempo necessario alla macchina per passare da una cella all’altra seguendo la sequenza di manovre ammissibile.

Il percorso a costo minimo che congiunge una cella iniziale con un’altra finale sull’intero tracciato rappresenta la soluzione del problema di pianificazione globale della traiettoria: la cella iniziale è la posizione che la macchina possiede all’inizio (assieme alla velocità), mentre il nodo finale del grafo rappresenta la posizione e la velocità che il veicolo raggiun-ge seguendo la sequenza di manovre ottime che permettono di terminare il giro; infine, il costo che congiunge il nodo iniziale a quello finale indica il tempo speso per completare il giro del circuito.

Un approccio di questo tipo, ottenuto discretizzando i casi di entrata ed uscita da ogni settore in un numero finito di casi e sviluppando un grafo che connette tutte le posizioni che prevedono una sequenza di manovre ammissibile, permette di eseguire un controllo ottimo della traiettoria sulla macchina in tempo reale: infatti, una volta determinate le soluzioni ottime che esistono tra le celle del circuito in maniera off-line, è sufficiente costruire il grafo che, tramite una ricerca della posizione ottima più vicina a quella che la macchina assume in ogni istante, fornisca in tempo reale la sequenza di manovre ottime che permettono di completare la gara nel minor tempo possibile; la pianificazione globale diventa un semplice problema di cammino minimo, ed il grafo può essere interrogato con i tradizionali algoritmi di ricerca noti in letteratura (es: Dijkstra e Bellman-Ford).

(33)

Capitolo 3

Analisi numerica della manovra in

curva

3.1

Applicazioni e librerie per il controllo ottimo

Per risolvere problemi di controllo ottimo esistono software che implementano delle inter-facce dedicate: un’interfaccia è un software che aiuta l’utilizzatore a preparare tutti i dati necessari a risolvere il problema, per passarli ad un risolutore (solver) che ha il compito di trovare la soluzione. Esistono due tipologie di interfacce: quelle di controllo ottimo (OCP) gestiscono le procedure di discretizzazione e trascrizione del problema, mentre le interfacce di programmazione non lineare (NLP) lasciano questo compito all’utilizzatore (vedi figura 3.1). PROBLEMA DI CONTROLLO OTTIMO PROBLEMA DI PROGRAMMAZIONE NON LINEARE SOVER NLP SOLUZIONE DISCRETIZZAZIONE E TRASCRIZIONE INTERFACCIA NLP INTERFACCIA OCP

Figura 3.1. Diagramma di Flusso

Le interfacce più utilizzate sono:

• ACADO (Automatic Control And Dynamic Optimization) Toolkit è un ambiente soft-ware ed una raccolta di algoritmi per il controllo automatico e l’ottimizzazione dinamica, che fornisce un insieme di strumenti per utilizzare algoritmi di controllo

(34)

ottimo diretto, tra cui il controllo predittivo, stima dei parametri e delle variabili di stato e ottimizzazione robusta1.

• AMPL (A Mathematical Programming Language) è un linguaggio ad alto livello, svi-luppato dai laboratori Bell, per descrivere e risolvere grossi e complicati problemi di programmazione matematica2. AMPL chiama dei solver (come CPLEX, FortMP,

MINOS, IPOPT, SNOPT, KNITRO, ed altri) per ottenere le soluzioni.

• BOCOP (The optimal control solver) è un toolbox open-source per la risoluzione di problemi di controllo ottimo3.

• DIDO (Automatic Control And Dynamic Optimization) è un programma Matlab per risolvere problemi di controllo ottimo basato sulla teoria pseudospettrale4.

• ICLOCS (Imperial College London Optimal Control Software) è un software per la risoluzione di problemi di controllo ottimo5implementato in Matlab .

• TACO (Toolkit for AMPL Control Optimization) definisce alcune estensioni per AMPL che permettono una formulazione elegante dei problemi di controllo ottimo6.

• PSOPT (Pseudospectral Optimal Control Solver) è un software open-source che utilizza metodi di collocazione diretta, con discretizzazioni locali e pseudospettrali, per la risoluzione del problema di controllo ottimo7. I metodi pseudospettrali risolvono

i problemi di controllo ottimo approssimando le variabili dipendenti dal tempo utilizzando polinomi globali, come funzioni di Legendre o Chebyshev. La soluzione viene fornita dal solver IPOPT (o, in alternativa, da SNOPT).

• GPOPS−II (General-Purpose Pseudospectral Optimal Control Software) è un nuovo software per controllo ottimo, utilizzato con Matlab , che implementa un nuovissi-mo metodo Pseudospettrale hp-adattivo con quadratura integrale Legendre-Gauss-Radau per la risoluzione generale dei problemi di controllo ottimo non lineari8.

Con l’utilizzo di GPOPS−II il problema di controllo ottimo viene trascritto come un problema di programmazione non lineare, la cui soluzione viene fornita da uno dei due solver compresi nel software, SNOPT e IPOPT.

Nel nostro lavoro abbiamo deciso di utilizzare GPOPS−II visto che:

• in generale, GPOPS−II è in grado di risolvere un’ampia gamma di problemi, im-piegando metodi di mesh refinement che offrono soluzioni precise, e permettendo una grande flessibilità nella formulazione del problema di controllo ottimo; • utilizza metodi pseudospettrali;

• permette una formulazione estremamente generale del problema di controllo otti-mo;

• permette l’inclusione di vincoli sui parametri del problema, sulle variabili di stato e di controllo, sul percorso da seguire e sull’integrale della funzione obiettivo; • permette la suddivisione del problema in fasi;

1vedi http://sourceforge.net/projects/acado/ 2vedi http://www.ampl.com 3vedi http://www.bocop.org/ 4vedi http://www.elissarglobal.com/academic/get-dido/try-dido/ 5vedi http://www.ee.ic.ac.uk/ICLOCS/ 6vedi http://www.iwr.uni-heidelberg.de/groups/optimus/software/ 7vedi http://www.psopt.org/ 8vedi http://www.gpops2.com/

20

Figura

Figura 4.5. Andamento delle variabili di stato e controllo nel tempo, per l y = 0.25 ∆y min , nel caso di solver IPOPT
Figura 4.11. Andamento delle variabili di stato e controllo nel tempo, per l y = 0.90 ∆y min , nel caso di solver IPOPT
Figura 4.13. Andamento delle variabili di stato e controllo nel tempo, per l y = 1.00 ∆y min , nel caso di solver IPOPT
Figura 4.19. Andamento delle variabili di stato e controllo nel tempo, per l y = 1.50 ∆y min , nel caso di solver IPOPT
+7

Riferimenti

Documenti correlati

Le tabelle riportano la distribuzione per tipo di tumore della frequenza assoluta dei casi, età media, tasso grezzo (TG), tasso standardizzato diretto Eu2013* (TSD) errore

• A partire dal modello del sistema nel caso di controllo ottimo LQ, presentato in precedenza, si era arrivati a definire la legge di controllo:. • Dalle condizioni al

[r]

Flusso principale: Il caso d’uso inizia quando il sistema richiede al cliente un PIN. Il cliente può inserire un numero

Organo: INAIL. Documento:

Qualora vi sia differenza tra l'ultimo numero assegnato dalla Sede provinciale e l'ultimo numero utilizzato dall'unita dipendente questa dovrà indicare, nello spazio riservato

Mastropaolo, responsabile Servizio Promozione e Sviluppo Camera di Commercio di Bari.. Scardigno, presidente CAP Università

Qualsiasi modifica nelle procedure di identificazione dei casi (screening o contact-tracing) e dei focolai epidemici può indurre valutazioni distorte circa