Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Metodos de Identificacion Dinamica
Metodos de Identificacion Dinamica
discussions, stats, and author profiles for this publication at: https://www.researchgate.net/publication/242121057
Article
CITATION READS
1 2,049
3 authors, including:
SEE PROFILE
All content following this page was uploaded by Pedro Arafet Padilla on 14 May 2015.
The user has requested enhancement of the downloaded file. All in-text references underlined in blue are added to the original document
and are linked to publications on ResearchGate, letting you access and read them immediately.
Mtodos de Identificacin dinmica
2. Mtodos grficos.............................................................................................................. 10
Anexo # 1 ............................................................................................................................. 96
Anexo # 2 ............................................................................................................................. 99
3
Nota de los autores
Los mtodos de identificacin estn muy dispersos en la literatura y se hace muy difcil
para los profesionales la seleccin y posterior utilizacin de algunos de ellos. Por otro lado,
en la docencia de pregrado no siempre se cuenta con programas adecuados para realizar
alguna identificacin prctica usando mtodos sencillos.
Es la intencin de los autores, con esta Monografa, ofrecerle a los profesionales, que
laboran tanto en la industria como en la investigacin y la docencia, una herramienta de
trabajo que les permita tener acceso a los mtodos de identificacin experimental ms
comnmente utilizados, brindando el fundamento terico mnimo necesario, el algoritmo de
clculo para la comprensin de los mismos, as como, en algunos casos, el programa
Matlab y ejemplos resueltos.
Se incluyen adems las caractersticas especficas de cada mtodo, lo que ayuda en gran
medida a la seleccin ms adecuada del mismo, dadas las condiciones particulares del
proceso que se quiere identificar. Constituyen una importante ayuda las recomendaciones
dadas para implementar en la prctica la identificacin del sistema.
4
1. El problema de la identificacin
Como se sabe, en muchas ocasiones, es muy til poseer el modelo de un sistema para su
anlisis, y en particular, para el control, porque la inmensa mayora de los mtodos de
diseo se basan en su conocimiento. A la determinacin de dicho modelo, a partir de tener
algn conocimiento previo sobre el proceso y de experiencias prcticas, se le conoce como
identificacin.
Tericamente, para llegar a obtener un modelo podran adoptarse dos enfoques diferentes:
x y
Con respecto al primer enfoque hay que tener en cuenta que normalmente es
extremadamente difcil considerar todas las leyes fsicas que intervienen y que, an
suponiendo que esto fuera posible, el modelo resultante pudiera ser muy complejo, y por
consiguiente, difcilmente manejable por las tcnicas de diseo de sistemas de control. Por
otra parte, en la prctica, las tolerancias de los elementos, desgastes, fuentes de ruido no
consideradas, etc., hacen que el comportamiento real nunca sea el comportamiento previsto.
Por lo que respecta al segundo enfoque, es evidente que la resolucin del problema de
identificacin sin adoptar hiptesis sobre las caractersticas del sistema puede ser muy
5
difcil.
Etapa de anlisis, en la cual se tienen en cuenta las leyes fsicas y las condiciones
particulares de trabajo para establecer hiptesis sobre la estructura y propiedades del
modelo que se pretende identificar.
En el anlisis hay que tener en cuenta que aunque el sistema sea no lineal, puede ser
conveniente adoptar un modelo lineal con objeto de estudiar su comportamiento ante
variaciones relativamente pequeas sobre un punto de trabajo. As mismo, pueden usarse
hiptesis simplificadoras para describir el comportamiento del sistema mediante un modelo
de orden reducido, ms fcil de identificar y, posteriormente, de utilizar. Por otra parte, en
sistemas lineales con mltiples entradas, es posible aplicar el principio de superposicin,
considerando cada salida como suma de salidas elementales correspondientes a una sola
entrada. La situacin se ilustra en la figura 1.2.
u1 1
+
y
: : :
+
up
p
6
alrededor de un punto de trabajo.
Otro aspecto importante, dentro del marco del control de los procesos industriales, es que
no es lo mismo identificar un modelo de un sistema que trabajar a lazo abierto o a lazo
cerrado. Est claro que en el primero se requiere mayor precisin.
Respecto al orden del modelo existen dos alternativas: imponer el orden o dejarlo libre a
determinar.
Se puede establecer una clasificacin segn las caractersticas del modelo que se pretende
obtener:
1.- De modelo paramtrico. Se pretenden obtener los valores de los coeficientes de las
funciones o matrices de transferencia, o los elementos de las matrices de representacin en
el espacio de estado.
2.-De modelo no paramtrico. Sera el caso de las grficas de mdulo y fase en las
respuestas frecuenciales, en los cuales se usaran los diagramas de Bode, Nyquist, Nichols y
las respuestas a impulso o escaln.
7
En todo caso ntese que, a partir de un modelo paramtrico es muy fcil y rpido obtener
respuestas en frecuencia y que un modelo no paramtrico puede parametrizarse empleando
coeficientes tales como mrgenes de fase y de ganancia, ancho de banda, etc.
Mtodos frecuenciales
En los mtodos grficos se obtienen los parmetros del sistema de manera grfica, mientras
que en los analticos se obtienen producto de clculos numricos.
8
ms fielmente posible al sistema dinmico, a partir del conocimiento previo sobre ste y de
los datos medidos.
9
2. Mtodos grficos
Estos mtodos se caracterizan por determinar los parmetros del modelo de una forma
grfica, y por mucho tiempo se utilizaron de esta forma a pesar de las imprecisiones a que
conllevan.
No obstante, con la ayuda de la computadora, muchos mtodos grficos se han programado
mediante algoritmos analticos.
El procedimiento para obtener los parmetros del modelo estar en dependencia del modelo
propuesto para la identificacin, a partir de la respuesta del sistema a esta seal de estmulo.
K
G (s) =
s + 1
10
se necesitan estimar la ganancia (K) y la constante de tiempo().
Para mayor generalidad, se excita al sistema con un escaln a la entrada de amplitud r1-r, a
partir de cualquier estado estacionario del sistema, obtenindose una respuesta como se
muestra en la figura 2.1.
La ganancia (K) se calcula como
c1 c c
=
r1 r r
r1
c1
c
t
11
2.1.2 Mtodo de Oldenbourg Sartorius
Se usa para sistemas de segundo orden no oscilatorio. La ganancia se calcula igual al caso
de primer orden: K = c / r (2.1)
K
Suponemos: F(s) = (2.2)
(T1s + 1)(T2 s + 1)
Para calcular las constantes de tiempo T1 y T2 se usan las relaciones entre los tiempos TA y
TC, definidos cuando se traza una tangente por el punto de inflexin de la curva que
representa la respuesta de un sistema de segundo orden a un escaln, segn muestra la Fig.
2.2
T2 n T2
TA = T1 ( ) donde n = (2.3)
T1 T1 T2
TC = T1 + T2 (2.4)
T1 T2 / TA n
1= ( ) (2.5)
TA T1 / TA
TC T T
= 1 + 2 (2.6)
TA TA TA
12
TC
c1
c
TA
t
T1/TA 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
T2/TA 1 0.73 0.57 0.44 0.34 0.25 0.18 0.12 0.07 0.03 0
T1/TA
T2/TA
Fig. 2.3 Curvas para la aplicacin del Mtodo de Oldenbourg- Sartorius
13
Obtenindose las constantes de tiempo en las intersecciones de ambas curvas.
Es importante sealar que si TC/TA = 0.736, la recta que representa la expresin es tangente
a la curva, lo que significa que T1 y T2 son iguales. Si la relacin TC/TA < 0.736 no hay
interseccin entre la recta y la curva y significa que estamos en presencia de un sistema de
orden superior al segundo, caso para el cual este mtodo no es aplicable.
14
2.1.3 Mtodo de Anderson. Segundo orden
C(s) K
=
R (s) (sT1 + 1)(sT2 + 1)
donde K1 y K2 son positivos si T2 > T1. La diferencia entre las respuestas a estado
estacionario y transitoria sera:
t t
T1 T2
C L ( t ) = AK C( t ) = K 1e + K 2e (2.9)
Log CL(t)
K2
K1
0.37K2
0.37K1 t
T2
K 2e
t
T1
K 1e
T1 T2 t
15
Fig. 2.5 Representacin grfica del Mtodo de Anderson
Como T2 > T1, el primer trmino de CL(t) disminuye ms rpidamente que el segundo,
luego, para valores altos de t, se puede decir que:
t
T2
C L ( t ) K 2e y tomando logaritmo se tiene que:
1
log C L ( t ) log K 2 ( log e) t (2.10)
T2
es decir, si se construye una grfica de CL(t), usando papel semilogartmico con el eje
logartmico para CL(t) y el eje lineal para t, se obtiene, para valores altos de t, una lnea
recta que interseca al eje logartmico (t = 0) en K2.
t
T2
Tambin se sabe que un trmino exponencial de la forma K 2 e alcanza un 36.8% de su
valor inicial cuando t = T2. De acuerdo con esto se puede establecer la grfica anterior y
determinar la constante de tiempo mayor.
t t
T2 T1
K 2e C L ( t ) = K 1e (2.11)
Esto significa, por un razonamiento similar, que si se traza la representacin de la
diferencia mencionada en un grfico semilogartmico, se obtiene una lnea recta que
t
T1
corresponde a la representacin de K 1e , dicha lnea recta, para t = 0 tiene por
ordenada k1 y para t = T1 tiene por ordenada 0,368 k1 .
16
Se traza la curva correspondiente a la diferencia del valor a estado estacionario y el
transitorio de la respuesta del sistema a un escaln en funcin del tiempo, en un papel
semilogartmico, situando en el eje lineal los valores del tiempo.
Se determina la mayor constante de tiempo como el valor del tiempo donde la recta
anterior alcanza el 0.368 de su valor inicial.
Aunque tericamente este mtodo se puede utilizar para sistemas de orden superior, dado
su carcter grfico, en la prctica no se pueden determinar ms de dos constantes de
tiempo.
17
2.1.4 Respuesta a escaln para sistemas oscilatorios.
K 2n
G (s) = (2.12)
s 2 + 2 n s + 2n
estos sistemas se pueden identificar determinando grficamente los valores del pico de
sobrepaso M p y del perodo de las oscilaciones amortiguadas d, de su respuesta ante una
seal escaln en su entrada, Fig. 2.6.
expresin:
Mp = e 1 2
(2.13)
18
2
n = = (2.14)
1 2 d
Inicio
C
Determinacin de K =
r
log 2 (M p )
=
2 + log 2 (M p )
Clculo de y n
Fin
19
Para este mtodo se confeccion un programa Matlab y se prob con un ejemplo en
Simulink.
20
Fig. 2.9 Resultado de la identificacin
La precisin pudo haber sido mejor si se hubiera disminuido el tiempo de muestreo, que en
nuestro caso fue de 0.15 unidades de tiempo.
El listado del programa se encuentra en el anexo # 2
21
2.1.5 Mtodo de Strejc. Modelo de orden n.
K
G (s) = , es decir, se deben estimar K, T y n a partir de la respuesta a un
(Ts + 1) n
escaln.
c
La ganancia K se determina como hasta ahora, en base a . Se traza la curva que
r
representa la respuesta del sistema y se traza la tangente por el punto de inflexin,
determinando los tiempos TL y TA, Fig. 2.10.
c(t)
TL TA
22
n TL/TA TA/T TL/T
2 0.104 2.718 0.282
3 0.218 3.695 0.805
4 0.319 4.463 1.425
5 0.410 5.119 2.106
6 0.493 5.7 2.811
El procedimiento sera:
Se debe tener en cuenta que cuando TL/TA est entre dos valores de n, se toma el menor.
Ke sL Ke sL Ke sL
(2.15)
Ts + 1 (T1s + 1)(T2 s + 1) (Ts + 1) n
23
1.2
c (t)
1 r(t)
0.8
0.6
0.4
0.2 C
B
0
D A t
-0.2
0 1 2 3 4 5 6 7
24
Es frecuente en la identificacin de procesos qumicos la existencia de sistemas cuya
respuesta a un estmulo escaln tiene generalmente la forma de S. En estos casos un mtodo
bastante efectivo y simple consiste en descomponer dicha respuesta en un retraso puro y un
sistema de primer orden.
s
k e
p
De manera que se obtiene: G (s ) = (2.16)
Ts + 1
1.4
1.2
c(t)
1
0.8
0.6
0.4
0.2
t
0
0 20 40 60 80 100 120
T
y s ( ) y s ( 0)
Como se sabe, la ganancia del sistema se obtiene con k p =
x e
Donde:
y s salida del sistema
x e amplitud del escaln en la entrada del sistema
25
2.2 Mtodos basados en la respuesta a un pulso
dicho pulso, desplazando ste muchas veces un tiempo igual a Tp y sumando las respuestas
Obsrvese que se obtiene la respuesta del sistema a un escaln sin necesidad de aplicar esta
seal a su entrada, por lo que el sistema a identificar slo sufre la perturbacin
correspondiente al pulso rectangular.
27
Fig. 2.15 Resultados de la identificacin
28
3. Mtodos analticos
Los mtodos analticos son los ms comunes y existe una gran variedad en la literatura. A
continuacin se presenta una muestra de ellos.
(t) f(t)
Sistema
+
jt
f ( t )e dt
Entonces F( j) = (3.1)
+
jt
( t )e dt
Dado el hecho de que es muy difcil calcular la integral de la entrada y la salida, usaremos
un mtodo grfico para evaluar las mismas, descomponiendo los transcursos de la entrada y
la salida en pulsos rectangulares de igual ancho. Como suponemos que t 0, se pueden
expresar los lmites de las integrales de 0 a .
29
f(t
)
t (k1/ 2)t t
kt
(k+1/ 2)t
De manera que:
1
k + t
2
jt
f ( t )e dt = f ( t)e jt dt (3.2)
0 k =0 1
k t
2
Segn la grfica anterior f(kt) es el valor de la funcin en el k-simo intervalo, por lo que
la ecuacin anterior puede escribirse como:
1
k + t
2
jt jt
f ( t )e dt = f (kt ) e dt (3.3)
0 k =0 1
k t
2
por tanto:
30
1 1
j( k ) t j( k + ) t
jt e 2 e 2
f ( t )e dt = f (kt) j
(3.5)
0 k =0
finalmente quedara:
t t
j j
e 2 e 2
jt
f ( t )e dt =
j
f (kt )e j(kt ) (3.6)
0 k =0
A 2 + B2 B D
RA = y = tan 1 tan 1 (3.11)
C2 + D2 A C
El trmino t no debe exceder de = 1.57 radianes para una aproximacin satisfactoria
2
de la transformada de Fourier. Si esto sucede debemos disminuir t.
31
El algoritmo de solucin es evidente.
La funcin de correlacin cruzada entre dos variables aleatorias r(t) y c(t) se designa
por:
T
2
1
R rc ( t 2 ) = lim r (t )c(t + t 2 )dt
T T T
(3.12)
2
esta funcin da una medida de la dependencia de la variable c en el instante t+t2 y el valor
de la variable r en t.
Se sabe que si r(t) y c(t) son las variables de entrada y salida de un sistema, cuya respuesta
a un impulso o funcin pesante es g(t), se puede plantear que:
c( t ) = r( t t1 )g( t1 )dt1 (3.14)
de manera que c(t+t2) est dada por:
32
c( t + t 2 ) = r( t + t 2 t1 )g(t 1 )dt1 (3.15)
Si se sustituye c(t+t2) en la correspondiente a la funcin de correlacin cruzada, se tiene
que:
T
2
1
R rc ( t 2 ) = lim
T T
r ( t )dt r ( t + t 2 t 1 )g( t 1 )dt 1 (3.16)
T
2
T
1 2
R rc ( t 2 ) = g( t 1 )dt 1 lim
T T T
r ( t ) r ( t + t 2 t 1 ) dt (3.17)
2
Se puede observar que la funcin entre corchetes corresponde a la funcin de
autocorrelacin de r(t) en t = t2 t1, o sea, que la funcin de correlacin cruzada puede
escribirse:
R rc = ( t 2 ) = R rr (t 2 t1 )g( t 1 )dt1 (3.18)
R rc = kg( t 2 ) ( t 2 t 1 )g ( t 1 )dt 1 (3.19)
En esta expresin el integrando es diferente de cero solo cuando t2 = t1, luego puede
escribirse:
R rc ( t 2 ) = kg ( t 2 ) ( t 2 t 1 )dt 1 (3.20)
33
y finalmente, dado que : ( t 2 t 1 )dt 1 = 1, se llega a:
R rc = kg ( t 2 ) (3.21)
Esto significa que si a un sistema se le aplica como estmulo una seal aleatoria con funcin
de autocorrelacin dada por k ( t ) , el resultado de calcular la funcin de correlacin
cruzada de la variable de salida y el estmulo correspondiente es proporcional a la respuesta
a impulso. Como esta funcin caracteriza al sistema se puede decir que hemos identificado
el sistema.
En sistemas industriales es posible, a veces, usar las propias perturbaciones aleatorias que
sufren las variables de entrada o generarlas.
y(i) = g ( j)u (i j) + (i) (3.22)
j= 0
n
1
yu (k ) = lim
2 n + 1
y(i)u(i k) (3.23)
n i=n
34
1 n
yu (k ) = lim u (i k ) g ( j) u (i j) + (i ) (3.24)
n 2n + 1 i = n j=0
n n
1 1
yu (k ) = g ( j) lim u (i k )u (i j) + lim u(i k )(i) (3.25)
j= 0 n 2n + 1 i = n n 2n + 1 i = n
n n
1 1
yu (k ) = g( j) lim u ( t )u ( t j + k ) + lim u(i k)(i) (3.26)
j= 0 n 2 n + 1 i = n n 2 n + 1 i = n
n
1
uu (k ) = lim
2 n + 1
u(i)u(i k) (3.27)
n i=n
yu (k ) = g ( j) uu ( j k ) + u (k ) (3.28)
j= 0
yu (k ) = g ( j) uu ( j k ) (3.29)
j= 0
35
uu (k ) = 0 y uu (0) = d (3.30)
Este mtodo se puede aplicar en lnea. En efecto, considrese un sistema con entrada r(k) a
la cual se le aade un ruido blanco u(k). En este caso la entrada real que se aplica al sistema
es:
~
u (k ) = r (k ) + u (k ) de manera que y(k ) = y r (k ) + y u (k ) , sustituyendo esto en (3.23) se
obtiene:
n n
1 1
yu (k ) = lim
2 n + 1
ry (i ) u (i k ) + lim
2 n + 1
y u (i)u(i k) (3.32)
n i=n n i =n
Dado el hecho que r(k) y u(k) no estn correlacionadas, tampoco lo estarn yr(k) y u(k), por
lo que se puede despreciar el primer trmino.
1 n
yu (k ) = y(i)u (i k )
n + 1 i =0
(3.32)
Se confeccion un programa Matlab (anexo # 4), que contiene la funcin CRA que resuelve
el problema, y se prob con un ejemplo en Simulink.
s2 + 4s + 1
E sc S al
S is tem a
E nt
0.1
0.05
00 5 10 15 20
Respuestas a escaln del sistema y el modelo
4
Respuesta del sistema
Respuesta del modelo
2
0
0 5 10 15 20 25 30 35 40 45 50
37
3.4 Mtodo de deconvolucin
Consideremos un sistema lineal, estacionario y estable, con una entrada y una salida, como
se muestra en la Fig. 3.4.
( t )
donde:
M Nmero de puntos de las mediciones de la salida
TM = M - tiempo de observacin de la salida
N Nmero de puntos de la respuesta a impulso
Ts = N - Tiempo de establecimiento
38
x
(1-N) -2 - 2 3 (M-N) t
z
2 M t
Teniendo en cuenta que es constante, la ecuacin (3.34) se puede escribir en una forma
ms sencilla:
N
zj = x jk h k para j = 1, 2, ....., M donde consideramos que x = x * (3.35)
k =1
z1 = x 0 h 1 + x 1 h 2 + x 2 h 3 + L + x 1 N h N
z 2 = x 1 h 1 + x 0 h 2 + x 1h 3 + L + x 2 N h N (3.36)
z 3 = x 2 h 1 + x 1 h 2 + x 0 h 3 + L + x 3 N h N
..................................
z M = x M 1h 1 + x M 2 h 2 + x M 3 h 3 + L + x M N h N
z = Ah (3.37)
donde :
39
x0 x 1 x 2 L x 1 N
x x0 x 1 L x 2 N
1
A M *N = x2 x1 x0 L x 3 N (3.38)
M M M M M
x M 1 x M 2 x M 3 L x M N
[
con z = z1 z 2 z 3 L z M ]T h = [h 1 h 2 h 3 L h N ]T
Este sistema de ecuaciones se puede resolver de varias formas, por supuesto se recomienda
usar mtodos de mnimos cuadrados (Matlab resuelve por esta va usando h=A\z). Sin
embargo, si suponemos que tomamos las mediciones desde t = 0, que es el caso en el cual
se excita al sistema en el instante en que se toma como referencia el tiempo y i el estimado
z1 = x 0 1
z 2 = x 11 + x 0 2
z 3 = x 2 1 + x 1 2 + x 0 3 (3.39)
........................
z n = x n 11 + x n 2 2 + L + x 0 n
Si bien es cierto que se recomienda el uso de mnimos cuadrados para la solucin de este
problema por la presencia de ruido en el sistema as como por el error de discretizacin, se
puede intentar (si el ruido es pequeo) la solucin de una forma muy sencilla:
z1
1 =
x0
z x 11
2 = 2 (3.40)
x0
z 3 x 2 1 x 1 2
3 =
x0
...................
40
i 1
z i x i j j
j=1
i =
x0
..................
n 1
z n x n j j
j=1
n = (3.41)
x0
Por el mtodo de los mnimos cuadrados se necesitara primero crear la matriz A y luego
resolver el sistema z = Ah. El inconveniente que tiene es que la matriz A tiene el orden
igual a la cantidad de valores de la entrada, es decir, puede ser grande.
Los algoritmos de solucin en ambos casos son sencillos y evidentes. La experiencia es que
se obtienen buenos resultados con ambos procedimientos.
5
s2 +2s+1
Sinusoide Sal
Transfer Fcn
Ent
Esc
42
2
1.8
1.6
1.4
1.2
0.8
0.6
0.4
0.2
0
0 2 4 6 8 10 12 14 16 18 20
43
3.5 Mtodo de integracin gradual.
Suponiendo estado estacionario antes y despus de las mediciones, entonces se cumplen las
siguientes condiciones iniciales para la entrada u(t) y la salida y(t).
(n)
y(0) = y(); y& (0) = &y&(0) = L = y (0) = 0
(3.42)
( m)
u (0) = u (); u& (0) = &u&(0) = L = u (0) = 0
Supongamos el siguiente modelo:
(n) ( n 1)
a n y ( t ) + a n 1 y ( t ) + L + a1y& ( t ) + a 0 y( t ) = u ( t ) (3.43)
El problema principal consistira en determinar los parmetros a0, a1, a2,,an. El mtodo de
integracin gradual lo resuelve mediante la integracin. As, integrando la ecuacin (3.43)
de 0 a , suponiendo que vale (3.42), se obtiene:
udt
a 0 ydt = udt a 0 = 0
(3.44)
ydt
0 0
44
a1 y& dt 2 + a 0 ydt 2 = udt
2
0 t 0 t 0 t
1
a1 = a 0 ydt udt 2
2
(3.45)
ydt 0 t
0 t
El clculo del resto de los coeficientes es similar. Por ejemplo, a2 se puede calcular como
1
a2 = udt a 0 ydt + a1 ydt 2
3 3
(3.46)
ydt 0 t t 0 t t 0 t
En el caso en que la seal de entrada comience y termine en estado estacionario, pero que
no se cumpla que y(0)= y( ), u(0)= u( ), como son los casos que se muestran en la
Figura 3.11, se procede de la siguiente forma:
45
De la ecuacin (3.43) se resta la ecuacin para estado estacionario y se obtiene
(n)
a n y ( t ) + L + a 2&y&( t ) + a1y& ( t ) + a 0 [y() y( t )] = [u () u ( t )] (3.47)
y
[u() u (t )]dt
2
=0 (3.51)
0 t
u ( )
a0 = (3.52)
y ( )
Se supone el modelo:
46
t1 t1 t1 t1
a 1 ydt + a 0 ydtd b 0 udtd b1 udt = y( t 1 )
0 00 00 0
M (3.54)
tk tk tk tk
a 1 ydt + a 0 ydtd b 0 udtd b1 udt = y( t k )
0 00 00 0
es decir,
t1 t1 t1
t1
ydt ydtd udtd a 1 y(t 1 )
udt
0 00 00 0
M a :
M M M 0 = (3.55)
t k tk tk tk b 0 :
ydt ydtd udtd udt b1 y( t k )
0 00 00 0
donde A[k,m]; p[m,l]; y[k,l]. Las columnas de la matriz A se pueden calcular con la ayuda
de la matriz de integracin J segn:
t1
ydt
0 y( t 1 )
: :
= J (3.57)
: :
t k
ydt y( t k )
0
Para simplificar la notacin supondremos ahora:
y(i) = y(ti).
Para la integral doble vale:
47
t1 t1
yddt ydt
00 0 y(1)
:
: = J : = J 2 (3.58)
: : :
t k t k
y( k )
yddt ydt
00 0
Sobre la base de estas relaciones y sabiendo que y(0) = 0, es posible establecer la matriz de
integracin J segn:
y1 y 2 y3 y 4 yk
8 1
16 4
t (3.60)
J= 16 9 8 1
12
16 8 16 4
16 8 16 9 8 1
De acuerdo con lo expresado, para la obtencin de las filas pares de la matriz de Simpson
se emplea la siguiente frmula:
tk h t t iv
t 0 y(t )dt = [4y 0 + 16(y1 + y 3 + L y k 1 ) + 8(y 2 + y 4 + L y k 2 ) + 4y k ] k 0 h 4 y ()
12 180
[t 0 , t k ] (3.61)
expresin genrica, que admite hasta cuarta derivada, para las
donde y(t): ordenadas de entrada y salida del proceso que se identifica
t0 y tk: instantes de tiempo inicial y final del registro de las ordenadas de las
entrada y salida del proceso que se identifica.
h =t= ti+1 ti: magnitud del paso de integracin.
yi: ordenadas de la seal de entrada y salida del proceso en
experimentacin.
iv cuarta derivada de la expresin genrica y(t) evaluada en algn punto
y ( ) :
del intervalo de integracin [t0, tk].
t k t 0 4 iv
h y () : trmino de error de la frmula de Simpson.
180
:
Para los elementos de las filas impares de la matriz de Simpson se utiliza la frmula
auxiliar:
4
h
[5y k + 8y k 1 y k 2 ] h y ''' ()
tk
t k h y( t )dt =
12 24
(3.62)
donde:
h 4 '''
y () : trmino de error de la frmula auxiliar.
24
Esta frmula resulta de integrar al polinomio de interpolacin inverso de Newton de tercer
49
orden en correspondencia con lo estipulado para obtener la frmula de integracin cannica
de Simpson que es bsica para obtener la ecuacin (3.42). El clculo de la integral para el
caso de las filas impares se efecta segn la expresin:
t k h t t
t 0 y( t )dt = k y( t )dt = k y( t )dt (3.63)
t0 t k h
t k h h
t 0 y( t )dt = [4 y 0 + 16(y1 + y 3 + .. + y k 3 ) + 8y k 1 + 8(y 2 + y 4 + .. + y k 4 ) + 9 y k 2 y k ]
12
(3.64)
Para obtener la primera fila de la matriz de Simpson se parte de las siguientes expresiones:
t2 h
t 0 y(t )dt = 12 [4y0 + 16y1 + 4 y2 ] (Frmula cannica de Simpson) (3.65)
h
t 2 h y(t )dt = 12 [ y0 + 8y1 + 5y2 ] (Frmula auxiliar)
t2
(3.66)
t 2 h h
t 0 y( t )dt = [5y0 + 8y1 y2 ] (3.67)
12
Las ecuaciones (3.61), (3.64) y (3.67) permiten formar los elementos para las filas pares e
impares de la matriz de Simpson requerida por el mtodo de integracin gradual.
50
Figura 3.12. Algoritmo de clculo.
t1 t1
ydt udt y( t1 )
0 :
M
0 a 0
M = (3.69)
t k tk b0 :
ydt udt y( t k )
0 0
Para el caso en que se desee trabajar con un modelo de 2do. orden de la forma:
51
y '' + a 1 y ' + a 0 y = b 0 u + b1u ' (3.70)
El sistema sera:
t1 t1 t1 t1
ydt ydtd udtd a1 y(t1)
udt
0 00 00 0
M a :
M M M 0 = (3.71)
t k tk tk tk b0 :
ydt ydtd udtd udt b1 y( t k )
0 00 00 0
El programa desarrollado (Anexo # 6), una vez resuelto el sistema de ecuaciones, segn sea
el caso, y teniendo como resultado los valores de los coeficientes, visualiza en la pantalla
los grficos correspondientes a la salida medida y a la salida calculada a partir de la seal
de excitacin aplicada en la entrada al modelo obtenido. Se visualiza la desviacin estndar
del error entre los valores de la seal de salida medida y la obtenida a travs de la
identificacin. El usuario tiene la posibilidad de ajustar el modelo cambiando los
coeficientes calculados con el objetivo de que la respuesta del modelo sea lo ms cercana
posible a la salida medida.
Conjuntamente con el programa al que se hizo referencia, se cre la funcin INTGR con el
objetivo de aadirla al Toolbox de Identificacin de sistemas dinmicos que ofrece el
MATLAB. Esta funcin es compatible con el paquete de funciones ya existentes,
entregando los resultados en la estructura estndar conocida como matriz THETA. Esta
matriz contiene informacin acerca de la estructura del modelo, parmetros estimados,
precisin de la estimacin, as como la matriz de la covarianza de los parmetros
calculados.
52
Figura 3.13. Seal de excitacin.
53
Figura 3.14. Respuesta del modelo calculado y salida real del sistema de primer orden.
1,9981s + 0,9943
F2 (s) = 2
s + 2,0063s + 4,9888
54
Figura 3.15 Salida real y del modelo para un sistema de segundo orden.
Comentarios finales.
La aplicacin del mtodo en sistemas de 1er, 2do y 3er rdenes permite obtener
resultados satisfactorios, obtenindose errores promedio muy pequeos.
Se obtienen de forma directa los coeficientes del modelo continuo de una planta.
Es necesario una seleccin correcta del tiempo de muestreo.
En el caso que se trabaje con seales muy ruidosas se recomienda darle un tratamiento
preliminar o filtrado de la informacin que se va a procesar, de forma tal que los datos
que sern analizados reflejen de la forma ms exacta posible el comportamiento real del
sistema.
v(t)
55
u(t) seal de entrada
x(t) seal de salida ideal
y(t) seal de salida influida por el ruido
v(t) seal de ruido
Todas las seales son funciones continuas, reales, de variables continuas en t <0, >.
1 + b1p + b 2 p 2 + .... + b n p n
G ( p) = (3.72)
a 0 + a 1p + a 2 p 2 + ... + a n p n
u(t)
-an-1 1/an
-ao -a1
x(t)
56
d n u(t ) du ( t ) d n x(t )
bn + L + b1 + u(t ) = a n + L a o x(t) (3.73)
dt n dt dt n
La expresin para x1(t) para un paso de x = 0 a x = T sera:
T n 1
x 1 (T) = x 1 (0) + x 2 (0)T + L + x n (0) +
(n 1)!
T T T
+ b n 1 u ()d + b n 2 u ()d 2 + L + L u ()d n (3.74)
T
L = T
0
T
0 0
T
0
a n 1 x ()d a n 2 x ()d () L a 0 L x ()d ()
2 n
0 0 0
T n 1
T
x 1 (T) = x 1 (0) + x 2 (0)T + L + x n (0)
(n 1)!
+ L
0
(2T ) n 1
2T
x 1 (2T) = x 1 (0) + x 2 (0)2T + L + x n (0)
(n 1)!
+ L (3.75)
0
(nT) n 1
nT
x 1 (nT) = x 1 (0) + x 2 (0)nT + L + x n (0)
(n 1)!
+ L
0
O de forma matricial
T
L
x 1 (T ) x 1 (0) 20T
x (2T) 1 1 . . 1 x ( 0) T
1 1 2 . . 2 n 1 2 L
M M 0
= . . . . . + M (3.76)
M . . . . .
M
M M M
1 n . . n n 1 M
x 1 (nT) x n (0) nT nT
L
0
57
El problema consiste ahora en eliminar los estados x1, x2, , xn del sistema de ecuaciones.
La primera matriz del lado derecho es la conocida matriz cuadrada de orden n de
(j-1)
Vandermond, cuyos elementos se calculan segn Vi,j = i .
p.V = [1 0 ... 0]
T
L
0
x 1 (T) 2T
M
p = x (0) + p L (3.77)
1
M 0
M
x 1 (nT) nT
L
0
de lo que sigue:
T
L
x ( 0) u ( 0) 0
a n [ 1 p1 L p n ] M b n [ 1 p1 L p n ] M = p M (3.78)
nT
x (nT ) u (nT )
L
0
Los elementos de p se pueden encontrar segn:
58
i 1
pi = (1) C in i = 1 ....n
n!
C in = C nn = C 0n = 1
i! (n i)!
Finalmente el modelo completo o terminado sera:
n n iT n
an i
(1) C in x (iT ) b n i
(1) C in u (iT ) =
(1) C n L u ()d n +
i i
i =0 i=0 i =1 0
n 1 n iT n 1 n T (3.79)
+ (a j (1) i C in L x ()d n j ) + (b j (1) i C in L u ()d n j )
j= 0 i=0 {0 j =1 i =1 {0
n j n j
De este modo, hemos obtenido una ecuacin con los coeficientes del modelo dinmico
como incgnitas. Ahora bastara tomar diferentes intervalos [0, T] y obtener tantas
ecuaciones como quisiera y luego resolver por mnimos cuadrados.
59
4. Algunos elementos sobre el toolbox de Matlab
El Matlab 5.3 ofrece dos toolbox sobre identificacin: uno temporal y otro frecuencial.
Pretendemos mostrar algunos pocos elementos que puedan ser tiles acerca del primero sin
abordar la interfaz correspondiente por ser muy simple de usar.
e(t)
que dice que la salida medida y es debida a la entrada medida u y al ruido e. Donde G
denota las propiedades dinmicas del sistema, es decir, cmo la salida se forma desde la
entrada. Para sistemas lineales se llama funcin de transferencia entre la entrada y la salida.
H refiere las propiedades del ruido y se le llama tambin modelo del ruido, y describe cmo
est formada la perturbacin en la salida.
B(q) 1
G (q ) = q nk H (q ) = (4.2)
A (q ) A (q )
60
A(q ) = 1 + a 1q 1 + ... + a na q na (4.3)
B(q ) = b1 + b 2 q 1 + ... + b nb q nb +1
Los trminos na y nb dan cuenta de los rdenes de los polinomios A(q) y B(q)
respectivamente y nk es el nmero de retrasos de la entrada a la salida. Usualmente se
escribe el modelo de la siguiente forma:
A (q ) y( t ) = B(q)u ( t nk ) + e( t ) (4.4)
Esto da lugar a un sistema de ecuaciones donde las incgnitas a y b sern los coeficientes
de la funcin de transferencia discreta y que se obtienen segn:
Mnimos Cuadrados: Minimiza la suma de los cuadrados de la parte derecha menos la parte
izquierda con respecto a los coeficientes a y b. Para esto se usa la funcin arx del Matlab.
Variable Instrumental: Se determinan a y b de manera tal que el error entre las partes
derecha e izquierda no correlaciona con alguna combinacin lineal de la entrada. Para esto
se usa la funcin iv4.
61
En la estructura ARMAX (AutoRegressive Moving Average eXogen) se introduce el
polinomio C(q) al modelo ARX:
Esto da lugar a un sistema de ecuaciones donde las incgnitas son los coeficientes del
modelo discreto, cuyas soluciones (de este modelo y los posteriores) se obtienen por
prediccin del error con el Mtodo de Mxima Verosimilitud. Para esto se usa la funcin
armax.
4.1.4 Modelo OE
B(q)
y( t ) = u ( t nk ) + e( t ) (4.8)
F(q)
1 nf
con F(q ) = 1 + f 1q + ... + f nf q (4.9)
4.1.5 Modelo BJ
B(q) C (q )
y( t ) = u ( t nk ) + e( t ) con D(q ) = 1 + d 1q 1 + ... + d nd q nd (4.10)
F(q ) D (q )
62
Todos estos modelos son casos particulares de la estructura general:
B(q ) C( q )
A (q ) y ( t ) = u ( t nk ) + e( t ) (4.11)
F(q ) D( q )
donde:
AR
Para la estructura AR se pueden usar ambos mtodos:
% n es el orden del modelo AR
th = ar(y, n) % se calcula segn mnimos cuadrados
th = ivar(y, n) % se calcula segn variable instrumental
ARX
th = arx(z,[na nb nk]) % z es una matriz z = [y u], siendo y la salida y u la entrada
th = iv4(z,[na nb nk])% Por el mtodo de Variable Instrumental
Para sistemas realimentados se recomienda usar variable instrumental.
ARMAX
th = armax(z, [na nb nc nk])
OE
th = oe(z, [nb nf nk])
63
BJ
th = bj(z, [nb nc nd nf nk])
Con ayuda del Simulink del Matlab realizaremos la identificacin del sistema lineal:
s +1
G (s) =
s + s 2 + 5s + 1
3
Como entrada se le aplica un escaln 2u(t-2) y se toma un intervalo de tiempo fijo (fixed
step size) de 0.1 unidades de tiempo y un tiempo de simulacin de 20 u. Se le adiciona
64
ruido a la entrada con el bloque Band-Limited White Noise (Noise Power = 0.5, seed =
23341) a travs de una funcin de transferencia:
5
10s + 1
La entrada u y la salida y se llevan al workspace del MATLAB.
65
Fig. 4.4 Respuesta de la identificacin
Nota: A este programa se le podran adicionar clculo de errores por diferentes mtodos.
Por otro lado se obtiene la expresin en polos y ceros con el objetivo de investigar si el
orden propuesto no es mayor que el real, pues en el caso de que sea mayor se vera la
posibilidad de cancelacin y se podra probar con un orden reducido.
66
0.05
s 2 + s +1
67
Un anlisis del error medio nos dira que es realmente pequeo e igual a 0.0115.
Sin embargo pudiramos probar con la estructura ARMAX que tiene ms en cuenta el
ruido.
Usaremos ahora el mismo programa arxpl cambiando th = arx (z,[3 3 1]) por th = armax
(z,[3 3 3 1]).
68
sta se ve mejor. El error medio es de 0.01.
Se pudiera probar el resto de las estructuras existentes en Matlab cambiando slo la lnea
th = arx (z,[3 3 1]) del programa arxpl.
Ejemplo 1.1. Se trata de un sistema multivariable con dos entradas y dos salidas, descrito
por las ecuaciones en el espacio de estado siguientes:
x ' = Ax + Bu
y = Cx + Du
con
0 1 1 1 1 0 0 0
A= B= C= D=
25 4 0 1 0 1 0 0
u1 G11(s) + y1
+
G12(s)
G21(s)
u2 +
G22(s) + 69
y2
Fig. 4.8 Diagrama de bloques del sistema
Donde:
s+4 s+5
G 11 (s) = G 12 (s) =
s + 4s + 25
2
s + 4s + 25
2
25 s 25
G 21 (s) = G 22 (s) =
s + 4s + 25
2
s + 4s + 25
2
70
Se realiz la identificacin con el programa mimopllsim (Anexo # 8) y se obtuvieron lo
siguientes resultados:
El criterio de error fue el error medio absoluto, es decir, el valor medio de los valores
absolutos de las diferencias entre ambas salidas.
75
El sistema utilizado fue el siguiente:
76
Se realiz la identificacin con el mismo programa mimopllsim, y se obtuvieron los
siguientes resultados:
Ejemplo 4. Se presenta ahora un sistema de tres entradas y tres salidas como se muestra. Se
utilizar el mismo programa que se us para el ejemplo anterior, pero modificando nb y nk,
pues ahora son matrices de orden 3x3 y aumentando la grfica de la salida tres.
77
Fig. 4.18 Esquema Simulink del sistema de tres salidas y tres entradas
78
Se realiz la identificacin con el mismo programa mimopllsim, y se obtuvieron los
siguientes resultados:
De igual forma las matrices del espacio de estado del modelo obtenido pueden conocerse si
se teclea A,B,C,D en la ventana de comandos, luego de haberse ejecutado el programa.
79
5. Identificacin de Sistemas mediante Redes Neuronales Artificiales.
La utilizacin de la Red Neuronal (RN) ha venido a ser, en los ltimos aos, un campo de
gran desarrollo y rpido crecimiento en aplicaciones de la Inteligencia artificial (IA). La
RN se ha empleado principalmente para detectar los atributos de objetos y sus relaciones, y
es posible encontrar una amplia bibliografa al respecto.
En este captulo vamos a centrarnos en ver una descripcin del uso de la RN como un
mtodo de identificacin para sistemas dinmicos lineales y no lineales.
La principal ventaja est en la explotacin de su uso en sistemas no lineales que hasta ahora
no han podido ser resueltos por tener una solucin muy compleja, ya sea por la dificultad
de implementar algoritmos complicados o por ser sistemas con parmetros desconocidos.
Los procedimientos clsicos de identificacin de sistemas que utilizan los datos histricos
de la planta, estn basados en asumir como verdaderas varias hiptesis respecto al sistema.
Dentro de estas hiptesis se pueden resaltar la linealidad, ser invariantes en el tiempo,
conocer el orden del sistema (ARMAX), las constantes de tiempo del sistema en respuesta
a un escaln (FIR), etc.; condiciones asumidas localmente que luego son extrapoladas
globalmente a todas las condiciones de operacin.
Los requerimientos para una RN son menores en comparacin con los procedimientos
clsicos de identificacin. Comparando ambos procedimientos desde el punto de vista de
entrada y estructura, observamos que el usuario debe especificar los datos para el proceso
de entrada-salida idnticamente en ambos tipos de procedimientos.
La RN basada en el perceptron multicapa, con al menos una capa oculta y una funcin de
activacin sigmoidal puede aproximar una gran diversidad de funciones no lineales. Los
parmetros de la RN son ajustados para modelar el comportamiento de una funcin dada,
semejante a cualquier proceso iterativo de estimacin de parmetros.
81
5.1 Introduccin a las Redes Neuronales.
Se puede definir una Red Neuronal Artificial (RNA) como una estructura de proceso de
informacin paralela y distribuida, formada por Elementos de Proceso (EP) o neuronas,
interconectados a travs de canales unidireccionales llamados conexiones y que tiene
asociadas reglas de aprendizaje. Cada EP tiene una salida nica que se distribuye sobre un
nmero de conexiones bilaterales.
82
funcin de transferencia.
a) Red simple
x1
x2 y1
xn ym
b) Redes multicapas
83
Retropropagacin del error
J
I wi,j wj,k
xp1 K
yp1
+ -
xp2
ypM
xpN
Capa de
Capa de Salida
Entrada Capa
Oculta
Flujo de Seales
a) modelo lineal
La activacin de la neurona es igual a la entrada total.
c) modelo continuo
La salida est relacionada no linealmente con la entrada. Una de las funciones ms usadas
es la sigmoide.
1
si =
1 + e hi
Note que esta funcin transforma el valor de la entrada total a valores reales entre 0 y 1.
85
5.2 Algoritmo de aprendizaje
El objetivo del aprendizaje es el proceso de clculo de los pesos de las conexiones. Cinco
rasgos caracterizan este paradigma:
el algoritmo usado
el criterio de parada
la forma en que los datos de entrenamiento se presentan a la red
el tipo de aprendizaje
la regla de aprendizaje
Varios algoritmos de aprendizaje han sido usados. Entre ellos, el gradiente descendente
(tambin llamado algoritmo de retropropagacin de errores o backpropagation). Otro
mtodo usado es el del gradiente conjugado. Hay varios mtodos basados en bsquedas
aleatorias, y finalmente se ha propuesto un algoritmo gentico.
Ns
e
2
Min Ep = i
donde ei = d - y, d - valor deseado
i =1
Ns - Cantidad de neuronas de salida
Np Ns
Min E = e ij
2
Np - Cantidad de patrones
j =1 i =1
86
Sistemas Dinmicos
Para distinguir las arquitecturas de RN que incluyan alguna representacin del tiempo las
denominaremos Redes Neuronales Dinmicas. La principal diferencia es que las RN para la
identificacin de sistemas dinmicos utilizan un lazo de realimentacin(feedback) con las
salidas anteriores de la planta, considerndolas como otras entradas adicionales a la red,
adems de las entradas ya existentes.
Los dos esquemas tradicionales de identificacin para sistemas dinmicos, llamados serie
paralelo y paralelo, son representados en las figuras 5.4 y 5.5 respectivamente.
yp(k+1)
Planta
u(k) +
e(k)
-
87
RN ym(k+1)
yp(k+1)
Planta
u(k) +
e(k)
-
RN ym(k+1)
Primero se utiliza el programa que genera los datos de salida de un sistema ante una entrada
de tipo seudo aleatoria. El programa se lista a continuacin:
% Programa GeneraDatos1
% permite generar los datos que luego sern empleados
% en el entrenamiento de la red.
ts = input('Tiempo de muestreo = ');
tstop = 10 % Tiempo final de simulacin
DatosEntr1
% La planta est representada por un sistema de primer orden
% y se generan la entrada, la entrada retrasada un paso, la
% salida y la salida retrasada un paso.
sim('DatosEntr1')
% Se simula el modelo Simulink DatosEntr1
88
Fig. 5.6 Esquema Simulink para generar los datos del ejemplo 1
Se usa para generar los datos un generador de seales con una seal aleatoria de amplitud 3
y frecuencia de 1 Hz. Los retrasos de transporte utilizan el valor de ts como tiempo de
retraso (time delay).
Una vez generados los datos se puede utilizar el siguiente programa en Matlab para
entrenar la Red Neuronal.
% Programa EntrenaRed1
% Genera una red feedforward con 3 entradas, 20 neuronas en la capa
% oculta y una neurona de salida. Las neuronas ocultas trabajan con
% una funcin de activacin tansig y la de salida con purelin. El
% mtodo de entrenamiento empleado es el Levenberg - Marquart.
% ts tiempo de muestreo.
red = newff([-2 2;-2 2;-1 1],[15,1],{'tansig','purelin'},'trainlm');
% Se usa la entrada, la entrada retrasada un paso y la salida retrasada
% un paso. Se pueden obtener con GeneraDatos1
p = [u'; u1';y1'];
% Definicin de algunos parmetros de aprendizaje
red.trainParam.show = 50; % Mostrar cada 50 iteraciones
red.trainParam.goal = 0.0001; % Error de salida
red.trainParam.epochs = 100; % Total de pocas
% Entrenar la Red Neuronal.
red = train(red,p,y');
yred = sim(red,p); % Se simula la red entrenada
figure(1)
89
plot(yred)
hold
plot(y','red')
gensim(red,-1)
% Genera el bloque Simulink que representa la Red Neuronal
% entrenada y con el -1 se indica que se puede modificar ts.
Con el siguiente esquema Simulink (Fig. 5.7) se verifica el trabajo de la Red Neuronal
entrenada ante diferentes seales de entrada y se puede observar si la misma identifica
correctamente o no el sistema bajo estudio.
En este esquema es preciso indicar que en el bloque para obtener la seal escaln se toman
como parmetros el valor final igual a 0.6 y el tiempo de muestreo ts. Adems el bloque
que corresponde a la Red Neuronal es el que se obtuvo con el programa EntrenaRed1. De
igual forma es preciso sealar que los parmetros para la simulacin deben ser los
siguientes: tiempo de parada (tstop), tamao del paso (ts) y se recomienda que se utilice el
mismo mtodo de solucin, que en este caso fue Runge-Kutta 4to. Orden.
90
Fig. 5.8 Respuesta de la planta y la red ante un escaln
91
6. Algunas recomendaciones para la identificacin
En la etapa de anlisis debe tenerse en cuenta que aunque el sistema sea no lineal,
puede ser til adoptar un modelo lineal con el objetivo de estudiar su
comportamiento ante variaciones relativamente pequeas sobre un punto de trabajo.
92
Una alternativa de la etapa de anlisis es imponer el orden del sistema, otra es
dejarlo libre a determinar segn las medidas.
Es importante validar la concordancia entre los resultados del anlisis del modelo
matemtico obtenido, y los resultados del estudio experimental del sistema fsico.
Debe tenerse presente que un modelo lineal de parmetros concentrados, puede ser
vlido operando a baja frecuencia y no serlo a frecuencias altas, ya que las
propiedades despreciadas de los parmetros distribuidos pueden volverse un factor
importante en el comportamiento dinmico del sistema.
93
Utilizar un escaln como seal de prueba para la identificacin de sistemas tiene
como ventaja la sencillez de la generacin de dicha funcin, y como desventaja que
introduce una alteracin relativamente grande en el comportamiento del sistema; en
procesos industriales esto no siempre es permisible.
Las seales de prueba escaln y pulso slo pueden lograrse en la prctica de forma
aproximada, a los efectos de identificar un sistema, esta aproximacin es adecuada,
si la constante de tiempo de dichas seales es menor que la dcima parte de la
menor constante de tiempo que se requiere determinar en la identificacin.
94
La aplicacin del Mtodo de integracin gradual a sistemas de 1ro., 2do. y 3er.
rdenes permite obtener resultados satisfactorios, obtenindose errores promedio
muy pequeos; si las seales disponibles son muy ruidosas se recomienda darle
tratamiento preliminar o filtrado, de modo que reflejen ms exactamente el
comportamiento real del sistema.
95
Anexo # 1
%Mtodo de Oldenbourg Sartorius
%Calcula la pendiente y el punto de la tangente
%a la respuesta
%Deben tomarse del workspace la salida,
%la entrada y el tiempo
%La seal de salida debe almacenarse en ys
%El tiempo en t
%La seal de entrada en us
ys=y.signals.values;
t=y.time;
us=u.signals.values;
tm=t(2)-t(1);%Intervalo de muestreo
long=length(t);
tf1=t(long);%valor final de t
i=0;
tp=-tm;
p=1;
while p>0
tp=tp+tm;
i=i+1;
pendi(i)=ys(i+1)-ys(i);
pendi(i+1)=ys(i+3)-ys(i+2);
p=pendi(i+1)-pendi(i);
%disp(p);
end
ti=tp;%ste es el valor de t donde ocurre el punto de inflexin
disp(['El punto de inflexin ocurre en t= ',num2str(ti)]);
%pause
tc=0:tm:tp;
longtc=length(tc);
yp=ys(longtc);
pend=(ys(longtc)-ys(longtc-1))/tm;
%Determinaremos ahora Tc
Tc1=(ys(long)-yp+pend*ti)/pend;
Tc=Tc1-ti;
%Clculo de Ta
Ta0=(ys(1)-yp+pend*ti)/pend;
Ta=Tc1-Ta0;
%Creacin de la funcin T2/TA=F(T1/TA)
T1TA=0:0.1:1;
T2TA=[1 0.73 0.57 0.44 0.34 0.25 0.18 0.12 0.07 0.03 0];
f=polyfit(T1TA,T2TA,6);%Se crea un polinomio de grado 6
Tg=[];
for i=0:0.01:1,
Tg= [Tg polyval(f,i)];
end
abc=0:0.01:1;
a=0;
j=0;
t2tag=[];
hf=figure('NumberTitle','off','ToolBar','figure',...
'Name','Identificacin por el Mtodo de Olderbour Sartorius');
for i=0:0.01:1,
j=j+1;
t2tag=[t2tag Tc/Ta-i];
96
if (Tc/Ta-i)>Tg(j)
a=1;
end
end
if a==0
plot(abc,t2tag,abc,Tg);
grid;
warndlg('No hay interseccin','Advertencia ')
else
h1 = uicontrol('Parent',hf, ...
'Units','points', ...
'BackgroundColor',[0.8 0.8 0.8], ...
'ListboxTop',0, ...
'Position',[ 20.25 63.75 140.5 19.5 ], ...
'String',['El punto de inflexin ocurre en t= ',num2str(ti)], ...
'Style','text', ...
'Tag','StaticText2');
axes('Position',[ 0.06 0.35 0.40 0.57 ])
plot(abc,t2tag,'b',abc,Tg,'r');
grid;
axis([0 1 0 1]);
title('Grfica de OS')
Tg1r=Tg-t2tag;
Tg1=find(abs(Tg1r)==min(abs(Tg1r)));
T1Ta=Tg(Tg1);
T2Ta=abc(Tg1);
T1=Tg(Tg1)*Ta;
T2=abc(Tg1)*Ta;
h1 = uicontrol('Parent',hf, ...
'Units','points', ...
'BackgroundColor',[0.8 0.8 0.8], ...
'ListboxTop',0, ...
'Position',[ 20.25 53.75 100.5 19.5 ], ...
'String',['T1 = ',num2str(T1)], ...
'Style','text', ...
'Tag','StaticText2');
h1 = uicontrol('Parent',hf, ...
'Units','points', ...
'BackgroundColor',[0.8 0.8 0.8], ...
'ListboxTop',0, ...
'Position',[ 20.25 43.75 100.5 19.5 ], ...
'String',['T2 = ',num2str(T2)], ...
'Style','text', ...
'Tag','StaticText2');
num=[(max(ys)-ys(1))/us(long)];
den=[T1*T2 T1+T2 1];
sal=us(1)*step(num,den,t);
axes('Position',[ 0.53 0.35 0.4 0.57 ])
plot(t,ys,'b',t,sal,'r');
grid;
axis([0 max(t) 0 max(sal)+0.1*max(sal)]);
title('Respuestas del Sistema y el Modelo')
legend('Resp. del sistema', 'Resp. del modelo',4);
%*******************************************
97
h1 = uicontrol('Parent',hf, ...
'Units','points', ...
'BackgroundColor',[0.8 0.8 0.8], ...
'ListboxTop',0, ...
'Position',[271.5 70.25 120 15], ...
'String','Funcin de Transferencia', ...
'Style','text', ...
'Tag','StaticText7');
h1 = uicontrol('Parent',hf, ...
'Units','points', ...
'BackgroundColor',[0.8 0.8 0.8], ...
'ListboxTop',0, ...
'Position',[306 50 45 15], ...
'String',poly2str(num,'s'), ...
'Style','text', ...
'Tag','StaticText6');
h1 = uicontrol('Parent',hf, ...
'Units','points', ...
'BackgroundColor',[0.8 0.8 0.8], ...
'ListboxTop',0, ...
'Position',[ 267.75 38 132 15 ], ...
'String','_____________________________', ...
'Style','text', ...
'Tag','StaticText9');
h1 = uicontrol('Parent',hf, ...
'Units','points', ...
'BackgroundColor',[0.8 0.8 0.8], ...
'ListboxTop',0, ...
'Position',[275.25 15.5 114.75 15], ...
'String',poly2str(den,'s'), ...
'Style','text', ...
'Tag','StaticText8');
%*******************************************
end
98
Anexo # 2
%******************************************************
%*********************************************************
plot(t,ys,'r');
hold on
ysm=ue(1)*step(g,t);
plot(t,ysm,'b');
grid;
legend('Respuesta del sistema','Respuesta del modelo');
100
Anexo # 3
101
Anexo # 4
%Identificacin por el mtodo de correlacin
clf
ys=y.signals.values;
ue=u.signals.values;
t=y.time;
tm=t(2)-t(1);
ir=cra([ys ue],450,10,0);
close
Lir=length(ir);
t1=0:tm:(Lir-1)*tm;
h0 = figure('ToolBar','figure','Position',...
[ 100 51 560 477 ],'NumberTitle','off','Name',....
'Identificacin de un sistema por el mtodo de corelacin');
axes('position',...
[0.119642857142857 0.61625 0.775 0.310267857142857]);
plot(t1,ir)
title('Respuesta a impulso obtenida')
axis([0 t1(end)/2 0 1.1*max(ir)])
[n,d]=imp2sys(ir);
sysd=tf(n,d,tm);
sysc=d2c(sysd)
ym=step(sysc,t);
axes('position',...
[0.123214285714286 0.205714285714286 0.775 0.321428571428571]);
plot(t,ys,'r',t,ym,'b')
axis([0 t(end)/2 0 1.1*max(ys)])
legend('Respuesta del sistema','Respuesta del modelo')
title('Respuestas a escaln del sistema y el modelo')
%***************************************************************
h1 = uicontrol('Parent',h0, ...
'Units','points', ...
'BackgroundColor',[0.8 0.8 0.8], ...
'ListboxTop',0, ...
'Position',[151.5 40.25 120 15], ...
'String','Funcin de Transferencia', ...
'Style','text', ...
'Tag','StaticText7');
h1 = uicontrol('Parent',h0, ...
'Units','points', ...
'BackgroundColor',[0.8 0.8 0.8], ...
'ListboxTop',0, ...
'Position',[ 114.75 17.25 192.75 24.75 ], ...
'String',poly2str(sysc.num{1},'s'), ...
'Style','text', ...
'Tag','StaticText6');
h1 = uicontrol('Parent',h0, ...
'Units','points', ...
'BackgroundColor',[0.8 0.8 0.8], ...
'ListboxTop',0, ...
'Position',[ 147.75 18 132 15 ], ...
'String','_____________________________', ...
'Style','text', ...
102
'Tag','StaticText9');
h1 = uicontrol('Parent',h0, ...
'Units','points', ...
'BackgroundColor',[0.8 0.8 0.8], ...
'ListboxTop',0, ...
'Position',[135.25 5.5 140.75 15], ...
'String',poly2str(sysc.den{1},'s'), ...
'Style','text', ...
'Tag','StaticText8');
%*******************************************************************
103
Anexo # 5
%Mtodo de deconvolucin por mnimos cuadrados
ue=u.signals.values;
ys=y.signals.values;
t=y.time;
clf
tm=t(2)-t(1);
%Hasta aqu pasamos al workspace las mediciones
%de la entrada y la salida.
int=t(2)-t(1);
n=length(ue);
a=zeros(n);
for i=1:n,
k=i;
for j=1:i,
a(i,j)=ue(k);
k=k-1;
end
end
%Hemos formado la matriz A
h=a\ys;
h=h/int;
plot(t,h);
grid
[n,d]=imp2sys(h);
sysd=tf(n,d,int)
sysc=d2c(sysd)*tm
104
Anexo # 6
function [A,B]=anaintg1(Ut,Yt,n,Delta)
Matriz_U = Ut;
Matriz_Y = Yt;
n=length(Yt);
if rem(n,2)>0,
Matriz_U=[Matriz_U;Matriz_U(length(Matriz_U))];
Matriz_Y=[Matriz_Y;Matriz_Y(length(Matriz_Y))];
n=n+1;
end,
Matriz_J=simpsom(n);
Matriz_J = (Delta/12)*Matriz_J;
Matriz_1C = Matriz_J*Matriz_Y;
Matriz_2C = Matriz_J*Matriz_U*(-1);
Matriz_P=[Matriz_1C Matriz_2C];
Matriz_Y= (-1)*Matriz_Y;
Matriz_Coef=Matriz_P\Matriz_Y;
A = Matriz_Coef(1);
B = Matriz_Coef(2);
105
function [A,B,C,D]=anaintg2(Ent,Sal,Delta)
Matriz_U=Ent;
Matriz_Y=Sal;
n=size(Sal,1);
if rem(n,2)>0,
Matriz_U=[Matriz_U;Matriz_U(length(Matriz_U))];
Matriz_Y=[Matriz_Y;Matriz_Y(length(Matriz_Y))];
n=n+1;
end,
Matriz_J=simpsom(n);
Matriz_J = (Delta/12)*Matriz_J;
Matriz_J2= Matriz_J*Matriz_J;
Matriz_1C = Matriz_J*Matriz_Y;
Matriz_2C = Matriz_J2*Matriz_Y;
Matriz_3C = (-1)*(Matriz_J2*Matriz_U);
Matriz_4C = (-1)*Matriz_J*Matriz_U;
Matriz_P = [Matriz_1C Matriz_2C Matriz_3C Matriz_4C];
Matriz_T= (-1)*Matriz_Y;
MatC = Matriz_P\Matriz_T;
A=MatC(1);
B=MatC(2);
C=MatC(3);
D=MatC(4);
function [MatJ]=simpsom(n)
matriz_J=zeros(n,n-1);
hw = processbar(0,'Identificando...');
tn=n+n;
in=n;
for i=1:n,
if rem(i,2)
for j=1:i,
if rem(j,2)
matriz_J(i,j)=16;
else
matriz_J(i,j)=8;
end
end
else
for j=1:i,
if rem(j,2)
matriz_J(i,j)=16;
else
matriz_J(i,j)=8;
end
end
end
processbar(i/tn)
end
for i=1:n,
for j=1:n,
if rem(i,2)
matriz_J(i,i+1)=-1;
matriz_J(i,i)=8;
106
if i-1
matriz_J(i,i-1)=9;
end
else
matriz_J(i,i)=4;
end
end
processbar((in+1)/tn)
in=in+1;
end
close(hw);
matriz_J(:,n)=[];
Columna1=4*ones(n,1);
Columna1(1)=5;
MatJ=[Columna1 matriz_J];
107
Anexo # 7
%Se hace la identificacin con el toolbox de Matlab
%Estructura ARX
ys=y.signals.values;
ue=u.signals.values;
t=y.time;
im=t(2)-t(1);
n=length(ys);
z=[ys ue];
th=arx(z,[3 3 1]);
th=sett(th,im);
tc=thd2thc(th);
[num,den]=th2tf(tc);
ft=tf(num,den);
zp=zpk(ft);
ym=lsim(ft,ue,t);
ema=mean(abs(ym-ys));
h1 = uicontrol('Parent',h0, ...
'Units','points', ...
'BackgroundColor',[0.8 0.8 0.8], ...
'ListboxTop',0, ...
'Position',[ 13.5 84 135 19.5 ], ...
'String',['El error medio es ' num2str(ema)], ...
'Style','text', ...
'Tag','StaticText3');
h1 = uicontrol('Parent',h0, ...
'Units','points', ...
'BackgroundColor',[0.8 0.8 0.8], ...
'ListboxTop',0, ...
'Position',[ 205.5 88.5 120 15 ], ...
'String','Funcin de Transferencia', ...
'Style','text', ...
'Tag','StaticText7');
h1 = uicontrol('Parent',h0, ...
'Units','points', ...
'BackgroundColor',[0.8 0.8 0.8], ...
'ListboxTop',0, ...
'Position',[ 134.25 65.25 257.25 15.75 ], ...
'String',poly2str(num,'s'), ...
'Style','text', ...
'Tag','StaticText6');
h1 = uicontrol('Parent',h0, ...
'Units','points', ...
'BackgroundColor',[0.8 0.8 0.8], ...
'ListboxTop',0, ...
'Position',[ 147.75 48.75 234.75 20.25 ], ...
'String','__________________________________________', ...
'Style','text', ...
'Tag','StaticText9');
108
h1 = uicontrol('Parent',h0, ...
'Units','points', ...
'BackgroundColor',[0.8 0.8 0.8], ...
'ListboxTop',0, ...
'Position',[ 116.25 33.75 288.75 15 ], ...
'String',poly2str(den,'s'), ...
'Style','text', ...
'Tag','StaticText8');
plot(t,ym,'b',t,ys,'r');
legend('Respuesta del modelo','Respuesta del sistema')
grid;
109
Anexo # 8
%Identifiacin de sistemas multivariables (2 entradas y 2 salidas)
%por el mtodo arx
clf
ys=y.signals.values;
ue=u.signals.values;
t=y.time;
tm=t(2)-t(1);
z=[ys ue];
na=[2 2;2 2];
nb=[2 2;2 2];
nk=[0 0;0 0];
nn=[na nb nk];
th=arx(z,nn);
th=sett(th,tm);
tc=thd2thc(th);
[A,B,C,D,K,X0]=th2ss(tc);
sysss=ss(A,B,C,D);
[Y,T] = lsim(sysss,ue,t);
figure(1)
plot(T,Y(:,1),'b',t,ys(:,1),'r')
legend('Salida 1 del Modelo','Salida 1 del Sistema')
grid on
figure(2)
plot(T,Y(:,2),'b',t,ys(:,2),'r')
grid on
legend('Salida 2 del Modelo','Salida 2 del Sistema')
er1=mean(abs(Y(:,1)-ys(:,1)));
er2=mean(abs(Y(:,2)-ys(:,2)));
disp(['El error para la salida 1 es ',num2str(er1)]);
disp(['El error para la salida 2 es ',num2str(er2)]);
disp('Comparemos los vectores propios del sistema y el modelo')
disp('Del modelo')
eig(A)
disp('Del sistema')
eig([0 1;-25 -4])
110
Anexo # 9
clf
ys=y.signals.values;
ue=u.signals.values;
t=y.time;
tm=t(2)-t(1);
z=[ys ue];
na=[2 2;2 2];
nb=[2 2;2 2];
nk=[0 0;0 0];
nn=[na nb nk];
th=arx(z,nn);
th=sett(th,tm);
tc=thd2thc(th);
[A,B,C,D,K,X0]=th2ss(tc);
sysss=ss(A,B,C,D);
[Y,T] = lsim(sysss,ue,t);
subplot(211)
plot(T,Y(:,1),'b',t,ys(:,1),'r')
legend('Salida 1 del Modelo','Salida 1 del Sistema')
grid on
subplot(212)
plot(T,Y(:,2),'b',t,ys(:,2),'r')
grid on
legend('Salida 2 del Modelo','Salida 2 del Sistema')
er1=mean(abs(Y(:,1)-ys(:,1)));
er2=mean(abs(Y(:,2)-ys(:,2)));
disp(['El error para la salida 1 es ',num2str(er1)]);
disp(['El error para la salida 2 es ',num2str(er2)]);
disp('Vector propio del modelo')
eig(A)
111
Bibliografa
[2] Ogata, K., Modern Control Engineering, Ediciones del Castillo, 1998.
[3] Ollero, A., Control por Computador. Descripcin interna y diseo ptimo, Editorial
Marcombo, 1991.
112