Salta al contenutoNote per StudentiEsercizio - equazione alle differenze del secondo ordine - evoluzione libera, risposta impulsiva e risposta forzata
Esercizio - equazione alle differenze del secondo ordine - evoluzione libera, risposta impulsiva e risposta forzata
Questa pagina non ha ancora la versione ripasso: qui sotto c'è il testo completo.
In questa pagina 6
Testo (dispense del corso, Es. 11.4A, Es. 11.4B ed Esempi 11.5A, 11.6A, 11.7A, 11.7B). Il sistema LTI a tempo discreto (quanto T=1) è descritto dall'equazione alle differenze
y(n−2)+y(n−1)−6y(n)=x(n).
Calcolare l'evoluzione libera con condizioni iniziali y(−1)=K1, y(−2)=K2.
Calcolare la risposta impulsivag(n).
Calcolare la risposta forzata all'ingresso x(n)=A010(n) (gradino discreto di ampiezza A0, con 10(0)=1).
Controllare i risultati con i tre metodi del corso (soluzione dell'equazione, risposta impulsiva con segnale fittizio, trasformata zeta) e con la ricorsione numerica.
Convenzione delle dispense per questo capitolo: l'equazione si scrive aNy(n−N)+⋯+a1y(n−1)+a0y(n)=x(n), cioè a0 moltiplica y(n) e aN moltiplica il ritardo più lungo. Qui a2=1, a1=1, a0=−6. Il polinomio caratteristico è h(z)=aNzN+⋯+a1z+a0 e le soluzioni dell'omogenea sono zi−n, con zi radici di h. Con T=1 l'impulso ideale è δ(0)=1/T=1 e le somme "con peso T" sono somme ordinarie.
(0) Preparazione: ricorsione e polinomio caratteristico
Risolvendo l'equazione rispetto a y(n):
y(n)=61y(n−1)+61y(n−2)−61x(n).
È la forma con cui si "fa girare" il sistema un campione alla volta: servono i due valori precedenti e l'ingresso del momento. Per n=0 i due valori precedenti sono proprio le condizioni iniziali K1=y(−1) e K2=y(−2).
Il polinomio caratteristico è
h(z)=z2+z−6=(z−2)(z+3),z1=2,z2=−3.
Si controlla subito: 22+2−6=0 e (−3)2−3−6=0. Le due soluzioni semplici dell'omogenea sono quindi
z1−n=(21)n,z2−n=(−3)−n=(−31)n.
Sono due sequenze che tendono a zero (moduli 21 e 31): infatti ∣zi∣>1 per entrambe le radici, che è la condizione di stabilità delle dispense. Il sistema è dunque stabile e ogni transitorio si esaurisce.
(1) Evoluzione libera (Es. 11.4A)
L'evoluzione libera è la soluzione per n≥0 con ingresso nullo e condizioni iniziali date. La soluzione generale dell'omogenea è
yℓ(n)=α1(21)n+α2(−31)n,
e α1,α2 si trovano imponendo yℓ(−1)=K1 e yℓ(−2)=K2. Valutando in n=−1 e n=−2 le due esponenziali diventano 2, −3 e 4, 9 (perché (1/2)−1=2, (−1/3)−1=−3, (1/2)−2=4, (−1/3)−2=9):
{2α1−3α2=K14α1+9α2=K2.
Si elimina α2: moltiplicando la prima per 3 si ha 6α1−9α2=3K1, e sommando alla seconda 10α1=3K1+K2, quindi
α1=103K1+101K2.
Dalla prima, 3α2=2α1−K1=106K1+102K2−K1=−104K1+102K2, cioè
α2=−152K1+151K2.
Controllo nella seconda equazione: 4α1+9α2=1012K1+104K2−1518K1+159K2=K2⋅(0,4+0,6)+K1⋅(1,2−1,2)=K2 ✓.
yℓ(n)=(103K1+101K2)(21)n+(−152K1+151K2)(−31)n,n≥0
È lineare nelle condizioni iniziali (si annulla se K1=K2=0), come deve essere. Primo controllo con la ricorsione: yℓ(0)=α1+α2=61K1+61K2, che coincide con y(0)=61y(−1)+61y(−2) ✓.
Valori usati nel seguito (quelli dell'Esempio 11.6A): K1=−21, K2=−2. Allora α1=−203−102=−207 e α2=151−152=−151:
yℓ(n)=−207(21)n−151(−31)n,yℓ(0)=−6021−604=−125.
Dalla ricorsione: y(0)=61(−21−2)=−125 ✓.
(2) Risposta impulsiva (Es. 11.4B)
La risposta impulsiva g(n) è la risposta forzata (condizioni iniziali nulle) all'impulso ideale x(n)=δ(n), che con T=1 vale 1 in n=0 e 0 altrove.
Dalla ricorsione, due valori. Con g(−1)=g(−2)=0 (sistema scarico):
g(0)=61[g(−1)+g(−2)−δ(0)]=−61,g(1)=61[g(0)+g(−1)−0]=−361.
Forma generale. Per n≥1 l'ingresso è nullo, quindi g risolve l'omogenea: g(n)=β1(1/2)n+β2(−1/3)n. Si impongono i due valori appena calcolati (per n=0 e n=1):
{β1+β2=−6121β1−31β2=−361.
Moltiplicando la seconda per 6: 3β1−2β2=−61. Dalla prima β1=−61−β2, che sostituito dà −21−3β2−2β2=−61, cioè −5β2=31, β2=−151 e β1=−61+151=−101.
g(n)=[−101(21)n−151(−31)n]10(n)
Il gradino 10(n) ricorda che g è causale. Controlli: g(0)=−101−151=−61 ✓; g(1)=−201+451=180−9+4=−361 ✓; g(2)=−401−1351=−2167, e dalla ricorsione g(2)=61(g(1)+g(0))=61(−361−366)=−2167 ✓.
Grafico interattivo: Risposta impulsiva g(n) = −(1/10)(1/2)^n − (1/15)(−1/3)^n per n ≥ 0: parte da −1/6 ≈ −0,167 e si spegne, perché |z_i| > 1
(3) Risposta forzata al gradino x(n)=A010(n) (Es. 11.4B, Es. 11.5A)
Metodo della soluzione dell'equazione. Si seguono i quattro passi delle dispense.
Soluzione particolare. Per il calcolo si può "estendere" l'ingresso a tutto l'asse, x(n)=A0 per ogni n: l'uscita per n≥0 non cambia, perché con condizioni iniziali fissate dipende solo dalla parte causale dell'ingresso. Si cerca una soluzione costante yp=β:
β+β−6β=A0⇒−4β=A0⇒β=−4A0.
Condizioni iniziali nulle (si cerca la risposta forzata): y(−1)=−4A0+2α1−3α2=0 e y(−2)=−4A0+4α1+9α2=0, cioè 2α1−3α2=4A0 e 4α1+9α2=4A0. Sono le due equazioni del punto (1) con K1=K2=4A0, quindi (stesse formule per α1,α2)
α1=(103+101)4A0=10A0,α2=(−152+151)4A0=−60A0.
Controllo in n=−1: −4A0+102A0+603A0=60−15+12+3A0=0 ✓.
yf(n)=A0[−41+101(21)n−601(−31)n]10(n)
Controlli sul valore iniziale: yf(0)=A0(−6015+606−601)=−6A0, uguale a −61x(0) dalla ricorsione ✓. Per n→∞ le due esponenziali si spengono e yf→−4A0, il valore "a regime" per ingresso costante (stesso numero della soluzione particolare β).
Grafico interattivo: Risposta forzata al gradino con A0 = 2: y_f(n) = 2·[−1/4 + (1/10)(1/2)^n − (1/60)(−1/3)^n], da −1/3 al valore a regime −A0/4 = −0,5
(4) Risposta completa e controllo incrociato con i tre metodi
Per il principio di sovrapposizione la risposta del sistema è y=yℓ+yf. Per A0, K1, K2 generici (Esempio 11.5A):
y(n)=A0[−41+101(21)n−601(−31)n]+(103K1+101K2)(21)n+(−152K1+151K2)(−31)n.
La formula vale già da n=−2: infatti la parte forzata, calcolata in n=−1 e n=−2, dà 0 (ad esempio in n=−2: −41+104−609=60−15+24−9=0), mentre la parte libera vale K1 e K2 per costruzione.
Per il confronto si usano i dati A0=2, K1=−21, K2=−2.
Metodo 1 (soluzione dell'equazione, §11.5). È quello dei punti (1) e (3): yℓ(n)=−207(1/2)n−151(−1/3)n.
Metodo 2 (risposta impulsiva con segnale fittizio, §11.6). L'evoluzione libera è la risposta forzata a un ingresso fittizio x0 fatto di impulsi, che dipende solo dalle condizioni iniziali. Si ottiene scrivendo la parte causale v(n)=y(n)10(n) dell'uscita libera: moltiplicando l'omogenea per 10(n), i termini y(n−i)10(n) diventano v(n−i) più impulsi che contengono le condizioni iniziali (y(n−1)10(n)=v(n−1)+K1δ(n) e y(n−2)10(n)=v(n−2)+K1δ(n−1)+K2δ(n)). Si arriva a
v(n−2)+v(n−1)−6v(n)=x0(n),x0(n)=−K1[δ(n)+δ(n−1)]−K2δ(n).
Con i dati: x0(n)=21[δ(n)+δ(n−1)]+2δ(n)=25δ(n)+21δ(n−1). Per linearità e invarianza, l'uscita è fatta con la risposta impulsiva ritardata:
yℓ(n)=25g(n)+21g(n−1).
Valori: n=0: 25(−61)=−125 ✓. n=1: 25(−361)+21(−61)=−725−726=−7211, uguale al valore di yℓ(1) del metodo 1: −407+451=360−63+8=−7211 ✓.
Metodo 3 (trasformata zeta, §11.7). Con X(z)=∑nx(n)z−n e la sostituzione p=z−1 che trasforma i polinomi in z−1 in polinomi in p:
risposta impulsiva: G(z)=z−2+z−1−61=p2+p−61=51[p−21−p+31]=−1−p/21/10−1+p/31/15. Poiché Z−1[1−az−11]=an10(n), si ritrova g(n)=[−101(1/2)n−151(−1/3)n]10(n) ✓. I valori p=2 e p=−3 sono fuori dal cerchio unitario nella variabile p=z−1: corrispondono ai poli z=21 e z=−31 della forma usuale in z, dentro il cerchio unitario, che è la stessa condizione di stabilità ∣zi∣>1 scritta per le radici di h.
risposta forzata al gradino (Esempio 11.7A): X(z)=1−pA0, quindi Yf=(p2+p−6)(1−p)A0=A0[4(p−1)1−5(p−2)1−20(p+3)1]=A0[−1−p1/4+1−p/21/10−1+p/31/60], da cui yf come sopra ✓.
evoluzione libera (Esempio 11.7B, formula per condizioni iniziali): Yℓ(z)=−a2z−2+a1z−1+a0a1K1+a2(K2+z−1K1)=−p2+p−6K1+K2+K1p. Con K1=−21, K2=−2 il numeratore è −(−25−21p)=25+2p, e
Yℓ=(p−2)(p+3)5/2+p/2=10(p−2)7−5(p+3)1=−1−p/27/20−1+p/31/15⇒yℓ(n)=−207(21)n−151(−31)n✓.
(I residui: in p=2 vale 55/2+1=107; in p=−3 vale −55/2−3/2=−51.)
Con i dati dell'Esempio 11.7B (K1=7, K2=−2) la stessa formula dà Yℓ=−p2+p−65+7p e quindi yℓ(n)=1019(1/2)n−1516(−1/3)n: coincide con la formula generale del punto (1) (α1=1021−102=1019, α2=−1514−152=−1516) e con la ricorsione (yℓ(0)=65, yℓ(1)=3647) ✓.
I tre metodi danno la stessa funzione: scegliere il più comodo (il 2 se la risposta impulsiva è già nota, il 3 con ingressi dotati di trasformata semplice, il 1 con ingressi costanti o sinusoidali).
Grafico interattivo: Uscita completa y = y_ℓ + y_f con A0 = 2, K1 = −1/2, K2 = −2: parte da −3/4, poi tende a −A0/4 = −0,5 (evoluzione libera nulla dopo pochi campioni)
(5) Verifica numerica con Python
Si fa girare la ricorsione y(n)=61[y(n−1)+y(n−2)−x(n)] con frazioni esatte e si confronta con le formule (non con approssimazioni).
python
from fractions import Fraction as F
defric(x, K1, K2, N=12): # y(n) = (y(n-1) + y(n-2) - x(n)) / 6
y = {-2: F(K2), -1: F(K1)}
for n inrange(N):
y[n] = (y[n-1] + y[n-2] - x(n)) / 6return y
A0, K1, K2 = F(2), F(-1, 2), F(-2)
g = ric(lambda n: F(n == 0), 0, 0) # impulso: delta(0) = 1 con T = 1
yf = ric(lambda n: A0, 0, 0) # gradino A0, condizioni nulle
yl = ric(lambda n: 0, K1, K2) # ingresso nullo, K1 e K2
y = ric(lambda n: A0, K1, K2) # tutto insiemefor n inrange(12):
assert g[n] == -F(1,10)*F(1,2)**n - F(1,15)*F(-1,3)**n
assert yf[n] == A0*(-F(1,4) + F(1,10)*F(1,2)**n - F(1,60)*F(-1,3)**n)
assert yl[n] == -F(7,20)*F(1,2)**n - F(1,15)*F(-1,3)**n
assert y[n] == yl[n] + yf[n] # sovrapposizioneprint("ok", y[0], y[1], float(y[11])) # ok -3/4 -13/24 -0.5000...
Risultati (tutte le asserzioni passano, in frazioni esatte; il controllo con K1=7, K2=−2 dà yℓ(0)=65, yℓ(1)=3647, e per n da 0 a 11 la somma cumulata di g coincide con yf/A0):
n
g(n)
yf(n) con A0=2
yℓ(n) con K1=−21, K2=−2
y(n)
0
−0,1667
−0,3333
−0,4167
−0,7500
1
−0,0278
−0,3889
−0,1528
−0,5417
2
−0,0324
−0,4537
−0,0949
−0,5486
3
−0,0100
−0,4738
−0,0413
−0,5150
4
−0,0071
−0,4879
−0,0227
−0,5106
5
−0,0029
−0,4936
−0,0107
−0,5043
Il segno alternato di g(n) e di yf viene dal modo (−1/3)n; la somma ∑n≥0g(n)=−41 si vede dal limite yf/A0→−0,25.
Errori tipici.
Scambiare la convenzione di a0 (qui a0=−6 moltiplica y(n)): con l'ordine inverso del polinomio si ottengono le radici reciproche 21 e −31 al posto di 2 e −3, e la stabilità sembra "∣zi∣<1".
Imporre le condizioni iniziali in n=0,1 per l'evoluzione libera: sono date in n=−1,−2 (e la risposta impulsiva si ricava invece dalla ricorsione in n=0,1).
Scrivere le soluzioni dell'omogenea come zin invece di zi−n: con le radici 2 e −3 si otterrebbero esponenziali divergenti e il sistema sembrerebbe instabile.