Professional Documents
Culture Documents
TrabajodeDiplomaparaoptarpor
elttulodeIngenieroen
Automtica
Estudiodetcnicasde
controladaptativopara
elcontroldeprocesos
Autor:
YariannaValdiviaVazco
Tutor:
Dra.SussetGuerraJimnez
CiudaddelaHabana,Cuba
2010
D
Deecclla
arra
acciin
nd
dee A
Au
uttoorriid
da
ad
d
Por este medio doy a conocer que soy el nico autor de este trabajo y autorizo al Instituto
Superior Politcnico Jos Antonio Echeverra a que hagan del mismo el uso que
estimen pertinente.
Autor:
____________________________
Yarianna Valdivia Vazco
Tutor:
____________________________
Dra. Susset Guerra Jimnez
II
III
D
Deed
diicca
attoorriia
a
A mami por ser la persona
ms importante en el mundo para m.
A Kilki por ser mi inspiracin y quererme tanto.
A Yami por los besos y abrazos.
A mis sobrinos Rolandito, Alejandro y Laury
por alumbrar y alegrar mi vida.
A ta Glorita y to Eddy por tanto cario.
IV
A
Aggrra
ad
deecciim
miieen
nttooss
A mami por siempre estar a mi lado
y luchar tanto por m.
A Kilki por su dedicacin y preocupacin
an con un ocano de distancia.
A mi hermana mayor, mis sobris y mis tos
por estar atentos a cada paso que doy.
A Charo y Yasser por acogerme
y por tanta paciencia.
A mis amigas Misle y Roci
por preguntar siempre cmo estaban las cosas.
A mis amigos Daniley y Osmel por cada risa
que compartimos an en los momentos ms difciles.
A MiRei por confiar en m.
A Mary, Rey y Odalis
por ayudarme cuando lo necesit.
A mi tutora por sus enseanzas y experiencias.
A Laura, Yiriam y Nen por su ayuda desinteresada.
A todos mis compaeros de carrera
por su preocupacin y apoyo.
R
Reessu
um
meen
n
En el contexto industrial existen procesos cuyos modelos presentan parmetros
variantes en el tiempo o son desconocidos. En ambos casos no se puede
utilizar para controlar el proceso un controlador convencional, es decir, de
parmetros fijos, debido a que se debe ajustar dinmicamente teniendo en
cuenta los parmetros que varan.
Para dar solucin a estos sistemas que requieren de tratamiento especial por
su comportamiento y mantener una ejecucin consistente es que se han
desarrollado las tcnicas de control adaptativo.
En este trabajo de diploma se abordan, en general, las tcnicas adaptativas,
enfatizando en dos de ellas: Control Adaptativo segn Modelo de Referencia,
en ingls Model-Reference Adaptive Control (MRAC) y Regulador Self-tuning,
en ingls Self-Tuning Regulator (STR) mediante la aplicacin de estas al
control de la velocidad y posicin de un accionamiento elctrico de corriente
continua. Se utiliza una librera de control adaptativo que no forma parte de los
toolbox de Matlab para realizar los clculos de los controladores adaptativos y
la simulacin de los sistemas diseados obteniendo resultados adecuados. La
utilizacin de esta librera es de gran importancia puesto que el Matlab no
cuenta con ninguna herramienta para estos fines.
VI
ndice
1
Introduccin
Captulo 1. Estado del Arte de las Tcnicas de Control Adaptativo
1.1 Estado del Arte
1.2 Por qu control adaptativo?
1.3 Efectos de las variaciones en los procesos
1.4 Control Adaptativo Directo e Indirecto
1.5 Esquemas de control adaptativo
1.5.1 Ganancia programada
1.5.2 Sistema Adaptativo segn Modelo de Referencia (MRAS)
1.5.3 Reguladores Self-tuning (STR)
1.6 Aplicaciones
1.6.1 Ajuste automtico
1.6.2 Programacin de ganancia
1.6.3 Adaptacin continua
1.6.4 Productos industriales
1.7 Ejemplo de aplicacin
6
7
12
14
17
19
21
23
24
26
26
27
27
28
29
32
33
35
60
61
62
63
65
92
93
94
97
43
51
70
83
98
101
103
108
Conclusiones
Recomendaciones
Bibliografa
Anexos
VII
Introduccin
Introduccin
En el lenguaje diario, adaptar significa cambiar un comportamiento conforme a
las nuevas circunstancias. Consecuentemente, un controlador adaptativo es
aquel que modifica su comportamiento en respuesta a cambios dinmicos en el
proceso y al carcter de las perturbaciones.
Un ingeniero en control tiene que conocer acerca de los sistemas adaptativos
porque estos poseen propiedades muy tiles, las cuales tienen usos
beneficiosos a la hora de disear sistemas de control con mejores ejecuciones y
funcionalidades.
El control adaptativo proporciona mecanismos de adaptacin que ajustan el
controlador para que un sistema con incertidumbres paramtricas, estructurales
y ambientales logre el comportamiento deseado del sistema. El deterioro de
componentes causa incertidumbre paramtrica, el fallo de componentes lleva a
la incertidumbre estructural y los ruidos externos son tpicas incertidumbres
ambientales. Tales incertidumbres frecuentemente aparecen en mecanismos de
aviones y automviles, dispositivos electrnicos y procesos industriales. [1]
El control adaptativo ha tenido varios logros en la teora y en las aplicaciones
debido a su desarrollo para dar solucin a varios problemas que requeran de
tratamiento especial debido a su comportamiento. Algunas de las aplicaciones
tpicas del control adaptativo son: control de temperatura, control en un reactor
qumico, control de un secador de pulpa, control del rodamiento de un molino,
control de automviles, control de la direccin de un barco, control de la presin
sangunea, control de un corazn artificial, control de un robot.
Un sistema tpico de control adaptativo consiste en un sistema (proceso) que va
a ser controlado (el cual es llamado planta y cuyos parmetros son
desconocidos para el control adaptativo), un controlador con parmetros y una
ley de adaptacin para ajustar los parmetros del controlador para conseguir el
comportamiento deseado del sistema.
Introduccin
Situacin problema
Estudiar las tcnicas de Control Adaptativo: Sistema Adaptativo segn Modelo
de Referencia, en ingls Model-Reference Adaptive System (MRAS), Regulador
Self-tuning (STR) fundamentalmente, para profundizar en su conocimiento y
controlar procesos de parmetros desconocidos y/o variantes en el tiempo.
Utilizar el Matlab para simular las estrategias propuestas en aplicaciones
numricas o reales mediante una herramienta creada para este fin.
Objetivo general
Estudiar las tcnicas de Control Adaptativo MRAS y Self-tuning y consolidar el
conocimiento sobre estas mediante la simulacin y el uso de una herramienta de
apoyo para la implementacin de estos sistemas.
Objetivos especficos
1.
2.
herramienta creada.
Hiptesis
Existen procesos cuyos modelos poseen parmetros no conocidos, donde las
tcnicas de identificacin experimental y modelado no caracterizan el
comportamiento del sistema en todas sus condiciones de operacin. Por otra
parte otros procesos presentan algunos parmetros variantes en el tiempo,
considerando la variacin de los parmetros lenta. Para controlar estos procesos
no se puede utilizar un controlador de parmetros fijos, pues el ajuste debe
Introduccin
realizarse dinmicamente en funcin de los parmetros del proceso. Las
tcnicas de control adaptativo ofrecen una alternativa de solucin para esta
clase de sistemas. Para la simulacin de estos no existe una herramienta en el
software Matlab, por lo que se desarrollar una como apoyo para su
implementacin y comprensin.
adaptativo.
2.
tuning.
3.
estabilidad de Lyapunov.
4.
5.
6.
controlador.
7.
8.
Alcance de la investigacin
Material de apoyo a la docencia y utilizacin de algoritmos y herramientas
adaptativas en futuras investigaciones.
Introduccin
aptulo1
EstadodelArtedelasTcnicasdeControlAdaptativo
de
incorporar
un
modelo
de
adaptacin
de
ruido
interno. [7]
una
diversidad
de
condiciones
de
funcionamiento
10
es
que
para
muchos
procesos
tcnicos
complejos,
el
11
pre-
12
13
14
v = f (u ) = u4
u0
Vm
dc ( t )
= q ( t ) ( cin ( t ) c ( t ) )
dt
donde
Vd
q (t )
15
T=
Vm
q (t )
Para un flujo fijo, es decir, cuando q(t) es constante, el proceso tiene la funcin
transferencial
G0 ( s ) =
e s
1 + sT
16
17
18
19
con
20
21
22
23
d
e
= e
dt
En esta ecuacin, e = y - ym denota el error del modelo, es un parmetro del
controlador y e/ es la derivada sensitiva del error con respecto al parmetro
.
ejemplos de simulacin.
parmetros del proceso son actualizadas y los parmetros del controlador son
obtenidos de la solucin de un problema de diseo usando los parmetros
estimados. [12]
24
automticamente
ajusta
sus
parmetros
para
obtener
las
25
1.6 Aplicaciones
El nmero de aplicaciones ha aumentado drsticamente con el advenimiento de
los microprocesadores, los cuales han hecho la tecnologa costosa y efectiva.
Hoy en da un gran nmero de lazos de control industrial estn bajo control
adaptativo como ya se ha mostrado en este captulo. En la base del producto y
sus usos, est claro que las tcnicas adaptativas pueden ser usadas de muchas
maneras diferentes.
26
27
rpidamente los
28
1
K
Gm ( s ) =
2
TaTm s + (Tm + Ta ) s + 1 +
Donde:
Ta es la constante de tiempo de la armadura del motor que evala la rapidez
con que vara la corriente si la velocidad permanece constante.
Tm es la constante de tiempo electromecnica del motor que evala la rapidez
con que vara la velocidad si se desprecia la constante de tiempo de la
armadura. Esta constante est relacionada con K que es el denominado
coeficiente de acoplamiento electromecnico.
29
1
KTm
Gm ( s ) =
1+
s+
Tm
En el caso del control de la velocidad, el proceso se caracteriza por la funcin
transferencial:
G ( s) =
b
s+a
(1.1)
G ( s) =
b
s ( s + a)
(1.2 )
30
31
aptulo2
SistemasAdaptativossegnModelodeReferencia(MRAS)
2.1 Introduccin
En el epgrafe 1.5.2 se explican las caractersticas ms generales del Sistema
Adaptativo segn Modelo de Referencia. A continuacin se exponen, con ms
detalles, los principales elementos que conforman a esta tcnica adaptativa
(figura 2.1) como base para simular un ejemplo real y observar su
comportamiento.
33
34
Y (s)
k
= kG ( s ) =
U (s)
s +1
Donde el parmetro k es desconocido y se escoge como k=1.
35
Y (s )
= ko G (s )
Uc (s )
El parmetro k0 se asumir con valor 2.
Para simular el ejemplo se crear una librera que contiene cuatro bloques
(figura 2.2): un generador de referencia que da la seal de comando, la funcin
transferencial de la planta, la funcin transferencial del modelo y el mecanismo
de adaptacin.
36
u = uc
37
cuando k no es conocida.
El MRAC comienza definiendo el error e, el cual es simplemente la diferencia
entre la salida de la planta y la salida del modelo de referencia.
e = y ym = kG ( s ) uc ko G ( s ) uc =
1
2
uc
uc
s +1
s +1
1
J ( ) = e2 ( )
2
Para encontrar cmo se actualiza el parmetro , la ecuacin necesita estar en
funcin de la variacin en . Si la meta es minimizar este costo en relacin al
error, hay que cambiar los parmetros en direccin al gradiente negativo de J.
Este cambio en J es asumido para ser proporcional al cambio en . Entonces la
derivada de es igual al cambio negativo en J.
38
d
J
e
=
= e
dt
J ( ) = e( )
Obteniendo mediante el mtodo del gradiente:
d
e
=
sign (e )
dt
c
1, e > 0
donde sign ( e ) = 0, e = 0
1, e < 0
39
d
e
= sign
sign ( e )
dt
La versin en tiempo discreto de este algoritmo es usado en las
telecomunicaciones, requiriendo una simple implementacin y rpidos clculos.
En este caso la funcin de costo escogida es:
1
d
e
J ( ) = e 2 ( )
= e
2
dt
Para determinar la regla de ajuste, la derivada sensitiva est dada en trminos
de la salida del modelo:
e
k
= kG ( s ) uc =
ym
ko
Finalmente, la regla MIT es aplicada para dar una expresin que ajuste el
parmetro . Las constantes k y k0 estn combinadas dentro de (gamma).
d
k
ym e = ym e
=
dt
ko
( 2.1)
40
41
42
dy
= ay + bu
dt
Donde u es la variable de control,
( 2.2 )
Y ( s ) 0.5
=
U ( s) s +1
Se desea obtener el sistema en lazo cerrado descrito por:
dym
= am ym + bmuc
dt
Donde uc es la seal de referencia externa y am y bm son parmetros constantes.
Estos son escogidos como am=bm=2:
Ym ( s )
2
=
Uc ( s) s + 2
Con la herramienta Simulink del Matlab, se crear una librera (figura 2.8) para
hacer ms fcil el diseo de este sistema. Esta contiene cinco bloques que
43
44
u ( t ) = 1uc ( t ) 2 y ( t )
( 2.3)
dy
= ( a + b 2 ) y + b1 uc
dt
( 2.4 )
1 = 10 =
2 = 20 =
bm
b
( 2.5)
am a
b
45
e = y ym
Donde y es la salida del sistema a lazo cerrado. De la ecuacin 2.4 se obtiene:
y=
b1
uc
s + a + b 2
e
b
uc
=
1 s + a + b 2
e
b 21
b
=
u =
y
2 c
2
s
+
a
b
+
( s + a + b 2 )
2
Estas frmulas no pueden ser usadas directamente porque los parmetros del
proceso a y b no son conocidos. Es necesario hacer aproximaciones.
Una posible aproximacin est basada en la observacin de que
s + a + b20 = s + am
cuando los parmetros dan un modelo de seguimiento perfecto.
46
s + a + b 2 s + am
la cual es razonable cuando los parmetros se acercan a sus valores correctos.
Con esta aproximacin se obtienen las siguientes ecuaciones para la
actualizacin de los parmetros del controlador:
d1
= m uc e
dt
s + am
( 2.6 )
d 2
= m ye
dt
s + am
( 2.7 )
47
Figura 2.12. Salida del proceso y salida del modelo de un sistema de primer
orden usando MRAS.
Como se puede observar en la figura 2.12, la seal de salida del proceso sigue a
la seal de salida del modelo, comprobndose as que el error converge a cero.
48
49
50
51
52
u = 1 uc 2 y
Se introduce el error:
e = y ym
Para tratar que el error sea pequeo hay que derivar la ecuacin del error,
obteniendo:
de
= am e ( b 2 + a am ) y + ( b1 bm ) uc
dt
Note que el error converge a cero si los parmetros son iguales a los valores
dados por la ecuacin 2.5. Se intentar construir un mecanismo de ajuste de
parmetros que lleve a los parmetros 1 y 2 a sus valores deseados. Para este
53
1
1
1
2
2
V ( e, 1 , 2 ) = e 2 + ( b 2 + a am ) + ( b1 bm )
2
b
b
Esta funcin es cero cuando e es cero y los parmetros del controlador son
iguales a los valores correctos segn la ecuacin 2.4.
Para la funcin de
dV
de 1
d 1
d
= e + ( b 2 + a am ) 2 + ( b1 bm ) 1
dt
dt
dt
dt
= am e 2 +
+
d 2
ye
dt
( b 2 + a am )
d1
+ uc e
dt
( b1 bm )
d1
= uc e
dt
(2.8)
d 2
= ye
dt
(2.9)
Tenemos
dV
= am e 2
dt
54
son
d
=e
dt
Donde es un vector de parmetros y
= [ u c
y ]T
55
am
[ uc
s + am
y ]T
Figura 2.19. Salida del proceso y salida del modelo de un sistema de primer
orden usando teora de Lyapunov.
Como se puede observar en la figura 2.19, la seal de salida del proceso sigue a
la seal de salida del modelo, comprobndose as que el error converge a cero.
56
57
Figura 2.21. Parmetro Theta 1 (1) para el MRAS de primer orden usando
teora de Lyapunov (lneas continuas) y usando regla MIT (lneas discontinuas).
Figura 2.22. Parmetro Theta 2 (2) para el MRAS de primer orden usando
teora de Lyapunov (lneas continuas) y usando regla MIT (lneas discontinuas).
58
59
aptulo3
ReguladorSelfTuning(STR)
3.1 Introduccin
La determinacin on-line de los parmetros del proceso es el principal
elemento en el control adaptativo. Un estimador de parmetros, como se
explica en el epgrafe 1.5.3, aparece explcitamente como un componente del
regulador self-tuning. Adems, el esquema general del STR (figura 1.6) lo
componen el diseo del controlador segn las especificaciones deseadas y el
mecanismo de ajuste de los parmetros de ste.
Es conveniente ver la estimacin de parmetros en el amplio contexto de la
identificacin de sistemas. Los principales elementos de esta son: la seleccin
de la estructura del modelo, el diseo experimental, la estimacin de
parmetros y la validacin. El diseo experimental es crucial para una
identificacin de sistemas exitoso. En el control adaptativo los parmetros del
proceso cambian continuamente, de modo que es necesario tener mtodos de
estimacin que ajusten los parmetros recursivamente.
El mtodo de mnimos cuadrados que se desarrolla en el epgrafe 3.2.2 es la
tcnica bsica para la estimacin de parmetros. El mtodo es particularmente
simple si el modelo tiene la propiedad de ser lineal en los parmetros. En este
caso la estimacin por mnimos cuadrados puede ser calculada analticamente.
[12]
Cuando hay parmetros inciertos en sistemas dinmicos (lineales o no
lineales), una va para deducirlos es usar la estimacin de parmetros, o sea,
61
Ay ( t ) = B ( u ( t ) + v ( t ) )
( 3.1)
62
H (z)=
B(z)
b z + b1
0.1065 z + 0.0902
= 2 0
= 2
A ( z ) z + a 1 z + a2 z 1.6065 z + 0.6065
( 3.2 )
3.2.1 Especificaciones
Para disear el controlador self-tuning indirecto se deben tener en cuenta las
especificaciones, como se ve en la figura 1.6, las cuales se dan en la forma
discreta de la funcin transferencial deseada Bm/Am.
B
Bm ( z )
bm 0 z
0.1761z
= 2
= 2
Am ( z ) z + am1 z + am 2 z 1.3205 z + 0.4966
( 3.3)
63
64
Figura 3.2. Diagrama en bloque del sistema adaptativo con regulador selftuning y cancelacin de ceros.
y ( i ) = 1 ( i ) 10 + 2 ( i ) 20 +
+ n ( i ) n0 = T ( i ) 0
( 3.4 )
T ( i ) = 1 ( i ) 2 ( i ) n ( i )
0 = 10 20 n0
65
1 t
V ( , t ) = ( y ( i ) T ( i ) )
2 i=1
( 3.5)
Se introduce la notacin:
Y ( t ) = y (1)
y ( 2 ) y ( t )
( t ) = (1) ( 2 ) ( t )
T (1)
(t ) =
T ( t )
P (t ) = (
(t ) (t ))
= (i ) T (i )
i =1
( 3.6 )
( i ) = y ( i ) y ( i ) = y ( i ) T ( i )
66
t
t
(t ) = (i ) T (i ) (i ) y (i )
i =1
i =1
= P (t ) (i ) y (i )
i =1
En
controladores
adaptativos
las
observaciones
son
( 3.7 )
obtenidas
( t ) = ( t ) ( t ) = ( i ) T ( i )
T
i =1
t 1
= ( i ) T ( i ) + ( t ) T ( t )
i =1
= P 1 ( t 1) + ( t ) T ( t )
( 3.8)
t 1
(t ) = P (t ) (i ) y (i ) = P (t ) (i ) y (i ) + (t ) y (t )
i =1
i =1
67
( i )y ( i ) = P ( t 1) ( t 1)
1
i =1
= P 1 ( t ) * ( t 1) ( t ) T ( t ) * ( t 1)
La estimacin del tiempo t puede ser ahora escrita como:
* ( t ) = * ( t 1) P ( t ) ( t ) T ( t ) * ( t 1) + P ( t ) ( t ) y ( t )
= * ( t 1) + P ( t ) ( t ) ( y ( t ) T ( t ) * ( t 1) )
= * ( t 1) + K ( t ) ( t )
Donde:
K (t ) = P (t ) (t )
( t ) = y ( t ) T ( t ) * ( t 1)
El residuo (t) puede ser interpretado como el error en predecir la seal y(t)
basada en la estimacin *(t-1).
La estimacin *(t) es obtenida para agregar una correccin a la estimacin
previa *(t-1). La correccin es proporcional a y(t) - T(t)*(t-1), donde el ltimo
trmino puede ser interpretado como el valor de y en el tiempo t predecido por
el modelo de la ecuacin 3.4. El trmino de correccin es de esta manera
proporcional a la diferencia entre el valor medido de y(t) y la prediccin de y(t)
basada en la estimacin previa de los parmetros. Los componentes del vector
K(t) dicen cmo la correccin y la estimacin previa pueden ser combinadas.
En el modelo de mnimos cuadrados 3.4 los parmetros i son asumidos como
constantes. En varios problemas de control adaptativo es de inters considerar
la situacin en la cual los parmetros son variantes en el tiempo. En el caso de
que los parmetros vayan cambiando continuamente pero lentamente en el
tiempo puede ser resuelto con modelos matemticos relativamente simples. Un
68
V ( , t ) =
2
1 t t 1
( y ( i ) T ( i ) )
2 i =1
( 3.9 )
* ( t ) = * ( t 1) + K ( t ) ( y ( t ) T ( t ) * ( t 1) )
K ( t ) = P ( t ) ( t ) = P ( t 1) ( t ) ( I + T ( t ) P ( t 1) ( t ) )
( 3.10 )
P ( t ) = ( I K ( t ) T ( t ) ) P ( t 1) /
Con estas ecuaciones se estiman los parmetros del modelo 3.2, o sea,
y ( t ) + a1 y ( t 1) + a2 y ( t 2 ) = b0u ( t 1) + b1u ( t 2 )
El bloque Seales al regresor representa un subsistema (figura 3.3) que dados
los parmetros necesarios (Anexo 8) y la funcin phivector (Anexo 9) combina
las seales de control u y de salida de la planta y en el vector de regresin phi
para utilizarlo en la estimacin de los parmetros como se ver a continuacin.
69
este
caso
particular
los
valores
iniciales
del
estimador
son
70
Condiciones de compatibilidad:
grAm = grA
grBm = grB
grAo = grA grB + 1
Bm = B Bm'
Paso 1: Factorizar B como B = B+B-, donde B+ es mnico.
Paso 2: Encontrar la solucin R y S con grS < grA desde
AR ' + B S = Ao Am
71
Ru = Tuc Sy
Existen casos especiales de procedimientos de diseo que son de inters.
Todos los ceros son cancelados: el procedimiento de diseo se simplifica
significativamente; entonces grAo = grA grB 1.
Es natural escoger Bm = Am(1)qdo. Entonces la factorizacin en el Paso 1 es
B
AR ' + b0 S = Ac' = Ao Am
Esta ecuacin es fcil de resolver porque R es el cociente y b0S es el resto
cuando AoAm es dividido por A.
Sin cancelacin de ceros: la factorizacin en el Paso 2 es muy simple tambin.
Se tiene B+ = 1, B- = B, y Bm = B, donde = Am(1)/B(1).
B
AR + BS = Ac = Ao Am
Este algoritmo se explica con ms detalle a continuacin.
La idea del diseo del regulador por asignacin de polos es encontrar un
controlador que tenga los polos a lazo cerrado deseados. Para esto se requiere
que el sistema siga las seales de comando de una manera especfica.
72
Ru ( t ) = Tuc ( t ) Sy ( t )
( 3.11)
y (t ) =
BT
BR
uc ( t ) +
v (t )
AR + BS
AR + BS
( 3.12 )
u (t ) =
AT
BS
uc ( t )
v (t )
AR + BS
AR + BS
AR + BS = Ac
( 3.13)
73
Am ym ( t ) = Bmuc ( t )
( 3.14)
BT
BT Bm
=
=
AR + BS Ac Am
( 3.15)
B = B + B
( 3.16)
74
( 3.17 )
Bm = B Bm'
B + ( z ) = z + b1 / b0
B ( z ) = b0
Bm' ( z ) = bm0 z / b0
Como B+ es cancelado, este puede ser un factor de Ac. Sin embargo, se puede
observar de la ecuacin 3.15 que Am tambin puede ser un factor de Ac. El
polinomio caracterstico de lazo cerrado tiene entonces la forma:
Ac = Ao Am B+
( 3.18)
R = R' B+
( 3.19 )
grS grR
grT grR
Desde que grA > grB, el trmino de mayor grado en AR+BS es AR. Entonces
grR = grAc grA suponiendo que grAc = gr(AR).
Siempre se puede encontrar una solucin tal que el grado de S sea al menos
grA - 1, o sea, grS < grA = n. Esta es llamada solucin de mnimo grado de la
ecuacin Diofntica.
75
AR' + B S = Ao Am = Ac'
( 3.20)
(z
+ a1 z + a2 ) 1 + b0 ( s0 z + s1 ) = z 2 + am1 z + am 2
a1 + b0 s0 = am1
a2 + b0 s1 = am 2
76
s0 =
am1 a1
= 2.6854
b0
s1 =
am 2 a2
= 1.0319
b0
T = Ao Bm'
( 3.21)
R ( z ) = B+ = z +
b1
= z + 0.8469
b0
S ( z ) = s0 z + s1 = 2.6854 z 1.0319
T ( z ) = Ao Bm' =
bm 0 z
=1.6535 z
b0
77
Ru ( t ) = Tuc ( t ) Sy ( t )
El Controlador Adaptativo de 2 GL (grados de libertad) es un subsistema (figura
3.8) que con los parmetros requeridos (Anexo 17) y mediante la funcin rst
(Anexo 18) calcula la seal de control.
Los valores iniciales del controlador son los obtenidos en el diseo por
asignacin de polos con cancelacin de ceros.
78
Figura 3.9. Seales de comando y salida del proceso del STR indirecto con
cancelacin de ceros.
79
a la
cancelacin del cero del proceso ubicado en -0.84. Este cero es estable pero
pobremente amortiguado, por lo que no puede ser cancelado. Esto se
considera una mala eleccin de la metodologa de diseo.
Figura 3.11. Seal de control del STR indirecto con cancelacin de ceros.
80
81
82
83
84
Figura 3.17. Diagrama en bloque del sistema adaptativo con regulador selftuning y sin cancelacin de ceros.
Para la estimacin de los parmetros del proceso se usa el mismo mtodo
explicado en el epgrafe 3.2.2.
Al ser el proceso de segundo orden, la solucin de mnimo grado tiene los
polinomios R, S y T de primer orden y el sistema a lazo cerrado puede ser de
tercer orden. Como los ceros no son cancelados, de la condicin de
compatibilidad planteada en el algoritmo dado en el epgrafe 3.2.3, se tiene que
grAo = 1.
Es posible dar una interpretacin del polinomio Ao que aparece en la solucin
de la asignacin de polos de mnimo grado en el caso en que los ceros del
proceso no son cancelados. Para hacer esto se observa que el problema de
asignacin de polos puede tambin ser resuelto con realimentacin de estado y
un observador. La dinmica a lazo cerrado est entonces compuesta de dos
partes: una que corresponde a la realimentacin y otra que corresponde a la
dinmica del observador. Para un sistema de grado n es adems conocido que
es suficiente usar un observador de grado n-1. Cuando no hay cancelacin de
ceros, el polinomio caracterstico de lazo cerrado es AmAo, donde Am es de
grado n y Ao es de grado n-1. Debido a esta analoga se puede interpretar al
polinomio Am como el asociado con la realimentacin y Ao como el asociado
con el observador. Entonces se llamar polinomio observador a Ao. En un
sistema con realimentacin de estado es natural introducir seales de comando
de tal manera que no generen errores observadores. Esto significa que el
85
B + =1
B = B = b0 z + b1
Tambin se deriva de la condicin de compatibilidad del algoritmo del epgrafe
3.2.3, que el modelo debe tener los mismos ceros que el proceso.
La funcin transferencial discreta deseada es entonces:
Hm ( z ) =
b0 z + b1
bm 0 z + bm1
=
z 2 + am1 z + am 2 z 2 + am1 z + am 2
donde bm0 = b0 y
Am (1) 1 + am1 + am 2
=
= 0.8953
B (1)
b0 + b1
(z
+ a1 z + a2 ) ( z + r1 ) + ( b0 z + b1 )( s0 z + s1 ) = ( z 2 + am1 z + am 2 ) ( z + ao )
s0 =
am1 + ao a1 r1
b0
( 3.22 )
r1 =
ao am1 + am 2 a2 b0 s1 b1s0
a1
( 3.23)
s1 =
ao am 2 a2 r1
b1
( 3.24 )
86
T ( z ) = Ao ( z ) = ( z + ao )
El controlador es entonces caracterizado por los polinomios:
R ( z ) = z + r1 = z + 0.1111
S ( z ) = s0 z + s1 =1.6422 z 0.747
T ( z ) = z = 0.8953 z
El Diseo de asignacin de polos de mnimo grado sin cancelacin de ceros es
un subsistema (figura 3.18) que con los parmetros requeridos (Anexo 19) y la
utilizacin de las funciones nzdesign, rstd y dab (Anexos 20, 15 y 16
respectivamente) calcula los parmetros del controlador siguiendo el algoritmo
dado en el epgrafe 3.2.3 para el caso de que no hay cancelacin de ceros del
proceso.
87
Figura 3.19. Seales de comando y salida del proceso del STR indirecto sin
cancelacin de ceros.
El comportamiento de la salida del proceso es similar al ejemplo del epgrafe
3.2, pero sin las oscilaciones en la seal de control. En los primeros 10
segundos se obtiene un pico debido a que la etapa de estimacin no ha
concluido. En el resto de la simulacin el sistema se comporta como es
esperado segn el modelo de referencia impuesto.
88
Figura 3.20. Seal de control del STR indirecto sin cancelacin de ceros.
Los parmetros estimados (figuras 3.21 y 3.22) se acercan a sus valores
verdaderos (dados entre parntesis). Las estimaciones obtenidas en
t = 80
son:
b0(80) = 0.1065 (0.1065)
89
90
91
aptulo4
Anlisistcnicoeconmico
4.1 Introduccin
Para controlar los gastos y evitar que se derroche innecesariamente capital en
materiales se realiza el anlisis econmico. Esto es importante para obtener el
costo total y el precio estimado del proyecto en caso de que se quiera realizar el
mismo. Da una medida de la factibilidad y los beneficios que este puede producir.
CT = CI + CD
( 4.1)
donde:
CT: Costo Total
CI: Costo Indirecto
CD: Costo Directo
El Costo Indirecto se refiere a los gastos de electricidad consumida, gastos de
administracin, etc; se estima aplicando un coeficiente de gasto al salario bsico
de la investigacin. El coeficiente de gasto para un departamento docente es
considerado de 0.84.
CI = 0.84* SB
( 4.2 )
93
SBtotal = ( ai * bi )
( 4.3)
i =1
donde:
ai : Das empleados en la investigacin por cada participante
bi : Salario diario de cada participante (segn la legislacin cubana se consideran
laborables 24 das del mes)
n : Total de participantes
i
Descripcin
ai
bi
SBi
18
975/24 = $ 40.63
$ 731.25
96
125/24 = $ 5.20
$ 500.00
94
( 4.4)
donde:
SC: Salario Complementario
SS: Seguridad Social
MD: Gastos por medios o materiales directos
DP: Dietas y Pasajes
OG: Otros Gastos
El Salario Complementario
es el
95
96
P = CT + 0.1* CT
( 4.5)
Es decir, se permite hasta un 10% del costo total en que se incurre como ganancia
de la investigacin. Esto debe estar avalado por copia del contrato o por carta de
la entidad que recibe el servicio o resultado.
El precio del proyecto se obtiene a partir de la ecuacin 4.5:
P = CT + 0.1*CT
P = $ 10 191.74 + 0.1 * $ 10 191.74
P = $ 11 210.91
97
onclusiones
Conclusiones
En este trabajo de diploma se exponen los conceptos fundamentales del control
adaptativo, su necesidad de aplicacin a travs de ejemplos y se presentan los
esquemas adaptativos fundamentales, as como sus caractersticas particulares.
Se hace una revisin del paquete Matlab, as como una bsqueda en la literatura
de algn software de apoyo al diseo y/o simulacin de sistemas de control
adaptativos. Se concluye que Matlab no tiene ninguna herramienta ni funciones
especficas para tales fines. Se encontr un curso de Control Adaptativo creado
en el Lund Institute of Technology, Suecia, en el que se desarrollan algunas
funciones y bibliotecas en Matlab para el apoyo al diseo de sistemas
adaptativos y la simulacin de los mismos. Se plantea como dificultad que no se
encontr literatura relacionada con dichas funciones y bibliotecas, por lo que se
realiz un trabajo de interpretacin de las mismas partiendo de los
conocimientos tericos desarrollados en la tesis.
Se desarroll el ejemplo del control de la velocidad y la posicin de un
accionamiento elctrico de corriente continua teniendo en cuenta que los
parmetros del proceso pueden variar.
Para el caso en que solo la ganancia vara en el modelo de control de la
velocidad, se utiliz un MRAS donde se obtuvo una ley de ajuste que hizo que la
salida del proceso siguiera a la salida del modelo deseado, lo que significa que
el error converge a cero, lo cual es el objetivo a cumplir para un control eficiente.
Para esto fue fundamental la utilizacin de la librera creada para este fin.
En el caso de que los parmetros del modelo de control de la velocidad del
accionamiento elctrico de corriente continua son variantes, se implement un
MRAS utilizando dos mtodos para la obtencin del mecanismo de ajuste de los
parmetros: regla MIT y estabilidad de Lyapunov.
En ambos casos se
99
Conclusiones
pequeos de gamma, los valores de los parmetros estaban lejos de los valores
correctos, pero con el aumento del tiempo, estos convergen a sus valores
verdaderos. Para ver los resultados con la ley de adaptacin obtenida se cre
una librera para la simulacin de estos sistemas.
En el control de la posicin del accionamiento elctrico de corriente continua se
implement un STR. Para el anlisis de los resultados se utiliz una herramienta
que fue creada para el clculo de los controladores debido a que no exista
ningn toolbox de Matlab para este fin.
En este ejemplo se desarrollaron dos algoritmos para el diseo del controlador:
con cancelacin de ceros y sin cancelacin de ceros. En el primer caso, aunque
los valores estimados se acercaban a los reales, se obtuvieron oscilaciones
indeseables en la seal de control debido a que el cero cancelado era estable,
por lo que no se poda escoger este procedimiento. En el segundo se elimin
esta restriccin y los parmetros estimados tambin convergan a sus valores
verdaderos puesto que el cero no fue cancelado, obtenindose un buen
comportamiento del sistema.
100
Recomendaciones
Recomendaciones
Para aprovechar los resultados obtenidos y aspirar a una profundizacin del
tema del control adaptativo se recomienda:
o Estudiar otras aplicaciones de control adaptativo para extenderlas a otros
problemas.
o Tratar de implementar estos algoritmos de control para controlar un
proceso real utilizando una Tarjeta de Adquisicin de Datos (TAD) para
adquirir las seales del proceso y enviar las seales de control adaptativo,
siendo el controlador la computadora.
o Profundizar en la programacin de los diferentes algoritmos de control
adaptativos.
o Extender las aplicaciones a procesos no lineales que es donde se han
reportado las mayores problemticas en cuanto al xito de los mtodos
adaptativos.
102
ibliografa
Bibliografa
Referencias bibliogrficas
[1] Tao, Gang. Adaptive Control Design and Analysis. John Wiley & Sons, Inc.,
Hoboken, New Jersey, 2003.
[2] Slotine, Jean-Jacques E. y Li, Weiping. Applied Nonlinear Control, 1991.
[3] Johnson, Kathryn E. Adaptive Torque Control of Variable Speed Wind
Turbines. Technical Report, Agosto 2004.
[4] NASA Ames Research Center. Adaptive Control Technology, 2004.
[5] Sonneveldt, L.,Chu ,Q. P., y Mulder, J. A. Constrained Adaptive Backstepping
Flight Control: Application to a Nonlinear F-16/MATV Model, Agosto 2006.
[6] Nguyen, Nhan , Krishnakumar, Kalmanje, y Kaneshige, John. Dynamics and
Adaptive Control for Stability Recovery of Damaged Asymmetric Aircraft, 2005.
[7] Eure, Kenneth W. Adaptive Predictive Feedback Techniques for Vibration
Control, 1998.
[8] Ma, Z., Jutan, A. y Bajic, V. Adaptive Control of a pressure tank system with
saturation nonlinearities.
[9] Venayagamoorthy, Ganesh K. Adaptive critic design based neurocontrollers
for turbogenerator control.
[10] Bling, Jari M., Seborg, Dale E. y Hespanha, Joo P. Multi-Model Adaptive
Control of a Simulated pH Neutralization Process, Febrero 2006.
[11] Athmaraman, Naren y Soundararajan, Srivathsan. Adaptive Predictive
Traffic Timer Control Algorithm, Agosto 2004.
[12] Astrm, Karl J. y Wittenmark, B. Adaptive Control. 2da edicin, AddisonWesley Publishing Company, Massachusetts, 1989.
104
Bibliografa
[13] Ioannou, Petros A. y Sun, Jing. Robust Adaptive Control, 2003.
[14] Astrm, Karl J. y Hgglund, Tore. PID Controllers: Theory, design and
tuning, 2005.
[15] Costa Montiel, Angel. Sistemas de control. Luanda, diciembre 2006.
[16] Gordillo, Francisco. Estabilidad de sistemas no lineales basada en la teora
de Lyapunov. Revista Iberoamericana de Automtica e Informtica Industrial.
Vol. 6. No. 2. Abril 2009.
Butterworth-
Heinemann, 1999.
[21] Hangos, K.M.; Bokor, J. y Szederknyi, G. Analysis and Control of Nonlinear
Process Systems. Springer-Verlag, 2004.
[22] Jain, Lakhmi y De Silva, Clarence. Intelligent Adaptive Control: Industrial
Applications.
[23] Johnson, Michael A. y Moradi, Mohammad H. PID Control: new identification
and design methods. Springer, Estados Unidos de Amrica, 2005.
105
Bibliografa
[24] Karr, Charles L. Practical Applications of Computational Intelligence for
Adaptive Control.
[25] Luyben, William L. Process modelling, simulation, and control for chemical
engineers. 2da edicin. McGraw-Hill, Inc., 1999.
[26] Ogata, Katsuhiko. Modern Control Engineering. 3ra edicin. Prentice-Hall,
Inc., 1998.
[27] Rojan, Yuri. Learn Programming and Mathematics with Matlab. The
MathWorks, Inc., New York, 2005.
[28] Smith, Carlos A. y Corripio, Armando B. Control Automtico de Procesos:
Teora y Prctica. Editorial Limusa, Mxico, 1991.
[29] Tan Tien, Nguyen. Applied Nonlinear Control. 2002.
[30] VanDoren, Vance J. Techniques for Adaptive Control. ButterworthHeinemann, Estados Unidos de Amrica, 2003.
[31] Vukic, Zoran; Kuljaca, Ljubomir; Donlagic, Dali y Tesnjak, Sejid. Nonlinear
Control Systems. Marcel Dekker, Inc, 2003.
[32] Wilson, Howard B., Turcotte, Louis H. y Halpern, David. Advanced
Mathematics and Mechanics Applications using MATLAB. 3ra edicin. Chapman
& Hall/CRC, 2003.
[33] Wu,W. y Chou,Y.S. Adaptative feedforward and feedback control of
nonlinear time-varying uncertain systems. International Journal of Control, Vol.
72, No. 12. 1999.
[34] Yu, Cheng-Ching. Autotuning of PID Controllers. 2da edicin, SpringerVerlag, 2006.
106
Bibliografa
Web visitadas
http://www.eie.fceia.unr.edu.ar/~marimar/snl/snl_c2.pdf. 14/4/2010.
http://www.scielo.org.ve/scielo.php?pid=S0254-72000300006&script=sci_arttext.
25/3/2010.
http://cnx.org/content/m12822/latest/. 25/3/2010.
http://translate.google.com.cu/translate?hl=es&langpair=en%7Ces&u=http://www
.control.lth.se/~FRT050/. 24/2/2010.
http://www.elo.utfsm.cl/~elo270/informacion/CLASES/15%20SINTESIS%20DE%
20CONTROLADORES%203.pdf. 28/4/2010.
http://csd.newcastle.edu.au/SpanishPages/clase_slides_download/C09.pdf.
28/4/2010.
http://isa.uniovi.es/~arobles/ra2/pdf/asigpolos.pdf. 28/4/2010.
107
nexos
Anexos
109
Anexos
110
Anexos
Anexo 2. Diagrama en bloque del lazo de control de flujo con controlador PI.
Anexo 2.1. Respuesta a un paso escaln con control PI del sistema a lazo
cerrado para diferentes flujos y las acciones de control correspondientes. Los
parmetros del controlador PI son K = 0.5, Ti = 1.1.
111
Anexos
112
Anexos
113
Anexos
114
Anexos
115
Anexos
function [sys,x0,str,ts] = mdlInitializeSizes(m,n,h)
sizes = simsizes;
sizes.NumContStates = 0;
sizes.NumDiscStates = n+m;
sizes.NumOutputs = n+m;
sizes.NumInputs
= 2;
sizes.DirFeedthrough = 0;
sizes.NumSampleTimes = 1;
sys = simsizes(sizes);
x0 = zeros(m+n,1);
str = [];
ts = [h 0];
% mdlUpdate: Actualiza theta y P
function sys = mdlUpdate(x,input,m,n)
old_u = x(1:m);
old_y = x(m+1:m+n);
u = input(1);
y = input(2);
% cambiar el vector
old_u = [u;old_u(1:m-1)];
old_y = [y;old_y(1:n-1)];
x = [old_u;old_y];
sys = x;
% mdlOutputs: Devuelve theta y P
function sys = mdlOutputs(x)
sys = x;
116
Anexos
117
Anexos
sys = [];
% Banderas no manejables %
otherwise
error(['unhandled flag = ',num2str(flag)]);
end
% mdlInitializeSizes; Devuelve las magnitudes, condiciones iniciales y tiempo
% de muestreo para la S-function.
function [sys,x0,str,ts] = mdlInitializeSizes(n,theta_0,P_0,h)
sizes = simsizes;
sizes.NumContStates = 0;
sizes.NumDiscStates = n+n^2;
sizes.NumOutputs = n+n^2;
sizes.NumInputs
= n+1;
sizes.DirFeedthrough = 0;
sizes.NumSampleTimes = 1;
sys = simsizes(sizes);
x0 = mdlPack(theta_0,P_0,n);
str = [];
ts = [h 0];
% mdlUpdate; Actualiza theta y P
function sys = mdlUpdate(x,u,n,lambda)
% desempaquetar theta, P, phi y y
[theta,P] = mdlUnpack(x,n);
phi = u(1:n);
y = u(n+1);
% calcular la nueva estimacin y actualizar la matriz de covarianza
K = P*phi/(lambda + phi'*P*phi);
new_theta = theta + K*(y - phi'*theta);
new_P = (eye(n) - K*phi')*P/lambda;
% reempaquetar theta y P en x
x = mdlPack(new_theta,new_P,n);
sys = x;
% mdlOutputs; Devuelve theta y P
function sys = mdlOutputs(x)
sys = x;
% mdlPack: Empaqueta theta y P en x
function x = mdlPack(theta,P,n)
P_vec = [];
for j = 1:n
P_vec = [P_vec;P(:,j)];
end
x = [theta;P_vec];
% mdlUnpack: Desempaqueta theta y P desde x
function [theta,P] = mdlUnpack(x,n)
theta = x(1:n,1);
P = [];
for j = 1:n
P = [P,x(j*n+1:(j+1)*n,1)];
end
118
Anexos
119
Anexos
120
Anexos
[sys,x0,str,ts] = mdlInitializeSizes(n_a,n_b,n_r,h);
% Actualizacin %
case 2,
sys = mdlUpdate;
% Salida %
case 3,
sys = mdlOutputs(u,n_b,B_m,A_m,A_o,A_r,A_s);
% Finalizacin %
case 9,
sys = [];
% Banderas no manejables %
otherwise
error(['unhandled flag = ',num2str(flag)]);
end
% mdlInitializeSizes; Devuelve las magnitudes, condiciones iniciales y tiempo
% de muestreo para la S-function.
function [sys,x0,str,ts] = mdlInitializeSizes(n_a,n_b,n_r,h)
sizes = simsizes;
sizes.NumContStates = 0;
sizes.NumDiscStates = 0;
sizes.NumOutputs = 3*(n_r+1);
sizes.NumInputs
= (n_a+1) + (n_b+1);
sizes.DirFeedthrough = 1;
sizes.NumSampleTimes = 1;
sys = simsizes(sizes);
x0 = [];
str = [];
ts = [h 0];
% mdlUpdate: Maneja las actualizaciones de los estados discretos, el tiempo
% de muestreo y mejores requerimientos de tiempo.
function sys = mdlUpdate
sys = [];
% mdlOutputs: Devuelve el vector de salida para la S-function
function sys = mdlOutputs(u,n_b,B_m,A_m,A_o,A_r,A_s)
B = u(1:n_b+1)';
A = u(n_b+2:end)';
[R,S,T]=rstd(B/B(1),B(1),A,B_m,A_m,A_o,A_r,A_s);
sys = [R,S,T]';
121
Anexos
%
AO : polinomio observador
%
AR : factor pre especificado de R
%
AS : factor pre especificado de S
% Salidas: R,S,T : Polinomios del controlador
if nargin==7,
as=1;
elseif nargin==6,
ar=1;
as=1;
end;
ae
= conv(a,ar);
be
= conv(bminus,as);
aoam = conv(am,ao);
[r1,s1] = dab(ae,be,aoam);
r
= conv(conv(r1,ar),bplus);
s
= conv(s1,as);
bm
= conv(bminus,bm1);
t0
= sum(am)/sum(bm);
t
= t0*conv(ao,bm1);
s
= s/r(1);
t
= t/r(1);
r
= r/r(1);
122
Anexos
za = zeros(1,nx-1);
zb = zeros(1,ny-1);
ma = toeplitz([a za],[a(1) za]);
mb = toeplitz([b zb],[b(1) zb]);
m = [ma mb];
if rank(m)<min(size(m)),
disp('Problema singular debido a que A y B tienen factor comn');
end;
xy = c/m';
x = xy(1:nx);
y = xy(nx+1:nc);
123
Anexos
% Parmetros: n, grado de R,S, y T; state_0, estado inicial, magnitud (3*n+1);
% h, perodo de muestreo.
switch flag,
% Inicializacin %
case 0,
[sys,x0,str,ts] = mdlInitializeSizes(n,state_0,h);
% Actualizacin %
case 2,
sys = mdlUpdate(n,state,input);
% Salida %
case 3,
sys = mdlOutputs(n,state,input);
% Finalizacin %
case {1, 4, 9},
sys = [];
% Banderas no manejables %
otherwise
error(['unhandled flag = ',num2str(flag)]);
end
% mdlInitializeSizes: Devuelve las magnitudes, condiciones iniciales y tiempo
% de muestreo para la S-function.
function [sys,x0,str,ts] = mdlInitializeSizes(n,state_0,h)
sizes = simsizes;
sizes.NumContStates = 0;
sizes.NumDiscStates = 3*n+1;
sizes.NumOutputs = 1;
sizes.NumInputs
= 2+3*(n+1);
sizes.DirFeedthrough = 1;
sizes.NumSampleTimes = 1;
sys = simsizes(sizes);
x0 = state_0;
str = [];
ts = [h 0];
% mdlUpdate: Maneja las actualizaciones de los estados discretos, el tiempo
% de muestreo y mejores requerimientos de tiempo.
function sys = mdlUpdate(n,state,input)
if n == 0 sys = [];
else
% desempaquetar estados (state) y entradas (input)
old_u = state(1:n);
old_y = state(n+1:2*n);
old_u_c = state(2*n+1:3*n);
pre_u = state(3*n+1);
r = input(1:n+1)';
s = input(n+2:2*n+2)';
t = input(2*n+3:3*n+3)';
u_c = input(3*n+4);
y = input(3*n+5);
% actualizar u, y y u_c
u = 1/r(1)*(t(1)*u_c - s(1)*y + pre_u);
124
Anexos
u_vec = [u;old_u(1:n-1)];
y_vec = [y;old_y(1:n-1)];
u_c_vec = [u_c;old_u_c(1:n-1)];
% preclculo de u
pre_u = t(2:n+1)*u_c_vec - s(2:n+1)*y_vec - r(2:n+1)*u_vec;
% Empaquetar estados
state(1:n) = u_vec;
state(n+1:2*n) = y_vec;
state(2*n+1:3*n) = u_c_vec;
state(3*n+1) = pre_u;
sys = state;
end
% mdlOutputs: Devuelve el vector de salida de la S-function
function sys = mdlOutputs(n,state,input)
if n == 0
% desempaquetar entradas
r = input(1);
s = input(2);
t = input(3);
u_c = input(4);
y = input(5);
% calcular u
u = 1/r*(-s*y + t*u_c);
sys = u;
else
% desempaquetar estados y entradas
pre_u = state(3*n+1);
r = input(1:n+1)';
s = input(n+2:2*n+2)';
t = input(2*n+3:3*n+3)';
u_c = input(3*n+4);
y = input(3*n+5);
% calcular u
u = 1/r(1)*(t(1)*u_c - s(1)*y + pre_u);
sys = u;
end
125
Anexos
126
Anexos
case 2,
sys = mdlUpdate;
% Salida %
case 3,
sys = mdlOutputs(u,n_b,A_m,A_o,A_r,A_s);
% Finalizacin %
case 9,
sys = [];
% Banderas no manejables %
otherwise
error(['unhandled flag = ',num2str(flag)]);
end
% mdlInitializeSizes; Devuelve las magnitudes, condiciones iniciales y tiempo
% de muestreo para la S-function.
function [sys,x0,str,ts] = mdlInitializeSizes(n_a,n_b,n_r,h)
sizes = simsizes;
sizes.NumContStates = 0;
sizes.NumDiscStates = 0;
sizes.NumOutputs = 3*(n_r+1);
sizes.NumInputs
= (n_a+1) + (n_b+1);
sizes.DirFeedthrough = 1;
sizes.NumSampleTimes = 1;
sys = simsizes(sizes);
x0 = [];
str = [];
ts = [h 0];
% mdlUpdate: Maneja las actualizaciones de los estados discretos, el tiempo
% de muestreo y mejores requerimientos de tiempo.
function sys = mdlUpdate
sys = [];
% mdlOutputs: Devuelve el vector de salida para la S-function
function sys = mdlOutputs(u,n_b,A_m,A_o,A_r,A_s)
B = u(1:n_b+1)';
A = u(n_b+2:end)';
[R,S,T]=rstd(1,B,A,1,A_m,A_o,A_r,A_s);
sys = [R,S,T]';
127