MATLAB-SIMULINK...12 Integratori saturati Alessandro Pisano - [email protected] Per evitare che...

28
MATLAB-SIMULINK 1 Simulink Ing. Alessandro Pisano [email protected] Simulazione di un sistema ABS (Anti-lock bracking system)

Transcript of MATLAB-SIMULINK...12 Integratori saturati Alessandro Pisano - [email protected] Per evitare che...

Page 1: MATLAB-SIMULINK...12 Integratori saturati Alessandro Pisano - pisano@diee.unica.it Per evitare che le variabili assumano valori negativi Lower saturation impostata pari a zero Show

MATLAB-SIMULINK

1

Simulink

Ing. Alessandro Pisano [email protected]

Simulazione di un sistema ABS (Anti-lock bracking system)

Page 2: MATLAB-SIMULINK...12 Integratori saturati Alessandro Pisano - pisano@diee.unica.it Per evitare che le variabili assumano valori negativi Lower saturation impostata pari a zero Show

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

Page 3: MATLAB-SIMULINK...12 Integratori saturati Alessandro Pisano - pisano@diee.unica.it Per evitare che le variabili assumano valori negativi Lower saturation impostata pari a zero Show

3

Modello matematico

psrf FRTJ (t) = velocità angolare ruota

J = inerzia ruota

Fps(t) = forza da interazione pneumatico/strada

Tf(t) = coppia frenante

psFvm

4

smg

Fps 4

rRv

s/

1

s = “scorrimento”

Rr = raggio ruota

Alessandro Pisano - [email protected]

v(t) = velocità di avanzamento del veicolo

m= massa del veicolo

Variabili del modello

Costanti del modello

Espressione della forza di interazione pneumatico/strada

Modello “quarto di veicolo”

Page 4: MATLAB-SIMULINK...12 Integratori saturati Alessandro Pisano - pisano@diee.unica.it Per evitare che le variabili assumano valori negativi Lower saturation impostata pari a zero Show

4

Modello matematico

smg

Fps 4

rRv

s/

1

s = “scorrimento”

Alessandro Pisano - [email protected]

Espressione della forza di interazione pneumatico/strada

Caratteristica (s) nota in forma tabellare.

La forma della funzione (s) (Longitudinal force coefficient) dipende dalle condizioni della carreggiata e dalle caratteristiche del pneumatico

Page 5: MATLAB-SIMULINK...12 Integratori saturati Alessandro Pisano - pisano@diee.unica.it Per evitare che le variabili assumano valori negativi Lower saturation impostata pari a zero Show

5

Anti-lock bracking system (ABS)

vR

Rvs r

r

1

/1

smg

RTJ rf 4

smg

vm

44

Caratteristica (s) nota in forma tabellare

Sistema dinamico NON LINEARE, del secondo ordine

Alessandro Pisano - [email protected]

7.0 1

71.095.0

72.09.0

73.085.0

75.08.0

77.075.0

79.07.0

81.065.0

83.06.0

855.055.0

88.05.0

9.045.0

92.04.0

94.035.0

96.03.0

98.025.0

12.0

97.015.0

8.01.0

4.005.0

00

ss

Page 6: MATLAB-SIMULINK...12 Integratori saturati Alessandro Pisano - pisano@diee.unica.it Per evitare che le variabili assumano valori negativi Lower saturation impostata pari a zero Show

6

clear all

clc

g = 9.81;

Rr = 0.6; % raggio della ruota [m]

m = 600; % massa del veicolo [kg]

J = 5; % 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)

Page 7: MATLAB-SIMULINK...12 Integratori saturati Alessandro Pisano - pisano@diee.unica.it Per evitare che le variabili assumano valori negativi Lower saturation impostata pari a zero Show

7

smg

RTJ rf 4

smg

vm

44

s

mgRT

Jrf

4

1

smg

mv

4

4

Equazioni in forma esplicita

Page 8: MATLAB-SIMULINK...12 Integratori saturati Alessandro Pisano - pisano@diee.unica.it Per evitare che le variabili assumano valori negativi Lower saturation impostata pari a zero Show

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) Format Font Style / Foreground

Color / Background color

s

mgRT

Jrf

4

1

smg

mv

4

4

vRs r

1

Page 9: MATLAB-SIMULINK...12 Integratori saturati Alessandro Pisano - pisano@diee.unica.it Per evitare che le variabili assumano valori negativi Lower saturation impostata pari a zero Show

9

Lookup

Table

Blocco Fcn per il calcolo dello scorrimento

Coppia di frenatura Tf costante

(frenatura senza sistema ABS)

Page 10: MATLAB-SIMULINK...12 Integratori saturati Alessandro Pisano - pisano@diee.unica.it Per evitare che le variabili assumano valori negativi Lower saturation impostata pari a zero Show

10

1-D Lookup Table (libreria Lookup Tables)

La caratteristica viene disegnata sulla maschera del blocco

Alessandro Pisano - [email protected]

Page 11: MATLAB-SIMULINK...12 Integratori saturati Alessandro Pisano - pisano@diee.unica.it Per evitare che le variabili assumano valori negativi Lower saturation impostata pari a zero Show

11

Integratori saturati

Alessandro Pisano - [email protected]

Per evitare che le variabili assumano valori negativi

Lower saturation impostata pari a zero

Page 12: MATLAB-SIMULINK...12 Integratori saturati Alessandro Pisano - pisano@diee.unica.it Per evitare che le variabili assumano valori negativi Lower saturation impostata pari a zero Show

12

Integratori saturati

Alessandro Pisano - [email protected]

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

Page 13: MATLAB-SIMULINK...12 Integratori saturati Alessandro Pisano - pisano@diee.unica.it Per evitare che le variabili assumano valori negativi Lower saturation impostata pari a zero Show

