Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Control Avanzado PDF
Control Avanzado PDF
Dise~
no y Apli
a
iones en Tiempo Real
Control
Optimo
Control Adaptivo
Control Robusto
Control No Lineal
Control Avanzado
Dise~
no y Apli
a
iones en Tiempo Real
Copyright
2001 Arturo Rojas-Moreno. Reservados todos los dere
hos.
ISBN 9972{9318{0{3
Ni todo el libro ni parte de esta publi
a
ion puede ser reprodu
ida, ar
hivada,
transmitida o distribuida en forma alguna o mediante algun medio ele
troni
o,
me
ani
o, o de otra ndole, sin que exista previamente y por es
rito el permiso de
autoriza
ion del autor.
Dedi
atoria
A mi Familia
A mi Alma Mater
Indi
e General
Fundamentos
A nadie es
apa el he
ho de que estamos presen
iando un dramati
o y per-
manente desarrollo de dispositivos y equipos basados en te
ni
a digital, tales
omo mi
ro
ontroladores, tarjetas de desarrollo para pro
esamiento digital
de se~nales, sistemas en
apsulados,
omputadoras industriales, sistemas de
adquisi
ion de datos, entre otros. Tales dispositivos y equipos, que
ada vez
son mas peque~nos y de menor
osto, pero paradoji
amente mas potentes,
han provo
ado que a
tualmente la gran mayora de los sistemas de
ontrol
se dise~nen basados en te
ni
as digitales.
Con respe
to a las te
ni
as empleadas en el dise~no de los sistemas de
on-
trol, podemos observar en la industria que
ada vez son mas las apli
a
iones
basadas en te
ni
as no tradi
ionales, las
uales denominaremos te
ni
as de
ontrol avanzado. En este
ontexto, las te
ni
as de
ontrol avanzado que
han logrado mayor a
epta
ion son las siguientes:
ontrol predi
tivo,
ontrol
no lineal,
ontrol robusto,
ontrol adaptivo,
ontrol optimo, entre otras. La
literatura te
ni
a y las publi
a
iones para
ada una de ellas, es de he
ho
abundante pero lamentablemente espar
ida, de modo que el tratamiento
aislado de
ada te
ni
a puede
onsumir gran
antidad de tiempo y esfuerzo.
Esta publi
a
ion integra en un solo volumen, los fundamentos y los pro-
edimientos en
aminados al dise~no de sistemas de
ontrol avanzado y su
orrespondiente implementa
ion en tiempo real. El material desarrollado
basa sus fundamentos en la representa
ion de los sistemas de
ontrol en el
espa
io de estado dis
reto. Sin embargo, no se deja de men
ionar y de tratar
el punto de vista tradi
ional,
uando sea ne
esario.
He sido muy
uidadoso en
ubrir
on amplitud y
on la
laridad del
aso,
empleando mu
has ve
es ejemplos expli
ativos, aquellos
on
eptos funda-
mentales requeridos para un mejor entendimiento del material presentado.
Las apli
a
iones en tiempo real desarrolladas para validar los metodos de
xii Prefa
io
ser implementados en tiempo real. Tales pro
esos son: el pendulo invertido,
la grua-puente y el servomotor D.C. (\Dire
t Current") sujeto a
argas no
lineales. En su se
ion problemas, el
aptulo presenta la modela
ion de
diversos pro
esos tpi
os.
Captulo 4: Control Optimo. Desarrolla los fundamentos del
ontrol
optimo
uadrati
o dis
reto y dos apli
a
iones en tiempo real:
ontrol optimo
de posi
ion del pendulo invertido y
ontrol optimo de posi
ion de la grua-
puente. En su se
ion problemas, el
aptulo desarrolla dise~nos de sistemas
de
ontrol optimo
uadrati
o para varios pro
esos tpi
os.
Captulo 5: Control Adaptivo. Dis
ute brevemente a
er
a de los
prin
ipales sistemas de
ontrol adaptivo, para luego presentar en detalle
el pro
edimiento de dise~no de un sistema de
ontrol adaptivo
on autosin-
toniza
ion. El pro
edimiento desarrollado se apli
a para implementar en
tiempo real el
ontrol adaptivo
on autosintoniza
ion de la posi
ion de un
servomotor D.C. operando
on
arga no lineal y variable. En su se
ion
problemas, el
aptulo presenta dise~nos de sistemas de
ontrol adaptivo
on
autosintoniza
ion para varios pro
esos tpi
os.
Captulo 6: Control Predi
tivo. Presenta los fundamentos del
on-
trol predi
tivo basado en modelos y desarrolla una apli
a
ion en tiempo real:
ontrol predi
tivo de la posi
ion de un servomotor D.C. sujeto a
argas no
lineales empleando el algoritmo de la matriz dinami
a de
ontrol. En su
se
ion problemas, el
aptulo desarrolla dise~nos de sistemas de
ontrol pre-
di
tivo para diversos pro
esos tpi
os, naturalmente, empleando el algoritmo
de la matriz dinami
a de
ontrol.
Captulo 7: Control Robusto. Trata los fundamentos del
ontrol
robusto basado en la te
ni
a de
ontrol
on modelo interno. A
ontinua
ion,
di
ha te
ni
a se apli
a para el
ontrol robusto en tiempo real de la posi
ion de
un servomotor D.C. modelado
on in
ertidumbres. Tambien, en su se
ion
problemas, el
aptulo desarrolla dise~nos de sistemas de
ontrol robusto para
diversos pro
esos tpi
os, empleando el algoritmo de
ontrol
on modelo
interno.
Captulo 8: Control No Lineal. Desarrolla los fundamentos rela-
ionados
on el
ontrol no lineal de pro
esos empleando la te
ni
a deno-
minada linealiza
ion por realimenta
ion. Para validar los fundamentos de
di
ha te
ni
a, se desarrolla el dise~no e implementa
ion del sistema de
on-
trol por linealiza
ion de la realimenta
ion de la posi
ion de un servomotor
D.C. no lineal. En su se
ion problemas, el
aptulo desarrolla dise~nos de
sistemas de
ontrol no lineal para diversos pro
esos tpi
os.
xiv Prefa
io
Matem
ati
a Asistida
on
Computadora
Este
aptulo es una breve exposi
ion de los fundamentos matemati
os rela
iona-
dos
on el analisis matri
ial, el analisis ve
torial y la transformada de Lapla
e. El
material sele
ionado esta estre
hamente rela
ionado
on el material a desarro-
llarse en los
aptulos siguientes. Para mayores detalles del material
ubierto se
re
omienda
onsultar las referen
ias [18℄, [19℄, [20℄, [21℄, [22℄, [14℄ y el apendi
e
A de [3℄. Los
al
ulos, en su gran mayora, se realizan
on el auxilio del paquete
MATLAB. Todos los ar
hivos
orrespondientes a los ejer
i
ios desarrolados se
pueden des
argar del sitio: http://ee.uni.edu.pe/728681F.
2 3
e f b
b
det det det
6
6 h i h i e f 7
7
1 6 d f a
a
7
A 1= 6 det det det 7
det(A) 6 g i g i d f 7
6 7
4 d e a b a b 5
det det det
g h g h d e
Ejemplo 1.1
Dada la matriz
uadrada A,
al
ular B .
2
1 j 2 j 3 j 3
A = 4 4j 2 3 + 5j 5
6 j 7 j 8 + 3j
B=
(A + AT 0:7jA3 )A 1 AH jAj\A <e[A℄=m[A℄
(2j + 1) traza(A)det(A)
Solu
ion: El programa en MATLAB para
al
ular B es el siguiente:
% ejem1_1.m EJEMPLO SOBRE CALCULO MATRICIAL COMPLEJO
lear all
A = [1-j 2-j 3- j
4j -2 3+5j
6-j 7-j 8+3j℄;
B = (
onj(A)+
onj(A')-0.7j*A^3)*inv(A)*A'*abs(A)* ...
angle(A)*real(A)*imag(A)/((2*j+1)*tra e(A)*det(A));
% B = 1.0e+002 *
% 0.2488 - 0.0957i 0.8007 - 0.3510i -2.1614 + 0.9495i
% 0.2952 + 0.3551i 0.9809 + 1.0977i -2.6468 - 2.9592i
% 0.8222 + 0.1991i 2.7135 + 0.5050i -7.3267 - 1.3550i
Ejemplo 1.2
Determinar la matriz hermitiana B y la antihermitiana C de la matriz A
del ejemplo anterior.
1.1 Cal
ulo Matri
ial 9
C = [A22*B22+A23*B32+A21*B12 A22*B23+A23*B33+A21*B13
A32*B22+A33*B32+A31*B12 A32*B23+A33*B33+A31*B13
A42*B22+A43*B32+A41*B12 A42*B23+A43*B33+A41*B13℄;
Ejemplo 1.4
Matriz Aumentada.- Si los ve
tores x, y, v y w son de orden n, m, p y
q respe
tivamente, obtener una e
ua
ion que reempla
e a las dos e
ua
iones
diferen
iales siguientes:
dx
= Ax + Bv; dy
dt dt
= Cy + Dw
Solu
ion: Las matri
es A
on C y B
on D forman matri
es aumentadas
omo sigue:
dx
dt = A 0 x + B 0 v
dy 0 C y 0 D w
dt
Ejemplo 1.5
Si los i son los eigenvalores de la matriz A de orden n,
omprobar numeri
amente
que:
det(A) = 1 2 : : : n ; i = 1; : : : ; n
Solu
ion: Ver el programa ejem1 5.m.
% ejem1_5.m COMPRUEBA QUE det(A)=L(1)L(2)L(3)L(4)
lear all
A = [1-j 2-j 3-j -3+8j
4j -2 3+5j 4-2j
6-j 7-j 8+3j 3+j
2 -1 j 0℄;
L = eig(A); % DETERMINA LOS EIGENVALORES DE A
detA = det(A); P = L(1)*L(2)*L(3)*L(4);
% SE DEBE CUMPLIR QUE: P = detA
Ejemplo 1.6
Cono
idas las matri
es Ann, Bnm , Cmn y Dmm
on det(A) 6= 0 y det(D) 6= 0,
y deniendo:
E= A B ; G= A 0 ; H= A B
0 D C D C D
12 Matemati
a Asistida
on Computadora
Ejemplo 1.7
Demostrar numeri
amente que:
A B
1
A 1 A 1 BD 1
0 D = 0 D 1
A 0
1
A 1 0
C D = 1
D CA 1 D 1
Solu
ion: Ver el programa ejem1 7.m.
1.1 Cal
ulo Matri
ial 13
Ejemplo 1.8
Demostrar numeri
amente que:
A B
1
A 1 + A 1 B (D CA 1 B ) 1 CA 1 A 1 B (D CA 1 B ) 1
=
C D (D CA 1 B ) 1 (D CA 1 B ) 1
A B
1
(A BD 1 C ) 1 (A BD 1 C ) 1 BD 1
= 1 1 1
C D D C (A BD C ) D C (A BD 1 C ) 1 BD 1 + D 1
1
Solu
ion: Ver en el siguiente programa la demostra
ion pedida.
% ejem1_8.m INVERSION DE MATRICES PARTICIONADAS
lear all
% MATRICES DATOS CON n=2 Y m=3:
A = [-3+j 4-2j
14 Matemati
a Asistida
on Computadora
5-8j -7-2j℄;
B = [ j -1+3j 2-5j
4+7j 6 3+8j℄;
C = [ 2-j j
1+j -5j
-3-7j 8℄;
D = [2+j -3-j 4j
1+3j 0 -7j
1+j -9-2j -5℄;
% CONDICION: det(D) Y det(D-C*inv(A)*B) DISTINTOS DE 0
E = [A B;C D℄;
G11 = inv(A) + inv(A)*B*inv(D-C*inv(A)*B)*C*inv(A);
G12 = -inv(A)*B*inv(D-C*inv(A)*B);
G21 = -inv(D-C*inv(A)*B)*C*inv(A);
G22 = inv(D-C*inv(A)*B);
G = [G11 G12;G21 G22℄;
% CONDICION: det(D) Y det(A-B*inv(D)*C) DISTINTOS DE 0
H11 = inv(A-B*inv(D)*C);
H12 = -inv(A-B*inv(D)*C)*B*inv(D);
H21 = -inv(D)*C*inv(A-B*inv(D)*C);
H22 = inv(D)*C*inv(A-B*inv(D)*C)*B*inv(D)+inv(D);
H = [H11 H12;H21 H22℄;
% E*G, E*H, G*E y H*E DEBEN RESULTAR MATRICES IDENTIDAD
Derivada par
ial de una fun
ion es
alar J (x) de variable ve
torial:
2
2 J 3 2J 2J 2J 3
x21 x1 x2 x1 xn
x1
2J
J
= 64 ... 75 ; ... ... ...
6 7
x x2
= 64 7
5 (1.10)
2 2 2
J
xn
J
xn x1
J
xn x2 J
x2n
Derivada total de una fun
ion es
alar V (x(t)) de variable ve
torial:
d V T dx
V (x(t)) = (1.11)
dt x dt
Ja
obiano de una fun
ion ve
torial f(x) de orden m
on argumento ve
torial
de orden n: 2 3
f f
x
1 f
2
x1 x1
m
6 f11
f 6 x2
f2 fm 7
x2 7
x
= 6
6 ... x2
... ...7
7 (1.12)
4 5
f1
xn
f2
xn fm
xn
Si la matriz
uadrada A y los ve
tores x e y son reales y de orden n se
umple:
T
x Ax = Ax + AT x
x
T T
x Ay = Ay; x Ay = AT x (1.13)
x y
Si A es una matriz hermitiana de orden n y x e y son ve
tores
omplejos de
orden n, se
umple:
H
x Ax = Ax
x
H H
x Ay = Ay; x Ay = AT x (1.14)
x y
Ve
tores Ortonormales
Los ve
tores reales x1; x2 ; : : : son ortonormales si xTi xj = 0
uando i 6= j y
xTi xj 6= 0
uando i = j .
k x k= 0 si y solo si x = 0
k x k=k kk x k es un es
alar
Desigualdad triangular: k x + y kk x k + k y k
Desigualdad de S
hwarz: jxH yj k x kk y k
La norma mas empleada es la Eu
lidiana:
p
k x k2 = (xH x)1=2 = jx1j2 + jx2 j2 + + jxnj2 (1.17)
que es un
aso parti
ular de la siguiente norma:
q p q
k x k= (P x)H (P x) = xH P H P x = xH Qx)℄ 0; Q = P H P = QH
Otras normas pueden ser denidas
omo:
n
X
k x k= jxi j; k x k1= max
i
jxij; k x k 1= min
i
jxi j
i=1
n !1=p
X
k x kp= jxijp
i=1
jj k A k; si es un eigenvalor de A
Otras normas para una matriz A de orden n son:
0 11=2
n X
X n Xn X
n
k A k= jaij j; k A kF = jaij j2 A
i=1 j =1 i=1 j =1
18 Matemati
a Asistida
on Computadora
! 0 1
m
X n
X
k A k1 = max
j
jaij j ; k A k1= max
i
jaij jA
i=1 j =1
q
k A k2 = max
i
i (AH A)
Formas Bilineales
Una forma bilineal es un polinomio real que
ontiene terminos de la forma
aij xi yj . Si A = [aij ℄ es una matriz
ompleja de orden n, y si los ve
tores
omplejos x e y son de orden n y m respe
tivamente, enton
es:
n X
X m
xH Ay = aij xi yj
i=1 j =1
Ejemplo 1.9
Resolver el siguiente sistema (mas in
ognitas que e
ua
iones):
(5 j )x1 + (2 + 3j )x2 + (3 j )x3 + ( 1 + 4j )x4 + ( 6 + j )x5 = 2 9j
4jx1 2x2 + (3 + 5j )x3 7jx4 + (8 2j )x5 = 4 j
(6 j )x1 + (7 j )x2 + (8 3j )x3 + (3 j )x4 + (1 + 4j )x5 = 3 + j
Solu
ion: Ver el programa ejem1 9.m.
% ejem1_9.m SISTEMA DE ECUACIONES: MAS INCOGNITAS QUE ECUACIONES
lear all
A = [5-j 2+3j 3-j -1+4j -6+j
4j -2 3+5j -7j 8-2j
6-j 7-j 8-3j 3-j 1+4j℄;
22 Matemati
a Asistida
on Computadora
B = [2-9j;4-j;3+j℄;
X = A\B; %
% X =
% 3.5719 - 3.4126i --> x1;
% 0 --> x2
% -2.8535 + 1.6221i --> x3
% 0 --> x4
% 0.9991 - 0.4860i --> x5
Ejemplo 1.10
Resolver el siguiente sistema (menos in
ognitas que e
ua
iones):
(5 j )x1 + (2 + 3j )x2 + (3 j )x3 = 2 9j
4jx1 2x2 + (3 + 5j )x3 = 4 j
(6 j )x1 + (7 j )x2 + (8 3j )x3 = 3 + j
( 1 + 4j )x1 + ( 6 + j )x2 + (3 j )x3 = 3 + 7j
7jx1 + (8 2j )x2 + (1 + 4j )x3 = 9
Solu
ion: Ver el programa ejem1 10.m.
% ejem1_10.m SISTEMA DE ECUACIONES: MENOS INCOGNITAS QUE ECUACIONES
lear all
A = [5-j 2+3j 3-j
4j -2 3+5j
6-j 7-j 8-3j
-1+4j -6+j 3-j
-7j 8-2j 1+4j℄;
B = [2-9j;4-j;3+j;-3+7j;-9℄;
X = A\B;
% X =
% 1.2270 - 2.1969i --> x1
% 0.6871 + 1.2202i --> x2
% -0.9472 + 0.4153i --> x3
Ejemplo 1.11
Comprobar numeri
amente que:
xH y = (yH x) = yT x
Solu
ion: Ver el programa ejem1 11.m.
24 Matemati
a Asistida
on Computadora
Ejemplo 1.12
En el siguiente programa se
al
ulan diferentes normas matri
iales y ve
to-
riales.
% ejem1_12.m NORMAS
lear all
% VECTOR DATO
x = [-1+j;3-5j;-5+6j;8-9j;4-2j;-1+j℄;
a = norm(x,5); % NORMA p = 5 (a = 12.3798)
b = norm(x,2); % NORMA EUCLIDIANA (b = 16.2481)
= norm(x,inf); % NORMA INFINITO (
= 12.0416)
d = norm(x,-inf); % NORMA -INFINITO (d = 1.4142)
% MATRIZ DATO
A = [1-j 2-j 3-j -4-j
4j -2 3+5j 2-8j
6-j 7-j 8+3j -7+3j
3+5j 2-8j 1-j 2-9j℄;
e = norm(A); % MAXIMO EIGENVALOR DE A: e = 18.7269
f = norm(A,2); % LO MISMO QUE norm(A): e = f = 18.7269
g = norm(A,1); % max(sum(abs(A)))): g = 29.2046
h = norm(A,inf); % max(sum(abs(A'))): h = 29.3136
k = norm(A,'inf'); % IGUAL QUE norm(A,inf): k = h = 29.3136
m = norm(A,'fro'); % sqrt(sum(diag(A'*A))): m = 23.7276
p = 'fro'; % p DEBE SER 1, 2, inf o 'fro'
n = norm(A,2); % NORMA p: n = 18.7269
Ejemplo 1.13
Sean las matri
es Anm , Bmp y Cmm . Demostrar numeri
amente las siguien-
tes propiedades del rango: rango(A) min(n; m); rango(A) = rango(AH );
rango(AB ) min(rango(A); rango(B )); rango(CB ) = rango(B ).
Solu
ion: El siguiente programa presenta las demostra
iones pedidas.
1.2 Analisis Ve
torial 25
Ejemplo 1.14
El siguiente programa determina la forma de Jordan para la matriz:
2
0 1 0 3 3
6 0 1 1 1 77
A=6 4 0 0 0 1 5
0 0 1 2
% ejem1_14.m FORMA CANONICA DE JORDAN
lear all
A = [0 1 0 3;0 -1 1 1;0 0 0 1;0 0 -1 -2℄; % ORDEN 4
[E D℄ = eig(A);
% E = % MATRIZ DE EIGENVECTORES
% 1.0000 -0.7071 0.9045 0.7068
% 0 0.7071 0 -0.7074
% 0 0 0.3015 -0.0002
% 0 0 -0.3015 0.0002
% 0 0 -1 0
% 0 0 0 -1
rank((-1)*eye(4)-A); % RESULTA 2 => 2 BLOQUES DE JORDAN
% ASOCIADOS CON LA RAIZ TRIPLE (-1)
% FORMA DE JORDAN: 0 0 0 0
% 0 -1 1 0
% 0 0 -1 0
% 0 0 0 -1
Ejemplo 1.15
Determinar la deni
ion de las matri
es siguientes:
2 3 2 3
2 2 2 1 2 1
A=4 2 6 0 5; B=4 2 4 2 5
1 0 2 3 6 0
Solu
i
on: Ver el programa ejem1 15.m.
% ejem1_15.m DEFINICION DE MATRICES
lear all
A = [2 2 -2;2 6 0;-1 0 2℄;
EigA = eig(A); % EIGENVALORES DE A: 0.1996, 6.8922, 2.9083
% A > 0 DADO QUE TODOS SUS EIGENVALORES SON POSITIVOS
B = [1 2 1;2 4 2;3 6 0℄;
EigB = eig(B); % EIGENVALORES DE B: 0, 7.1098, -2.1098
% B ES INDEFINIDA PUES UN EIGENVALOR ES > 0 Y EL OTRO ES < 0
Exponen
ial e at 1
s+a
Seno sen!t !
s2 +!2
Coseno
os!t s
s2 +!2
Seno amortiguado e at sen!t !
(s+a)2 +!2
Coseno amortiguado e at
os!t s+a
(s+a)2 +!2
t=0
n
hR i
Integral L 0t g(t)dt = g(ss)
Desplazamiento en tiempo L[g(t t0)(t t0)℄ = e t0 sg(s)
Desplazam. en fre
uen
ia L[e at g(t)℄ = g(s + a)
Valor ini
ial limt!0 g(t) = lims!1 sg(s)
Valor nal limt!1 g(t) = lims!0 sg(s)
Ejemplo 1.16
La gura 1.1 muestra un
arro de masa m = 1000 kg desplazandose
on una
velo
idad v gra
ias a la a
ion de la fuerza u produ
ida por su motor. Si se
28 Matemati
a Asistida
on Computadora
2.1 Dise~
no de Sistemas de Control Digital
La gura 2.1 muestra la estru
tura de un sistema de
ontrol digital,
uyo
objetivo de
ontrol es lograr que la se~nal de salida Y del pro
eso (de
ara
ter
ontinuo,
omo en la mayora de los
asos) siga a la se~nal de referen
ia r
umpliendo determinadas espe
i
a
iones de dise~no, tales
omo: mnimo
tiempo de estabiliza
ion, mnimo sobreimpulso y/o error en estado esta-
ionario nulo en Y . En otras palabras, el algoritmo de
ontrol implementa-
do, en este
aso digitalmente, debe ser
apaz de
rear una se~nal de
ontrol
U (la variable manipulada), la
ual a
tuando sobre el pro
eso a traves de un
a
tuador, minimi
e la se~nal de error e. El bloque de ltraje es util para eli-
minar las
omponentes
ontaminantes de alta fre
uen
ia de la se~nal de ruido
de medi
ion n. El ltro de ruido puede ser analogi
o o digital y su in
lusion
depende de la magnitud del ruido y su relevan
ia dentro del fun
ionamiento
del sistema de
ontrol.
30 Sistemas Dis
retos
Disturbios
Filtraje Medicion
= Cx + Du + F w
y (2.3)
donde A es la matriz de estado, B es la matriz de
ontrol, E es la matriz
de disturbios en los estados, C es la matriz de salida de los estados, D es
la matriz de salida de las entradas y F es la matriz de disturbios en las
salidas. Las dimensiones de di
has matri
es son: Ann, Bnm, Enn, Crn, Drm
y Err , donde el primer subndi
e es el numero de las de la matriz y el
segundo, el numero de
olumnas. Es importante notar que en (2.3) estamos
empleando las variables residuales (tambien llamadas variables de desvia
ion
o perturba
ionales) siguientes:
x=X X
u=U U
Sin la presen
ia de disturbios (v = w = 0), y para la opera
ion del
pro
eso alrededor del estado de equilibrio (X , U ), las matri
es A, B , C y D
pueden ser determinadas evaluando las siguientes matri
es ja
obianas:
2 f1 f1 3 2 f1 f1 3
X1 Xn U1 Um
A = 6
4
... ... ... 7
5 B=6
4
... ... ... 7
5
fn
X1 fn
Xn (X ;U ) fn
U1 fn
Um (X ;U )
2 h1 h1 3 2 h1 h1 3
X1 Xn U1 Um
C = 6
4
... ... ... 7
5 D=6
4
... ... ... 7
5 (2.4)
hr
X1 hr
Xn (X ;U )
hr
U1 hr
Um (X ;U )
La matriz de transferen
ia para pro
esos multivariables lineales se de-
termina empleando la e
ua
ion matri
ial siguiente:
Y(s) = [C (sI A) 1 B + D℄U(s) (2.5)
donde s es la variable lapla
iana e I es la matriz identidad. Cuando las
se~nales Y y U son unidimensionales, la e
ua
ion anterior se
onvierte en la
e
ua
ion de transferen
ia de un pro
eso univariable. La e
ua
ion
ara
-
tersti
a del pro
eso se obtiene de:
det(sI A) = 0 (2.6)
donde det es la opera
ion determinante. Las ra
es de (2.6) son tambien
ono
idas
omo ra
es
ara
tersti
as, eigenvalores, valores propios, modos,
2.2 Con
epto de Estado y Variables de Estado 33
Ejemplo 2.1
La gura 2.2 muestra dos tanques identi
os
olo
ados en
as
ada. La se
ion
horizontal S =9 m2 de
ada tanque es
onstante. El objetivo de
ontrol es
estabilizar (
ontrolar) la altura H2 empleando
omo fuerza de
ontrol el
ujo de alimenta
ion Qo. Determinar el modelo linealizado de este pro
eso
hidrauli
o.
Q p
0 0
ρ Tanque
H1
1
p
1 γ
g
Q
p 1
0
ρ
Tanque
H2
2
p
2 γ
Q
2
omo: p p
Q1 =
P1 P0 ; Q2 =
P2 P0
donde P1 , P2 y P0 son las presiones en el fondo de los tanques y en el exterior
respe
tivamente, y
=0.4 es una
onstante que depende de la geometra del
ori
io. Si =1.23 kg/m3 es la densidad del lquido y g=9.81 m/s2 es la
a
elera
ion de la gravedad:
P1 P0 = gH1 ; P2 P0 = gH2
El
ujo a
umulado en
ada tanque es:
dH dH
Q0 Q1 = S 1 ; Q1 Q2 = S 2
dt dt
Resolviendo las e
ua
iones anteriores para las alturas, obtenemos:
1
pg p
H_ 1 = Q0 H1 = f1
S S
p
g p
H_ 2 =
p
S
[ H1 H2 ℄ = f2
y su
orrespondiente e
ua
ion de salida:
Y = [0 1℄ H1
H2
Denamos las siguientes variables residuales: h1 = H1 H 1, h2 = H2 H 2,
q0 = Q0 Q 0 . Cono
iendo Q 0 = 3 m3 /s, el estado de equilibrio del pro
eso
se puede obtener de:
1
pg p
H_ 1 = Q 0 H1 = 0
S S
pg p
H_ 2 =
p
[ H1 H 2 ℄ = 0
S
lo que resulta en:
Q 2
H 1 = H 2 = 2 0
g
Apli
ando el ja
obiano, el pro
eso linealizado resulta:
h_ = A h + B q0 ; y = h2 = C h
2.2 Con
epto de Estado y Variables de Estado 35
donde:
2
ppgH
3
"
f1 f1
#
0
h = hh1 ; A= H1 H2 = 4 2
p
S 1
p g 5
2 f2
H1
f2
H2 (H 1 ;H 2 ) p g
2S H 1
p
2S H 2
" #
B=
f1
Q0 1
= 0 ; C = [0 1℄; D = [0℄
f2
Q0 Q0
Ejemplo 2.2
El pro
eso pendulo no lineal mostrado en la gura 2.3 puede rotar libre-
mente alrededor del pivote gra
ias a la a
ion de un torque externo U . En
di
ha gura Bp=1.3366 N-m/rad/s es la fri
ion vis
osa rota
ional en el
punto pivote, Lo=1.6350 m es la longitud de la varilla de peso despre
ia-
ble, Mo=0.5 kg es la masa de la esfera y g=9.81 m/s2 es la a
elera
ion
de la gravedad. La salida de interes es la posi
ion angular del pendulo.
Para las situa
iones mostradas en las guras 2.3(a) y 2.3(b) determine: las
e
ua
iones no lineales de estado y de salida, los puntos de equilibrio, las
e
ua
iones linealizadas de estado y de salida, las fun
iones de transferen
ia,
las e
ua
iones
ara
tersti
as, y la estabilidad del pro
eso.
Bp Mo
U
Θ U
Φ
Lo
Lo
Mo Bp
(a) (b)
Figura 2.3: Pendulo no lineal en posi
ion de equilibrio estable (gura (a)) y
en posi
ion de equilibrio inestable (gura (b)).
Solu
ion: El pro
eso en estudio es univariable; es de
ir, una sola entrada U
a
tuando sobre el pro
eso, y una sola salida: la posi
ion angular. Primero
analizaremos la situa
ion mostrada en la gura 2.3(a). El torque resultante
alrededor del pivote es:
+ Bp_ + MogLo sen
U = Mo L2o (2.7)
36 Sistemas Dis
retos
Notar que (2.7) es no lineal debido al sen. Sele
ionando en (2.7)
omo
variables de estado X1 = , X2 = _ y
omo salida Y = X1 se obtiene:
X_ 1 = X2
X_ 2 =
g
senX1
Bp
X2 +
1 U
Lo Mo Lo2 Mo L2o
Y = X1 (2.8)
uya representa
ion
ompa
ta (e
ua
ion (2.1)
on v = w = 0) resulta:
X_ = f; Y = X1 = h
donde:
" #
X f X 2
X = X1 ; f = f 1 = 1 2U (2.9)
2 x2 +
g senX B
2 2 Lo 1 p
Mo Lo Mo Lo
Notar en (2.9) que n = 2, m = 1, r = 1. Empleando (2.2), los estados de
equilibrio se obtienen de:
X_ 1 = X 2 = 0
X_ 2 =
g
senX 1
Bp
X +
1 U = 0
Lo Mo L2o 2 Mo L2o
y = X1 X 1 (2.10)
uya solu
ion,
on U = 0, es: X2 = 0 y X1 = 2k; k = 0; 1; : : : Por
onsiguiente, los estados de equilibrio son (0[2℄; 0) para la gura 2.3(a) y
([3℄; 0) para la gura 2.3(b). Empleando (2.4), la linealiza
ion de (2.9)
alrededor del estado de equilibrio (X1 ; X2 ; U ) = (0; 0; 0) resulta:
x_ = Ax + Bu; y = Cx + Du
donde: " # " #
A =
f1 f1
X1 X2 = 0 1
f2 f2 g Bp
X1 X2 (0;0) Lo M o L2o
" #
B =
f1
U = 0
f2 1
U 0 Mo L2o
h i
C = h h
X1 X2 (0;0)
= 1 0
h
D = U 0
= [0℄ (2.11)
2.2 Con
epto de Estado y Variables de Estado 37
COMPUTADORA DIGITAL
rd ud u* u
D RETENCION’
DE CONTROL
ALGORITMO
ACTUADOR PROCESO
A T
D FILTRAJE
y MEDICION
yd A y* T
!s 2!max T ! (2.21)
max
u(t) u(j ω)
t ωmax ωmax ω
u*(t) jω
u*(e )
ωs ωs
2 2
t ωs ωmax ωmax ωs ω
Figura 2.5: Respuesta en fre
uen
ia de las se~nales u(t) y u (t) para ilustrar
el teorema del muestreo.
El area total de la se~nal u a la salida de la reten
ion es:
1
X
u(t) = u(kT )[(t kT ) (kT )℄
k=0
u(2T)
u(3T)
u(T)
u(0)
t 0 T 2T 3T 4T 0 T 2T 3T 4T
0.2
0.18
0.16
0.14
Posición (rad)
0.12
0.1
0.08
0.06
0.04
0.02
0
0 100 200 300 400 500 600 700 800 900 1000
Tiempo discreto k
2.3.2 La Transformada Z
Es util introdu
ir la siguiente rela
ion:
z = eT s = eT (+j!) = eT [
os!T + jsen!T ℄ (2.27)
Reemplazando en la e
ua
ion (2.16) la se~nal u por una variable generi
a g,
llegamos a la siguiente deni
ion de la transformada Z :
X1
g(z ) = Z [g(kT )℄ = g(kT )z k = g(0)+ g(T )z 1 + g(2T )z 2 + (2.28)
k=0
La serie en (2.28)
onverge si jg(kT )j se restringe a valores nitos y si jzj > 1.
Las sumatorias siguientes son bastante utiles para resolver problemas
rela
ionados
on la transformada Z :
NX1
ak =
1 aN ; jaj < 1
k=0
1 a
1
= 11a;
X
ak jaj < 1
k=0
1
X a
kak = (1 a)2
; jaj < 1
k=0
N2
X aN1 aN2 1
ak = 1 a
; jaj < 1
k=N1
1 N1
= 1a a ; jaj < 1
X
ak (2.29)
k=N1
A manera de ejemplo, la transformada Z del impulso unitario Æ(kT ), sa-
biendo que Æ(0T ) = 1, resulta:
1
X
Z [Æ(kT )℄ = Æ(kT )z k = z 0 = 1
k=0
46 Sistemas Dis
retos
la
ual es valida para jz 1j < 1 (o jzj > 1), pues la serie debe ser
onver-
gente. La tabla 2.1 ilustra la transformada Z de algunas se
uen
ias notables,
mientras que la tabla 2.2 presenta la rela
ion existente entre la transformada
Z y la transformada de Lapla
e.
A
ontinua
ion se formulan algunas propiedades de la transformada Z :
(1) Linealidad:
Z [ag1 (kT ) + bg2 (kT )℄ = aZ [g1 (kT )℄ + bZ [g2 (kT )℄
(2) Desplazamiento a la dere
ha:
Z [g(kT dT )℄ = z d g(z ); d 0
(3) Desplazamiento a la izquierda:Pd 1
Z [g(kT + dT )℄ = z d [g(z ) =0 g (T )z ℄; d 0
(4) Amortiguamiento:
Z [g(kT )e akT ℄ = g(zeaT )
(5) Multipli
a
ion por una variable:
Z [kg(kT )℄ = z dgdz(z)
(6) Multipli
a
ion por una exponen
ial:
Z [ak g(kT )℄ = g( az )
(7) Teorema del valor ini
ial:
limk!0 x(kT ) = limz!1 x(z)
(8) Teorema del valor nal:
limk!1 g(kT ) = limz!1 z z 1 g(z) = limz!1(1 z 1 )g(z)
Por ejemplo, sabiendo que Z [
os!k℄ es
ono
ido, la transformada Z de
ak
os!k puede ser determinada empleando la propiedad de multipli
a
ion
por una exponen
ial,
omo sigue:
z (z
os!) z (z a
os!)
Z [a
os!k℄ = 2
k =
z 2z
os! + 1 z=z=a z 2za
os! + a2
2
2.3 Fundamentos de Sistemas Dis
retos 47
T T
G 1 (s) G 2 (s)
u(s) u*(s) x(s) x*(s) y(s)
(a)
T y(s)
G 1 (s) G 2 (s)
u(s) u*(s)
(b)
u(s) T
G 1 (s) G 2 (s)
x(s) x*(s) y(s)
(c)
T -Ts
1-e
D(z) G p (s)
u(s) u*(s) s y(s)
(d) G(s)
u(s) T y(s) u(s) y(s)
x(s)
G(s) G(s)
+ x*(s) +
- - T
H(s) H(s)
y*(s)
(e) (f)
Para la gura (e) se tiene: y(s) = G(s)x (s) y x(s) = u(s) H (s)y(s).
Reemplazando y(s) en x(s), muestreando y despejando x(s) se obtiene:
u (s)
x (s) =
1 + [GH ℄(z)
Reemplazando x(s) en y(s) = G(s)x (s) resulta:
G(z )
y (z ) =
1 + [GH ℄(z) U (z)
Para la gura (f) tenemos y(s) = G(s)u(s) G(s)H (s)y (s). Muestre-
ando y despejando y (s) se obtiene:
y(z ) =
[GH ℄(z) u(z)
1 + [GH ℄(z)
2.3.5 El Espa
io de Estado Dis
reto
En la se
ion 2.2 vimos que la dinami
a linealizada de un pro
eso (sin la
presen
ia de disturbios) puede ser representada en el espa
io de estado por
la e
ua
ion (2.3):
x_ = Ax + Bu; y = Cx + Du (2.33)
La solu
ion de la e
ua
ion de estado anterior, dado un estado ini
ial x(t0 ),
es:
Z t
x(t) = eA(t t0 ) x(t0) ) + eAt e A Bu( )d
t0
Z t
= (t t0 )x(t0) + (t )Bu( )d (2.34)
t0
donde:
1
X A (t t0 )
(t t0 ) = L 1 [(sI A) 1 ℄ = eA(t t0 ) =
=0
!
es la matriz de transi
ion. Para demostrar que efe
tivamente (2.34) es una
solu
ion de la e
ua
ion de estado (2.33), basta derivar la expresion (2.34)
on respe
to al tiempo, para as obtener x_ = Ax + Bu.
54 Sistemas Dis
retos
% GRAFICOS
t=linspa
e(0,10,101); t1=linspa
e(0,10,100);
t2=linspa
e(0,10,250);
plot(t,y,t1,y1,'--',t2,y2,'-.'); grid
ylabel('Respuesta y(t)')
xlabel('Tiempo en segundos')
print -deps -f fig2_9
10
−10
y
−20
Salida
−30
−40
−50
0 1 2 3 4 5 6 7 8 9 10
Tiempo en segundos
Figura 2.9: Respuestas y(t) para el ejemplo 2.9. Curva solida: y(t); en
trazos: y(kT1 ), T1 = 0:04 s;
urva punto y raya: y(kT2 ), T2 = 0:1 s.
x(kT ) = u(kT ), kT (k + 1)T , la e
ua
ion de estado se
onvierte en:
Z t
x(t) = (t kT )x(t0) + u(kT ) (t )Bd
t0
Si solo interesa la solu
ion para t = (k + 1)T y empleando el
ambio de
variables que sigue = (k + 1)T , d = d , obtenemos las siguientes
e
ua
iones dis
retas de estado y de salida:
x(k + 1) = Gx(k) + Hu(k); y(k) = Cx(k) + Du(k) (2.36)
donde: Z T
G = (T ) =
; H= eAT ()d B (2.37)
0
Notar que (2.36) es una e
ua
ion ve
torial de diferen
ias que puede ser
resuelta re
ursivamente,
omo sigue:
x(1) = Gx(0) + Hu(0)
x(2) = Gx(1) + Hu(1) = G2 x(0) + GHu(0) + Hu(1)
2.3 Fundamentos de Sistemas Dis
retos 57
...
k
X
x(k) = Gk x(0) + G 1 Hu(k ) (2.38)
=1
donde Gk es la denominada matriz de transi
ion dis
reta. Una segunda alter-
nativa de solu
ion de (2.36) se da en el dominio de z. Apli
ando la propiedad
de desplazamiento ha
ia la izquierda, podemos formular que Z [x(k)℄ = x(z)
y Z [x(k + 1)℄ = z[x(z) x(0)℄. Por tanto, de (2.36) se obtiene:
z [x(z ) x(0)℄ = Gx(z ) + Hu(z )
Despejando:
x(z ) = (zI G) 1 zx(0) + (zI G) 1 Hu(z ) (2.39)
y empleando la e
ua
ion de salida resulta:
y(z ) = C (zI G) 1 zx(0) + [C (zI G) 1 H + D℄u(z ) (2.40)
Comparando las e
ua
iones (2.38) y (2.39) veri
amos que:
Gk = Z 1 [(zI G) 1 z ℄ (2.41)
La matriz de transferen
ia de pulso se determina ha
iendo x(0) = 0 en
(2.40):
y(z ) = Gp (z )u(z ) = [C (zI G) 1 H + D℄u(z ) (2.42)
mientras que la e
ua
ion
ara
tersti
a del sistema se obtiene de:
det(zI G) = 0 (2.43)
la
ual nos informa a
er
a de la estabilidad del sistema. Re
ordar que un
sistema
ontinuo es estable
uando todos sus eigenvalores poseen parte real
negativa. Por
onsiguiente, la zona de estabilidad para sistemas
ontinuos
es el semiplano izquierdo del plano s. Desde que:
z = esT = e(+j!)T = eT ej!T = jz j\z
y
omo jzj 1
uando 0 para
ualquier \z, enton
es la zona de esta-
bilidad en el plano z resulta un
r
ulo de radio unidad:
Un sistema dis
reto es estable si las ra
es de su e
ua
ion
ara
tersti
a,
los eigenvalores, se en
uentran dentro del
r
ulo unitario (en el dominio de
z ). En otro
aso, el sistema no es estable.
58 Sistemas Dis
retos
(2.61)
Ejemplo 2.10
La fun
ion de transferen
ia de pulso de un pro
eso se modela
omo:
P6
y(z ) =0 bi z i
= i
u(z ) 1 + P6i=1 ai z i
donde b0 = 1, b1 = 2:8, b2 = 0:65, b3 = 6:8, b4 = 4:25, b5 = 1:3,
b6 = 1:2, a1 = 1:3, a2 = 1:69, a3 = 0:345, a4 = 0:49, a5 = 0:02 y
a6 = 0:04. Determinar la estabilidad del pro
eso. Determinar la e
ua
ion
2.3 Fundamentos de Sistemas Dis
retos 61
1 0 0 0 0 -a5
0 1 0 0 0 -a4
0 0 1 0 0 -a3
0 0 0 1 0 -a2
0 0 0 0 1 -a1℄;
Ho = [b6-a6*b0
b5-a5*b0
b4-a4*b0
b3-a3*b0
b2-a2*b0
b1-a1*b0℄;
Co = [0 0 0 0 0 1℄; Do=[b0℄;
[num
,den
℄ = ss2tf(G
,H
,C
,D
);
[numo,deno℄ = ss2tf(Go,Ho,Co,Do);
% SE COMPRUEBA QUE: num=num
=numo, den=den
=deno, eig(G
)=eig(Go)
Ejemplo 2.11
Cono
idas las matri
es G, H , C y D (ver programa ejem2 11.m), determine
la e
ua
ion de estado y la e
ua
ion de salida de su forma
anoni
a de Jordan.
Demuestre que la matriz de estado de Jordan y la matriz de estado G poseen
los mismos eigenvalores y que ambas representa
iones generan la misma
fun
ion de transferen
ia de pulso.
Solu
ion: El siguiente programa resuelve las preguntas planteadas.
% ejem2_11.m FORMAS CANONICAS DE JORDAN
lear all
% x(k+1) = G*x(k) + H*u(k); y(k) = C*x(k) + D*u(k);
G = [0 1 0 3
0 -1 1 1
0 0 0 1
0 0 -1 -2℄;
H = [1;0;-4;0℄;
C = [1 0 0 0℄; D = [-2℄;
[num,den℄ = ss2tf(G,H,C,D);
eigG = eig(G); % eigG = EIGENVALORES DE G: -1, -1, -1, 0
rangG = rank(G); % rankA = 3 => G POSEE 3 VECTORES PROPIOS
% LINEALMENTE INDEPENDIENTES => 4-3=1 (UN 1 SOBRE LA DIAGONAL)
[
,p,k℄ = residue(num,den); % EXPANSION EN FRACCIONES PARCIALES
%
= [-8.0000 -8.0000 0.0000 9.0000℄';
% p = [-1.0000 -1.0000 -1.0000 0℄;
% k = -2;
1=
(1);
2=
(2);
3=
(3);
4=
(4);
2.3 Fundamentos de Sistemas Dis
retos 63
dis
reto el tiempo muerto toma la forma z d . Este tiempo muerto puede
existir en la entrada, en la salida o entre las variables de estado del pro
eso,
tal
omo se ilustra a
ontinua
ion:
x(k + 1) = Ax(k dx ) + Bu(k du )
y(k + dy ) = Cx(k)
donde los tiempos muertos dk , du y dy toman valores enteros positivos.
Si la rela
ion d = Tt =T no fuera un entero (o tambien si lo fuera), resulta
util emplear la aproxima
ion de Pade para el tiempo muerto:
1
e T s = 1 sTt + (sTt )2
t
1 (sTt )3 + = num(s)
!2 !3 den(s)
Con una aproxima
ion de ter
er orden, podemos a
omodar retardos de fase
de hasta 200o (3.5 rad) [11℄, lo
ual es su
iente para
apturar el efe
to del
tiempo muerto en mu
has apli
a
iones. Tal aproxima
ion tiene la forma:
num(s) 1 Tt s=2 + (Tt s)2 =10 (Tt s)3 =120
e Ts =
den(s) 1 + Tt s=2 + (Tt s)2 =10 + (Tt s)3 =120
Ejemplo 2.12
Comparar la respuesta a un es
alon del pro
eso:
y(s) 10 e 5:8s
=
u(s) 2s + 1
64 Sistemas Dis
retos
10 yd_
Mux
2s+1
u Proceso parcial Tiempo yd Graph
muerto yd Mux
yda
10 −Tt^3/120s3+Tt^2/10.s 2−Tt/2s+1 yda_
yda
2s+1 Tt^3/120.s3+Tt^2/10.s 2+Tt/2.s+1
Proc. parcial Aproximación del tiempo muerto
Figura 2.10: Compara
ion de las respuestas a un es
alon del pro
eso y de
su modelo aproximado mediante una rela
ion Pade de ter
er orden (ejemplo
2.12).
12
10
8
Respuestas al escalóon
−2
0 2 4 6 8 10 12
Tiempo en segundos
Figura 2.11: Compara
ion de las respuestas a un es
alon del pro
eso (
urva
solida) y de su modelo aproximado (
urva en trazos) mediante una rela
ion
Pade de ter
er orden (ejemplo 2.12).
66 Sistemas Dis
retos
B = [1
0℄;
C = [0 1℄; D = [0℄;
M = [B A*B℄; % MATRIZ DE CONTRABILIDAD
rangM = rank(M);% rangM = 2 = n => COMPLETAMENTE CONTROLABLE
N = [C' A'*C'℄; % MATRIZ DE OBSERVABILIDAD
rangN = rank(N);% rangN = 1 < 2 => NO ES COMPLETAMENTE OBSERVABLE
% PROCESO PENDULO
Bp = 1.3366; Lo = 1.635; Mo = 0.5; g = 9.81;
AP = [0 1
-g/Lo^2 -Bp/(Mo*Lo^2)℄; % n = 2
BP = [0
1/(Mo*Lo^2)℄; CP = [1 0℄; DP = [0℄;
MP = [BP AP*BP℄; % MATRIZ DE CONTRABILIDAD
rangMP = rank(MP); % rangMP = 2 = n => COMPLETAMENTE CONTROLABLE
NP = [CP' AP'*CP'℄;% MATRIZ DE OBSERVABILIDAD
rangNP = rank(NP); % rangNP = 2 = n => COMPLETAMENTE OBSERVABLE
Cap
tulo 3
Este
aptulo presenta la deriva
ion de modelos dinami
os de pro
esos
ontinuos
on su
orrespondiente linealiza
ion y dis
retiza
ion. Tambien se explora la
respuesta de los pro
esos a entradas tpi
as y se determina las
ara
tersti
as de
ontrolabilidad y observabilidad de los mismos, empleando
omo herramienta de
al
ulo la
omputadora. Las tres primeras se
iones se dedi
an a los pro
esos
uyos sistemas de
ontrol avanzado van a ser implementados en tiempo real.
Tales pro
esos son: el pendulo invertido, la grua-puente y el servomotor de
orriente
ontinua sujeto a
argas no lineales. En su se
ion problemas resueltos
se presenta la modela
ion de diversos pro
esos,
uyos sistemas de
ontrol seran
dise~nados en los
aptulos siguientes. La ultima se
ion propone la deriva
ion
de modelos dinami
os de otros pro
esos. Todos los ar
hivos
orrespondientes a
los ejer
i
ios y problemas desarrollados en este
aptulo se pueden des
argar del
sitio: http://ee.uni.edu.pe/728681F.
+ Fuerza de
u control y’
-
Servomotor
D.C. y
θ Pendulo
z F
Carro
11
00
00
11
00
11
l v /2 00
11
me g
θ
mvg lv
le
z’
0
z
P
F
donde mi es la masa de la i-esima part
ula, ~ri es la posi
ion del
entro de
masa de la i-esima part
ula y F~j es la j-esima fuerza apli
ada al sistema de
part
ulas. Apli
ando la e
ua
ion (3.3) a nuestro sistema (en la dire
ion z)
obtenemos:
d2 d2 d2
m
2 z + me 2 ze + mv 2 zv = F (3.4)
dt dt dt
Luego, sustituyendo ze (e
ua
ion (3.1)) y zv (e
ua
ion (3.2)) en la e
ua
ion
(3.4) obtenemos:
d2 d2 d2 l
m
2 z + me 2 (z + le sen ) + mv 2 (z + v sen ) = F (3.5)
dt dt dt 2
y desarrollando las derivadas resulta:
(m
+ me + mv )z (me le + mv l2v )(sen )+ _2(mele + mv l2v )(
os ) = F (3.6)
Para
ompletar el modelo, utilizamos la segunda ley de Newton apli
ada al
movimiento rotatorio alrededor del punto P del
arro. Esta ley estable
e que
para un sistema de N part
ulas en movimiento rota
ional respe
to a un sis-
tema de referen
ia iner
ial, sometidas a M torques externos perpendi
ulares
al plano de giro, se
umple que:
N
X d2 XM
Ji 2 i = j (3.7)
i=1
dt j =1
las part
ulas i de di
ho sistema, pero en dire
ion opuesta a la a
elera
ion.
Empleando la e
ua
ion (3.7) en la gura 3.2 obtenemos:
(Je +Jv ) = meg(sen)le +mv g(sen ) l2v mez(
os )le mv z(
os ) l2v (3.8)
y ordenando:
(mele + mv l2v )g(sen ) (mele + mv l2v )z (
os ) = (Je + Jv ) (3.9)
donde:
l2
Je = me le2 ; Jv = mv v (3.10)
3
3.1.2 Modelo del Subsistema Motor-Polea
El subsistema motor-polea esta representado en la gura 3.3. El modelo del
sistema ele
tri
o se en
uentra apli
ando la ley de voltajes de Kir
hho a
la parte ele
tri
a de di
ha gura. Ademas, debido a que la indu
tan
ia en
servomotores D.C. de magneto permanente es peque~na, podemos despre
iar
su efe
to en el modelo. As obtenemos:
Ra θm
+
u Va Vb Jo rp
-
La Jm F
Bm Bo
donde:
Jeq = Jm + n2 (Jo + Jp ) (3.14)
Beq = Bm + n2 Bo (3.15)
El torque produ
ido en el eje del servomotor viene dado por la e
ua
ion:
Tm = Km ia (3.16)
Sustituyendo la e
ua
ion (3.16) en (3.13) y despejando ia se obtiene:
J B nr
ia = eq m + eq _m + p F (3.17)
Km Km Km
Luego, substituyendo las e
ua
iones (3.17) y (3.12) en (3.11) y despe-
jando F obtenemos:
Km KA Jeq Beq Km Kb _
F = Ra n rp
u
n rp m
+
n rp Ra n rp m
(3.18)
Para transformar el desplazamiento angular del servomotor en el desplaza-
miento horizontal del
arro en fun
ion del radio de la polea y del fa
tor de
redu
ion del servomotor, empleamos:
z
m = (3.19)
nr p
donde:
lv
M1 = m
+ me + mv ; M2 = mele + mv (3.24)
2
J
J1 = Je + Jv ; J2 = 2eq2 (3.25)
n rp
Km B KK
Kx = ; Bx = 2eq2 + 2b 2 m (3.26)
Ra nrp n rp n rp Ra
2
0 3
6 K M2 K
x A7
B=6 (M1 +J2 )J1 M22 7 (3.40)
6
4 0 7
5
J1 Kx KA
(M1 +J2 )J1 M22
z F
Carro
θ
’ puente
Grua
y’
y y’
z
P z’
0
F z
lv
θ
2
le
11
00
00
11
00 m v g
11 lv
me g
y reordenando, obtenemos:
(mele + mv l2v )z(
os ) (mele + mv l2v )g(sen ) = (Je + Jv ) (3.55)
donde:
l2
Je = me le2 ; Jv = mv v
3
3.2.2 Modelo del Subsistema Motor-Polea
Este subsistema es el mismo que se desarrollo para el pendulo invertido en
la subse
ion 3.1.2, e
ua
ion (3.20):
Km KA Jeq Beq Km Kb
F= u z + z_
Ra n rp n2 r 2
p n2 r2 Ra n2 r2
p p
Las e
ua
iones (3.53), (3.55) y (3.20) representan el modelo matemati
o
del pro
eso grua-puente
ontrolado por la
orriente de armadura. Tales
e
ua
iones pueden ser es
ritas en forma
ompa
ta
omo sigue:
M1 z + M2 (sen )_ 2 M2 (
os ) F = 0 (3.56)
M2 g(sen ) + M2 z(
os ) J1 = 0 (3.57)
F = Kx KA u J2 z Bxz_ (3.58)
donde: l
M1 = m
+ me + mv ; M2 = me le + mv v
2
Jeq
J1 = Je + Jv ; J2 = 2 2
nr p
Km B
Kx =
Ra nrp
; Bx = 2eq2
n rp
+ nK2rbK2Rma
p
A=6 6
02
2
0 0 1
2 7
7 (3.67)
4 5
(M1 +J2 )J1 M22 0 0 (M1 +J2 )J1 M22
M2 g J1 B x
y 2
0 3
6 K M2 K 7x A
B=6 (M1 +J2 )J1 M22 7 (3.68)
6
4 0 7
5
J1 Kx KA
(M1 +J2 )J1 M22
600
400
200
salida
−200
−400
−600
−800
−2 −1.5 −1 −0.5 0 0.5 1 1.5 2
entrada
Figura 3.6: Respuesta del servomotor sin
ompensar (voltaje vs. velo
idad
angular).
Observar en la gura 3.7 que la zona muerta de velo
idad nula se presenta
para valores de voltaje entre 0.1 volt. Tal zona muerta es una no linealidad
que puede introdu
ir efe
tos no deseados en el
ontrol, por lo que debe ser
ompensada mediante software,
omo sigue (ver gura 3.8):
82 Modelado de Pro
esos
Tabla 3.1: Variables y parametros valorados para los pro
esos pendulo in-
vertido y grua-puente.
Smbolo Des
rip
ion Valor/Formula
posi
ion angular de la varilla
F fuerza apli
ada al
arro
m posi
ion angular del motor
z posi
ion del
arro
lv longitud de la varilla 0.767 m
le distan
ia entre P y la esfera
ze
omponente horizontal
zv
omponente horizontal
g gravedad 9.8 N
me masa de la esfera no usado
mv masa de la varilla 0.063095 kg
m
masa del
arro 0.92 kg
mp masa de la polea 0.2 kg
KA ganan
ia del ampli
ador 14.9
Ra resisten
ia del motor 7.38 ohm
La indu
tan
ia del motor se despre
io
Kb
onstante
ontraele
tromotriz 31.035210 3 V/rad
Km
onstante de torque del motor 31.07110 3 N-m/A
Jm iner
ia del eje primario del motor 1.959610 6 kg-m2
Bm fri
ion vis
osa del eje primario 1.834210 3 N-m/rad/s
Jo iner
ia del eje se
undario se despre
io
Bo fri
ion vis
osa del eje se
undario se despre
io
n fa
tor de redu
ion de velo
idad 1/19.741
rp radio de la polea 0.0648 m
Jp iner
ia de la polea mp rp2 =2
Jeq momento de iner
ia equivalente Jm + n2 (Jo + Jp )
Beq fri
ion vis
osa equivalente Bm + n2 Bo
Je momento de iner
ia de la esfera mele2
Jv momento de iner
ia de la varilla mv lv2 =3
3.2 Modelo del Pro
eso Grua-Puente 83
entrada vs salida
150
100
50
salida
−50
−100
−150
−0.4 −0.3 −0.2 −0.1 0 0.1 0.2 0.3 0.4
entrada
entrada vs salida
800
600
400
200
salida
−200
−400
−600
−800
−2 −1.5 −1 −0.5 0 0.5 1 1.5 2
entrada u
si SE\~NAL_DE_CONTROL < 0
enton
es VOLTAJE_HACIA_EL_MOTOR = SE\~NAL_DE_CONTROL - 0.1
si SE\~NAL_DE_CONTROL > 0
enton
es VOLTAJE_HACIA_EL_MOTOR = SE\~NAL_DE_CONTROL + 0.1
si SE\~NAL_DE_CONTROL = 0
enton
es VOLTAJE_HACIA_EL_MOTOR = SE\~NAL_DE_CONTROL
1.4
1.2
Posición q (rad); entrada u (voltios)
0.8
0.6
u
0.4
0.2
0
0 1 2 3 4 5 6 7 8 9 10
Tiempo en segundos
La e
ua
ion 3.92 indi
a que en la implementa
ion del software del sistema
de
ontrol debemos
ompensar la se~nal de
ontrol u en 0.12 volt. Expe-
rimentalmente, un valor de 0.2 ha generado buenos resultados.
Por otra parte, debido a que valores grandes de la se~nal de
ontrol u
pueden saturar al servomotor, es que se requiere un limitador de la tension
de
ontrol u. Este limitador puede tambien implementarse en el software
de
ontrol. Se ha determinado experimentalmente que para no entrar en la
zona de satura
ion del servomotor, la se~nal de
ontrol
ompensada no debe
sobrepasar el umbral de 1.4 voltios.
3.3.5 Linealiza
ion y Dis
retiza
ion del Pro
eso
Asumiendo que la se~nal de
ontrol u esta debidamente
ompensada de no
linealidades y despre
iando la indu
tan
ia L del servomotor, enton
es, para
desvia
iones peque~nas alrededor del origen se
umple que senx1 x1 . Apli-
ando tal aproxima
ion en la e
ua
ion (3.88) obtenemos una e
ua
ion de
estado lineal de la forma x_ = A
x + B
u y una e
ua
ion de salida y = C
x,
donde:
A
=
0 1
N ( B + Kn2 E )
M
M MR
B
=
0 ; C
= 1 0 (3.93)
KnK a
t
MR
A tal resultado tambien se puede llegar si apli
aramos la te
ni
a del ja
o-
biano. La fun
ion de transferen
ia Gp(s) del pro
eso puede determinarse
mediante la rela
ion:
y(s)
Gp (s) =
u(s)
= C
[sI A
℄ 1B
(3.94)
La fun
ion de transferen
ia de pulso Gp(z) se determina
omo sigue:
y(z ) 1 Gp (s)
Gp (z ) = = (1 z )Z s (3.95)
u(z )
donde Z [:℄ es el operador transformada z. Di
ha fun
ion de transferen
ia
depende del tiempo de muestreo T y posee la siguiente estru
tura:
y(z ) b1 z + b2 b1 z 1 + b2 z 2
Gp (z ) = = = (3.96)
u(z ) z 2 + a1 z + a2 1 + a1 z 1 + a2 z 2
3.4 Problemas Resueltos 91
Cal
ular los eigenvalores del pro
eso, tanto en el dominio
ontinuo
omo en el dominio dis
reto.
Sele
ionar un tiempo de muestreo y determinar el modelo del pro
eso
en el espa
io de estado dis
reto. Tener en
uenta que el tiempo de
muestreo sele
ionado no ne
esariamente sera usado
uando el pro
eso
sea
ontrolado digitalmente. Veremos que la ele
ion del tiempo de
muestreo es a
onvenien
ia del algoritmo empleado.
Gra
ar las respuestas del pro
eso
ontinuo y del pro
eso dis
retizado
uando las se~nales de entrada son del tipo es
alon.
La solu
ion a
ada problema se presenta en ar
hivos m (
on extension m),
los
uales pueden ser eje
utados en el ambiente de trabajo de MATLAB.
Las respuestas al es
alon se muestran en las guras
orrespondientes.
Problema 3.1
La gura 3.12 muestra el diagrama de
uerpo libre del sistema de suspen-
sion de la rueda de un bus (normalmente un bus posee
uatro de tales
sistemas), donde m1 = 2500 kg es la masa que soporta el sistema de sus-
pension, m2 = 320 kg es la masa del sistema de suspension, k1 = 80000
N/m es la
onstante del resorte de suspension, k2 = 500000 N/m es la
ons-
tante del resorte del aro mas la rueda, b1 = 350 N-s/m es la
onstante de
amortiguamiento de la suspension y b2 = 15020 N-s/m es la
onstante de
amortiguamiento del aro mas la rueda. Este modelo se en
uentra en el sitio
www.engin.umi
h.edu/group/
tm/index.html.
Un buen sistema de suspension debe tratar de eliminar en el tiempo
mas
orto posible las os
ila
iones produ
idas por protuberan
ias, desniveles
y hue
os en la pista. Teniendo en
uenta que la distan
ia x2 w (la de-
forma
ion de la rueda) es despre
iable, enton
es podemos usar la distan
ia
x1 x2
omo la salida de nuestro pro
eso, dado que la distan
ia x1 w es
dif
il de medir. El disturbio w puede modelarse
omo un es
alon. Di
ho
disturbio puede ser provo
ado, por ejemplo,
uando el bus esta saliendo de
un desnivel pronun
iado de
orta longitud. Las e
ua
iones del movimiento
que gobiernan el sistema de suspension son:
m1 x1 = b1 (x_ 1 x_ 2 ) k1 (x1 x2 ) + u
m2 x2 = b1 (x_ 1 x_ 2 ) + k1 (x1 x2 ) + b2 (w_ x_ 2 ) + k2 (w x2 )
3.4 Problemas Resueltos 93
Masa de 1/4
x1 m1
del bus
k1 u b1
x2 Masa de la m2
suspension
k2 b2
w
% G =
% 0.9995 0.0100 -0.0010 0.0000
% -0.1306 0.9995 -0.1834 -0.0024
% 0.4271 0.0022 0.5513 0.0077
% 11.5437 0.0643 -14.1982 0.9221
% H =
% 0.0000 0.0005
% 0.0000 0.1306
% 0.0000 -0.4271
% 0.0000 -11.5437
% RESPUESTAS AL ESCALON
[Y,X,t℄ = step(A,B,C,D);
[YY,XX℄ = dstep(G,H,C,D);
tt = linspa
e(0,size(YY,1)*T,size(YY,1));
subplot(221)
plot(t,Y(:,1)); grid
xlabel('Tiempo en segundos')
3.4 Problemas Resueltos 95
−5 −5
x 10 x 10
2.5 2.5
y(k) para u=1, w=0
y(t) para u=1, w=0
2 2
1.5 1.5
1 1
0.5 0.5
0 0
0 50 100 150 0 50 100 150
Tiempo en segundos Tiempo en segundos
1 1
y(k) para u=0, w=1
y(t) para u=0, w=1
0.5 0.5
0 0
−0.5 −0.5
−1 −1
0 50 100 150 0 50 100 150
Tiempo en segundos Tiempo en segundos
Problema 3.2
La dinami
a de un avion puede ser des
rita por varios
onjuntos a
oplados de
e
ua
iones diferen
iales no lineales. Sin embargo, bajo
iertas suposi
iones,
tales e
ua
iones pueden ser desa
opladas y linealizadas para obtener dos
onjuntos: las e
ua
iones longitudinales y las e
ua
iones laterales. El
ontrol
de la in
lina
ion del avion mostrado en la gura 3.14 es un problema
longitudinal.
Empuje
x
θ
Impulso α
γ
e
x’
Arrastre
δe
z
Peso
z’
% G =
% 0.9968 0.5649 0
% -0.0001 0.9957 0
% 0.0000 0.5658 1.0000
% H =
% 0.0024
% 0.0002
% 0.0001
% RESPUESTAS AL ESCALON
[Y,X,t℄ = step(A,B,C,D);
[YY,XX℄ = dstep(G,H,C,D);
98 Modelado de Pro
esos
tt = linspa
e(0,size(YY,1)*T,size(YY,1));
subplot(211)
plot(t,Y); grid
xlabel('Tiempo en segundos')
ylabel('y(t)
ontinua')
subplot(212)
plot(tt,YY); grid
xlabel('Tiempo en segundos')
ylabel('y(k) dis
reta')
print -deps -f P3_2P4
6
y(t) continua
0
0 5 10 15 20 25 30
Tiempo en segundos
4
y(k) discreta
0
0 5 10 15 20 25
Tiempo en segundos
Figura 3.15: Respuestas al es
alon para el angulo de in
lina
ion del avion
omer
ial en vuelo.
Problema 3.3
La bola mostrada en la gura 3.16 puede rodar a lo largo de la barra
on
un grado de libertad. Una leva
one
ta la barra
on un engranaje que esta
a
ionado por un servomotor. Se desea dise~nar un sistema de
ontrol que
pueda mantener la bola sobre la barra. Asumir que la bola rueda libre de
fri
ion. Los parametros del pro
eso son: masa de la bola M = 0.11 kg,
radio de la bola R = 0.015 m, distan
ia del extremo de la leva al
entro del
engranaje d = 0.03 m, a
elera
ion de la gravedad g = 9.8 m/s2, longitud de
3.4 Problemas Resueltos 99
r
L BARRA
ESFERA
LEVA
α
θ
ENGRANAJE
d
Sin embargo, usaremos
uatro estados, pues en lugar de
ontrolar la posi
ion
a traves de , lo haremos a traves de , lo que en esen
ia signi
a que
queremos
ontrolar el torque de la barra. Las e
ua
iones de estado y de
salida para esta situa
ion son:
2 3 2 0 1 0 0 32 r 3 2 0 3
r_
6 r 7 6
7=6
0 0 L Mgd+M 0 77 66 r_ 77 66 0 77
6
4 _ 5 6 4 0 0
2J
+
5 5 4 0 5
74 u
0 1
R
0 0 0 0 _ 1
2 3
r
y=
6
1 0 0 0 64 r_ 7
7
5
_
El modelo des
rito esta en www.engin.umi
h.edu/group/
tm/index.html.
% P3_3P5.m SOLUCION AL PROBLRMA 3.3
lear all
% MODELO DE LA BOLA SOBRE LA BARRA
M=0.11; R=0.015; d=0.03; g=9.8; L=1; J=9.99e-6;
A = [0 1 0 0
0 0 M*g/(L*J/R^2+L*M) 0
0 0 0 1
0 0 0 0℄;
B = [0;0;0;1℄;
C = [1 0 0 0℄; D = [0℄;
% CONTROLABILIDAD Y OBSERVABILIDAD DEL PROCESO
rAB = rank(
trb(A,B)); % rAB = 4 => COMPLETAMENTE CONTROLABLE
rAC = rank(obsv(A,C)); % rAC = 4 => COMPLETAMENTE OBSERVABLE
eigA = eig(A); % COMPUTA EIGENVALORES
% eigA(1) = 0; eigA(2) = 0; eigA(3) = 0; eigA(4) = 0;
% G =
% 1.0000 0.1000 0.0010 0.0000
% 0 1.0000 0.0209 0.0010
3.4 Problemas Resueltos 101
% 0 0 1.0000 0.1000
% 0 0 0 1.0000
% H =
% 0.0000
% 0.0000
% 0.0050
% 0.1000
% RESPUESTAS AL ESCALON
TT=0:0.1:3;
[Y,X℄ = step(A,B,C,D,1,TT);
[YY,XX℄ = dstep(G,H,C,D,1,31);
subplot(211)
plot(TT,Y); grid
xlabel('Tiempo en segundos')
ylabel('y(t)
ontinua')
subplot(212)
plot(TT,YY); grid
xlabel('Tiempo en segundos')
ylabel('y(k) dis
reta')
print -deps -f P3_3P5
0.8
0.6
y(t) continua
0.4
0.2
0
0 0.5 1 1.5 2 2.5 3
Tiempo en segundos
0.8
0.6
y(k) discreta
0.4
0.2
0
0 0.5 1 1.5 2 2.5 3
Tiempo en segundos
Problema 3.4
La gura 3.18 muestra un horno de laboratorio para
ontrolar temperaturas
on pre
ision. El modelo de este pro
eso se en
uentra en la referen
ia [15℄.
Asumiendo que existe buena mez
la de aire
aliente, el
alor entregado al
horno se modela
omo:
d V2 o
(i o ) = Q
Qe; Q
=
; Qe = i
dt R r
donde i es la temperatura interior en K o en C, o es la temperatura
o
exterior en K o en oC, Q
es el
ujo de
alefa
ion en J/s o watt, Qe es
el
ujo de perdida en J/s o watt,
es la
apa
idad termi
a en J/K, r es la
resisten
ia termi
a en K/watt, R es la resisten
ia ele
tri
a en ohm y V
es el
voltaje de
alefa
ion. Notar que podemos usar K o o C, pues las opera
iones
derivada o diferen
ia eliminan el valor 273 de: K = 273 + oC.
1111111111111111111111
0000000000000000000000
0000000000000000000000
1111111111111111111111
00
11
00 10
11 00
11 Calor perdido
00 Q o
11
00
11 00
11
Calentador electrico
+
00
11 0
1
000
111 00
11
00 111
11 000 Calor entregado
11111111
00000000 00
11
00
11
00
11 000
111 00
11
00
11
Vc
000
111
00 111
11
Qc Temperatura
00 exterior
11
00
11 0001010 Temperatura
00
11 Θo
_
00
11
00
11 0
1 interior Θi 00
11
00
11
00
11
0000000000000000000000
1111111111111111111111 00
11
0000000000000000000000
1111111111111111111111
Figura 3.18: Horno de laboratorio.
Si o se
onsidera
onstante, la dinami
a del horno se des
ribe
omo:
di 1 1 1 V2
+
dt r
i = o +
r
R
y
uando i al
anza su estado esta
ionario i:
i = o + Rr V
2
La tabla 3.3
ontiene datos experimentales de la
ada de temperatura
uan-
do se apaga el horno. La tabla 3.4 tabula el voltaje de
alentamiento versus
la temperatura interior en estado estable. Para ambas tablas la temperatura
exterior es de 30 o C .
3.4 Problemas Resueltos 103
La
urva exponen
ial 120e t= obtenida
on los datos de la tabla 3.3 permite
al
ular su
onstante de tiempo = r
= 3000 s. La
urva
uadrati
a
obtenida
on los datos de la tabla 3.4 permite obtener r=R = 5 10 2 . Por
onsiguiente, la dinami
a del horno resulta:
di 1 i + 1 0 + 1 V 2 = f (i; o; V
)
dt
= 3000 3000 60000
Para efe
tos de linealiza
ion podemos denir las siguientes variables:
i = i i; o = o o; v
= V
V
Enton
es, la e
ua
ion linealizada empleando el ja
obiano para el punto de
opera
ion i = 50 oC , e = 30 oC , V
= 20 volt, resulta:
di
dt
= fi i +
f
+
f
v
o o o V
V
i
di 1 i + 1 o + 1 v
= 3000
dt 3000 1500
104 Modelado de Pro
esos
Problema 3.5
La gura 3.20 muestra un monorriel de dos
arros. El modelo de este pro
eso
se en
uentra en la referen
ia [15℄. Sean M1 la masa del
arro de maquinas y
B1 sus fri
iones debido al aire y al rodamiento. La fuerza lineal equivalente
para mover al pro
eso se designa
omo u(t). Los dos
arros poseen masas
M2 y M3 respe
tivamente, y estan sujetos a fri
iones B2 y B3 . Los
arros
se a
oplan uno al otro
on dispositivos no rgidos (resortes) que poseen
3.4 Problemas Resueltos 105
1.5
y(t) continua
0.5
0
0 2000 4000 6000 8000 10000 12000 14000 16000
Tiempo en segundos
1.5
y(k) discreta
0.5
0
0 2000 4000 6000 8000 10000 12000
Tiempo en segundos
1
0
0
1 x1
0
1 x2
0
1
0
1
x3
0
1
0
1
B 23 B 12
0
1
0
1
2do. CARRO 1er. CARRO MAQUINA
0
1 M3 M2 M1
0
1 0000000
1111111
K 23 1111111
0000000
K 12 1111111
0000000
000000000000000000000000000000000000
11
0
11111111111111111111111111111111111
0000000
1111111
B3
0000000
1111111
B2
0000000
1111111
B1
Figura 3.20: Pro eso monorriel de dos arros mas un arro de maquinas.
Problema 3.6
La gura 3.22(a) muestra el diagrama de bloques simpli
ado del pro
eso
as
ensor,
uyo modelo se en
uentra en la referen
ia [15℄. El problema a re-
solver es posi
ionar el as
ensor ade
uadamente. El voltaje de armadura v(t)
lo suministra un ampli
ador de poten
ia
on satura
ion (gura 3.22(b)),
108 Modelado de Pro
esos
0.1
continuas
0.08
0.06
Salidas 0.04
0.02
0
0 0.5 1 1.5 2 2.5 3
Tiempo en segundos
0.1
discretas
0.08
0.06
0.04
Salidas
0.02
0
0 0.5 1 1.5 2 2.5 3
Tiempo en segundos
% G =
% 0.9608 0 0 0
% 0.1961 1.0000 0 0
% 0.3227 0 0.6703 0
% 0.6176 0 0 0.3679
% H = 1.0e-003 *
% 0.1961
% 0.0197
% 0.0347
% 0.0725
% RESPUESTAS AL ESCALON
110 Modelado de Pro
esos
v x1
200 0.005
3000
1
u t
-200 5 10 15
(b) (c)
Posicion del
x4 ascensor
u D/A con u v Actuador
mas x
memoria sensores 2
x4
Computador Amplificador
digital
x3 Voltaje de sensor de
armadura velocidad
v
A/D
sensor de posicion x3
(d)
[Y,X,t℄ = step(A,B,C,D);
[YY,XX℄ = dstep(G,H,C,D);
tt = linspa
e(0,size(YY,1)*T,size(YY,1));
subplot(211)
plot(t,Y); grid
xlabel('Tiempo en segundos')
ylabel('Salidas
ontinuas')
subplot(212)
plot(tt,YY); grid
xlabel('Tiempo en segundos')
ylabel('Salidas dis
retas')
print -deps -f P3_6P8
0.15
Salidas continuas
0.1
0.05
0
0 5 10 15 20 25 30
Tiempo en segundos
0.2
Salidas discretas
0.15
0.1
0.05
0
0 5 10 15 20 25 30 35 40 45
Tiempo en segundos
Problema 3.7
En la gura 3.24(a) se desea redu
ir la humedad h del material a granel de la
tolva. La banda transportadora que se desplaza a una velo
idad
onstante
de v = 1 m/s, introdu
e el material a un horno de se
ado. El sensor de
humedad dete
ta hr a una distan
ia d = 10 m del horno y propor
iona la
se~nal de voltaje vr . El horno puede modelarse
omo un pro
eso de primer
112 Modelado de Pro
esos
orden. La gura 3.24(b) muestra la F.T. del pro
eso. El modelo del pro
eso
en estudio se en
uentra en la referen
ia [10℄.
Tolva Controlador
Referencia
Sensor
Horno
d
v
v Deposito
(b)
u hs hr vr
1 10
e - d/v
s+1 s + 0.5
Horno Tiempo muerto Sensor
% H =
% 0.0872
% 0.0046
% 0.0002
% 0.0000
% 0.0000
% EIGENVALORES:
eigG = eig(G);
% eigG =
% 0.9048; 0.9633+0.0338i; 0.9633-0.0338i; 0.9512; 0.9546
% RESPUESTAS AL ESCALON
[Y,X,t℄ = step(A,B,C,D);
[YY,XX℄ = dstep(G,H,C,D);
tt = linspa
e(0,size(YY,1)*T,size(YY,1));
subplot(211)
plot(t,Y); grid
xlabel('Tiempo en segundos')
ylabel('Humedad
ontinua')
subplot(212)
plot(tt,YY); grid
xlabel('Tiempo en segundos')
ylabel('Humedad')
print -deps -f P3_7P10
Problema 3.8
Los parametros valorados del pro
eso mostrado en la gura 3.26 son: mo-
mento de iner
ia del rotor J = 0.01 kg-m2 =s2 ,
onstante ele
tromotriz
Ke = Kt = 0.01 N-m/A, resisten
ia R = 12 ohm, resisten
ia de armadura
RA R,
ondensador C = 0.5 F, indu
tan
ia de armadura L = 0.5 H,
onstante torsional K! = 1.8 N-m/rad.
Las e
ua
iones que gobiernan la dinami
a del pro
eso ele
trome
ani
o
mostrado en la gura 3.26 se des
riben a
ontinua
ion. Subpro
eso ele
tri
o:
1 v
IR = (v v ); C C = I IM ; L M = v e
dI
C R C
R dt dt
114 Modelado de Pro
esos
20
continua
15
10
Humedad 5
−5
0 2 4 6 8 10 12 14 16 18 20
Tiempo en segundos
20
Humedad discreta
15
10
−5
0 5 10 15 20 25
Tiempo en segundos
0 0
! t e ! t e
K t
J
2 1 3
RC
0 5; C = 0 0 1
B=4
0
El modelo del pro
eso en estudio se en
uentra en la referen
ia [10℄.
3.4 Problemas Resueltos 115
IR R L IM
+ Kω
+
v C e
-
-
T ω2
J
ω1
% 0.9720 + 0.1968i
% 0.9720 - 0.1968i
% G =
% 0.9638 -0.1970 0
% 0.1970 0.9802 0
% 0.0099 0.0993 1.0000
% H =
% 0.0164
% 0.0017
% 0.0001
% RESPUESTAS AL ESCALON
[Y,X,t℄ = step(A,B,C,D);
[YY,XX℄ = dstep(G,H,C,D);
tt = linspa
e(0,size(YY,1)*T,size(YY,1));
subplot(211)
plot(t,Y)
xlabel('Tiempo en segundos')
ylabel('Voltaje en C (
ontinuo)')
grid
subplot(212)
plot(tt,YY)
xlabel('Tiempo en segundos')
ylabel('Voltaje en C (dis
reto)')
grid
print -deps -f P3_8P11
Voltaje en C (continuo)
4
0
0 5 10 15 20 25 30 35 40 45 50
Tiempo en segundos
5
Voltaje en C (discreto)
0
0 10 20 30 40 50 60
Tiempo en segundos
Angulo de
θ ’
elevacion
’
Azimut: angulo de
posicionamiento horizontal
Problema 3.10
Una
olumna de destila
ion es un pro
eso
omplejo que requiere una gran
antidad de variables (mas de 100) para des
ribir su
omportamiento en
forma muy aproximada. Sin embargo, ha
iendo las simpli
a
iones del
aso
(tales
omo redu
ion del numero de variables y linealiza
ion de los puntos
de opera
ion) se puede llegar a un modelo redu
ido que pueda ser empleado
para el
ontrol del pro
eso. Ese es el
aso de una
olumna de extra
ion
3.5 Problemas Propuestos 119
(glycol)
Agua
T T1
Mezcla de 1
0 S: flujo lateral
0 1
1 de vapor
agua e iso-
propanol z
1 Propanol
Glycol T
T 2
1
0
0 2
1
z2
u 1 : vapor de
calentamiento
Producto (glycol) Concentraciones Temperaturas
Figura 3.29: Columna de destila
ion
on los perles de
on
entra
ion y de
temperatura.
Las e
ua
iones de estado y de salida que gobiernan el pro
eso en
uestion
son las siguientes:
x = Ax + Bu + F d; y = Cx
donde:
2
Q1 3
6 V1 7 u 1 x 1 T 1
x=6 4 z1 5 ;
7 u = S ; d = F F A ; y = T2
A
z2
2 3 2 3
a11 0 0 0 b11 0
6 a21 a22 0 0 7 6 0 0 77
A=6 4 0 a32 0 0
7;
5 B = 6
4 0 b32 5
0 a42 ) 0 0 0 b42 )
2 3
0 0
6 0 0 7 0 0
13 0
F =6 4 f31 f32 5 ;
7 C= 0 0 0
24
0 f42
120 Modelado de Pro
esos
on a11 = 30:3, a21 = 0:12 10 3 , a22 = 6:02, a32 = 3:77, a42 = 2:8,
b11 = 6:15 105 , b32 = 3:04, b42 = 0:052, f31 = 62:2, f32 = 5:76, f42 = 5:12,
13 = 7:3 y
24 = 25. Las variables poseen el siguiente signi
ado (ver
gura 3.29): Q1 es el
ujo de
alor produ
ido por el
aldero de vapor, V1
es el
ujo de vapor produ
ido por el
aldero de vapor, u1es el vapor de
alefa
ion, S es el
ujo de vapor lateral, z1 es la posi
ion del
ambio
de interfase entre el agua y el isopropanol, z2 es la posi
ion del
ambio de
interfase entre el agua y el gly
ol, T1 y T2 son los
ambios de temperatura
en z1 y z2 , FA es el
ujo de la mez
la de agua mas isopropanol, y xF A1
es la
omposi
ion de la mez
la de agua mas isopropanol. Notar que todas
las variables son residuales; es de
ir, representan los
ambios
on respe
to al
estado de equilibrio. El modelo de este pro
eso de en
uentra en la referen
ia
[17℄.
Problema 3.11
La gura 3.30 muestra el pro
eso servomotor
on
arga no lineal des
rito en
la se
ion 3.2. Notar ahora que el eje de salida del me
anismo de redu
ion
esta sujeto a la
arga no lineal mediante una junta
exible que puede ser
modelada
omo un resorte rota
ional de
onstante K! =0.5 N/m/s. Consi-
derar dos
asos: (a)
uando la indu
tan
ia de armadura es despre
iable, y
(b)
uando no lo es.
Mo
R θm Ro
+ Ν1
Lo
u Va eb
m
- Kω
Jm
L Bm θ
Ν2 BL JL
Problema 3.13
La gura 3.32 muestra el pro
eso pendulo doble no lineal. Las e
ua
iones
que des
riben la dinami
a del pro
eso pendulo simple fueron dedu
idas en la
se
ion 3.1. Para dedu
ir el modelo matemati
o del pro
eso pendulo doble
onviene emplear las e
ua
iones de Lagrange de la me
ani
a
lasi
a. El
a
oplamiento entre los dos pendulos no es
exible. Los dos pendulos poseen
la misma longitud y la masa esferi
a es de 0.02 kg.
Problema 3.14
La gura 3.33 muestra el pro
eso doble grua-puente no lineal. Las e
ua
iones
que des
riben la dinami
a del pro
eso grua-puente fueron dedu
idas en la
se
ion 3.2. Para dedu
ir el modelo matemati
o del pro
eso doble grua-
puente
onviene emplear las e
ua
iones de Lagrange de la me
ani
a
lasi
a.
El a
oplamiento entre las dos se
iones de la varilla no es
exible. Las dos
varillas poseen la misma longitud y la masa esferi
a adi
ional es de 0.02 kg.
122 Modelado de Pro
esos
+ Fuerza de
u control
- τ
Servomotor
D.C. y
θ
z F
Carro
+ Fuerza de
u control
-
Servomotor
D.C. y
z F
Carro
θ
z
Doble
y’ ’ puente
τ grua
Control Optimo
Este
aptulo desarrolla un pro
edimiento para dise~nar sistemas de
ontrol optimo
esta
ionarios y no esta
ionarios, usando una ley de
ontrol optima
uadrati
a
que emplea las se~nales del pro
eso medidas dire
tamente o estimadas mediante
un observador optimo. Las
ongura
iones usadas para el dise~no son el regu-
lador optimo propor
ional y el regulador optimo propor
ional integral. La ultima
ongura
ion a~nade un integrador al
ontrolador
on el proposito de redu
ir el
error en estado estable. El pro
edimiento de dise~no desarrollado, puede ser
apli
ado tanto a sistemas univariables
omo a sistemas multivariables.
Dos apli
a
iones validan el pro
edimiento de dise~no desarrollado:
ontrol
optimo de los pro
esos pendulo invertido y grua puente. La penultima se
ion,
problemas resueltos, esta dedi
ada al dise~no de sistemas de
ontrol optimo
esta
ionarios para diferentes pro
esos. La ultima se
ion propone problemas de
dise~no a resolver. Todos los ar
hivos
orrespondientes a los ejer
i
ios, proble-
mas, dise~nos, simula
iones y software desarrollados se pueden des
argar del sitio
http://ee.uni.edu.pe/728681F.
donde k es el tiempo dis
reto, N es el tiempo dis
reto nal, x(k) es el ve
tor
de estado, r(k) es el ve
tor de referen
ia (entrada al sistema de
ontrol) y
u(k) es el ve
tor de
ontrol optimo. Esta ley de
ontrol (denominada tambien
fuerza o se~nal de
ontrol)
onstituye la entrada al pro
eso a
ontrolar.
Para apli
a
iones pra
ti
as, el ve
tor de
ontrol u debe estar siempre
a
otado. Por ejemplo,
jui (k)j Ui (4.2)
donde
ada elemento Ui es una
onstante determinada (el subndi
e denota
la
omponente i del ve
tor u). Para el
aso de
ontrol a
otado
on mnimo
gasto de energa, se puede formular:
u2i (k) Mi (4.3)
en donde
ada elemento Mi es una
onstante dada. En
ualquier
aso, el
ve
tor de
ontrol u debe satisfa
er
iertas restri
iones para poder ser un
ve
tor de
ontrol admisible.
En este
aptulo se desarrolla el pro
edimiento de dise~no de un sistema
de
ontrol optimo
uadrati
o dis
reto, denominado as porque emplea una
fun
ion de
osto
uadrati
a de dominio dis
reto. El resultado del dise~no
propor
iona una matriz de ganan
ia que multipli
ada por el ve
tor de es-
tado (real o estimado) del pro
eso, resulta en una ley de
ontrol optima
uadrati
a. El ve
tor de estado estimado se determina usando un obser-
vador optimo.
Para demostrar la validez del pro
edimiento de dise~no, se presentan dos
apli
a
iones: dise~no del sistema de
ontrol optimo
uadrati
o para el pro
eso
pendulo invertido y para el pro
eso grua-puente.
4.2 Control Optimo Cuadrati
o No Esta
ionario 125
4.2
Control Optimo Cuadrati
o No Esta
ionario
El problema del
ontrol optimo
uadrati
o dis
reto no esta
ionario
onsiste
en en
ontrar una ade
uada ley de
ontrol optima que sea
apaz de trasladar
la dinami
a del pro
eso desde un estado ini
ial x(0) ha
ia un estado nal
deseado x(N ). La fuerza de
ontrol optima u(k) se determina a partir de
la minimiza
ion de una fun
ion de
osto
uadrati
a dis
reta. Esta fuerza de
ontrol apli
ada al pro
eso a
ontrolar, provo
a que di
ho pro
eso responda
en forma optima (o lo mas
er
ano al optimo). El
ontrol optimo
uadrati
o
dis
reto se basa en la siguiente fun
ion de
osto:
1
J = xT (N )Sx(N ) +
1 NX1 xT (k)Qx(k) + uT (k)Ru(k) (4.4)
2 2 k=0
donde x(k) es el ve
tor de estado de dimension n y u(k) es el ve
tor de
ontrol de dimension r. Mientras que la matriz hermitiana semidenida
positiva S (de dimension n n) pondera la importan
ia del estado nal
x(N ), la matriz hermitiana semidenida positiva Q (de dimension n n)
pondera la importan
ia del ve
tor de estado x(k), y la matriz hermitiana
denida positiva R (de dimension r r) pondera la importan
ia de la se~nal
de
ontrol u(k). La deni
ion de matri
es se trato en la subse
ion 1.2.4. La
ley del
ontrol optima a usar emplea la realimenta
ion del ve
tor de estado
x(k) en su formula
ion y posee la forma siguiente:
u(k) = K (k)x(k) (4.5)
donde K (k) (de dimension rn) es la matriz de ganan
ia del
ontrolador, de-
nominada tambien matriz de realimenta
ion de estados. Cuando la dinami
a
del sistema de
ontrol es nita, K (k) es una matriz variante en el tiempo;
pero
uando di
ha dinami
a al
anza su estado esta
ionario (es de
ir,
uando
N ! 1), enton
es K (k) se
onvierte en una matriz
onstante K . En esta
ultima situa
ion, estaremos frente al denominado
ontrol optimo en estado
esta
ionario, y es el que usaremos en nuestras apli
a
iones. Una
ondi
ion
ne
esaria para poder apli
ar el
ontrol por realimenta
ion de estados es que
el pro
eso sea
ompletamente
ontrolable. Por
onsiguiente, sera ne
esario
veri
ar di
ha
ondi
ion en el pro
eso antes de ini
iar el pro
edimiento de
dise~no.
La realimenta
ion de estados requiere ademas que todos los estados sean
disponibles y medibles. Si en el sistema a
ontrolar existieran estados que
126
Control Optimo
no pudieran ser medidos dire
tamente, sera ne
esario estimarlos. Esta esti-
ma
ion puede ser realizada empleando la te
ni
a de observa
ion de estados
que sera tratada en la se
ion 4.6. El requerimiento en esta parte es que el
pro
eso sea
ompletamente observable.
La solu
ion al problema de
ontrol optimo
uadrati
o puede obtenerse
empleando varios enfoques, tales
omo el metodo de minimiza
ion usando
multipli
adores de Lagrange o mediante el prin
ipio de optimalidad [3℄,[4℄.
Asumamos que el pro
eso puede ser modelado mediante la siguiente e
ua
ion
de estado dis
reta:
x(k + 1) = Gx(k) + Hu(k); x(0) =
(4.6)
donde G es la matriz de estado de dimension n n, H es la matriz de
ontrol
de dimension n r y x(0) es una
ondi
ion ini
ial del ve
tor de estado.
El pro
eso debe ser de estado
ompletamente
ontrolable; es de
ir, que
en un tiempo nito, sus estados puedan ser transferidos desde un estado
ini
ial arbitrario a
ualquier otro estado deseado. La
ondi
ion ne
esaria y
su
iente para la
ompleta
ontrolabilidad del pro
eso es que la matriz de
ontrolabilidad M dada por la siguiente expresion (subse
ion 2.3.6):
M = H GH Gn 1 H (4.7)
posea rango
ompleto; es de
ir, el rango de M debe ser igual al orden n del
pro
eso.
La solu
ion al problema del
ontrol optimo
uadrati
o no esta
ionario
esta dada por la siguiente matriz de ganan
ia del
ontrolador:
K (k) = [R + H T P (k + 1)H ℄ 1 H T P (k + 1)G (4.8)
donde P (k+1) es una matriz hermitiana denida positiva de dimension nn.
Di
ha matriz es solu
ion de la siguiente e
ua
ion matri
ial de Ri
ati:
P (k) = Q + GT P (k +1)G GT P (k +1)H [R + H T P (k +1)H ℄ 1 H T P (k +1)G
(4.9)
La matriz P (K ) de la e
ua
ion (4.9) puede determinarse re
ursivamente
partiendo de la siguiente
ondi
ion terminal para k = N :
P (N ) = S (4.10)
hasta llegar a la
ondi
ion ini
ial P (0) para k = 0. El pro
edimiento es
omo sigue: reemplazando P (N ) en la e
ua
ion (4.8), podemos obtener
4.3 Control Optimo Cuadrati
o Esta
ionario 127
-K
4.4
El Regulador Optimo Propor
ional
El regulador es un sistema de
ontrol realimentado, en donde la salida
on-
trolada sigue a una se~nal de referen
ia r(k) = (k)
onstante, donde (k)
4.4 El Regulador Optimo Propor
ional 129
k3
..
.
kn
R L
+ T
+
.
V e=Kθ J
- - .
bθ
I b
end
Kr = inv(R + H'*P*H)*H'*P*G;
% SE CUMPLE QUE K=Kr Y P=Pr
0.1
yRpta (rad/s)
0.05
0
0 0.5 1 1.5 2 2.5 3
1.5
y (rad/s)
0.5
0
0 0.5 1 1.5 2 2.5 3
40
V (voltios)
20
0
0 0.5 1 1.5 2 2.5 3
Tiempo (s)
Figura 4.4: Respuesta yRpta (a lazo abierto) del motor D.C. a un es
alon
de 1 rad/s. La velo
idad angular
ontrolada es y; la se~nal de
ontrol es V .
Ejemplo 4.2
Determine el
ontrolador optimo
uadrati
o esta
ionario que estabili
e la
posi
ion angular del eje del motor (des
rito en el ejemplo 4.1) a 1 rad,
on
las espe
i
a
iones siguientes: tiempo de estabiliza
ion menor que 2 s, error
en estado estable menor al 1 % y sobreimpulso a la salida menor al 5 %.
Solu
ion: Eligiendo x1 = _, x2 = I y x3 = , las e
ua
iones de estado y de
salida resultan:
2 3 2 K 0 32 x 3 2 0 3
x_ 1 b
J J 1
4 x_ 2 5 = 4 K R 0 54 x 5 +4 1 5V
L L 2 L
x_ 3 1 0 0 x3 0
2 3
x1
y = x3 = 0 0 1 4 x2 5 + DV ; D = [0℄
x3
4.5 Sele
ion de las Matri
es de Pondera
ion 135
1.5
y (rad)
0.5
0
0 0.5 1 1.5 2 2.5 3
60
40
V (voltios)
20
−20
0 0.5 1 1.5 2 2.5 3
Tiempo (s)
Figura 4.5: Salida
ontrolada y (posi
ion angular) y se~nal de
ontrol V para
el motor D.C.
4.6 Dise~
no del Observador Optimo Cuadrati
o
En mu
hos
asos pra
ti
os, solo unas
uantas variables del ve
tor de estado
x(k) del pro
eso son sus
eptibles de ser medidas en forma dire
ta. En tales
situa
iones ne
esitamos estimar di
ho ve
tor de estado; es de
ir, requerimos
hallar un ve
tor de estado estimado x^ (k). Esto puede lograrse mediante el
empleo de un observador dis
reto de estados. El dise~no de di
ho observador
impli
a determinar su matriz de ganan
ia Ke, que puede ser
al
ulada a
partir de la minimiza
ion de una fun
ion de
osto
uadrati
a. El diagrama
de bloques del observador de estados se representa en la gura 4.6, donde
podemos notar que el observador emplea las medi
iones de la salida y(k) y
de la se~nal de
ontrol u(k).
De la gura 4.6 podemos formular:
x(k + 1) = Gx(k) + Hu(k) (4.24)
y(k) = Cx(k) (4.25)
mientras que la e
ua
ion del observador toma la forma:
x^ (k + 1) = Gx^ (k) + H fu(k) + Ke [y(k) C x^ (k)℄g (4.26)
4.6 Dise~no del Observador Optimo Cuadrati
o 137
Ke
+
+ x^ (k) - +
H I z -1 C
+
+
G
4.7
El Regulador Optimo Propor
ional Integral
Generalmente es ne
esario a~nadir a
ion integral, al regulador propor
ional
visto en la se
ion anterior, debido a que errores de estado permanente
140
Control Optimo
1.8
1.6
1.4
Algunos elementos de Pe
1.2
0.8
0.6
0.4
0.2
0
0 5 10 15 20 25 30 35 40
Muestras k
Figura 4.7: Algunos elementos de Pe: Pe(1; 1) (
urva solida), Pe(2; 1) (
urva
en trazos) y Pe(3; 1) (
urva
on puntos y rayas).
pueden apare
er si los parametros del pro
eso o su estru
tura (su e
ua
ion
de estado) no han sido estimados
on su
iente exa
titud. Para pro
esos
que no poseen propiedades integradoras, la in
lusion de a
ion integral en el
sistema de
ontrol permite obtener un error esta
ionario nulo. La gura 4.8
ilustra un regulador optimo (propuesto en [3℄) para sistemas univariables,
que in
luye di
ha a
ion integral en el sistema de
ontrol: un integrador
on
se~nal de salida v(k) y una ganan
ia integral KI aso
iada. Siendo la se~nal de
r(k) v(k) u (k) x (k) y (k)
KI H I z-1 C
+ + +
- - +
I z-1 G
Si denimos:
x(k) x(1) = xe (k) (4.48)
v(k) v(1) = ve (k) (4.49)
y restamos ahora la e
ua
ion (4.47) de (4.45), y luego usando las rela
iones
(4.48) y (4.49) obtendremos:
xe (k + 1) = G HK HKI xe (k)
ve (k + 1) CG + CHK 1 CHKI ve (k)
G 0
= CG I ve(k) + CHx ( k ) H xe (k )
ve (k) (4.50)
e K KI
Debemos enton
es
al
ular una matriz K~ ade
uada de forma tal que mini-
mi
e la fun
ion de
osto dada en la e
ua
ion (4.57). Empleando el mismo
pro
edimiento usado en la se
ion 4.3, es posible formular la e
ua
ion de
Ri
ati y la e
ua
ion de ganan
ia del
ontrolador K~ para el regulador,
omo
sigue:
P~ = Q~ + G~ T P~ G~ G~ T P~ H~ [R~ + H~ T P~ H~ ℄ 1 H~ T P~ G~ (4.58)
K~ = [R~ + H~ T P~ H~ ℄ 1 H~ T P~ G~ (4.59)
La sele
ion del tiempo de muestreo se trata en la subse
ion 4.9.6.
Ejemplo 4.4
Dise~nar el regulador propor
ional integral optimo esta
ionario que sea
apaz
de estabilizar la velo
idad angular del eje del motor (des
rito en el ejemplo
4.1) a 1 rad/s,
on las espe
i
a
iones siguientes: tiempo de estabiliza
ion
menor que 2 s, error en estado estable menor al 1 % y sobreimpulso de la
salida menor al 5 %.
Solu
ion: El programa ejem4 4.m resuelve el problema y sus resultados se
muestran en la gura 4.9.
% ejem4_4.m SOLUCION DEL EJEMPLO 4.4
lear all
J = 0.01; b = 0.1; K = 0.01; R = 1; L = 0.5;
A = [-b/J K/J
-K/L -R/L℄; % orden n=3
B = [0;1/L℄;
C
= [1 0℄; D
= [0℄;
% VERIFICAR CONTROLABILIDAD Y OBSERVABILIDAD
M = [B A*B℄; N = [C
' A'*C
'℄; % rank(M) = rank(N) = n = 2
% LUEGO EL SISTEMA ES COMPLETAMENTE CONTROLABLE Y OBSERVABLE
T = 0.05; % SELECCIONADO EN EL EJEMPLO 4.1
[G,H,C,D℄ =
2dm(A,B,C
,D
,T,'zoh'); % CONVERSION A DISCRETO
Gtilde = [G zeros(2,1)
-C*G eye(1,1)℄; % DEBE SER DE ORDEN n+1=4
Htilde = [H
-C*H℄;
Q = [1 0 0;0 0.1 0;0 0 2℄; R = [0.01℄; % MATRICES DE PONDERACION
[Ktil,Ptil,E℄ = dlqr(Gtilde,Htilde,Q,R); % Ktil: GANANCIA OPTIMA
K = [Ktil(1) Ktil(2)℄; KI = -Ktil(3);
x = [0;0℄; yi=0; v=0; % CONDICIONES INICIALES
N = 60; r=1;
% RESPUESTA AL ESCALON r=1
144
Control Optimo
for k=1:N
v = v + r - yi;
V(k) = -K*x + KI*v;
x = G*x + H*V(k);
y(k) = x(1); yi = y(k);
end
% GRAFICOS
t = linspa
e(0,T*N,N);
subplot(2,1,1)
plot(t,y); ylabel('y (rad/s)'); grid;
subplot(2,1,2)
plot(t,V); ylabel('V (voltios)'); grid;
xlabel('Tiempo (s)')
print -deps -f ejem4_4
% CALCULO RECURSIVO DE LA MATRIZ Ptilde Y CALCULO DE Ktilde
T = 15; Ptilde = zeros(3,3);
for i=1:T
Ptilde = Q + Gtilde'*Ptilde*Gtilde - Gtilde'*Ptilde*Htilde*...
inv(R+Htilde'*Ptilde*Htilde)*Htilde'*Ptilde*Gtilde;
end
Ktilde = inv(R + Htilde'*Ptilde*Htilde)*Htilde'*Ptilde*Gtilde;
% SE CUMPLE QUE Ktil = Ktilde Y Ptil = Ptilde
1.5
1
y (rad/s)
0.5
0
0 0.5 1 1.5 2 2.5 3
25
20
V (voltios)
15
10
5
0 0.5 1 1.5 2 2.5 3
Tiempo (s)
2 3 2 3
1:0002 0:0050 0 0:0002 0:0004
6 0:0995 1:0002 0 0:0963 7 6 0:1497 7
G=6 7; H=6 7
4 0:0000 0:0000 1:0000 0:0049 5 4 0:0002 5
0:0019 0:0000 0 0:9508 0:0765
C= 0 0 1 0
2 3 2 3
1:0002 0:0050 0 0:0002 0 0:0004
6
6 0:0995 1:0002 0 0:0963 0 7
7
6
6 0:1497 7
7
G~ = 6
6 0:0000 0:0000 1:0000 0:0049 0 7;
7
~ =6
H 6 0:0002 7
7
4 0:0019 0:0000 0 0:9508 0 5 4 0:0765 5
0:0000 0:0000 1:0000 0:0049 1:0000 0:0002
148
Control Optimo
Para
al
ular la matriz de ganan
ia Ke del observador optimo (se
ion 4.3),
debemos sele
ionar previamente las matri
es de pondera
ion Re y Qe:
2
1 0 0 0 3
Re = 10 10 0 ; Qe = 66 0 1000 0 0 77
4 0 0 0:9 0 5
0 0 0 1000
Podemos observar que en la matriz Re se da un peso de 10 a la medi
ion
de la posi
ion del
arro, pues es mas exa
ta que la medi
ion del angulo,
debido a que el sensor usado para medir di
ho angulo posee un error de
uantiza
ion mayor. En la matriz Qe se asigna un peso de 1000, el mayor en
Qe, tanto a la velo
idad angular de la varilla
omo a la velo
idad del
arro,
porque estas son las variables que no son posibles de medir dire
tamente y
ne
esitamos que tengan una mayor in
uen
ia en el pro
eso de estima
ion.
Notar tambien que la posi
ion del
arro posee un peso de 0.9, algo menor
omparado
on el peso de 1 atribudo al angulo de la varilla, dado que el
sensor de posi
ion del
arro es mas exa
to que el sensor de posi
ion de la
varilla.
Para
al
ular la matriz de ganan
ia del observador Ke
al
ulamos pre-
viamente la matriz Pe a partir de la e
ua
ion (4.37):
Pe (k + 1) = Qe + GPe (k)GT GPe (k)C T [Re + CPe (k)C T ℄ 1 CPe(k)GT
El programa siguiente (en
odigo MATLAB)
al
ula el valor esta
ionario de
la matriz solu
ion Pe (el valor ini
ial de Pe es arbitrario):
for i = 1:40
Pe = Qe + G*Pe*G'-G*Pe*C'*inv(Re+C*Pe*C^(T))*C*Pe*G'
end
150
Control Optimo
4.9.5 Simula
ion del Sistema de Control Optimo
Con los datos determinados, podemos entrar ahora a la fase de simula
ion
del sistema de
ontrol optimo
uadrati
o, antes de ini
iar su implementa
ion
en tiempo real. El siguiente programa disopt2.m, ademas de efe
tuar todos
los
al
ulos anteriores, realiza la simula
ion del sistema
ontrolado emple-
ando una ley de
ontrol optima y
on observa
ion optima de estados. Es
interesante anotar que el modelo del pro
eso empleado en la simula
ion es
el modelo no lineal (3.31) dis
retizado dire
tamente. Tambien hemos a~nadi-
do senten
ias para simular el efe
to de satura
ion del ampli
ador. Como
se~nal de referen
ia se emplea un es
alon de valor 1.5 m. Los resultados de
la simula
ion se pueden observar en las guras 4.10, 4.11 y 4.12.
% disopt2.m SISTEMA DE CONTROL OPTIMO DEL PENDULO INVERTIDO
lear all
% PARAMETROS DEL PROCESO
m
= 0.92; me = 0; mv = 0.063095; mp = 0.2; g = 9.81;
lv = 0.767; le = 0; rp = 0.0648; n = 1/19.741;
Jm = 1.9596e-6;
Je = me*le^2; Jv = mv*lv^2/3; Jo = 0; Jp = mp*rp^2/2;
Jeq = Jm + n^2*(Jo + Jp);
Bm = 1.8342e-6; Bo =0; Beq = Bm + n^2*Bo;
Km = 31.071e-3; Kb = 31.053e-3; Ra = 7.38; KA = 14.9;
M1 = m
+ me + mv; M2 = me*le + mv*lv/2;
J1 = Je + Jv; J2 = Jeq/(n^2*rp^2);
Kx = Km/(Ra*n*rp);
4.9 Control Optimo Cuadrati
o del Pendulo Invertido 151
Bx = Beq/(n^2*rp^2) + Kb*Km/(n^2*rp^2*Ra);
d = ((M1+J2)*J1-M2^2);
a21 = (M1+J2)*M2*g/d; a24 = Bx*M2/d;
a41 = -M2^2*g/d; a44 = -J1*Bx/d;
b21 = -Kx*M2*KA/d; b41 = J1*Kx*KA/d;
% MODELOS LINEALES CONTINUO Y DISCRETO
A = [0 1 0 0
a21 0 0 a24
0 0 0 1
a41 0 0 a44℄;
B = [0
b21
0
b41℄;
C
= [0 0 1 0℄; % POSICION DEL CARRO
Ts = 1/200; % TIEMPO DE MUESTREO
[G,H℄ =
2d(A,B,Ts);
G1 = [G zeros(4,1)
-C
*G 1℄;
H1 = [H;-C
*H℄;
M = [H1 G1*H1 G1^2*H1 G1^3*H1 G1^4*H1℄;
rM = rank(M); % rM=5 => COMPLETAMENTE CONTROLABLE
% CALCULO DE LA GANANCIA DEL CONTROLADOR
Q = [200 0 0 0 0
0 0 0 0 0
0 0 100 0 0
0 0 0 0 0
0 0 0 0 0.01℄; R = [100℄;
P = zeros(5,5);
for i=1:1000
P = Q + G1'*P*G1 -G1'*P*H1*inv(R+H1'*P*H1)*H1'*P*G1;
end
K1 = inv(R+H1'*P*H1)*H1'*P*G1;
[KK,PP℄ = dlqr(G1,H1,Q,R); % K1=KK, P=PP
K = [KK(1) KK(2) KK(3) KK(4)℄; KI = - KK(5);
% CALCULO DE LA GANANCIA DE UN OBSERVADOR
C = [1 0 0 0
0 0 1 0℄; % SE OBSERVAN POSICIONES ANGULAR Y LINEAL
Qe = [1 0 0 0
0 1000 0 0
0 0 0.9 0
0 0 0 1000℄; Re = [1 0;0 10℄;
Pe = zeros(4,4);
152
Control Optimo
for i=1:40
Pe = Qe + G*Pe*G' -G*Pe*C'*inv(Re+C*Pe*C')*C*Pe*G';
end
KeT = inv(Re+C*Pe*C')*C*Pe*G'; Ke=KeT';
[KKeT,PPe℄ = dlqr(G',C',Qe,Re); KKe=KKeT';% Pe=PPe, Ke=KKe
% SIMULACION DEL SISTEMA DE CONTROL OPTIMO
% CONDICIONES INICIALES
x1=0; x2=0; x3=0; x4=0; x5=0;
xe = [0;0;0;0℄; r=1.5;
v=0; N = 4000; % TIEMPO EN SEGUNDOS: Ts*N
for k=1:N
u = -K*xe + KI*v;
if(u > 1.4), u = 1.4; % PARA NO SATURAR EL SERVOMOTOR
elseif(u < -1.4), u = -1.4;
end
xe = G*xe + u*H + Ke*([x1;x3℄ - C*xe);
% PROCESO NO LINEAL DISCRETIZADO DIRECTAMENTE
den = -M2^2*
os(x1)^2+(M1+J2)*J1;
x1 = x1 + Ts*x2;
x2 = x2 + ...
Ts*(-M2^2*sin(x1)*
os(x1)*x2^2+M2*Bx*
os(x1)*x4 ...
+M2*(M1+J2)*g*sin(x1)-M2*Kx*
os(x1)*KA*u)/den;
x3 = x3 + Ts*x4;
x4 = x4 + ...
Ts*(M2^2*g*sin(x1)*
os(x1)+J1*M2*sin(x1)*(x2)^2 ...
-J1*Bx*x4+J1*Kx*KA*u)/den;
v = v + r - x3;
y1(k)=x1; y2(k)=x3; U(k) =u;
end
% GRAFICOS
t = linspa
e(0,Ts*N,N);
figure(1)
plot(t,y2(1:N)); grid
ylabel('Posi
ion del
arro')
xlabel('Tiempo (s)')
print -deps -f spoz
figure(2)
plot(t,y1(1:N)); grid
ylabel('Posi
ion angular del pendulo')
xlabel('Tiempo (s)')
print -deps -f spoa
figure(3)
plot(t,U); grid
4.9 Control Optimo Cuadrati
o del Pendulo Invertido 153
1.6
1.4
1.2
1
Posición del carro
0.8
0.6
0.4
0.2
−0.2
0 2 4 6 8 10 12 14 16 18 20
Tiempo (s)
Figura 4.10: Simula ion del sistema pendulo invertido: posi ion del arro.
0.15
0.1
Posición angular del péndulo
0.05
−0.05
−0.1
0 2 4 6 8 10 12 14 16 18 20
Tiempo (s)
Figura 4.11: Simula
ion del sistema pendulo invertido: posi
ion angular del
pendulo.
0.7
0.6
0.5
0.4
Señal de control u
0.3
0.2
0.1
−0.1
−0.2
0 2 4 6 8 10 12 14 16 18 20
Tiempo (s)
Figura 4.12: Simula
ion del sistema pendulo invertido: se~nal de
ontrol.
4.9 Control Optimo Cuadrati
o del Pendulo Invertido 155
COMPUTADORA
PERSONAL
TARJETA LAB-PC+
AMPLIFI- PROCESO:
SALIDAS DAC0 ’
PENDULO
CADOR
ANALOGICAS DAC1 INVERTIDO /
PWM GRUA PUENTE
PA0 16 bits
.. SENSOR EN
PA .
PA7 EL MOTOR
COMPUERTAS MUX
16 bits
DIGITALES PB0
.. SENSOR EN
PB . LA VARILLA
DE ENTRADA
PB7
Y SALIDA SALIDAS
PC0
..
PC .
PC6
PC7
Fs
CONTADOR / OUTB0
TEMPORIZADOR
SERVOMOTOR PENDULO
POLEA
CARRO
CARRIL
. . .
Servomotor D.C .
Reductor de
velocidad
’
Pendulo
Codificador
’
optico
Ruedas
Disco con
mascara
’
Clock UP
74HC Clock Down
4 bits
193
Puerto
digital 8 bits
PA Canal A
74HC
4 bits
193 LS7083
Canal B
74HC
4 bits
193
Puerto R L
digital 8 bits
PB 74HC
4 bits
193
fun
iones NI-DAQ [25℄, as
omo tambien fun
iones de le
tura y es
ritura
de puertos. El ar
hivo FUNC PEN.H
onsta de las siguientes fun
iones:
CongurarHardware: ini
ializa la tarjeta Lab-PC+,
ongura los puer-
tos y espe
i
a la fre
uen
ia del
lo
k de muestreo.
EnviarVoltaje: restringe y enva voltajes al DAC0 del Lab-PC+.
LeerSensor: adquiere datos de los puertos A y B de 8 bits
ada uno
y
olo
a un 0 o un 1 en el segundo bit del puerto C,
on el n de
sele
ionar la le
tura del sensor de la varilla o la del sensor del motor.
NivelClo
k: lee el bit 7 del puerto C y re
ibe el
lo
k de muestreo de
OUTB0.
ResetContadores:
olo
a un 1 o un 0 en el bit 3 del puerto C,
on el
n de borrar el
ontenido de los
ontadores de los sensores.
El Programa de Control
El programa de
ontrol se denomina PENDOI4.CPP. En el ambiente de tra-
bajo de Borland C/C++, los ar
hivos FUNC PEN.H, FUNC PEN.CPP y
PENDOI4.CPP forman en
onjunto el proye
to PENDOI4.PRJ. El progra-
ma PENDOI4.CPP
omprende las partes siguientes:
1. Ini
ializa
ion
(a) Ini
ializa
ion de la tarjeta de adquisi
ion de datos.
(b) Ini
ializa
ion de variables.
(
) Estable
imiento de la posi
ion
ero del
arro y de la varilla.
2. Bu
le del algoritmo de
ontrol
(a) Dete
ion del
an
o de subida del
lo
k.
(b) Medi
ion de las salidas.
(
) Observa
ion de estados.
(d) Cal
ulo y apli
a
ion de la se~nal de
ontrol.
3. Alma
enamiento de las respuestas.
El diagrama de
ujo del programa se muestra en la gura 4.19. Los
programas implementados tuvieron una dura
ion promedio por bu
le de
430 s. A
ontinua
ion
omentamos brevemente
ada uno de los puntos
anteriores.
162
Control Optimo
INICIO
INMICIALIZA:
- TARJETA DE ADQUISICION DE DATOS
- VARIABLES
BORRA CONTADORES
ESTABLECIMIENTO DE LA POSICION
CERO DEL CARRO Y LA VARILLA
NO
TIEMPO < TIEMPO LIMITE FIN
SI
DETECTA
FLANCO DE SUBIDA NO
DEL PULSO DE RELOJ
SI
MIDE SALIDAS
ESTIMA ESTADOS
~
CALCULA SENAL DE CONTROL
~
COMPENSA SENAL DE CONTROL
~
ENVIA SENAL DE CONTROL
ACTUALIZA VARIABLES
ARCHIVA DATOS
a un in
remento de 256 puntos, valor bastante lejos del valor maximo del
ontador. El problema a resolver aqu es
omo re
ono
er si nos en
ontramos
ante un re
orrido positivo o negativo justo
uando el
ontador
omienza a
de
rementar (partiendo de 0). Para resolver esta situa
ion,
onsideraremos
que estamos ante un valor negativo si el
ontenido de los
ontadores es
mayor que 32768 (la mitad del valor maximo que pueden
ontener). Por
ejemplo, si obtenemos en el
ontador un valor de 65534, y
omo este es mayor
que 32768, enton
es representa una posi
ion negativa; su equivalente es:
(65536 65534) = 2. Luego, para obtener la posi
ion angular ha
emos:
2 2=256 rad. La rutina que realiza esta le
tura esta dada por:
/*lee angulo Varilla*/
ontVa=LeerSensor(VARILLA);
ontVa=(
ontVa>32768)?-1*(65536-
ontVa):
ontVa;
*y0=
ontVa*(2.*PI/256.);
la tarjeta de interfaz*/
void EnviarVoltaje (float);
/*env\'{\i}a voltaje al DAC de la tarjeta*/
unsigned int LeerSensor(int);
/*lee sensor=0
ontadores del lado izquierdo
lee sensor=1
ontadores del lado dere
ho */
int NivelClo
k ();
/*devuelve el nivel del
lo
k 0 o 1 */
void ResetContadores();
/*resetea los
ontadores que estan
one
tados a los sensores*/
#endif
USE_LAB();
/*esta fun
ion ayuda a mantener el tama~no de la apli
a
ion en DOS
ante un mayor
re
imiento debido a la in
lusion de por
iones de
la libreria NI-DAQ que no son ne
esarias para el dispositivo de
adquisi
ion que se esta utilizando */
Init_DA_Brds(1,&devi
eCode);
/*ini
ializa el hardware y el software de la libreria NI-DAQ
devi
eNumber = 1
devi
eNumberCode devuelve el tipo del dispositivo ini
ializado */
ICTR_Setup(1,0,3,periodoTimer,1);
/*devi
eNumber = 1
tr = 0 =>
lo
k de muestreo timer0
MODE = 3 => sele
iona onda
uadrada
on duty
y
le de 50 %
COUNT = periodoTimer => periodo de la onda
binB
d = 1 => sele
iona el
ontador binario de 16-bits */
168
Control Optimo
outportb(0x273, 0x9A);
/*''setea'' el DIGITAL CONTROL REGISTER (273H) y
onfigura los
ports
omo:
PA:INPUT
PB:INPUT
PC0 ... 3:OUTPUT
PC4 ... 7:INPUT */
}
if(sensor) outportb(PORTC,inportb(PORTC)&251);
//PC2 = 0 sele
iona
ontador dere
ho
else
outportb(PORTC,inportb(PORTC)|4);
//PC2 = 1 sele
iona
ontador izquierdo
byteL = inportb(PORTA);//Lee PORT A
byteH = inportb(PORTB);//Lee PORT B
return (256*byteH+byteL);
}
void ResetContadores()
4.9 Control Optimo Cuadrati
o del Pendulo Invertido 169
{
outportb(PORTC,inportb(PORTC)|8);
for(int i=0;i<10000;i++);
outportb(PORTC,inportb(PORTC)&(255-8));
}
#define PI M_PI
#define IZQ 0
#define DER 1
#define VARILLA IZQ
#define MOTOR DER
#define A_RADIANES 2.*PI/512.
#define Nm 1/19.741
#define rp 0.0648
#define Fs 200.
#define Ts (1./Fs)
#define tsimul 60.
#define DeadZone 0.1
#define offset 2.29 //2.36
#define SP 1.5
float G_KeC[4℄[4℄,H[4℄;
float K[4℄,KI,Ke[4℄[2℄;
float r=0.;
float Xe[4℄={0,0,0,0},Xe_a[4℄={0,0,0,0};
float y0,y1;
float u=0.;
har ruta[℄="C:\\user\\leonardo\\datos\\pendoi.dat";
int i,j;
FILE *pfi
hero;
pfi
hero=fopen(ruta,"rt");
if (pfi
hero == NULL) printf("No se puede abrir\n");
for(i = 0;i <= 3;i++)
{
for(j = 0;j <= 3;j++)
fs
anf(pfi
hero,"%f",&G_KeC[i℄[j℄);
}
for(i = 0;i <= 3;i++)
fs
anf(pfi
hero,"%f",&H[i℄);
for(i = 0;i <= 3;i++)
fs
anf(pfi
hero,"%f",&K[i℄);
fs
anf(pfi
hero,"%f",&KI);
lrs
r();
for(i = 0;i <= 3;i++)
{
for(j = 0;j <= 3;j++)
printf("%f ",G_KeC[i℄[j℄);
printf("%f\n",G_KeC[i℄[3℄);
}
for(i = 0;i <= 3;i++)
printf("%f\n",H[i℄);
for(i = 0;i <= 3;i++)
printf("%f\t",K[i℄);
printf("\n%f",KI);
printf("\n");
for(i = 0;i <= 3;i++)
{
for(j = 0;j <= 1;j++)
printf("%f\t",Ke[i℄[j℄);
4.9 Control Optimo Cuadrati
o del Pendulo Invertido 171
printf("\n");
}
}
/*
al
ula G_KeC*X */
for(i = 0;i <= 3;i++)
{ S = 0.;
for(p = 0;p <= 3;p++)
S = G_KeC[i℄[p℄*Xe[p℄+S;
G_KeCX[i℄ = S;
}
/*
al
ula KeYant*/
for(i = 0;i <= 3;i++)
{ S=0.;
for(p = 0;p <= 1;p++)
S = Ke[i℄[p℄*Yant[p℄+S;
KeYant[i℄ = S;
}
/*
al
ula Xe(K+1)[i℄*/
for(i = 0;i <= 3;i++)
Xe[i℄ = G_KeCX[i℄+H[i℄*u+KeYant[i℄;
Yant[0℄ = X0;
Yant[1℄ = X2;
}
}
return (u+volt);
}
void main()
{
ini
ializaMatri
es();
n=(int) tsimul/Ts;
lrs
r();
174
Control Optimo
ResetContadores();
k_ant =
k_a
t;
k_a
t = NivelClo
k();
yant=y1;
MideSalidas(&y0,&y1);
ya
t=y1;
if(y1 > 1.74) break;
if(y1 < -0.08) break;
gotoxy(5,13);printf("Tiempo: %f", t);
gotoxy(5,15); printf("varilla en grados : %f",y0*180./PI);
4.9 Control Optimo Cuadrati
o del Pendulo Invertido 175
EstimaEstados(y0,y1);
/*satura
ion*/
if(u < -1.4) u = -1.4;
if(u > 1.4) u = 1.4;
EnviarVoltaje(u+v+offset);
k++;t += Ts;
}
}
FIN:
EnviarVoltaje(offset);
/*guarda tiempo*/
pfi
hero = fopen(tiempo,"wb");
if (pfi
hero == NULL) printf("\nNo se puede abrir %s\n",tiempo);
else
{
for(k = 0;k<n+1;k++)
{
t = k*Ts;
= fwrite(&t,sizeof(float),1,pfi
hero);
}
f
lose(pfi
hero);
176
Control Optimo
=fwrite(y_0_,sizeof(y_0_),n+1,pfi
hero);
f
lose(pfi
hero);
printf("\nelementos es
ritos en %s:%d\n",sal_var,
);
}
/*guarda y1 posi
ion del
arro*/
pfi
hero = fopen(sal_
ar,"wb");
if (pfi
hero == NULL) printf("\nNo se puede abrir %s\n",sal_
ar);
else
{
=fwrite(y_1_,sizeof(y_1_),n+1,pfi
hero);
f
lose(pfi
hero);
printf("\nelementos es
ritos en %s:%d\n",sal_
ar,
);
}
/*guarda y1 posi
ion del
arro*/
pfi
hero = fopen(U_,"wb");
if (pfi
hero == NULL) printf("\nNo se puede abrir %s\n",U_);
else
{
=fwrite(u_,sizeof(u_),n+1,pfi
hero);
f
lose(pfi
hero);
printf("\nelementos es
ritos en %s:%d\n",U_,
);
}
get
h();
}
1.5
1
posición (m)
0.5
−0.5
0 2 4 6 8 10 12 14 16 18 20
tiempo (s)
Figura 4.20: Control optimo del pendulo invertido: posi
ion del
arro.
ángulo del péndulo (medición directa)
0.5
0.4
0.3
0.2
0.1
ángulo (rad)
−0.1
−0.2
−0.3
−0.4
−0.5
0 2 4 6 8 10 12 14 16 18 20
tiempo (s)
Figura 4.21: Control optimo del pendulo invertido: posi
ion angular del
pendulo.
4.10 Control Optimo Cuadrati
o de la Grua-Puente 179
entrada
1.5
0.5
entrada (v)
−0.5
−1
−1.5
0 2 4 6 8 10 12 14 16 18 20
tiempo (s)
4.10
Control Optimo Cuadrati
o de la Gr
ua-Puente
En esta se
ion nos o
upamos del dise~no del
ontrol optimo
uadrati
o del
pro
eso grua-puente empleando el pro
edimiento de dise~no presentado en la
se
ion 4.8.
4.10.1 Formula
ion del Problema
Dado el sistema grua-puente,
onformado por una varilla que
uelga libre-
mente de un
arro impulsado por un servomotor D.C.
ontrolado por su
voltaje de armadura, se desea dise~nar un servo
ontrolador que sea
apaz
de trasladar al
arro a una posi
ion determinada, de forma tal que la os-
180
Control Optimo
A = [0 1 0 0
a21 0 0 a24
0 0 0 1
a41 0 0 a44℄;
B = [0
b21
0
b41℄;
C
= [0 0 1 0℄; % POSICION DEL CARRO
Ts = 1/200; % TIEMPO DE MUESTREO
[G,H℄ =
2d(A,B,Ts);
G1 = [G zeros(4,1)
-C
*G 1℄;
H1 = [H;-C
*H℄;
M = [H1 G1*H1 G1^2*H1 G1^3*H1 G1^4*H1℄;
rM = rank(M); % rM=5 => COMPLETAMENTE CONTROLABLE
% CALCULO DE LA GANANCIA DEL CONTROLADOR
Q = [500 0 0 0 0
0 0 0 0 0
0 0 200 0 0
0 0 0 0 0
0 0 0 0 0.1℄; R = [1℄;
P = zeros(5,5);
for i=1:1000
P = Q + G1'*P*G1 -G1'*P*H1*inv(R+H1'*P*H1)*H1'*P*G1;
end
K1 = inv(R+H1'*P*H1)*H1'*P*G1;
[KK,PP℄ = dlqr(G1,H1,Q,R); % K1=KK, P=PP
K = [KK(1) KK(2) KK(3) KK(4)℄; KI = - KK(5);
% CALCULO DE LA GANANCIA DEL OBSERVADOR
C = [1 0 0 0
0 0 1 0℄; % SE OBSERVAN POSICIONES ANGULAR Y LINEAL
Qe = [1000 0 0 0
0 1500 0 0
0 0 100 0
0 0 0 1500℄; Re = [1 0;0 1℄;
Pe = zeros(4,4);
for i=1:200
Pe = Qe + G*Pe*G' -G*Pe*C'*inv(Re+C*Pe*C')*C*Pe*G';
end
KeT = inv(Re+C*Pe*C')*C*Pe*G'; Ke=KeT';
[KKeT,PPe℄ = dlqr(G',C',Qe,Re); KKe=KKeT'; % Pe=PPe, Ke=KKe
% CONDICIONES INICIALES PARA LA SIMULACION
182
Control Optimo
2 3 2 3
0:9998 0:0050 0 0:0002 0:0004
6 0:0972 0:9998 0 0:0941 7 6 0:1462 7
G=6 7; H =6 7
4 0:0000 0:0000 1:0000 0:0049 5 4 0:0002 5
0:0019 0:0000 0 0:9508 0:0765
C= 0 0 1 0
2 3 2 3
1:0002 0:0050 0 0:0002 0 0:0004
6
6 0:0995 1:0002 0 0:0963 0 7
7
6
6 0:1497 7
7
G~ = 6
6 0:0000 0:0000 1:0000 0:0049 0 7;
7
~ =6
H 6 0:0002 7
7
4 0:0019 0:0000 0 0:9508 0 5 4 0:0765 5
0:0000 0:0000 1:0000 0:0049 1:0000 0:0002
2 3
1:9636 0:2257 3:3116 0:4202 0:0300
6
6 0:2257 0:1481 0:7068 0:2891 0:0030 7
7
P~ = 104 6
6 3:3116 0:7068 8:5186 1:4030 0:0745 7
7
4 0:4202 0:2891 1:4030 0:5668 0:0061 5
0:0300 0:0030 0:0745 0:0061 0:0013
~ = K
K KI
K= 8:2596 4:3465 37:9206 10:3665℄; KI = 0:2907
2 3
1:0102 0:0055
6 2:1836 1:1280 7
Ke = 6 7
4 0:0005 0:9936 5
0:0982 0:6519
1.8
1.6
1.4
1.2
Posición del carro
0.8
0.6
0.4
0.2
0
0 2 4 6 8 10 12 14 16 18 20
Tiempo (s)
Figura 4.23: Simula
ion del sistema grua-puente: posi
ion del
arro.
0.5
0.4
0.3
Posición angular de la grúa puente
0.2
0.1
−0.1
−0.2
−0.3
−0.4
0 2 4 6 8 10 12 14 16 18 20
Tiempo (s)
Figura 4.24: Simula
ion del sistema grua-puente: posi
ion angular de la
varilla.
4.10 Control Optimo Cuadrati
o de la Grua-Puente 185
1.4
1.2
Señal de control u 1
0.8
0.6
0.4
0.2
−0.2
0 2 4 6 8 10 12 14 16 18 20
Tiempo (s)
1.5
1
posición (m)
0.5
−0.5
0 2 4 6 8 10 12 14 16 18 20
tiempo (s)
0.6
0.4
0.2
ángulo (rad)
−0.2
−0.4
−0.6
0 2 4 6 8 10 12 14 16 18 20
tiempo (s)
0.5
entrada (v)
−0.5
−1
−1.5
0 2 4 6 8 10 12 14 16 18 20
tiempo (s)
a23 = (b1/m1)*(b1/m1+b1/m2+b2/m2)-k1/m1;
a33 = -(b1/m1+b1/m2+b2/m2);
a43 = -(k1/m1+k1/m2+k2/m2);
% MODELO LINEAL: dx/dt = A*x + B*u + E*d; y = C*x + D*u
A = [0 1 0 0
-b1*b2/(m1*m2) 0 a23 -b1/m1
b2/m2 0 a33 1
k2/m2 0 a43 0℄;
B = [0;1/m1;0;(1/m1+1/m2)℄;
E = [0;b1*b2/(m1*m2);-b2/m2;-k2/m2℄;
C = [0 0 1 0℄; D = [0℄;
% CONVERSION AL ESPACIO DE ESTADO DISCRETO
T=0.8; % TIEMPO DE MUESTREO
[G,H,C,D℄ =
2dm(A,B,C,D,T,'zoh');
[G,F,C,D℄ =
2dm(A,E,C,D,T,'zoh');
% Contro Optimo del sistema
Q = [1 0 0 0
0 1 0 0
0 0 1 0
0 0 0 1℄;
R = [1℄;
% ECUACION DE RICCATI
P = diag(0,3); % MATRIZ DE CEROS DE ORDEN 4
for i = 1:40
P = Q + G'*P*G - G'*P*H*inv(R+H'*P*H)*H'*P*G;
end
% CALCULO DE LA MATRIZ DE GANANCIA K
K = inv(R+H'*P*H)*H'*P*G;
% SIMULACION DEL SISTEMA CONTROLADO
N = 200; x=[0;0;0;0℄; w=0.01;
for k=1:N
U=-K*x;
x = G*x + H*U + F*w;
y(k)=x(3); u(k)=U;
end
% GRAFICOS
t=linspa
e(0,N*T,N);
subplot(2,1,1)
plot(t,y(1:N)), grid
ylabel('Posi
ion y (m)')
xlabel('Tiempo en segundos')
subplot(2,1,2)
plot(t,u(1:N)), grid
4.11 Problemas Resueltos 189
xlabel('Tiempo en segundos')
ylabel('Control u (N)')
print -deps -f p3opt2
−3
x 10
5
Posición y (m)
−5
−10
0 20 40 60 80 100 120 140 160
Tiempo en segundos
−4
x 10
1
0.8
Control u (N)
0.6
0.4
0.2
0
0 20 40 60 80 100 120 140 160
Tiempo en segundos
Problema 4.2
El problema 3.2 presenta las e
ua
iones que gobiernan la dinami
a longitudi-
nal de un avion
omer
ial volando a velo
idad de
ru
ero (altura y velo
idad
onstantes). El
ontrol del angulo de in
lina
ion del avion (ver gura 3.14)
es un problema longitudinal a resolver. El objetivo de
ontrol es dise~nar un
autopiloto que manipulando el angulo Æe del de
e
tor de eleva
ion,
ontrole
el angulo de in
lina
ion del avion.
Se pide dise~nar un sistema de
ontrol optimo
uadrati
o esta
ionario que
genere una fuerza de
ontrol, de modo que la salida del pro
eso (el angulo
de in
lina
ion ) presente un sobreimpulso menor al 10 % y un tiempo de
190
Control Optimo
estabiliza
ion menor que 3 s,
on error en estado estable nulo. La sele
ion
del tiempo de muestreo es a
onvenien
ia del dise~no.
% p4opt2 SOLUCION DEL PROBLEMA 4.2
lear all
% INGRESO DE PESOS
Q = [1 0 0 0
0 1 0 0
0 0 1 0
0 0 0 1 ℄;
R = [1℄;
% EQUACION DE RICCATI
P = diag(0,3);
for i = 1:40
P = Q + G1'*P*G1 - G1'*P*H1*inv(R+H1'*P*H1)*H1'*P*G1;
end
% SIMULACION
N = 100; x=[0;0;0℄; v=0; Y=0;
for k=1:N
r(k)=0.1; Ref=r(k);
v = v + Ref - Y;
U = - K*x + KI*v;
x = G*x + H*U;
4.11 Problemas Resueltos 191
Y = C*x;
y(k) = Y; u(k) = U;
end
% GRAFICOS
t=linspa
e(0,N*T,N);
subplot(2,1,1)
plot(t,y(1:N)), grid
ylabel('In
lina
ion (rad)')
xlabel('Tiempo en segundos')
subplot(2,1,2)
plot(t,u(1:N)), grid
xlabel('Tiempo en segundos')
ylabel('Angulo del defle
tor (rad)')
print -deps -f p4opt2
0.15
Inclinación (rad)
0.1
0.05
0
0 1 2 3 4 5 6 7 8 9 10
Tiempo en segundos
0.2
Angulo del deflector (rad)
0.15
0.1
0.05
−0.05
0 1 2 3 4 5 6 7 8 9 10
Tiempo en segundos
Figura 4.30: A ngulo de in
lina
ion
ontrolada y angulo del de
e
tor (se~nal
de
ontrol)
orrespondientes al problema 4.2.
192
Control Optimo
Problema 4.3
En el problema 3.3 se des
ribe el pro
eso de la bola rodando a lo largo
de una barra,
on un grado de libertad, tal
omo se muestra en la gura
3.16. Una leva
one
ta la barra
on un engranaje que esta a
ionado por
un servomotor. Se desea dise~nar un sistema de
ontrol optimo que pueda
posi
ionar la bola en menos de 5 s a 0.5 m de un extremo de la barra que
mide 1 m de longitud. Las os
ila
iones de la bola deben estar restringidas
sobre la barra y el voltaje de
ontrol no debe sobrepasar los 40 volt. La
sele
ion del tiempo de muestreo es a
onvenien
ia del dise~no.
% p5opt2.m SOLUCION DEL PROBLEMA 4.3
lose all
% DETERMINACION DE LA ECUACION DE ESTADO
M=0.11; R=0.015; g=9.8; L=1; J=9.99*1e-6; d=0.03;
A=[0 1 0 0
0 0 (M*g*d)/(L*(J/R^2 + M)) 0
0 0 0 1
0 0 0 0℄;
B=[0;0;0;1℄;
C=[1 0 0 0℄; D=[0℄;
% PROCESO DISCRETO
T=0.1; % Tiempo de muestreo
[num1, den1℄=ss2tf(A,B,C,D);
[G,H℄=
2d(A,B,T);
% DETERMINAR SI EL PROCESO TIENE INTEGRADORES,
% ES DECIR, SI TIENE EIGENVALORES EN z=0:
% eigG = eig(G); % NO TIENE EIGENVALORES EN z=0;
% ADICIONANDO ACCION INTEGRAL
G1 = [G zeros(4,1);-C*G 1℄;
H1 = [H;-C*H℄;
% ANALIZAMOS SI LA PLANTA ES CONTROLABLE
M=[H1 G1*H1 G1^2*H1 G1^3*H1 G1^4*H1℄;
rM=rank(M); % rM=4 SISTEMA ES CONTROLABLE
% CALCULO DE LA GANANCIA DEL CONTROLADOR
Q = [1 0 0 0 0
0 1 0 0 0
0 0 1 0 0
0 0 0 1 0
0 0 0 0 1e5℄;
R = [10℄;%100
% OBTENEMOS LA GANANCIA DEL CONTROLADOR APLICANDO dlqr
[KK,P℄=dlqr(G1,H1,Q,R);
K = [KK(1) KK(2) KK(3) KK(4)℄;
4.11 Problemas Resueltos 193
KI = -KK(5);
% SIMULACION
N = 100; x=[0;0;0;0℄; v=0; Y=0;
for k=1:N
r(k)=0.5; Ref=r(k);
v = v + Ref - Y;
U = - K*x + KI*v;
x = G*x + H*U;
Y = C*x;
y(k) = Y; u(k) = U;
end
% GRAFICOS
t=linspa
e(0,N*T,N);
subplot(2,1,1)
plot(t,y(1:N)), grid
ylabel('Posi
ion (m)')
xlabel('Tiempo en segundos')
subplot(2,1,2)
plot(t,u(1:N)), grid
xlabel('Tiempo en segundos')
ylabel('Voltaje de
ontrol')
print -deps -f p5opt2
Problema 4.4
La gura 3.20 muestra un monorriel de dos
arros des
rito en el problema
3.5. El problema a resolver es el
ontrol de velo
idad del
arro de maquinas
mediante un sistema de
ontrol optimo
uadrati
o. Para garantizar a los
pasajeros un viaje
onfortable, los
ambios de velo
idad deben realizarse
on un tiempo de estabiliza
ion menor que 10 segundos y
on mnimo so-
breimpulso. El error en estado estable debe ser nulo. Simule una se~nal
de referen
ia que
ambie la velo
idad de 30 a 10 m/s y demuestre que se
umplen las espe
i
a
iones de dise~no. La sele
ion del tiempo de muestreo
es a
onvenien
ia del dise~no.
% p7opt2 SOLUCION DEL PROBLEMA 4.4
lose all
% PARAMETROS DEL PROCESO:
M1=1300; M2=2600; M3=2600; K12=100000; K23=100000;
B12=500; B23=500; B1=5000; B2=10000; B3=10000;
% MODELO DEL PROCESO
A=[0 1 0 0 0 0
-K12/M1 -(B1+B12)/M1 K12/M1 B12/M1 0 0
194
Control Optimo
0.6
Posición (m)
0.4
0.2
0
0 1 2 3 4 5 6 7 8 9 10
Tiempo en segundos
40
Voltaje de control
20
−20
−40
0 1 2 3 4 5 6 7 8 9 10
Tiempo en segundos
Figura 4.31: Posi ion de la bola y el voltaje de ontrol para el problema 4.3.
0 0 0 1 0 0
K12/M2 B12/M2 -(K12+K23)/M2 -(B2+B23+B12)/M2 K23/M2 B23/M2
0 0 0 0 0 1
0 0 K23/M3 B23/M3 -K23/M3 -(B3+B23)/M3℄;
B=[0 1 0 0 0 0℄';
alfa = 1; % CONSTANTE TACOMETRICA
C=[ 0 alfa 0 0 0 0
0 0 0 alfa 0 0
0 0 0 0 0 alfa℄;
D=[0;0;0℄;
[num
,den
℄=ss2tf(A,B,C,D);
% MODELO LINEAL DISCRETO
T = 0.2; % perodo de muestreo
[G,H,C,D℄=
2dm(A,B,C,D,T,'zoh');
% ADICIONANDO ACCION INTEGRAL
G1 = [G zeros(6,1);-C(1,:)*G 1℄;
H1 = [H;-C(1,:)*H℄;
% CALCULO DE LA GANANCIA DEL CONTROLADOR
Q = [1 0 0 0 0 0 0
0 1 0 0 0 0 0
0 0 1 0 0 0 0
4.11 Problemas Resueltos 195
0 0 0 1 0 0 0
0 0 0 0 1 0 0
0 0 0 0 0 1 0
0 0 0 0 0 0 100℄;
R = [10℄;
% OBTENEMOS LA GANANCIA DEL CONTROLADOR APLICANDO dlqr
[KK,P℄=dlqr(G1,H1,Q,R);
% SEPARAMOS LA ACCION INTEGRAL
K = [KK(1) KK(2) KK(3) KK(4) KK(5) KK(6)℄;
KI = -KK(7);
% SIMULACION
N = 500; x=[0;0;0;0;0;0℄; v=0; Y=0;
for k=1:N
r(k)=20 + 10*sign(sin(0.02*k)); Ref=r(k);
v = v + Ref - Y;
U = - K*x + KI*v;
x = G*x + H*U;
Y = C(1,:)*x;
y(k) = Y; u(k) = U;
end
% GRAFICOS
t=linspa
e(0,N*T,N);
subplot(2,1,1)
plot(t,y(1:N),t,r(1:N)), grid
ylabel('Velo
idad (m/s)')
xlabel('Tiempo en segundos')
subplot(2,1,2)
plot(t,u(1:N)), grid
xlabel('Tiempo en segundos')
ylabel('Fuerza de
ontrol (N)')
print -deps -f p7opt2
Problema 4.5
30
25
Velocidad (m/s)
20
15
10
5
0 10 20 30 40 50 60 70 80 90 100
Tiempo en segundos
600
Fuerza de control (N)
400
200
0
0 10 20 30 40 50 60 70 80 90 100
Tiempo en segundos
Figura 4.32: Velo
idad del
arro de maquinas y la fuerza de
ontrol para el
problema 4.4.
P = diag(0,4);
for i = 1:40
P = Q + G1'*P*G1 - G1'*P*H1*inv(R+H1'*P*H1)*H1'*P*G1;
end
% CALCULO DE LA MATRIZ DE GANANCIA KK
KK = inv(R+H1'*P*H1)*H1'*P*G1;
% SEPARAMOS LA ACCION INTEGRAL
K = [KK(1) KK(2) KK(3) KK(4)℄;
KI = -KK(5);
% KK = dlqr(G1,H1,Q,R);
% CALCULO DE LA MATRIZ DE OBSERVABILIDAD
No = [C' G'*C' (G')^2*C' (G')^3*C'℄;
rankNo = rank(No); % sistema no es observable
% SIMULACION
N = 200; x=[0;0;0;0℄; v=0; Y=0;
for k=1:N
r(k)=3*sign(sin(0.02*k)); Ref=r(k);
v = v + Ref - Y;
U = - K*x + KI*v;
if(U > 200)
U = 200;
elseif(U < -200)
U = -200;
end
x = G*x + H*U;
Y = C*x;
y(k) = Y; u(k) = U;
end
% GRAFICOS
t=linspa
e(0,N*T,N);
subplot(2,1,1)
plot(t,y(1:N),t,r(1:N)), grid
ylabel('Posi
ion (m)')
xlabel('Tiempo en segundos')
subplot(2,1,2)
plot(t,u(1:N)), grid
xlabel('Tiempo en segundos')
ylabel('Voltaje de
ontrol')
print -deps -f p8opt2
Problema 4.6
La gura 2.2 muestra dos tanques identi
os
olo
ados en
as
ada. La se
ion
horizontal A=9 m2 de
ada tanque es
onstante. El objetivo de
ontrol es
198
Control Optimo
Posición (m)
0
−2
−4
0 5 10 15 20 25 30 35 40
Tiempo en segundos
100
Voltaje de control
−100
−200
0 5 10 15 20 25 30 35 40
Tiempo en segundos
Problema 4.7
El pro
eso ele
trome
ani
o mostrado en la gura 3.26 se des
ribe en el pro-
blema 3.8. Dise~nar un sistema de
ontrol optimo
uadrati
o esta
ionario
200
Control Optimo
Nivel (m)
2
0
0 5 10 15 20 25 30 35 40
Tiempo en segundos
1.5
Flujo de control (m^3/s)
0.5
0
0 5 10 15 20 25 30 35 40
Tiempo en segundos
[num,den℄=ss2tf(G,H,C,D);
a1 = den(2); a2 = den(3); a3=den(4);
b1 = num(2); b2 = num(3); b3=num(4);
% SIMULACION
N = 600; x=[0;0;0℄; v=0; Y=0;
for k=1:N
r(k)=5*sign(sin(0.008*k)); Ref=r(k);
v = v + Ref - Y;
U = - K*x + KI*v;
% if(U > 24)
% U = 24;
% elseif(U < -24)
% U = -24;
% end
x = G*x + H*U;
Y = C(1,:)*x;
y(k) = Y; u(k) = U;
end
% GRAFICOS
t=linspa
e(0,N*T,N);
subplot(2,1,1)
plot(t,y(1:N),t,r(1:N)), grid
202
Control Optimo
10
Velocidad (rad/s)
−5
−10
0 5 10 15 20 25 30
Tiempo en segundos
40
20
Voltaje de control
−20
−40
−60
0 5 10 15 20 25 30
Tiempo en segundos
Demostrar que el valor mnimo de la fun
ion de
osto des
rita en la e
ua
ion
4.11):
NX1
1
J = x (N )Sx(N ) +
T 1 xT (k)Qx(k) + uT (k)Ru(k)
2 2 k=0
4.12 Problemas Propuestos 203
Problema 4.12
La gura 3.32 muestra el pro
eso pendulo doble no lineal, el
ual es una
extension del pendulo simple des
rito en la se
ion 3.1. El a
oplamien-
to entre los dos pendulos de igual longitud no es
exible. Las e
ua
iones
que des
riben la dinami
a del sistema son materia del problema propuesto
3.13. Dise~nar un sistema de
ontrol optimo no esta
ionario para
ontrolar
simultaneamente las posi
iones y
on mnimo tiempo de estabiliza
ion
y mnimo sobreimpulso, de modo tal que el pendulo doble permanez
a en
posi
ion verti
al.
Problema 4.13
La gura 3.33 muestra el pro
eso doble grua-puente no lineal, el
ual es una
extension del pro
eso grua-puente es
rito en la se
ion 3.2. El a
oplamiento
entre las dos se
iones iguales de la varilla no es
exible. Las e
ua
iones que
des
riben la dinami
a del sistema son materia del problema propuesto 3.14.
Considerar que la
arga esferi
a es de 0.02 kg. Dise~nar un sistema de
ontrol
optimo esta
ionario para
ontrolar simultaneamente las posi
iones y
on
mnimo tiempo de estabiliza
ion y mnimo sobreimpulso, de modo tal que
la grua-puente doble permanez
a en posi
ion verti
al
uando el
arro realiza
un re
orrido predeterminado..
Problema 4.14
En la se
ion anterior se dise~naron sistemas de
ontrol optimo esta
ionario
para varios pro
esos. Ahora abordaremos el dise~no de sistemas de
ontrol
optimo no esta
ionarios.
Dise~nar un sistema de
ontrol optimo no esta
ionario; es de
ir, determi-
nar la ley de
ontrol u(k) que minimi
e la siguiente fun
ion de
osto:
1
J = [xT (N )Sx +
1 NX1[xT (k)Qx + uT (N )Ru℄
2 2 k=0
para una
ondi
ion ini
ial x(0) =
arbitraria y para un valor de N para
el
ual la o las salidas
ontroladas
umplan las espe
i
a
iones de dise~no.
Sele
ionar apropiadamente el tiempo de muestreo y las matri
es de pon-
dera
ion. Gra
ar la o las salidas
ontroladas y las
orrespondientes se~nales
de
ontrol. Cal
ular tambien el valor mnimo de la fun
ion de
osto. Re-
alizar los
al
ulos requeridos anteriormente para
ada uno de los pro
esos
tratados en los problemas 4.1, 4.2, 4.3, 4.4, 4.5, 4.6 y 4.7.
Cap
tulo 5
Control Adaptivo
U ESTIMACION MODELO
DE U LINEAL
+
Y CONTROLADOR CON + PROCESO Y
+ AUTOSINTONIZACION u U NO LINEAL
-
DISTURBIOS
Figura 5.1: Congura
ion del sistema de
ontrol
on autosintoniza
ion.
El sistema de
ontrol
on autosintoniza
ion mostrado en la gura 5.1
opera
omo sigue: luego de
ada tiempo de muestreo, el ve
tor estimado
de parametros ^ se a
tualiza empleando los datos propor
ionados por la
entrada U del pro
eso y por la salida Y del mismo. Luego, los elementos
de ^ se usan para re
uperar el modelo lineal del pro
eso, lo
ual permite
estimar el ve
tor de estado del modelo del pro
eso x^ (empleando un ltro
de Kalman) y el valor de equilibrio U de la ley de
ontrol a
tual U . Tales
resultados se usan luego para
omputar la ley de
ontrol residual u y para
a
tualizar la ley de
ontrol a
tual U a partir de la rela
ion U = U + u.
Este
aptulo esta organizado
omo sigue. La se
ion 5.2 trata
on el
problema de modelar pro
esos no lineales usando modelos lineales. Pro-
edimientos para estimar en lnea (\on-line") los parametros y estados del
5.2 Modelando Pro
esos No Lineales 207
modelo del pro
eso se desarrollan en la se
ion 5.3, mientras que el algo-
ritmo del
ontrolador
on autosintoniza
ion se deriva en la se
ion 5.4. La
se
ion 5.5 presenta el pro
edimiento para dise~nar un sistema de
ontrol
on
autosintoniza
ion. Una apli
a
ion se propor
iona en la se
ion 5.6:
ontrol
de posi
ion de un servomotor sujeto a
argas no lineales.
B = n^2*bm +bL;
Jeff = n^2*Jm +JL;
M = Jeff + (1/3)*m*Lo^2 + Mo*Lo^2 + (2/5)*Mo*Ro^2;
N = g*Lo*(Mo+m/2);
% MODELO LINEAL CONTINUO DEL PROCESO DE SEGUNDO ORDEN
A
= [0 1;-N/M -(B + n^2*K*E/R)/M℄; % (
: CONTINUO)
B
= [0;n*K*Ka
t/(R*M)℄;
C
= [1 0℄; D
= [0℄;
% MODELO LINEAL DISCRETO DEL PROCESO DE SEGUNDO ORDEN
T = 0.01; % PERIODO DE MUESTREO
[G,H,C,D℄=
2dm(A
,B
,C
,D
,T,'zoh');
[num,den℄=ss2tf(G,H,C,D);
a1 = den(2); a2 = den(3);
b1 = num(2); b2 = num(3);
% CONDICIONES INICIALES Y OTROS PARAMETROS
alfa=1000; Pi = alfa*eye(5); % MATRIZ P INICIAL
theta_p = [-a1 -a2 b1 b2℄'; % PARAMETROS DEL PROCESO
thetai = [0 0 0 0 0℄'; % PARAMETROS INICIALES
lambda = 0.99; % FACTOR DE MEMORIA
Y(1) = 0; Y(2) = 0; U(1) = 0; U(2) = 0;
% PROCEDIMIENTO DE IDENTIFICACION
Mm = 1000;
for r = 1:Mm
k = r + 2;
U(k) = 0.4;
psi_p = [Y(k-1) Y(k-2) U(k-1) U(k-2)℄';
Y(k) = psi_p'*theta_p; % MODELO LINEAL DEL PROCESO
psi = [psi_p;1℄; % VECTOR DE DATOS
e = Y(k)-psi'*thetai; % ERROR DE ESTIMACION
i = Pi*psi;
j = psi'*i;
gamma = i/(lambda + j);
5.3 Pro
edimientos de Estima
ion 211
0.4
SEÑAL EXCITATRIZ U
0.3
0.2
0.1
0
0 100 200 300 400 500 600 700 800 900 1000
MUESTRAS DISCRETAS k = 0.01 s
RESPUESTA Y DEL PROCESO
2.5
1.5
0.5
0
0 100 200 300 400 500 600 700 800 900 1000
MUESTRAS (CADA MUESTRA EQUIVALE A 0.01 s)
Figura 5.2: Respuesta del modelo lineal del pro
eso a un es
alon de magnitud
U = 0.4.
0.5
PARAMETROS ESTIMADOS
−0.5
−1
−1.5
−2
0 100 200 300 400 500 600 700 800 900 1000
MUESTRAS (CADA MUESTRA EQUIVALE A 0.01 s)
0.045
0.04
0.03
0.025
0.02
0.015
0.01
0.005
0
0 100 200 300 400 500 600 700 800 900 1000
MUESTRAS (CADA MUESTRA EQUIVALE A 0.01 s)
1) Obtener el ve
tor de parametros ini
ial ^(0) usando los valores de los
parametros del modelo del pro
eso dadas en la e
ua
ion (5.4).
2) Obtener el valor ini
ial del parametro C (0) empleando la e
ua
ion
(5.8),
onsiderando U = 0 e Y igual a la se~nal de referen
ia.
3) La matriz de
ovarianza ini
ial P puede tener la forma P = I , donde
I es la matriz identidad y 1.
4) Tomar nuevas medi
iones de Y (k) y de U (K ) en el pro
eso, para
obtener una nueva e
ua
ion de la forma dada en (5.9).
5) Computar: (k) = max(1; k (k)k); n = =(k)
6) Determinar la matriz N (k) apli
ando fa
toriza
ion Cholesky en:
N (k)N (k)T = P (k)
8) Computar:
PS (k) = S (k)P (k)S (k)
nS = [S (k )℄
1 n
r(k) = 1 + nS T (k )P (k 1)
S nS (k )
" s #
(k) = 1
1 r(k) r2(k) 4kPS (k 1) nS (k)k2
2 tr PS (k 1)
en (k) = Y (k)=(k) nT (k) ^(k 1)
j (k) = [ nS
T (k + 1)P (k )
S nS (k + 1) + (k )℄
^(k + 1) = ^(k) + S 1 (k)PS (k) nS (k)en (k + 1)=j (k)
HnS (k +1) = PS (k) nS (k +1) [ nS T (k +1)P (k )
S nS (k +1)+ (k )℄
1
PS (k + 1) = [I HnS (k + 1) nS T (k + 1)℄P (k )=(k )
S
max eig(PS )
tt = abs
min eig(P )S
9) Implementar el
riterio para parar la estima
ion y para en
ontrar la
nueva matriz de es
alamiento Nnew
omo sigue: sabiendo que tt es
el numero
ondi
ionante de PS , si tt (
ota inferior), parar la
estima
ion; en otro
aso, si tt (
ota superior), determinar Nnew (k)
(a partir de la rela
ion PS = Nnew Nnew
T ),
al
ular los elementos n
new
(valor absoluto de la suma de los elementos de las las de Nnew (k)),
jj
P = Pnew .
S
S
Ejemplo 5.2
Estimar los parametros del pro
eso servomotor D.C.
on
arga no lineal
des
rito en la se
ion 3.3, empleando el metodo de los mnimos
uadrados
re
ursivo mejorado. Emplee el modelo no lineal de segundo orden del pro-
eso y
omo se~nal ex
itadora use un es
alon de magnitud 0.4. Graque la
respuesta del pro
eso.
Solu
ion: El programa ejem5 2.m estima los parametros para el pro
eso
pedido. La gura 5.5 gra
a la respuesta Y del pro
eso a un es
alon U
= 0.4. Las guras 5.6 y 5.7 muestran los parametros estimados. Podemos
observar que
ada parametro estimado
onverge a un valor
onstante.
5.3 Pro
edimientos de Estima
ion 215
B = n^2*bm +bL;
Jeff = n^2*Jm +JL;
M = Jeff + (1/3)*m*Lo^2 + Mo*Lo^2 + (2/5)*Mo*Ro^2;
N = g*Lo*(Mo+m/2);
% MODELO LINEAL CONTINUO DEL PROCESO DE SEGUNDO ORDEN
A
= [0 1;-N/M -(B + n^2*K*E/R)/M℄; % (
: CONTINUO)
B
= [0;n*K*Ka
t/(R*M)℄;
C
= [1 0℄; D
= [0℄;
% MODELO LINEAL DISCRETO DEL PROCESO DE SEGUNDO ORDEN
T = 0.01; % PERIODO DE MUESTREO
[G,H,C,D℄=
2dm(A
,B
,C
,D
,T,'zoh');
[num,den℄=ss2tf(G,H,C,D);
a1 = den(2); a2 = den(3);
b1 = num(2); b2 = num(3);
% CONDICIONES INICIALES (ARBITRARIAS) Y OTROS PARAMETROS
alfa=1000; N = 5; Pi = alfa*eye(N); % MATRIZ P INICIAL
theta_p = [-a1 -a2 b1 b2℄'; % PARAMETROS DEL PROCESO
thetai = [-a1/3 -a2/2 3*b1 2*b2 0℄'; % PARAMETROS INICIALES
lambda = 0.99; % FACTOR DE MEMORIA
Y(1) = 0; Y(2) = 0; U(1) = 0; U(2) = 0;
x1 = 0; x2 = 0;
% PROCEDIMIENTO DE IDENTIFICACION
Mm = 1000;
for r = 1:Mm
k = r + 2;
U(k) = 0.4;
% MODELO NO LINEAL DE SEGUNDO ORDEN DISCRETIZADO DIRECTAMENTE
TN =
*sign(x2);
x1=x1+T*x2;
x2=x2+T*(-(N/M)*sin(x1) - (B/M + n^2*K*E/(M*R))*x2 - TN/M ...
+ (n*K*Ka
t/(R*M))*U(k) );
Y(k) = x1;
216 Control Adaptivo
% PROCEDIMIENTO DE IDENTIFICACION
psi_p = [Y(k-1) Y(k-2) U(k-1) U(k-2)℄';
psi = [Y(k-1) Y(k-2) U(k-1) U(k-2) 1℄';
nor = max(1,norm(psi));
psin = psi/nor;
Q =
hol(Pi');
S = inv(diag(Q*ones(N,1),0));
Ps = S*Pi*S;
psins = inv(S)*psin;
rt = 1 + psins'*Ps*psins;
LF = 1 - (rt-sqrt(rt^2-4*norm(Ps*psins)^2/tra
e(Ps)))/2;
e = Y(k)/nor - thetai'*psin;
div = psins'*Ps*psins + LF;
theta = thetai + e*inv(S)*Ps*psins/div;
ae1(r) = -theta(1); % PARAMETRO a1 ESTIMADO
ae2(r) = -theta(2); % PARAMETRO a2 ESTIMADO
be1(r) = theta(3); % PARAMETRO b1 ESTIMADO
be2(r) = theta(4); % PARAMETRO b2 ESTIMADO
Hns = Ps*psins/div;
Ps = Ps/LF - Hns*psins'*Ps/LF;
tt = abs(max(eig(Ps))/min(eig(Ps)) );
max = 100;
min = 15;
if tt <=
min,
thetai = theta; Pi = Ps;
elseif tt >=
max,
Qnew =
hol(Ps');
Snew = inv(diag(Qnew*ones(N,1),0));
Psnew = Snew*Ps*Snew;
Pi = Psnew; thetai = theta;
end
end
% GRAFICOS
q=0:Mm-1;
figure(1)
subplot(2,1,1)
plot(q,U(1:Mm))
ylabel('SE~NAL EXCITATRIZ U')
grid
subplot(2,1,2)
plot(q,Y(1:Mm))
ylabel('RESPUESTA Y DEL PROCESO')
xlabel('MUESTRAS (CADA MUESTRA EQUIVALE A 0.01 s)')
grid
5.3 Pro
edimientos de Estima
ion 217
0.4
SEÑAL EXCITATRIZ U
0.3
0.2
0.1
0
0 100 200 300 400 500 600 700 800 900 1000
RESPUESTA Y DEL PROCESO
0.15
0.1
0.05
0
0 100 200 300 400 500 600 700 800 900 1000
MUESTRAS (CADA MUESTRA EQUIVALE A 0.01 s)
Figura 5.5: Respuesta del pro
eso no lineal a un es
alon de valor U = 0.4.
218 Control Adaptivo
0.6
a2
0.4
ESTIMADOS
0.2
0
PARAMETROS
−0.2
−0.4
−0.6
a1
−0.8
0 100 200 300 400 500 600 700 800 900 1000
MUESTRAS (CADA MUESTRA EQUIVALE A 0.01 s)
−3
x 10
14
12
10
ESTIMADOS
4
PARAMETROS
b1
2
−2
b2
−4
−6
0 100 200 300 400 500 600 700 800 900 1000
MUESTRAS (CADA MUESTRA EQUIVALE A 0.01 s)
^(k) = [ a^1 (k) a^2 (k) ^b1 (k) ^b2 (k) C^(k)℄T
Con los datos determinados hasta aqu, ahora podemos implementar los
otros pasos (ver ejemplo 5.2)
on Cmin = 15 y Cmax = 100.
224 Control Adaptivo
Las e
ua
iones del ltro de Kalman para estimar el ve
tor de estado x^ son
(ver e
ua
iones (5.14), (5.15) y (5.16)):
x^(k) = x(k) + Ko (k)[y(k) C^ (k)x(k)℄ (5.34)
x(k + 1) = G^ (k)x^(k) + H^ (k)u(k) (5.35)
Ko (k) = Po (k)C T (k)[C^ (k)Po (k)C^ T (k) + Re ℄ 1 (5.36)
Para
ada muestra dis
reta, el programa de simula
ion disadap.m (se
ion
5.6.7)
al
ula las matri
es Po (k) y Ko (k) empleando las matri
es de
ova-
rianza de los disturbios v y w, a saber, Qo = 0.01 y Ro = 0.04.
5.6.5 La Ley de Control
Para determinar el
ontrolador propor
ional- integral optimo
uadrati
o
on
realimenta
ion de estados (se
ion 5.4), la representa
ion en el espa
io de
estado aumentado toma la forma siguiente (e
ua
ion (5.23)):
xa (k + 1) = Ga (k)xa (k) + H a (k)u(k); y(k) = C a (k)xa (k)
donde:
x ( k )
x (k) = z (k) ; G (k) =
a a G 0
C I
Ha = 0 ; H C a = [C 0℄
5.6 Control Adaptivo de un Servomotor No Lineal 225
% PARAMETROS DE OPTIMIZACION
Qo = 0.01; Ro = 0.04; % PARA EL FILTRO DE KALMAN
R = 0.45; Qa = [0.05 0 0;0 0.1 0;0 0 1℄; % PARA LA GANANCIA Ka
% ******** LAZO DEL SISTEMA DE CONTROL ADAPTIVO *********
Mm = 2000;
for r = 1:Mm
t = r + 2;
% SE~NAL DE REFERENCIA
Yo(t)= Ref*sign(sin(fre
*(t-2)));
% ESTIMACION DE PARAMETROS (METODO MCRM)
psi = [Y(t-1) Y(t-2) U(t-1) U(t-2) 1℄';
rho = max(1,norm(psi));
psin = psi/rho;
Nn =
hol(Pi'); % Nn'*Nn = Pi => Nn*Nn' = Pi'
S = inv(diag(Nn*ones(5,1),0));
Ps = S*Pi*S;
psins = inv(S)*psin;
rt = 1 + psins'*Ps*psins;
lamb = 1 - (rt-sqrt(rt^2-4*norm(Ps*psins)^2/tra
e(Ps)))/2;
e = Y(t)/rho - thi'*psin;
j = psins'*Ps*psins + lamb;
th = thi + e*inv(S)*Ps*psins/j;
Hns = Ps*psins/j;
Ps = (Ps - Hns*psins'*Ps)/lamb;
tt = abs(max(eig(Ps))/min(eig(Ps)) );
max = 100;
min = 15;
if tt <=
min,
Pi = Ps; thi = th;
elseif tt >=
max,
Nnew =
hol(Ps'); % Nnew*Nnew' = Ps'
Snew = inv(diag(Nnew*ones(5,1),0));
Psnew = Snew*Ps*Snew;
Pi = Psnew; thi = th;
end
% RECUPERACION DE LA ECUACION CANONICA CONTROLABLE
ae1 = -th(1); ae2 = -th(2);
be1 = th(3); be2 = th(4); Ce = th(5);
ae11 = 0; ae12 =1; ae21 = -ae2; ae22 = -a1;
GE = [ae11 ae12;ae21 ae22℄;
be11 = 0; be21 = 1; HE = [be11;be21℄;
e11 =be2;
e12 = be1; CE = [
e11
e12℄; DE = [0℄;
% SALIDA RESIDUAL (DESVIACION)
y(t) = Y(t) - Yo(t);
228 Control Adaptivo
Posición Y (rad)
1
−1
−2
0 2 4 6 8 10 12 14 16 18 20
2
Señal de control U (voltios)
−1
−2
0 2 4 6 8 10 12 14 16 18 20
Tiempo en segundos
Figura 5.8: Resultado de la simula
ion del sistema de
ontrol adaptivo para
ontrolar la posi
ion angular del servomotor D.C. sujeto a
argas no lineales.
COMPUTADORA
PERSONAL
Sensor (encoder)
PA0
..
PA .
PA7
COMPUERTAS MUX
DIGITALES PB0
..
PB . 16 bits SERVO-
DE ENTRADA MOTOR
PB7
Y SALIDA Decodificador DC
PC1 de cuadratura
.. y contador
PC . UP / DOWN
PC7 Varilla
PC0
Fs
CONTADOR / OUTB0 Carga
Adicional
TEMPORIZADOR
Figura 5.9: Esquema de implementa
ion del sistema de
ontrol de posi
ion.
5.6 Control Adaptivo de un Servomotor No Lineal 231
Codificador optico
’
Reductor de
velocidad
Alimentacion
’
1
0
. . . 0
1
0
1
0
1
0
1
0
1
Servomotor DC 0
1
Eje de salida
Varilla
Adaptador de carga
1
0
0
1
Carga 0
1
adicional
Figura 5.10: Pro
eso servomotor D.C.
on
arga no lineal y
odi
ador
opti
o in
orporado.
velo
idad, es ne
esario usar un sistema que nos permita variar la velo
idad
del servomotor (entre un m'inimo y un maximo) as
omo tambien el sentido
de su rota
ion. Di
ho sistema
omprende un generador PWM LM3524 y un
ir
uito de poten
ia (ver gura 5.11). Tal sistema nos permite variar la
velo
idad de a
uerdo al an
ho de pulso de la se~nal PWM. El
ir
uito PWM
LM3524 genera se~nales moduladas por an
ho de pulso de 15.4 KHz, las
uales son luego ampli
adas por el
ir
uito de poten
ia, generandose una
tension de alimenta
ion
uyos lmites son 25 volt. El
ir
uito de poten
ia
esta
onformado por un sistema de disparo y dos pares de
onmutadores A
y B, tal
omo se muestra en la gura 5.12.
El sistema de disparo permite la
onmuta
ion de
ada par
onmutador
(A o B), de forma tal que no se produz
an
orto
ir
uitos durante la
on-
muta
ion. Cuando el sistema de disparo
ierra el
onmutador A y abre el B,
el sentido de la
orriente sigue la lnea punteada, indu
iendo de esta forma
una tension +V
en el servomotor. Ahora, si el sistema de disparo abre el
232 Control Adaptivo
Ca Ra Amplificador Rc
de potencia
Viene de la Salida A
PWM Al servo-
salida A0 Salida B motor DC
de la LAB-PC+
Generador
PWM
Cp Rp
Vcc
A1 B1
~ SISTEMA
SENAL PWM SERVO-
DE MOTOR
DISPARO DC
B2
A2
Par conmutador A = A1 + A2
Par conmutador B = B1 + B2
Disco con
mascara
’
odi
ador usado en esta implementa
ion,
omo en la mayora de los
asos,
in
luye dos pistas de mar
as o ranuras en
uadratura (
anales A y B),
ada
una aso
iada a una fuente de luz y un fotodede
tor independientes. Los
anales A y B produ
en dos ondas
uadradas desfasadas 900 entre s que
se utilizan para determinar la dire
ion del movimiento. Por ejemplo, si
el
anal B adelanta al
anal A, el eje esta girando en sentido antihorario,
234 Control Adaptivo
74HC
4 bits
193
Puerto R L
digital 8 bits
PB 74HC
4 bits
193
La Interfaz Lab-PC+
La interfaz entre el mi
ro
omputador, la planta, el a
tuador y el sensor es
la tarjeta de adquisi
ion de datos Lab-PC+. Los terminales usados para el
ontrol son:
1. Una salida analogi
a (DAC0). La se~nal de
ontrol se enva usando el
terminal DAC0 al CI LM3524 (generador PWM)
on una resolu
ion
de 12 bits para generar la se~nal analogi
a.
5.6 Control Adaptivo de un Servomotor No Lineal 235
/*R1LLIB.CPP
*Ar
hivo de de
lara
ion de fun
iones definidas en R1LLIB.H
*Estas fun
iones permiten fa
ilitar el manejo de la tarjeta
*de adquisi
ion de datos Lab-PC+: Digital Input (16 bits),
*Analog Output, Timer Generator, Polling. Usa fun
iones de
*le
to/es
ritura de registros (inportb, outport).
*/
#in
lude "r1llib.h"
#in
lude "nidaq.h"
#in
lude <dos.h>
stati
unsigned R1LLSBPort; // dire
ion del LSB (bit menos
//signifi
ativo) del puerto digital de entrada PA0-7
stati
unsigned R1LMSBPort; // dire
ion del MSB (bit mas
//signifi
ativo del puerto digital de entrada PB0-7
stati
unsigned R1LPollPort; // dire
ion del puerto digital
//de polling PC0-7. Esto es, la entrada al timer de la se~nal
//de muestreo en forma de una su
esion de pulsos en el bit
//indi
ado en la des
rip
ion del bus (PC0)
stati
unsigned R1LAOPort; // dire
ion de la salida
//anal'ogi
a (DAC0)
stati
int R1LFS ; // fre
uen
ia de muestreo (Hertz)
/* Ini
ializando la tarjeta de adquisi
ion de datos */
void ConfigurarHardware (unsigned pollPort, unsigned lPort,
unsigned hPort, unsigned salPort, int fre
)
{
int
uentaTimer, devi
eCode;
uentaTimer = (int)(2000000/fre
);
R1LPollPort = pollPort;
5.6 Control Adaptivo de un Servomotor No Lineal 239
R1LLSBPort = lPort;
R1LMSBPort = hPort;
R1LAOPort = salPort;
R1LFS = fre
;
USE_LAB();
Init_DA_Brds(1,&devi
eCode);
ICTR_Setup(1,0,3,
uentaTimer,1); //
lo
k de muestreo = timer0
DIG_Prt_Config(1,(int)(pollPort - 0x270),0,0);
DIG_Prt_Config(1,(int)(lPort-0x270),0,0);
DIG_Prt_Config(1,(int)(hPort-0x270),0,0);
}
/*Enviando al puerto de salida el voltaje espe
ifi
ado */
void EnviarVoltage (float u)
{
unsigned salidaDigital;
salidaDigital = (unsigned) (409.5*u-0.5);
outport(R1LAOPort,salidaDigital);
}
/*Dete
tando el numero de posi
iones registrados en los
ontadores */
unsigned int LeerPosi
ion()
{
unsigned
har o
t1,o
t2;
o
t1 = inportb(R1LLSBPort);
o
t2 = inportb(R1LMSBPort);
return (255*o
t2+o
t1);
}
/*Dete
tando verdadero o falso en forma alternativa, de
a
uerdo a la fre
uen
ia indi
ada en ConfigurarHardware */
int NivelClo
k ()
{
unsigned
har bytePoll;
bytePoll = inportb (R1LPollPort);
return (bytePoll&1);
}
Phi[0℄= ym1; Phi[1℄= ym2; Phi[2℄= um1; Phi[3℄= um2; Phi[4℄= 1.;
for(Ro=i=0; i<5; i++) Ro += Phi[i℄*Phi[i℄;
if(Ro>1.) Ro= sqrt(Ro);
else Ro= 1.;
for(i=0; i<5; i++)
{
Phin[i℄= Phi[i℄/Ro;
for(j=0; j<5; j++)
Nk[i℄[j℄= Pk[i℄[j℄;
}
/*Ahora ha
emos Cholesky */
for(j=0; j<5; j++)
{
for(i=0, val=0.; i<j; i++) val += Nk[j℄[i℄*Nk[j℄[i℄;
Nk[j℄[j℄= sqrt(Nk[j℄[j℄-val);
for(i=j+1; i<5; i++)
{
for(k=0, val=0.; k<j; k++) val += Nk[i℄[k℄*Nk[j℄[k℄;
Nk[i℄[j℄= (Nk[i℄[j℄-val)/Nk[j℄[j℄;
} }
/*Y ahora en
ontramos la Sk*/
Sk[0℄= 1./ Nk[0℄[0℄;
Sk[1℄= 1./(Nk[1℄[0℄+Nk[1℄[1℄);
Sk[2℄= 1./(Nk[2℄[0℄+Nk[2℄[1℄+Nk[2℄[2℄);
Sk[3℄= 1./(Nk[3℄[0℄+Nk[3℄[1℄+Nk[3℄[2℄+Nk[3℄[3℄);
Sk[4℄= 1./(Nk[4℄[0℄+Nk[4℄[1℄+Nk[4℄[2℄+Nk[4℄[3℄+Nk[4℄[4℄);
/*Y ahora la Psk y la Phins*/
for(i=0; i<5; i++)
{
Phins[i℄= Phin[i℄/Sk[i℄;
for(j=0; j<5; j++)
Psk[i℄[j℄= Sk[i℄*Pk[i℄[j℄*Sk[j℄;
}
/*Y ahora la 'Rt' y la 'LF' y el 'ek' y el 'div'*/
for(i=0, rt= 1., val1= LF= ek= 0.; i<5; i++)
{
for(j=0, val=0.; j<5; j++)
val += Psk[i℄[j℄*Phins[j℄;
rt += val*Phins[i℄; /* OJO QUE EN LA SIMULACION PONE "+=" */
val1+= Psk[i℄[i℄;
LF += val*val;
ek += Thk[i℄*Phin[i℄;
}
246 Control Adaptivo
LF = 1-.5*(rt-sqrt(rt*rt-4.*LF/val1));
ek = Yk/Ro - ek;
div= LF + rt - 1.;
/*Ahora Th y Theta y algo de Psk */
for(i=0; i<5; i++)
{
for(j=0, val= 0.; j<5; j++)
{
val += Psk[i℄[j℄*Phins[j℄;
Psn[i℄[j℄= Psk[i℄[j℄; /* Esto es de Psk */
}
Theta[i℄ = Th[i℄ = Thk[i℄ + val*ek/Sk[i℄/div/* en la simul*/;
}
/*Y la 'Psk' (tambi'en se puede ha
er O(n2) en vez de O(n3)) */
for(i=0; i<5; i++)
{
for(j=0; j<5; j++)
{
for(k=0, val= val1= 0.; k<5; k++)
{
val += Psn[i℄[k℄*Phins[k℄;
val1+= Phins[k℄*Psn[k℄[j℄;
}
Psaux[i℄[j℄= Psk[i℄[j℄= Psk[i℄[j℄/LF - val*val1/div/LF;
} }
/*Ahora
al
ulamos la C */
Co=
al
ulaC();
/*Y renovamos las variables */
if( Co<= Cmin )
for(i=0; i<5; i++)
{
Thk[i℄= Th[i℄;
for(j=0; j<5; j++)
Pk[i℄[j℄= Psk[i℄[j℄;
}
else if(Co>= Cmax)
{
for(i=0; i<5; i++)
for(j=0; j<5; j++)
Nk[i℄[j℄= Psk[i℄[j℄;
/*Ahora ha
emos el Cholesky */
for(j=0; j<5; j++)
{
5.6 Control Adaptivo de un Servomotor No Lineal 247
if(theta<0.) t= -t;
}
= 1./sqrt(1+t*t); s= t*
;
tau= s/(1.+
); h= t*Psaux[ip℄[iq℄;
z[ip℄ -= h; z[iq℄ += h;
D[ip℄ -= h; D[iq℄ += h;
Psaux[ip℄[iq℄ = 0.;
{
int i, j, k, n=3, niter;
double delta;
delta= TOL+1.;
niter= 0;
while(delta>TOL && 20>niter++)
{
/*P(k).H y H'P(k) */
for(i=0; i<n; i++)
for(Vaux1[i℄=Vaux2[i℄=0.,j=0; j<n; j++){
Vaux1[i℄ += P[i℄[j℄*He[j℄;
Vaux2[i℄ += He[j℄*P[j℄[i℄;
}
/*Raux1= R + H'P(k).H */
for(Raux1= R, i=0; i<n; i++)
Raux1 += He[i℄*Vaux1[i℄;
/*G'P(k).H y H'P(k).G */
for(i=0; i<n; i++){
Vaux3[i℄= Vaux4[i℄= 0.;
for(j=0; j<n; j++){
Vaux3[i℄ += Ge[j℄[i℄*Vaux1[j℄;
Vaux4[i℄ += Vaux2[j℄*Ge[j℄[i℄;
}
/*3er. Termino */
for(i=0; i<n; i++)
for(j=0; j<n; j++)
Maux1[i℄[j℄= Vaux3[i℄*Vaux4[j℄/Raux1;
/*G'P(k) */
for(i=0; i<n; i++)
for(j=0; j<n; j++){
Maux2[i℄[j℄= 0.;
for(k=0; k<n; k++)
Maux2[i℄[j℄ += Ge[k℄[i℄*P[k℄[j℄;
}
/*2o. Termino> G'P(k).G */
for(i=0; i<n; i++)
for(j=0; j<n; j++){
Maux3[i℄[j℄= 0.;
for(k=0; k<n; k++)
Maux3[i℄[j℄ += Maux2[i℄[k℄*Ge[k℄[j℄;
}
/*Y Total */
5.6 Control Adaptivo de un Servomotor No Lineal 251
delta= 0.;
for(i=0; i<n; i++)
for(j=0; j<n; j++){
Raux1= Q[i℄[j℄+Maux3[i℄[j℄-Maux1[i℄[j℄;
if(fabs(P[i℄[j℄-Raux1)>delta) delta= fabs(P[i℄[j℄-Raux1);
P[i℄[j℄= Raux1; }
}/* Fin de en
ontrar la de Ri
ati */
/*En
ontramos ahora la de
ontrol */
/*H'P */
for(Vaux1[i=0℄=0.; i<n; Vaux1[++i℄= 0.)
for(j=0; j<n; j++)
Vaux1[i℄ += He[j℄*P[j℄[i℄;
/*R+H'P.H */
for(Raux1= R, i=0; i<n; i++)
Raux1 += Vaux1[i℄*He[i℄;
/*Y Final, en
ontramos K= H'P.G/(R+H'P.H) */
for(K[i=0℄=0.; i<n; K[++i℄=0.){
for(j=0; j<n; j++)
K[i℄ += Vaux1[j℄*Ge[j℄[i℄;
K[i℄ /= Raux1;
}
/*en
ontrando el
ontrol y el nuevo estado del Observador*/
u= -(K[0℄*x[0℄ + K[1℄*x[1℄ + K[2℄*z);
Raux1= G[0℄[0℄*x[0℄ + G[0℄[1℄*x[1℄ + H[0℄*u;
x[1℄ = G[1℄[0℄*x[0℄ + G[1℄[1℄*x[1℄ + H[1℄*u;
x[0℄ = Raux1;
/*ahora en
ontramos el valor ABSOLUTO */
*U = u + ((1.+a1+a2)*r-C
)/(b1+b2);
}
/*Fun
i\'on prin
ipal del programa */
void main()
{
int ant=0, a
t=0, k, n;
FILE *out;
float *yv, *uv, *rv, vel, y, u, r;
Ini
ializa_Sistema();
lrs
r();
assert(tsimul<120);
t= tsimul/Td;
n= (int)t;
assert(NULL!=(uv= (float *)
allo
(n/5,sizeof(float))));
assert(NULL!=(yv= (float *)
allo
(n/5,sizeof(float))));
assert(NULL!=(rv= (float *)
allo
(n/5,sizeof(float))));
252 Control Adaptivo
t= u= vel= y= 0.;
for(k=0; k<n;)
{
a
t=NivelClo
k();
if ((ant==0)&&(a
t==1))
{
Mide_Variables(&y, &r, &vel, t);
Estima_Parametros(Th, y, u);
En
uentra_Control(r, &u);
u= Apli
a_Control(u, vel);
if(!(k%5))
{
yv[k/5℄= y; rv[k/5℄= r; uv[k/5℄= u;
}
k++;
t += Td; gotoxy(5,5); printf("%f",t);
if(kbhit()) if(get
h()==27) break;
}
ant=a
t;
}
EnviarVoltage(Ofst);
out=fopen("
2.out","wt");
for (int i=0; i<n/5; i++)
fprintf(out,"%10f %10f %10f %10f %10f\n",
i*5*Td, rv[i℄, yv[i℄, uv[i℄, rv[i℄-yv[i℄);
f
lose(out);
}
1.5
0.5
0
0 10 20 30 40 50 60 70 80 90 100
Tiempo en segundos
1.5
Señal de control (voltios)
0.5
−0.5
−1
0 10 20 30 40 50 60 70 80 90 100
Tiempo en segundos
Figura 5.15: Control adaptivo de la posi
ion del servomotor. Primer
aso:
servomotor no a
iona
arga alguna.
2.5
Posición (radianes)
2
1.5
0.5
0
0 10 20 30 40 50 60 70 80 90 100
Tiempo en segundos
1.5
Señal de control (voltios)
0.5
−0.5
−1
0 10 20 30 40 50 60 70 80 90 100
Tiempo en segundos
Figura 5.16: Control adaptivo de la posi
ion del servomotor. Segundo
aso:
servomotor a
iona la
arga no lineal.
b2/m2 0 a33 1
k2/m2 0 a43 0℄;
B = [0 0;1/m1 b1*b2/(m1*m2);0 -b2/m2;(1/m1+1/m2) -k2/m2℄;
C = [0 0 1 0℄; D = [0 0℄;
% CONVERSION AL ESPACIO DISCRETO
T=0.5; % TIEMPO DE MUESTREO
[G,H,C,D℄ =
2dm(A,B,C,D,T,'zoh'); % ESPACIO DE ESTADO
% FT CUANDO ACTUA LA SE~NAL CONTROL u Y EL DISTURBIO w ES NULO
[num,den℄=ss2tf(G,H,C,D,1);
a1 = den(2); a2 = den(3); a3 = den(4); a4 = den(5);
b1 = num(2); b2 = num(3); b3 = num(4); b4 = num(5);
% F.T.
uando a
t'ua disturbio w y
ontrol u es nulo
[numd,dend℄=ss2tf(G,H,C,D,2); % dend = den
j1=numd(2); j2=numd(3); j3=numd(4); j4=numd(5);
% F.T. del pro
eso: y = (num/den)*u + (numd/den)*w
% PARAMETROS PARA OPTIMIZAR LA GANANCIA F DEL FILTRO DE KALMAN
Xi = 1; Sigma = 1;
% PARAMETROS DE OPTIMIZACION DEL CONTROLADOR Ke
R = 1;
Qa = 1*[1 0 0 0 0;0 1 0 0 0;0 0 1 0 0;0 0 0 1 0;0 0 0 0 1℄;
% CONDICIONES INICIALES
Ref = 1; % MAGNITUD DE LA SE~NAL DE REFERENCIA
nn = 4; r=1; % nn: ORDEN DEL PROCESO; r: NUMERO DE SALIDAS
NN=13; % NUMERO DE PARAMETROS A ESTIMAR
Ce = (1 + a1 + a2+ a3+a4)*Ref;
thi =[-a1 -a2 -a3 -a4 b1 b2 b3 b4 j1 j2 j3 j4 Ce℄';
alfa=1000; Pi = alfa*eye(NN); % MATRIZ P INICIAL
lamb=0.98; % FACTOR DE MEMORIA
Y(1) = 0; Y(2) = 0; Y(3) = 0; Y(4)=0; Y(5) =0; % SALIDA
U(1)= 0; U(2) = 0; U(3) = 0; U(4)=0; U(5)=0; % CONTROL
w(1)= 0; w(2) = 0; w(3) = 0; w(4)=0; w(5)=0;
xmenos = zeros(nn,1); % VECTOR DE OBSERVACION INICIAL
z=0; % ACCION INTEGRAL INICIAL
MM = 200;
% LAZO DEL SISTEMA DE CONTROL ADAPTIVO ********************
for t=1:MM;
t1=t+1;
% SE~NAL DEL DISTURBIO
w(t1+4) = 0.01;%*sign(sin(0.03*t1));
% SE~NAL DE REFERENCIA
W(t1+4) = 0;
% MODELO LINEAL DEL PROCESO CON DISTURBIO
Y(t1+4)=[Y(t1+3) Y(t1+2) Y(t1+1) Y(t1) ...
256 Control Adaptivo
F = dlqe(GE,FE,CE,Sigma,Xi);
xmas = xmenos + F*(y(t1+4) - CE*xmenos); % OBSERVACION
z = z -CE*xmas; % ACCION INTEGRAL
Problema 5.2
El problema 3.2 des
ribe las e
ua
iones que gobiernan la dinami
a longitudi-
nal de un avion
omer
ial volando a velo
idad de
ru
ero (altura y velo
idad
onstantes). El
ontrol del angulo de in
lina
ion del avion (ver gura 3.14)
es un problema longitudinal a resolver. El objetivo de
ontrol enton
es es
dise~nar un autopiloto que manipulando el angulo Æe del de
e
tor de ele-
va
ion,
ontrole el angulo de in
lina
ion del avion.
Se pide dise~nar un sistema de
ontrol adaptivo que genere una fuerza
de
ontrol, de modo que la salida del pro
eso (el angulo de in
lina
ion )
presente un sobreimpulso menor al 10 % y un tiempo de estabiliza
ion menor
que 10 s,
on un error en estado estable nulo. Por ejemplo, si la entrada de
258 Control Adaptivo
0.01
Salida y = x1−x2 (m)
0.005
−0.005
−0.01
0 10 20 30 40 50 60 70 80 90 100
Tiempo en segundos
−20
Fuerza de control (N)
−40
−60
−80
0 10 20 30 40 50 60 70 80 90 100
Tiempo en segundos
C
= [0 0 1℄; D
= [0℄;
T = 0.1; % PERIODO DE MUESTREO
% MODELO LINEAL DISCRETO
[G,H,C,D℄=
2dm(A
,B
,C
,D
,T,'zoh');
[num,den℄=ss2tf(G,H,C,D);
a1 = den(2); a2 = den(3); a3=den(4);
b1 = num(2); b2 = num(3); b3=num(4);
% CONDICIONES INICIALES
Ref = 0.2; % MAGNITUD DE LA SE~NAL DE REFERENCIA
Ce = (1 + a1 + a2 + a3)*Ref; % Uo = 0 (ARBITRARIO)
thi = [-a1 -a2 -a3 b1 b2 b3 Ce℄';
alfa=1000; Pi = alfa*eye(NN); % MATRIZ P INICIAL
lamb=0.98; lamb0 = 0.99; % FACTOR DE MEMORIA
Y(1)=0; Y(2)=0; Y(3)=0; y(1)=0; y(2)=0; y(3)=0; % SALIDA
U(1)=0; U(2)=0; U(3)=0; u(1)=0; u(2)=0; u(3)=0; % CONTROL
xmenos = zeros(nn,1); % VECTOR DE OBSERVACION INICIAL
z=0; % ACCION INTEGRAL INICIAL
tt = abs(max(eig(Ps))/min(eig(Ps)) );
max = 100;
min = 15;
if tt <=
min,
Pi = Ps; thi = th;
elseif tt >=
max,
Nnew =
hol(Ps'); % Nnew*Nnew' = Ps'
Snew = inv(diag(Nnew*ones(NN,1),0));
Psnew = Snew*Ps*Snew;
Pi = Psnew; thi = th;
end
% RECUPERACION DE LA ECUACION CANONICA CONTROLABLE
ae1 = -th(1); ae2 = -th(2); ae3 = -th(3);
be1 = th(4); be2 = th(5); be3 = th(6); Ce = th(7);
nume = [0 be1 be2 be3℄;
dene = [1 ae1 ae2 ae3℄;
[GE,HE,CE,DE℄ = tf2ss(nume,dene);
% CALCULO DE LA GANANCIA F DEL ESTIMADOR DE KALMAN
F = dlqe(GE,HE,CE,Sigma,Xi);
xmas = xmenos + F*(y(t+3) - CE*xmenos); % OBSERVACION
z = z -CE*xmas; % ACCION INTEGRAL
% CALCULO DE LA GANANCIA Ka DEL CONTROLADOR
Ga = [GE zeros(nn,r);-CE eye(r,r)℄;
Ha = [HE;zeros(r,r)℄;
Ca = [CE zeros(r,r)℄;
Ka = dlqr(Ga,Ha,Qa,R);
% CALCULO DE LA LEY DE CONTROL RESIDUAL
u(t+3) = - Ka*[xmas;z℄; % e
. (27)
% ACTUALIZANDO ESTADOS
xmenos = GE*xmas + HE*u(t+3); %
% CALCULO DEL VALOR DE EQUILIBRIO U
AE = 1 + ae1 + ae2 + ae3; BE = be1 + be2 + be3;
Uin = inv(BE)*(AE*v1(t+3) - Ce);
% CALCULO DE LA SE~NAL ACTUAL DE CONTROL U(K)
U(t+3) = u(t+3) + Uin;
end % *********************************
% GRAFICOS
ejex = linspa
e(0,MM*T,MM);
subplot(2,1,1)
plot(ejex,v1(3:MM+2),ejex,Y(3:MM+2)), grid
ylabel('In
lina
ion (rad)')
subplot(2,1,2)
plot(ejex,U(3:MM+2)), grid
5.7 Problemas Resueltos 261
xlabel('Tiempo en seg')
ylabel('Angulo del defle
tor (rad)')
print -deps -f p4adap1
0.4
Inclinación (rad)
0.2
−0.2
−0.4
0 20 40 60 80 100 120 140 160 180 200
1
Angulo del deflector (rad)
0.5
−0.5
−1
0 20 40 60 80 100 120 140 160 180 200
Tiempo en seg
Figura 5.18: A ngulo de in
lina
ion y se~nal de
ontrol (angulo del de
e
tor)
orrespondientes al problema 5.2.
Problema 5.3
La gura 3.20 muestra un monorriel de dos
arros des
rito en el proble-
ma 3.5. El problema a resolver es el
ontrol de velo
idad del
arro de
maquinas mediante un sistema de
ontrol adaptivo
on autosintoniza
ion.
Para garantizar a los pasajeros un viaje
onfortable, los
ambios de velo
i-
dad deben realizarse
on un tiempo de estabiliza
ion menor que 15 s y
on
mnimo sobreimpulso. El error en estado estable debe ser nulo. Simule una
se~nal de referen
ia que
ambie la velo
idad de 30 a 20 m/s y demuestre
que se
umplen las espe
i
a
iones de dise~no. Luego enfrente el problema
de seguimiento. Mostrar que la velo
idad de la maquina puede seguir una
traye
toria predeterminada de velo
idades. El programa p7adap1b.m trata
el
aso de referen
ia arbitraria. Revise tal programa si desea ver detalles al
respe
to.
262 Control Adaptivo
subplot(2,1,1)
plot(ejex,Yo(7:MM+6),ejex,Y(7:MM+6)), grid
ylabel('Y1: Velo
idad (m/s)')
xlabel('Tiempo en segundos')
subplot(2,1,2)
plot(ejex,U(7:MM+6)), grid
xlabel('Tiempo en segundos')
ylabel('Voltaje de
ontrol u')
print -deps -f p7adap1a
40
Y1: Velocidad (m/s)
30
20
10
0
0 50 100 150 200 250 300
Tiempo en segundos
30
Voltaje de control u
20
10
−10
0 50 100 150 200 250 300
Tiempo en segundos
Figura 5.19: Velo
idad del
arro de maquinas y la fuerza de
ontrol para el
problema 5.3.
Problema 5.4
La gura 3.22 muestra el pro
eso as
ensor tratado en el problema 3.6. El
problema a resolver es posi
ionar suavemente el as
ensor en un piso deter-
minado, lo que signi
a sobreimpulso nulo (para que no se pase de piso) y
tiempo de estabiliza
ion menor que 10 s. Para no saturar al a
tuador (el
ampli
ador de poten
ia), la se~nal de
ontrol debe estar dentro del rango
de 200 voltios. Dise~nar un sistema de
ontrol de posi
ion adaptivo
on
autosintoniza
ion que
umpla las espe
i
a
iones pedidas.
% p8adap1.m SOLUCION DEL PROBLEMA 5.4
266 Control Adaptivo
40
20
10
0
0 50 100 150 200 250 300
Tiempo en segundos
30
Voltaje de control u
20
10
−10
0 50 100 150 200 250 300
Tiempo en segundos
Figura 5.20: Velo
idad del
arro de maquinas y la fuerza de
ontrol para el
problema 5.3. La referen
ia es arbitraria.
lear all
% PARAMETROS GENERALES
nn = 4; r=1; % nn: orden del pro
eso; r: NUMERO DE SALIDAS
NN = 9; % ORDEN DEL VECTOR ESATIMADO DE PARAMETROS
%
max = 100;
min = 15; % PARA EL ESTIMADOR DE PARAMETROS
% PARAMETROS PARA OPTIMIZAR GANANCIA DEL FILTRO DE KALMAN
Xi = 0.001; Sigma = 400;
% PARAMETROS DE OPTIMIZACION DEL CONTROLADOR Ke
R = 1; Qa = 1*eye(r+nn,r+nn);
% MODELO LINEAL DEL PROCESO EN TIEMPO CONTINUO
A
= [-0.2 0 0 0;1 0 0 0;2 0 -2 0;5 0 0 -5℄;
B
= [0.001;0;0;0℄;
C
= [0 1 0 0℄; D
= [0℄;
T = 0.8; % PERIODO DE MUESTREO
% MODELO LINEAL DISCRETO
[G,H,C,D℄=
2dm(A
,B
,C
,D
,T,'zoh');
[num,den℄=ss2tf(G,H,C,D);
a1 = den(2); a2 = den(3); a3=den(4); a4=den(5);
b1 = num(2); b2 = num(3); b3=num(4); b4=num(5);
% CONDICIONES INICIALES
Ref = 1; % MAGNITUD DE LA SE~NAL DE REFERENCIA: Yo = Ref
5.7 Problemas Resueltos 267
Ce = (1 + a1 + a2 + a3 + a4)*Ref; % Uo = 0 (arbitrario)
thi = [-a1 -a2 -a3 -a4 b1 b2 b3 b4 Ce℄';
alfa=1000; Pi = alfa*eye(NN); % MATRIZ P INICIAL
lamb=0.98; lamb0 = 0.99; % FACTOR DE MEMORIA
Y(1)=0;Y(2)=0;Y(3)=0;Y(4)=0; y(1)=0;y(2)=0;y(3)=0;y(4)=0;
U(1)=0;U(2)=0;U(3)=0;U(4)=0; u(1)=0;u(2)=0;u(3)=0;u(4)=0;
xmenos = zeros(nn,1); % VECTOR DE OBSERVACION INICIAL
z=0; % ACCION INTEGRAL INICIAL
% INCIO DEL LAZO DE CONTROL **********************************
MM = 1000;
for t = 1:MM
% SE~NAL DE REFERENCIA
g(t+4)=6 + 4*sign(sin(0.01*t));
% MODELO LINEAL DEL PROCESO
Y(t+4)=[Y(t+3) Y(t+2) Y(t+1) Y(t) ...
U(t+3) U(t+2) U(t+1) U(t)℄*[-a1 -a2 -a3 -a4 b1 b2 b3 b4℄';
y(t+4) = Y(t+4) - g(t+4); % salida residual (desvia
ion)
% ESTIMACION DE PARAMETROS (METODO MCRM)%
psi = [Y(t+3) Y(t+2) Y(t+1) Y(t) ...
U(t+3) U(t+2) U(t+1) U(t) 1℄';
rho = max(1,norm(psi));
psin = psi/rho;
Nn =
hol(Pi'); % Nn'*Nn = Pi => Nn*N' = Pi'
S = inv(diag(Nn*ones(NN,1),0));
Ps = S*Pi*S;
psins = inv(S)*psin;
rt = 1 + psins'*Ps*psins;
lamb = 1 - (rt-sqrt(rt^2-4*norm(Ps*psins)^2/tra
e(Ps)))/2;
e = Y(t+4)/rho - psin'*thi;
j = psins'*Ps*psins + lamb;
th = thi + e*inv(S)*Ps*psins/j;
Hns = Ps*psins/j;
Ps = (Ps - Hns*psins'*Ps)/lamb;
tt = abs(max(eig(Ps))/min(eig(Ps)) );
max = 100;
min = 15;
if tt <=
min,
Pi = Ps; thi = th;
elseif tt >=
max,
Nnew =
hol(Ps'); % Nnew*Nnew' = Ps'
Snew = inv(diag(Nnew*ones(NN,1),0));
Psnew = Snew*Ps*Snew;
Pi = Psnew; thi = th;
end
268 Control Adaptivo
xlabel('Tiempo en segundos')
subplot(2,1,2), grid
plot(ejex,U(3:MM+2)), grid
xlabel('Tiempo en segundos')
ylabel('Voltaje de
ontrol')
print -deps -f p8adap1
10
8
Posición (m)
0
0 100 200 300 400 500 600 700 800
Tiempo en segundos
200
Voltaje de control
100
−100
−200
0 100 200 300 400 500 600 700 800
Tiempo en segundos
Figura 5.21: Posi
ion del as
ensor y la fuerza de
ontrol (problema 5.4).
Problema 5.5
La gura 2.2 muestra dos tanques identi
os
olo
ados en
as
ada. La se
ion
horizontal A=9 m2 de
ada tanque es
onstante. El objetivo de
ontrol es
ontrolar la altura H2 empleando el
ujo Qo. La dedu
ion del modelo
linealizado del pro
eso se des
ribe en el ejemplo 2.1. Dise~nar un
ontrolador
adaptivo
on autosintoniza
ion que
umpla los siguientes requerimientos:
tiempo de estabiliza
ion menor que 15 s, sobreimpulso menor al 5 % y
error en estado estable nulo. Estas
ondi
iones de dise~no deben mantenerse
uando se
ambie la referen
ia (por ejemplo de 3 a 1 m). Adem as, el
ujo
de entrada (la se~nal de
ontrol) no debe sobrepasar los 3 m3/s.
% p9adap1.m SOLUCION DEL PROBLEMA 5.5
lear all
% PARAMETROS GENERALES
270 Control Adaptivo
u(t+2) = - Ka*[xmas;z℄;
% ACTUALIZANDO ESTADOS
xmenos = GE*xmas + HE*u(t+2);
% CALCULO DE Uo (VALOR D.C. DE U)
% AE(z^(-1)) = 1 + ae1*z^(-1) + ae2*z^(-1);
% BE(z^(-1)) = be1*z^(-1) + be2*z^(-1);
% AE(z^(-1))*Y(k) = BE(z^(-1))*U(k) + Ce; Ce = th(N), N=5
% En estado esta
ionario: z=1, Y(k) = Yo(k) (Referen
ia)
% enton
es: U(z=1) = inv(B(z=1)*[A(z=1)*Ref -
e℄
AE = 1 + ae1 + ae2; BE = be1 + be2;
Uin = inv(BE)*(AE*g(t+2) - Ce);
% CALCULO DE LA SE~NAL DE CONTROL U(t)
U(t+2) = u(t+2) + Uin;
% LIMITANDO LA SE~NAL U(t)
if(U(t+2) > 3)
U(t+2) = 3;
elseif(U(t+2) <-3)
U(t+2) = -3;
end
end % FIN DEL LAZO DE CONTROL **********************
% GRAFICOS
ejex = linspa
e(0,MM*T,MM);
subplot(2,1,1)
plot(ejex,g(3:MM+2),ejex,Y(3:MM+2)), grid
ylabel('Nivel en metros')
xlabel('Tiempo en segundos')
subplot(2,1,2)
plot(ejex,U(3:MM+2)), grid
xlabel('Tiempo en segundos')
ylabel('Flujo de
ontrol (m/s)')
print -deps -f p9adap1
Problema 5.6
El pro
eso ele
trome
ani
o mostrado en la gura 3.26 se des
ribe en el pro-
blema 3.8. Dise~nar un sistema de
ontrol adaptivo
on autosintoniza
ion
para
ontrolar la velo
idad angular del eje del motor mediante el voltaje
de entrada que puede variar entre 100 voltios. La se~nal de referen
ia es
arbitraria (problema de seguimiento).
% p11adap1.m SOLUCION DEL PROBLEMA 5.6
lear all
% PARAMETROS GENERALES
5.7 Problemas Resueltos 273
Nivel en metros
2.5
1.5
1
0 20 40 60 80 100 120 140 160
Tiempo en segundos
4
Flujo de control (m/s)
−2
−4
0 20 40 60 80 100 120 140 160
Tiempo en segundos
Ps = (Ps - Hns*psins'*Ps)/lamb;
tt = abs(max(eig(Ps))/min(eig(Ps)) );
max = 100;
min = 15;
if tt <=
min,
Pi = Ps; thi = th;
elseif tt >=
max,
Nnew =
hol(Ps'); % Nnew*Nnew' = Ps'
Snew = inv(diag(Nnew*ones(NN,1),0));
Psnew = Snew*Ps*Snew;
Pi = Psnew; thi = th;
end
% RECUPERACION DE LA ECUACION CANONICA CONTROLABLE
ae1 = -th(1); ae2 = -th(2); ae3 = -th(3);
be1 = th(4); be2 = th(5); be3 = th(6); Ce = th(7);
ae11 = 0; ae12 =1; ae13 = 0; ae21 = 0; ae22 = 0;
ae23 = 1; ae31 =-ae3; ae32 = -ae2; ae33 = -ae1;
GE = [ae11 ae12 ae13;ae21 ae22 ae23;ae31 ae32 ae33℄;
be11 = 0; be21 = 0; be31 = 1; HE = [be11;be21;be31℄;
e11 =be3;
e12 = be2;
e13 = be1;
CE = [
e11
e12
e13℄; DE = [0℄;
% CALCULO DE LA GANANCIA F DEL ESTIMADOR DE KALMAN
F = dlqe(GE,HE,CE,Sigma,Xi);
xmas = xmenos + F*(y(t+3) - CE*xmenos);
z = z -CE*xmas;
% CALCULO DE LA GANANCIA Ka DEL CONTROLADOR
Ga = [GE zeros(nn,r);-CE eye(r,r)℄;
Ha = [HE;zeros(r,r)℄;
Ca = [CE zeros(r,r)℄;
Ka = dlqr(Ga,Ha,Qa,R);
% CALCULO DE LA LEY DE CONTROL RESIDUAL
u(t+3) = - Ka*[xmas;z℄;
% ACTUALIZANDO ESTADOS
xmenos = GE*xmas + HE*u(t+3);
AE = 1 + ae1 + ae2 + ae3; BE = be1 + be2 + be3;
Uin = inv(BE)*(AE*Yo(t+3) - Ce);
% CALCULO DE LA SE~NAL DE CONTROL U(t)
U(t+3) = u(t+3) + Uin;
% LIMITANDO LA SE~NAL U(t)
if(U(t+3) > 100)
U(t+3) = 100;
elseif(U(t+3) <-100)
U(t+3) = -100;
end
276 Control Adaptivo
8
Velocidad (rad/s)
−2
0 10 20 30 40 50 60 70 80
40
Voltaje de control
20
−20
−40
0 10 20 30 40 50 60 70 80
Tiempo en seg
for t = 1:MM
% SE~NAL DE REFERENCIA
Yo(t+4)= 0.5;%sign(sin(0.005*t));
% MODELO LINEAL DEL PROCESO
Y(t+4) = [Y(t+3) Y(t+2) Y(t+1) Y(t)...
U(t+3) U(t+2) U(t+1) U(t)℄*...
[-a1 -a2 -a3 -a4 b1 b2 b3 b4℄';
y(t+4) = Y(t+4) - Yo(t+4); % salida residual
% ESTIMACION DE PARAMETROS (METODO MCRM)
psi = [Y(t+3) Y(t+2) Y(t+1) Y(t)...
U(t+3) U(t+2) U(t+1) U(t) 1℄';
rho = max(1,norm(psi));
psin = psi/rho;
Nn =
hol(Pi'); % Nn'*Nn = Pi => Nn*N' = Pi'
S = inv(diag(Nn*ones(NN,1),0));
Ps = S*Pi*S;
psins = inv(S)*psin;
rt = 1 + psins'*Ps*psins;
lamb = 1 - (rt-sqrt(rt^2-4*norm(Ps*psins)^2/tra
e(Ps)))/2;
e = Y(t+4)/rho - psin'*thi;
j = psins'*Ps*psins + lamb;
th = thi + e*inv(S)*Ps*psins/j;
Hns = Ps*psins/j;
Ps = (Ps - Hns*psins'*Ps)/lamb;
tt = abs(max(eig(Ps))/min(eig(Ps)) );
max = 100;
min = 15;
if tt <=
min,
Pi = Ps; thi = th;
elseif tt >=
max,
Nnew =
hol(Ps'); % Nnew*Nnew' = Ps'
Snew = inv(diag(Nnew*ones(NN,1),0));
Psnew = Snew*Ps*Snew;
Pi = Psnew; thi = th;
end
% RECUPERACION DE LA ECUACION CANONICA CONTROLABLE
ae1 = -th(1); ae2 = -th(2); ae3 = -th(3); ae4 = -th(4);
be1 = th(5); be2 = th(6); be3 = th(7); be4 = th(8); Ce = th(9);
dene = [1 ae1 ae2 ae3 ae4℄;
nume = [0 be1 be2 be3 be4℄;
[GE,HE,CE,DE℄ = tf2ss(nume,dene);
% CALCULO DE LA GANANCIA F DEL ESTIMADOR DE KALMAN
F = dlqe(GE,HE,CE,Sigma,Xi);
xmas = xmenos + F*(y(t+4) - CE*xmenos); % OBSERVACION
5.8 Problemas Propuestos 279
0.8
Posición (m)
0.6
0.4
0.2
0
0 50 100 150 200 250
10
5
Voltaje de control
−5
−10
−15
0 50 100 150 200 250
Tiempo en seg
Figura 5.24: Posi
ion de la bola y el voltaje de
ontrol para el problema 5.7.
del modelado del pro
eso, el tiempo muerto puede ser des
rito mediante la
aproxima
ion de Pade de ter
er orden (ver ejemplo ??):
num(s) 1 Tt s=2 + (Tt s)2 =10 (Tt s)3 =120
e Ts =
den(s) 1 + Tt s=2 + (Tt s)2 =10 + (Tt s)3 =120
Espe
i
a
iones de dise~no: tiempo de estabiliza
ion menor que 40 s, error
en estado esta
ionario nulo y por
entaje de sobreimpulso menor al 5 %.
Problema 5.9
Las e
ua
iones del modelo linealizado para
ontrolar la posi
ion del
a~non
montado en la torreta de un tanque (gura 3.28), empleando un a
tuador
hidrauli
o se detallan en el problema 3.9.
(a) Dise~nar un sistema de
ontrol adaptivo
on autosintoniza
ion para
ontrolar el angulo de eleva
ion
on las espe
i
a
iones siguientes:
tiempo de estabiliza
ion menor que 5 s, mnimo sobreimpulso en la
respuesta y error de estado esta
ionario nulo. Los disturbios tipo es-
alon pueden a
tuar simultaneamente o no, y pueden ser positivos o
negativos. Para
ada
aso, el sistema de
ontrol dise~nado debe ser
apaz de minimizar sus efe
tos.
5.8 Problemas Propuestos 281
(b) Lo mismo que (a), pero en este
aso para
ontrolar el angulo azimutal.
Problema 5.10
La gura 3.31 muestra el pro
eso servomotor
on
arga no lineal des
rito en
la se
ion 3.3, en donde la
arga no lineal posee ahora dos grados de libertad
on Lo = 2L1=3 y Mo =0.02 kg. La union de la
arga
on el eje del servomotor
no es
exible. Las e
ua
iones que des
riben la dinami
a del sistema son
materia del problema 3.12. Dise~nar un sistema de
ontrol adaptivo
on
autosintoniza
ion para
ontrolar simultaneamente las posi
iones y
on
mnimo tiempo de estabiliza
ion y mnimo sobreimpulso en la respuesta.
Problema 5.11
La gura 3.32 muestra el pro
eso pendulo doble no lineal que es una exten-
sion del pendulo simple des
rito en la se
ion 3.1. El a
oplamiento entre los
dos pendulos de igual longitud no es
exible. Las e
ua
iones que des
riben la
dinami
a del sistema son materia del problema propuesto 3.13. Considerar
que la
arga esferi
a es de 0.02 kg. Dise~nar un sistema de
ontrol adaptivo
on autosintoniza
ion para
ontrolar simultaneamente las posi
iones y
on mnimo tiempo de estabiliza
ion y mnimo sobreimpulso en la salida, de
modo tal que el pendulo doble permanez
a en posi
ion verti
al.
Problema 5.12
La gura 3.33 muestra el pro
eso doble grua puente no lineal que es una ex-
tension del pro
eso grua-puente des
rito en la se
ion 3.2. El a
oplamiento
entre las dos se
iones iguales de la varilla no es
exible. Para poder deter-
minar un modelo no lineal dinami
o para este pro
eso,
onviene emplear las
e
ua
iones de Lagrange de la me
ani
a
lasi
a (ver problema 3.14). Conside-
rar que la
arga esferi
a es de 0.02 kg. Dise~nar un sistema de
ontrol adaptivo
on autosintoniza
ion para
ontrolar simultaneamente las posi
iones y
on mnimo tiempo de estabiliza
ion y mnimo sobreimpulso, de modo tal
que la doble grua-puente permanez
a en posi
ion verti
al
uando el
arro
realiza un re
orrido predeterminado.
Problema 5.13
La gura 1.1 muestra un
arro de masa m = 1000 kg desplazandose
on una
velo
idad v gra
ias a la a
ion de la fuerza u produ
ida por su motor. Si
282 Control Adaptivo
se despre
ia la iner
ia de las ruedas y se asume que la fuerza de fri
ion bv,
donde b= 50 N-s/m es el
oe
iente de fri
ion, es lo uni
o que se opone
al movimiento del
arro, enton
es la dinami
a del pro
eso puede modelarse
omo (ver ejemplo 1.16):
dv
mv_ (t) + bv(t) = u(t); v_ =
dt
Dise~nar un sistema de
ontrol adaptivo
on autosintoniza
ion para
ontro-
lar la velo
idad del movil
on mnimo tiempo de estabiliza
ion y mnimo
sobreimpulso en la salida. La se~nal de referen
ia puede ser arbitraria (pro-
blema de seguimiento).
Problema 5.14
El motor D.C. es un a
tuador muy popular en los sistemas de
ontrol, ya
que su movimiento rotatorio, mediante a
oples ade
uados en su eje, puede
onvertirse fa
ilmente en movimiento de trasla
ion
omo por ejemplo, en
fajas transportadoras y en brazos manipuladores. La gura 4.3 muestra el
ir
uito de armadura del motor y el diagrama de
uerpo libre de su rotor.
Las e
ua
iones que gobiernan el
omportamiento dinami
o del motor fueron
derivadas en el ejemplo 4.1. Dise~nar dos sistemas de
ontrol adaptivo
on
autosintoniza
ion. El primero para estabilizar la velo
idad angular del eje
del motor
on las espe
i
a
iones siguientes: tiempo de estabiliza
ion menor
que 4 s, error en estado estable menor al 1 % y sobreimpulso en la salida
menor al 5 %. El segundo sistema de
ontrol adaptivo a dise~nar debe es-
tabilizar la posi
ion del eje del motor
on las mismas espe
i
a
iones de
dise~no.
Cap
tulo 6
2
Trayectoria de
referencia
Trayectoria
deseada 1
2
Tiempo
Salida pasada Muerto
del proceso
Pasado 1 2 Futuro N2
Momento presente t
Funcion
’ de costo restricciones
El Disturbio n(t)
La se~nal de disturbio n(t) in
luye todos los efe
tos no deseados en la salida
y(t). Esta se~nal representa el efe
to
onjunto de todos los disturbios sobre el
pro
eso, otras entradas no medibles, ruido de medi
ion, errores de modelado,
in
ertidumbres, et
. El disturbio n(t), que es de
ara
ter esto
asti
o, puede
ser modelado mediante un ltro
oloreado de la forma:
n(t) C (z 1 )
=
e(t) D(z 1 )
(6.2)
donde z 1 es el operador de desplazamiento, e(t) es un ruido blan
o no
orrela
ionado
on media
ero, y los polinomios son de la forma:
C (z 1 ) = 1 +
1 z 1 + +
n z n
(6.3)
1 1
D(z ) = 1 + d1 z + + dn z n d (6.4)
d
Por ejemplo, para un pro
eso de segundo orden sin presen
ia de perturba-
iones; es de
ir,
on C (z 1) = 0, la representa
ion CARIMA toma la forma:
B (z 1 ) b1 z 1 + b2 z 2
y(t) = x(t) = ( ) =
A(z 1 )
u t
1 + a1 z 1 + a2 z 2 u(t) (6.9)
la
ual
ondu
e a la e
ua
ion de diferen
ias:
y(t) = a1 y(t 1) a2 y(t 2) + b1 u(t 1) + b2 u(t 2) (6.10)
El modelo lineal CARIMA mas generalizado es de la forma:
B (z 1 ) C (z 1 )
A(z 1 )y(t) = u ( t ) + e(t) (6.11)
F (z 1 ) D(z 1 )
Notar en (6.11) que la salida y(t) del modelo tambien
umple que (ver
e
ua
ion (6.1):
y(t) = x(t) + n(t)
donde: uy = AFB y ne = AD C . La representa
i on predi
tiva de la ultima
expresion es:
y(t + k=t) = x(t + k=t) + n(t + k=t) (6.12)
Ejemplo 6.1
El modelo lineal de orden 2 del servomotor D.C. sujeto a
argas no lineales
des
rito en la se
ion 3.3 es:
q_ = w
N B n2 KE nK K
w_ = q + w + a
t u
M M MR RM
Asumiendo que el ruido de medi
ion n(t) en la posi
ion del eje del servomotor
(la salida del pro
eso) es
oloreado:
n(t) =
1
1 z 1 e(t)
determine su modelo CARIMA.
Solu
ion: La fun
ion de transferen
ia de pulso del pro
eso posee la forma:
q (z ) b1 z + b2 b1 z 1 + b2 z 2 B (z 1 )
= = =
u(z ) z 2 + a1 z + a2 1 + a1 z 1 + a2 z 2 A(z 1 )
290 Control Predi
tivo
El Modelo Paralelo
El modelo paralelo, llamado algunas ve
es modelo independiente, puede ser
usado para pro
esos estables y es el que se implementa por defe
to. En este
6.4 El Modelo del Predi
tor 291
El Modelo Serie/Paralelo
El modelo serie/paralelo puede ser empleado para pro
esos 1estables o ines-
tables. En este
aso, el modelo del disturbio n(t) = DC ((qq 1)) e(t) se es
oge
diferente al del modelo paralelo. El modelo serie/paralelo se obtiene rees
ri-
biendo el modelo paralelo
omo sigue:
A(z 1 )
A(z 1 )y(t) = B (z 1 )u(t) +
1 z 1 e(t) (6.16)
que es la e
ua
ion (6.6)
uando C (z 1) = A(z 1 ) y D(z 1) = 1 z 1. La
salida y(t) toma enton
es la forma:
A(z 1 )
y(t) = (1 A(z 1 ))y(t) + B (z 1 )u(t) +
1 z 1 e(t) = y(t) + n(t) (6.17)
donde y(t) se obtiene de la rela
ion:
y(t) = (1 A(z 1 ))y(t) + B (z 1 )u(t)
y(t) = a1 y(t 1) an y(t na ) a
+b1u(t 1) + + bn u(t nb)
b (6.18)
Por
onsiguiente, la expresion predi
tiva del modelo serie/paralelo es:
y(t + k=t) = a1 y(t + k 1=t) an y(t + k na =t)
a
+b1 u(t + k 1=t) + + bn u(t + k nb=t) (6.19)
b
292 Control Predi
tivo
+
+
- MODELO -
x MODELO y
SERIE / x
u PARALELO x u PARALELO
El
al
ulo re
ursivo toma en
uenta que para
ualquier k, e(t + k=t) = 0.
Por
onsiguiente, para:
k = 1; n(t + 1=t) = d1 n(t=t) d2 n(t 1=t)
k = 2; n(t + 2=t) = d1 n(t + 1=t) d2 n(t=t)
...
k = N2 ; n(t + N2 =t) = d1 n(t + N2 1=t) d2 n(t + N2 2=t)
Ejemplo 6.2
Comparar las respuestas a una sinusoide del pro
eso servomotor D.C. no
lineal del ejemplo 6.1,
uando la salida y no es ruidosa y
uando lo es. El
tiempo de muestreo es T = 0.01 s. Considerar ruido blan
o gaussiano.
Solu
ion: Empleando el resultado del ejemplo 6.1, la solu
ion a este pro-
blema se detalla en el programa ejem6 2.m. Los resultados se muestran en
las guras 6.6, 6.7 y 6.8. Observar en la ultima gura que el ruido e(t)
empleado posee media
ero y una fun
ion de distribu
ion gaussiana.
% ejem6_2.m SOLUCION EJEMPLO 6.2
lear all
% PARAMETROS DEL PROCESO NO LINEAL (TABLA 3.3)
JL = 3.5e-7; bL = 1e-5; Ro = 0.01; Lo = 0.776;
Jm = 1.9062e-6; bm = 1.8338e-6; g = 9.81;
E = 31.035e-3; R = 7.38; m = 0.06377;
Ka
t = 14.9;
= 0.25; Mo = 0.045; % 0, 0.01, 0.02
K = 31.071e-3; n = 19.741; L = 4.64e-2;
B = n^2*bm + bL;
Jeff = n^2*Jm +JL;
M = Jeff + (1/3)*m*Lo^2 + Mo*Lo^2 + (2/5)*Mo*Ro^2;
N = g*Lo*(Mo+m/2);
% MODELO NO LINEAL DEL PROCESO CONTINUO DE SEGUNDO ORDEN
A
= [0 1;-N/M -(B + n^2*K*E/R)/M℄;
B
= [0;n*K*Ka
t/(R*M)℄; C
= [1 0℄; D
= [0℄;
% MODELO LINEAL DISCRETO DEL PROCESO DE SEGUNDO ORDEN
T = 0.01; % PERIODO DE MUESTREO
[G,H,C,D℄=
2dm(A
,B
,C
,D
,T,'zoh');
[num,den℄=ss2tf(G,H,C,D);
a1 = den(2); a2 = den(3); b1 = num(2); b2 = num(3);
% CONDICIONES INICIALES NULAS
q(1)=0; q(2)=0; q(3)=0; u(1)=0; u(2)=0; u(3)=0;
y(1)=0; y(2)=0; y(3)=0; e(1)=0; e(2)=0; e(3)=0;
% RESPUESTAS DEL PROCESO
294 Control Predi
tivo
MM = 1000;
for t=3:MM+2
u(t) = sin(0.006*t); % SINUSOIDE DE ENTRADA
q(t+1) = -a1*q(t) -a2*q(t-1) + b1*u(t) + b2*u(t-1);
e(t+1) = 0.1*randn; % GENERA RUIDO BLANCO GAUSSIANO
% DE MEDIA NULA Y VARIANZA 0.1
y(t+1) = (1-a1)*y(t) + (a1-a2)*y(t-1) + a2*y(t-2) ...
+ b1*u(t) + (b2-b1)*u(t-1) - b2*u(t-2) ...
+ e(t+1) + a1*e(t) + a2*e(t-1);
end
% GRAFICOS
ejex = linspa
e(0,MM*T,MM);
figure(1)
subplot(2,1,1)
plot(ejex,q(3:MM+2)); grid
ylabel('Posi
ion en rad'); xlabel('Tiempo en segundos')
subplot(2,1,2)
plot(ejex,u(3:MM+2)); grid
ylabel('Entrada (voltios)')
xlabel('Tiempo en segundos')
print -f -deps ejem6_2a
figure(2)
subplot(2,1,1)
plot(ejex,y(3:MM+2)); grid
ylabel('Posi
ion ruidosa (rad)')
xlabel('Tiempo en segundos')
subplot(2,1,2)
plot(ejex,u(3:MM+2)); grid
ylabel('Entrada (voltios)')
xlabel('Tiempo en segundos')
print -f -deps ejem6_2b
figure(3)
subplot(2,1,1)
plot(ejex,e(3:MM+2)); grid
ylabel('Ruido gaussiano e(t) (rad)')
xlabel('Tiempo en segundos')
subplot(2,1,2)
hist(e)
ylabel('Distribu
ion de e(t)')
xlabel('<------ e(t) ------>')
print -f -deps ejem6_2
6.4 El Modelo del Predi
tor 295
Posición en rad
2
−2
−4
0 1 2 3 4 5 6 7 8 9 10
Tiempo en segundos
1
Entrada (voltios)
0.5
−0.5
−1
0 1 2 3 4 5 6 7 8 9 10
Tiempo en segundos
4
Posición ruidosa (rad)
−2
−4
−6
0 1 2 3 4 5 6 7 8 9 10
Tiempo en segundos
1
Entrada (voltios)
0.5
−0.5
−1
0 1 2 3 4 5 6 7 8 9 10
Tiempo en segundos
0.4
−0.2
−0.4
0 1 2 3 4 5 6 7 8 9 10
Tiempo en segundos
300
Distribución de e(t)
200
100
0
−0.4 −0.3 −0.2 −0.1 0 0.1 0.2 0.3 0.4
<−−−−−− e(t) −−−−−−>
Figura 6.8: Ruido blan o e(t) on media ero y distribu ion gaussiana.
1
0 N u =4
u 0
1
1
0 1
0
0
1 0
1 0
1 0
1
1
0 01
1 0 11
0 01 0
01
1 0
01
1 0
00
11
00 1
0
1
11 0
0
1
0
1 0 1
1 0 0
1
0
1
00
11 y(t+k/t)
00
1100
11 u(t+k/t)
00
11
o o o o
o o o o
o o o o o o o o o o o o o o o o
o o o o o
o o o
r=w y
N 1=2 N 2 =8
PASADO Tiempo actual t FUTURO
g ∆u(t/t)
k
Respuesta
’
al escalon
k Muestras Tiempo
t t+k
(a)
’
∆u(t+1/t) Entrada escalon
g ∆u(t+1/t)
k
Respuesta
’
al escalon
t t+k
(b)
Otra aproxima
ion para la estru
tura
ion del es
enario de
ontrol
on-
siste en el empleo de fun
iones base de la forma:
X
u(t + k=t) = i Bi (6.35)
i
La optimiza
ion de la se~nal de
ontrol u(t + k=t) es ahora
on respe
to
a los parametros i.
El
ontrol predi
tivo muestra diferentes propiedades dependiendo de la
sele
ion de N1 , N2 y Nu. Por ejemplo:
Si N1 = n, N2 = 2n 1, Nu = n y = 0, la salida enton
es al
anza la
referen
ia despues de n muestras y se mantiene en este estado, propor-
ionando una vigorosa a
ion de
ontrol. Este
aso es muy apropiada
para apli
a
iones que requieran alto rendimiento,
omo en la roboti
a.
302 Control Predi
tivo
7) Implementar el hardware.
8) Implementar el software de
ontrol.
9) Realizar pruebas de fun
ionamiento (resultados experimentales).
6.7 Control de Posi
ion de un Servomotor
6.7.1 Formula
ion del Problema
El servomotor D.C.
on
arga no lineal (dis
utido ampliamente en la se
ion
3.3) es un pro
eso de una entrada y una salida que puede ser
ontrolado por
el voltaje de armadura. La
arga no lineal es una varilla metali
a a
oplada al
eje del servomotor, a manera de un brazo roboti
o de un grado de libertad.
En el extremo de la varilla se pueden a
oplar
argas adi
ionales. El objetivo
de
ontrol es dise~nar e implementar un sistema de
ontrol predi
tivo basado
en modelos, empleando una ley de
ontrol es
alar dinami
a, de modo tal que
la varilla se posi
ione en una referen
ia predeterminada. El sobreimpulso
de la respuesta debe ser mnimo, no obstante la presen
ia de la
arga no
lineal y de las no linealidades del pro
eso
omo son las fri
iones estati
a y
de Coulomb, y la satura
ion en el ampli
ador del servomotor.
Modelo del Pro
eso
La gura 3.9 presenta la estru
tura del pro
eso no lineal a
ontrolar. La tabla
3.2 des
ribe las variables y los valores de sus parametros. Asumiendo que la
se~nal de
ontrol u esta
ompensada por las no linealidades y despre
iando
la indu
tan
ia L del servomotor, el pro
eso no lineal puede ser des
rito
mediante el siguiente modelo lineal (subse
ion 3.3.5):
x_ = A
x + B
u; y = C
x
A
=
0 1 2E ; B
= KnK
0 ;
C
= 1 0
N
M ( M + MR )
B Kn
MR
a
t
2
M = Jeff + ML2o + MRo2 + mL2o );
1 N = gLo (M + )
m
5 3 2
2
Jeff = n Jm + JL ; 2
B = n bm + bL
La fun
ion de transferen
ia Gp(s) del pro
eso puede determinarse de:
y(s)
Gp (s) =
u(s)
= C
[sI A
℄ 1B
6.7 Control de Posi
ion de un Servomotor 305
N = g*Lo*(Mo+m/2);
% MODELO LINEAL CONTINUO DEL PROCESO DE SEGUNDO ORDEN
A
= [0 1;-N/M -(B + n^2*K*E/RR)/M℄;
B
= [0;n*K*Ka
t/(RR*M)℄;
C
= [1 0℄; D
= [0℄;
% MODELO LINEAL DISCRETO DEL PROCESO DE SEGUNDO ORDEN
T = 0.01; % PERIODO DE MUESTREO
[G,H,C,D℄=
2dm(A
,B
,C
,D
,T,'zoh');
[num,den℄=ss2tf(G,H,C,D);
a1 = den(2); a2 = den(3);
b1 = num(2); b2 = num(3);
% HORIZONTES
N1 = 1; N2 =12; Nu =1; % LEY DE CONTROL ESCALAR
% RESPUESTA AL ESCALON
g(1) = b1; g(2) = -a1*b1 + b1 + b2;
for k=3:N2
g(k) = -a1*g(k-1) -a2*g(k-2) + b1 + b2;
end
% CONDICIONES INICIALES
yf(1)=0; yf(2)=0; yf(3)=0; r(1)=0; r(2)=0; r(3) =0;
u(1) =0; u(2) =0; u(3) =0; w(1)=0; w(2)=0; w(3) =0;
q(1) =0; q(2) =0; q(3) =0;
alf = 0.01; lambda = 0.; fre
= 0.0063; GW = 1;
MM = 2000;
% LAZO DE CONTROL
for t = 2:MM+2
for k = 1:N2
W(t+k) = GW*sign(sin(fre
*(t)));
r(t+k) = alf*r(t+k-1) + (1-alf)*W(t+k);
yf(t+k) = -a1*yf(t+k-1)-a2*yf(t+k-2)+(b1 + b2)*u(t-1);
end % yf: RESPUESTA LIBRE
% LEY DE CONTROL
du(t) = (g(1)*(r(t+1)-yf(t+1))+g(2)*(r(t+2)-yf(t+2)) + ...
g(3)*(r(t+3)-yf(t+3))+g(4)*(r(t+4)-yf(t+4)) + ...
g(5)*(r(t+5)-yf(t+5))+g(6)*(r(t+6)-yf(t+6)) + ...
g(7)*(r(t+7)-yf(t+7))+g(8)*(r(t+8)-yf(t+8)) + ...
g(9)*(r(t+9)-yf(t+9))+ g(10)*(r(t+10)-yf(t+10)) + ...
g(11)*(r(t+11)-yf(t+11))+ g(12)*(r(t+12)-yf(t+12)))/...
(g(1)^2 + g(2)^2 + g(3)^2+ g(4)^2 + g(5)^2 + ...
g(6)^2 + g(7)^2 + g(8)^2+ g(9)^2 + g(10)^2 + ...
g(11)^2 + g(12)^2 + lambda);
u(t) = u(t-1) + du(t); % LEY DE CONTROL ACTUAL
% LIMITANDO LA FUERZA DE CONTROL
308 Control Predi
tivo
fu = 1.4;
if(u(t) > 0 & u(t) > fu)
u(t) = fu;
elseif(u(t) < 0 & u(t) < -fu)
u(t) = -fu;
end
% PROCESO LINEAL
q(t+1) = -a1*q(t) -a2*q(t-1) + b1*u(t) + b2*u(t-1);
end
% GRAFICOS
ejex = (3:MM); ejex = ejex*T;
subplot(2,1,1)
plot(ejex,W(3:MM),ejex,q(3:MM)); grid
ylabel('Posi
ion q(t) (rad)')
xlabel('Tiempo en segundos')
subplot(2,1,2)
plot(ejex,u(3:MM)); grid
ylabel('Control u(t) (voltios)')
xlabel('Tiempo en segundos')
print -f -deps dispred1
2
Posición q(t) (rad)
−1
−2
0 2 4 6 8 10 12 14 16 18 20
Tiempo en segundos
2
Control u(t) (voltios)
−1
−2
0 2 4 6 8 10 12 14 16 18 20
Tiempo en segundos
Figura 6.11: Primera simula
ion del sistema de
ontrol predi
tivo. La
arga
no lineal es maxima.
6.7 Control de Posi
ion de un Servomotor 309
% CONDICIONES INICIALES
yf(1)=0; yf(2)=0; yf(3)=0; r(1)=0; r(2)=0; r(3) =0;
u(1) =0; u(2) =0; u(3) =0; w(1)=0; w(2)=0; w(3) =0;
q(1) =0; q(2) =0; q(3) =0;
alf = 0.01; lambda = 0.; fre
= 0.0063; GW = 1;
MM = 2000;
% BUCLE DE CONTROL *********************************
for t = 2:MM+2
% REFERENCIAS, SALIDA LIBRE Y RESPUESTAS AL ESCALON
for k = 1:N2
W(t+k) = GW*sign(sin(fre
*(t)));
r(t+k) = alf*r(t+k-1) + (1-alf)*W(t+k);
yf(t+k) =-a1*yf(t+k-1)-a2*yf(t+k-2)+(b1 + b2)*u(t-1);
end % yf: RESPUESTA LIBRE
% RESTRICCION A LA SALIDA
q(t) = r(t);
% LEY DE CONTROL
du(t) = (g(1)*(r(t+1)-yf(t+1))+g(2)*(r(t+2)-yf(t+2)) + ...
g(3)*(r(t+3)-yf(t+3))+g(4)*(r(t+4)-yf(t+4)) + ...
g(5)*(r(t+5)-yf(t+5))+g(6)*(r(t+6)-yf(t+6)) + ...
g(7)*(r(t+7)-yf(t+7))+g(8)*(r(t+8)-yf(t+8)) + ...
g(9)*(r(t+9)-yf(t+9))+g(10)*(r(t+10)-yf(t+10)) + ...
g(11)*(r(t+11)-yf(t+11))+g(12)*(r(t+12)-yf(t+12)))/...
(g(1)^2 + g(2)^2 + g(3)^2+g(4)^2 + g(5)^2 + ...
g(6)^2 + g(7)^2 + g(8)^2+g(9)^2 + g(10)^2 + ...
g(11)^2 + g(12)^2 + lambda);
u(t) = u(t-1) + du(t); % ley de
ontrol a
tual
% COMPENSANDO LA FRICCION DE COULOMB
TN =
*sign(w(t)); % TORQUE DE FRICCION DE COULOMB
if(w(t) > 0)
u(t) = u(t) + (RR/(n*K*Ka
t))*TN;
elseif(w(t) < 0)
u(t) = u(t) - (RR/(n*K*Ka
t))*TN;
end
% LIMITANDO LA FUERZA DE CONTROL
fu = 1.4;
if(u(t) > 0 & u(t) > fu)
u(t) = fu;
elseif(u(t) < 0 & u(t) < -fu)
u(t) = -fu;
end
% MODELO NO LINEAL DISCRETIZADO DEL PROCESO DE SEGUNDO ORDEN
q(t+1) = q(t) + T*w(t);
6.7 Control de Posi
ion de un Servomotor 311
1
Posición q(t) (rad)
0.5
−0.5
−1
0 2 4 6 8 10 12 14 16 18 20
Tiempo en segundos
2
Control u(t) (voltios)
−1
−2
0 2 4 6 8 10 12 14 16 18 20
Tiempo en segundos
Figura 6.12: Segunda simula
ion del sistema de
ontrol predi
tivo. La
arga
no lineal es maxima.
INICIO
INICIALIZACION DE VARIABLES
INICIALIZACION DE LA TARJETA LabPC+
DETECTAR FLANCO
DE SUBIDA
NO
k MENOR QUE n FIN
SI
DETECTAR FLANCO
DE SUBIDA NO
SI
LEER POSICION Pk
CALCULAR POSICION Y VELOCIDAD
APLICAR RESTRICCIONES EN Pk
~ DE CONTROL
GENERAR SENAL
GENERAR SALIDA COMPENSADA
~
RESTRINGIR LA SENAL DE CONTROL
~
ENVIAR LA SENAL COMPENSADA
ACTUALIZAR VARIABLES
/* R1LLIB.H ****************************************************
* Ar
hivo de de
lara
iones de fun
iones definidas en R1LLIB.CPP
* Estas fun
iones permiten fa
ilitar el manejo de la tarjeta de
* Adquisi
ion Lab-PC+: Digital input (16 bits), Analog Output,
* Timer generator, Polling. Tambien usa fun
iones de le
to/
* es
ritura de registros (inportb, outport).
*/
/* R1LLIB.CPP **************************************************
* Ar
hivo de defini
iones de fun
iones de
laradas en R1LLIB.H
* Estas fun
iones permiten fa
ilitar el manejo de la tarjeta de
* Adquisi
ion Lab-PC+: Digital input (16 bits), Analog Output,
* Timer generator, Polling. Tambien emplea fun
iones de
* le
to/es
ritura de registros (inportb, outport).
*/
int NivelClo
k ()
{
unsigned
har bytePoll;
bytePoll = inportb (R1LPollPort);
return (bytePoll&1);
}
60
− −:y
− :w
50
Posición (grados)
40
30
20
10
0
0 10 20 30 40 50 60 70 80 90 100
t(seg)
Figura 6.14: Salida
ontrolada y (
urva en trazos) para una
arga iner
ial
de JT = J kg-m2 .
Rpta. a escalones variantes para 1.42J
70
60
− −:y
− :w
50
Posición (grados)
40
30
20
10
0
0 10 20 30 40 50 60 70 80 90 100
t(seg)
Figura 6.15: Salida
ontrolada y (
urva en trazos) para una
arga iner
ial
de JT = 1:42J kg-m2.
6.7 Control de Posi
ion de un Servomotor 323
60
− −:y
− :w
50
Posición (grados)
40
30
20
10
0
0 10 20 30 40 50 60 70 80 90 100
t(seg)
Figura 6.16: Salida
ontrolada y (
urva en trazos) para una
arga iner
ial
de JT = 1:84J kg-m2 .
Rpta. a escalones variantes para 2.98J
70
60
− −:y
− :w
50
u(t):voltios
40
30
20
10
0
0 10 20 30 40 50 60 70 80 90 100
t(seg)
Figura 6.17: Salida
ontrolada y (
urva en trazos) para una
arga iner
ial
de JT = 2:98J kg-m2 .
324 Control Predi
tivo
end
% CONDICIONES INICIALES
for k=1:4
yf(k)=0; y(k)=0; r(k)=0; u(k)=0;
end
alf = 0.1; lambda=0; MM = 500;
% LAZO DE CONTROL
for t=4:MM+3;
% TRAYECTORIA DESEADA, REFERENCIA r Y RESPUESTA LIBRE yf
for k=1:N2
W(t+k) = sign(sin(0.02*t));
r(t+k) = alf*r(t+k-1) + (1-alf)*W(t+k);
yf(t+k)= -a1*yf(t+k-1)-a2*yf(t+k-2)-a3*yf(t+k-3)+(b1+b2+b3)*u(t-1);
end
% LEY DE CONTROL
du(t) = (g(1)*(r(t+1) - yf(t+1)) + g(6)*(r(t+6) - yf(t+6)) + ...
g(2)*(r(t+2) - yf(t+2)) + g(7)*(r(t+7) - yf(t+7)) + ...
g(3)*(r(t+3) - yf(t+3)) + g(8)*(r(t+8) - yf(t+8)) + ...
g(4)*(r(t+4) - yf(t+4)) + g(9)*(r(t+9) - yf(t+9)) + ...
g(5)*(r(t+5) - yf(t+5)) + g(10)*(r(t+10) - yf(t+10)) )/...
(g(1)^2 + g(2)^2 + g(3)^2 + g(4)^2 + g(5)^2 + g(6)^2 + ...
g(7)^2 + g(8)^2 + g(9)^2 + g(10)^2 + lambda);
u(t) = u(t-1) + du(t);
% MODELO DEL PROCESO EN SU FORMA CARIMA
y(t+1)=-a1*y(t)-a2*y(t-1)-a3*y(t-2) ...
+b1*u(t)+b2*u(t-1)+b3*u(t-2);
end % FIN DEL LAZO DE CONTROL
% GRAFICOS
ejex=linspa
e(0,MM*tm,MM-3);
subplot(2,1,1)
plot(ejex,W(4:MM),ejex,y(4:MM)); grid
ylabel('y: In
lina
ion (rad) ')
subplot(2,1,2)
plot(ejex,u(4:MM)); grid
xlabel('TIEMPO : SEG')
ylabel('u: Angulo del defle
tor (rad)')
print -deps -f p4pred1
Problema 6.2
Para el pro
eso del problema 6.2, dise~nar un sistema de
ontrol predi
tivo
que genere una matriz dinami
a de
ontrol, de modo tal que el angulo de
in
lina
ion del avion siga una traye
toria arbitraria, pero predeterminada.
326 Control Predi
tivo
y: Inclinación (rad)
1
−1
−2
0 100 200 300 400 500 600 700
2
u: Angulo del deflector (rad)
−1
−2
0 100 200 300 400 500 600 700
TIEMPO : SEG
Figura 6.18: A ngulo de in
lina
ion y se~nal de
ontrol (angulo del de
e
tor)
orrespondientes al problema 6.1.
Solu
ion: Ver el programa p4pred2.m.
% p4pred2.m SOLUCION DEL PROBLEMA 6.2: CONTROL DE LA INCLINACION
% DE UN AVION USANDO CONTROL PREDICTIVO CON CONTROL MATRICIAL
lear all
% FUNCION DE TRANSFERENCIA CONTINUA DE LA PLANTA
num
=[0 1.151 0.1774℄;
den
=[1 0.739 0.921 0℄;
A=[-0.313 56.7 0; -0.0139 -0.426 0; 0 56.7 0℄;
B=[0.232; 0.0203; 0℄; C=[0 0 1℄; D=[0℄;
% FUNCION DE TRANSFERENCIA DISCRETA DE LA PLANTA
tm=2.2; % TIEMPO DE MUESTREO
[numd,dend℄=
2dm(num
,den
,tm,'zoh');
[G,H℄=
2d(A,B,tm);
a1=dend(2); a2=dend(3); a3=dend(4);
b1=numd(2); b2=numd(3); b3=numd(4);
% HORIZONTES DE CONTROL
N1 =1; N2 =10; Nu =5;
6.8 Problemas Resueltos 327
% RESPUESTA AL ESCALON
g(1) = b1; g(2) = -a1*b1 + b1 + b2;
g(3) = - a1*g(2) - a2*g(1) + b1 +b2+b3;
for k=4:N2
g(k) = -a1*g(k-1) -a2*g(k-2) -a3*g(k-2) + b1 + b2 + b3;
end
% MATRIZ GANANCIA DE RESPUESTA AL ESCALON
GG=[g(1) 0 0 0 0
g(2) g(1) 0 0 0
g(3) g(2) g(1) 0 0
g(4) g(3) g(2) g(1) 0
g(5) g(4) g(3) g(2) g(1)
g(6) g(5) g(4) g(3) g(2)
g(7) g(6) g(5) g(4) g(3)
g(8) g(7) g(6) g(5) g(4)
g(9) g(8) g(7) g(6) g(5)
g(10) g(9) g(8) g(7) g(6)℄;
% CONDICIONES INICIALES
for k=1:4
yf(k)=0; y(k)=0; r(k)=0; u(k)=0;
end
alf = 0.1; lambda = 0.98; MM = 500; du(1)=0;
I=eye(5,5); % MATRIZ IDENTIDAD
% LAZO DE CONTROL
for t =4:MM+3
% TRAYECTORIA DESEADA, REFERENCIA r Y RESPUESTA LIBRE yf
for k=1:N2
W(t+k)= sin(0.05*t)+0.005*t;
r(t+k) = alf*r(t+k-1) + (1-alf)*W(t+k);
yf(t+k)= -a1*yf(t+k-1)-a2*yf(t+k-2)-a3*yf(t+k-3)+(b1+b2+b3)*u(t-1);
end
% MATRIZ R DE SE~NALES r
R=[r(t+1) r(t+2) r(t+3) r(t+4) r(t+5) r(t+6)...
r(t+7) r(t+8) r(t+9) r(t+10)℄';
% MATRIZ DE RESPUESTA LIBRE YF
YF=[yf(t+1) yf(t+2) yf(t+3) yf(t+4) yf(t+5) yf(t+6)...
yf(t+7) yf(t+8) yf(t+9) yf(t+10)℄';
% LEY DE CONTROL
U=inv(GG'*GG+lambda*I)*GG'*(R-YF);
du=U(1);
u(t) = u(t-1) + du;
% PROCESO
y(t+1)=-a1*y(t)-a2*y(t-1)-a3*y(t-2) ...
328 Control Predi
tivo
+b1*u(t)+b2*u(t-1)+b3*u(t-2);
end % FIN DEL BUCLE DE CONTROL
% GRAFICOS
ejex=(4:MM); ejex=ejex*tm;
subplot(2,1,1)
plot(ejex,W(4:MM),ejex,y(4:MM)), grid
ylabel('y: In
lina
ion (rad) ')
subplot(2,1,2)
plot(ejex,u(4:MM)), grid
xlabel('TIEMPO : SEG')
ylabel('u: Angulo del defle
tor (rad)')
print -deps -f p4pred2
3
y: Inclinación (rad)
−1
0 200 400 600 800 1000 1200
0.3
u: Angulo del deflector (rad)
0.2
0.1
−0.1
−0.2
0 200 400 600 800 1000 1200
TIEMPO : SEG
Figura 6.19: A ngulo de in
lina
ion y se~nal de
ontrol (angulo del de
e
tor)
orrespondientes al problema 6.2.
Problema 6.3
La gura 3.20 muestra el pro
eso monorriel de dos
arros des
rito en el
problema 3.5. El problema a resolver es el
ontrol de velo
idad del
arro de
6.8 Problemas Resueltos 329
% HORIZONTES
N1 =1; N2 =10; Nu =1;
% RESPUESTA AL ESCALON
g(1)=b1; g(2)=-a1*b1+b1+b2;
g(3)=-a1*g(2)-a2*g(1)+b1+b2+b3;
g(4)=-a1*g(3)-a2*g(2)-a3*g(1)+b1+b2+b3+b4;
g(5)=-a1*g(4)-a2*g(3)-a3*g(2)-a4*g(1)+b1+b2+b3+b4+b5;
g(6)=-a1*g(5)-a2*g(4)-a3*g(3)-a4*g(2)-a5*g(1)+b1+b2+b3+b4+b5+b6;
for k=7:N2
g(k)=-a1*g(k-1)-a2*g(k-2)-a3*g(k-1)-a4*g(k-1)-a5*g(k-2)...
-a6*g(k-1) + b1 + b2 + b3 + b4 + b5 + b6;
end
% CONDICIONES INICIALES
for k=1:7
yf(k)=0; y(k)=0; r(k)=0; u(k)=0;
end
alf =0.1; lambda = 0; MM=500;
% LAZO DE CONTROL
for t=7:MM+6;
% TRAYECTORIA DESEADA, REFERENCIA r Y RESPUESTA LIBRE yf
for k=1:N2
W(t+k)= 25 + 5*sign(sin(0.01*t));
r(t+k) = alf*r(t+k-1) + (1-alf)*W(t+k);
yf(t+k) = -a1*yf(t+k-1)-a2*yf(t+k-2)-a3*yf(t+k-3)...
-a4*yf(t+k-4)-a5*yf(t+k-5)-a6*yf(t+k-6)+(b1+b2+b3+b4+b5+b6)*u(t-1);
end
% LEY DE CONTROL
du(t)=(g(1)*(r(t+1)-yf(t+1))+g(6)*(r(t+6)-yf(t+6))+...
g(2)*(r(t+2)-yf(t+2))+g(7)*(r(t+7)-yf(t+7))+ ...
g(3)*(r(t+3)-yf(t+3))+g(8)*(r(t+8)-yf(t+8))+ ...
g(4)*(r(t+4)-yf(t+4))+g(9)*(r(t+9)-yf(t+9))+ ...
g(5)*(r(t+5)-yf(t+5))+g(10)*(r(t+10)-yf(t+10)))/...
(g(1)^2 + g(2)^2 + g(3)^2 + g(4)^2 + g(5)^2 + g(6)^2 + ...
g(7)^2 + g(8)^2 + g(9)^2 + g(10)^2 + lambda);
u(t) = u(t-1) + du(t);
% PROCESO
y(t+1)= -a1*y(t) -a2*y(t-1) -a3*y(t-2) -a4*y(t-3)...
-a5*y(t-4) -a6*y(t-5)...
+b1*u(t) +b2*u(t-1) +b3*u(t-2) +b4*u(t-3)...
6.8 Problemas Resueltos 331
+b5*u(t-4)+b6*u(t-5);
end
% GRAFICOS
ejex=linspa
e(0,MM*tm,MM-6);
subplot(2,1,1)
plot(ejex,W(7:MM),ejex,y(7:MM)); grid
ylabel('Y1: Velo
idad (m/s)')
subplot(2,1,2)
plot(ejex,u(7:MM)); grid
xlabel('Tiempo (segundos)')
ylabel('Control u (volt)')
print -deps -f p7pred1a
40
Y1: Velocidad (m/s)
30
20
10
0
0 50 100 150
150
Control u (volt)
100
50
−50
0 50 100 150
Tiempo (segundos)
Figura 6.20: Velo
idad del
arro de maquinas y la fuerza de
ontrol para el
problema 6.3.
Problema 6.4
Resuelva nuevamente el problema 6.3, pero esta vez usando un sistema de
ontrol predi
tivo
on fuerza de
ontrol matri
ial.
Solu
ion: El programa p7pred2a.m resuelve el problema planteado y su
resultado se muestra en la gura 6.22. El programa p7pred2b.m trata el
aso de referen
ia arbitraria y su resultado se ilustra en la gura 6.23.
332 Control Predi
tivo
20
Velocidad (m/s)
15
10
0
0 50 100 150 200 250 300
60
Control u (volt)
40
20
−20
0 50 100 150 200 250 300
Tiempo (Segundos)
Figura 6.21: Velo
idad del
arro de maquinas y la fuerza de
ontrol para el
problema 6.3. La referen
ia es arbitraria.
Problema 6.5
La gura 3.22 muestra el pro
eso as
ensor que fue tratado en el problema
3.6. El problema a resolver es posi
ionar suavemente el as
ensor en un piso
determinado, lo que signi
a sobreimpulso nulo (para que no se pase de piso)
y tiempo de estabiliza
ion menor que 10 s. Para no saturar al a
tuador (un
ampli
ador de poten
ia), la se~nal de
ontrol debe estar dentro del rango
de 200 volt. Dise~nar un sistema de
ontrol de posi
ion predi
tivo
on
fuerza de
ontrol es
alar que
umpla las espe
i
a
iones pedidas. Con el
objeto de
umplir tales espe
i
a
iones, tambien se puede usar restri
ion
a la salida; es de
ir, para
ada tiempo de muestreo, ha
er que la posi
ion
ontrolada iguale la se~nal de referen
ia. Es interesante anotar, que di
ha
restri
ion origina en la simula
ion una respuesta que sigue perfe
tamente a
la referen
ia. Logi
amente, los resultados de la implementa
ion en tiempo
real
on tal restri
ion, no son tan perfe
tos
omo lo son en la simula
ion,
tal
omo su
ede en el
aso del
ontrol predi
tivo del servomotor
on
arga
no lineal (subse
ion 6.7.8).
% p8pred1.m SOLUCION DEL PROBLEMA 6_5: CONTROL DE POSICION
% DE UN ASCENSOR USANDO CONTROL PREDICTIVO CON FUERZA
% DE CONTROL ESCALAR Y CON RESTRICCION EN LA SALIDA
lear all
6.8 Problemas Resueltos 333
40
20
10
0
0 50 100 150
100
50
u: control
−50
0 50 100 150
Tiempo (segundos)
Figura 6.22: Velo
idad del
arro de maquinas y la fuerza de
ontrol para el
problema 6.4.
% ECUACION DE ESTADO
A=[-0.2 0 0 0
1 0 0 0
2 0 -2 0
5 0 0 -5℄;
B=[0.001;0;0;0℄; C=[0 1 0 0℄; D=[0℄;
% PROCESO EN TIEMPO DISCRETO
tm=1;
[G,H℄=
2d(A,B,tm);
[numd,dend℄=ss2tf(G,H,C,D);
a1=dend(2); a2=dend(3); a3=dend(4); a4=dend(5);
b1=numd(2); b2=numd(3); b3=numd(4); b4=numd(5);
% HORIZONTES DE CONTROL
N1 =1; N2 =10; Nu =1;
% RESPUESTA AL ESCALON
g(1) = b1; g(2) = -a1*b1 + b1 + b2;
g(3) = - a1*g(2) - a2*g(1) + b1 +b2+b3;
g(4) = - a1*g(3) - a2*g(2)-a3*g(1) + b1+b2+b3+b4;
for k=5:N2
g(k) = -a1*g(k-1)-a2*g(k-2)-a3*g(k-3)-a4*g(k-4)+b1+b2+b3+b4;
end
334 Control Predi
tivo
20
Velocidad v1 (m/s)
15
10
0
0 100 200 300 400 500 600 700 800 900 1000
15
u: Fuerza de control
10
−5
0 100 200 300 400 500 600 700 800 900 1000
Tiempo (Segundos)
Figura 6.23: Velo
idad del
arro de maquinas y la fuerza de
ontrol para el
problema 6.4. La referen
ia es arbitraria.
% CONDICIONES INICIALES
for k=1:5
yf(k)=0; y(k)=0; r(k)=0; u(k)=0;
end
alf =0.1; lambda = 0.00;
MM=300;
% LAZO DE CONTROL
for t =5:MM+4;
% TRAYECTORIA DESEADA, REFERENCIA r Y RESPUESTA LIBRE yf
for k=1:N2
W(t+k)=-3*sign(sin(0.02*t));
r(t+k) = alf*r(t+k-1) + (1-alf)*W(t+k);
yf(t+k)= -a1*yf(t+k-1)-a2*yf(t+k-2)-a3*yf(t+k-3)-a4*yf(t+k-4)...
+ (b1 + b2 + b3 + b4)*u(t-1);
end
% RESTRICCION A LA SALIDA
y(t) = W(t);
% LEY DE CONTROL
du(t)=(g(1)*(r(t+1)-yf(t+1))+g(6)*(r(t+6)-yf(t+6))+ ...
g(2)*(r(t+2) - yf(t+2)) + g(7)*(r(t+7) - yf(t+7)) + ...
g(3)*(r(t+3) - yf(t+3)) + g(8)*(r(t+8) - yf(t+8)) + ...
6.8 Problemas Resueltos 335
Problema 6.6
Resuelva nuevamente el problema 6.5, pero esta vez usando un sistema de
ontrol predi
tivo
on fuerza de
ontrol matri
ial.
Solu
ion: El programa p8pred2a.m resuelve el problema planteado y su
resultado se muestra en la gura 6.25.
Problema 6.7
La gura 2.2 muestra dos tanques identi
os
olo
ados en
as
ada. La se
-
ion horizontal A=9 m2 de
ada tanque es
onstante. El objetivo de
ontrol
es
ontrolar la altura H2 empleando el
ujo Qo. La dedu
ion del modelo
linealizado del pro
eso se derivo en el ejemplo 2.1. Dise~nar un
ontrolador
predi
tivo del tipo es
alar
on los requerimientos siguientes: tiempo de es-
tabiliza
ion menor que 15 s, sobreimpulso menor al 10 % y error en estado
336 Control Predi
tivo
POSICION (m)
2
−2
−4
0 50 100 150 200 250 300
TIEMPO EN SEGUNDOS
200
VOLTAJE DE CONTROL
100
−100
−200
0 50 100 150 200 250 300
TIEMPO EN SEGUNDOS
Figura 6.24: Posi
ion del as
ensor y la fuerza de
ontrol (problema 6.5).
4
POSICION (m)
−2
−4
0 100 200 300 400 500 600
200
VOLTAJE DE CONTROL
100
−100
0 100 200 300 400 500 600
TIEMPO EN SEGUNDOS
estable nulo. Estas
ondi
iones de dise~no deben mantenerse
uando se
am-
bie la referen
ia (por ejemplo de 3 a 2 m). Ademas, el
ujo de entrada (la
se~nal de
ontrol) no debe sobrepasar los 3 m3 /s.
% p9pred1.m SOLUCION DEL PROBLEMA 6.7 CONTROL DE NIVEL
% USANDO CONTROL PREDICTIVO CON CONTROL du ESCALAR
lear all
% PARAMETROS DEL SISTEMA
A = 9; gamma = 0.4; rho = 1.23; g = 9.81; Q = 3;
H =Q^2/(gamma^2*rho*g);
Z=(gamma*sqrt(rho*g))/(2*A*sqrt(H));
% ESPACIO DE ESTADO DE LA PLANTA EN TIEMPO CONTINUO
A
= [-Z 0;Z -Z℄; B
=[1 ; 0℄;
C
=[0 1℄; D
=[0℄;
T = 0.9; % TIEMPO DE MUESTREO
% MODELO LINEAL DISCRETO
[G,H,C,D℄=
2dm(A
,B
,C
,D
,T,'zoh');
[numd,dend℄=ss2tf(G,H,C,D);
a1 = dend(2); a2 = dend(3);
b1 = numd(2); b2 = numd(3);
% RESPUESTA AL ESCALON
g1 = b1;
g2 = -a1* b1 + b1 + b2;
g3 = -a1*g2-a2*g1+b1+b2; g4 = -a1*g3-a2*g2+b1+b2;
g5 = -a1*g4-a2*g3+b1+b2; g6 = -a1*g5-a2*g4+b1+b2;
g7 = -a1*g6-a2*g5+b1+b2; g8 = -a1*g7-a2*g6+b1+b2;
g9 = -a1*g8-a2*g7+b1+b2; g10 = -a1*g9-a2*g8+b1+b2;
% HORIZONTES DE CONTROL
N1 = 1; N2 =10; Nu =1; %
ontrol es
alar
% CONDICIONES INICIALES
for k=1:3
yf(k)=0; y(k)=0; r(k)=0; u(k)=0;
end
alf = 0.1; lambda = 0; MM = 500;
% LAZO DE CONTROL
for t =3:MM+2
% TRAYECTORIA DESEADA, REFERENCIA r Y RESPUESTA LIBRE yf
for k=1:N2
W(t+k) = 1.5 + 0.5*sign(sin(0.02*t));
r(t+k) = alf*r(t+k-1) + (1-alf)*W(t+k);
yf(t+k) = -a1*yf(t+k-1) - a2*yf(t+k-2) + (b1 + b2)*u(t-1);
end
% LEY DE CONTROL
du(t)=(g1*(r(t+1)-yf(t+1))+g6*(r(t+6)-yf(t+6))+ ...
338 Control Predi
tivo
g2*(r(t+2) -
yf(t+2)) + g7*(r(t+7) - yf(t+7)) + ...
g3*(r(t+3) -
yf(t+3)) + g8*(r(t+8) - yf(t+8)) + ...
g4*(r(t+4) -
yf(t+4)) + g9*(r(t+9) - yf(t+9)) + ...
g5*(r(t+5) -
yf(t+5)) + g10*(r(t+10)-yf(t+10)))/...
(g1^2 +
g2^2 + g3^2 + g4^2 + g5^2 + g6^2 + ...
g7^2 + g8^2 + g9^2 + g10^2 + lambda);
u(t) = u(t-1) + du(t);
% PROCESO LINEALIZADO (ECUACION RESIDUAL)
y(t+1)=-a1*y(t)-a2*y(t-1)+b1*du(t)+b2*du(t-1);
% SALIDA ACTUAL (NIVEL H2)
Y(t+1) = y(t+1)+W(t+1);
% LIMITANDO EL FLUJO DE CONTROL
fu = 3.0;
if(u(t) > 0 & u(t) > fu)
u(t) = fu;
elseif(u(t) < 0 & u(t) < -fu)
u(t) = -fu;
end
end % FIN DEL LAZO DE CONTROL **************
% GRAFICOS
ejex = linspa
e(0,MM*T,MM-2);
subplot(2,1,1)
plot(ejex,W(3:MM),ejex,Y(3:MM)); grid
ylabel('NIvel H2 (m)')
xlabel('Tiempo en segundos')
subplot(2,1,2)
plot(ejex,u(3:MM)); grid
ylabel('Flujo de
ontrol (m^3/s)')
xlabel('Tiempo en segundos')
print -deps -f p9pred1
Problema 6.8
Resuelva nuevamente el problema 6.7, pero esta vez usando un sistema de
ontrol predi
tivo
on fuerza de
ontrol matri
ial.
Solu
ion: El programa p9pred2.m resuelve el problema planteado y su
resultado se muestra en la gura 6.27.
Problema 6.9
El pro
eso ele
trome
ani
o mostrado en la gura 3.26 se des
ribe en el pro-
blema 3.8. Se pide dise~nar un sistema de
ontrol predi
tivo
on fuerza de
6.8 Problemas Resueltos 339
2.5
NIvel H2 (m)
1.5
0.5
0
0 50 100 150 200 250 300 350 400 450
Tiempo en segundos
3
Flujo de control (m^3/s)
−1
−2
0 50 100 150 200 250 300 350 400 450
Tiempo en segundos
2.5
2
NIvel H2 (m)
1.5
0.5
0
0 50 100 150 200 250 300 350 400 450
Tiempo en segundos
2
Flujo de control (m^3/s)
−1
0 50 100 150 200 250 300 350 400 450
Tiempo en segundos
ontrol es
alar, para
ontrolar la velo
idad angular del eje del motor me-
diante el voltaje de entrada que puede variar entre 100 volt. El tiempo de
estabiliza
ion de la se~nal
ontrolada (la velo
idad) debe ser menor que 6 s
y di
ha respuesta debe presentar un sobrepi
o maximo de 5 %,
on error en
estado estable nulo.
% p11pred1.m SOLUCION DEL PROBLEMA 6_9
% CONTROL DE VELOCIDAD DEL SISTEMA ELECTROMECANICO
% USANDO CONTROL PREDICTIVO CON CONTROL du ESCALAR
lear all
% PARAMETROS DEL SISTEMA
J = 0.01; Ke = 0.01; Kt = 0.01;
R = 12; C = 0.5; L = 0.5; Kw = 1.8;
% MODELO DEL PROCESO EN TIEMPO CONTINUO
A
= [-1/(R*C) -1/C 0
Kw/(L*Kw + Kt*Ke) 0 -Ke*Kw/(L*Kw + Kt*Ke)
0 Kt/J 0℄;
B
= [1/(R*C);0;0℄;
C
= [0 0 1℄; D
= [0℄;
T = 0.1; % TIEMPO DE MUESTREO
% MODELO LINEAL DISCRETO
[G,H,C,D℄=
2dm(A
,B
,C
,D
,T,'zoh');
[numd,dend℄=ss2tf(G,H,C,D);
a1 = dend(2); a2 = dend(3); a3=dend(4);
b1 = numd(2); b2 = numd(3); b3=numd(4);
% RESPUESTA AL ESCALON
g1 = b1; g2 =-a1*b1+b1+b2;
g3=-a1*g2-a2*g1+b1+b2+b3;
g4 =-a1*g3- a2*g2-a3*g1+b1+b2+b3;
g5=-a1*g4-a2*g3-a3*g2+b1+b2+b3;
g6 =-a1*g5-a2*g4-a3*g3+b1+b2+b3;
g7=-a1*g6-a2*g5-a3*g4+b1+b2+b3;
g8 =-a1*g7-a2*g6-a3*g5+b1+b2+b3;
g9=-a1*g8-a2*g7-a3*g6+b1+b2+b3;
g10=-a1*g9-a2*g8-a3*g7+b1+b2+b3;
% HORIZONTES DE CONTROL
N1 = 1; N2 = 10; Nu = 1;
% CONDICIONES INICIALES
for k = 1:4
yf(k) = 0; y(k) = 0; r(k) = 0; u(k) = 0;
end
du(1) = 0;
alf = 0.85; lambda = 0;
% LAZO DE CONTROL
6.8 Problemas Resueltos 341
MM=1000;
for t =4:MM+3
% TRAYECTORIA DESEADA, REFERENCIA r Y RESPUESTA LIBRE yf
for k=1:N2
W(t+k)= 4*sign(sin(0.01*t));
r(t+k) = alf*r(t+k-1) + (1-alf)*W(t+k);
yf(t+k)= -a1*yf(t+k-1)-a2*yf(t+k-2)-a3*yf(t+k-3)+(b1+b2+b3)*u(t-1);
end
% LEY DE CONTROL
du(t) = ( g1*(r(t+1) - yf(t+1)) + g6*(r(t+6) - yf(t+6)) + ...
g2*(r(t+2) - yf(t+2)) + g7*(r(t+7) - yf(t+7)) + ...
g3*(r(t+3) - yf(t+3)) + g8*(r(t+8) - yf(t+8)) + ...
g4*(r(t+4) - yf(t+4)) + g9*(r(t+9) - yf(t+9)) + ...
g5*(r(t+5) - yf(t+5)) + g10*(r(t+10) - yf(t+10)) )/...
(g1^2 + g2^2 + g3^2 + g4^2 + g5^2 + g6^2 + ...
g7^2 + g8^2 + g9^2 + g10^2 + lambda);
u(t) = u(t-1) + du(t);
if(u(t) > 100)
u(t)=100;
elseif(u(t) < -100)
u(t) = - 100;
end
% PROCESO
y(t+1) = -a1*y(t)-a2*y(t-1)-a3*y(t-2)+b1*u(t)+b2*u(t-1)+b3*u(t-2);
end % FIN DEL LAZO DE CONTROL
% GRAFICOS
ejex=linspa
e(0,MM*T,MM-3);
subplot(2,1,1)
plot(ejex,W(4:MM),ejex,y(4:MM)); grid
ylabel('Velo
idad (rad/s)')
xlabel('Tiempo en segundos')
subplot(2,1,2)
plot(ejex,u(4:MM)); grid
xlabel('Tiempo en segundos')
ylabel('Voltaje de
ontrol')
print -deps -f p11pred1
Problema 6.10
Resuelva nuevamente el problema 6.9, pero esta vez usando un sistema de
ontrol predi
tivo
on fuerza de
ontrol matri
ial. La traye
toria deseada
debe ser una
urva arbitraria (problema de seguimiento).
342 Control Predi
tivo
Velocidad (rad/s)
0
−5
0 10 20 30 40 50 60 70 80 90 100
Tiempo en segundos
100
Voltaje de control
50
−50
−100
0 10 20 30 40 50 60 70 80 90 100
Tiempo en segundos
15
Velocidad (rad/s)
10
−5
0 20 40 60 80 100 120 140 160 180 200
Tiempo en segundos
2
Voltaje de control
−1
−2
0 20 40 60 80 100 120 140 160 180 200
Tiempo en segundos
(b) Lo mismo que (a) pero empleando una fuerza de
ontrol matri
ial.
La sele
ion de los horizontes de
ontrol y del tiempo de muestreo es
a
onvenien
ia del problema planteado.
Problema 6.15
La gura 3.33 muestra el pro
eso doble grua puente no lineal, el
ual es una
extension del pro
eso grua puente es
rito en la se
ion 3.2. El a
oplamiento
entre las dos se
iones iguales de la varilla no es
exible. Las e
ua
iones que
des
riben la dinami
a del sistema son materia del problema propuesto 3.14.
Considerar que la
arga esferi
a es de 0.02 kg.
(a) Dise~nar un sistema de
ontrol predi
tivo basado en modelos para
on-
trolar simultaneamente las posi
iones y
on mnimo tiempo de
estabiliza
ion y mnimo sobreimpulso empleando para ello una fuerza
de
ontrol es
alar, de modo tal que la grua-puente doble permanez
a
en posi
ion verti
al.
(b) Lo mismo que (a) pero empleando para ello una fuerza de
ontrol
matri
ial. La sele
ion de los horizontes de
ontrol y del tiempo de
muestreo es a
onvenien
ia del problema planteado.
Problema 6.16
La gura 1.1 muestra un
arro de masa m = 1000 kg desplazandose
on una
velo
idad v gra
ias a la a
ion de la fuerza u produ
ida por su motor. Si
se despre
ia la iner
ia de las ruedas y se asume que la fuerza de fri
ion bv,
donde b= 50 N-s/m es el
oe
iente de fri
ion, es lo uni
o que se opone
al movimiento del
arro, enton
es la dinami
a del pro
eso puede modelarse
omo (ver ejemplo 1.16):
dv
mv_ (t) + bv(t) = u(t); v_ =
dt
(a) Dise~nar un sistema de
ontrol predi
tivo basado en modelos para
on-
trolar la velo
idad del movil
on mnimo tiempo de estabiliza
ion y
mnimo sobreimpulso. La se~nal de referen
ia puede ser arbitraria (pro-
blema de seguimiento) y la fuerza de
ontrol a dise~nar es es
alar.
(b) Lo mismo que (a), pero empleando fuerza de
ontrol matri
ial. La
sele
ion los valores de los horizontes y el tiempo de muestreo son a
onvenien
ia del problema planteado.
346 Control Predi
tivo
Problema 6.17
El motor D.C. es un a
tuador muy popular en los sistemas de
ontrol porque
su movimiento rotatorio, mediante a
oples ade
uados en su eje, puede
on-
vertirse fa
ilmente en movimiento de trasla
ion. Eso se apre
ia en fajas
transportadoras o en brazos manipuladores. La gura 4.3 muestra el
ir-
uito de armadura del motor y el diagrama de
uerpo libre de su rotor.
Las e
ua
iones que gobiernan el
omportamiento dinami
o del motor fueron
derivadas en el ejemplo 4.1.
(a) Dise~nar dos sistemas de
ontrol predi
tivo basado en modelos. El
primero, para estabilizar la velo
idad angular del eje del motor
on
las espe
i
a
iones siguientes: tiempo de estabiliza
ion menor que 4 s,
error en estado estable menor al 1 % y sobreimpulso a la salida menor
al 5 %, y el segundo para estabilizar la posi
ion del eje del motor
on
las mismas espe
i
a
iones de dise~no.
(b) Repetir (a) pero en este
aso empleando una fuerza de
ontrol matri-
ial. La sele
ion de los horizontes de
ontrol y del tiempo de muestreo
es a
onvenien
ia del problema planteado.
Cap
tulo 7
Control Robusto
r
- m
6
-
(z )
u
- hr0 (s) - p(s) -? md
-y
y
y
(s)
T
Una fun
ion ra
ional y periodi
a posee la propiedad de que sus valores para
fre
uen
ias mayores que =T se pueden determinar a partir de aquellos va-
lores
orrespondiente al intervalo 0 w =T . Ademas, si y
(z) es
periodi
a, tambien es hermitiana; es de
ir:
y
(ei!T )H = y
(e i!T ) = y
(ei(! !)T )H ; =T < w < 2=T (7.6)
s
r
- m - q
u
- p -?
d
m -
y
6
- p~ -? m
A
m m m
d
r
- - - q - p -? -
6 6
p~
m m m
q
d
r
- - - u
- p -? -y
m
6 6
p~ - p~ -?
Por otra parte, el bloque
(s) representa un ltro que sirve para
ortar las
omponentes de alta fre
uen
ia de las se~nales
ontinuas antes del muestreo,
uando sea ne
esario. Su fun
ion de transferen
ia debe ser estable; es de
ir,
las ra
es de su e
ua
ion
ara
tersti
a deben poseer parte real negativa. Las
rela
iones siguientes son validas para la estru
tura CMI:
r(z ) = Z [r(s)℄ (7.10)
d(z ) = Z [d(s)℄ (7.11)
d
(z ) = Z [
(s)d(s)℄ (7.12)
y(z ) = Z [y(s)℄ (7.13)
e(z ) = Z [y(s) r(s)℄ (7.14)
y
(z ) = Z [
(s)y(s)℄ (7.15)
p~
(z ) = Z [hr0 (s)~p(s)
(s)℄ (7.16)
p
(z ) = Z [hr0 (s)p(s)
(s)℄ (7.17)
352 Control Robusto
r
- m
6
- q (z )
u
- hr0(s) - p(s) - ?d
m y
-
?
- p~
(z ) m
-
T
(s)
m m
A
d
r
- - u
- hr0(s) - -? y
-
m
q (z ) p(s)
6
- p~(s) -?
(s)
T
B
r
- m - u
- -? m
d
-
m
q (z ) p(s)
6 y
- p~(s)
y~
-?
Figura 7.3: Estru
tura CMI. A: Estru
tura muestreada. B: Estru
tura equi-
valente a A pero no implementable. C: Estru
tura dis
reta.
7.2 Formula
ion del Problema CMI 353
7.2 Formula
i
on del Problema CMI
Para dise~nar el
ontrolador dis
reto q(z) debemos tener disponibles el mo-
delo del pro
eso (que puede ser
ontinuo o dis
reto), los rangos de in
er-
tidumbre del modelo, los tipos de entradas y los objetivos de rendimiento.
7.2.1 El Modelo del Pro
eso
Los metodos de identi
a
ion mas populares generan modelos de fun
iones
de transferen
ia de pulso. Tales fun
iones son su
ientes para dise~nar el
sistema de
ontrol, pero no permiten el analisis del
omportamiento del sis-
tema entre puntos de muestreo, lo que puede ser signi
ativamente peor que
el
omportamiento en los mismos puntos. Como las in
ertidumbres del mo-
delo se des
riben en forma natural en el tiempo
ontinuo, resulta enton
es
onveniente tener el modelo
ontinuo del pro
eso que puede asumirse lineal e
invariante
on el tiempo y
on presen
ia de tiempos muertos. Es importante
en esta parte men
ionar la
ara
tersti
a
ausal de los sistemas.
Sistema Causal y Estri
tamente Causal: Un sistema g(z ) es propio o
ausal si limz!1g(z ) es nito. Un sistema propio es estri
tamente propio
si limz!1g(z ) = 0, y es semipropio si limz!1g(z ) > 0. Todos los sistemas
que no son propios se denominan impropios o no
ausales.
una region
ir
ular a
otada de radio
ono
ido `a(!), o de modo equivalente:
p(j!) = p~(j!) + `a (j!) (7.21)
j`a (j!)j `a (!); 8 p II (7.22)
La
ota de la in
ertidumbre multipli
ativa `m(!) del pro
eso se dene
omo:
`m (!) = `a (!)=jp~(j!)j (7.23)
De las guras 7.3A o 7.3B podemos obtener
on p = p~:
y(s) r(s) = e(s) = hr0 (s)~p(s)q(esT )r (esT ) r(s); r(s) = hr0 (s)r (esT )
(7.24)
y luego:
y(s) e(s)
hr0 (s)r (e )
sT = p~(s)q(esT ) , ~r (s) = 1 ~r (s); r (s) =
~ r(s)
(7.25)
donde ~r es la fun
ion de sensitividad y ~r es la fun
ion de sensitividad
omplementaria.
Ejemplo 7.1
Determinar las expresiones de p(s) y p~(s) para el pro
eso servomotor D.C.
on
arga no lineal variable des
rito en la se
ion 3.3 e ilustrado en la gura
3.9. La uni
a in
ertidumbre del pro
eso a tener en
uenta es la
arga adi-
ional
one
tada a un extremo de la varilla (una esfera de radio Ro y masa
Mo ), la
ual puede variar entre 0 y 0.045 kg. En base a la respuesta al
es
alon, ya sea del pro
eso o de su modelo nominal, sele
ione un tiempo
de muestreo ade
uado y determine la fun
ion de transferen
ia de pulso p~(z)
del modelo nominal del pro
eso.
Solu
ion: El programa ejem7 1.m determina p(s) y p~(s) para el pro
eso en
estudio. El resultado es el siguiente:
p(s) = 2
Kp
= 30:4696
s + ap s + bp s2 + 1:2707s + 14:4007
p~(s) = 2
Kn
= 91:4375
s + an s + bn s + 3:8133s + 17:9220
2
Observando las respuestas al es
alon en la gura 7.4, podemos
on
luir que
un tiempo de muestreo de T = 0.05 s es su
iente para poder
apturar la
7.2 Formula
ion del Problema CMI 355
urva de transi
ion produ
ida por la respuesta del pro
eso al es
alon. La
fun
ion de transferen
ia de pulso del modelo nominal del pro
eso resulta:
b z + b2
p~(z ) = 2 1 = 0:1070z + 0:1004
z + a1 z + a2 z 2 1:7858z + 0:8264
% ejem7_1.m CALCULO DE p(s) Y DE SUS MODELOS NOMINALES pn(s) Y pn(z)
lear all
% PARAMETROS DEL PROCESO NO LINEAL
Lo = 0.776;
JL = 3.5e-7; bL = 1e-5; Ro = 0.01;
Jm = 1.9062e-6; bm = 1.8338e-6; g = 9.81;
E = 31.0352e-3; R = 7.38; m = 0.06377;
Ka
t = 14.9;
= 0.25; % Mo = 0,0.01,0.02,0.045;
K = 31.071e-3; n = 19.741; L = 4.64e-3;
B = n^2*bm +bL; Jeff = n^2*Jm +JL;
% PROCESO p(s) (EL SUBINDICE p SIGNIFICA PROCESO)
Mo = 0.045;
M = Jeff + (1/3)*m*Lo^2 + Mo*Lo^2 + (2/5)*Mo*Ro^2;
N = g*Lo*(Mo+m/2);
Ap = [0 1;-N/M -(B + n^2*K*E/R)/M℄;
Bp = [0;n*K*Ka
t/(R*M)℄;
Cp = [1 0℄; Dp = [0℄;
[nump,denp℄=ss2tf(Ap,Bp,Cp,Dp);
% nump(s)/denp(s) = p(s) = Kp/(s^2 + ap*s + bp)
Kp = nump(3); ap = denp(2); bp = denp(3);
% MODELO NOMINAL pn(s) (EL SUBINDICE n SIGNIFICA NOMINAL)
Mo=0.0;
M = Jeff + (1/3)*m*Lo^2 + Mo*Lo^2 + (2/5)*Mo*Ro^2;
N = g*Lo*(Mo+m/2);
An = [0 1;-N/M -(B + n^2*K*E/R)/M℄;
Bn = [0;n*K*Ka
t/(R*M)℄;
Cn = [1 0℄; Dn = [0℄;
[numn,denn℄ = ss2tf(An,Bn,Cn,Dn);
% numn(s)/denn(s) = pn(s) = Kn/(s^2 + an*s + bn)
Kn = numn(3); an = denn(2); bn = denn(3);
% [Kp ap bp℄ = [30.4696 1.2707 14.4007℄
% [Kn an bn℄ = [91.4375 3.8133 17.9220℄
% MODELO NOMINAL DISCRETO pnz(z)
T = 0.05;
[numd,dend℄ =
2dm(numn,denn,T,'zoh');
% numd(s)/dend(s) = pnz(z) = (b1*z + b2)/(z^2 + a1*z + a2)
a1 = dend(2); a2 = dend(3);
b1 = numd(2); b2 = numd(3);
356 Control Robusto
4
Respuesta del proceso
0
0 1 2 3 4 5 6 7 8 9 10
Tiempo en segundos
8
Respuesta del modelo
0
0 0.5 1 1.5 2 2.5 3
Tiempo en segundos
Figura 7.4: Respuestas a la se~nal es alon del pro eso y de su modelo nominal.
semipropio. Notar que q~H (z) debe ser estable y
ausal. Sin embargo, debido
a su
ara
ter dis
reto, este
ontrolador puede presentar problemas de
om-
portamiento en las intermuestras (entre puntos de muestreo)
ausadas por
los polos de q~H (z)
er
anos al punto ( 1; 0). Por
onsiguiente, es ne
esario
realizar una modi
a
ion del
ontrolador q~H (z).
La tabla 7.1 muestra la expresion del
ontrolador q~H (z) para algunas
entradas tpi
as.
Tabla 7.1: Controlador q~H (z) para algunas entradas tpi
as.
1
s2
Tz
(z 1)2 (~pM (z)) 1 (N +
+1)z z N
donde:
, dzd (~pA1(z)z N )jz=1
1
= Phj=1 (1 ( )(1) ( ) 1 )
H
j j
H
j j
360 Control Robusto
Ejemplo 7.2
Determinar el
ontrolador optimo
uadrati
o q~H (z) para el pro
eso p(z) del
ejemplo 7.1, asumiendo que la entrada v(s) es un es
alon.
Solu
ion: Del ejemplo 7.1
ono
emos p~(z ) para T = 0.05 s:
b z + b2
p~(z ) = 2 1
z + a1 z + a2
Ademas, se debe
umplir que p~(z) = p~A(z)~pM (z), de modo tal que zN p~(z)
sea semipropio y por
onsiguiente, N = 1. El
ero b2 =b1 = -0.9874 de p~(z)
se ubi
a dentro del
r
ulo unitario; enton
es j = 0 y:
p~(z ) z (b1 z + b2 )
p~A(z ) = z 1 ; p~M (z ) = =
p~A (z ) z + a1 z + a2
2
Empleando ahora la tabla 7.1 para v(z) = z z 1 obtenemos:
z 2 + a1 z + a2
q~H (z ) = (~pM (z )) 1 =
z (b1 z + b2 )
Dise~no del Controlador CMI q~(z )
Deseamos obtener el
ontrolador CMI q~(z) postulando:
q~(z ) = q~H (z )~q (z )B (z ) (7.36)
donde q~ (z)
an
ela todos los polos de q~H (z) que posean parte real negativa
y los sustituye
on polos en el origen
on el proposito de que el sistema tienda
a
ontrolarse
on mnimo tiempo de estabiliza
ion. B (z) se sele
iona para
preservar el tipo m del sistema.
Sean i ; i = 1; : : : ; , los polos de q~H (z)
on parte real negativa. Enton
es
podemos es
ribir:
z i
q~ (z ) = z i=1 (7.37)
1 ki
X1
m
B (z ) = bi z j (7.38)
i=0
donde m es el tipo del sistema y los
oe
ientes bi; i = 0; : : : ; m 1, se sele
-
ionan de modo tal que q~(z) satisfaga la e
ua
ion (7.26). Por
onstru
ion,
7.3 Control Robusto para Pro
esos Estables 361
El ltro f (z) debe preservar las propiedades asintoti
as del sistema de lazo
errado; es de
ir, la e
ua
ion (7.26). Por
onsiguiente, para que el sistema
sea del tipo m, el ltro f (z) debe satisfa
er:
dn
dz n (1 f (z )) = 0; 0n<m (7.44)
z =1
Para un sistema del tipo m = 1, el ltro de la e
ua
ion (7.43)
umple
el requerimiento anterior: f (1) = 1. Sin embargo, para m 2 se debe
postular:
f (z ) = (0 + 1 z 1 + + w z w )
(1 )z (7.45)
z
donde los
oe
ientes 0 ; : : : ; w se sele
ionan de modo tal que satisfagan
la e
ua
ion (7.44). Para m = 2 y w 2 se ha determinado que:
k =
6k
(1 )(w + 1)(2w + 1) ; k = 1; : : : ; w (7.46)
7.3.3 Estabilidad Robusta
Dise~no del Filtro
La
ondi
ion de estabilidad robusta se estable
e en terminos del
ontrolador
CMI q(z) = q~(z)f (z). Asumiendo que todos los pro
esos p(s) en la familia
II son estables, que q(z ) es estable y que
(z ) esta rela
ionado
on q(z )
por la e
ua
ion (7.7), enton
es los sistemas en las guras 7.2A y 7.3A son
robustamente estables, si y solo si:
jf (ej!T )j < jp~(ej!T )~q(ej!T )`m (!)j 1 ; 0 ! T : (7.47)
donde `m(!) representa la
ota de la in
ertidumbre multipli
ativa. Para un
buen rendimiento del sistema, las in
ertidumbres tienen que ser a
otadas.
Una simple espe
i
a
ion de rendimiento requiere que el sistema de lazo
errado sea del tipo m = 1; es de
ir, que f (1) = p~(1)~q(1) =
(0) = 1.
Como
orolario de la e
ua
ion (7.47), podemos armar que si la in
er-
tidumbre multipli
ativa `(!) es
ontinua, enton
es existe un ltro f (z) para
el
ual el sistema a bu
le
errado sea del tipo m = 1, as
omo tambien robus-
tamente estable para la familia de pro
esos II . Esto, siempre que `m(0) < 1,
donde `m (0) es el error multipli
ativo en estado estable del sistema
ontinuo.
Una forma simple de dise~nar el ltro CMI es emplear un ltro f (z)
on
la estru
tura dada en la e
ua
ion (7.45) y luego variar el parametro de
7.3 Control Robusto para Pro
esos Estables 363
modo tal que se satisfaga la e
ua
ion (7.47). Esta e
ua
ion pone una
ota
inferior a . Di
ha
ota tambien se puede obtener del gra
o de Bode
de:
(jp~(ej!T q~(eiwT )j`m (!)) 1 (7.48)
Si esta
antidad nun
a es menor que 1, enton
es = 0. Si se obtuvieran
valores menores que 1, puede ser determinada a partir del gra
o de
Bode de f (z). Este gra
o resulta pra
ti
amente similar al obtenido
on el
ltro de primer orden dado en la e
ua
ion (7.43), siempre que el numero de
oe
ientes w en la e
ua
ion (7.45) sea su
ientemente grande. Por ejemplo,
si (jp~(ej!T q~(eiwT )j`m (!)) 1 de
re
e en la forma que lo ha
e un sistema de
primer orden, hasta al
anzar un valor de 0:7 en ! = !`, enton
es:
= e T w
` (7.49)
Efe
to del Muestreo
Un in
remento de la
onstante de tiempo del ltro redu
e el an
ho de
banda del sistema nominal. Grandes valores del tiempo de muestreo T
tambien redu
en el an
ho de banda debido a que si es
ribimos la e
ua
ion
(7.47)
omo:
jp~(j!)~q(ej!T )f (ej!T )j < jp(j!)j`a (!) (7.50)
podemos observar que el an
ho de banda del termino de la izquierda puede
ser redu
ido in
rementando en f (z) o dejando f (z) = 1 y aumentando T .
7.3.4 Rendimiento Robusto
Para rendimiento robusto, el
ontrolador tiene que ser dise~nado para que:
M (w) , jq^(j!)j`a (!) + j1 p~(j!)^q (j!)jW (!) < 1; 0 ! =T (7.51)
q^(j!) = q~(ej!T )f (ej!T )Z [hr0 (s)
(s)℄
donde se ha introdu
ido una fun
ion de peso W (!) sobre la
ual se dis
ute
a
ontinua
ion. La sele
ion de W (w) depende de los requerimientos de
rendimiento impuestos por el dise~nador. Es razonable usar la fun
ion de
sensitividad ideal (s) = p~(s)~q(s)
omo una gua para la busqueda de W (!):
W (!) 1 j1 p~(j!)~q (j!)j (7.52)
364 Control Robusto
Para que la
ondi
ion anterior resulte una fun
ion propia (requerimiento que
tambien es ne
esario para
ualquier W (w)), se deben
umplir las
ondi
iones
siguientes para m 1:
W (1) 1 1; W (0) 1 0 (7.53)
Ejemplo 7.4
Determinar una fun
ion de peso ade
uada para el pro
eso servomotor D.C.
sujeto a
argas no lineales (ver ejemplos 7.1, 7.2 y 7.3).
Solu
ion: Podemos sele
ionar la siguiente fun
ion de peso:
W (s) 1 = 0:4
0:5s + 1 ; s = j!
0:1s + 1
que
umple las
ondi
iones estable
idas en la e
ua
ion (7.53). Sin embargo,
se re
omienda emplear la forma general dada en la e
ua
ion (7.52), debido a
que nos permite
ambiar la magnitud de la fun
ion de peso usando un fa
tor
multipli
ativo, siempre que no se sobrepase la
ondi
ion dada en (7.52).
Esta forma de variar la fun
ion de peso propor
iona mayor
exibilidad en
el pro
eso de veri
a
ion del rendimiento robusto, tal
omo veremos mas
adelante.
Dise~no del Filtro
La forma mas simple de dise~nar el ltro f (z) es espe
i
ar su estru
tura dada
en la e
ua
ion (7.45) y luego tratar de satisfa
er la e
ua
ion (7.51) varian-
do el parametro . In
rementando , el primer termino de M (w) de
re
e
mientras que el segundo termino
re
e. Por
onsiguiente, dependiendo de `a
y W , podra no existir un valor de para que la e
ua
ion (7.45) sea satis-
fe
ha. Asumiendo que q~(z) y f (z) se sele
ionan de modo tal que el sistema
resulte del tipo m = 1 (para el
ual se
umple que p~(z)~q(z)f (z)jz=1 = 1) o
mayor, y que `m (0) < 1, enton
es, siempre es posible
onseguir rendimiento
robusto para ! = 0 y para
ualquier peso W (!).
El parametro debe ser sintonizado para que se satisfagan las
ondi-
iones dadas en las e
ua
iones (7.47) y (7.51). Desde que es posible imponer
la
ota inferior de , enton
es, para determinar di
ho parametro, debe-
mos resolver el siguiente problema de optimiza
ion:
min max M (!) , (T )
1 0!=T
(7.54)
7.3 Control Robusto para Pro
esos Estables 365
W = 0.5/abs(1-pn*qt);
M_dB(w+1) = 20*log10(abs(q*la) + abs((1-pn*q)*W));
% PARA RENDIMIENTO ROBUSTO: M_dB < 0
end
% GRAFICOS
ejew = linspa
e(0,pi/T,pi/T);
subplot(121)
semilogx(ejew,mag_dB(1:pi/T),ejew,magf_dB(1:pi/T),'--')
ylabel('Magnitudes en dB')
title(' (a)')
xlabel('Fre
uen
ia angular (rad/s)')
grid
subplot(122)
semilogx(ejew,M_dB(1:pi/T))
ylabel('Magnitud de M en dB')
title(' (b)')
xlabel('Fre
uen
ia angular (rad/s)')
grid
print -f -deps ejem7_5
print -s -deps ejem7_6a
(a) (b)
40 2
30 0
−2
20
−4
Magnitud de M en dB
10
Magnitudes en dB
−6
0
−8
−10
−10
−20
−12
−30 −14
−40 0 1 2
−16 0 1 2
10 10 10 10 10 10
Frecuencia angular (rad/s) Frecuencia angular (rad/s)
Figura 7.5: (a) Magnitudes de jp~q~`j 1 y jf (z)j (en trazos) para veri
ar la
estabilidad. (b) Magnitud de M para veri
ar el rendimiento robusto.
368 Control Robusto
Mux
+ z2+a1.z+a2 (1−alfa)z Kp
− (b1+b2)z2 z−alfa u s2+ap.s+bp q Gráfico
Sum1 Mux
Controlador q~(z) Filtro Proceso p(s)
u_ej7_6 q_ej7_6
control Kn posición
referencia s2+an.s+bn
.
Modelo nominal pn(s) − + Sum2
Figura 7.6: Diagrama de bloques para la simula
ion del sistema de
ontrol
robusto dise~nado.
1
0.8
Posición en rad
0.6
0.4
0.2
0
0 1 2 3 4 5 6 7 8 9 10
Tiempo en segundos
0.3
Control en voltios
0.2
0.1
0 1 2 3 4 5 6 7 8 9 10
Tiempo en segundos
X
M = mi (7.64)
i=1
y
omputar los
oe
ientes bj , j = 0; : : : ; M 1 de (7.63). Notar que (7.62)
da lugar a M e
ua
iones lineales
on M in
ognitas b0; b1 ; : : : ; bM 1 ; di
ha
e
ua
ion es equivalente a:
k
d
(1 q~ ( 1 )B ( 1 )) = 0; k = 0; : : : ; mi 1; i = 1; : : : ; :
dk =i 1
(7.65)
372 Control Robusto
Kn
Referencia s2+an.s+bn
u_disrob Saturación 2
Modelo nominal pn(s) − + S2
Control
Kact + n*K 1 w 1 q
− +
R Ms+B s
gan5 −
S3 Subsistema Subsistema Integrador
eléctrico S4 mecánico q_disrob
n*E
MATLAB Salida
gan2 N Function
gan3 Seno
Figura 7.8: Diagrama de bloques para la simula
ion del sistema de
ontrol
robusto dise~nado,
onsiderando el modelo no lineal del pro
eso.
Posición en rad
0.5
0
0 2 4 6 8 10 12 14 16 18 20
Tiempo en segundos
0.25
0.2
Control en voltios
0.15
0.1
0.05
0
0 2 4 6 8 10 12 14 16 18 20
Tiempo en segundos
Figura 7.9: Resultado de la simula
ion del sistema de
ontrol robusto em-
pleando el modelo no lineal del pro
eso.
/* Con Varilla*/
a1=-1.7858; a2= .8264;
b1= .1070; b2= .1004;
/* ATENCION: LOS VALORES DE a1, a2, b1, b2 DEPENDEN DE LA Fs */
V
FC= .15;
Ofst= 2.3;
Fs= 20.; T= 1./Fs;
tsimul= 100.;
alfa=0.955;
/* Modelo nominal */
*xn1 = - a1*xn1p - a2*xn1pp + b1*up + b2*upp;
/* error */
e = *r - (*x1-*xn1);
w =(e+a1*ep+a2*epp)/(b1+b2);
void main()
{
int ant = 0, a
t = 0, k, n;
FILE *out;
float *x1b, *xn1b;
float *ub, *rb, *wb, u, r, w;
float vel;
float x1p, xn1p;
Ini
ializa_Sistema();
lrs
r();
assert(tsimul<120);
N= tsimul/T;
n= (int)N;
t= vel= 0.;
assert(NULL!=(ub = (float *)
allo
(n/5,sizeof(float))));
assert(NULL!=(x1b = (float *)
allo
(n/5,sizeof(float))));
assert(NULL!=(xn1b= (float *)
allo
(n/5,sizeof(float))));
assert(NULL!=(rb = (float *)
allo
(n/5,sizeof(float))));
assert(NULL!=(wb = (float *)
allo
(n/5,sizeof(float))));
for(k = 0; k<n;)
{
a
t = NivelClo
k();
if ((ant==0)&&(a
t==1))
{
Mide_Variables(&x1, &xn1, &r, &vel, t);
u=alfa*up+(1-alfa)*(w);
upp=up; up=u;
u= Apli
a_Control(u, vel);
if(!(k%5))
{
x1b[k/5℄ = x1*180./M_PI; rb[k/5℄=r*180./M_PI;
wb[k/5℄ = w*180./M_PI; ub[k/5℄=u;
}
k++;
t += T;
gotoxy(15,5); printf("****************************************");
gotoxy(18,7); printf("Control robusto del servomotor no lineal");
gotoxy(15,9); printf("****************************************");
gotoxy(21,11);printf("tiempo : t=%+5.3f",t);
gotoxy(21,13);printf("referen
ia : r=%+5.3f",r*180./M_PI);
gotoxy(21,15);printf("
ontrol : u=%+5.3f",u);
gotoxy(21,17);printf("posi
ion : x1=%+5.3f", x1*180./M_PI);
gotoxy(21,19);printf("posi
. nominal : xn1=%+5.3f",x1*180./M_PI);
380 Control Robusto
50
(grados)
40
30
Posición
20
10
0
0 5 10 15 20 25 30 35 40 45 50
Tiempo en segundos
0.2
Señal de control (voltios)
0.15
0.1
0.05
0
0 5 10 15 20 25 30 35 40 45 50
Tiempo en segundos
Figura 7.10: Resultado experimental del sistema de
ontrol de posi
ion ro-
busto del servomotor D.C. sujeto a una
arga no lineal maxima.
% (z^3+a1*z^2+a2*z+a3)*(z-k1)/((b1*z^3+b2*z^2+b3*z)*z*(1-k1))
(a) (b)
40 5
30 0
Magnitud de M en dB
Magnitudes en dB
20 −5
10 −10
0 −15
−10 0 1 2
−20 0 1 2
10 10 10 10 10 10
Frecuencia angular (rad/s) Frecuencia angular (rad/s)
+ (1−alfa)z u ap.s+bp
− Mux
z−alfa s3+cp.s2+dp.s
S1 Graph
Filtro Proceso p(s)
Referencia Mux
an.s+bn
z4+(a1−k1)z 3+(a2−a1*k1)z
. 2+(a3−a2*k1)z−a3*k1 s3+cn.s 2+dn.s
(1−k1)*b1z4+(1−k1)*b2z3+(1−k1)*b3z2 Modelo nominal pn(s) − + S2
Controlador q~ y_p4rob1
u_p4rob1
Control u Salida y
0.25
0.2
Inclinación (rad)
0.15
0.1
0.05
0
0 1 2 3 4 5 6 7 8 9 10
Tiempo en segundos
1.5
Deflector (rad)
0.5
−0.5
0 1 2 3 4 5 6 7 8 9 10
Tiempo en segundos
Figura 7.13: A ngulo de in
lina
ion (salida
ontrolada) y angulo del de
e
tor
de eleva
ion (se~nal de
ontrol) para el problema 7.1.
386 Control Robusto
un pro
eso de primer orden. La gura 3.24(b) muestra la F.T del pro
eso.
Dise~nar un sistema de
ontrol robusto
on modelo interno para
ontrolar
la humedad del material en la banda transportadora. El uni
o parametro
in
ierto a
onsiderar es el tiempo muerto v=d. Asuma
omo valor nominal
Tn = 9 s y
omo tiempo muerto del pro
eso Tp = 11 s. Las espe
i
a
iones
de dise~no son: tiempo de estabiliza
ion menor que 40 s, error en estado
esta
ionario nulo y por
entaje de sobreimpulso menor al 5 %. Realizar el
al
ulo del
ontrolador para una entrada v es
alon. El sistema dise~nado debe
ser del tipo m = 1. La sele
ion del tiempo de muestreo es a
onvenien
ia
del dise~no. Asumir: `m (!) j`m(ei! )j y `a(!) j`a (!)j.
Solu
ion: El programa p10rob1.m detalla el pro
edimiento para dise~nar el
ontrolador robusto
uando la entrada v es un es
alon. La gura 7.15 (ar
hi-
vo p10rob1s.m) es el diagrama de bloques empleado en la simula
ion del sis-
tema dise~nado y requiere previamente que se eje
ute el programa p10rob1.m.
El resultado de la simula
ion se muestra en la gura 7.16 (obtenida
on el
ar
hivo p10rob1r.m). El sistema dise~nado
umple los requerimientos de es-
tabilidad y rendimiento robustos, tal
omo se apre
ia en la gura 7.16.
% p10rob1.m SOLUCION AL PROBLEMA 7.2
lear all
% FT (FUNCION DE TRANSFERENCIA) DEL PROCESO
% vr(s)/u(s) = K*exp(-d*s/v)/(s^2 + a*s + b): ESTRUCTURA DE LA FT
K=10; a=1.5; b=0.5;
% DESEAMOS ROBUSTEZ EN EL TIEMPO MUERTO CON RANGO:
Tn=9; Tp=11; % (n: NOMINAL, p: PROCESO)
numn=[0 0 K℄; denn=[1 a b℄;
% pn=K*exp(-Tn*s)/(s^2+a*s+b)
nump=[0 0 K℄; denp=[1 a b℄;
% p=K*exp(-Tp*s)/(s^2+a*s+b)
% MODELO NOMINAL DISCRETO pnz(z)
T = 0.5; % z = exp(T*s) => exp(Tn*s)=z^(Tn/T)=z^18
[numd,dend℄ =
2dm(numn,denn,T,'zoh');
% numd(z)/dend(z)=(b1*z+b2)/(z^2+a1*z+a2)
a1=dend(2); a2=dend(3);
b1=numd(2); b2=numd(3);
% numD(z)/denD(z)=pnz(z)=z^(-Tn/T)*numd(z)/dend(z)
% pnz(z) = z^(-Tn/T)*(b1*z+b2)/(z^2+a1*z+a2)
% = (b1*z+b2)/(z^20+a1*z^19+a2*z^18)
% PROCESO DISCRETO pz(z)
% T = 0.5; z = exp(T*s) => exp(Tp*s)=z^(Tp/T)=z^22
[numdp,dendp℄ =
2dm(nump,denp,T,'zoh');
% numdp(z)/dendp(z)=(bp1*z+bp2)/(z^2+ap1*z+ap2)
7.7 Problemas Resueltos 387
ap1=dendp(2); ap2=dendp(3);
bp1=numdp(2); bp2=numdp(3);
% numDp(z)/denDp(z)=pz(z)=z^(-Tp/T)*numdp(z)/dendp(z)
% pz(z) = z^(-Tp/T)*(bp1*z+bp2)/(z^2+ap1*z+ap2)
% = (bp1*z+bp2)/(z^24+a1*z^23+a2*z^22)
% DETERMINACION DE pnz(z)=pA(z)*pM(z):
% roots(numD): -0.1353
% COMO pnz NO POSEE CEROS FUERA DEL CIRCULO UNITARIO (CU) Y COMO
% z^N*pnz DEBE SER SEMIPROPIO, ENTONCES N=19; LUEGO pA=z^(-N) Y
% pM=pnz/pA=z^19*(b1*z+b2)/(z^20+a1*z^19+a2*z^18)
% DETERMINACION DE v(z)=vA(z)*vM(z)=z/(z-1) PARA UNA ENTRADA ESCALON:
% SE SABE POR EJERCICIOS ANTERIORES QUE vA=1; vM=z/(z-1)
% CALCULO DE qtilde_H=(pM(z))^(-1):
% SEGUN TABLA, qtilde_H=(z^20+a1*z^19+a2*z^18)/(b1*z^20+b2*z^19)
% CALCULO DE qtilde_:
% (b1*z^4+b2*z^3)=z^3*(b1*z+b2) => CANCELAR z=-b2/b1=-0.1353
% Y SUSTITUIRLO CON z=0; ESTO ES, k1=-0.1353, rho=1, Y
% qtilde_=z^(-rho)*(z-k1)/(1-k1)=z^(-1)*(z-k1)/(1-k1)
k1=-0.1353;
% CALCULO DE qtilde=qtilde_H*qtilde_*B(z) (PARA m=1):
% PARA QUE EL SISTEMA SEA DEL TIPO m=1, B(z)=1, ENTONCES:
% qtilde=qtilde_H*qtilde_=
% (z^20+a1*z^19+a2*z^18)*(z-k1)/(z*(b1*z^20+b2*z^19)*(1-k1))
% CALCULO DEL FILTRO CON m=1: f(z)=(1-alfa)*z/(z-alfa);
% CALCULO DE LA FUNCION DE PESO PARA m=1: W(w)>=G/(abs(1-pn*qtilde))
% CONDICIONES: W^(-1)(infty) MAYOR QUE 1, W(0)^(-1) MAYOR QUE 0
magf_dB(w+1) = 20*log10(abs(f));
% PARA ESTABILIDAD ROBUSTA: magf_dB(w+1) < mag_dB(w+1)
end
% GRAFICOS
ejew = linspa
e(0,pi/T,pi/T);
subplot(121)
semilogx(ejew,mag_dB(1:pi/T),ejew,magf_dB(1:pi/T),'--'); grid
ylabel('Magnitudes en dB')
title(' (a)')
xlabel('Fre
uen
ia angular (rad/s)')
subplot(122)
semilogx(ejew,M_dB(1:pi/T)); grid
ylabel('Magnitud de M en dB')
title(' (b)')
xlabel('Fre
uen
ia angular (rad/s)')
print -f -deps p10rob1f
print -s -deps p10rob1s
Problema 7.3
La gura 3.20 muestra un monorriel de dos
arros des
rito en el problema
3.5. El problema a resolver es el
ontrol de velo
idad del
arro de maquinas
mediante un sistema de
ontrol robusto empleando modelo interno. Para
garantizar a los pasajeros un viaje
onfortable, los
ambios de velo
idad
deben realizarse
on un tiempo de estabiliza
ion menor que 6 segundos y
7.7 Problemas Resueltos 389
(a) (b)
15 2
10
0
5
0 −2
Magnitud de M en dB
Magnitudes en dB
−5
−4
−10
−6
−15
−20 −8
−25
−10
−30
−35 0 1
−12 0 1
10 10 10 10
Frecuencia angular (rad/s) Frecuencia angular (rad/s)
+ (1−alfa)z u K
− Mux
z−alfa s2+as+b
S1 Tp Graph
Filtro Proceso p(s)
Referencia Mux
K y_p10rob
z20
+a1.z 19+a2.z 18. z−k1 s2+as+b
Salida y
b1.z 20
+b2.z 19 (1−k1)z Modelo nominal pn(s) Tn − + S2
Controlador q~H Controllador q~_ u_p10rob
Control u
Humedad
0.5
0
0 10 20 30 40 50 60 70 80 90 100
Tiempo en segundos
0.06
0.04
Flujo calorífico
0.02
−0.02
0 10 20 30 40 50 60 70 80 90 100
Tiempo en segundos
% pn=(bn1*s^5+bn2*s^4+bn3*s^3+bn4*s^2+bn5*s+bn6)/...
% (s^6+an1*s^5+an2*s^4+an3*s^3+an4*s^2+an5*s+an6);
% MODELO NOMINAL DISCRETO
T = 0.2; % PERIODO DE MUESTREO
[G,H,C,D℄=
2dm(A,B,C,D,T,'zoh');
[num,den℄=ss2tf(G,H,C,D);
a1 = den(2); a2 = den(3); a3 = den(4);
a4 = den(5); a5 = den(6); a6 = den(7);
b1 = num(2); b2 = num(3); b3 = num(4);
b4 = num(5); b5 = num(6); b6 = num(7);
% num/den=pnz=(b1*z^5+b2*z^4+b3*z^3+b4*z^2*b5*z+b6)/...
% (z^6+a1*z^5+a2*z^4+a3*z^3+a4*z^2+a5*z+a6);
% DETERMINAION DE bp(z)
% roots(den): pn(z) POSEE 1 POLO EN z=1 Y NINGUNO FUERA DEL
% CU (CIRCULO UNITARIO) => bp(z)=1
% CALCULO DE pnz(z)=pA(z)*pM(z):
% z^N*pnz DEBE SE SEMIPROPIO, ENTONCES N=1 Y pA=z^(-1); LUEGO:
% pM=pnz/pA=z*(b1*z^5+b2*z^4+b3*z^3+b4*z^2*b5*z+b6)/...
% (z^6+a1*z^5+a2*z^4+a3*z^3+a4*z^2+a5*z+a6);
% DETERMINACION DE bv(z)
% COMO v(z) NO POSEE POLOS FUERA DEL CU, ENTONCES bv(z)=1
% CALCULO DE qtilde_H=z*bp*(pM*bv*vM)^(-1){(z*bp*pA)^(-1)*vM}*:
% NOTAR QUE pnz(z) Y v(z) POSEEN 1 POLO EN z=1. COMO bp=bv=1,
% qtilde_H=pM^(-1)=(z^6+a1*z^5+a2*z^4+a3*z^3+a4*z^2+a5*z+a6)/...
% (z*(b1*z^5+b2*z^4+b3*z^3+b4*z^2*b5*z+b6));
% CALCULO DE qtilde=qtilde_H*qtilde_*B(z):
% EL MINIMO COMUN DENOMINADOR DE pnz Y v CON RAICES INESTABLES ES:
% (z-piz)=(z-1) => z=piz=1, m1=1 (MULTIPLICIDAD) y B(z)=b0=1;
7.7 Problemas Resueltos 393
% qtilde=qtilde_H*qtilde_=
% (z^6+a1*z^5+a2*z^4+a3*z^3+a4*z^2+a5*z+a6)*(z-k1)^2/...
% (z^3*(b1*z^5+b2*z^4+b3*z^3+b4*z^2*b5*z+b6)*(1-k1)^2);
% DETERMINACION DEL FILTRO: f(z)=(1-alfa)*z/(z-alfa);
(a) (b)
40 0
−1
30
−2
−3
20
Magnitud de M en dB
Magnitudes en dB
−4
10 −5
−6
0
−7
−8
−10
−9
−20 0 1 2
−10 0 1 2
10 10 10 10 10 10
Frecuencia angular (rad/s) Frecuencia angular (rad/s)
+ numc(z) u nump(s) y
Mux
r − denc(z) denp(s)
S1 Controlador c(z) Proceso Graph
p(s) Mux
u_p7rob1
y_p7rob1
Control u
. Salida y
15
Velocidad (m/s)
10
0
0 1 2 3 4 5 6 7 8 9 10
Tiempo en segundos
300
250
Fuerza (N)
200
150
100
50
0
0 1 2 3 4 5 6 7 8 9 10
Tiempo en segundos
Figura 7.19: Velo
idad del
arro de maquinas y fuerza de
ontrol para el
problema 7.3.
396 Control Robusto
Problema 7.4
La gura 3.22 muestra el pro
eso as
ensor tratado en el problema 3.6. Sin
embargo, para este problema
onsidere que el a
tuador posee la siguiente
fun
ion de transferen
ia:
x1 (s)
= Ka ; 0:008 Ka 0:012
v(s) s + 0:2
El problema a resolver es posi
ionar suavemente el as
ensor en un piso de-
terminado, lo que signi
a sobreimpulso nulo (para que no se pase de piso)
y tiempo de estabiliza
ion menor que 8 s. Para no saturar al a
tuador (un
ampli
ador de poten
ia), la se~nal de
ontrol debe estar dentro del rango
de 200 volt. Dise~nar un sistema de
ontrol robusto que
umpla las es-
pe
i
a
iones pedidas. Realizar el
al
ulo del
ontrolador para una entrada
v es
alon. El sistema dise~nado debe ser del tipo m = 1. La sele
ion del
tiempo de muestreo es a
onvenien
ia del dise~no. Asumir: `m(!) j`m (ei! )j
y `a(!) j`a (!)j.
Solu
ion: El programa p8rob1.m detalla el pro
edimiento para dise~nar
el
ontrolador robusto
uando la entrada v es un es
alon. La gura 7.21
(ar
hivo p8rob1s.m) es el diagrama de bloques empleado en la simula
ion
del sistema dise~nado y requiere pque reviamente se eje
ute el programa de
p8rob1.m. El resultado de la simula
ion se muestra en la gura 7.22 (obteni-
da
on el ar
hivo p8rob1r.m). El sistema dise~nado
umple los requerimientos
de estabilidad y rendimiento robustos, tal
omo se apre
ia en la gura 7.20.
% p8rob1.m SOLUCION AL PROBLEMA 7.4
lear all
% PROCESO
A
= [-0.2 0 0 0;1 0 0 0;2 0 -2 0;5 0 0 -5℄;
B
= [0.012;0;0;0℄;
C
= [0 1 0 0℄; D
= [0℄;
[nump,denp℄=ss2tf(A
,B
,C
,D
);
bp2=nump(3); bp3=nump(4); bp4=nump(5);
ap1=denp(2); ap2=denp(3); ap3=denp(4); ap4=denp(5);
% p=(bp2*s^2+bp3*s+bp4)/(s^4+ap1*s^3+ap2*s^2+ap3*s);
% PROCESO DISCRETO
T = 0.8; % TIEMPO DE MUESTREO
[G,H,C,D℄=
2dm(A
,B
,C
,D
,T,'zoh');
[numz,denz℄=ss2tf(G,H,C,D);
az1 = denz(2); az2 = denz(3); az3=denz(4); az4=denz(5);
bz1 = numz(2); bz2 = numz(3); bz3=numz(4); bz4=numz(5);
7.7 Problemas Resueltos 397
% numz/denz=pz=(bz1*z^3+bz2*z^2+bz3*z+bz4*z)/...
% (z^4+az1*z^3+az2*z^2+az3*z+az4);
% PROCESO NOMINAL
A
= [-0.2 0 0 0;1 0 0 0;2 0 -2 0;5 0 0 -5℄;
B
= [0.008;0;0;0℄;
C
= [0 1 0 0℄; D
= [0℄;
[numn,denn℄=ss2tf(A
,B
,C
,D
);
bn2=numn(3); bn3=numn(4); bn4=numn(5);
an1=denn(2); an2=denn(3); an3=denn(4);
% pn=(bn2*s^2+bn3*s+bn4)/(s^4+an1*s^3+an2*s^2+an3*s);
% MODELO NOMINAL DISCRETO
T = 0.8; % TIEMPO DE MUESTREO
[G,H,C,D℄=
2dm(A
,B
,C
,D
,T,'zoh');
[num,den℄=ss2tf(G,H,C,D);
a1 = den(2); a2 = den(3); a3=den(4); a4=den(5);
b1 = num(2); b2 = num(3); b3=num(4); b4=num(5);
% num/den=pnz=(b1*z^3+b2*z^2+b3*z+b4*z)/...
% (z^4+a1*z^3+a2*z^2+a3*z+a4);
% DETERMINAION DE bp(z)
% roots(den): pn(z) POSEE 1 POLO EN z=1 Y NINGUNO FUERA DEL
% CIRCULO UNITARIO => bp(z)=1
% CALCULO DE pnz(z)=pA(z)*pM(z):
% z^N*pnz DEBE SER SEMIPROPIO, ENTONCES N=1 Y pA=z^(-1); LUEGO:
% pM=pnz/pA=z*(b1*z^3+b2*z^2+b3*z+b4*z)/...
% (z^4+a1*z^3+a2*z^2+a3*z+a4);
% DETERMINACION DE v(z)=vA(z)*vM(z)=z/(z-1) PARA ENTRADA ESCALON:
% SE SABE POR EJEMPLOS ANTERIORES QUE vA=1 Y vM=z/(z-1)
% DETERMINACION DE bV(z):
% COMO v(z) NO POSEE POLOS FUERA DEL CU, bv(z)=1
% CALCULO DE qtilde_H=z*bp*(pM*bv*vM)^(-1){(z*bp*pA)^(-1)*vM}*
% NOTAR QUE pnz(z) Y v(z) POSEEN 1 POLO EN z=1. COMO bp=bv=1:
% qtilde_H=pM^(-1)=(z^4+a1*z^3+a2*z^2+a3*z+a4)/...
% z*(b1*z^3+b2*z^2+b3*z+b4);
% CALCULO DE qtilde_= z^(-r)*((z-k1)/(1-k1)* ... *(z-kr)/(1-kr))
rr=roots([b1 b2 b3 b4℄); k1=rr(1);
% r=1 POLOS DE qtilde_H CON PARTE REAL NEGATIVA;
% => qtilde_=z^(-1)*(z-k1)/(1-k1)=(z-k1)/(z*(1-k1))
% CALCULO DE qtilde=qtilde_H*qtilde_*B(z)
% EL MINIMO COMUN DENOMINADOR DE pnz Y v CON RAICES INESTABLES
% ES: (z-piz)=(z-1) => z=piz=1, MULTIPLICIDAD m1=1 Y B(z)=b0=1;
% qtilde=qtilde_H*qtilde_=
% (z^4+a1*z^3+a2*z^2+a3*z+a4)*(z-k1)/...
398 Control Robusto
% (z^2*(1-k1)*(b1*z^3+b2*z^2+b3*z+b4*z));
% DETERMINACION DEL FILTRO: f(z)=(1-alfa)*z/(z-alfa);
% CALCULO DE LA FUNCION DE PESO PARA m=1: W(w)>=G/(abs(1-pn*qtilde))
% CONDICIONES: w^(-1)(infty) MAYOR QUE 1, W(0)^(-1) MAYOR QUE 0
%
% CHEQUEANDO ESTABILIDAD ROBUSTA
alfa = 0.7;
for w = 0:pi/T
s=i*w; z=exp(s);
pnz=(b1*z^3+b2*z^2+b3*z+b4)/(z^4+a1*z^3+a2*z^2+a3*z+a4);
pz=(bz1*z^3+bz2*z^2+bz3*z+bz4)/(z^4+az1*z^3+az2*z^2+az3*z+az4);
laz = pz - pnz;
lmz = laz/pnz;
qtilde=(z^4+a1*z^3+a2*z^2+a3*z+a4)*(z-k1)/...
(z^2*(1-k1)*(b1*z^3+b2*z^2+b3*z+b4));
mag_dB(w+1) = -20*log10(abs(pnz*qtilde*lmz));
f = (1-alfa)*z/(z-alfa);
magf_dB(w+1) = 20*log10(abs(f));
% para estabilidad robusta: magf_dB(w+1) < mag_dB(w+1)
end
% CHEQUEANDO RENDIMIENTO ROBUSTO
for w = 0:pi/T
s=i*w; z=exp(s);
pn=(bn2*s^2+bn3*s+bn4)/(s^4+an1*s^3+an2*s^2+an3*s);
p=(bp2*s^2+bp3*s+bp4)/(s^4+ap1*s^3+ap2*s^2+ap3*s);
la = p - pn;
lm = la/pn;
qtilde=(z^4+a1*z^3+a2*z^2+a3*z+a4)*(z-k1)/...
(z^2*(1-k1)*(b1*z^3+b2*z^2+b3*z+b4));
f = (1-alfa)*z/(z-alfa);
q = qtilde*f;
G = 0.75; W = G/abs(1-pn*qtilde);
% PARA RENDIMIENTO ROBUSTO: M_dB < 1
M_dB(w+1) = 20*log10(abs(q*la) + abs((1-pn*q)*W));
end
% CALCULO DEL CONTROLADOR
=q/(1-pnz*q)
% NOTAR QUE q*pnz=(z-k1)*(1-alfa)/(z*(1-k1)*(z-alfa))
num1=(1-alfa)*[1 -k1℄;
den1=[(1-k1) -((1-k1)*alfa+(1-alfa)) (1-alfa)*k1℄;
% num
=
onv(den,num1); den
=
onv(num,den1);
[num
,den
℄=series(den,num,num1,den1);
% GRAFICOS
ejew = linspa
e(0,pi/T,pi/T);
7.8 Problemas Propuestos 399
subplot(121)
semilogx(ejew,mag_dB(1:pi/T),ejew,magf_dB(1:pi/T),'--'); grid
ylabel('Magnitudes en dB'); title(' (a)')
xlabel('Fre
uen
ia angular (rad/s)')
subplot(122)
semilogx(ejew,M_dB(1:pi/T)); grid
ylabel('Magnitud de M en dB'); title(' (b)')
xlabel('Fre
uen
ia angular (rad/s)')
print -f -deps p8rob1f
print -s -deps p8rob1s
(a) (b)
15 0.5
0
10
−0.5
−1
5
Magnitud de M en dB
Magnitudes en dB
−1.5
0 −2
−2.5
−5
−3
−3.5
−10
−4
−15 0 1
−4.5 0 1
10 10 10 10
Frecuencia angular (rad/s) Frecuencia angular (rad/s)
+ numc(z) u nump(s) y
Mux
r − denc(z) denp(s)
S1 Controlador c(z) Proceso Graph
p(s) Mux
u_p8rob1 y_p8rob1
. Control u Salida y
2
1.5
1
0.5
0
0 1 2 3 4 5 6 7 8 9 10
Tiempo en segundos
200
150
Voltaje de control
100
50
−50
0 1 2 3 4 5 6 7 8 9 10
Tiempo en segundos
Figura 7.22: Posi ion del as ensor y fuerza de ontrol (problema 7.4).
Problema 7.6
La gura 2.2 muestra dos tanques identi
os
olo
ados en
as
ada. La se
ion
horizontal A=9 m2 de
ada tanque es
onstante. El objetivo de
ontrol es
ontrolar la altura H2 empleando el
ujo Qo. La dedu
ion del modelo
linealizado del pro
eso se des
ribe en el ejemplo 2.1. Las espe
i
a
iones de
dise~no son: tiempo de estabiliza
ion menor que 15 s, sobreimpulso menor al
5 % y error nulo en estado estable. El
ujo de entrada (la se~nal de
ontrol)
no debe sobrepasar los 3 m3/s. Dise~nar un
ontrolador robusto
on modelo
interno que logre
umplir los requerimientos anteriores. Realizar el
al
ulo
del
ontrolador para una entrada v es
alon. El sistema dise~nado debe ser
del tipo m = 1. La sele
ion del tiempo de muestreo es a
onvenien
ia del
dise~no.
Problema 7.7
El pro
eso ele
trome
ani
o mostrado en la gura 3.26 se des
ribe en el pro-
blema 3.8. Dise~nar un sistema de
ontrol robusto
on modelo interno para
ontrolar la velo
idad angular del eje del motor mediante el voltaje de en-
trada que puede variar entre 100 volt. Realizar el
al
ulo del
ontrolador
para una entrada v es
alon. El sistema dise~nado debe ser del tipo m=1 y la
sele
ion del tiempo de muestreo es a
onvenien
ia del dise~no. La salida
on-
trolada no debe presentar sobreimpulso ni error esta
ionario. El parametro
in
ierto es la iner
ia J de la
arga que puede variar en 12 %.
Problema 7.8
El problema 3.3 des
ribe el pro
eso de la bola rodando a lo largo de una barra
on un grado de libertad, tal
omo se muestra en la gura 3.16. Una leva
one
ta la barra
on un engranaje que esta a
ionado por un servomotor.
Dise~nar un sistema de
ontrol robusto que pueda posi
ionar la bola a 0.5 m
de un extremo de la barra de 1 m de longitud. Evidentemente, la os
ila
ion
de la bola debe estar restringida sobre la barra. El voltaje de
ontrol no debe
sobrepasar los 40 voltios y la masa de la bola puede variar en 15 %.
Realizar el
al
ulo del
ontrolador para una entrada v es
alon. El sistema
dise~nado debe ser del tipo m = 1 y la sele
ion del tiempo de muestreo es a
onvenien
ia del dise~no.
402 Control Robusto
Problema 7.9
Las e
ua
iones del modelo linealizado para
ontrolar la posi
ion del
a~non
montado en la torreta de un tanque (ver gura 3.28) empleando un a
tuador
hidrauli
o se detallan en el problema 3.9.
(a) Dise~nar un sistema de
ontrol robusto
on modelo interno para
ontro-
lar el angulo de eleva
ion
on las espe
i
a
iones siguientes: tiem-
po de estabiliza
ion menor que 8 s, mnimo sobreimpulso y error en
estado esta
ionario nulo. Los disturbios tipo es
alon pueden a
tuar
simultaneamente o no y pueden ser positivos o negativos. Para
ada
aso, el sistema de
ontrol dise~nado debe ser
apaz de minimizar sus
efe
tos. Realizar el
al
ulo del
ontrolador para una entrada v es
alon.
El sistema dise~nado debe ser del tipo m = 1 y la sele
ion del tiempo
de muestreo es a
onvenien
ia del dise~no. Considerar que todos los
parametros poseen in
ertidumbre de 5 %.
(b) Lo mismo que (a), pero en este
aso para
ontrolar el angulo azimutal.
Problema 7.10
La gura 3.31 muestra el pro
eso servomotor
on
arga no lineal des
rito
en la se
ion 3.3, en donde la
arga no lineal posee ahora dos grados de
libertad
on Lo = 2L1 =3. La union de la
arga
on el eje del servomotor
no es
exible. Las e
ua
iones que des
riben la dinami
a del sistema fueron
requeridas en el problema 3.12. Dise~nar un sistema de
ontrol robusto
on
modelo interno para
ontrolar simultaneamente las posi
iones y
on
mnimo tiempo de estabiliza
ion y mnimo sobreimpulso. Considerar (a
su
riterio) varia
iones en la
arga adi
ional Mo . Realizar el
al
ulo del
ontrolador para una entrada v es
alon. El sistema dise~nado debe ser del
tipo m = 1 y la sele
ion del tiempo de muestreo es a
onvenien
ia del
dise~no. Considerar dos
asos: (a)
uando la indu
tan
ia de armadura es
despre
iable, y (b)
uando no lo es.
Problema 7.11
La gura 3.32 muestra el pro
eso pendulo doble no lineal que es una exten-
sion del pendulo simple des
rito en la se
ion 3.1. El a
oplamiento entre
los dos pendulos de igual longitud no es
exible. Las e
ua
iones que des-
riben la dinami
a del sistema son materia del problema propuesto 3.13.
7.8 Problemas Propuestos 403
Problema 7.14
El motor D.C. es un a
tuador muy popular en los sistemas de
ontrol porque
su movimiento rotatorio, mediante a
oples ade
uados a su eje, puede
on-
vertirse fa
ilmente en movimiento de trasla
ion. Eso se apre
ia en fajas
transportadoras o en brazos manipuladores. La gura 4.3 muestra el
ir-
uito de armadura del motor y el diagrama de
uerpo libre de su rotor.
Las e
ua
iones que gobiernan el
omportamiento dinami
o del motor fueron
derivadas en el ejemplo 4.1.
(a) Dise~nar un sistema de
ontrol robusto
on modelo interno para esta-
bilizar la velo
idad angular del eje del motor
on las espe
i
a
iones
siguientes: tiempo de estabiliza
ion menor que 4 s, error en estado es-
table menor al 1 % y sobreimpulso de la salida menor al 5 %. Considere
varia
iones de 7 % en los parametros b y J . Realizar el
al
ulo del
ontrolador para una entrada v es
alon. El sistema dise~nado debe ser
del tipo m = 1 y la sele
ion del tiempo de muestreo es a
onvenien
ia
del dise~no.
(b) Dise~nar un sistema de
ontrol robusto
on las espe
i
a
iones anterio-
res, pero en este
aso para estabilizar la posi
ion del eje del motor.
Problema 7.15
Repetir los problemas 7.1 al 7.14
uando la entrada v toma las formas:
v(s) =
1 ; v(z) = z= ; = 100T
s + 1 z e T==tau
donde T es el tiempo de muestreo.
Problema 7.16
Repetir los problemas 7.1 al 7.14
uando la entrada v toma las formas:
1
v(s) = 2 ; v(z ) =
Tz
s (z 1)2
y el tipo del sistema es m=2. Tomar
omo se~nal de referen
ia una rampa
de pendiente unitaria.
Cap
tulo 8
Control No Lineal
Ejemplo 8.1
Determinar las dos primeras derivadas de Lie de la salida y para el pro
eso
siguiente:
x_ = f (x); y = h(x)
Solu
ion: Las derivadas de la salida son:
h
y_ = x_ = Lx_ h = Lf h
x
[Lf h℄
y = x_ = L2f h
x
Deni
ion 8.2 Sean f y g dos
ampos ve
toriales en Rn. El
or
hete de
Lie de f y g se dene
omo un ter
er
ampo ve
torial de la forma:
[f; g℄ = rg f rf g = adf g
Observar que al
or
hete de Lie se le denota tambien
omo adf g, donde
ad signi
a adjunta. Su
esivos
or
hetes de Lie se pueden denir re
ursiva-
mente:
adf 0 g = g
adf g = [f; adf 1 g℄; i = 1; 2; : : :
i i
Ejemplo 8.2
Determinar [f; g℄ para el pro
eso no lineal x_ = f (x) + gu, donde:
f= 2 x 1 + ax 2 + senx1 ; g =
os(2x1 ) 0
x2
osx1
Solu
ion:
[f; g℄ = 0 0 2 x 1 + ax 2 + senx 1
2sin(2x1 ) 0
x2
osx1
2 +
osx1 a 0
x2 sinx1
osx1
os(2x1 )
a
os (2 x 1 )
=
osx1
os(2x1 ) 2sen(2x1 )( 2x1 + ax2 + senx1)
408 Control No Lineal
Lad g h = Lf Lg h Lg Lf h
f
Ejemplo 8.3
Determinar el difeomorsmo lo
al alrededor del origen para el sistema si-
guiente:
z1 = (x) = 2x1 + 5x1 x22
z2 3senx2
8.1 Herramientas Matemati
as 409
Ya vimos que la nota
ion [f; g℄ es
ono
ida
omo el
or
hete de Lie. Par-
tiendo de la deni
ion anterior se puede dedu
ir que:
1. Los
ampos ve
toriales
onstantes, es de
ir, si fk y gk son
onstantes
para
ualquier k = 1; : : : ; m, son siempre involutivos puesto que:
m
X
[f; g℄(x) = 0 = ijk (x)fk (x); 8 x; i; j
k=1
2. Un
onjunto
ompuesto por un solo
ampo ve
torial f es involutivo
porque [f; f ℄ = 0.
3. Si un
onjunto de
ampos ve
toriales [f1; : : : ; fm ℄ es involutivo, impli
a
que para todo i; j :
rango [f1 (x); : : : ; fm (x)℄ = rango [f1 (x); : : : ; fm (x); [fi ; fj ℄℄
Ahora s podemos formular el teorema de Frobenius:
Teorema 8.1 (Frobenius) Sea [f1 ; f2 ; : : : ; fm ℄ un
onjunto de
ampos ve
-
toriales linealmente independientes. Se di
e que tal
onjunto es integrable si
y solo si es involutivo.
Ejemplo 8.4
Considere el
onjunto de e
ua
iones diferen
iales par
iales:
h h
4x3 x =0
1 x2
h h h
x1 + (x23 3x2 ) x
x1 2
+ 2x3
x3
=0
donde sus
ampos ve
toriales aso
iados poseen la forma:
f1 = [4x3 1 0℄T ; f2 = [ x1 (x23 3x2 ) 2x3 ℄T
Determine si tal
onjunto de e
ua
iones diferen
iales par
iales es solu
ionable
(o en otras palabras, si [f1 ; f2℄ es
ompletamente integrable).
Solu
ion: Operando, en
ontramos que:
[f1 ; f2℄ = [ 12x3 3 0℄T
Dado que [f1 ; f2℄ = 3f1 + 0f2 , este
onjunto de
ampos ve
toriales es in-
volutivo. Por
onsiguiente, las e
ua
iones diferen
iales par
iales dadas son
solu
ionables.
412 Control No Lineal
Deni
ion 8.6 El grado relativo del pro
eso univariable no lineal dado en
la e
ua
ion (8.10), es el numero de ve
es r que hay que derivar la salida
hasta obtener:
Lg Lif h(x) = 0; i = 1; 2; : : : ; r 2 (8.11)
Lg Lrf 1 h(x) 6= 0 (8.12)
para todo x que pertenez
a a una region
de Rn.
8.3 Forma Normal de Pro
esos No lineales 413
y = z1 (8.14)
414 Control No Lineal
4 0 0 0 ::: 1 5 4 0 5
0 0 0 ::: 0 1
Observar que la nueva entrada del pro
eso lineal es v. La gura 8.1 mues-
tra el pro
eso de linealiza
ion des
rito hasta ahora. El pro
eso lineal de la
e
ua
ion (8.19) es
ompletamente
ontrolable y
ompletamente observable,
416 Control No Lineal
s
v
-
6
- +
6
u
- x_ = f (x) + g(x)u
z
x
b(z) z = (x)
a(z)
1
a(z) ?- C
y
-
9) Implementar el hardware.
10) Implementar el software de
ontrol.
11) Realizar pruebas de fun
ionamiento (resultados experimentales).
fri
ion estati
a y fri
ion de Coulomb, enton
es el pro
eso no lineal puede
ser des
rito mediante la siguiente representa
ion en el espa
io de estado:
x_ = f (x) + g(x)Ka
t u; y = h(x) (8.37)
donde:
2 3
x2
f (x) = 4 ( M )senx1 M x2 M1 TN + nK
N B
M x3
5
nE x R x + Ka
t u
2
L 2 L 3 L
03
g(x) = 4 0 5; h(x) = x1 (8.38)
1
L
Los elementos del ve
tor de estado [x1 x2 x3℄T son la posi
ion angular, la
velo
idad angular y la
orriente de armadura, respe
tivamente, y Ka
t u es la
tension de armadura. Notar que el modelo del pro
eso no lineal es
ontinuo
y diferen
iable.
El termino no lineal TN debido a las fri
iones estati
a y de Coulomb,
puede no
onsiderarse, dado que sus efe
tos van a ser
ompensados por
software
uando el sistema de
ontrol no lineal se implemente en tiempo
real.
Modelo No Lineal de Segundo Orden (L = 0)
El modelo no lineal de segundo orden del pro
eso es (subse
ion 3.3):
x2
x_ = BR+n2 KE x TN N + nKMRK u = f (x) + g(x)u
2 M senx1
a
t
MR M
y = h(x) = x1 (8.39)
donde:
f (x) =
x2
; g(x) =
0
BR+n2 KE x TN N nKa
t K
MR 2 M M senx1 MR
[g adf g ad2f g℄ = 4 0 nK
ML
nKB nKR 5
M22 L ML2
1 R n KE R2
+
L L2 ML 2 L3
Dado que:
n2 K 2
det[g adf g ad2f g℄ =
M 3 L3
enton
es tal
onjunto esta
onformado por
ampos ve
toriales linealmente
independientes. Por otra parte, el
onjunto:
[g adf g℄
es involutivo porque es
onstante.
Linealiza
ion Exa
ta del Modelo Lineal de Segundo Orden
Como en el
aso anterior, para apli
ar las
ondi
iones de linealiza
ion es-
table
idas en el teorema 8.2, debemos
al
ular:
adf g = [f; g℄ = rg f rf g
Es fa
il demostrar que:
nKa
t K 2
det[g adf g℄ =
MR
lo que signi
a que tal
onjunto esta
onformado por
ampos ve
toriales
linealmente independientes.
Por otra parte, el
onjunto [g adf g℄ es involutivo porque es
onstante.
8.7.5 La Forma Normal
Forma Normal del Modelo No Lineal de Ter
er Orden
La forma normal del pro
eso en estudio puede ser obtenida mediante la
transforma
ion no lineal z = (x) del estado x,
omo sigue:
2 3 2 3 2 3
z1 h(x) x1
z = 4 z2 5 = (x) = 4 Lf h(x) 5 = 4 x2 5
z3 2
Lf h(x) N B nK
M sinx1 M x2 M x3
(8.46)
426 Control No Lineal
Notar en la ultima e
ua
ion que el nuevo estado z posee signi
ado fsi
o,
puesto que z1 es la posi
ion del eje del servomotor, z2 es su velo
idad angular
y z3 su a
elera
ion. El estado original x expresado en fun
ion del nuevo
estado z esta dado por:
2 3 2 3
x1 z1
x=4 x2 5 = 1 (z) = 4 z2 5
x3 N+
nK senz1 + B
nK z2
M
nK z3
De a
uerdo a la subse
ion 8.3, las nuevas
oordenadas resultan:
z_1 = z2
z_2 = z3
z_3 = L3f h( 1 (z)) + Lg L2f h( 1 (z)) (8.47)
(8.48)
donde:
L3f h(x) = r(L3f h(x)) f (x)
N B N B nK nK nE R
= M
osx1 x2
M M
senx1
M
x2 +
M
x3 +
M
x
L 2
x
L 3
nK K
Lg L2f h(x) = a
t
ML
Luego, la forma normal del pro
eso resulta:
z_1 = z2
z_2 = z3 2
N NR n KE BR B
z_3 =
M
osz1 z2
ML
senz1
ML
+ ML z2 M
+ RL z3
+ nKML
a
t K
u
y = z1 (8.49)
Forma Normal del Modelo No Lineal de Segundo Orden
El modelo no lineal de segundo orden del pro
eso, sin
onsiderar el termino
no lineal TN es (ver e
ua
ion 8.39):
h i
x_ = x2 BR+MR n2 KE x
2 MN senx + nK K u = f (x) + g(x)u
1 MR
a
t
y = h(x) = x1 (8.50)
que de he
ho ya se en
uentra en su forma normal.
8.7 Control No Lineal de un Servosistema 427
v Realimentacion Proceso y
no lineal no
u = u(z,v) lineal
z x
z = φ (x )
v 1 y
Proceso lineal s3
equivalente
Figura 8.2: Linealiza ion del pro eso no lineal y su pro eso lineal equivalente.
donde: 2 3
y
K = K1 K2 ; z=4 y_ 5
y
Finalmente, la se~nal de
ontrol u puede obtenerse reemplazando (8.59) en
(8.57), lo que resulta en:
MR d2 r
u =
nKa
t K dt2
+ K1 dr
dt
+ K2r Kx
BR + n2 KE N
+ MR
x2 + senx1
M
(8.60)
8.7.7 Dise~no del Observador No Lineal de Estados
Observador No Lineal para el Modelo de Ter
er Orden
Dado el modelo no lineal del pro
eso de ter
er orden:
x_ = f (x) + g(x)u; y = h(x)
su
orrespondiente matriz de observabilidad puede obtenerse apli
ando la
e
ua
ion (8.25)
omo sigue:
2 3 2 3
4 h ( x) x 1
O(x) = L h(x) 5 = 4 x2 5
x Lx2 h(x) x N senx B x + nK x
x M 1 M 2 M 3
2 3
1 0 0
= 4 0 1 0 5 (8.61)
N B nK
M senx1 M M
Claramente vemos que:
nK
det[O(x)℄ = 6= 0
M
lo que signi
a que O(x) posee inversa. Esta inversa es:
2 3
1 0 0
O 1 (x) = 4 0 1 0 5
N B M
nK
osx1 nK nK
Por
onsiguiente, la e
ua
ion del observador es:
d^x
dt
= f (x^) + g(x^)u + O 1L[y(t) h(x^)℄
y^ = h(x^) (8.62)
8.7 Control No Lineal de un Servosistema 431
z z z
z = φ (x)
disnl1_u disnl1_x
u x
Mux
Referencia
r Conversión disnl1_r
de x a z referencia r
1.5
Posición (radianes)
1
0.5
−0.5
−1
0 2 4 6 8 10 12 14 16 18 20
Tiempo en segundos
1.5
Señal de control (voltios)
0.5
0
−0.5
−1
−1.5
0 2 4 6 8 10 12 14 16 18 20
Tiempo en segundos
Figura 8.5: Resultado de la simula
ion del sistema de
ontrol no lineal em-
pleando un modelo no lineal de ter
er orden.
z z
z = φ (x) Observador
no lineal
z
de donde resulta:
p p
K1 = 40 + 20 2; K2 = 300 + 800 2; K3 = 12000
La gura 8.7 (ar
hivo disnl2.m) muestra el diagrama SIMULINK para la
simula
ion. En el ambiente de trabajo de MATLAB,
ada susbsistema de la
gura 8.7 puede ser visualizado a voluntad. Los resultados de la simula
ion
8.7 Control No Lineal de un Servosistema 435
gráfico
Señal u Proceso Mux
Señal v no lineal
disnl2_x1
x1
Referencia disnl2_r
r Conversión Observador r
de x a z no lineal
Figura 8.7: Simula
ion del sistema de
ontrol no lineal de ter
er orden
on
observador.
Posición (radianes)
0.5
−0.5
−1
0 2 4 6 8 10 12 14 16 18 20
Tiempo en segundos
3
Señal de control (voltios)
−1
0 2 4 6 8 10 12 14 16 18 20
Tiempo en segundos
Posición (radianes)
1
−1
−2
0 5 10 15 20 25 30 35 40 45 50
Tiempo en segundos
0.4
Señal de control (voltios)
0.2
−0.2
−0.4
0 5 10 15 20 25 30 35 40 45 50
Tiempo en segundos
Figura 8.9: Resultado de la simula
ion del sistema de
ontrol no lineal em-
pleando un modelo no lineal de segundo orden.
N = g*Lo*(Mo + m/2);
/* Ini
ializa
ion de variables */
yp =0.; x2p = 0.;
rp =0.; rpp = 0.; rppp = 0.;
drp =0.; drpp = 0.; drppp = 0.;
up =0.;
200
100
−100
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5
Tiempo en segundos
1.5
Señal de control (voltios)
0.5
−0.5
−1
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5
Tiempo en segundos
Si las ra
es del sistema realimentado son s1;2 = 8 8i, enton
es:
(s + 8 + 8i)(s + 8 8i) = s2 + 16s + 128; K1 = 16; K2 = 128
La se~nal V viene a ser:
V = r + K1 r_ + K2 r K1 X1 K2 X2 ; Y = X1 =
La ley de
ontrol toma la forma siguiente:
u = BX2 + MLgsenX1 + ML2 (r + K1 r_ + K2 r) ML2 (K2 X1 + K2 X2 )
El programa p8 1.m simula el sistema de
ontrol no lineal y los resultados
se muestran en la gura 8.11.
% p8_1.m SOLUCION DEL PROBLEMA 8.1 (PENDULO NO LINEAL)
lear all
% PARAMETROS DEL PROCESO
Bp=1.3366; Lo=1.6350; Mo=0.5; g=9.81;
% POLOS DEL SISTEMA REALIMENTADO LINEALIZADO: -5 y -5
pol =
onv([1 8+8i℄,[1 8-8i℄); % POLINOMIO CARACTERISTICO
K1 = pol(2); K2 = pol(3);
% CONDICIONES INICIALES:
r(1) =0; r(2)=0; r(3)=0; r(4)=0;
dr(1) =0; dr(2)=0; dr(3)=0; dr(4)=0;
ddr(1)=0; ddr(2)=0; ddr(3)=0; ddr(4)=0;
X1(1) =0; X1(2)=0; X1(3)=0; X1(4)=0;
X2(1) =0; X2(2)=0; X2(3)=0; X2(4)=0;
MM=1000; T = 0.01;
% LAZO DE CONTROL
for k=4:MM
r(k) = 2*sin(0.8*k*T); % traye
toria de referen
ia
% APROXIMACION DE LAS DERIVADAS
dr(k) = (r(k) + 3*r(k-1) - 3*r(k-2) - r(k-3))/(6*T);
ddr(k) = (dr(k) + 3*dr(k-1) - 3*dr(k-2) - dr(k-3))/(6*T);
U(k) = Bp*X2(k)+Mo*Lo*g*sin(X1(k))+Mo*Lo^2*(ddr(k)+K1*dr(k)...
+K2*r(k)-K2*X1(k)-K1*X2(k));
% PROCESO NO LINEAL DE ORDEN 2 DICRETIZADO
X1(k+1) = X1(k) + T*X2(k);
X2(k+1) = X2(k) + T*(-(Bp/Mo*Lo^2)*X2(k)-(g/Lo)*sin(X1(k))...
+(1/Mo*Lo^2)*U(k));
end % fin del lazo de
ontrol
% GRAFICOS
ejex = linspa
e(0,MM*T,MM-3);
8.8 Problemas Resueltos 447
subplot(2,1,1)
plot(ejex,r(4:MM),ejex,X1(4:MM)); grid
ylabel('Posi
ion (radianes)')
xlabel('Tiempo en segundos')
subplot(2,1,2)
plot(ejex,U(4:MM)); grid
ylabel('Se~nal de
ontrol (N)')
xlabel('Tiempo en segundos')
print -f -deps p8_1 % CREA EL ARCHIVO p8_1.eps
4
Posición (radianes)
−2
−4
0 1 2 3 4 5 6 7 8 9 10
Tiempo en segundos
400
Señal de control (N)
200
−200
−400
−600
0 1 2 3 4 5 6 7 8 9 10
Tiempo en segundos
Figura 8.11: Traye
toria de posi
ion del pendulo (problema de seguimiento)
y se~nal de
ontrol
orrespondiente al problema 8.1
Problema 8.2
La gura 2.2 muestra dos tanques identi
os
olo
ados en
as
ada. La se
ion
horizontal A=9 m2 de
ada tanque es
onstante. El objetivo de
ontrol es
ontrolar la altura H2 empleando el
ujo Qo
omo se~nal de
ontrol. Dise~nar
el sistema de
ontrol no lineal empleando el metodo de linealiza
ion por
realimenta
ion. El
ujo de
ontrol no debe sobrepasar los 5 m3=s y el tiempo
de estabiliza
ion de la salida debe ser menor que 20 s
on error en estado
estable pra
ti
amente nulo. Sele
ionar apropiados tiempo de muestreo y
eigenvalores del sistema realimentado.
448 Control No Lineal
Solu
ion: En el ejemplo 2.1 se derivo el modelo no lineal del pro
eso
on
=0.4 (una
onstante que depende de la geometra del ori
io), =1.23
(la densidad del lquido) y g=9.81 m/s2 (la a
elera
ion de la gravedad),
resultando:
H_ = f + gU ; = h(H) = H2;
Y U = Qo
donde: f = [f1 f2℄T , g = [g1 g2 ℄T , siendo:
pg p
pg p p 1;
f1 = H1 ; f2 = [ H1 H2 ℄; g1 = g2 = 0
A A A
Operando
on
=
pg=A obtenemos:
h(H) = H2 ; Lf h(H) = r(H)f = f2
Lg Lf h(H) = r(f2 ) g = p 6= 0
2A H1
Luego, el sistema es
ompletamente linealizable dado que su grado relativo
es dos. Seguimos operando:
p
2
L2 h(H) = r(Lf h(H)) f = rf2 f
f = 2 pHH1 2
2
2 p
Lg L2f h(H) = r(L2f h(H)) g = 4A H1 H2
1
El nuevo
onjunto de variables de estado resulta:
p p
z1 = 1 (H) = h(H) = H2 ; z2 = 2 (H) = Lf h(H) =
H1
H2
Los estados originales en fun
ion de los nuevos estados vienen a ser:
z p
H2 = 1 1 (z) = z1 ; H1 = 2 1 (z) = ( 2 + z1 )2
y la e
ua
ion de estado del nuevo sistema resulta:
z_1 = z2
z_2 = L2f h( 1 (z)) + Lg L2f h( 1 (z)) = b( 1 (z)) + a( 1 (z))U
donde:
1
2
z2
2
b( (z)) = p 1 ; a( 1 (z)) = p
2 z 1 4A z (z =
+ pz )
1 2 1
8.8 Problemas Resueltos 449
Problema 8.3
Determinar si es posible una linealiza
ion exa
ta de los pro
esos pendulo
invertido no lineal y grua-puente des
ritos en las se
iones 3.1 y 3.2 respe
-
tivamente. Se sabe que la salida es la posi
ion x3.
Solu
ion: La e
ua
ion de estado que des
ribe al pendulo no lineal es:
2 3
2
x_ 1
3 x2
6 M2 (sin x1 )(
os x1 )x22 Bx (
os x1 )x4 (M1 +J2 )g(sin x1 )+Kx (
os x1 )KA u 7
6
6 x_ 2 7
7 =
6
6 (M2 (
os2 x1 ) (M1 +J2 )J1 )=M2 7
7
4 x_ 3 5 6
4 x4 7
5
x_ 4 M22 g(sin x1 )(
os x1 ) J1 M2 (sin x1 )x22 +J1 Bx x4 J1 Kx KA u
M22 (
os2 x1 ) (M1 +J2 )J1
3.5
Nivel (m)
2.5
2
0 5 10 15 20 25 30 35 40 45 50
Tiempo en segundos
5
Flujo de control (m^3/s)
−5
0 5 10 15 20 25 30 35 40 45 50
Tiempo en segundos
sistema de
ontrol no lineal que emplee el metodo de linealiza
ion por re-
alimenta
ion para
ontrolar la posi
ion angular de la
arga no lineal. Las
espe
i
a
iones de dise~no son: error en estado esta
ionario nulo y tiempo de
estable
imiento menor que 1 s para una se~nal de referen
ia arbitraria. Sele
-
ionar el tiempo de muestreo y los eigenvalores apropiados del sistema lineal
equivalente realimentado. Considere dos
asos: (a)
uando la indu
tan
ia
de armadura es despre
iable, y (b)
uando no lo es
Problema 8.5
Demostrar las propiedades de bilinealidad, anti
onmutatividad y de Ja
obi
estable
idas en el lema 8.1 y luego demostrar el teorema 8.2.
Problema 8.6
La gura 3.31 muestra el pro
eso servomotor
on
arga no lineal des
rito
en la se
ion 3.3, en donde la
arga no lineal posee ahora dos grados de
libertad
on Lo = 2L1=3 y Mo=0.02 kg. La union de la
arga
on el eje
del servomotor no es
exible. Las e
ua
iones que des
riben la dinami
a del
sistema son materia del problema 3.12. Determinar si el pro
eso des
rito
es
ompletamente linealizable. Si lo es, dise~nar un sistema de
ontrol no
lineal
on linealiza
ion de la realimenta
ion para
ontrolar simultaneamente
las posi
iones y
on mnimo tiempo de estabiliza
ion y mnimo sobreim-
pulso. Considerar dos
asos: (a)
uando la indu
tan
ia de armadura es
despre
iable, y (b)
uando no lo es.
Bibliograf
a
[7℄ R. De Keyser, \A Gentle Introdu
tion to Model Based Predi
tive Con-
trol". In PADI2 International Conferen
e on Control Engineering and
Signal Pro
essing, Piura, Peru, 1998.
[8℄ Eduardo F. Cama
ho y Carlos Bordons, Model Predi
tive Control.
Springer-Verlag London Limited 1999.
454 BIBLIOGRAFIA
[9℄ Manfred Morari y Evanghelos Zariou, Robust Pro
ess Control. PTR
Prenti
e Hall, Englewood Clis, New Jersey 07632, 1989.
[10℄ R. Canales Ruiz y R. Barrera Rivera, Analisis de Sistemas Dinami
os
y Control Automati
o. Editorial Limusa, Mexi
o, 1977.
[11℄ A. Rojas-Moreno, Design of Self-tuning Controllers for Pro
esses Hav-
ing Multiple Unknown Time-varying Delays, Ph.D. Thesis, Utah State
University, Logan, UT, 1995.
[12℄ Rolf Isermann, Digital Control Systems, Volume 1, Springer-Verlag,
segunda edi
ion, Germany, 1989
[13℄ Jean-Ja
ques E. Slotine y Weiping Li, Applied Nonlinear Control, Pren-
ti
e Hall, Englewood Clis, New Jersey 07632, 1991.
[14℄ Alan V. Oppenheim y Alan S. Willsky, Se~nales y Sistemas Prenti
e-
Hall Hispanoameri
ana, S.A., Mexi
o-Englewood Clis-Londres-Sidney
y otras, 1983.
[15℄ Gene H. Hostetter, Digital Control System Design, Holt, Rinehart and
Winston, In
., New York, Chi
ago, San Fran
is
o, Philadelphia, Mon-
treal, Toronto, London, Sydney, Tokyo, 1988.
[16℄ William H. Press, Brian P. Flannery y Saul A. Teukolosky, Numeri
al
Re
ipes in C, Cambridge University Press, Cambridge, 1988.
[17℄ Bernard Friedland, Control System Design. An Introdu
tion to State-
Spa
e Methods, M
Graw-Hill, In
., New York St. Louis y otras, 1986.
[18℄ Murray R. Spiegel, Analisis Ve
torial, serie de
ompendios S
haum,
M
Graw-Hill Mexi
o Panama Bogota y otras, 1973 (o edi
iones mas
re
ientes).
[19℄ Murray R. Spiegel, Cal
ulo Superior, serie de
ompendios S
haum,
M
Graw-Hill Mexi
o Panama Bogota y otras, 1973 (o edi
iones mas
re
ientes).
[20℄ Donald M. Wiberg, Espa
io de Estado y Sistemas Lineales, serie de
ompendios S
haum, M
Graw-Hill Mexi
o Panama Bogota y otras,
1973 (o edi
iones mas re
ientes).
BIBLIOGRAFIA 455
[21℄ Frank Ayres Jr., Matri
es, serie de
ompendios S
haum, M
Graw-Hill
Mexi
o Panama Bogota y otras, 1973 (o edi
iones mas re
ientes).
[22℄ Murray R. Spiegel, Transformada de Lapla
e, serie de
ompendios
S
haum, M
Graw-Hill Mexi
o Panama Bogota y otras, 1973 (o edi-
iones mas re
ientes).
[23℄ MathWorks, In
., MATLAB Referen
e Guide, Prenti
e Hall, Engle-
wood Clis, New Jersey, primera edi
ion, 1998.
[24℄ MathWorks, In
., SIMULINK User's Guide, Prenti
e Hall, Englewood
Clis, New Jersey, primera edi
ion, 1996.
[25℄ Lab-PC+ User Manual, National Instruments Corporation, Part Num-
ber 320502B-01, edi
ion de agosto de 1994.
Indi
e de Materias