[Controlli Automatici] Semplice controllore PI in frequenza

DeltaEpsilon
Dato $\dot{y} + 0.1y = u$ progettare un controllore PID tale che
1) Tempo di assestamento $ts \leq 1s$
2) Assenza di sovraelongazioni
3) Errore a regime nullo con riferimento gradino unitario


Essendo richiesta l'assenza di sovraelongazioni posso omettere l'azione derivativa, andando quindi a progettare un controllore proporzionale-integrativo.

Quindi l'ingresso sarà $u(t) = k_p (r-y) + k_I \int_{0}^{t}(r-y)d\tau$
Dove $k_p$ e $k_I$ sono rispettivamente i coefficienti dell'azione proporzionale e integrativa.

Si ha allora $\dot{y} + 0.1y = k_p (r-y) + k_I \int_{0}^{t}(r-y)d\tau$

Per rimuovere l'integrale, l'ordine del sistema incrementa di uno, diventando:

$\ddot{y} + 0.1\dot{y} = k_p(\dot{r} - \dot{y}) + k_I (r-y)$

$\ddot{y} + (0.1+k_p)\dot{y} + k_I y = k_I r$

Dove si è tenuto conto del fatto che il riferimento è un segnale costante: $\dot{r} = 0$

La funzione di trasferimento del sistema è allora $G(s) = \frac{1}{s^2+(0.1+k_p)s+k_I}$

E scelgo il controllo PI $C(s) = k_p + k_I/s$

Dunque la funzione di anello aperto è $L(s) = G(s)C(s) = \frac{k_p s + k_I}{s^3 + (0.1+k_p)s^2 + k_I s}$

Traduzione delle specifiche

L'azione integrale mi assicura errore nullo a regime.

Per ottenere un tempo di assestamento minore o uguale a 1s basta imporre che gli autovalori del sistema a ciclo chiuso abbiano parte reale minore o uguale a -5.

Inoltre per non avere sovraelongazioni, i miei autovalori dovranno essere reali e distinti.

#

A tal proposito scelgo che i miei autovalori debbano essere, ad esempio: -5, -10 e -20.

Procedo secondo il principio di identità dei polinomi.
Il polinomio caratteristico del sistema a ciclo chiuso è $1 + L(s) = 0$ ovvero

$s^3 + (0.1+k_p)s^2 + (k_p + k_I)s + k_I = 0$

Il polinomio desiderato (ovvero quello avente radici -5, -10 e -20) è:

$(s+5)(s+10)(s+20) = s^3 + 35s^2 + 350s + 1000$

Confrontando i coefficienti dei due polinomi ottengo la soluzione:

$k_p = 34.9$
$k_p = -650$
$k_I = 1000$

Siccome i coefficienti devono essere entrambi maggiori di 0, la seconda soluzione è da scartare.

#

Sembra però che i miei procedimenti siano sbagliati, perchè utilizzando MATLAB e diagrammando la risposta indiciale del sistema finale, risulta un tempo di assestamento maggiore di 1:



Cosa c'è che non va?

Grazie in anticipo!

Risposte
Sinuous
Credo che il problema possa essere interpretato così:

$G(s)=\frac{Y(s)}{U(s)}=\frac{1}{s+0.1}$


$C(s)=Kp+\frac{Ki}{s}$

Nota a questo punto la funzione di anello aperto: $G(s)C(s)$ non dovrebbe essere difficile determinare le costanti incognite.

DeltaEpsilon
Prima di tentare nuovi approcci, cosa c'è di sbagliato nel mio?

ingres
Solo per completezza a uso e consumo di chi guarda il post, un errore nella soluzione iniziale è che in pratica il controllore era applicato due volte (la funzione di trasferimento in anello aperto non può dipendere dai coefficienti del controllore).
Seguendo l'impostazione di Sinuous, la corretta funzione in anello chiuso è quindi:

$G_(ac) = (C(s)G(s))/(1+C(s)G(s)) = (k_P*s+k_I)/(s^2+(0.1+k_P)*s+k_I)$

avendo ipotizzato che effettivamente basti un controllore PI. A questo punto rimangono da determinare i parametri del PI.
Esistono diversi metodi, ma uno semplice può essere basato sulle seguenti ipotesi:
a) siccome la risposta deve essere priva di sovraelongazioni possiamo porre che vi sia una cancellazione polo-zero, in modo che la risposta sia del primo ordine
b) la costante di tempo di tale risposta deve essere abbastanza rapida in modo da esaurire il transitorio in meno di 1 s (quindi diciamo T=0.1 s).

Si ottengono così le 2 condizioni:
$T*k_P=1$
$k_I/k_P = 0.1$

da cui i parametri cercati:
$k_P=10$
$k_I=1$

Tramite simulazione con Matlab si può trovare che:
1) Tempo di salita = 0.22 s, Tempo di assestamento = 0.4 s OK
2) Assenza di sovraelongazioni OK
3) Errore a regime nullo (è un sistema di Tipo 1) OK

Rispondi
Per rispondere a questa discussione devi prima effettuare il login.