Uploaded by Lorenzo Tovagliaro

SistemiAutomatici2

advertisement
Automatica: la potenza è nulla senza controllo
Automazione dei sistemi continui
Alberto Leva
© 2022 Alberto Leva
Except where otherwise noted, this work is licensed under a
Creative Commons Attribution-ShareAlike 4.0 International Licence
https://creativecommons.org/licenses/by-sa/4.0/
Creative Commons and the double C in a circle are registered trademarks
of Creative Commons in the United States and other countries.
Third party marks, logos and brands are the property of their respective holders.
Concetti fondamentali
Sistema dinamico
a tempo continuo
e a tempo discreto.
Operatori matematici coinvolti:
operatore derivata temporale,
operatore anticipo di un passo.
Retroazione.
NOTA: per praticità non li vedremo però in quest’ordine (e nemmeno tutti con lo
stesso dettaglio).
3
Sistema dinamico
Conoscendo l'ingresso u in un
dato intervallo di tempo, questo
mi basta per conoscere l'uscita y
nello stesso intervallo?
u
S
y
Sì ➔ sistema NON dinamico,
No ➔ sistema dinamico.
Vediamo alcuni esempi
4
Sistema dinamico
Resistore di resistenza R,
l'ingresso u(t) è la corrente,
l'uscita y(t) è la tensione.
Abbiamo (legge di Ohm)
y(t) = Ru(t).
La risposta e sì:
sistema non dinamico.
5
Sistema dinamico
Serbatoio a pelo libero:
l'ingresso u(t) è la portata netta
(entrante meno uscente),
l'uscita y(t) è il livello.
La risposta e no: bisogna anche
sapere il livello iniziale.
sistema dinamico.
6
Sistema dinamico
I sistemi dinamici si possono classificare in diversi modi.
A noi qui interessa distinguere
quelli "a tempo continuo", dove il tempo t è un numero reale e ha il significato intuitivo
e quelli "a tempo discreto", che evolvono "a passi" secondo un indice k intero (0,1,2...)
che peraltro non è necessariamente legato a un intervallo temporale.
Cominciamo a tempo discreto perché è più facile e pensiamo subito a un esempio:
passeggeri sul tram quando si lascia la fermata k
=
passeggeri che c'erano quando si è lasciata la fermata k-1
+ passeggeri saliti alla fermata k
- passeggeri scesi alla fermata k
7
Sistema dinamico
Cosa rende dinamico un sistema?
Un fenomeno di accumulo
di massa in un serbatoio,
di energia termica in un corpo,
di carica in un condensatore,
di passeggeri in un tram...
Questo si rappresenta dicendo che il sistema ha uno stato che "tiene memoria"
della sua condizione, cosicché allo stesso ingresso il sistema può reagire con
un'uscita diversa a seconda appunto dello stato.
Nel caso a tempo discreto questo si rappresenta, detto u l'ingresso e x lo stato, con
un'equazione alle differenze del tipo
x(k) = f(x(k-1),u(k-1))
8
Sistemi dinamici a tempo discreto
Un altro modo di rappresentare un tale sistema è dire che l'uscita dipende dai
valori passati di sé stessa e dell'ingresso, che così vengono a svolgere il ruolo di
stato; ovvero, detti y l'uscita e u l’ingresso, si può scrivere
y(k)
= f(y(k-1),y(k-2),... u(k), u(k-1)...)
Per semplicità consideriamo il caso lineare e tempo-invariante, ossia
y(k) = a1y(k-1)...+any(k-n)...+b0u(k)...+bmu(k-m)
e quantomeno per i primi esempi teniamoci al sistema elementare
y(k)
= ay(k-1)+bu(k-1)
9
Sistemi dinamici a tempo discreto
Proprietà fondamentale: stabilità.
Se faccio evolvere il sistema liberamente (u=0) a partire da un certo stato (uscita)
y(0), che succede?
Verifichiamo:
se |a|<1 y(k) converge a zero
-> sistema asintoticamente stabile;
se |a|>1 y(k) diverge a meno dell'eccezione y(0)=0
-> sistema instabile;
se |a|=1 y(k) né converge né diverge, rimanendo costante (a=1) oppure
oscillando indefinitamente (a=-1)
-> sistema (semplicemente) stabile;
10
Sistemi dinamici a tempo discreto
Definiamo ora l'operatore anticipo di un passo, che chiamiamo z: scriveremo cioè
zv(k) per indicare v(k+1), qualunque cosa v sia.
Questo ci permette di descrivere un sistema dinamico lineare e tempo-invariante a
tempo discreto con un operatore (composto di z) che chiamiamo funzione di
trasferimento e indichiamo con G(z).
Esempio:
y(k) = 0.2y(k-1)+0.1y(k-2)+u(k-1)
y(k+2) = 0.2y(k+1)+0.1y(k)+u(k+1)
z2y(k)-0.2zy(k)-0.1y(k) = zu(k)
y
z
G(z)= = 2
u z −0.2 z−0.1
11
Sistemi dinamici a tempo discreto
La funzione di trasferimento è un "ritratto" del sistema in quanto dice come risponde
a un certo ingresso. Se ne possono ottenere varie rappresentazioni del sistema: una
intuitiva è la cosiddetta "risposta a scalino", cioè all'ingresso
u(k)=
{
1 k⩾0
0 k <0
a partire da k=0.
Nell'esempio precedente si ha
y(0) = 0.2y(-1)+0.1y(-2)+u(-1) = 0+0+0 = 0
y(1) = 0.2y(0)+0.1y(-1)+u(0) = 0+0+1 = 1
y(2) = 0.2y(1)+0.1y(0)+u(1) = 0.2+0+1 = 1.2...
Ora giochiamo un po' con GNU Octave
(https://www.gnu.org/software/octave/).
12
Sistemi dinamici a tempo discreto
13
Sistemi dinamici a tempo discreto
Posso giudicare la stabilità (asintotica) di un sistema dalla sua funzione di
trasferimento?
Nel caso
b
G( z)=
z−a
sì: occorre |a|<1.
In generale è più complicato, però possiamo arrivare al caso in cui il denominatore di
G(z) abbia radici – che si dicono poli di G(z) – reali distinte.
Detti pi quest poli, si può scrivere G(z) nella forma
r1
rn
G( z)=k +
…+
z− p 1
z− p n
e quindi occorre e basta che tutti i poli abbiano modulo minore di 1.
14
Sistemi dinamici a tempo discreto
Facciamo due esempi:
G 1 (z)=
z−0.2
2
,
G
(
z)=
2
2
2
z −0.4 z−0.05
z +1.5 z−1
15
Sistemi dinamici a tempo discreto
Consideriamo ora un sistema asintoticamente stabile e applichiamogli un ingresso
u(k) costante – o, equivalentemente, a scalino – a partire da k=0.
A che valore tende y(k) per k→∞?
Detto U il valore costante di u(k), al valore Y per cui
Y= a1Y...+anY...+b0U...+bmU
ovvero a G(1)U.
G(1) prende di conseguenza il nome di guadagno del sistema.
Passiamo ora al concetto di retroazione.
16
Retroazione – l’anello (loop) di controllo
w(k)
e(k)
+_
C(z)
u(k)
P(z)
y(k)
w(k) segnale di riferimento o set point;
e(k) errore;
u(k) segnale di controllo;
y(k) variabile controllata;
P(z) funzione di trasferimento del processo;
C(z) funzione di trasferimento del controllore (da determinarsi).
Domande cui occorre rispondere: (1) Come esprimo i requisiti? (2) Una volta espressi,
come ne ottengo C(z)?
17
Retroazione – requisiti del controllo
Ci sono molti modi di esprimerli.
Uno semplice è dire come y deve rispondere a un dato andamento di w.
Di solito, anche per poter confrontare facilmente soluzioni diverse, si usa come
specifica la risposta desiderata di y a uno scalino di w.
Da questa – come anche da altre risposte, noi ci fermiamo qui – si può ottenere una
funzione di trasferimento desiderata da w a y, che chiamiamo T°(z).
Una sceltqa abbastanza tipica è
T ° ( z)=
1− p
z− p
che ha guadagno unitario (voglio che per k→∞ y tenda al valore costante di w); si
sceglie ovviamente |p|<1 perché un sistema di controllo dev’essere asintoticamente
stabile.
18
Retroazione – da T°(z) a C(z)
w(k)
e(k)
+_
C(z)
u(k)
P(z)
y(k)
Chiamiamo T(z) la funzione di trasferimento effettiva da w a y.
Per esprimerla in funzione di P(z) e C(z) immaginiamo di tagliare l’anello,
percorriamolo e facciamo il bilancio.
Otteniamo
C ( z) P( z)
T ( z)=
1+C (z) P (z)
19
Retroazione – da T°(z) a C(z)
Risolviamo rispetto a C e già che ci siamo vediamo un attimo anche wxMaxima
(https://wxmaxima-developers.github.io/wxmaxima/download.html).
T ° (z )
1
C ( z )=
P (z) 1−T ° (z)
20
Esempi
Cominciamo ad applicare le idee esposte.
NOTA: per semplicità qui ci limitiamo al caso in cui il processo P(z) sia
asintoticamente stabile.
Calcoleremo C(z) e simuleremo l’anello chiuso, vedendo come risponde al set point
e anche a possibili disturbi.
Useremo sia wxMaxima e Octave che OpenModelica
(https://openmodelica.org).
21
Esempio 1
1
0.25
P( z)=
, T ° ( z)=
z +0.8
z−0.75
wxMaxima
Octave
22
Esempio 1
23
Esempio 2
1
0.25
P( z)=
, T ° ( z)=
2
z−0.75
( z−0.8)
Due zeri (radici del numeratore) e un polo
(radice del denominatore): non va bene.
Si ottiene infatti
u(k) = u(k-1) +0.25e(k+1)-0.4e(k)+0.16e(k-1)
Questo farebbe dipendere u dal futuro di e, il che è ovviamente impossibile.
24
Esempio 2
Dobbiamo cambiare T°(z) e sceglierne una con una differenza tra numero di poli e
numero di zeri – detta anche grado relativo – pari almeno a quella di P(z) ovvero 2.
Per esempio scegliamo
0.25
T ° ( z)=
z( z−0.75)
che essendo 1/z l’operatore ritardo unitario equivale a chiedere la stessa risposta
ritardata però di un passo.
Così otteniamo
2
0.25 z −0.4 z +0.16
C (z )= 2
z −0.75 z−0.25
che a differenza del precedente si può realizzare.
25
Esempio 2 - OpenModelica
26
Esempio 2 - OpenModelica
27
Retroazione e disturbi
d(k)
w(k)
e(k)
+_
C(z)
u(k) + +
P(z)
y(k)
Spesso y è soggetta a disturbi, ovvero ingressi non controllabili come d(k).
La retroazione può contrastarne l’effetto senza misurarli (vedi sopra).
Osserviamo – ragionando come abbiamo fatto per ricavare T(z) – che la funzione di
trasferimento da d a y vale infatti
P ( z)
F ( z)=
1+C (z) P ( z)
28
Esempio 3 – caso semplice dell’esempio 1 rivisto
1
1− p
P( z)=
, T ° (z)=
,
z−0.8
z− p
p=0.1,0 .5,0 .9
29
Esempio 3 – caso semplice dell’esempio 1 rivisto
30
...e nel tempo continuo?
Per ragioni di tempo e semplicità qui possiamo dire soltanto poche cose e ci
dobbiamo basare su un esempio.
Immaginiamo di voler scrivere un modello a tempo discreto per un corpo riscaldato
da una potenza termica sotto il nostro controllo (ingresso) e che disperde calore
verso un ambiente esterno a una data temperatura (disturbo).
Stavolta ci converrà far corrispondere un passo del tempo discreto k al trascorrere di
un certo intervallo (per ovvi motivi di comodità uniforme) del tempo continuo t, che
chiameremo h: avremo cioè
t = kh
31
...e nel tempo continuo?
Chiamiamo C [J/°C] la capacità termica del corpo, G [W/°C] la conduttanza termica
vero l’ambiente, Pmax [W] la massima potenza riscaldante, u [0,1] il segnale di
controllo, T la temperatura del corpo, Te quella esterna.
Scriviamo il bilancio dinamico di energia
energia termica posseduta dal corpo al passo k
=
energia termica posseduta dal corpo al passo k-1
+ h * potenza riscaldante al passo k-1
- h * potenza dispersa al passo k-1
Stiamo naturalmente approssimando perché tra i passi k-1 e k, cioè nel tempo
continuo tra t=(k-1)h e t=kh, temperatura e potenze in generale non restano costanti:
però facendo h “abbastanza piccolo” possiamo comunque raggiungere la
precisione voluta (di come la si valuti non parliamo).
32
...e nel tempo continuo?
L’energia contenuta nel corpo è CT, la potenza riscaldante è uPmax e quella dispersa
vale G(T-Te); possiamo quindi trasformare il bilancio che abbiamo scritto nel modello
a tempo discreto
T (k )−T (k−1) P max
G
=
u(k−1)− ( T (k−1)−T e (k−1) )
h
C
C
Al primo membro riconosciamo il rapporto incrementale di T rispetto al tempo,
ovvero “variazione di T diviso intervallo di tempo in cui è avvenuta”.
Come abbiamo detto, se facciamo tendere h a zero il modello diventa una
rappresentazione esatta del fenomeno come lo abbiamo descritto.
Il limite del rapporto incrementale quando l’incremento della variabile indipendente
(t) tende a zero si chiama derivata della variabile dipendente (T) rispetto a quella
dipendente; la si indica, coi nostri simboli, con dT/dt.
33
...e nel tempo continuo?
Arriviamo quindi a scrivere il modello a tempo continuo
dT (t ) P max
G
=
u(t )− ( T (t)−T e (t ) )
dt
C
C
Osserviamo che la derivata rispetto al tempo s’interpreta facilmente come velocità
istantanea di variazione della variabile sotto derivata.
Il modello a tempo continuo dice quindi che istante per istante
velocità di variazione dell’energia termica posseduta dal corpo
=
potenza riscaldante
- potenza dispersa
Ancora una volta la dinamica è data da un accumulo (di energia).
34
Sistema dinamico – ricordate?
Cosa rende dinamico un sistema?
Un fenomeno di accumulo
di massa in un serbatoio,
di energia termica in un corpo,
di carica in un condensatore,
di passeggeri in un tram...
Questo si rappresenta dicendo che il sistema ha uno stato che "tiene memoria"
della sua condizione, cosicché allo stesso ingresso il sistema può reagire con
un'uscita diversa a seconda appunto dello stato.
Nel caso a tempo continuo questo si rappresenta, detto u l'ingresso e x lo stato,
con un'equazione differenziale (cioè contenente derivate) del tipo
dx(t )
=f ( x (t ),u(t ) )
dt
35
Sistemi dinamici a tempo continuo - cenni
Un altro modo di rappresentare un tale sistema è istituire un legame tra ingresso,
uscita e loro derivate temporali (la derivata della derivata si chiama “derivata
seconda” e così via).
Qui vediamo solo un esempio:
corpo di massa m in moto su guida rettilinea orizzontale, coordinata y(t),
molla di richiamo che esercita una forza -kmy (mettiamo lo zero di y alla lunghezza di
riposo della molla per comodità),
attrito che si oppone al moto esercitando una forza linearmente dipendente dalla
velocità e ad essa opposta, ossia -kady/dt,
forza esterna in nostro potere Fmaxu, contata positiva se diretta come l’asse y.
36
Sistemi dinamici a tempo continuo - cenni
Scriviamo il bilancio dinamico lungo l’asse y
massa * accelerazione = somma delle forze
Indicando la derivata prima con un punto e la seconda con due abbiamo
m ÿ (t )=F max u−k m y (t )−k a ẏ (t )
Osserviamo che il legame tra u, y e le dervate che compaiono è lineare e tempoinvariante. Quindi...
37
Sistemi dinamici a tempo continuo - cenni
Definiamo ora l'operatore derivata temporale, che chiamiamo s: scriveremo cioè
sv(t) per indicare dv(t)/dt, qualunque cosa v sia.
Questo ci permette di descrivere un sistema dinamico lineare e tempo-invariante a
tempo continuo con un operatore (composto di s) che chiamiamo funzione di
trasferimento e indichiamo con G(s).
Nell’esempio
m ÿ (t )=F max u−k m y (t)−k a ẏ (t )
F max
y
G(s)= = 2
u m s +k a s+k m
38
… e l’anello di controllo?
A patto di usare t e s invece di k e z, rappresentazione e relazioni tra gli enti coinvolti
sono identici.
w(t)
e(t)
+_
C(s)
u(t)
P(s)
y(t)
Naturalmente il modo di eseguire i calcoli cambia e qui richiede un po’ di analisi
matematica, per cui ci fermiamo.
39
Cosa c’è dietro l’angolo...
In futuro – se già non avete iniziato a farlo – imparete
che le soluzioni delle equazioni differenziali lineari tempoinvarianti sono esponenziali,
che il loro comportamento (divergente o convergente, oscillante o
monotono) dipende dalla parte reale delle radici di un polinomio a
esse connesso,
che tutto questo si può interpretare sia nel tempo che analizzando
il contenuto in frequenza dei segnali coinvolti
e che tutto ciò conduce a tecniche di sintesi del regolatore più
potenti, espressive e generali dei nostri esempi.
40
...da molto tempo...
J.C. Maxwell, “On governors” (1868): https://en.wikisource.org/wiki/On_Governors
41
...e per molto tempo ancora
42
Download