Esercitazione n. 1 - Home - people.unica.it · 2019. 10. 9. · Esercitazione n. 1 Introduzione...

40
Controlli automatici 1 Ing. Alessandro Pisano [email protected] Esercitazione n. 1 Introduzione alla simulazione di sistemi di controllo in ambiente Matlab-Simulink Caso di studio: cruise control

Transcript of Esercitazione n. 1 - Home - people.unica.it · 2019. 10. 9. · Esercitazione n. 1 Introduzione...

Page 1: Esercitazione n. 1 - Home - people.unica.it · 2019. 10. 9. · Esercitazione n. 1 Introduzione alla simulazione di sistemi di controllo in ambiente Matlab-Simulink Caso di studio:

Controlli automatici

1

Ing. Alessandro [email protected]

Esercitazione n. 1

Introduzione alla simulazione di sistemi di controlloin ambiente Matlab-Simulink

Caso di studio: cruise control

Page 2: Esercitazione n. 1 - Home - people.unica.it · 2019. 10. 9. · Esercitazione n. 1 Introduzione alla simulazione di sistemi di controllo in ambiente Matlab-Simulink Caso di studio:

ESERCITAZIONE DI CONTROLLI AUTOMATICI

CRUISE CONTROL

)(tF

2

Page 3: Esercitazione n. 1 - Home - people.unica.it · 2019. 10. 9. · Esercitazione n. 1 Introduzione alla simulazione di sistemi di controllo in ambiente Matlab-Simulink Caso di studio:

Il cruise control costituisce un semplice ma importante esempio di sistema di controllo diampia diffusione in molti veicoli moderni.

L’obiettivo di controllo è mantenere una velocita di avanzamento costante a fronte didisturbi esterni quali ad es. il vento e la pendenza della carreggiata.

Ciò viene realizzato misurando la velocita del veicolo, confrontandola con il valoredesiderato Vdes (set-point) e variando automaticamente la spinta F(t) secondo un certoalgoritmo di controllo.

CRUISE CONTROL

)(tF

3

Page 4: Esercitazione n. 1 - Home - people.unica.it · 2019. 10. 9. · Esercitazione n. 1 Introduzione alla simulazione di sistemi di controllo in ambiente Matlab-Simulink Caso di studio:

Consideriamo un modello semplificato, illustrato in Figura.

Il veicolo, di massa m, è attuato dalla spinta F(t). F(t) rappresenta la forza applicataal veicolo nell’interfaccia tra il pneumatico e la carreggiata. Ipotizziamo di poterimporre un profilo arbitrario di forza applicata F(t) (attuatore ideale)La forza resistente b v, dovuta all’effetto combinato di attriti e fenomeniaerodinamici, è assunta direttamente proporzionale alla velocita del veicolo, attraverso il coeff. di attrito viscono b, ed agente in direzione opposta al moto.La forza peso viene proiettata sulla direzione del moto.

( ) ( ) ( )*sin)( mgtFtbvtvm −=+

Legame I/O

Ingresso : Spinta applicata F(t)

Uscita: velocità del veicolo v(t)

)(tF

mg

*

4

Page 5: Esercitazione n. 1 - Home - people.unica.it · 2019. 10. 9. · Esercitazione n. 1 Introduzione alla simulazione di sistemi di controllo in ambiente Matlab-Simulink Caso di studio:

Realizziamo il modello Simulink del sistema

5

Andiamo ad impiegare un blocco ad-hoc che In ambiente Simulink riproduce un sistema dinamico caratterizzato da una certa FdT

Utilizzando tale blocco, ed in aggiunta altri blocchi standard (ad es. guadagni, nodi sommatori, un blocco che genera un segnale costante, e un blocco chefunge da oscilloscopio e consente la visualizzazione delle forme d’ondagenerate) andremo a “disegnare” nella pagina di lavoro simulink unarappresentazione grafica in tutto e per tutto analoga agli schemi a blocchi cheabbiamo disegnato piu volte a lezione.

La realizzazione di un modello Simulink avviene attraverso tre fasi:- si importano in una pagina bianca di lavoro I blocchi elementari necessari per la realizzazione dello schema di simulaizone

-si parametrizzano I blocchi in modo che implementino le funzionalitadesiderate

-Si interconnnettono tra loro I blocchi per realizzare lo schema desiderato

Fatto cio, si puo avviare la simulazione e se ne visualizzano I risultati

Page 6: Esercitazione n. 1 - Home - people.unica.it · 2019. 10. 9. · Esercitazione n. 1 Introduzione alla simulazione di sistemi di controllo in ambiente Matlab-Simulink Caso di studio:

6

Avvio SIMULINK

Dalla finestra di avvio di Matlab, avviamo Simulink.Si apre la relativa finestra di avvio Simulink :

Finestra di avvio SIMULINK

Page 7: Esercitazione n. 1 - Home - people.unica.it · 2019. 10. 9. · Esercitazione n. 1 Introduzione alla simulazione di sistemi di controllo in ambiente Matlab-Simulink Caso di studio:

7

New Model

Elenco delle “librerie”

Le librerie sono gruppi diblocchetti elementariSimulink aventi funzionalitacomuni.

Contenuto della libreria corrente

Alcune Librerie (ad es. “Simulink”, “Aerospace blockset”, etc.) contengonoal proprio interno altresotto-librerie (strutturagerarchica)

Finestra di avvio SIMULINK (Simulink Library browser)

Page 8: Esercitazione n. 1 - Home - people.unica.it · 2019. 10. 9. · Esercitazione n. 1 Introduzione alla simulazione di sistemi di controllo in ambiente Matlab-Simulink Caso di studio:

8

Premendo “New model” apriamo una nuova pagina di lavoro

Page 9: Esercitazione n. 1 - Home - people.unica.it · 2019. 10. 9. · Esercitazione n. 1 Introduzione alla simulazione di sistemi di controllo in ambiente Matlab-Simulink Caso di studio:

9

Affrontiamo come problema inroduttivo il task di visualizzare la risposta al gradinodel sistema dnamico descritto dalla funzione di trasferimento

( )72

142 ++

=ss

sF

72

142 ++ ss

5

y

In termini di schema a blocchi, rappresenteremmo qusto sistema (a ciclo aperto) nella maniera seguente

Nella pagina di lavoro Simulink, andremo a “disegnare” una rappresentazione analoga

ESEMPIO 1

Page 10: Esercitazione n. 1 - Home - people.unica.it · 2019. 10. 9. · Esercitazione n. 1 Introduzione alla simulazione di sistemi di controllo in ambiente Matlab-Simulink Caso di studio:

10

Importiamo nella pagina di lavoro il blocco “Transfer Fcn” (funzione di trasferimento), che si trova nella sotto-libreria “Continuous” della libreria principale “Simulink”

L’importiazione dei blocchi nella pagina di lavoro si effettua con il mouse mediantedrag-and-drop

Poi importiamo il blocco “Constant” che sta nella sotto-libreria “Sources” dellalibreria principale “Simulink”

pagina di lavoro Simulink

Page 11: Esercitazione n. 1 - Home - people.unica.it · 2019. 10. 9. · Esercitazione n. 1 Introduzione alla simulazione di sistemi di controllo in ambiente Matlab-Simulink Caso di studio:

11

Disponiamo I blocchi come in figura

Interconnettiamo I due blocchi. Il tracciamento di una connessione sieffettua portandosi con il mouse nel puntodi inzio della linea di connessione (quindinel terminale di uscita del blocco Constant), premendo il tasto destro, e successivamenteportandosi con il mouse - mantenendopremuto il tasto - verso il punto didestinazione, in questo caso il terminale diingresso del blocco Transfer Fcn.

Page 12: Esercitazione n. 1 - Home - people.unica.it · 2019. 10. 9. · Esercitazione n. 1 Introduzione alla simulazione di sistemi di controllo in ambiente Matlab-Simulink Caso di studio:

12

Di default, il blocco Constant è parametrizzato con ilvalore unitario per l’ampiezza del segnale, mentre ilblocco Transfer Fcn è parametrizzato con la FdT1/(s+1)

Facendo doppio click su un blocco, si accede alla sua finestra di parametrizzaione. Il blocco Constant, che genera il segnale di ingresso al sistema, è gia configuratocorrettamente per il presente esempio.

Dobbiamo invece configurare il blocco Transfer Fcn.Apriamone la finestra di parametrizzazione

Page 13: Esercitazione n. 1 - Home - people.unica.it · 2019. 10. 9. · Esercitazione n. 1 Introduzione alla simulazione di sistemi di controllo in ambiente Matlab-Simulink Caso di studio:

13

Parametrizzazione del blocco Transfer Function

Si devono specificare i coefficienti dei polinomi anumeratore e denominatore della FdT utilizzando lanotazione Matlab per la rappresentazione dei polinomi(un vettore che contiene i coefficienti del polinomio inordine decrescente rispetto alle potenze di s)

Il blocco deve rappresentare la Funz. di Trasf.

]7 2 1[ 722 ++ ss

( )72

142 ++

=ss

sF

Altri esempi:

]4 0 0 1[ 43 +s

]14[ 14

]2 3 0 2 1[ 232 34 −++− sss

Page 14: Esercitazione n. 1 - Home - people.unica.it · 2019. 10. 9. · Esercitazione n. 1 Introduzione alla simulazione di sistemi di controllo in ambiente Matlab-Simulink Caso di studio:

14

Il blocco deve essere parametrizzato nella seguente maniera.

Dopo aver premuto i tasto OK, l’aspetto del blocco Transfer Fcn nella pagina di lavoro cambia, e mostra al proprio interno la FdT avente i parametri scelti

Page 15: Esercitazione n. 1 - Home - people.unica.it · 2019. 10. 9. · Esercitazione n. 1 Introduzione alla simulazione di sistemi di controllo in ambiente Matlab-Simulink Caso di studio:

15

Ora inseriamo il blocco “Scope”, che consente la visualizzazione di un segnale.

Il blocco sta nella sotto-libreria “Sinks” della libreria principale “Simulink”.Ora colleghiamone il terminale di ingresso al terminale di uscita del blocco Transfer Fcn. In modo da visualizzare il segnale di uscita y e avviamo la simulazione (Pulsante Run Simulation)

Pulsante Run Simulation

Page 16: Esercitazione n. 1 - Home - people.unica.it · 2019. 10. 9. · Esercitazione n. 1 Introduzione alla simulazione di sistemi di controllo in ambiente Matlab-Simulink Caso di studio:

16

Prima di visualizzare la risposta , se ne calcolino i parametri caratteristici mediante le formule viste a lezione

( )72

142 ++

=ss

sF

( )( )22

2

2 nn

n

sssF

++=

Forma generale

14

7

2

2

=

=

n

n

22 =n

27/14/14

sec/ 645.27

2 ===

=

n

n rad

37.0/1 = n

Page 17: Esercitazione n. 1 - Home - people.unica.it · 2019. 10. 9. · Esercitazione n. 1 Introduzione alla simulazione di sistemi di controllo in ambiente Matlab-Simulink Caso di studio:

17

21

% 100

−−

= eS

0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 10

10

20

30

40

50

60

70

80

90

100

Smorzamento []

Sovra

elo

ngazio

ne p

erc

entu

ale

S%

Sovraelongazione percentuale vs. smorzamento

28% S

Page 18: Esercitazione n. 1 - Home - people.unica.it · 2019. 10. 9. · Esercitazione n. 1 Introduzione alla simulazione di sistemi di controllo in ambiente Matlab-Simulink Caso di studio:

18

sn

eq 02.11

=

%5aT %2aT %1aT

( )( )22

2

2 nn

n

sssF

++=

eq3eq4 eq5

( )72

142 ++

=ss

sF s 06.3 s 08.4 s 10.5

Page 19: Esercitazione n. 1 - Home - people.unica.it · 2019. 10. 9. · Esercitazione n. 1 Introduzione alla simulazione di sistemi di controllo in ambiente Matlab-Simulink Caso di studio:

19

Il primo punto di massimo, in corrispondenza del quale si ha la massima sovraelongazione, si verifica approsimativante quando

5.3tn 32.1/5.3max == nTt

Page 20: Esercitazione n. 1 - Home - people.unica.it · 2019. 10. 9. · Esercitazione n. 1 Introduzione alla simulazione di sistemi di controllo in ambiente Matlab-Simulink Caso di studio:

20

Ora dopo avere eseguito il modello, fare dopio click sul blocco “Scope”. La risposta possiede le caratteristiche attese

FILE: Esempio1.slx

Page 21: Esercitazione n. 1 - Home - people.unica.it · 2019. 10. 9. · Esercitazione n. 1 Introduzione alla simulazione di sistemi di controllo in ambiente Matlab-Simulink Caso di studio:

21

Ritorniamo al problema del cruise control

( ) ( ) ( )*sin)( mgtFtbvtvm −=+

Legame I/O

Ingresso : forza applicata F(t)

Uscita: velocità del veicolo v(t)

)(tF

mg

*

% Parametri

m=1000; % massa del veicolo [kg]

b=50; % coefficiente di attrito viscoso [N s / m]

teta=5; % angolo di inclinazione del piano [gradi]

g=9.81; % accelerazione di gravita [m/s^2]

Page 22: Esercitazione n. 1 - Home - people.unica.it · 2019. 10. 9. · Esercitazione n. 1 Introduzione alla simulazione di sistemi di controllo in ambiente Matlab-Simulink Caso di studio:

Realizziamo il modello Simulink del sistema a ciclo aperto

22

bms +

1)(tF)(tv

)(tF

( )*sin mg−

+

+

A lezione era stato ricavato il seguente Schema a blocchi

( )sP)(tF

)(tv)(tF

( )*sin mg−

+

+( )

bmssP

+=

1

Page 23: Esercitazione n. 1 - Home - people.unica.it · 2019. 10. 9. · Esercitazione n. 1 Introduzione alla simulazione di sistemi di controllo in ambiente Matlab-Simulink Caso di studio:

23

Processo P(s) con guadagno =1/b pari a 0.02, e costante di tempo m/b pari a 20 secondi.

( )1120

02.0

501000

11

+=

+=

+=

+=

TsssbmssP

02.0= sT 20= 05.01

−=−=T

p

Rivaviamo I parametri caratteristici della FdT P(s) del sistema

Page 24: Esercitazione n. 1 - Home - people.unica.it · 2019. 10. 9. · Esercitazione n. 1 Introduzione alla simulazione di sistemi di controllo in ambiente Matlab-Simulink Caso di studio:

Il valore costante della forza di ingresso che garantisce il raggiungimento asintotico del valore di regime pari a Vdes è pari a:

( ) desbVmgtF += *sin)(

24

120

02.0

+s

desbV)(tv

La prima componente della spinta F(t) “cancella” (compensa) la forza peso. Il modelloequivalente è

Perfetta conoscenza dei parametri del sistema

Tempi di assestamento al 5%, 2%, ed 1% pari a circa 60, 80, e 100 secondi rispettivamente

sec20=T

Transitorio lunghissimo e non modificabile

Page 25: Esercitazione n. 1 - Home - people.unica.it · 2019. 10. 9. · Esercitazione n. 1 Introduzione alla simulazione di sistemi di controllo in ambiente Matlab-Simulink Caso di studio:

25

Lo schema viene realizzato in simulink nella maniera seguente .

Si inseriscano all’interno dei blocchi anziche i valori numerici delle grandezze le relative costanti simboliche m, b, g, teta.

Il nodo sommatore si trova nella libreria “Commonly used blocks”, e lo si deve successivamente parametrizzare con la stringa “-+”, che da luogo a due terminali di ingresso il primo dei quali avente segno negativo ed il secondo avente segno positivo

Lo schema è ridondante, in quanto non sono state rimosse le due componenti uguali e contrarie associate alla forza peso. Si opera questa scelta per semplificare le successive estensioni dell modello a schemi in retroazione. Per generare l’ingresso servono due blocchi “Constant” ed un nodo sommatore,

FILE: CruiseContr_cicloaperto.slx

Page 26: Esercitazione n. 1 - Home - people.unica.it · 2019. 10. 9. · Esercitazione n. 1 Introduzione alla simulazione di sistemi di controllo in ambiente Matlab-Simulink Caso di studio:

26

% Parametri

m=1000; % massa del veicolo [kg]

b=50; % coefficiente di attrito viscoso [N s / m]

teta=5; % angolo di inclinazione del piano [gradi]

g=9.81; % accelerazione di gravita [m/s^2]

Vdes=10; %set-point di velocità [m/s]

Scegliamo per il set point di velocita il valore Vdes=10 m/s (pari a 36 km/h)

SI devono memorizzare nel workspace di Matlab le variabili simboliche impiegate nel modello, affinche il modello Simulink le possa interpretare.

Si apra l’editor di testo dei files script (pulsante “New Script” nella finestra principale di Matlab) e si inseriscano le seguenti righe di codice (comprendenti commenti)

Page 27: Esercitazione n. 1 - Home - people.unica.it · 2019. 10. 9. · Esercitazione n. 1 Introduzione alla simulazione di sistemi di controllo in ambiente Matlab-Simulink Caso di studio:

27

Pulsante Run (esegue lo script)

Page 28: Esercitazione n. 1 - Home - people.unica.it · 2019. 10. 9. · Esercitazione n. 1 Introduzione alla simulazione di sistemi di controllo in ambiente Matlab-Simulink Caso di studio:

28

Variabili memorizzate nel workspace

Si verifichi la corretta esecuzione dello script ispezionando direttamente il contenuto del workspace di Matlab dalla finestra principale del programma, e verificando la presenza delle costanti simboliche impiegate nel modello simulink.

Page 29: Esercitazione n. 1 - Home - people.unica.it · 2019. 10. 9. · Esercitazione n. 1 Introduzione alla simulazione di sistemi di controllo in ambiente Matlab-Simulink Caso di studio:

29

Bisogna impostare una durata sufficiente della simulazione per garantire l’esaurimento del transitorio. Scegliamo 200 secondi, pari al doppio del Tempo di assestamento all’1% dellarisposta.

Durata della simulazione in secondi

Page 30: Esercitazione n. 1 - Home - people.unica.it · 2019. 10. 9. · Esercitazione n. 1 Introduzione alla simulazione di sistemi di controllo in ambiente Matlab-Simulink Caso di studio:

30

Ora si puo eseguire il modello con il pulsante RUN.

Ora si puo eseguire la simulazione (Pulsante Run Simulation)

Pulsante Run Simulation

Page 31: Esercitazione n. 1 - Home - people.unica.it · 2019. 10. 9. · Esercitazione n. 1 Introduzione alla simulazione di sistemi di controllo in ambiente Matlab-Simulink Caso di studio:

31

L’evoluzione ottenuta è in linea con quanto predetto sulla carta..

Page 32: Esercitazione n. 1 - Home - people.unica.it · 2019. 10. 9. · Esercitazione n. 1 Introduzione alla simulazione di sistemi di controllo in ambiente Matlab-Simulink Caso di studio:

%Parametri veicolo e piano inclinato

m=1000; % massa del veicolo [kg]

b=50; % copefficiente di attrito viscoso [N s / m]

teta=20; % angolo di inclinazione del piano [gradi]

g=9.81; % accelerazione di gravita [m/s^2]

Vdes=10 % set-point di velocità [m/s]

P=tf(1,[m b]);

step(10*b*P)

hold on

step(20*b*P)

step(30*b*P)

legend('Vdes=10','Vdes=20','Vdes=30')

La durata del transitorio non dipende dalvalore del set-point

320 20 40 60 80 100 120 140 160 1800

5

10

15

20

25

30

Step Response

Time (seconds)

Am

plit

ude

Vdes=10

Vdes=20

Vdes=30

Prove con diverso valore del set-point (10, 20, 30)

La rapidita di risposta è completamentedeterminata dalla costante di tempo del processo (T=20 s)

Page 33: Esercitazione n. 1 - Home - people.unica.it · 2019. 10. 9. · Esercitazione n. 1 Introduzione alla simulazione di sistemi di controllo in ambiente Matlab-Simulink Caso di studio:

Studiamo le soluzioni basate sul feedback, iniziando dal semplice controlloreproporzionale (controllore di tipo “P”)

33

Trascuriamo temporaneamente la pendenza della carreggiata (teta = 0)

Qual’è il valore di regime della velocita ?

Page 34: Esercitazione n. 1 - Home - people.unica.it · 2019. 10. 9. · Esercitazione n. 1 Introduzione alla simulazione di sistemi di controllo in ambiente Matlab-Simulink Caso di studio:

34

FdT a ciclo chiuso

( )( )( ) P

P

P

P

P

P

des

v

Vks

k

kbms

k

bmsk

bmsk

sV

sVsW

des ++=

++=

++

+

==5010001

1

1

La FdT a ciclo chiuso è asintoticamente stabile se kp positivo.

Il valore di regime in corrispondenza di un set-point costante è pari al valore del guadagno per il valore del set-point

( )p

p

p

p

desdestk

k

kb

kVVtv

+=

+==→

5010lim

Guadagno: ( )P

Pv

Vkb

kW

des +== 0 Guadagno non unitario

Si ha

s 501000

pkT

+=Costante di tempo: Diminuisce al crescere del guadagno

kp del controllore

Page 35: Esercitazione n. 1 - Home - people.unica.it · 2019. 10. 9. · Esercitazione n. 1 Introduzione alla simulazione di sistemi di controllo in ambiente Matlab-Simulink Caso di studio:

( )p

p

destkb

kVtv

+=→lim

Effettuiamo un test di verifica

Vdes=10 b=50kp=1

( ) 196.0lim ==→ dest Vtv

0196.0=+

=P

P

kb

k

Page 36: Esercitazione n. 1 - Home - people.unica.it · 2019. 10. 9. · Esercitazione n. 1 Introduzione alla simulazione di sistemi di controllo in ambiente Matlab-Simulink Caso di studio:

( )p

p

destkb

kVtv

+=→lim Il guadagno diventa via via più vicino all’unita al

crescere di kp (migliore precisione)

Poiche la costante di tempo T si riduce al crescere di kp, la risposta diventa progressivamente piu rapida al crescere di kp (migliore prontezza)

0 50 100 150 200 250 300 350 400 4500

1

2

3

4

5

6

7

8

9

10

Step Response

Time (seconds)

Am

plit

ude

Kp=5

Kp=50

Kp=200

P=tf(1,[m b]);

R=5;

W5=feedback(P*R,1)

R=50;

W50=feedback(P*R,1)

R=200;

W200=feedback(P*R,1)

step(Vdes*W5)

hold on

step(Vdes*W50)

step(Vdes*W200)

legend('Kp=5','Kp=50','Kp=200')

Page 37: Esercitazione n. 1 - Home - people.unica.it · 2019. 10. 9. · Esercitazione n. 1 Introduzione alla simulazione di sistemi di controllo in ambiente Matlab-Simulink Caso di studio:

37

Scegliendo Kp sufficientemente grande si riesce ad ottenere un valore di regime della risposta arbitrariamente prossimo al valore del set point ed una durata del transitorio arbitrariamente rapida.

Dove si “paga” ?

Elevati valori della spinta applicata al veicolo, che possono diventare non realistici

Page 38: Esercitazione n. 1 - Home - people.unica.it · 2019. 10. 9. · Esercitazione n. 1 Introduzione alla simulazione di sistemi di controllo in ambiente Matlab-Simulink Caso di studio:

38

Kp = 3000

Polo a ciclo chiuso p=-3.05

0501000 =++ Pkp

Costante di tempo a ciclo chiuso T =0.32 sec

( )P

Pv

Vks

ksW

des ++=

501000FdT a ciclo chiuso

05.3 001.005.01000

50−=−−=

−−= P

P kk

p

32.005.3

11==−=

pT

Guadagno della FdT a ciclo chiuso =0.983

( ) 983.0300050

3000

500 =

+=

+==

P

Pv

Vk

kW

des

( )1+

=Ts

sW v

Vdes

Forma standard FO

Page 39: Esercitazione n. 1 - Home - people.unica.it · 2019. 10. 9. · Esercitazione n. 1 Introduzione alla simulazione di sistemi di controllo in ambiente Matlab-Simulink Caso di studio:

39

Velocita del veicolo

Page 40: Esercitazione n. 1 - Home - people.unica.it · 2019. 10. 9. · Esercitazione n. 1 Introduzione alla simulazione di sistemi di controllo in ambiente Matlab-Simulink Caso di studio:

40

Picco iniziale della spinta applicata F(t)