Lezione 7 · Canale 1 · giovedì 8 ottobre 2026

Campionamento e discretizzazione dei sistemi

Sistemi Dinamici

L'idea

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:

ZOHTempo continuocampionatore
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 TT secondi e legge ycy_c in quell'istante. TT è il periodo di campionamento.
  • ZOH, zero order holder (in ingresso): trasforma la sequenza ud(k)u_d(k) in un segnale continuo uc(t)u_c(t), che serve al sistema anche fra un campione e l'altro.
  • Gli istanti sono t=kTt=kT, con k∈Zk\in\mathbb Z: il campione kk cade in kTkT, il successivo in (k+1)T(k+1)T.

Perché proprio ordine zero

Fra kTkT e (k+1)T(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)u_c(t)=u_d(k) per kT≤t<(k+1)TkT\le t<(k+1)T. Usa solo il presente.
  • Ordine uno: una retta da ud(k)u_d(k) a ud(k+1)u_d(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 kTkT a (k+1)T(k+1)T:

  • Ideale: la retta da ud(k)u_d(k) a ud(k+1)u_d(k+1) viene tracciata proprio in quell'intervallo. Ma in un istante tt fra kTkT e (k+1)T(k+1)T il campione ud(k+1)u_d(k+1) non è ancora arrivato: arriverà solo in (k+1)T(k+1)T. Il mantenitore dovrebbe conoscere il futuro, quindi non si può costruire.
  • Realizzabile: il mantenitore aspetta ud(k+1)u_d(k+1) e solo dopo traccia la retta, fra (k+1)T(k+1)T e (k+2)T(k+2)T. La forma è la stessa dell'ideale, ma spostata a destra di TT: l'ingresso arriva al sistema con un passo di ritardo.

Con l'ordine due servono ud(k+1)u_d(k+1) e ud(k+2)u_d(k+2), quindi il ritardo diventa 2T2T; in generale l'ordine nn ritarda di nTnT. L'ordine zero usa solo ud(k)u_d(k), che c'è già: ideale e realizzabile coincidono, nessun ritardo. Per questo si usa lo ZOH.

Mantenitori di ordine 0, 1 e 2

Ordine
Mantenitore
00,511,522,533,544,555,56−1−0,500,51
  • dopo il mantenitore
  • segnale da campionare
  • campioni
Gli ordini 1 e 2 seguono meglio il segnale ma usano campioni futuri: realizzabili, arrivano in ritardo di . 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):

