Salta al contenuto
Note per Studenti Equazioni di stato e circuiti di ordine superiore

Equazioni di stato e circuiti di ordine superiore

In questa pagina 6

Dispensa, capitolo 17. Generalizza le equazioni di stato introdotte in Circuiti del secondo ordine (RLC)Un circuito con un condensatore e un induttore (RLC serie o parallelo) è del secondo ordine: d²x/dt² + 2α dx/dt + ω0² x = u(t), con ω0 = 1/√(LC) e α = R/(2L) (serie) oppure α = G/(2C) = 1/(2RC) (parallelo). Le radici s = -α ± √(α² - ω0²) danno tre casi: sovrasmorzato (α > ω0, due esponenziali reali), critico (α = ω0, e^(-αt)(A1 + A2 t)), sottosmorzato (α < ω0, oscillazioni smorzate con pulsazione ωs = √(ω0² - α²)). Servono due condizioni iniziali: x(0+) e dx/dt(0+), che si ricavano da vC(0+) e iL(0+).Circuiti del secondo ordine (RLC) → a circuiti con un numero qualsiasi di componenti dinamici.

Ordine di un circuito

Un circuito con nCn_C condensatori e nLn_L induttori ha, in generale, ordine n=nC+nLn = n_C + n_L: tante sono le variabili di stato (tensioni dei condensatori, correnti degli induttori), e tante le condizioni iniziali da conoscere.

Attenzione: più condensatori in parallelo hanno la stessa tensione, quindi contano come uno solo (Ceq=∑CkC_{eq} = \sum C_k); più induttori in serie hanno la stessa corrente e contano come uno solo. In generale l'ordine cala ogni volta che esiste una maglia di soli condensatori (e generatori di tensione) o un taglio di soli induttori (e generatori di corrente), perché le variabili di stato non sono più tutte indipendenti.

Perché le equazioni di stato

Il sistema completo della rete (LKC, LKT ed equazioni dei bipoli) è fatto di equazioni algebriche e di nn equazioni differenziali del primo ordine (una per ogni componente dinamico). Per l'RLC lo si riduce a una sola equazione di ordine 2 in una sola incognita; per ordini più alti questa strada è impraticabile. Conviene invece ridurlo a nn equazioni del primo ordine nelle sole variabili di stato:

x˙=[A] x+[B] u,x=[vC1⋮iL1⋮],u=[e1⋮j1⋮]\dot{\mathbf x} = [A]\, \mathbf x + [B]\, \mathbf u, \qquad \mathbf x = \begin{bmatrix} v_{C1} \\ \vdots \\ i_{L1} \\ \vdots \end{bmatrix}, \quad \mathbf u = \begin{bmatrix} e_1 \\ \vdots \\ j_1 \\ \vdots \end{bmatrix}

[A][A] è la matrice di stato (n×nn \times n), [B][B] la matrice degli ingressi.

Come si scrivono: il circuito resistivo associato

In un dato istante le variabili di stato hanno un valore preciso. Allora:

  1. si sostituisce ogni condensatore con un GIT di tensione vCv_C e ogni induttore con un GIC di corrente iLi_L;
  2. il circuito ottenuto (circuito resistivo associato) contiene solo resistori e generatori: si risolve con un metodo qualsiasi (nodiSi sceglie un nodo di riferimento (potenziale zero) e si prendono come incognite gli n−1 potenziali degli altri nodi; ogni tensione è una differenza di potenziali, quindi le LKT sono automatiche. Si scrive la LKC su ogni nodo non di riferimento, per ispezione: autoconduttanza × potenziale del nodo − Σ mutue conduttanze × potenziali vicini = somma delle correnti dei GIC entranti. Ogni GIT senza resistore in serie aggiunge un'incognita (la sua corrente) e un'equazione (u_+ − u_− = e): è l'analisi nodale modificata (MNA).Analisi nodale (metodo dei potenziali ai nodi) →, anelliPer reti piane: si associa a ogni anello (finestra del disegno) una corrente fittizia che lo percorre tutto, tutte nello stesso verso. Le correnti di lato sono somme algebriche delle correnti di anello, quindi le LKC sono automatiche; si scrivono le ℓ−n+1 LKT sugli anelli, per ispezione: autoresistenza × corrente dell'anello − Σ mutue resistenze × correnti degli anelli vicini = somma delle f.e.m. dei GIT percorsi dal − al +. Ogni GIC senza resistore in parallelo aggiunge come incognita la sua tensione e come equazione il legame tra la sua corrente e le correnti di anello (metodo modificato).Metodo delle correnti di anello →, sovrapposizioneIn una rete lineare (resistori, GIT, GIC) ogni tensione e ogni corrente è combinazione lineare delle impresse dei generatori. Quindi si può calcolarla facendo agire un generatore alla volta, con gli altri spenti (GIT spento = cortocircuito, GIC spento = circuito aperto), e sommando i contributi. Vale per tensioni e correnti, non per le potenze.Principio di sovrapposizione degli effetti →), trattando vCv_C, iLi_L e gli ingressi come noti;
  3. se ne ricavano le correnti dei GIT al posto dei condensatori (iCi_C) e le tensioni dei GIC al posto degli induttori (vLv_L), come combinazioni lineari di variabili di stato e ingressi;
  4. si usano le equazioni dei componenti: v˙C=iC/C\dot v_C = i_C / C e i˙L=vL/L\dot i_L = v_L / L.

Esempio della dispensa (ordine 3)

Circuito. Prima maglia: GIT e1=10 Ve_1 = 10\ \mathrm V (per t>0t > 0), R1=2 ΩR_1 = 2\ \Omega, C1=100 μFC_1 = 100\ \mu\mathrm F e l'induttore L3=10 mHL_3 = 10\ \mathrm{mH}. Seconda maglia: L3L_3 (in comune), C2=100 μFC_2 = 100\ \mu\mathrm F, R2=8 ΩR_2 = 8\ \Omega. Tutto scarico in t=0t = 0.

Circuito resistivo associato. Con C1→C_1 \to GIT vC1v_{C1}, C2→C_2 \to GIT vC2v_{C2}, L3→L_3 \to GIC iL3i_{L3}:

e1=R1iC1+vC1+vL3,vL3=vC2+R2iC2,iC1=iC2+iL3e_1 = R_1 i_{C1} + v_{C1} + v_{L3}, \qquad v_{L3} = v_{C2} + R_2 i_{C2}, \qquad i_{C1} = i_{C2} + i_{L3}

(LKT nelle due maglie e LKC nel nodo dove si dividono le correnti). Risolvendo rispetto a iC1i_{C1}, iC2i_{C2}, vL3v_{L3}:

iC1=110(e1−vC1−vC2)+45iL3,iC2=110(e1−vC1−vC2)−15iL3,vL3=45e1−45vC1+15vC2−85iL3i_{C1} = \tfrac{1}{10}(e_1 - v_{C1} - v_{C2}) + \tfrac45 i_{L3}, \quad i_{C2} = \tfrac{1}{10}(e_1 - v_{C1} - v_{C2}) - \tfrac15 i_{L3}, \quad v_{L3} = \tfrac45 e_1 - \tfrac45 v_{C1} + \tfrac15 v_{C2} - \tfrac85 i_{L3}

Dividendo per C1C_1, C2C_2, L3L_3:

[A]=[−1000−10008000−1000−1000−2000−8020−160],[B]=[1000100080][A] = \begin{bmatrix} -1000 & -1000 & 8000 \\ -1000 & -1000 & -2000 \\ -80 & 20 & -160 \end{bmatrix}, \qquad [B] = \begin{bmatrix} 1000 \\ 1000 \\ 80 \end{bmatrix}

Modi naturali e autovalori

In evoluzione libera (u=0\mathbf u = 0) si cercano soluzioni della forma x=U est\mathbf x = \mathbf U\, e^{st}. Sostituendo: s U=[A] Us\, \mathbf U = [A]\, \mathbf U, cioè ss è un autovalore di [A][A] e U\mathbf U un suo autovettore (vedi Algebra Lineare). Gli autovalori sono le radici di

det⁡([A]−s [I])=0\det\big([A] - s\,[I]\big) = 0

che coincide con il polinomio caratteristico dell'equazione di ordine nn della rete. La soluzione libera è una combinazione di modi naturali:

x(t)=∑i=1nKi Ui esit\mathbf x(t) = \sum_{i=1}^{n} K_i\, \mathbf U_i\, e^{s_i t}

(con un autovalore doppio compare anche un termine t estt\, e^{s t}, come nel caso critico dell'RLC). Le costanti KiK_i si trovano dalle condizioni iniziali. Con ingressi costanti si aggiunge la soluzione particolare, cioè il regime stazionario.

Nell'esempio gli autovalori sono s1=−1910,5 s−1s_1 = -1910{,}5\ \mathrm s^{-1} e s2,3=−124,7±j 712,6 s−1s_{2,3} = -124{,}7 \pm j\,712{,}6\ \mathrm s^{-1}, e la soluzione per vC1v_{C1} è

vC1(t)=10−4,42 e−1910,5 t+e−124,7 t [−5,58cos⁡(712,6 t)+1,21sin⁡(712,6 t)] Vv_{C1}(t) = 10 - 4{,}42\, e^{-1910{,}5\, t} + e^{-124{,}7\, t}\,\big[-5{,}58 \cos(712{,}6\, t) + 1{,}21 \sin(712{,}6\, t)\big]\ \mathrm V

(il valore finale 10 V10\ \mathrm V viene dal regime stazionario: L3L_3 in corto, C1C_1 e C2C_2 aperti, quindi vC1=e1v_{C1} = e_1 e vC2=0v_{C2} = 0).

Grafico interattivo: v_C1 [V] in funzione di t [ms] (circuito del terzo ordine)

Che autovalori possono comparire. Circuiti con soli condensatori e resistori (o soli induttori e resistori, anche con trasformatori ideali) hanno solo autovalori reali: niente oscillazioni. Servono almeno un condensatore e un induttore perché compaiano autovalori complessi.

Stabilità

Definizione Condizione sugli autovalori Significato
stabile tutte le parti reali ≤0\le 0 l'evoluzione libera resta limitata
assolutamente stabile (dissipativo) tutte le parti reali <0< 0 ogni modo si spegne; l'energia immagazzinata tende a zero
instabile almeno una parte reale >0> 0 almeno un modo cresce senza limite
  • Gli RLC serie e parallelo con R>0R > 0 sono assolutamente stabili; il circuito LC (R=0R = 0) è solo stabile (oscilla per sempre); con resistori attivi (R<0R < 0) o generatori pilotati il circuito può essere instabile.
  • In un circuito assolutamente stabile la costante di tempo dominante è la più grande tra le Ti=1/αiT_i = 1/\alpha_i (con si=−αi+jωis_i = -\alpha_i + j\omega_i) e fissa la durata del transitorio: nell'esempio 1/124,7≈8 ms1/124{,}7 \approx 8\ \mathrm{ms}, quindi il transitorio dura circa 40 ms40\ \mathrm{ms}.
  • Condizione sufficiente per l'assoluta stabilità (con resistori passivi): in evoluzione libera non deve esistere nessuna maglia e nessun taglio privi di resistori. Controesempio: due condensatori in serie chiusi su un resistore possono avere vC1=Vv_{C1} = V e vC2=−Vv_{C2} = -V: la serie ha tensione nulla, nel resistore non passa corrente e l'energia resta intrappolata per sempre.

Soluzione numerica

Con ingressi qualsiasi, o per circuiti grandi, le equazioni di stato si integrano numericamente. Il metodo più semplice è Eulero esplicito: si approssima la derivata con un rapporto incrementale su un passo Δt\Delta t piccolo rispetto alle costanti di tempo,

xk+1=xk+Δt ([A] xk+[B] uk)\mathbf x_{k+1} = \mathbf x_k + \Delta t\,\big([A]\, \mathbf x_k + [B]\, \mathbf u_k\big)

python
import numpy as np
A = np.array([[-1000, -1000, 8000], [-1000, -1000, -2000], [-80, 20, -160]], dtype=float)
B = np.array([1000, 1000, 80], dtype=float)
e = 10.0
dt, N = 1e-6, 50000          # passo 1 us, 50 ms in tutto
x = np.zeros(3)              # vC1, vC2, iL3 scarichi in t = 0
for k in range(N):
    x = x + dt * (A @ x + B * e)   # metodo di Eulero esplicito
print("dopo 50 ms: vC1 = %.3f V, vC2 = %.3f V, iL3 = %.4f A" % tuple(x))
# dopo 50 ms: vC1 = 10.003 V, vC2 = -0.007 V, iL3 = -0.0015 A

Dopo 50 ms50\ \mathrm{ms} (circa sei costanti di tempo dominanti) si è praticamente al regime (10 V10\ \mathrm V, 00, 00).

Il passo deve essere piccolo rispetto alla costante di tempo più piccola (1/1910≈0,5 ms1/1910 \approx 0{,}5\ \mathrm{ms} qui), altrimenti Eulero esplicito diventa instabile; i simulatori usano metodi più robusti (Eulero implicito, trapezi).

Metodi sistematici. I simulatori circuitali come SPICE non scrivono le equazioni di stato a mano: usano il metodo di tableau o l'analisi nodale modificata (MNA) direttamente nel dominio del tempo. A ogni passo ogni condensatore e induttore viene sostituito da un modello "resistore più generatore" ottenuto discretizzando la sua equazione, e si risolve una rete resistiva con la MNASi sceglie un nodo di riferimento (potenziale zero) e si prendono come incognite gli n−1 potenziali degli altri nodi; ogni tensione è una differenza di potenziali, quindi le LKT sono automatiche. Si scrive la LKC su ogni nodo non di riferimento, per ispezione: autoconduttanza × potenziale del nodo − Σ mutue conduttanze × potenziali vicini = somma delle correnti dei GIC entranti. Ogni GIT senza resistore in serie aggiunge un'incognita (la sua corrente) e un'equazione (u_+ − u_− = e): è l'analisi nodale modificata (MNA).Analisi nodale (metodo dei potenziali ai nodi) →.

Teoria collegata