13

Interruzione della simulazione quando il veicolo si arresta

Page 14: MATLAB-SIMULINK...12 Integratori saturati Alessandro Pisano - pisano@diee.unica.it Per evitare che le variabili assumano valori negativi Lower saturation impostata pari a zero Show

14

File: ABS_cicloaperto.slx

Page 15: MATLAB-SIMULINK...12 Integratori saturati Alessandro Pisano - pisano@diee.unica.it Per evitare che le variabili assumano valori negativi Lower saturation impostata pari a zero Show

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

Page 16: MATLAB-SIMULINK...12 Integratori saturati Alessandro Pisano - pisano@diee.unica.it Per evitare che le variabili assumano valori negativi Lower saturation impostata pari a zero Show

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)

Alessandro Pisano - [email protected]

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.

Page 17: MATLAB-SIMULINK...12 Integratori saturati Alessandro Pisano - pisano@diee.unica.it Per evitare che le variabili assumano valori negativi Lower saturation impostata pari a zero Show

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)

tpktT ff

twtp

3fk

max0 ptp 1500max p

tutwtw 100

2.01

2.01

ts

tstu

01.0

twtutw 1001

Kf = 3; %guadagno

pmax = 1500; % saturazione

tau= 0.01; %costante di tempo

Page 18: MATLAB-SIMULINK...12 Integratori saturati Alessandro Pisano - pisano@diee.unica.it Per evitare che le variabili assumano valori negativi Lower saturation impostata pari a zero Show

18

Ora modelliamo l’ABS

Il controllo è un relè (controllo bang-bang). L’apposito blocco Relay si trova nella libreria Discontinuities

Alessandro Pisano - [email protected]

Subsystem “ABS controller” che riceve in ingresso lo scorrimento e produce in uscita la coppia frenante

Page 19: MATLAB-SIMULINK...12 Integratori saturati Alessandro Pisano - pisano@diee.unica.it Per evitare che le variabili assumano valori negativi Lower saturation impostata pari a zero Show

19

Ora modelliamo l’ABS

Anche il blocco Saturation si trova nella libreria Discontinuities

Alessandro Pisano - [email protected]

Subsystem “ABS controller” che riceve in ingresso lo scorrimento e produce in uscita la coppia frenante

Page 20: MATLAB-SIMULINK...12 Integratori saturati Alessandro Pisano - pisano@diee.unica.it Per evitare che le variabili assumano valori negativi Lower saturation impostata pari a zero Show

20

Modello complessivo

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

FILE:

ABS_2015_ciclochiuso.slx

Alessandro Pisano - [email protected]

Page 21: MATLAB-SIMULINK...12 Integratori saturati Alessandro Pisano - pisano@diee.unica.it Per evitare che le variabili assumano valori negativi Lower saturation impostata pari a zero Show

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

Page 22: MATLAB-SIMULINK...12 Integratori saturati Alessandro Pisano - pisano@diee.unica.it Per evitare che le variabili assumano valori negativi Lower saturation impostata pari a zero Show

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]

Page 23: MATLAB-SIMULINK...12 Integratori saturati Alessandro Pisano - pisano@diee.unica.it Per evitare che le variabili assumano valori negativi Lower saturation impostata pari a zero Show

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]

Page 24: MATLAB-SIMULINK...12 Integratori saturati Alessandro Pisano - pisano@diee.unica.it Per evitare che le variabili assumano valori negativi Lower saturation impostata pari a zero Show

24

clear all

clc

g = 9.81;

Rr = 0.6; % raggio della ruota [m]

m = 600; % massa del veicolo [kg]

J = 5; % 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 = 40; % velocita iniziale del veicolo (m/s)

omega0=v0/Rr; % velocita angolare iniziale della ruota

(rad/s)

%valore costante della coppia di frenatura nel test con il

sistema ABD

%disattivato

Tf=-1000

%costanti del controllore ABS

Kf = 3;

pmax = 1500;

tau = 0.01;

%% 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')

0 1 2 3 4 5 60

10

20

30

40

50

60

70

Time (seconds)

data

Velocita angolare della ruota

0 1 2 3 4 5 60

5

10

15

20

25

30

35

40

Time (seconds)data

Velocita del veicolo

Page 25: MATLAB-SIMULINK...12 Integratori saturati Alessandro Pisano - pisano@diee.unica.it Per evitare che le variabili assumano valori negativi Lower saturation impostata pari a zero Show

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]')

0 1 2 3 4 5 60

10

20

30

40

50

60

70

Time [sec]

vel. ruota (rad/sec)

vel. veicolo (m/s)

Page 26: MATLAB-SIMULINK...12 Integratori saturati Alessandro Pisano - pisano@diee.unica.it Per evitare che le variabili assumano valori negativi Lower saturation impostata pari a zero Show

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.

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;

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]')

0 1 2 3 4 5 6 70

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

1

Time [sec]

v0=35 m/s

v0=40 m/s

v0=45 m/s

Page 27: MATLAB-SIMULINK...12 Integratori saturati Alessandro Pisano - pisano@diee.unica.it Per evitare che le variabili assumano valori negativi Lower saturation impostata pari a zero Show

27

Il subsystem “Controllore ABS” puo essere semplificato.

tutwtw 100 01.0

L’equazione differenziale lineare a coefficienti costanti con un ingresso ed una uscita

Puo essere rappresentate mediante un blocco ad-hoc, che rivece in ingresso u(t) e produce in uscita w(t)

Page 28: MATLAB-SIMULINK...12 Integratori saturati Alessandro Pisano - pisano@diee.unica.it Per evitare che le variabili assumano valori negativi Lower saturation impostata pari a zero Show

28

Blocco transfer function (libreria continuous)

tutwtw 100

100 1,