1 MATLAB-SIMULINK Simulink Simulazione di un sistema ABS (Anti-lock bracking system) Ing. Alessandro Pisano [email protected] 2 Anti-lock bracking system (ABS) Il sistema anti bloccaggio, meglio noto con l'acronimo ABS (dall'inglese Antilock Braking System) è un sistema di sicurezza che evita il bloccaggio delle ruote dei veicoli garantendone la guidabilità durante le frenate Realizziamo un modello di simulazione che riproduce le dinamiche prevalenti di un sistema ABS. “Ingredienti” Simulink Uso di look-up table Integratori saturati Esportazione in Matlab dei dati per la creazione dei grafici Blocco della simulazione in presenza di particolari condizioni 3 Modello matematico Variabili del modello J T f Rr Fps (t) = velocità angolare ruota m v Fps 4 v(t) = velocità di avanzamento del veicolo Tf(t) = coppia frenante Fps(t) = forza da interazione pneumatico/strada Modello “quarto di veicolo” Costanti del modello J = inerzia ruota Rr = raggio ruota m= massa del veicolo Espressione della forza di interazione pneumatico/strada mg Fps s 4 s 1 v / Rr Alessandro Pisano - [email protected] s = “scorrimento” 4 Modello matematico Espressione della forza di interazione pneumatico/strada mg Fps s 4 s 1 v / Rr s = “scorrimento” Caratteristica (s) nota in forma tabellare. La forma della funzione (s) (Longitudinal force coefficient) dipende dalle condizioni della carreggiata e dalle caratteristiche del pneumatico Alessandro Pisano - [email protected] 5 Anti-lock bracking system (ABS) s 0 J T f Rr mg s 4 m mg v s 4 4 0.05 0 .1 0.15 s 1 v / Rr 1 Rr 0 .2 0.25 v 0 .3 0.35 0 .4 Sistema dinamico NON LINEARE, del secondo ordine 0.45 0 .5 0.55 Caratteristica (s) nota in forma tabellare 0 .6 0.65 0 .7 0.75 0 .8 0.85 0 .9 0.95 Alessandro Pisano - [email protected] 1 s 0 0 .4 0 .8 0.97 1 0.98 0.96 0.94 0.92 0 .9 0.88 0.855 0.83 0.81 0.79 0.77 0.75 0.73 0.72 0.71 0 .7 6 clear all clc g = 9.81; Rr = 0.6; m = 600; J = 5; % raggio della ruota [m] % massa del veicolo [kg] % inerzia ruota [kg m2] % Curva mu-slip slip = 0:.05:1.0; mu = [0 .4 .8 .97 1.0 .98 .96 .94 .92 .9 .88 .855 .83 .81 .79 .77 .75 .73 .72 .71 .7]; %Condizioni iniziali v0 = 30; % velocita iniziale del veicolo (m/s) omega0=v0/Rr; % velocita angolare iniziale della ruota (rad/s) Script di parametrizzazione Realizziamo il modello (ancora incompleto, in quanto non è stato ancora precisato come determinare la coppia di frenatura) 7 Equazioni in forma esplicita J T f Rr mg s 4 m mg v s 4 4 1 mg T f Rr s J 4 v 4 mg s m 4 8 Per cambiare il colore dello sfondo dello schema Tasto destro Canvas color Light blue Per cambiare font e colore dei blocchetti elementari Tasto destro (sopra il blocco) 1 mg T R s f r J 4 v 4 mg s m 4 s 1 Rr v Format Font Style / Foreground Color / Background color 9 Coppia di frenatura Tf costante (frenatura senza sistema ABS) Lookup Table Blocco Fcn per il calcolo dello scorrimento 10 1-D Lookup Table (libreria Lookup Tables) La caratteristica viene disegnata sulla maschera del blocco Alessandro Pisano - [email protected] 11 Integratori saturati Per evitare che le variabili assumano valori negativi Lower saturation impostata pari a zero Alessandro Pisano - [email protected] 12 Integratori saturati Per evitare che le variabili assumano valori negativi Lower saturation impostata pari a zero Show saturation port abilitata Viene generato in uscita al blocco integratore un segnale che vale zero quando la saturazione non è attiva, e vale -1 quando la saturazione è attiva Per mezzo di questo segnale posso interrompere la simulazione quando il veicolo si ferma Alessandro Pisano - [email protected] 13 Interruzione della simulazione quando il veicolo si arresta 14 File: ABS_cicloaperto.slx 15 Frenatura non controllata (ABS disattivato) Il pneumatico si blocca dopo 1.2 secondi circa, mentre la marcia del veicolo continua per altri 3 secondi circa. Lo scorrimento diventa unitario quando il pneumatico si blocca 16 Ora modelliamo l’ABS L’ABS è un sistema di controllo automatico che determina istante per istante la coppia frenante da applicare sulla base della misura dello scorrimento (controllo in retroazione) L’implementazione di un sistema ABS richiede pertanto la misura della velocita del veicolo, e la misura della velocita angolare della ruota. Il sistema ABS cerca di mantenere costante durante la frenatura il valore dello scorrimento. Il valore costante desiderato è 0.2, il valore di scorrimento in corrispondenza del quale la caratteristica (s) ha il punto di massimo. Alessandro Pisano - [email protected] 17 Ora modelliamo l’ABS L’ABS è un sistema di controllo automatico che determina istante per istante la coppia frenante da applicare sulla base della misura dello scorrimento (controllo in retroazione) T f t k f pt kf 3 p t wt 0 pt pmax w t wt 100ut 0.01 w t 1 pmax 1500 100ut wt 1 st 0.2 u t 1 st 0.2 Kf = 3; %guadagno pmax = 1500; % saturazione tau= 0.01; %costante di tempo 18 Ora modelliamo l’ABS Subsystem “ABS controller” che riceve in ingresso lo scorrimento e produce in uscita la coppia frenante Il controllo è un relè (controllo bang-bang). L’apposito blocco Relay si trova nella libreria Discontinuities Alessandro Pisano - [email protected] 19 Ora modelliamo l’ABS Subsystem “ABS controller” che riceve in ingresso lo scorrimento e produce in uscita la coppia frenante Anche il blocco Saturation si trova nella libreria Discontinuities Alessandro Pisano - [email protected] 20 Modello complessivo FILE: ABS_2015_ciclochiuso.slx Il blocco “Manual Switch” (libreria Signal Routing) consente di commutare tra la frenatura non controllata (Tf=-1000) e la frenatura mediante ABS Eseguiamo una simulazione, e visualizziamo i risultati nei blocchi Scope Alessandro Pisano - [email protected] 21 Frenatura non controllata (ABS disattivato) Il pneumatico si blocca dopo 1.2 secondi circa, mentre la marcia del veicolo continua per altri 3 secondi circa. Lo scorrimento diventa unitario quando il pneumatico si blocca 22 Frenatura con ABS attivato Il pneumatico ora si blocca solo nell’ultima parte della frenata. Il bloccaggio del pneumatico avviene quando ormai la velocita di marcia del veicolo è prossima a zero, la marcia del veicolo si arresta infatti dopo pochi decimi di secondo. Lo scorrimento viene regolato attorno al set point desiderato 0.2. diventando unitario solo a frenata ormai conclusa. Ora effettuiamo dei test incrementando la velocita iniziale del veicolo Alessandro Pisano - [email protected] 23 Esportazione in Matlab dei dati di simulazione Per esportare in Matlab i risultati della simulazione si deve utilizzare il blocco “ToWorkspace” (libreria Sinks) Alessandro Pisano - [email protected] 24 Velocita angolare della ruota 70 60 % raggio della ruota [m] % massa del veicolo [kg] % inerzia ruota [kg m2] 50 40 data clear all clc g = 9.81; Rr = 0.6; m = 600; J = 5; % Curva mu-slip slip = 0:.05:1.0; mu = [0 .4 .8 .97 1.0 .98 .96 .94 .92 .9 .88 .855 .83 .81 .79 .77 .75 .73 .72 .71 .7]; 30 20 10 %Condizioni iniziali v0 = 40; % velocita iniziale del veicolo (m/s) omega0=v0/Rr; % velocita angolare iniziale della ruota (rad/s) 0 %valore costante della coppia di frenatura nel test con il sistema ABD %disattivato Tf=-1000 0 1 2 3 Time (seconds) 4 5 6 Velocita del veicolo 40 35 30 %% creazione grafici figure(1) plot(omega),grid, title('Velocita angolare della ruota') figure(2) plot(v),grid, title('Velocita del veicolo') figure(3) plot(s),grid, title('Scorrimento') 25 data %costanti del controllore ABS Kf = 3; pmax = 1500; tau = 0.01; 20 15 10 5 0 0 1 2 3 Time (seconds) 4 5 6 25 %% creazione grafici - estrazione dei vettori time=omega.time; omega_vec=omega.data; v_vec=v.data; s_vec=s.data; figure(4) plot(time,[omega_vec v_vec]),grid,legend('vel. ruota (rad/sec)','vel. veicolo (m/s)'), xlabel('Time [sec]') 70 vel. ruota (rad/sec) vel. veicolo (m/s) 60 50 40 30 20 10 0 0 1 2 3 Time [sec] 4 5 6 26 Ora scriviamo uno script che avvii, in automatico, tre diverse istante della simulazione corrispodenti a tre valori differenti della velocita iniziale v0, e produca i relativi grafici. 1 v0=35 m/s v0=40 m/s v0=45 m/s 0.9 v0=35; omega0=v0/Rr; sim('ABS_2015_ciclochiuso') s35=s; v0=40; omega0=v0/Rr; sim('ABS_2015_ciclochiuso') s40=s; v0=45; omega0=v0/Rr; sim('ABS_2015_ciclochiuso') s45=s; time35=s35.time; time40=s40.time; time45=s45.time; 0.8 0.7 0.6 0.5 0.4 0.3 0.2 0.1 0 0 1 2 3 4 Time [sec] s35_vec=s35.data; s40_vec=s40.data; s45_vec=s45.data; figure(5) plot(time35,s35_vec,time40,s40_vec,time45,s45_vec),grid, legend('v0=35 m/s','v0=40 m/s','v0=45 m/s'),xlabel('Time [sec]') 5 6 7 27 Il subsystem “Controllore ABS” puo essere semplificato. L’equazione differenziale lineare a coefficienti costanti con un ingresso ed una uscita w t wt 100ut 0.01 Puo essere rappresentate mediante un blocco ad-hoc, che rivece in ingresso u(t) e produce in uscita w(t) 28 Blocco transfer function (libreria continuous) w t wt 100ut ,1 100