4 Attività Sperimentale
E’ stata realizzata un’attività sperimentale finalizzata inizialmente alla determinazione del comportamento della sospensione posteriore alle azioni esercitate dal pilota sul veicolo in varie condizioni di guida. Quindi, una volta definito l’algoritmo di controllo, sono state realizzate una serie di prove per verificarne la validità.
4.1 Caratterizzazione della Sospensione
In una prima fase la nostra analisi si è concentrata sulla caratterizzazione della sospensione: andando a caricare il banco prova con vari pesi è stato letto il valore dello schiacciamento della molla rilevato dal sensore potenziometrico.
Durante le fasi di carico e scarico della sospensione,è stato evidenziato un fenomeno d’isteresi causato dalle forti non linearità presenti, in particolare dall’attrito che incontra lo stelo dell’ammortizzatore nella sua corsa.
Tale fenomeno, non trascurabile, va a modificare l’equazione d’equilibrio della sospensione, che diventa:
FA g M M) P A
(A molla k
F = ⋅ + = ⋅ +
dove con F
Asi è indicata la forza d’attrito.
Per cui a parità di carico esistono più valori della corsa che costituiscono una situazione d’equilibrio.
Figura 4.1 Curva d’isteresi ideale corsa /peso.
AM
Peso Fascia d’equilibrio
P1
A*M
Per caratterizzare meglio tale fenomeno,si è passati sullo scooter, sul quale, in condizioni statiche, per tre condizioni di carico tipiche e per i casi di precarico minimo, medio e massimo, è stato valutata la corsa dell’ammortizzatore, attuando la seguente procedura:
1) si abbassa lo scooter con forza e lo si fa risalire lentamente (sag max) 2) si alza lo scooter e lo si fa ritornare in posizione lentamente (sag min)
Precarico minimo Precarico medio Precarico massimo sag min
(cm)
sag max (cm)
sag min (cm)
sag max (cm)
sag min (cm)
sag max (cm)
Guidatore 2,8 3,6 1,5 2,3 0,6 1,4
Guidatore + bagaglio 3,9 4,6 2,5 3,3 1,7 2,5
Guidatore +
passeggero 5,2 6,0 3,8 4,6 2,9 3,7
Tabella 4-1
Le misure riportate nella Tabella 4-1 si riferiscono a un guidatore del peso di 80 kg e un passeggero di 70 kg.
I dati ottenuti attraverso le prove hanno evidenziato una fascia d’isteresi d’ampiezza 0,8 cm.
Dalla caratterizazione statica si è passati a quella dinamica del sistema attraverso analisi del comportamento su strada eseguendo una serie di prove, ad una velocità media compresa tra i 20 e i 30 Km/h su un tracciato rettilineo di circa 100 m percorso più volte.
In Figura 4.2 riportiamo i risultati ottenuti durante i test, attuati impostando un
valore fisso di precarico e girando con differenti condizioni di carico (in testa ad
ogni grafico è indicato il peso del pilota (più il peso dell’eventuale passeggero) e il
livello di precarico impostato). Le curve riportate sono quelle relative alla velocità
(in rosso) e alla corsa della sospensione (in blu).
Figura 4.2 Grafici di corsa (rosso) e velocità (blu) nelle varie situazioni di carico. I numeri
‘0’,’4’,’7’ dopo la ‘s’ indicano rispettivamente il precarico minimo, medio, massimo.
60s0
0 10 20 30
speed
0 1 2 3 4 5 6 7 8 9 10
sag
110s4
0 5 10 15 20 25 30
speed
0 1 2 3 4 5 6 7 8 9 10
sag
110s7
0 5 10 15 20 25 30
speed
0 1 2 3 4 5 6 7 8 9 10
sag
80+60s0
0 5 10 15 20 25 30
speed
0 1 2 3 4 5 6 7 8 9 10
sag
80+60s7
0 5 10 15 20 25 30
speed
0 2 4 6 8 10
sag
110+80s7
0 10 20 30
speed
0 1 2 3 4 5 6 7 8 9 10
sag
1 1 0 s 0
0 10 20 30
speed
0 1 2 3 4 5 6 7 8 9 1 0
sag
Dai dati raccolti si capisce come non sia importante tanto il peso del carico totale, quanto come questo viene distribuito: la variazione del peso del pilota cambia di poco il punto di lavoro della sospensione, mentre la situazione cambia in presenza del passeggero (qualunque sia il suo peso).
Alla luce di tali risultati, per la definizione dell’algoritmo di controllo si è deciso di studiare il comportamento del sistema per tre condizioni di viaggio tipiche:
guidatore, guidatore più bagaglio, guidatore e passeggero.
4.2 Prove su strada con Controllo Remoto
Come già si è detto l’impostazione “ottimale” del precarico dipende dal carico sullo scooter, ma nella ricerca dell’algoritmo migliore per tale regolazione non si può trascurare il comportamento dinamico della sospensione.
In questa fase è stato utilizzato il pannello di controllo sviluppato su LabView per impostare in remoto varie condizioni di precarico e poter studiare la variazione delle grandezze di interesse a seguito delle varie azioni esercitate dal pilota durante la marcia.
L’osservazione del sistema ha evidenziato come i numerosi attriti presenti fanno si che il segnale della corsa letto dal sensore segua con un certo ritardo la variazione di velocità. In più, va considerato che la sospensione subisce una compressione durante le fasi di accelerazione del mezzo e un estensione , durante la frenata. Tale variazione di corsa dipende dall’entità dell’azione esercitata dal guidatore (per esempio, un’accelerazione violenta provoca una forte compressione della molla).
Tali inconvenienti possono essere aggirati andando a considerare validi i dati campionati solo in intervalli di tempo in cui la velocità è pressoché costante.
In figura 4.3 sono riportati 3 grafici ottenuti durante le prove a precarico impostato. In bianco viene riportato l’andamento della velocità del veicolo durante il test ; in verde possiamo notare la risposta della sospensione al variare del carico a bordo.
Bisogna precisare che questa ultima curva è ottenuta dalla lettura del sensore
potenziometrico (curva rossa) tramite filtraggio passa basso (il filtro utilizzato è un
mediano su una finestra di 20 campioni)
Precarico minimo
Guidatore
Guidatore + 20 kg
Guidatore + passeggero
Guidatore
Precarico massimo Precarico minimo
Guidatore
Guidatore + 20 kg
Guidatore + passeggero
Guidatore
Precarico massimo Precarico medio
Guidatore Guidatore + 20 kg
Guidatore +
passeggero Guidatore
Precarico medio
Guidatore Guidatore + 20 kg
Guidatore +
passeggero Guidatore
Precarico massimo
Guidatore Guidatore + 20 kg
Guidatore +
passeggero Guidatore Precarico massimo
Guidatore Guidatore + 20 kg
Guidatore +
passeggero Guidatore
Figura 4.3 Comportamento della sospensione durante il moto dello scooter
4.3 Strategia di Controllo
Una volta definito il sistema, si è passati alla ricerca del migliore controllo del sistema.
L’obiettivo è quello di riportare, nei vari casi, la corsa media dell’ammortizzatore attorno al valore ottimale determinato dalla casa costruttrice del veicolo (nel nostro caso 2,85 cm ) andando a variare il precarico (ricordiamo che ad una variazione di precarico corrisponde una variazione dell’altezza del veicolo).
Avvalendoci dell’informazione fornita dal sensore di hall del motore, si è deciso di
quantizzare il precarico. Una volta conosciuti i giri necessari al motore per precaricare al massimo la molla (420), si è definita una regolazione del precarico su 8 livelli. Partendo da un offset di 50 giri (utili a mandare in pressione il sistema idraulico ma che non influiscono sul punto di lavoro della molla), ad ogni variazione di livello del precarico corrispondono 53 giri del motore.
0 1 2 3 4 5 6 7
50 103 156 209
420 387 325 262 0.250.500,751 1,251,501,75
Errore_corsa_media Giri_motore
Livello_precarico
0 1 2 3 4 5 6 7
50 103 156 209
420 387 325 262 0.250.500,751 1,251,501,75
Errore_corsa_media Giri_motore
Livello_precarico
Figura 4.4 Quantizzazione del precarico.
Il controllo dello della sospensione avviene alla partenza dello scooter, quindi viene ripetuto con periodo T
maxo se il mezzo è stato fermo per più di T
stop.L’algoritmo sviluppato prevede che la verifica sullo stato della sospensione sia significativa per un nuovo settaggio se la velocità dello scooter rimane all’interno di una fascia impostata per almeno un tempo T
in_range, durante i quali viene campionato il valore dello schiacciamento della sospensione, letto dal sensore di posizione, e calcolato il suo valor medio. L’intervallo T
in_rangea sua volta é diviso in due sotto intervalli:
−
T
blind: intervallo in cui vengono scartati i valori della corsa (per eliminare il problema dell’inerzialità della sospensione);
−
T
media: intervallo in cui vengono campionati i valori della corsa
e calcolato il loro valor medio.
Una volta ricevuto il nuovo valore il microcontrollore decide se intervenire o meno per variare il precarico.
Poiché a causa dell’isteresi per ogni condizione di carico si hanno più punti di equilibrio della corsa, per evitare continue regolazioni dopo la prima correzione del precarico si é deciso di intervenire sul settaggio solo se il nuovo valore calcolato di precarico differisce per più di un livello da quello attuale.
Inoltre si controlla continuamente lo stato del cavalletto laterale: quando questo viene sollevato il sistema si porta nello stato iniziale (precarico a zero).
NO Misura carico
t >Tmax? or
v = 0 and t>Tstop? Reset, Cav lat ON
Cav lat?
Impostazione precarico Azzeramento
precarico
Precarico ok Attesa OFF
ON
SI NO
Misura carico
t >Tmax? or
v = 0 and t>Tstop? Reset, Cav lat ON
Cav lat?
Impostazione precarico Azzeramento
precarico
Precarico ok Attesa OFF
ON
SI Misura carico
t >Tmax? or
v = 0 and t>Tstop? Reset, Cav lat ON
Cav lat?
Impostazione precarico Azzeramento
precarico
Precarico ok Attesa OFF
ON
SI
Figura 4.5 Diagramma di flusso dell’algoritmo utilizzato.
L’algoritmo viene implementato su microcontrollore da una macchina a stati in cui gli stati possibili sono:
1.
START: azzera precarico. Il controllore accende il motore nella direzioneopportuna e lo tiene acceso fino a leggere una corrente pari a quella massima (il motore è bloccato meccanicamente). Quindi setta il livello di precarico 0 (sistema idraulico in pressione).
2.
READY: controlla lo stato del cavalletto. Se il cavalletto è su l’unità dicontrollo si prepara alla misura, altrimenti rimane in questo stato, a meno
di ricevere l’istruzione di disporre il sistema per il controllo remoto.
3.
MEASURE: valuta il nuovo livello di precarico. Se la velocità el’accelerazione (in valore assoluto) restano nel range impostato (v ∈
[VELMIN;VELMAX] e
acc<ACCMAX) per un tempo dato (DURATA_MISURA) viene calcolato il valore di corsa media in tale periodo. Quindi, valutata la differenza tra il valore di corsa ottimo e quello misurato (
errore_corsa_media), il microcontrollore determina (mediante confronto a soglie) il livello di precarico da impostare: ogni variazione di 0,25 cm della corsa calcolata rispetto al valore ottimo corrisponde alla variazione di un livello di precarico.
4.
PRELOAD SETTING: confronta il nuovo livello di precarico con quellocorrente e decide se intervenire sulla regolazione.
5.
PRELOAD SET: setta il nuovo livello di precarico.4.4 Collaudo Controllo Interno
Una volta definita la strategia di controllo si è proceduto con una campagna di validazione dell’algoritmo sviluppato.
Sono state fatte una serie di prove su strada in condizioni di carico tipiche:
1. Guidatore;
2. Guidatore + bagaglio;
3. Guidatore + passeggero (+ bagaglio).
Sfruttando la comunicazione Bluetooth tra veicolo e PC vengono raccolti, con un tempo di campionamento di 100 ms, i dati relativi alla sospensione, alla velocità del veicolo e lo stato di funzionamento dell’algoritmo che gira sul microcontrollore.
Di seguito vengono riportati i grafici ottenuti durante due prove con le relative tabelle esplicative
I parametri generali utilizzati nel collaudo della strategia di controllo:
Tmax = 60 s; Tstop = 20 s; Tin_range = 5 s;
VELMIN = 20 km/h; VELMAX = 40 km\h; ACCMAX = 1 m/s2.
Peso guidatore = 80 kg; Peso passeggero = 70 kg; Peso bagaglio =20 kg
PROVA 1 ( Tmedia = 5 s; Tblind = 0 )
T=0 Condizioni di carico: guidatore.
T =10 s Partenza: il sistema si prepara alla prima misura.
20 s < T < 25 s
La velocità rimane nell’intervallo impostato per un tempo Tin_range sufficiente a calcolare il valor medio della corsa e il microcontrollore decide che il livello di precarico impostato (0) è quello buono.
Quindi attende Tmax per un nuovo controllo.
T =85 s Il sistema si porta in attesa della seconda misura.
95 s < T < 100 s
La velocità rimane nel range di misura e il sistema calcola il nuovo valore della corsa. Quindi calcola il nuovo precarico che è ancora il livello 0.
165 s < T < 170 s
L’unità di controllo riesce ad effettuare una nuova misura e conferma ancora il livello di precarico.
T =195 s Il veicolo si ferma e vengono caricati 20 kg sul portapacchi.
T =225 s Il veicolo riparte dopo un tempo maggiore a Tstop quindi il sistema si prepara ad un nuovo controllo.
230 s < T < 235 s
Il sistema effettua il controllo sul valore di corsa e si accorge della variazione di carico. Quindi decide che il livello di precarico ottimo per tale condizione è il 5 e lo imposta (giri motore varia da 0 a 315 ).
305 s < T <310 s
Viene effettuato un nuovo controllo. Il sistema valuta la corsa troppo bassa e decide di diminuire il precarico passando dal livello 5 al livello 3 (giri motore da 315 a 209).
375 s < T <380 s Viene calcolato un nuovo valore di corsa. Quindi conferma il livello di precarico.
T =440 s Il veicolo si ferma e viene scaricato il portapacchi e sale il passeggero
T =470 s Il mezzo riparte e si dispone un nuovo controllo.
490 s < T < 495 s
La velocità é rimasta nel range il tempo necessario alla misura della corsa. L’unità di controllo si accorge nuovamente della variazione di carico e imposta il nuovo livello di precarico (livello 7:giri motore passa da 315 a 421) .
570 s < T <575 s Effettuata una nuova verifica viene confermato il livello di precarico.
T =600 s Il veicolo si ferma e scende il passeggero.
T =620 s Si riparte dopo Tstop e il sistema si prepara ad un nuovo controllo.
635 s < T <640 s
Valutato il nuovo valore di corsa, il sistema si accorge che il precarico è eccessivo per tale condizione di carico e lo riporta al valore ottimale (livello 0)(giri motore scende a 50 ).
T =660 s Il veicolo si ferma e viene alzato il cavalletto (il precarico viene riportato al minimo ).
Guidatore Guidatore + 20 kg Guidatore + passeggero
media
T
maxT
maxmisura
T
maxT
stopT
maxT
stopT
maxT
maxGuidatore Guidatore + 20 kg Guidatore + passeggero
media
T
maxT
maxmisura
T
maxT
stopT
maxT
stopT
maxT
maxPROVA 2 ( Tmedia = 3,5 s; Tblind = 2,5 s )
T=0 Condizioni di carico: guidatore.
T =5 s Partenza: il sistema si prepara alla prima misura.
20 s < T < 25 s
La velocità rimane nell’intervallo scelto per un tempo Tin_range sufficiente a calcolare il valor medio della corsa (stavolta i valori iniziali dell’intervallo vengono scartati). Il sistema decide di impostare il livello 1 (giri motore da 0 a 103). Quindi attende Tmax per un nuovo controllo.
T =85 s Il sistema si porta in attesa della seconda misura.
95 s < T < 100 s La nuova misura conferma la regolazione precedente.
T =125 s Il veicolo si ferma per Tstop.
155 s < T < 160 s Il nuovo livello di precarico è 0 ma non lo imposta poiché la differenza tra il livello impostato e il nuovo livello é < 2.
T =180 s Il veicolo si ferma e vengono caricati 20 kg sul portapacchi.
T =260 s Il veicolo riparte dopo un tempo maggiore a Tstop e il sistema si prepara ad un nuovo controllo.
270 s < T < 275 s
La misura da un valore di corsa fuori specifica e viene deciso che il livello di precarico ottimo da impostare in tale condizione è il 5 (giri motore varia da 0 a 315 ).
345 s < T <350 s Viene effettuato un nuovo controllo che dà come risultato livello di precarico 4 ma non viene impostato(differenza di livelli < 2).
495 s < T <500 s In base alla nuova verifica, il sistema valuta la corsa troppo bassa e decide di passare dal livello 5 al livello 3 (giri motore da 315 a 209).
T =555 s Il veicolo si ferma e sale il passeggero
T =580 s Il mezzo riparte e si dispone un nuovo controllo.
595 s < T <600 s L’unità di controllo si accorge nuovamente della variazione di carico e imposta il nuovo livello di precarico (livello 7)
T =620 s Il veicolo si ferma e scende il passeggero. Si riparte dopo Tstop.
660 s < T <665 s
Una volta valutata la nuova corsa il sistema si accorge che il precarico impostato è troppo alto e sceglie come nuovo livello il 2 e lo imposta.
735 s < T <740 s Il nuovo controllo dà un valore di corsa basso e viene impostato il livello di precarico 4.
805 s < T <810 s L’analisi dello stato della sospensione conferma la precedente impostazione
T =830 s Il veicolo si ferma
T =855 s Viene alzato il cavalletto (il precarico va al minimo )