Contenuto principale

Modellazione di un sistema antibloccaggio dei freni

Questo esempio mostra come modellare un sistema antibloccaggio dei freni (ABS) semplice. Il modello simula il comportamento dinamico di un veicolo in condizioni di frenata brusca. Il modello rappresenta una singola ruota, che può essere replicata più volte per creare un modello di veicolo a più ruote.

Questo modello utilizza la feature di registrazione dei segnali in Simulink®. Il modello registra i segnali nel workspace di MATLAB®, dove è possibile visualizzarli e analizzarli. Visualizzare il codice nel file ModelingAnAntiLockBrakingSystemExample.m per vedere come il software registra i segnali.

Nel modello sldemo_absbrake, la velocità della ruota viene calcolata in un modello separato denominato sldemo_wheelspeed_absbrake. Questo componente viene quindi referenziato utilizzando un blocco Model. Sia il modello principale che quello di riferimento utilizzano un risolutore a passo variabile, pertanto Simulink monitorerà gli zero-crossing nel modello di riferimento.

Fisica del modello

La ruota gira con una velocità angolare iniziale che corrisponde alla velocità del veicolo prima dell'azionamento dei freni. Il modello utilizza integratori separati per calcolare la velocità angolare della ruota e la velocità del veicolo. Il modello utilizza due velocità per calcolare lo slittamento, che è determinato dall'equazione 1. Si noti che la velocità del veicolo è espressa come velocità angolare.

$$\omega_v = \frac{V}{R} \mbox{ (equals the wheel angular speed if there is no slip)}$$

Equazione 1

$$ \omega_v = \frac{V_v}{R_r}$$

$$slip=1-\frac{\omega_w}{\omega_v}$$

$$\omega_v = \mbox{ vehicle speed divided by wheel radius}$$

$$ V_v = \mbox{ vehicle linear velocity}$$

$$ R_r = \mbox{ wheel radius}$$

$$ \omega_w = \mbox{ wheel angular velocity}$$

Lo slittamento è pari a zero quando la velocità della ruota e quella del veicolo sono uguali, mentre è pari a uno quando la ruota è bloccata. Un valore di slittamento auspicabile è 0.2, vale a dire che il numero di giri della ruota è pari a 0.8 volte il numero di giri in condizioni non frenanti, a parità di velocità del veicolo. Questo valore massimizza l'aderenza tra lo pneumatico e la strada e minimizza la distanza di arresto sfruttando l'attrito disponibile.

Analisi del modello

Il coefficiente di attrito tra lo pneumatico e il manto stradale, mu, è una funzione empirica dello slittamento, nota come curva mu-slip. Il software crea curve mu-slip passando le variabili di MATLAB al diagramma a blocchi utilizzando una tabella di ricerca di Simulink. Il modello moltiplica il coefficiente di attrito mu per il peso sulla ruota W ottenendo così la forza di attrito Ff, che agisce sulla circonferenza dello pneumatico. Ff viene diviso per la massa del veicolo per ottenerne la decelerazione che il modello integra per calcolare la velocità del veicolo.

Il modello utilizza un controller di antibloccaggio dei freni che si avvale di un sistema di controllo bang-bang basato sull'errore tra lo slittamento effettivo e quello desiderato. Lo slittamento desiderato viene impostato sul valore di slittamento al quale la curva mu-slip raggiunge un valore massimo, che rappresenta il valore ottimale per ottenere la distanza di frenata minima.

In un veicolo reale, lo slittamento non può essere misurato direttamente, quindi questo algoritmo di controllo non è utilizzabile nella pratica. Questo esempio utilizza l'algoritmo per illustrare la struttura concettuale di un modello di simulazione di questo tipo.

Fare doppio clic sul sottosistema Wheel Speed per aprirlo. Considerando lo slittamento della ruota, lo slittamento desiderato e la coppia dello pneumatico, questo sottosistema calcola la velocità angolare della ruota.

