Observador de Luenberger

De Viquipèdia
Dreceres ràpides: navegació, cerca

L' observador de Luenberger és un estimador d'estat, és a dir, un algorisme que permet estimar l'estat intern ocult (no mesurable) d'un sistema dinàmic lineal a partir de les mesures de l'entrada i de la sortida d'aquest sistema.[1]

La idea en la qual es basa aquest observador és la de generar un sistema "clon" de l'original, al qual sí que se li pugui mesurar l'estat intern directament. Si el sistema original és estable i ell i el seu clon, partint de les mateixes condicions inicials, són sotmesos als mateixos estímuls (la mateixa entrada), sembla que es podria esperar que els seus estats es mantinguessin idèntics. D'aquesta manera, l'estat intern del clon es podria utilitzar com una aproximació de l'estat intern del sistema original. Això a la pràctica no és així per que el clon mai serà un clon perfecte (les matrius A, B i C del clon no seran idèntiques a les A, B i C del sistema original, ja que aquestes mai són prou ben conegudes) i per que les mesures del sistema original tampoc seran exactes (estaran contaminades per soroll). Per a posar-hi remei i per a obviar el problema d'haver de partir de les mateixes condicions originals, a l'entrada del clon se li afegeix la diferència entre la sortida dels dos sistemes multiplicada per una constant. D'aquesta manera, s'aconsegueix modificar la dinàmica del sistema clon de manera que aconsegueixi estimar l'estat del sistema original en un temps arbitràriament petit (almenys en teoria).

Ara ve l'explicació més rigorosa de l'anterior. Cada un dels dos sistemes dinàmics lineals està descrit per dues equacions matricials: una equació de d'estat, que indica de quina manera evoluciona l'estat en el temps, i una equació d'observació que lliura la sortida en funció de l'estat.

Suposem que les equacions que descriuen el sistema lineal original amb estat  \quad x (t) , entrada  \quad u (t) i sortida  \quad y (t ) són les següents:

 \quad \frac{d}{dt}x(t) = A   x(t) + B   u(t) (equació d'estat, sistema original)

 \quad y(t) = C   x(t) (equació d'observació, sistema original)

Suposem que les equacions que descriuen el sistema lineal clon (anomenat també observador) amb estat  \hat x (t) , entrada  \hat u (t) i sortida  \hat y (t) són les següents:

 \quad \frac{d}{dt}\hat{x}(t) = A   \hat{x}(t) + B   \hat{u}(t) (equació de estat, observador)

 \quad \hat{y}(t) = C   \hat{x}(t) (equació d'observació, observador)

L'error d'estimació d'estat està donat per:

 \quad d (t) = \hat{x}(t) - x (t)

L'error a la sortida de l'observador està donat per

 \quad e(t) = \hat{y}(t) - y(t) = C d(t)

Es pot alimentar el sistema clon amb la següent entrada modificada

 \quad \hat{u}(t) = u(t) - K e(t) = u (t) - K C d (t)


L'efecte produït sobre l'equació de transició d'estat de l'observador és el següent:

 \quad \frac{d}{dt}\hat{x}(t) = A   \hat{x}(t) + B  ( u(t) - K C d(t) )

Si restem aquesta equació de l'equació de transició d'estat del sistema original s'obté la següent expressió:

 \quad \frac{d}{dt}\hat{x}(t) - \frac{d}{dt}x(t) = A   \hat{x}(t) + B  ( u(t) - K C d(t) ) - A x(t) - B u(t)

d'on

 \quad \frac{d}{dt}d(t) = (A-KC) d(t)

Aquesta última equació mostra que la dinàmica de l'error pot ser modificada convenientment mitjançant una elecció d'un valor K adequat. En general, un K prou gran n'hi ha prou perquè l'observador funcioni adequadament, encara que un K excessiu pot generar efectes transitoris una mica violents inicialment. En el cas que el sistema original estigui contaminat per soroll blanc no mesurable en la sortida i a l'entrada, un observador més apropiat és el filtre de Kalman, el qual és capaç de trobar un guany K òptim en funció de la variància dels sorolls.

L'observador de Luenberger pot ser usat tant en temps continu com en temps discret.

Vegeu també[modifica | modifica el codi]

Referències[modifica | modifica el codi]

  1. José Gómez Campomanes. Sistemas digitales de control: análisis y diseño. Universidad de Oviedo, 1998, p. 811–. ISBN 978-84-8317-091-5 [Consulta: 15 gener 2012]. 

Enllaços externs[modifica | modifica el codi]