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

Post on 25-Sep-2020

0 views 0 download

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

Controlli automatici

1

Ing. Alessandro Pisanopisano@diee.unica.it

Esercitazione n. 1

Introduzione alla simulazione di sistemi di controlloin ambiente Matlab-Simulink

Caso di studio: cruise control

ESERCITAZIONE DI CONTROLLI AUTOMATICI

CRUISE CONTROL

)(tF

2

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

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

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

6

Avvio SIMULINK

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

Finestra di avvio SIMULINK

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)

8

Premendo “New model” apriamo una nuova pagina di lavoro

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

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

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.

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

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

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

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

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

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

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

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

20

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

FILE: Esempio1.slx

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]

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

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

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

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

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)

27

Pulsante Run (esegue lo script)

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.

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

30

Ora si puo eseguire il modello con il pulsante RUN.

Ora si puo eseguire la simulazione (Pulsante Run Simulation)

Pulsante Run Simulation

31

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

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

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 ?

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

( )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

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

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

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

39

Velocita del veicolo

40

Picco iniziale della spinta applicata F(t)