Per controllare la velocità di variazione della pressione dei freni, il modello sottrae lo slittamento effettivo dallo slittamento desiderato e invia questo segnale a un sistema di controllo bang-bang (+1 o -1, a seconda del segno dell'errore). Questa velocità di on/off subisce un ritardo di primo ordine che rappresenta il ritardo associato alle linee idrauliche del sistema frenante. Il modello integra quindi la velocità filtrata per produrre la pressione effettiva dei freni. Il segnale risultante, moltiplicato per l'area del pistone e il raggio rispetto alla ruota (Kf), corrisponde alla coppia frenante applicata alla ruota.

Il modello moltiplica la forza di attrito sulla ruota per il raggio della ruota (Rr) per ottenere la coppia di accelerazione esercitata dal manto stradale sulla ruota. La coppia frenante viene sottratta per ottenere la coppia netta sulla ruota. Dividendo la coppia netta per l'inerzia di rotazione della ruota I si ottiene l'accelerazione della ruota, che viene poi integrata per ricavare la velocità della ruota. Per mantenere positive la velocità della ruota e quella del veicolo, il modello utilizza integratori limitati.

Simulazione in modalità ABS

Nella scheda Simulation (Simulazione), fare clic su Run (Esegui) per eseguire la simulazione. È inoltre possibile eseguire la simulazione inserendo il comando sim('sldemo_absbrake') nella finestra di comando di MATLAB. Durante questa simulazione l'ABS è attivato.

Il modello registra i dati rilevanti nel workspace di MATLAB in una struttura denominata sldemo_absbrake_output. I segnali registrati sono contrassegnati da un indicatore blu. In questo caso vengono registrati yout e slp.

Questi grafici mostrano i risultati della simulazione ABS per i parametri predefiniti. Il primo grafico mostra la velocità angolare della ruota e la corrispondente velocità angolare del veicolo. Il secondo grafico mostra che la velocità della ruota rimane inferiore a quella del veicolo senza bloccarsi, mentre la velocità del veicolo scende a zero in meno di 15 secondi. Vengono monitorati l'accelerazione della ruota, il rapporto di slittamento della ruota e la pressione di frenata. Il rapporto di slittamento della ruota viene utilizzato per determinare se la ruota è bloccata o meno. I cicli di frenata vengono monitorati controllando la distanza di arresto e la pressione di frenata.

Simulazione senza ABS

Per ottenere risultati più significativi, si consideri il comportamento del veicolo senza ABS. Nella finestra di comando di MATLAB, impostare la variabile del modello ctrl = 0. Questa impostazione disattiva il feedback di slittamento dal controller, garantendo la massima frenata.

Eseguire nuovamente la simulazione per modellare la frenata senza ABS.

Frenata con ABS rispetto alla frenata senza ABS

Nel grafico che mostra la velocità del veicolo e quella della ruota, si nota che la ruota si blocca dopo circa sette secondi. Da quel momento in poi, la frenata viene applicata in una zona non ottimale della curva di slittamento. Ossia, come mostrato nel grafico dello slittamento, quando slip = 1 lo pneumatico slitta talmente tanto sull'asfalto che la forza di attrito diminuisce drasticamente.

Questo grafico mostra la distanza percorsa dal veicolo nei due casi. Senza l'ABS, il veicolo slitta per circa 100 piedi in più, impiegando circa tre secondi in più per fermarsi.

Modellazione estesa

Il controller in questo esempio è idealizzato, ma è possibile utilizzare qualsiasi algoritmo di controllo al suo posto per valutare la prestazione del sistema. Per la prototipazione rapida dell'algoritmo proposto, è possibile utilizzare anche Simulink Coder™.

  • Simulink Coder genera e compila codice C per l'hardware del controller, al fine di testare il concetto su un veicolo. Questo processo riduce significativamente il tempo necessario per validare nuove idee, consentendo di effettuare test concreti nelle prime fasi del ciclo di sviluppo.

  • Per la simulazione di un sistema frenante Hardware-In-the-Loop, Simulink Coder consente di generare codice C in tempo reale per eliminare il controller bang-bang ed eseguire le equazioni di moto su hardware in tempo reale, al fine di emulare la dinamica delle ruote e del veicolo. È quindi possibile testare un vero e proprio controller ABS interfacciandolo con l'hardware in tempo reale, che esegue il codice generato. In questo scenario, il modello in tempo reale invierebbe la velocità della ruota al controller e il controller invierebbe il comando di frenata al modello.

Vedi anche

Argomenti