FI {x˙(t)=Ax(t)+Bu(t)y(t)=Cx(t)+Du(t)FEx(t)=eA(t−t0)x0+∫t0teA(t−τ)Bu(τ) dτ\begin{gathered} \text{FI}\ \begin{cases}\dot x(t)=Ax(t)+Bu(t)\\ y(t)=Cx(t)+Du(t)\end{cases}\\[0.6em] \text{FE}\quad x(t)=e^{A(t-t_0)}x_0+\int_{t_0}^{t}e^{A(t-\tau)}Bu(\tau)\,d\tau \end{gathered}

Nella FE si prende un solo passo, da t0=kTt_0=kT a t=(k+1)Tt=(k+1)T:

x((k+1)T)=eATx(kT)+∫kT(k+1)TeA((k+1)T−τ)B u(τ) dτx((k+1)T)=e^{AT}x(kT)+\int_{kT}^{(k+1)T}e^{A((k+1)T-\tau)}B\,u(\tau)\,d\tau

Qui lo ZOH semplifica tutto: nell'intervallo l'ingresso vale sempre ud(k)u_d(k), quindi esce dall'integrale. Con il cambio di variabile θ=(k+1)T−τ\theta=(k+1)T-\tau (gli estremi si invertono e diventano 00 e TT) l'integrale che resta non dipende più da kk:

xd(k+1)=eAT⏟Ad xd(k)+∫0TeAθ dθ B⏟Bd  ud(k)x_d(k+1)=\underbrace{e^{AT}}_{A_d}\,x_d(k)+\underbrace{\int_0^T e^{A\theta}\,d\theta\,B}_{B_d}\;u_d(k)

AdA_d e BdB_d sono costanti, quindi il sistema discreto è ancora tempo-invariante. Se AA è invertibile l'integrale si risolve, Bd=A−1(eAT−I)BB_d=A^{-1}(e^{AT}-I)B; altrimenti si tiene la forma integrale.

Per l'uscita non serve nulla: y(t)=Cx(t)+Du(t)y(t)=Cx(t)+Du(t) valutata in kTkT dà subito Cd=CC_d=C e Dd=DD_d=D.

Evoluzione libera: il discreto è il continuo campionato

A ingresso nullo, con k0=0k_0=0:

xd(k)=Φd(k−k0) x(k0)=Adk x0=(eAT)kx0=eAkTx0x_d(k)=\Phi_d(k-k_0)\,x(k_0)={A_d}^{k}\,x_0=(e^{AT})^k x_0=e^{AkT}x_0

eAkTx0e^{AkT}x_0 è proprio xc(t)=eAtx0x_c(t)=e^{At}x_0 valutata in t=kTt=kT: la discretizzazione è esatta, nessuna approssimazione negli istanti di campionamento.

Un modo e i suoi campioni

01234567800,20,40,60,81
  • in
I campioni sono le potenze di : stessa curva, vista solo in .

Autovalori. Si scrivono le due evoluzioni con la diagonalizzazione A=UΛU−1A=U\Lambda U^{-1}, dove uiu_i sono le colonne di UU e viv_i le righe di U−1U^{-1}:

xd(k)=UΛdkU−1x0=∑i=1nλdik uivix0xc(kT)=∑i=1neλikT uivix0\begin{gathered} x_d(k)=U{\Lambda_d}^{k}U^{-1}x_0=\sum_{i=1}^n{\lambda_{di}}^{k}\,u_i v_i x_0\\ x_c(kT)=\sum_{i=1}^n e^{\lambda_i kT}\,u_i v_i x_0 \end{gathered}

Confrontando termine a termine:

λdi=eλiT,udi=ui,vdi=vi\lambda_{di}=e^{\lambda_i T},\qquad u_{di}=u_i,\qquad v_{di}=v_i

Gli autovettori sono gli stessi, cambiano solo gli autovalori. Se λi\lambda_i è reale, eλiT>0e^{\lambda_i T}>0, quindi un sistema campionato non ha mai modi alternanti.

Attenzione, vale per λi\lambda_i reali. Con λi=α+i ω\lambda_i=\alpha+\mathrm i\,\omega si ha λdi=eαTeiωT\lambda_{di}=e^{\alpha T}e^{\mathrm i\omega T}: modulo eαTe^{\alpha T}, angolo ωT\omega T. Se ωT=π\omega T=\pi, λdi\lambda_{di} è reale negativo e il modo alterna.

Esempio: evoluzione libera con gli autovettori

x˙=(1000010−23)x(t),xc(t)=eAtx0\dot x=\begin{pmatrix}1&0&0\\0&0&1\\0&-2&3\end{pmatrix}x(t),\qquad x_c(t)=e^{At}x_0

Autovalori. Si sviluppa lungo la prima riga, che ha due zeri:

det⁡(A−λI)=(1−λ)[(−λ)(3−λ)+2]=(1−λ)(λ2−3λ+2)=0\begin{aligned} \det(A-\lambda I)&=(1-\lambda)\bigl[(-\lambda)(3-\lambda)+2\bigr]\\ &=(1-\lambda)(\lambda^2-3\lambda+2)=0 \end{aligned}

Quindi λ1=λ2=1\lambda_1=\lambda_2=1, con molteplicità algebrica ma=2m_a=2, e λ3=2\lambda_3=2.

Autovettori. Per λ=1\lambda=1:

A−I=(0000−110−22)A-I=\begin{pmatrix}0&0&0\\0&-1&1\\0&-2&2\end{pmatrix}

Il rango cala di 2, quindi mg=2=mam_g=2=m_a e si può diagonalizzare. Si ricava y=zy=z con xx libera, e si sceglie una base qualsiasi dell'autospazio: u1=(0,1,1)⊤u_1=(0,1,1)^\top, u2=(1,0,0)⊤u_2=(1,0,0)^\top. Per λ=2\lambda=2 si ricava x=0x=0 e z=2yz=2y, quindi u3=(0,1,2)⊤u_3=(0,1,2)^\top.

U=(010101102),U−1=(02−11000−11)U=\begin{pmatrix}0&1&0\\1&0&1\\1&0&2\end{pmatrix},\qquad U^{-1}=\begin{pmatrix}0&2&-1\\1&0&0\\0&-1&1\end{pmatrix}

Evoluzione. Con ci=vix0c_i=v_i x_0, dove viv_i è la riga ii di U−1U^{-1}:

eAtx0=∑i=13cieλitui=et (c1u1+c2u2)+c3e2tu3e^{At}x_0=\sum_{i=1}^3 c_i e^{\lambda_i t}u_i=e^{t}\,(c_1u_1+c_2u_2)+c_3e^{2t}u_3
  • Il piano generato da u1u_1 e u2u_2 è invariante: se x0x_0 sta lì (c3=0c_3=0), lo stato resta nel piano e cresce come ete^t lungo la stessa direzione.
  • Se x0x_0 ha anche una componente lungo u3u_3, quella cresce come e2te^{2t}, più in fretta: la traiettoria si piega verso u3u_3.

La traiettoria nelle coordinate degli autovettori

−4−3−2−101234−4−3,5−3−2,5−2−1,5−1−0,500,511,522,533,54piano
  • al variare di
Lungo lo stato cresce come , più in fretta che nel piano invariante: la traiettoria si piega verso . Con resta nel piano.

Formulario

Sistema discreto con ZOH

xd(k+1)=Ad xd(k)+Bd ud(k)yd(k)=Cd xd(k)+Dd ud(k)\begin{aligned} x_d(k+1)&=A_d\,x_d(k)+B_d\,u_d(k)\\ y_d(k)&=C_d\,x_d(k)+D_d\,u_d(k) \end{aligned}

Matrici

Ad=eAT,Bd=∫0TeAθ dθ BA_d=e^{AT},\quad B_d=\int_0^T e^{A\theta}\,d\theta\,B Cd=C,Dd=DC_d=C,\quad D_d=D

Se AA è invertibile

Bd=A−1(eAT−I)BB_d=A^{-1}(e^{AT}-I)B

Evoluzione libera

xd(k)=Adkx0=eAkTx0x_d(k)={A_d}^{k}x_0=e^{AkT}x_0

Autovalori e autovettori

λdi=eλiT,udi=ui,vdi=vi\lambda_{di}=e^{\lambda_i T},\quad u_{di}=u_i,\quad v_{di}=v_i

Continuo, con ci=vix0c_i=v_ix_0

eAtx0=∑icieλituie^{At}x_0=\sum_i c_i e^{\lambda_i t}u_i