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 pt 
kf  3
p t   wt 
0  pt   pmax
w t   wt   100ut 
  0.01
w t  
1

pmax  1500
100ut   wt 
 1 st   0.2
u t   
 1 st   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   wt   100ut 
  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   wt   100ut 
 ,1
100