Defining Structure :-
2. Explain the following term: (Give answer any six) 6 i) Variable
El objetivo de este método es detectar a partir de datos provenientes de la identificación de un sistema dinámico cuya estructura se mostró en la figura 3.3 qué regiones son invertibles, es decir qué datos pueden tomar la estructura de control de planta inversa que se mostró en la figura 3.5.
Como se vio en el capítulo 3, la identificación de un sistema dinámico se hace mediante la FTE, por tanto los datos tienen la siguiente estructura:
])
,
[
),
(
(
)
(t
t
X
t
u
t
t
t
X
+Δ
=Φ
+Δ
(4.11)A partir de la identificación se quiere obtener un control por planta inversa, pero en la figura 3.5 se observa que este modelo sólo considera una componente del estado siguiente, por tanto en la identificación no inversa se tendrá que hacer la misma consideración, por lo que la FTE cambia a la siguiente forma:
])
,
[
),
(
(
)
(t
t
X
t
ut
t
t
x
i+Δ
=Φ
i+Δ
(4.12)En la cual sólo se considera una componente del estado siguiente (xi(t+∆t)).
El control de planta inversa resuelve el siguiente problema: dado un estado actual X(t) ¿qué entrada se debe aplicar para transitar a la componente del estado siguiente xi(t+∆t)?
Por tanto lo que se busca es una función g que cumpla con lo siguiente:
))
(
),
(
(
]
,
[t
t
t
g
X
t
x
t
t
u
+Δ
=
i+Δ
(4.13)Las regiones que no tienen posibilidad de inversión son aquéllas en las que a partir de un estado actual X(t) es posible transitar a la componente del estado siguiente xi(t+∆t) con
dos o más entradas u[t+∆t] distintas. A continuación se muestra el análisis para llegar a esta conclusión.
En el análisis se parte de un estado actual dado X(t), por lo que es posible reescribir la función (4.12) como:
(
)
(
, [ ,
])
i i
x t+ Δ = Φt
constante u t t+ Δt
(4.14) En (4.14) se observa que la única variable deΦ
ies la entrada u[t, t+∆t]. Por tanto a partir de (4.14) es posible obtener la siguiente función equivalente.])
,
[
(
)
(t
t
'u
t
t
t
x
i+Δ
=Φ
i+Δ
(4.15)Haciendo un análisis similar es posible reescribir a (4.13) como:
))
(
(
'
]
,
[t
t
t
g
x
t
t
u
+Δ
=
i+Δ
(4.16) De (4.15) y (4.16) se observa que g’=( ' iΦ
)-1 por tanto hay que analizar las regiones donde'
i
Φ
es invertible, es decir detectar en qué regiones se cumple que es biyectiva.Como se vio en el inciso b) de la sección 2.2.1 para que una función sea biyectiva tiene que ser inyectiva y suprayectiva. Para que la función '
i
Φ
sea inyectiva debe cumplir quepara todo a1, a2 Є u[t+∆t] si
Φ
'i(a1)='
i
Φ
(a2) entonces a1=a2. Por tanto las regionesinyectivas son aquellas en las que a partir de un estado actual X(t) es posible transitar al estado siguiente con una entrada única.
Para que la función '
i
Φ
sea suprayectiva su rango debe ser completamente cubierto, esdecir no deben existir discontinuidades, pero dado que '
i
Φ
en este trabajo corresponde a una función interpoladora, la cual es capaz de aproximar cualquier valor que se encuentre en el rango de los datos de entrenamiento, no existen discontinuidades por lo que 'i
Φ
es suprayectiva.Por lo que se demuestra que las regiones que no tienen posibilidad de inversión son aquéllas en las que a partir de un estado actual X(t) es posible transitar a un determinado valor de la componente del estado siguiente con dos o más entradas distintas. En la figura 4.4 se observa que a partir de X(t)=[1,2]T es posible llegar a x
i(t+∆t)=80 con dos entradas
distintas por lo que el dato es multivaluado y no tiene posibilidad de inversión.
Fig. 4.4. Para transitar a xi(t+∆t)=80 a partir de X(t)=[1, 2] T es posible hacerlo con dos entradas distintas por lo que el dato es multivualuado y no tiene posibilidad de inversión.
Para simplificar las notaciones en lo sucesivo a la entrada en el rango de tiempo [t+∆t] denotada por u[t, t+∆t] se representará solamente por u.
Para detectar regiones de datos multivaluados se siguen los pasos que se muestran en la figura 4.5.
Fig. 4.5. Pasos para detectar regiones con datos multivaluados. A continuación se explica cada paso.
Paso 1.- Selección de archivos sintonizados
En este paso el usuario indica el directorio donde se encuentran los archivos sintonizados, es decir la descripción del sistema difuso que se usará como función interpoladora. La forma de realizar este paso se explica en la sección A.4.
Paso 2.- Introducción de la dimensión de la entrada u y el estado actual X(t)
El usuario introduce el número de dimensión en que se encuentra la entrada u y los valores de las distintas componentes del estado actual X(t), el cual permanecerá constante en las etapas posteriores. La forma de ingresar estos datos se presenta en la sección A.4.
Paso 3.- Cálculo de puntos
Con la función interpoladora se calculan 3000 puntos, dividiendo el rango de la entrada u en partes equidistantes y manteniendo constante el valor del estado actual X(t).
Paso 4.- Refinamiento de máximos y mínimos locales y absolutos
Se localizan los puntos que son máximos y mínimos locales, es decir aquéllos que presentan un cambio de dirección como los de la figura 4.6, donde los puntos blancos son los máximos o mínimos.
1. Selección de archivos sintonizados
2. Introducción de la dimensión de la entrada u y el estado actual X(t). 3. Cálculo de puntos.
4. Refinamiento de máximos y mínimos locales y absolutos. 5. Búsqueda de puntos multivaluados.
6. Formación de regiones multivaluadas.
7. Refinamiento de rangos de entrada u de las regiones multivaluadas. 8. Despliegue de resultados.
Fig. 4.6. Los puntos blancos los cuales tienen un cambio de dirección, corresponden a máximos o mínimos. Entre los puntos extremos (puntos negros de la figura 4.6), se calculan 40 nuevos datos, si se encuentra alguno que sea mayor al máximo o menor al mínimo se asigna como máximo o mínimo respectivamente.
Paso 5.- Búsqueda de puntos multivaluados
En este paso se recorre o visita cada punto y se etiqueta como multivaluado o no multivaluado. Se utilizan dos rangos: el rango cubierto y el multivaluado. El rango cubierto se define por los valores máximos y mínimos de la ordenada (xi(t+∆t)) de los datos ya
recorridos. El rango multivaluado se define por los valores máximos y mínimos de xi(t+∆t)
de los datos que ya se han etiquetado como multivaluados. Estos rangos se muestran en la figura 4.7 donde los puntos negros son multivaluados y los blancos no multivaluados.
Fig. 4.7. Gráfica en la que se muestran los rangos multivaluado y cubierto, se presentan los puntos etiquetados como multivaluados en color negro y los no multivaluados en color blanco así como el punto que
se visita.
En una explicación general en este método se visita cada punto, si el valor de su ordenada xi(t+∆t) no pertenece al rango cubierto se rotula como no multivaluado y se
actualiza el rango cubierto; en caso de que el valor de la ordenada de un punto pertenezca al rango cubierto, se etiqueta como multivaluado y se actualiza el rango multivaluado. Si el punto actual que se visita se etiqueta como no multivaluado y el punto anterior fue multivaluado o si el punto actual se etiqueta como multivaluado y es el último dato, es necesario recorrer todos los puntos no multivaluados ya visitados debido a que habría por lo menos uno que pertenezca al rango multivaluado por lo que su etiqueta cambiaría a multivaluado. En figura 4.8 se muestra el diagrama de flujo de la búsqueda de puntos multivaluados.
Paso 6.- Formación de regiones multivaluadas
Se localizan los distintos conjuntos de puntos adyacentes etiquetados como multivaluados, los cuales forman las regiones multivaluadas, se almacenan los valores iniciales y finales de la dimensión de entrada u y los valores máximo y mínimo de la componente del estado siguiente xi(t+∆t) de cada región multivaluada.
Paso 7.- Refinamiento de rangos de entrada u de las regiones multivaluadas
En este paso se hace una aproximación más precisa de los rangos de la entrada u de las regiones multivaluadas con base a los datos obtenidos en el paso 6: los valores iniciales y finales de la entrada u y los valores máximos y mínimos de la componente del estado siguiente xi(t+∆t) de cada región multivaluada. El refinamiento de rangos parte de la idea
de que los valores interpolados de los valores de las entradas iniciales y finales deben ser iguales a los valores máximos o mínimos de xi(t+∆t) según sea el caso.
Esta idea se muestra en la figura 4.9 donde se presentan puntos multivaluados (negro) y no multivaluados (blanco), en este caso particular se busca entre la entrada inicial y el punto más cercano no multivaluado un valor de u cuyo consecuente interpolado sea igual al valor mínimo del estado siguiente y entre la entrada final y el punto no multivaluado más cercano se busca un valor de u cuyo resultado interpolado sea igual al valor máximo del estado siguiente.
Los valores que se buscan definen un rango más exacto de la región multivaluada.
Fig. 4.9. Puntos multivaluados (negros) y no multivaluados (blanco), entre las líneas punteadas se buscan valores de entrada (u) que sean iguales a los valores máximo o mínimo del estado siguiente.
Para poder refinar los rangos de las entradas de las regiones multivaluadas se usó el método de bisección, el cual es un método incremental que se utiliza para encontrar la
raíz o cero de una función f(x), analizando un intervalo de xl a xu, la condición para poder
aplicarlo es que f(xl) y f(xu) tengan signos opuestos. En este método el intervalo se divide
siempre en dos, si la función cambia de signo sobre un intervalo, se evalúa el valor de la función en el punto medio. La posición de la raíz se determina situándola en el punto medio del subintervalo dentro del cual ocurre un cambio de signo. El proceso se repite hasta obtener una mejor aproximación [Chapra, 1999].
El algoritmo [Chapra, 1999] se muestra en la figura 4.10.
Fig. 4.10. Algoritmo de bisección [Chapra, 1999].
(4.17)
Este algoritmo finaliza hasta encontrar la raíz o cero de la función, pero existen casos en el que la condición de paro f(xl)f(xr)=0 no se cumple en ninguna iteración debido a que la
precisión numérica de las computaras se limita a cierto número de decimales. Por esto existen diversos criterios de paro en base a errores, en este trabajo se usó el error absoluto que se define de la siguiente forma:
u l
error absoluto=x
−x
(4.18)Una de las ventajas de usar este error es que el número de iteraciones se puede calcular a priori; esto es antes de empezar las iteraciones, sólo se tiene que proporcionar el error absoluto deseado, el número de iteraciones se calcula con la siguiente fórmula [Chapra, 1999]:
2
log xu inicial xl inicial
número de iteraciones =
error absoluto deseado
−
⎛ ⎞
⎜ ⎟
⎝ ⎠ (4.19)
Este método se implementó en Matlab 7.0, por lo que el error absoluto deseado corresponde al valor de la variable eps la cual es la menor diferencia posible entre dos valores de doble precisión, por default este valor es 2.2204x10-16 [Hanselman, 2005].
1. Elija los valores iniciales inferior xl y superior xu, de forma tal que la función cambie de signo sobre el intervalo. Esto se puede verificar asegurándose de que f(xl)f(xu)<0.
2. La primera aproximación de la raíz xr se determina como:
2
u l rx
x
x
=
+
(4.17)3. Realice las siguientes evaluaciones para determinar en qué subintervalo cae la raíz: a) Si f(xl)f(xr) < 0, entonces la raíz se encuentra dentro del subintervalo inferior. Por lo
tanto, tome xu = xr y continúe con el paso 2.
b) Si f(xl)f(xr) > 0, entonces la raíz se encuentra dentro del subintervalo superior. Por lo tanto, resuélvase xl = xr y continúe con el paso 2.
En este caso la variable independiente es la entrada u, por lo que el rango de búsqueda de la raíz es [ul, uu] y la variable dependiente es la componente del estado siguiente
xi(t+∆t) la cual se calcula con la función interpoladora.
El valor del estado siguiente xi(t+∆t) que se busca al que denotaremos por VB
corresponde al máximo o mínimo de la región cuyos rangos se desea refinar; este valor por lo general es distinto de cero, por lo que es necesario para poder usar el método de bisección restar al valor del resultado de la función interpoladora fi el valor de VB. A continuación se presenta el algoritmo de bisección modificado, el cual es una aportación.
Fig. 4.11. Algoritmo de bisección modificado.
Existe un caso especial que no es resuelto por el algoritmo anterior (figura 4.11) en el que todos los puntos que pertenecen a cierta región multivaluada tienen el mismo valor en
xi(t+∆t), como se muestra en la figura 4.12. En este caso se busca en las regiones que
aparecen entre las líneas punteadas el dato que pertenezca a la región multivaluada más cercano a los puntos no multivaluados.
Fig. 4.12. Región con datos multivaluados con el mismo valor de estado siguiente, los puntos negros pertenecen a la región multivaluada, el ajuste del rango se lleva acabo entre las líneas punteadas.
1. Elija los valores iniciales inferior ul y superior uu, de forma tal que la función cambie de signo sobre el intervalo. Esto se puede verificar asegurándose de que (fi(ul)-VB)(fi(uu)-
VB)<0.
2. Calcular con la ecuación (4.19) el número de iteraciones.
3. La primera aproximación de la raíz ur se determina con la ecuación (4.17).
4. Realice las siguientes evaluaciones para determinar en qué subintervalo cae la raíz:
a) Si (fi(ul)-VB)(fi(ur)-VB) < 0, entonces la raíz se encuentra dentro del subintervalo inferior. Por lo tanto, tome uu=ur y continúe con el paso 2.
b) Si (fi(ul)-VB)(fi(ur)-VB) > 0, entonces la raíz se encuentra dentro del subintervalo superior. Por lo tanto, resuélvase ul=ur y continúe con el paso 2.
Para hacer esta búsqueda de nuevo se utiliza el algoritmo de bisección (figura 4.11), pero modificando la condición para hacer el cambio del intervalo en el paso 4, tomando como criterio la pertenencia o no pertenencia de f(ur) a la región multivaluada es decir si f(ur) es
o no igual al valor constante (VC) de xi(t+∆t) de la región multivaluada. En este caso el
rango de búsqueda se denota por [um, unm] donde um es la entrada que pertenece a la
región multivaluada y unm es un valor de entrada que no pertenece a dicha región.
Con las consideraciones anteriores sobre el paso 4, el algoritmo para refinar los rangos de entrada de las regiones multivaluadas se muestra en la figura 4.13.
Fig. 4.13. Algoritmo para refinar los rangos de las regiones multivaluadas.
Paso 8.- Despliegue de resultados
Se muestran al usuario los límites inferior y superior de la entrada u de las regiones multivaluadas, así como los valores máximo y mínimo de la componente xi(t+∆t) del
estado siguiente; también se muestra una gráfica que muestra los puntos multivaluados en color rojo y los no multivaluados en color azul (ver figura 4.14).
1. Elija los valores iniciales inferior ul y superior uu, de forma tal que la función cambie de signo sobre el intervalo. Esto se puede verificar asegurándose de que (fi(ul)-VB)(fi(uu)-
VB)<0.
2. Calcular con la ecuación (4.19) el número de iteraciones.
3. La primera aproximación de la raíz ur se determina con la ecuación (4.17).
4. Realice las siguientes evaluaciones para determinar en qué subintervalo cae la raíz: 4.1. Si xi(t+∆t) tiene un valor constante:
4.1.1. Si fi(ur)=VC, tome um=ur y continúe con el paso 2. 4.1.2. Si fi(ur)≠VC, tome unm=ur y continúe con el paso 2.
4.2. Si xi(t+∆t) no tiene un valor constante:
4.2.1. Si (fi(ul)-VB)(fi(ur)-VB) < 0, entonces la raíz se encuentra dentro del subintervalo inferior. Por lo tanto, tome uu=ur y continúe con el paso 2.
4.2.2. Si (fi(ul)-VB)(fi(ur)-VB) > 0, entonces la raíz se encuentra dentro del subintervalo superior. Por lo tanto, resuélvase ul=ur y continúe con el paso 2. 5. Terminar el cálculo hasta que se realicen todas las iteraciones calculadas en el paso 2.
Fig. 4.14. Gráfica de puntos multivaluados (rojo) y no multivaluados (azul).