Un sistema fisico evolve in tempo continuo, ma un calcolatore lavora a istanti separati: legge un valore, calcola, manda un comando. Per collegarli si mette il sistema a tempo continuo fra due elementi:
Visto da fuori è un sistema a tempo discreto: entra una sequenza, esce una sequenza. Dentro, il sistema resta a tempo continuo.
Campionatore (in uscita): un interruttore che si chiude ogni T secondi e legge yc in quell'istante. T è il periodo di campionamento.
ZOH, zero order holder (in ingresso): trasforma la sequenza ud(k) in un segnale continuo uc(t), che serve al sistema anche fra un campione e l'altro.
Gli istanti sono t=kT, con k∈Z: il campione k cade in kT, il successivo in (k+1)T.
Perché proprio ordine zero
Fra kT e (k+1)T bisogna decidere che valore dare all'ingresso. L'ordine è il grado del polinomio usato per riempire l'intervallo.
Ordine zero: si tiene il valore del campione appena arrivato fino al successivo, quindi uc(t)=ud(k) per kT≤t<(k+1)T. Usa solo il presente.
Ordine uno: una retta da ud(k) a ud(k+1). Per tracciarla serve però il campione successivo, cioè bisogna aspettarlo: si introduce un ritardo.
Il problema è il tempo. Si prenda l'ordine uno, nell'intervallo da kT a (k+1)T:
Ideale: la retta da ud(k) a ud(k+1) viene tracciata proprio in quell'intervallo. Ma in un istante t fra kT e (k+1)T il campione ud(k+1) non è ancora arrivato: arriverà solo in (k+1)T. Il mantenitore dovrebbe conoscere il futuro, quindi non si può costruire.
Realizzabile: il mantenitore aspetta ud(k+1) e solo dopo traccia la retta, fra (k+1)T e (k+2)T. La forma è la stessa dell'ideale, ma spostata a destra di T: l'ingresso arriva al sistema con un passo di ritardo.
Con l'ordine due servono ud(k+1) e ud(k+2), quindi il ritardo diventa 2T; in generale l'ordine n ritarda di nT. L'ordine zero usa solo ud(k), che c'è già: ideale e realizzabile coincidono, nessun ritardo. Per questo si usa lo ZOH.
Mantenitori di ordine 0, 1 e 2
t
uc(t) dopo il mantenitore
segnale da campionare
campioni ud(k)
Gli ordini 1 e 2 seguono meglio il segnale ma usano campioni futuri: realizzabili, arrivano in ritardo di nT. L'ordine 0 non ha ritardo.
Discretizzare il sistema
L'obiettivo è una legge che porti lo stato da un campione al successivo. Si parte dal sistema continuo, nella forma implicita (FI) e nella forma esplicita (FE):
Nella FE si prende un solo passo, da t0=kT a t=(k+1)T:
x((k+1)T)=eATx(kT)+∫kT(k+1)TeA((k+1)T−τ)Bu(τ)dτ
Qui lo ZOH semplifica tutto: nell'intervallo l'ingresso vale sempre ud(k), quindi esce dall'integrale. Con il cambio di variabile θ=(k+1)T−τ (gli estremi si invertono e diventano 0 e T) l'integrale che resta non dipende più da k:
xd(k+1)=AdeATxd(k)+Bd∫0TeAθdθBud(k)
Ad e Bd sono costanti, quindi il sistema discreto è ancora tempo-invariante. Se A è invertibile l'integrale si risolve, Bd=A−1(eAT−I)B; altrimenti si tiene la forma integrale.
Per l'uscita non serve nulla: y(t)=Cx(t)+Du(t) valutata in kT dà subito Cd=C e Dd=D.
Evoluzione libera: il discreto è il continuo campionato
A ingresso nullo, con k0=0:
xd(k)=Φd(k−k0)x(k0)=Adkx0=(eAT)kx0=eAkTx0
eAkTx0 è proprio xc(t)=eAtx0 valutata in t=kT: la discretizzazione è esatta, nessuna approssimazione negli istanti di campionamento.
Un modo e i suoi campioni
t
λdk in kT
eλt
I campioni sono le potenze di λd=eλT: stessa curva, vista solo in kT.
Autovalori. Si scrivono le due evoluzioni con la diagonalizzazione A=UΛU−1, dove ui sono le colonne di U e vi le righe di U−1:
Gli autovettori sono gli stessi, cambiano solo gli autovalori. Se λi è reale, eλiT>0, quindi un sistema campionato non ha mai modi alternanti.
Attenzione, vale per λi reali. Con λi=α+iω si ha λdi=eαTeiωT: modulo eαT, angolo ωT. Se ωT=π, λdi è reale negativo e il modo alterna.
Esempio: evoluzione libera con gli autovettori
x˙=10000−2013x(t),xc(t)=eAtx0
Autovalori. Si sviluppa lungo la prima riga, che ha due zeri:
det(A−λI)=(1−λ)[(−λ)(3−λ)+2]=(1−λ)(λ2−3λ+2)=0
Quindi λ1=λ2=1, con molteplicità algebrica ma=2, e λ3=2.
Autovettori. Per λ=1:
A−I=0000−1−2012
Il rango cala di 2, quindi mg=2=ma e si può diagonalizzare. Si ricava y=z con x libera, e si sceglie una base qualsiasi dell'autospazio: u1=(0,1,1)⊤, u2=(1,0,0)⊤. Per λ=2 si ricava x=0 e z=2y, quindi u3=(0,1,2)⊤.
U=011100012,U−1=01020−1−101
Evoluzione. Con ci=vix0, dove vi è la riga i di U−1: