Vai al contenuto
ELECTRONICS ENGINEERINGelectronics-engineering.com
Controlli Automatici 1

Luogo delle radici, approfondimento: le regole dimostrate, casi difficili, MATLAB e Python

Condizioni di fase e di modulo, dimostrazione di tutte le regole, luogo circolare con uno zero, angoli di partenza, processo instabile in anello aperto, luogo rispetto a un parametro, esempi in MATLAB e Python verificati.

https://www.electronics-engineering.com/luogo-delle-radici-approfondimento-regole-dimostrate-matlab-python

Nessun voto ancora: sii il primo a votare questa pagina.

Questa pagina approfondisce la lezione sul luogo delle radici. Lì le regole di tracciamento sono enunciate; qui sono dimostrate una per una, a partire dalla condizione di fase. Poi si studiano i casi che negli esercizi creano difficoltà: gli angoli di partenza dai poli complessi, il luogo circolare di un sistema con uno zero, il processo instabile in anello aperto, il luogo rispetto a un parametro diverso dal guadagno. In fondo ci sono gli esempi in MATLAB e in Python, con il codice verificato.

Notazione: L(s) = K\,\frac{N(s)}{D(s)}, con N monico di grado m e zeri z_i, D monico di grado n \ge m e poli p_i; i poli dell’anello chiuso sono le radici di D(s) + KN(s) = 0, per K \ge 0.

Le regole, dimostrate

Condizioni di fase e di modulo. D + KN = 0 equivale a \frac{N(s)}{D(s)} = -\frac{1}{K}, un numero reale negativo. Un numero complesso è reale negativo se e solo se il suo argomento è 180° (a meno di multipli di 360°). Poiché \arg\frac{N}{D} = \sum\arg(s - z_i) - \sum\arg(s - p_i), si ottiene la condizione di fase; il modulo dà il valore di K. Ogni regola che segue è una conseguenza di queste due.

Regola 1 (simmetria). D e N hanno coefficienti reali, quindi le radici complesse di D + KN vengono a coppie coniugate: il luogo è simmetrico rispetto all’asse reale.

Regola 2 (partenza e arrivo). Il polinomio D + KN ha grado n per ogni K: ci sono n rami. Per K \to 0 l’equazione diventa D = 0: i rami partono dai poli. Dividendo per K, \frac{D}{K} + N = 0: per K \to \infty m radici tendono agli zeri. Le altre n - m devono andare all’infinito, perché un polinomio di grado n ha n radici e solo m possono restare al finito.

Regola 3 (asse reale). Per s reale, ogni polo o zero reale a sinistra di s contribuisce un angolo 0°, ogni polo o zero reale a destra 180°, e una coppia complessa contribuisce angoli opposti che si annullano. La somma è 180°\cdot(\text{numero di poli e zeri reali a destra}), e vale 180° modulo 360° se e solo se quel numero è dispari.

Regola 4 (asintoti e baricentro). Per |s| grande,

    \[ \frac{D(s)}{N(s)} = s^{n-m}\cdot\frac{1 - \frac{\sum p_i}{s} + \cdots}{1 - \frac{\sum z_i}{s} + \cdots} = s^{n-m}\left(1 - \frac{\sum p_i - \sum z_i}{s} + O(s^{-2})\right) \approx \left(s - \sigma_a\right)^{n-m} \]

con \sigma_a = \frac{\sum p_i - \sum z_i}{n - m}, perché (s - \sigma_a)^{n-m} = s^{n-m}\left(1 - \frac{(n - m)\sigma_a}{s} + \cdots\right) (si usano i coefficienti di D e N: il secondo coefficiente di un polinomio monico è meno la somma delle radici). L’equazione del luogo diventa (s - \sigma_a)^{n-m} = -K: s = \sigma_a + K^{1/(n-m)}e^{i\frac{180° + k\cdot 360°}{n - m}}. Sono semirette che partono da \sigma_a con gli angoli della lezione. ∎

Regola 5 (diramazione). Dove due rami si incontrano, D + KN ha una radice doppia s_0: D(s_0) + KN(s_0) = 0 e D'(s_0) + KN'(s_0) = 0. Eliminando K: D'N - DN' = 0, che è il numeratore di \frac{d}{ds}\frac{D}{N}. Equivalentemente, sul tratto reale del luogo K(s) = -\frac{D(s)}{N(s)}, e il punto di diramazione è un massimo (o minimo) di K: lì due radici reali si fondono e diventano complesse. ∎

Regola 6 (angoli di partenza). Vicino a un polo p_j, tutti i fattori tranne s - p_j hanno argomento quasi costante, uguale al valore in p_j. La condizione di fase dà allora la direzione di partenza:

    \[ \theta_{p_j} = 180° + \sum_i\arg(p_j - z_i) - \sum_{i \ne j}\arg(p_j - p_i) \]

e allo stesso modo l’angolo di arrivo a uno zero \theta_{z_j} = 180° - \sum_{i \ne j}\arg(z_j - z_i) + \sum_i\arg(z_j - p_i).

Regola 7 (somma dei poli). Se n - m \ge 2, il coefficiente di s^{n-1} in D + KN non dipende da K (perché KN ha grado al massimo n - 2), quindi la somma dei poli dell’anello chiuso è costante. Se una coppia va verso destra, un altro ramo deve andare a sinistra di pari misura: è un controllo molto utile sui disegni.

Regola 8 (asse immaginario). I punti di attraversamento sono le soluzioni di D(i\omega) + KN(i\omega) = 0: uguagliando a zero parte reale e parte immaginaria si ottengono \omega e K. È la stessa informazione della riga nulla nella tabella di Routh.

Asintoti di un luogo con quattro poli
Per K su s per s più 1 per s più 3 per s più 4 i quattro asintoti, tratteggiati, partono dal baricentro meno 2 con angoli di 45, 135, 225 e 315 gradi. I rami si staccano dall’asse reale nei punti di diramazione e si avvicinano agli asintoti.

Uno zero e un luogo circolare

    \[ L(s) = K\,\frac{s + 3}{s(s + 1)} \]

Asse reale: il tratto tra 0 e -1 e tutto quello a sinistra di -3. Diramazioni: \frac{d}{ds}\frac{s(s + 1)}{s + 3} = 0 dà s^2 + 6s + 3 = 0, cioè s = -0{,}551 (con K = 0{,}101) e s = -5{,}449 (con K = 9{,}90).

Teorema. La parte complessa del luogo è la circonferenza di centro -3 (lo zero) e raggio \sqrt 6.

Dimostrazione. Con s = x + iy, l’equazione s^2 + (1 + K)s + 3K = 0 ha radici complesse x = -\frac{1 + K}{2}, y^2 = 3K - x^2. Da K = -2x - 1: y^2 = -6x - 3 - x^2, cioè (x + 3)^2 + y^2 = 6. ∎

In generale, con due poli e uno zero reali il luogo è sempre una circonferenza centrata nello zero, di raggio uguale alla media geometrica delle distanze dello zero dai due poli (qui \sqrt{3\cdot 2} = \sqrt 6). Lo zero “attira” i rami e li tiene nel semipiano sinistro per ogni K: è l’effetto di un’azione derivativa (rete anticipatrice o PD).

Luogo delle radici di K per s più 3 fratto s per s più 1
I rami partono dai poli 0 e meno 1, si staccano dall’asse in meno 0,55, descrivono una circonferenza attorno allo zero in meno 3 e si ricongiungono sull’asse in meno 5,45; poi uno va verso lo zero e l’altro verso meno infinito.

Poli complessi: l’angolo di partenza

    \[ L(s) = \frac{K}{(s + 3)(s^2 + 2s + 2)} \]

Poli in -3 e -1 \pm i. Angolo di partenza da p = -1 + i: \arg(p + 3) = \arg(2 + i) = 26{,}6°; \arg(p - \bar p) = \arg(2i) = 90°. Quindi \theta = 180° - 26{,}6° - 90° = 63{,}4°: il ramo parte verso l’alto e a destra, e attraversa l’asse immaginario.

Attraversamento: (s + 3)(s^2 + 2s + 2) = s^3 + 5s^2 + 8s + 6. Con s = i\omega: parte reale -5\omega^2 + 6 + K = 0, parte immaginaria -\omega^3 + 8\omega = 0. Quindi \omega = \sqrt 8 = 2{,}83 e K = 34. Asintoti: baricentro \frac{-3 - 2}{3} = -1{,}67, angoli \pm 60° e 180°.

Luogo con una coppia di poli complessi
Dai poli meno 1 più o meno i i rami partono con un angolo di circa 63 gradi, salgono verso destra e attraversano l’asse immaginario per K uguale a 34, in più o meno i per 2,83.

Un processo instabile in anello aperto

    \[ L(s) = K\,\frac{s + 1}{s(s - 2)} \]

Il polo in +2 rende il processo instabile da solo. Equazione caratteristica: s^2 + (K - 2)s + K = 0. Con il criterio di Routh (secondo ordine: tutti i coefficienti positivi) l’anello chiuso è stabile per K \gt  2. Il luogo lo mostra: i rami partono da 0 e da 2, si incontrano sull’asse reale tra i due poli, descrivono un cerchio attorno allo zero in -1 (centro -1, raggio \sqrt{1\cdot 3} = \sqrt 3) e attraversano l’asse immaginario in \pm i\sqrt 2 per K = 2.

È la situazione tipica di un pendolo inverso, di un levitatore magnetico o di un aereo da caccia instabile per progetto: la retroazione deve avere un guadagno minimo, e un guasto del controllo è catastrofico.

Luogo di un processo instabile
I rami partono dal polo nell’origine e da quello instabile in 2, si incontrano tra i due, girano attorno allo zero in meno 1 ed entrano nel semipiano sinistro quando K supera 2.

Il luogo rispetto a un altro parametro

Il metodo funziona per qualunque parametro che compaia linearmente nell’equazione caratteristica. Si vuole sapere come si spostano i poli di s^2 + as + 4 = 0 al variare dello smorzamento a. Si riscrive l’equazione come

    \[ 1 + a\,\frac{s}{s^2 + 4} = 0 \]

che è un luogo delle radici con “guadagno” a, poli in \pm 2i e uno zero in 0. Il luogo è una circonferenza di raggio 2 centrata nell’origine (i poli hanno modulo \sqrt 4 = 2 finché sono complessi): lo smorzamento cambia l’angolo dei poli ma non la pulsazione naturale \omega_n = 2. Per a = 4 i poli coincidono in -2 (smorzamento critico).

Luogo delle radici rispetto al coefficiente di smorzamento
Al crescere di a i poli partono da più e meno 2 i, scendono lungo una semicirconferenza di raggio 2, si incontrano in meno 2 per a uguale a 4 e poi si separano sull’asse reale.

Il luogo in MATLAB e in Python

Il luogo dell’esempio della lezione, \frac{K}{s(s + 2)(s + 4)}, con la ricerca del guadagno che dà smorzamento 0,5.

MATLAB (Control System Toolbox):

G = tf(1, [1 6 8 0]);          % G(s) = 1/(s(s+2)(s+4))
rlocus(G); sgrid(0.5, [])      % luogo e retta di smorzamento 0,5
[K, poli] = rlocfind(G)        % clic sul punto voluto del luogo
T = feedback(8.3*G, 1); stepinfo(T)

Python (librerie gratuite numpy e python-control):

import numpy as np
import control as ct

G = ct.tf([1], [1, 6, 8, 0])            # G(s) = 1/(s(s+2)(s+4))
rlist, klist = ct.root_locus(G, plot=False)

# guadagno per cui la coppia dominante ha smorzamento 0,5
for K in np.linspace(0.5, 47, 50000):
    p = np.roots([1, 6, 8, K])
    c = p[np.argmax(p.imag)]
    if c.imag > 0 and -c.real / abs(c) <= 0.5:
        print(f"K = {K:.2f}, poli = {np.round(p, 3)}")
        break

# guadagno critico: radici sull'asse immaginario
print(np.roots([1, 6, 8, 48]))
T = ct.feedback(8.3 * G, 1)
print(ct.step_info(T)["Overshoot"])

L’esecuzione stampa K = 8{,}30 con poli -4{,}667 e -0{,}667 \pm 1{,}155i, poi le radici -6 e \pm 2{,}828i per K = 48, e infine una sovraelongazione del 15,5 %: un po’ meno del 16,3 % di un secondo ordine puro con \zeta = 0{,}5, per l’effetto del terzo polo in -4{,}67, che smorza leggermente la risposta. Con plot=True (o con ct.root_locus_plot nelle versioni più recenti della libreria) si ottiene il disegno con matplotlib.

Il guadagno per uno smorzamento assegnato
La retta tratteggiata verde corrisponde a smorzamento 0,5; il luogo la interseca per K uguale a 8,3, dove i poli dominanti sono meno 0,67 più o meno 1,15 i e il terzo polo è in meno 4,67.

Gli esercizi, con tutti i casi di questa pagina, sono nella pagina degli esercizi collegata in cima.

Iscriviti
Notificami
guest
1 commento
Vecchi
Più recenti Le più votate
1
0
Esprimete la vostra opinione commentando.x