Académique Documents
Professionnel Documents
Culture Documents
Disen
~ o y Apli a iones en Tiempo Real
Control Optimo
Control Adaptivo
Control Predi tivo
Control Robusto
Control No Lineal
Programas en MATLAB y C/C++
ii
Control Avanzado
Disen
~o y Apli a iones en Tiempo Real
ISBN 9972{9318{0{3
Ni todo el libro ni parte de esta publi a i on puede ser reprodu ida, ar hivada,
transmitida o distribuida en forma alguna o mediante algu n medio ele tr oni 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
Prefa io xi
Bibliograf a 453
Fundamentos
disen
~o presentados en los ap tulos del uatro al o ho, onstituyeron proye -
tos de investiga ion realizados en la Se ion de Postgrado de la Fa ultad de
Ingenier a El e tri a y Ele tr oni a de la Universidad Na ional de Ingenier a
(http:// ee.uni.edu.pe), asa de estudios de la ual soy do ente.
ser implementados en tiempo real. Tales pro esos son: el p endulo invertido,
la gru a-puente y el servomotor D.C. (\Dire t Current") sujeto a argas no
lineales. En su se ion problemas, el ap tulo presenta la modela ion de
diversos pro esos t pi os.
Cap tulo 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 i on del p endulo invertido y ontrol optimo de posi ion de la gru a-
puente. En su se i on problemas, el ap tulo desarrolla disen ~ os de sistemas
de ontrol optimo uadr ati o para varios pro esos t pi os.
Cap tulo 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 disen ~o de un sistema de ontrol adaptivo on autosin-
toniza i on. El pro edimiento desarrollado se apli a para implementar en
tiempo real el ontrol adaptivo on autosintoniza ion de la posi i on de un
servomotor D.C. operando on arga no lineal y variable. En su se ion
problemas, el ap tulo presenta disen ~os de sistemas de ontrol adaptivo on
autosintoniza i on para varios pro esos t pi os.
Cap tulo 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 i on de un servomotor D.C. sujeto a argas no
lineales empleando el algoritmo de la matriz din ami a de ontrol. En su
se i on problemas, el ap tulo desarrolla disen ~os de sistemas de ontrol pre-
di tivo para diversos pro esos t pi os, naturalmente, empleando el algoritmo
de la matriz din ami a de ontrol.
Cap tulo 7: Control Robusto. Trata los fundamentos del ontrol
robusto basado en la t e ni a de ontrol on modelo interno. A ontinua i on,
di ha t e 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. Tambi en, en su se ion
problemas, el ap tulo desarrolla disen ~os de sistemas de ontrol robusto para
diversos pro esos t pi os, empleando el algoritmo de ontrol on modelo
interno.
Cap tulo 8: Control No Lineal. Desarrolla los fundamentos rela-
ionados on el ontrol no lineal de pro esos empleando la t e ni a deno-
minada linealiza ion por realimenta ion. Para validar los fundamentos de
di ha t e ni a, se desarrolla el disen ~o 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 ap tulo desarrolla disen ~os de
sistemas de ontrol no lineal para diversos pro esos t pi os.
xiv Prefa io
Agrade imientos
La publi a ion de este libro fue nan iada en parte por el Instituto General
de Investiga ion de la UNI. Mi agrade imiento a su Dire tor, Dr. Guillermo
Lira. Mi gratitud espe ial a mis alumnos que olaboraron on esta publi-
a ion: Leonardo Gushiken ( ap tulos 3 y 4), Omar Tupaya hi ( ap tulos 3
y 8) y Rau l Benitez ( ap tulos 6 y 7). Luis Le ina (alumno de la Universidad
Polit e ni a de Catalun~a) olabor o on el ap tulo 5. La revisi on de todo lo
es rito estuvo a argo de mi alumna Claudia Cordova, mientras que Rommel
Romero (mi futuro alumno) se en arg de todo lo relativo a la impresi on del
libro.
Este ap tulo es una breve exposi ion de los fundamentos matemati os rela iona-
dos on el analisis matri ial, el an alisis ve torial y la transformada de Lapla e. El
material sele ionado est a estre hamente rela ionado on el material a desarro-
llarse en los ap tulos siguientes. Para mayores detalles del material ubierto se
re omienda onsultar las referen ias [18℄, [19℄, [20℄, [21℄, [22℄, [14℄ y el ap endi e
A de [3℄. Los al ulos, en su gran mayor a, 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
aij dispuestos en n las y m olumnas. Es de ir:
a11 : : : a1m
A = [aij ℄ =
64 .
.
75
; i = 1; : : : ; n; j = 1; : : : ; m
an1 : : : anm
2 Matemati a Asistida on Computadora
ij = X
m
aikbkj; i = 1; 2; : : : ; n; j = 1; 2; : : : ; m
k=1
Por ejemplo:
2 3
b11
a11 a12 a13
a21 a22 a23 4 5
b21
b31
= 11
21
=
a11b11 + a12b21 + a13b31
a21b11 + a22b21 + a23b31
(A ) = A; (A + B) = A + B ; (AB) = A B
(AH )H = A; (A + B) H = AH + B H ; (AB)H = B HA H
Tipos de Matri es
Si el orden de una matriz A es n n, enton es la matriz se denomina uadrada
de orden n. Esta matriz posee una diagonal prin ipal, o simplemente una
diagonal on elementos aii. La traza de una matriz uadrada se de ne omo:
0 0 0 : : : dnn
.
5
Una matriz uadrada se denomina triangular superior si los elementos debajo
de su diagonal son todos eros. Si los elementos en ima de de su diagonal
son todos eros, enton es la matriz es triangular inferior.
1.1 Cal ulo Matri ial 5
det(A) =
X( 1)
n
1+j
a 1j det(A1j) = ( 1)1+1a11 det(A11) + ( 1)1+2a12 det(A12) +
j=1
6 Matemati a Asistida on Computadora
02 31
y la olumna j de A. Por ejemplo, el determinante de una matriz de orden
n = 3 se al ula omo:
a11 a12 a13
det
4 a21 a
a31 a32 a
a2
2 5A
= ( 1)1+1 a11 det
a22 a23
a32 a33
+
2333
a21 a23 a21 a22
( 1)1+2a12 det + ( 1)1+3a13det (1.3)
a31 a33 a31 a32
Con rela i on a dos matri es uadradas A y B de orden n:
1. Si ada elemento de una la o olumna de A es ero, det(A) = 0.
2. det(A) = det(AT ).
3. Si multipli a una la o olumna de A, enton es el det(A) queda
multipli ado por .
4. Si B se obtiene inter ambiando dos las o olumnas de A, enton es
det(B) = det(A).
5. Si dos las o olumnas de A son iguales, enton es det(A) = 0.
6. Si sumamos un multiplo de una la o olumna de A a ualquiera de
sus las o olumnas, el valor del det(A) no ambia.
7. det(AB) = det(BA) = det(A)det(B)
8. Si los eigenvalores de A son 1; 2; : : : ; n , det(A) = 1 2 ::: n. La
determina i on de eigenvalores se trata en la subse ion 1.2.2.
Matriz Inversa
6
Si A y B son dos matri es no singulares; es de ir, si det(A) = 0 y det(B) = 6
0,enton es:
(AB) 1 = B 1 A 1; (AT ) 1 = (A 1 )T
1
((A )T ) 1 = ((A 1 ) )T ; det(A 1 ) =
det(A)
Si A es una matriz no singular de orden 2, vale re ordar que:
a b ; 1 d b
A= A1= (1.4)
d ad b a
1.1 C al ulo Matri ial 7
g
e
h
f
2 e f b b
3
det det det ef
1 1 6
6 det
h i
d f
a
h i
77
A = ( )
det A det g i a
d f
64 det
g i
d e
det
a b
det
a b 57
g h g h det
d e
(A + BDC)[A 1 A 1 B( D 1 + CA 1 B) 1 CA 1 ℄ =
1
I + BDCA B (D 1 + CA 1 B ) 1
CA 1
BDCA 1B ( D 1 + CA 1
B ) 1 CA 1
= I+
1 1 1 1 1 1 1
BDCA (BDD + BDCA B)(D + CA B ) CA =
I + BDCA 1 BD (D 1 + CA 1B )(D 1 + CA 1 B ) 1 CA 1 = I +
1 1
BDCA BDCA = I
jgj =
p<( e[g℄)2 + ( m[g℄)2 ; = \g = ar tan
=m[g℄
<e[g℄
8 Matemati a Asistida on Computadora
La tabla 1.1 muestra los omandos para eje utar opera iones matri iales
empleando MATLAB.
Ejemplo 1.1
Dada la matriz uadrada A, al ular B.
2 1 j 2 j 3 j
3
A= 4 6
4j 2 3 + 5j
j 7 j 8 + 3j
5
B = (A + A
T
j j
0:7jA3 )A 1 AH A \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
Ejemplo 1.3
Multipli a ion on Parti i on de Matri es.- Dos matri es Anm y Bmp
2 3 2
(los sub ndi es indi an las dimensiones) pueden ser parti ionadas omo sigue:
An1 m1 An1 mm Bm1 p1 Bm1 pp
3
A=
64 .
.
75 ; B=
46 .
.
75
A n n m1 Ann mm Bm m p 1 Bmmpp
La ondi i on ne esaria para realizar el produ to C np = AnmBmp empleando
parti iones, es que las olumnas de A y las las de B sean parti ionadas
en la misma forma. Por tanto, n = n1 + + n n, m = m 1 + + mm y
2 32
p = p1 + + pp. Determinar si el produ to siguiente es v alido y si lo es,
53
obtener C = AB.
A22 A23 A21 B22 B23
AB =
4 A32 A
A42 A43
A3
3
A
54 B32 B33
B12 B13
3141
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
Ejemplo 1.5
Si los i son los eigenvalores de la matriz A de orden n, omprobar num eri amente
que:
det(A) = 1 2 : : : n; i = 1; : : : ; n
Solu i on: 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 de niendo:
A B A 0 A B
E= ; G= ; H=
0 D C D C D
12 Matemati a Asistida on Computadora
Ejemplo 1.7
Ejemplo 1.8
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
d .
(t)
; A t
6R
()= 4 .
a11 t a1m t
R .()
dt an1
d (t) dt anm (t) () an1 t anm t
2 d
Z x(t) = R 3
x1(t)
d
dt
x(t) = 64 dt x1(t)
d
537 ;
xn(t)
64 R 75
.
(1.8)
dt xn(t)
.
Cuando las matri es A y B y el es alar son fun iones de t, se umple:
d d d d dA dB
[A + B℄ = A + B; [AB℄ = B+A
dt dt dt dt dt dt
d dA dk dA 1
d
[Ak℄ = k+A ; A 1= A1 (1.9)
dt dt dt dt A
1.2 Analisis Ve torial 15
2 3
Derivada par ial de una fun i on es alar J(x) de variable ve torial:
J 2 2
J 2
J 2
J 3
46 75 46
J x1
. 2
J x2
. 1
x 1 x2
.
x1 x n
.
= ; = .
57
. x2 .2 .2 (1.10)
x J J J 2
J
xn x n x1 x n x2 n
57
. .
x
4 .
f1
xn
x2
.
.
f2
.
fm
xn xn
Si la matriz uadrada A y los ve tores x e y son reales y de orden n se
umple:
xT Ax = Ax + AT x
x
xT Ay
= Ay; xT 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:
x HAx = Ax
x
xH Ay = Ay; xH Ay = AT x (1.14)
x y
Xn
ixi =0
i=1
16 Matemati a Asistida on Computadora
H H
x y = (y x) = y x = T Xn
xi yi
i=1
X n
Xj j
n
2
xH x = i=1 x
i xi
x 1 x 1 x 1 x2
= i=1 xi
: : : x 1 xn
3
xxH = ::: . . (1.15)
x nx 1 xn x : : : xn x
Si x e y son ve tores reales de orden n:
x T y = yT x =
X n
xi yi ; xT x =
Xn
x2i
2 i=1
T
xx =
64 ::: . .
75 (1.16)
xn x1 xn x 2 ::: x2n
Ve tores Ortonormales
kx k 0 para todo x 6= 0
1.2 Analisis Ve torial 17
k x k= 0 si y solo si x = 0
k x k=k kk x k es un es alar
Desigualdad triangular: kx+yk k xk+kyk
Desigualdad de S hwarz: jxH yj k x kk y k
La norma mas empleada es la Eu lidiana:
k x k2 = (x H
x)1=2 = pj j j j
x1 2 + x2 2 + j j2
+ xn (1.17)
k x k=
q p
(P x)H (P x) = xH P H P x = xH Qx)℄
q 0; Q = P H P = QH
Otras normas pueden ser de nidas omo:
k x k=
Xj j
n
Xj j !
1=p
n
k x kp= xi p
i=1
k Ak k Ak
Tal norma umple las propiedades de la norma de un ve tor. En adi i on,
tambi en umple:
k A k=k AH k; k A k=k AT k; k Ax k k A kk x k
k A k2 = max[x
x
H H
A Ax℄; si x x = 1 H
j j k A k; si es un eigenvalor de A
Otras normas para una matriz A de orden n son:
0
XX j j A1
1=2
k A k=
XX j
n n
j
aij ; k A kF =
n n
aij 2
! 0 1
k A k1 = max
j
Xj j
m
i=1
aij ; X Ak
A = max
i
n
kj=1 a ij
k A k2 = max
q j j
i (A
H A)
1
i
1.2.2 Rango de una Matriz, Eigenvalores y Eigenve tores
Rango de una Matriz
Si A es una matriz de orden n m, su rango, denotado omo rango(A), es igual
al nu mero maximo r de sus ve tores olumnas linealmente indepen-
dientes. Si A es una matriz de orden n m y B es de orden m k:
Ax = x x 0 (1.18)
det( I A) (1.19)
. .
757
; E E 1
=A (1.20)
0 0 ::: n
0
0
0
0
1
0
0 57
0
0
0
2
0 0 0 0 0 0 0 0 3
2 1
0
0 0
0
0
0
3
0
0
3 21
0
0 0
0
0
0
0
0
3
J3 =
64 0
0
1
0
0
1
0 2
0 0
0 75
J4 =
64
0
0
2
0
0
1
0
1
1
0
175
0 0 0 0 3 0 0 0 0 3
Formas Cuadrati as
x HAx = XX
n n
aijxi x j; aji = aij
i=1 j=1
xT Ax = XX
n n
aijxix j ; aji = aij
i=1 j=1
Formas Bilineales
x HAy = XX
n m
aijxi yj
i=1 j=1
xT Ay = XX
n m
aijxiy j
i=1 j=1
1.2 Analisis Ve torial 21
Ejemplo 1.9
P
ij
1=2
Norma matri ial k A kF = n ij jaijj 2 1=p norm(A,'fro' )
Norma ve torial P
k x kp= ( i=1 jx jp) i norm(x,p)
Norma ve torial pH norm(x)
Norma ve torial
kk xx kk21== max
x x
jx j
i i norm(x,inf)
Norma ve torial k x k 1= min jx j i i norm(x,-inf)
Rango rank(A)
Eigenvalores i eig(A)
Eigenve tores E = [e1 : : : en ℄ [E,D℄=eig(A)
1.2 Analisis Ve torial 23
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
Ejemplo 1.11
xHy = (yHx) = yT x
Ejemplo 1.12
% 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 num eri amente las siguien-
tes propiedades del rango: rango(A) min(n; m); rango(A) = rango(A H );
rango(AB) min(rango(A); rango(B)); rango(CB) = rango(B).
Ejemplo 1.14
% 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
2
Determinar la de ni ion de las matri es siguientes: 2
A=
2 2 2 3; B=
1 2 1 3
2 6 0 2 4 2
4 5 4 5
1 0 2 360
Solu ion: 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
g(s) = L[g(t)℄ =
Z 1
g(t)e st
dt (1.21)
0
g n 1 (0)
Deriva ion de orden n L
h
dtn = s g(s)
dn 1
s
i g(0)
Integral
n1
hR i
g (0) =
t
L 0 g(t)dt
dtn 1 g(t) t=0
= g(s) s
Desplazamiento en tiempo L[g(t t0) (t t0 )℄ = e t0 sg(s)
Desplazam. en fre uen ia L[e atg(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
v velocidad
friccion
bv m u
Solu ion: La fun ion de transferen ia del pro eso se obtiene apli ando la
propiedad de deriva ion de orden n (tabla 1.4), on todas las ondi iones
ini iales iguales a ero:
v(s) 1
msv(s) + bv(s) = u(s); =
u(s) ms + b
1 1
"
La salida se determina de:
1 1
#
b
s s+
s(ms + b) = b L m
y empleando la tabla 1.3 obtenemos:
1 bt=m
v(t) = (1 e )
b
Ejemplo 1.17
Empleando las propiedades del valor ini ial y del valor nal, determinar
tales valores para la velo idad del m ovil del problema anterior.
Solu ion: El valor ini ial se determina de: lim t!0 v(t) = lims!1 sv(s) = 0.
El valor nal se obtiene de: limt!1 v(t) = lims!0 sv(s) = b 1.
Cap tulo 2
2.1 Disen
~ o 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 sen~al de salida Y del pro eso (de ara ter
ontinuo, omo en la mayor a de los asos) siga a la sen ~al de referen ia r
umpliendo determinadas espe i a iones de disen ~o, tales omo: m nimo
tiempo de estabiliza ion, m nimo 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 sen ~al de ontrol
U (la variable manipulada), la ual a tuando sobre el pro eso a trav es de un
a tuador, minimi e la sen~ al de error e. El bloque de ltraje es u til para eli-
minar las omponentes ontaminantes de alta fre uen ia de la sen ~al de ruido
de medi ion n. El ltro de ruido puede ser anal ogi 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
_ = f(X; U; v; t)
X
Y = h(X; U; w; t) (2.1)
donde f y h son fun iones ve toriales de variable ve torial de orden n y r
respe tivamente, X es el ve tor de estado de orden n, U es el ve tor de
ontrol de orden m, Y es el ve tor de salida de orden r, v es el ve tor de
disturbios (de orden n) en los estados, y w es el ve tor de disturbios (de
orden r) en las salidas. El tiempo t se in luye omo parte del argumento
para indi ar que pueden existir parametros variantes on el tiempo. En este
punto es onveniente de nir el on epto de estado:
El ve tor de estado X = [X1 : : : Xn ℄T de un pro eso (donde el su-
per ndi e T indi a transpuesta) es el m nimo onjunto de variables, las va-
riables de estado X1 : : : Xn, las uales ontienen informa i on su iente
a er a de la historia pasada del pro eso. Esta informa i on permite om-
putar todos los futuros estados del pro eso, asumiendo por supuesto, que
todas las futuras entradas U son tambi en ono idas, omo del mismo modo lo
son las e ua iones din ami as que des riben di ho sistema. El nu mero n de
variables de estado de ne el orden o la dimensi on del sistema.
El espa io de estado es el espa io n-dimensional de todos los estados.
Cuando el sistema es de orden n = 2, el espa io de estado es ono ido omo
el plano de fase on oordenadas X 1 y X2. Los puntos de equilibrio en el
espa io de estado para el pro eso des rito en (2.1) se determinan uando el
estado del pro eso no ambia gra ias a la a i on de una fuerza de entrada U .
Por tanto, los puntos de equilibrio (X) se determinan de:
_ = f(X; U) = 0
X (2.2)
y = Cx + Du + F w (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 sub ndi e es el nu mero de las de la matriz y el
segundo, el nu mero de olumnas. Es importante notar que en (2.3) estamos
empleando las variables residuales (tambi en llamadas variables de desvia ion
o perturba ionales) siguientes:
x=X X
u=U U
3
pueden ser determinadas evaluando las siguientes matri es ja obianas:
2 2 3
A =
64
f1
X1
. .
X
f1n
f. n
75 B=
f1
U1
.
fn
.
U
f1m
f. n
75
2
fn X
h1
1 Xn
h1 3
(X;U)
2 U1
h1
Um
h1 ;U)
3 (X
C =
64 .
hr
X1
.
Xn
.
hr
75 D=
U1
.
hr
.
Um
.
hr
(2.4)
X n U1 Um (X;U)
X1 (X;U)
La matriz de transferen ia para pro esos multivariables lineales se de-
termina empleando la e ua ion matri ial siguiente:
1
Y(s) = [C(sI A) B + D℄U(s) (2.5)
donde s es la variable lapla iana e I es la matriz identidad. Cuando las
sen
~ales Y y U son unidimensionales, la e ua i on anterior se onvierte en la
e ua ion de transferen ia de un pro eso univariable. La e ua i on ara -
ter sti a del pro eso se obtiene de:
det(sI A) = 0 (2.6)
donde det es la opera i on determinante. Las ra es de (2.6) son tambi en
ono idas omo ra es ara ter sti 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 id enti 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 H 2 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
H
1 p 1
1
g
Q
p 1
0
Tanque
H2
p 2
2
Q
2
omo:
Q1 =
p P1 P0 ; Q2 =
p P2 P0
P1 P0 = gH1; P2 P0 = gH2
H1 = Q0
p H1 = f1
S p S
H_2 = g
y su orrespondiente e ua ion de [ H1
p p H2 ℄ = f2
S salida:
H1
Y = [0 1℄
H2
H1 = Q0
p H1 = 0
p
_2=
H
S
g
p pS
H1
H2 ℄ = 0
lo que resulta en: [
S
Q2
H1 = H2 = 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 pH
pg
0 35
h=
h1
h2
; A=
f1
H1
f2
H1
f1
H2
f2
H2 (H 1 ;H2 )
4
= pg
p
2S H
2S
1
1
2S
pg
pH 2
" #f1
1
B= = ; C = [0 1℄; D = [0℄
Q
f20 Q0 0
Q0
Ejemplo 2.2
El pro eso p endulo no lineal mostrado en la gura 2.3 puede rotar libre-
mente alrededor del pivote gra ias a la a i on de un torque externo U . En
di ha gura Bp=1.3366 N-m/rad/s es la fri i on 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/s 2 es la a elera i on de la
gravedad. La salida de inter es es la posi i on angular del p endulo. 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 ter sti as, y la estabilidad del pro eso.
Bp Mo
U U
Lo
Lo
Mo Bp
(a) (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:
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
g Bp 1
X_2 = senX1 X 2 + U
L o
MoL2o MoLo 2
Y = X1 (2.8)
uya representa ion ompa ta (e ua ion (2.1) on v = w = 0) resulta:
_ = f;
X Y = X1 = h
donde:
X1 f1
" X2
#
X= ; f= = Bp
(2.9)
X2 f2 g 1
Lo senX1 MoL2 x2 + o
MoL2 U o
0
Lgo
L
MBop o2
h
f2
U
h
0
h
i 1
MoLo2
=10
X1 X2 (0;0)
C
= h
D = = [0℄ (2.11)
U 0
2.2 Con epto de Estado y Variables de Estado 37
= 1
M L2s2 + B s + M gL (2.12)
o o p o o
" g
0 1
Bp
#
L M L
o
2
A= o
o
La gura 2.4 muestra un lazo de ontrol que in luye una omputadora digital
equipada on los dispositivos de adquisi ion de datos ne esarios. La sen ~al
ontrolada y, luego de ser sensada, pasa por un muestreador, gener andose
un tren de impulsos y separados uno del otro en T segundos (el tiempo
de muestreo). Luego, el tren de impulsos es digitalizado por medio del
dispositivo A=D, lo que resulta en la sen ~al yd , la ual ya puede ser pro esada
por la omputadora on el n de generar el algoritmo de ontrol.
La sen~al de ontrol digitalizada ud sufre el pro eso inverso: pasa por un
dispositivo D=A y luego por un muestreador para generar el tren de impulsos
u . Mediante un dispositivo de reten i on de orden ero, que se des ribe mas
adelante, la sen~al de ontrol es re onstruida, lo que resulta en una sen ~al de
ontrol ontinua u apaz de a tuar sobre el a tuador-pro eso ontinuo.
Notar que la sen ~ al de referen ia digitalizada rd se genera internamente.
Si la referen ia fuera una sen ~al externa, enton es debe ser pro esada omo
la sen
~al y. En lo que sigue, asumiremos que el tiempo de muestreo T es el
mismo para todos los muestreadores y que di hos muestreadores operan sin-
roni amente; es de ir, que el retardo entre la opera ion de un muestreador
on respe to a otro es despre iable. Es importante anotar que los onver-
tidores de sen~al, muestreadores y dispositivos de reten ion, son parte de la
interfaz (tarjeta de adquisi i on de datos, por ejemplo) de la omputadora
digital on su mundo ir undante (el pro eso-a tuador y los dispositivos de
medi ion).
Un tren de impulsos, por ejemplo la sen ~al u , puede modelarse omo:
u (t) = X
1
u(kT )Æ(t kT ) (2.15)
k=0
COMPUTADORA DIGITAL
rd ud u* u
D RETENCION’
DE CONTROL
ACTUADOR PROCESO
ALGORITMO
A T
D
y
FILTRAJE MEDICION
yd A y* T
Lapla e de u resulta:
X 1
u (s) = L[ k=0 u(kT )Æ(t kT )℄ =
X1
k=0
u(kT )L[Æ(t kT )℄
= X
1
u(kT )e kT s
= u (esT ) (2.16)
k=0
u (s) =
1 X
1
u(s + i !s) (2.19)
T k= 1
La sen
~al u (s) posee dos propiedades importantes. La primera es su ara ter
periodi o, que puede demostrarse reemplazando en la e ua i on (2.16) la
40 Sistemas Dis retos
u (s + j !s) = X1
u(kT )e kT (s+j !s ) =
X
1
u(kT )e kT s e kT j !s
=0 =0
= u (esT ) (2.20)
u (s) =
1 X1
u(s + i !s) =
1
[u(s) + u(s + j!s) + u(s + 2j!s)
T k= 1 T
+ + u(s j!s) + u(s 2j!s) + ℄
!s 2!max T (2.21)
! max
1 si t kT
(t kT ) =
0 si t < kT
2.3 Fundamentos de Sistemas Dis retos 41
u(t) u(j )
t max max
u*(t) u*(e j )
s s
t s max max s
kT s
Empleando la ono ida transforma ion L[ (t kT )℄ = e ,s la transforma-
da de Lapla e de u(t) resulta:
u(s) = X
1
u(kT )e kT s 1 [1
s
e Ts 1
℄ = u (s) [1
s
e Ts
℄
k=0
_
u(s) u*(s) e- sT
1 u(s)
T s
RETENCIO’N DE OR_DEN CERO
u (t) u*(t) u (t)
u(2T)
u(3T)
u(T)
u(0)
t 0 T 2T 3T 4T 0 T 2T 3T 4T
u(t) =
Z t
e( )d
0
u(kT )
X k
T e(iT T ); u(kT T) T
X
k 1
e(iT T)
i=0 i=0
u(kT ) u(kT T ) = T e(kT T ); u(k) u(k 1) = T e(k 1) (2.23)
Si la dis retiza ion de la derivada se realiza por adelanto, enton es las dife-
ren ias son de la forma:
Ejemplo 2.3
Dis retizar el modelo no lineal del pro eso p endulo des rito en el ejemplo 2.2
y gra ar diez segundos de su respuesta a un torque tipo es alon unitario.
2.3 Fundamentos de Sistemas Dis retos 43
Ejemplo 2.4
Dis retizar el siguiente ontrolador ideal PID:
u(t) = K e(t) +
1
TI 0
t Z
e(t)dt + TD
de(t)
(2.25)
dt
donde K es la ganan ia propor ional, T I es el tiempo de integra i on y T D
es el tiempo derivativo. En un primer aso emplear integra i on re tangular
y luego usar integra i on trapezoidal.
(
Solu i on: Empleando las rela iones (2.23) y (2.24) en (2.25) se obtiene:
T Xk TD
)
u(k) = K e(k) + e(i 1) + [e(k) e(k 1)℄
TI i=0
T
44 Sistemas Dis retos
0.2
0.18
0.16
0.14
0.12
Posición (rad)
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
(
tos de area mediante trapezoides), enton es:
1 X k e(i 1) + e(i) TD
)
u(k) = K e(k) + T + [e(k) e(k 1)℄
TI i=0
k
2 T k
( T
"X i=0
X
i=0 e(i)
#
u(k 1) = K e(k 1) + e(i 1) e(k 1) + e(k)
2TI
2.3 Fundamentos de Sistemas Dis retos 45
TD
+ [e(k 1) e(k 2)℄
T
Restando las expresiones anteriores y despejando u(k) obtenemos una ex-
presi on similar a (2.26), donde:
TD T TD T TD
q = K(1 + + ); q = K(1 + 2 ); q =K
0 1 2
T 2TI T 2TI T
2.3.2 La Transformada Z
Es util introdu ir la siguiente rela i on:
z = eT s = eT ( +j!) = eT [ os!T + jsen!T ℄ (2.27)
Reemplazando en la e ua ion (2.16) la sen ~al u por una variable generi a g,
llegamos a la siguiente de ni ion de la transformada Z:
g(z) = Z[g(kT )℄ = X1
g(kT )z k = g(0) + g(T )z 1 + g(2T )z 2 + (2.28)
k=0
j j
La serie en (2.28) onverge si g(kT ) se restringe a valores nitos y si z > 1. jj
Las sumatorias siguientes son bastante utiles para resolver problemas
rela ionados on la transformada Z:
XN 1
ak =
1 aN
1a
; jaj < 1
k=0
X 1
ak =
1
; jaj < 1
X1k=0
kak =
1a
a ; jaj < 1
(1 a)2
X
k=0
N2
ak =
aN1 aN2 1
; jaj < 1
k=N1 1 a
1 a N1
jaj < 1
X ak =
1a
; (2.29)
k=N1
A manera de ejemplo, la transformada Z del impulso unitario Æ(kT ), sa-
biendo que Æ(0T ) = 1, resulta:
Z[Æ(kT )℄ = X1
Æ(kT )z k
=z 0
=1
k=0
46 Sistemas Dis retos
Z[ (kT )℄ = X
1
z k=
1z
1
1
=
z
z
1
k=0
j j jj
la ual es valida para z 1 < 1 (o z > 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 i on se formulan algunas propiedades de la transformada Z:
(1) Linealidad:
Z[ag1(kT ) + bg2(kT )℄ = aZ[g1(kT )℄ + bZ[g2(kT )℄
=0
g( T )z ℄; d 0
(4) Amortiguamiento:
Z[g(kT )e akT ℄ = g(zeaT )
No g(t) g(z)
(1) Æ(k) 1
z
(3) (k)
z 1
z d+1
(4) (k d) z 1
(5) k (k) z
(z 1)2
(6) a k (k) z
z a
(7) ak 1 (k 1) 1
za
(8) ka k (k) az
(z a) 2
z sin!
(9) (k)sen!k
z2 2z os!+1
z(z os!)
(10) (k) os!k z2 2z os!+1
(11) (k)aksen!k za sen!
z2 2za os!+a2
z(z a os!)
(12) (k)ak os!k z2 2za os!+a2
k(k 1) (k m+2) z d+1
(13) (d 1)!
ak d+1
(1 z 1)d
48 Sistemas Dis retos
(3) t 1 k Tz
s2 (z 1)2
(4) e at 1 aT )k z
s+a
(e z e aT
at 1 aT )k T ze aT
(5) te (s+a) 2 kT (e (z e aT )2
at 2 aT k T 2 ze aT (z+e aT
)
(6) t 2e (s+a)3 (kT )2(e ) (z e aT )3
at a aT )k z(1 e aT )
(7) 1e s(s+a) 1 (e (z 1)(z e aT )
z(e aT e bT )
(8) e at e bt ba
(s+a)(s+b)
(e aT )k (e bT )k
(z e aT )(z e bT )
!
sen!kT zsen!T
(9) sen!t s2 +!2 z2 2z os!T +1
s z(z os!T )
(10) os!t s2+! 2
os!kT z 2 2z os!T +1
aT
atsen!t ! (e aT )ksen!kT ze sen!T
(11) e (s+a)2 +! 2 z2 2ze aT os!T +e 2aT
g(z) =
X P
(s a ) i
g(s)z
z eT s s=ai
i=1
+
X Q
1
dmj 1
(s bj ) m j
g(s)z
z eT s
(2.30)
j=1 (mj 1)! dsmj 1 s=b j
1 d 1 z z z(z 1 T )
s2 = +
(2 1)! ds s2(s+ 1) (z eT s) s=0 z eT (z 1)2
g(kT ) = XP
[(z ai )g(z)z k 1
℄z=a i
i=1
+
XQ
1
dmj 1
[(z bj )mj g(z)z k 1
(2.31)
j=1 (mj 1)! dzmj 1 z=b j
1 dm1 1 1
+ [(z b1 )m1 g(z)z k
(m1 1)! dz m1 1
z=b 1
+ 1 dm2 1 [(z m2
b2 ) g(z)z k 1
(m2 1)! dz m2 1
z=b2
Ejemplo 2.6
Determinar g(kT ) para:
z z
(a) : g(z) = ; (b) : g(z) =
(z 1)(z 2) (z 1)2
Solu ion: Para el primer aso: P = 2, a 1 = 1, a2 = 2, Q = 0. Por tanto:
z k z k
g(k) = + = 1 + 2k
z 1 z=1 z 1 z=2
Para el segundo aso: P = 0, Q = 1, b 1 = 1, m1 = 1. Luego:
1 d (z 1)2 z
=
d k
(z ) =k
g(k) = z k1
1! dz (z 1)2 z=1 dz z=1
2.3 Fundamentos de Sistemas Dis retos 51
1 K b1z 1
G(z) = Z[G r 0G(s)℄ = (1 z )Z (esT ) d = 1
z d
s(s + a) 1 + a1z
K
a1 = e aT
; b1 = (1 eaT )
a
Ejemplo 2.8
Determinar la salida muestreada para los asos ilustrados en las guras
2.8(a)-(f).
Solu i on: En la gura (a) se tiene: y(s) = G 2(s)x (s) y x(s) = G1(s)u(s),
donde x(s) es una sen
~al auxiliar. Muestreando x(s) omo sigue:
[x(s)℄ = x (s) = [G1 (s)u(s)℄ = G1 (s)u (s)
Reemplazando ahora x (s) en y(s), y luego muestreando y(s) obtenemos
una expresion en el dominio dis reto, a saber: y (s) = G2 (s)G 1 (s)u (s).
Esta ultima rela ion es equivalente a:
y(z) = G2(z)G1(z)u(z)
52 Sistemas Dis retos
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) s Gp (s)
u(s) u*(s) y(s)
(d) G(s)
Por onsiguiente:
y(z) = [G2G1(s)℄(z)u(z)
y(z) = G2(z)[G1u℄(z)
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)
G(z)
y(z) = U (z)
1 + [GH℄(z)
[GH℄(z)
y(z) = u(z)
1 + [GH℄(z)
x_ = Ax + Bu; y = Cx + Du (2.33)
La solu ion de la e ua i on de estado anterior, dado un estado ini ial x(t 0),
es:
x(t) = eA(t t0 )
x(t0)) + eAt
Z t
e A
Bu( )d
= (t t0)x(t0) +
Z t
t0
(t )Bu( )d (2.34)
t0
donde:
(t t0 ) = L 1
[(sI A) 1
℄ = eA(t t0 )
= X
1
A (t t 0)
!
=0
es la matriz de transi ion. Para demostrar que efe tivamente (2.34) es una
solu i on de la e ua i on de estado (2.33), basta derivar la expresi on (2.34)
on respe to al tiempo, para as obtener x_ = Ax + Bu.
54 Sistemas Dis retos
=
" 6s2+s 2
(s+1)(s+3)(s+4)
# 1 1 s+1
s2+77s 14
(s+1)(s+3)(s+4)
" 6s2+s 2
#
y(s) = Cx(s) + Du(s) = 3 4 (s+1)(s+3)(s+4) 3
s2 +77s 14
2
(s+1)(s+3)(s+4)
s+1
22s2 305s + 50 6 297=6 767=2 + 918=3
= = +
(s + 1)(s + 3)(s + 4) s + 1 s+1 s+3 s+4
297 767 e 3t 918 4t
y(t) = e t+ + e ; t 0
6 2 3
2.3 Fundamentos de Sistemas Dis retos 55
% 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
Salida y
−20
−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 s olida: y(t); en
trazos: y(kT1), T1 = 0:04 s; urva punto y raya: y(kT 2), T2 = 0:1 s.
donde:
AT
G = (T ) = e ; H=
Z T
( )d B (2.37)
0
Notar que (2.36) es una e ua i on ve torial de diferen ias que puede ser
resuelta re ursivamente, omo sigue:
x(k) k
= G x(0) + Xk
G 1
Hu(k ) (2.38)
=1
donde Gk es la denominada matriz de transi ion dis reta. Una segunda alter-
nativa de solu i on 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:
Despejando:
1 1
x(z) = (zI G) zx(0) + (zI G) Hu(z) (2.39)
det(zI G) = 0 (2.43)
La forma general de la fun ion de transferen ia de pulso para un pro eso es:
n= bn a1b1n an 1 1 an 1 1
2.3 Fundamentos de Sistemas Dis retos 59
6 .
.
.
. . .
7564 xn 1 (k)
640
0 0 1 0 xn(k) 0
0 0 0 1 a1 xn(k) b1 a1b0
(2.52)
y ( k) = 0 0 0 1 x(k) + b0u(k) (2.53)
46 xn 1 k ( + 1)
57 0
.
0 pn x n (k ) 1
xn
(k + 1)
y ( k) = 1 2 n x(k) + b0u(k) (2.57)
60 Sistemas Dis retos
y(z)
= b0 +
X n
i
; i = lim
y(z)
(z p i) (2.58)
u(z) z pi z !p i u(z)
i=1
66 76 77 66 7
0 0 p 0 0 0 0 0 x (k) 1
1
76 3
0
77
x(k + 1) =
6 0 0 0 p2 1 0 0 0 76 x4(k)
7 + 1
646 75
1
u(k)
64 0
0
0
0
0
0
0
0
0
00
0
p02
0
p06
0
00
p7
00
0 5746
x
x56(k)
(k)
x7(k) 5 1
0 0 0 0 0 0 0 p8 x8(k) 1 (2.59)
y(k) = 1 2 3 4 5 6 7 8 9 x(k) + b0u(k) (2.60)
y(z) 8
X
1 2 3 4 5 i
= b0 + 3
+ 2
+ + 2
+ +
u(z) (z p ) 1 (z p ) z1 p (z p )1 zp 2 2 i=6 i
zp
(2.61)
Ejemplo 2.10
y(z) = PP 6
i=0 biz
6
i
i
u(z) 1+ i=1 ai z
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
Ejemplo 2.12
10 yd_
Mux
2s+1
u Proceso parcial Tiempo yd Graph
muerto yd Mux
yda
10 −Tt^3/120s3+Tt^2/10.s2−Tt/2s+1 yda_
yda
2s+1 Tt^3/120.s3+Tt^2/10.s2+Tt/2.s+1
Proc. parcial Aproximación del tiempo muerto
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
s olida) y de su modelo aproximado ( urva en trazos) mediante una rela i on
Pad e de ter er orden (ejemplo 2.12).
66 Sistemas Dis retos
6
donde det(M ) = 0. M es ono ida omo la matriz de ontrolabilidad, la ual
puede ontener olumnas o las linealmente dependientes. Por onsiguiente,
para que un pro eso sea ompletamente ontrolable, lo que quiere de ir, para
que su matriz de ontrolabilidad solo posea las o olumnas independientes,
se debe umplir que:
1
rango(M ) = rango([H GH : : : GN H℄) = n (2.62)
donde n es el orden del pro eso. Para N < n no existe solu ion para u, y
para N > n la solu ion no es uni a.
La determina ion de la ontrolabilidad ompleta en el espa io de estado
ontinuo es similar. Basta reemplazar en M , A por G y B por H.
y(k) = Cx(k)
y(k) = Cx(k)
y(k + 1) = CGx(k) + CHu(k)
y(k + 2) = CG2x(k) + CGHu(k) + CHu(k + 1)
.
1 2
y(k + n) = CGn x(k) + [0; CH; CGH; : : : ; CGn H℄Un (2.63)
donde (asumiendo que los ve tores de entrada son ompletamente ono idos)
donde:
S = 6
0
0
0
. 0.
.
0
0
0
0
0
CH
.
7
4
.
0 CH CGH : : : CGn 2H
5
Despejando, el ve tor in ognita se obtiene de:
1
x(k) = N [Yn SUn ℄ (2.65)
6
siempre que det(N ) = 0. Luego, para que el pro eso din ami o sea observa-
ble, la matriz de observabilidad N debe umplir:
rango[N ℄ = n (2.66)
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 ap tulo presenta la deriva i on de modelos din ami os de pro esos ontinuos
on su orrespondiente linealiza i on y dis retiza ion. Tambi en se explora la
respuesta de los pro esos a entradas t pi as y se determina las ara ter sti 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 ser an
disen~ados en los ap tulos siguientes. La u ltima se i on propone la deriva ion
de modelos din ami os de otros pro esos. Todos los ar hivos orrespondientes a
los ejer i ios y problemas desarrollados en este ap tulo 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
lv /2
meg
m vg lv
le
z’
0
z
P
F
ze = z + lesen (3.1)
l
z = z + v sen (3.2)
v
2
3.1 Modelo del Pro eso P endulo Invertido 71
X
N
i=1 mi
d2
~ri =
X
M
~
j=1 Fj (3.3)
dt2
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 i on z)
obtenemos:
d2 d2 d2
m 2 z + m e 2 z e + m v 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 i on
(3.4) obtenemos:
d2 d2 d2 lv
m 2 z + me 2 (z + lesen ) + mv 2 (z + sen ) = F (3.5)
dt dt dt 2
y desarrollando las derivadas resulta:
lv lv
(m +m e +mv )z• (me le +m v )(sen )+ _ 2 (m ele +m v )( os ) • = F (3.6)
2 2
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:
XN
i=1 Ji
d2
i =
X
M
j=1 j (3.7)
dt2
donde j es el j- esimo torque externo, Ji es el momento de iner ia de la
i-esima part ula respe to al punto P y i es el a ngulo re orrido por la i-
esima part ula alrededor del punto P. Para apli ar esta ley al movimiento
rotatorio de la varilla alrededor del punto P utilizamos la ter era ley de
Newton, la ual nos permite remplazar el efe to de la a elera i on del sistema de
referen ia Z 0 Y 0 por una fuerza mi z• apli ada en el entro de gravedad de
72 Modelado de Pro esos
las part ulas i de di ho sistema, pero en dire ion opuesta a la a elera ion.
Empleando la e ua i on (3.7) en la gura 3.2 obtenemos:
lv lv
(Je +Jv ) • = m eg(sen )l e +m vg(sen ) m ez•( os )l e m vz•( os ) (3.8)
2 2
y ordenando:
lv
(m l + m lv )g(sen ) (m l + m )z•( os ) = (J + J ) • (3.9)
e e v e e v e v
2 2
donde:
l2
Je = mel2e; Jv = mv v (3.10)
3
Ra m
+
u Va Vb Jo rp
-
La Jm F
Bm Bo
R a i a + Vb = K A u = V a (3.11)
El voltaje ontraele tromotriz est a representado por:
V b = K b _m (3.12)
Apli ando la segunda ley de Newton para el movimiento rotatorio en el
sistema me ani o del servomotor, obtenemos:
Tm = Jeq •m + Beq _m + n F rp (3.13)
3.1 Modelo del Pro eso P endulo Invertido 73
donde:
El torque produ ido en el eje del servomotor viene dado por la e ua ion:
Tm = K m i a (3.16)
Las e ua iones (3.6), (3.9) y (3.20) representan el modelo matem ati o del
pro eso p endulo invertido ontrolado por la orriente de armadura. Tales
e ua iones pueden ser es ritas en forma ompa ta:
M1 z• M2 (sen ) _ 2 + M2 ( os ) • F =0 (3.21)
donde:
lv
M 1 = m + me + m v ; M 2 = m el e + m v (3.24)
2
Jeq
J1 = Je + J v ; J2 = (3.25)
n2r p2
Km Beq K bK m
K = ; Bx = + (3.26)
x
Ranrp n2r2Ra
n2r p2 p
x1 = (3.27)
x2 = _ (3.28)
x3 = z (3.29)
x4 = z_ (3.30)
2 3 2 x2 3
66 x_1
x_ 77 6 M2(sin x1)( os x1)x
2
2
Bx( os x1)x4 (M1+J2)g(sin x1)+Kx( os x1)KA u
77
5 46
(M2 ( os2 x1 ) (M1 +J2 )J1 )=M2
x_32
4 x_4
=
2 2
x4
M22g(sin x 1)( os x 1) J M1 (sin 2
2 x )x1+J2 B x1J x
M2 ( os x1) (M1+J2)J1
K 4K u 1 x A 5
(3.31)
y puesto que en nuestro sistema tenemos omo salidas disponibles el despla-
zamiento angular de la varilla y el desplazamiento del arro, la e ua ion de
salida toma la forma siguiente:
y = Cx (3.32)
donde:
1 0 0 0
C= (3.33)
0 0 1 0
3.1 Modelo del Pro eso P endulo Invertido 75
T
x_ = x1 x2 x3 x4
T T
f = f1 f2 f3 f4 = x_1 x_2 x_3 x_4
en donde u es la sen ~al de ontrol, x_ es el ve tor de estados y f es una fun ion
ve torial de variable ve torial. La expansion en serie de Taylor alrededor del
punto de opera ion (x; u) resulta:
f (x; u) f (x; u)
x_ = f (x; u) + (x x) + (u u) +
x u
2 2 2
1 f (x; u) f (x; u) f (x; u)
(x 2
x) + 2 (x x )(u u) + (u u) 2 +
2! x2 xu u2
(3.35)
Si la varia i on de las variable residuales (x x ) y (u u ) es pequen~a, enton es
se pueden despre iar los t erminos de orden superior. En el aso que nos
o upa, el punto de opera ion (o estado de equilibrio) se ubi a alrededor del
origen: x = [0; 0; 0; 0℄T = 0 y u = 0, enton es la e ua ion (3.34) se puede
es ribir omo:
f (0; 0) f (0; 0)
x_ = f (0; 0) + x+ u (3.36)
x u
Dado que f (x; u) es una fun i on de variable ve torial, su derivada par ial
on respe to a x y u viene a representar la opera i on ja obiana (ver ejemplos
2.1 y 2.2). Enton es, la e ua i on (3.35) se onvierte en:
2 f1 (0;0)
x1
f1 (0;0)
x2
f1 (0;0)
x3
f1 (0;0)
x4
3 2 f1 (0;0)
u
3
x_ = f (0; 0) + 6 f2 (0;0)
f x
3
1
(0;0)
f2 (0;0)
f x
3
2
(0;0)
f2 (0;0)
f x
3
3
(0;0)
f2 (0;0)
f x
3
4
(0;0) 7 66 f2 (0;0)
u
75
x1
f4 (0;0)
x2
f4 (0;0)
x3
f4 (0;0)
x4
f4 (0;0)
4x+ f3 (0;0)
u
f4 (0;0) 7
u
x1 x2 x3 x4 u
(3.37)
76 Modelado de Pro esos
x_ = Ax + Bu (3.38)
donde: 2 0 1 0 0
3
(M1+J2)M2g 2
2
00 B x M2
(M1 +J2 )J1 M 22 7 (3.39)
A=
6 (M 1+J 2 )J 1 M
46 0
M 22g
0 0 1
57
62 3
0 0 J B
(M 1+J 2)J 1 M2
2
(M 1+J 21)Jx1 M22
577
0 (3.40)
64
22
(M 1K
+J 0)J2K
xM 1 AM
B= 2
J1 K x K A 2
(M1 +J 2 )J1 M
2
x(t) = (t t0)x(t0) +
Z t
(t )Bu( )d (3.43)
t0
G = (T ) (3.46)
3.2 Modelo del Pro eso Grua-Puente 77
H=
Z T
( )(d ) B (3.47)
0
La e ua i on de salida en tiempo dis reto viene a ser:
z F
Carro
Gru’a puente
y’
y y’
z
P z’
0
F z
lv
2
le
m g lv
v
meg
lv
z =zsen (3.50)
v
2
Apli ando la ley de Newton para el movimiento lineal dada por la e ua ion
(3.3) en la dire ion z, obtenemos:
d2 d2 d2
m 2 z + m e 2 z e + mv 2 z v = F (3.51)
dt dt dt
Luego, sustituyendo ze y zv en fun ion de z:
d2 d2 d2 lv
m 2 z + me 2 (z lesen ) + mv 2 (z sen ) = F (3.52)
dt dt dt 2
y desarrollando las derivadas, tenemos:
lv lv
(m +me+m v )z•+(m ele +m v )(sen ) _2 (m l +m
ee v )( os ) • = F (3.53)
2 2
Ahora, apli ando en la gura 3.5 la segunda ley de Newton para el movimien-
to rotatorio dada por la e ua i on (3.7) alrededor del punto P:
lv
(J + J ) • = m z•( os )l + m z•( os ) m g(sen )l m g(sen ) lv
e v e e v e e v
2 2
(3.54)
3.2 Modelo del Pro eso Grua-Puente 79
y reordenando, obtenemos:
lv
(m l + m lv )z•( os ) (m l + m )g(sen ) = (J + J ) • (3.55)
e e v e e v e v
2 2
donde:
l2
Je = mel2e; Jv = mv v
3
26 37 26 x2
3
64 4x_12 2
577
=
x_3 M2(sin x1)( os x1)x2 Bx( os x1)x4 (M1+J2)g(sin x1)+Kx( os x1)KA u
6
x_4
2
( M2 ( os2 x1 )+(M1 +J2 )J1 )=M2
M2 g(sin x1)( os x1) J1M2x(sin4 x1)x 2 J1Bxx4+J1KxKA u
M2 ( os 2 x1 )+(M1 +J
2
1
2 2 )J
(3.63)
y puesto que tenemos omo salidas disponibles el desplazamiento angular de
la varilla y el desplazamiento del arro, tendremos enton es omo e ua ion
de salida la siguiente expresi on:
y = Cx (3.64)
donde:
1 0 0 0
C= (3.65)
0 0 1 0
x_ = Ax + Bu (3.66)
donde:
2 0 1 0 0 3
66
(M1+J2)M2g
(M 1+J 2)J 1 M 2
2
0 0 B x M2
(M1 +J2 )J1 M 22 77 (3.67)
M 22g J1Bx
A= 0 0 0 1
4 (M 1+J 2)J 1 M2 0 0 (M 1+J 2)J 1 M2
5
y 26 2
0 3
2
B=
64
KxM2KA
(M 1+J 2)J 1 M2 7
0
J1 K x K A 2
2
57 (3.68)
(M1 +J 2 )J1 M
2
La tabla 3.1 muestra las variables y par ametros para los pro esos p endulo
invertido y gru a-puente. Los valores de los par ametros se obtuvieron de las
hojas de espe i a iones y por medi ion.
Al analizar la urva velo idad vs. voltaje de entrada del servomotor ( gu-
ras 3.6 y 3.7) se puede observar una zona muerta originada por la fri ion
est ati a . Tal fri i on iguala al torque ne esario para omenzar a mover el
servomotor; es de ir, debido a la presen ia de la fri i on estati a, el servo-
motor permane e en reposo siempre que no re iba un nivel de voltaje que
supere un determinado umbral.
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
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 par ametros valorados para los pro esos p endulo in-
vertido y grua-puente.
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
I MO
T N1 RO
+ LO
u+ Kact eb Jm m
- - q
TM m
TL
R L
bm q
m JL
N 2 = n N1
N2 bL
nT = nTM + TE + TL + TN (3.69)
donde:
TM = Jm w_m + bm wm = nJm w_ + nbm w (3.70)
2 2 2 1 2
TL = (Mo Lo + Mo Ro + mLo + JL )w_ + bL w (3.71)
5 3
m )sen q (3.72)
TE = gLo(Mo +
2
Reemplazando las e ua iones (3.70), (3.71) y (3.72) en la e ua i on (3.69) se
obtiene:
nTm = M w_ + Bw + N sen q + TN (3.73)
donde: 2 1
M=J 2 2 2
B = n 2b m + b L (3.77)
eb = Ew m (3.79)
Va = uKa t (3.80)
3.3 Modelo del Servomotor D.C. No Lineal 87
T = KI (3.81)
x_1 = x2
N B 1 nK
x_2 = ( )senx1 x2 TN + x3
M M M M
nE R K a t
x_3 = x2 x3 + u (3.85)
L L L
donde la salida es la posi ion x1. Por onsiguiente:
2 x2 3
F (x) =
4 3 ( NM )senx1 M xB2 M TN 1+
nE R
nK
M x3 5
2 0 ;
L x2 L x3
H(x) = x1 (3.86)
G(x) = 4 5 0
Ka t
L
Las matri es dadas en (8.38) representan el modelo matemati o del pro eso
onsiderando arga no lineal. La gura 3.10 muestra el diagrama de simu-
la i on del pro eso (ar hivo servsim.m) y la gura 3.11 muestra la respuesta
88 Modelado de Pro esos
cc
gan1 fricción de
Coulomb
Kact + n*K − 1 w 1 q
− +
R − Ms+B s
gan5
sum1subsistema sum2 subsistema Integrador gráfico
eléctrico mecánico
u n*E
gan2 MATLAB
N Function
gan3 seno
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
"
y la e ua i on (8.38) pasa a ser:
x2
#
F (x) =
N B n2 KE x2 1
M senx 1 M + MR M TN
0
G(x) = nKKa t u ; H(x) = x1 (3.88)
RM
La e ua ion 3.92 indi a que en la implementa ion del software del sistema
de ontrol debemos ompensar la sen ~ al 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 sen ~al de ontrol u
pueden saturar al servomotor, es que se requiere un limitador de la tension
de ontrol u. Este limitador puede tambi en implementarse en el software
de ontrol. Se ha determinado experimentalmente que para no entrar en la
zona de satura ion del servomotor, la sen ~al de ontrol ompensada no debe
sobrepasar el umbral de 1.4 voltios.
y(z) Gp(s)
Gp (z) = = (1 z 1)Z (3.95)
u(z) s
Dado que un mismo pro eso puede tener multiples representa iones de esta-
do, a partir de la e ua i on (3.96) podemos determinar diversas representa-
iones de estado de la forma:
0 1 0
G= ; H= ; C= b2 a2b0 b1 a1b0 ; D = [0℄
a2 a1 1
(3.100)
Tener en uenta que para nuestro pro eso b 0 = 0. Si sele ionamos omo
variables de estado x 1 = y(k), x2(k) = y(k + 1) b1u(k), obtendremos la
segunda forma an oni a ontrolable (subse i on 2.3.5):
0 1 b1
G= ; H= ; C= 1 0 ; D = [0℄
a2 a1 b2 a1b1
(3.101)
La fun i on de transferen ia de pulso del pro eso tambi en se al ula de:
y(z) 1H
b1z 1 + b2z 2
Gp(z) = = C(zI G) = (3.102)
u(z) 1 + 1a z 1 + a2z 2
Cal ular los eigenvalores del pro eso, tanto en el dominio ontinuo
omo en el dominio dis reto.
Gra ar las respuestas del pro eso ontinuo y del pro eso dis retizado
uando las sen~ales de entrada son del tipo es alon.
Problema 3.1
Masa de 1/4
x1 del bus m1
k1 u b1
x2 Masa de la m2
suspension
k2 b2
w
Se puede demostrar que las e ua iones de estado y de salida del pro eso son:
2 3 2
x_1 0 1 0 0
32 3 2 x1 01 3 2 3
64 75 664
x•1
=
a21 0 a23 b1
7 x_1
+ u+ a0b21 w
5746 75 46
0 a33 1
y_1
y_2
m
k2
2
b2
m
2
0 a43
m1
0
y1
1
m1
0
1
75 64 75m
k2
2
2
m1 m2 m
y2 + 2
26 37 x1
y= 0 0 1 0
4 5 x_1 + 0 0 u
y1 w
y2
donde:
y 2=
Z k1 k1
y1 = x 1
k2
x2
1 1
+ y 1 (w x ) +2 + u dt
m1 m2 m2 m1 m2
b1 b2 b1 b1 b1 b2 k 1
a21 = ; a23 = + +
m 1m 2 m1 m1 m2 m2 m1
b1 b1 b2 k1 k1 k2
a33 = + + ; a43 = + +
m1 m2 m2 m1 m2 m2
% P3_1P3.m SOLUCION AL PROBLEMA 3.1
lear all
94 Modelado de Pro esos
% 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
2 2
y(k) para u=1, w=0
y(t) para u=1, w=0
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 avi on 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 i on del avion mostrado en la gura 3.14 es un problema
longitudinal.
Empuje
x
Impulso
e
x’
Arrastre
e
z
Peso
z’
= 0 0 1 q
% 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
r
L BARRA
ESFERA
LEVA
ENGRANAJE
d
r_
=
0 1 r " 0 # r_
r• 0 0 + Mgd
J
L R2
+M
100 Modelado de Pro esos
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
2
salida para esta situa i on son:
2 3r_ 0 1
0 0 Mgd
0 0 32 3 2 3
6 75 6
r•
= J
0 76 57 6 57
r_ r
+
00
u
4 _
•
0 0
0 0
L R2
+M
0
0
1
0
4 4 _ 1
0
2 3
r
y= 1 0 0 0 6 75
r_
_
4
El modelo des rito est a 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
Calor perdido
Calentador electrico Qo
+
Calor entregado
Vc Qc Temperatura
exterior
Temperatura
_ interior o
i
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 uadr ati 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:
d i 1 1 1
= i + 0 + V 2 = f ( i; ; Vo )
dt 3000 3000 60000
Para efe tos de linealiza i on podemos de nir las siguientes variables:
i = i i; o = o o; v=VV
di f f f
= i + o + v
dt i i o o
V V
di 1 1 1
= i + o + v
dt 3000 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 est an sujetos a fri iones B2 y B3. Los arros
se a oplan uno al otro on dispositivos no r gidos (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
x_ = Ax + Bu(t)
donde:
26 0 1 0 0 0 0
3
A=
6
K12
M1
0
B
2 1
+B1
0
M1
K12
M1
0
B12
M1
1
0
0
0
0
77
K12 B12 K12+K23 B2 +B23 +B12 K23 B23
64 M2
00
M2
00 K
M2
023
M3
M2
0
B23
M2
0
K23
M2
1
B3 +B2
57
M3 M3 3
x = [x1 v1 x2 v2 x3 v 3 ℄T M3
B = [0 1 0 0 0 0℄T
106 Modelado de Pro esos
x1
x2
x3
B 23 B 12
2do. CARRO 1er. CARRO MAQUINA
M3 M2 M1
K 23 K 12
B3 B2 B1
Figura 3.20: Pro eso monorriel de dos arros mas un arro de m aquinas.
yi = i vi ; i = 1; 2; 3
donde i es la onstante ta om etri a. Asumir los siguientes valores para
los parametros: M2 = M3 = 2M1 = 2600 kg, K23 = K23 = 100000 N/m,
B23 = B12 = 500 N-s/m y B2 = B3 = 2B1 = 10000 N-s/m.
% P3_5P7.m SOLUCION AL PROBLEMA 3.5
lear all
% MODELO DEL MONORRIEL
M2=2600; M3=M2; M1=1300; K23=100000; K12=K23; alfa=1;
B23=500; B12=B23; B2=10000; B3=B2; B1=5000;
A = [0 1 0 0 0 0
-K12/M1 -(B1+B12)/M1 K12/M1 B12/M1 0 0
0 0 0 1 0 0
K12/M2 B12/M2 -(K12+K23)/M2 -(B2+B23+B12)/M2 K23/M2 B23/M2
0 0 0 00 1
0 0 K23/M3 B23/M3 -K23/M3 -(B3+B23)/M3℄;
B = [0;1;0;0;0;0℄;
C = [0 alfa 0 0 0 0
0 0 0 alfa 0 0
0 0 0 0 0 alfa℄; D = [0;0;0℄;
3.4 Problemas Resueltos 107
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 i on ( gura 3.22(b)),
108 Modelado de Pro esos
0.1
0.08
Salidas continuas
0.06
0.04
0.02
0
0 0.5 1 1.5 2 2.5 3
Tiempo en segundos
0.1
0.08
Salidas discretas
0.06
0.04
0.02
0
0 0.5 1 1.5 2 2.5 3
Tiempo en segundos
el ual no debe ex eder los 200 volt. Esto signi a una velo idad x 1 en
estado estable de:
0:001
x1 = (200) = 1 m=s
s + 0:2 s=0
Observar en la gura 3.22(d) que la velo idad y posi ion del elevador se
miden separadamente. Entre pisos, el ampli ador de poten ia se en uen-
tra en estado de satura i on, generando 200 volt, dependiendo de si el
as ensor est a subiendo o bajando. Cuando el as ensor se aproxima al piso
donde debe parar, la opera ion del ampli ador pasa a la zona lineal. En esta
situa ion debe a tuar un ontrolador para posi ionar suavemente al as-
ensor empleando las medi iones de velo idad y posi ion del as ensor. Tales
medi iones, as omo tambi en la medi ion del voltaje de armadura en la zona
de satura ion, estan disponibles para ada piso. La gura 3.22(d) muestra el
sistema de ontrol digital del as ensor. Las e ua iones de estado y de salida
del as ensor son:
2 3 2 x
x__ 12 0:2 0 0 0 32 3 2 3
xx12 100 3
64 75 6 1 0 0 0
76
54 57 64 75 +
4 x_3
x_4
=
2
5
0
0 0
2
5
0
x3
x4
0
0
3.4 Problemas Resueltos 109
y= 0 1 00 x
% 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 x
memoria mas 2
sensores x4
Computador Amplificador
digital
x3 Voltaje de sensor de
armadura velocidad
v
A/D
sensor de posicion x 3
(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
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 i on. Subpro eso el e tri o:
1 vC dIM
IR = (v vC ); C = IR IM ; L = vC e
R dt dt
114 Modelado de Pro esos
20
15
Humedad continua
10
−5
0 2 4 6 8 10 12 14 16 18 20
Tiempo en segundos
20
15
Humedad discreta
10
−5
0 5 10 15 20 25
Tiempo en segundos
Motor:
T = K tI M ; e = K e! 1
Resorte torsional mas la iner ia J:
dT d!2
= K! (!1 ! 2); J =T
dt dt
Sele ionando omo variables de estado x 1 = vC , x2 = IM y x3 = !2, y
omo salida y = x3, la representa i on de estado del pro eso resulta:
x_ = Ax + Bu; y = Cx
2 1 1
3
A= 4 RCK!
LK! +KtKe
C
0 KeK!
0
LK! +KtKe
5
2 3RC
1
0 Kt
J
0
0
0
; B=
C= 0 0 1
4 5
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
-
- 2
T 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
Determinar el modelo matem ati o que des riba la dinami a del pro eso
(si no lo tuviera).
Cal ular los eigenvalores del pro eso, tanto en el dominio ontinuo
omo en el dominio dis reto.
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
Problema 3.9
Las e ua iones del modelo linealizado para ontrolar la posi i on angular del
an
~on ubi ado en la la torreta de un tanque mediante un a tuador hidrauli o
son las siguientes (ver gura 3.28):
_ = !
!_ = p + d
Km Km
p_ = mp q+ !+ d p
J J
q_ = K v L v q Kv K p Jp + K v u + dq; Lv = 1
donde es el angulo de la torreta, ! es la velo idad angular de la torreta, p
es la a elera ion angular produ ida por el a tuador hidrauli o, q es el des-
plazamiento de la servovalvula, Km = [8.46 106 , 1.96 106 ℄ (el primer valor
118 Modelado de Pro esos
Angulo de
elevaci’on
Azimut: a’ngulo de
posicionamiento horizontal
Problema 3.10
Una olumna de destila i on 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 nu mero 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
Extractante
(glycol)
Agua
T S: flujo lateral T1
Mezcla de 1
de vapor
agua e iso-
propanol z
1 Propanol
Glycol T
T 2
2
z2
u 1 : vapor de
calentamiento
Producto (glycol) Concentraciones Temperaturas
x = Ax + Bu + F d; y = Cx
donde:
x=
62 Q1
37; u= T1
64 V1
z1 75 u1
S
; d=
xF A1
FA
; y=
T2
z2
2 a11 00 0 b11 3 2 0 3
A=
46 a21
0
a22
0 0
a32 0
0 ; B=
0
0 57 64 b32
0
75
2 0 a42) 0
0 3 0
b42)
6
0
0
0
0 77
F=
f31 f32 ;
0 f42
50 0
C = 0 0 013 24
0
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 i on del ambio
de interfase entre el agua y el isopropanol, z2 es la posi i on del ambio de
interfase entre el agua y el gly ol, T 1 y T2 son los ambios de temperatura
en z1 y z2, FA es el ujo de la mez la de agua mas isopropanol, y x F A1 es
la omposi ion de la mez la de agua m as 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 i on 3.2. Notar ahora que el eje de salida del me anismo de redu i on
est a 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
+
u Va eb Lo
m
- K
Jm
L Bm
BL JL
Problema 3.12
La gura 3.31 muestra el pro eso servomotor on arga no lineal des rito en
la se i on 3.3, en donde la arga no lineal posee ahora dos grados de libertad.
3.5 Problemas Propuestos 121
Mo Ro
L
m
Unio’ n
R m no
+ flexible
Lo
u Va eb
m
-
Jm
L Bm
BL JL
Figura 3.31: Servomotor on arga no lineal de dos grados de libertad. El
a oplamiento de la arga al eje del motor no es exible.
Problema 3.13
La gura 3.32 muestra el pro eso p endulo doble no lineal. Las e ua iones
que des riben la din ami a del pro eso p endulo simple fueron dedu idas en la
se i on 3.1. Para dedu ir el modelo matem ati o del pro eso p endulo doble
onviene emplear las e ua iones de Lagrange de la me ani a lasi a. El
a oplamiento entre los dos p endulos no es exible. Los dos p endulos poseen
la misma longitud y la masa esf eri a es de 0.02 kg.
Problema 3.14
La gura 3.33 muestra el pro eso doble gru a-puente no lineal. Las e ua iones
que des riben la din ami a del pro eso gru a-puente fueron dedu idas en la
se i on 3.2. Para dedu ir el modelo matemati o del pro eso doble gru a-
puente onviene emplear las e ua iones de Lagrange de la me ani a l asi 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’
gru’ a puente
Control Optimo
Este ap tulo desarrolla un pro edimiento para disen~ar sistemas de ontrol optimo
esta ionarios y no esta ionarios, usando una ley de ontrol optima uadrati a que
emplea las sen ~ales del pro eso medidas dire tamente o estimadas mediante un
observador optimo. Las on gura iones usadas para el disen~o son el regu-
lador optimo propor ional y el regulador optimo propor ional integral. La ultima
on gura i on an ~ade un integrador al ontrolador on el prop osito de redu ir el
error en estado estable. El pro edimiento de disen~o desarrollado, puede ser
apli ado tanto a sistemas univariables omo a sistemas multivariables.
Dos apli a iones validan el pro edimiento de disen~o desarrollado: ontrol
optimo de los pro esos p endulo invertido y gru a puente. La penu ltima se i on,
problemas resueltos, est a dedi ada al disen~o de sistemas de ontrol optimo
esta ionarios para diferentes pro esos. La ultima se ion propone problemas de
disen
~o a resolver. Todos los ar hivos orrespondientes a los ejer i ios, proble-
mas, disen~os, simula iones y software desarrollados se pueden des argar del sitio
http:// ee.uni.edu.pe/728681F.
4.1 Introdu i on
El ontrol optimo trata de determinar el \mejor" sistema de ontrol emplean-
do una t e ni a optima de disen~o. Esta t e ni a asume la formula ion de una
fun ion matemati a denominada la fun i on de osto, tambi en ono ida omo
fun i on de rendimiento, ndi e de rendimiento o ndi e de fun ionamiento,
entre otras denomina iones. El pro edimiento de disen ~o del sistema de on-
trol optimo trata de en ontrar un extremo (un m nimo o un maximo, dado el
aso) de una fun ion de osto on el proposito de determinar los par ametros
124 Control Optimo
J= X
N
L(x(k); r(k); u(k)) (4.1)
k=0
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 tambi en
fuerza o sen
~ al de ontrol) onstituye la entrada al pro eso a ontrolar.
Para apli a iones pr a ti as, el ve tor de ontrol u debe estar siempre
a otado. Por ejemplo,
ju (k)j
i Ui (4.2)
donde ada elemento Ui es una onstante determinada (el sub ndi e denota
la omponente i del ve tor u). Para el aso de ontrol a otado on m nimo
gasto de energ a, se puede formular:
1
J = xT (N )Sx(N ) +
X
1 N1
xT (k)Qx(k) + uT (k)Ru(k) (4.4)
2 2
k=0
no pudieran ser medidos dire tamente, ser ne esario estimarlos. Esta esti-
ma ion puede ser realizada empleando la t e ni a de observa ion de estados
que ser a 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 uadr ati o puede obtenerse
empleando varios enfoques, tales omo el m etodo de minimiza i on 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:
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 i on al problema del ontrol optimo uadr ati o no esta ionario
est a dada por la siguiente matriz de ganan ia del ontrolador:
1
K(k) = [R + H T P (k + 1)H℄ H T P (k + 1)G (4.8)
P (N ) = S (4.10)
J=
1
2
X
1
xT (k)Qx(k) + uT (k)Ru(k) (4.12)
k=0
Por otra parte, en el estado esta ionario la matriz P (k) resulta una matriz
onstante P . De este modo la e ua ion de Ri ati en estado esta ionario
toma la forma:
1
P = Q + GT P G GT P H[R + H T P H℄ HT P G (4.13)
u(k) x (k)
H I z -1
-K
k3
.
kn
Apli ando la propiedad del valor nal (subse ion 2.3.2) a y(z) obtenemos:
z 1
lim y(k) = lim y(z) = C(I G + HK) 1 Hk 2R (4.22)
k!1 z !1 z
130 Control Optimo
J=
1
2
X
1
xT (k)Qx(k) + uT (k)Ru(k)
k=0
Ejemplo 4.1
R L
+ T
+
.
V e=K J
- -
b
I b
x1
y = x1 = 1 0 + DV ; D = [0℄
x2
El programa ejem4 1.m resuelve el problema planteado y los resultados se
muestran en la gura 4.4.
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 sen
~al 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 i on 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 x_1 J J
32 3 2 3 x1 0
4 54 x_2 = K
b K
R
L
54
0
x2 + V
L
545 x 1
L
42 35
3 1 0 0 3 0
y = x3 = 0 0 1 xx12 + DV ; D = [0℄
x3
4.5 Sele ion de las Matri es de Pondera i on 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)
4.6 Disen
~ o del Observador Optimo Cuadrati o
En mu hos asos pr a ti os, s olo 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 disen~o 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 i on 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 sen
~al de ontrol u(k).
De la gura 4.6 podemos formular:
x
^ (k + 1) = Gx f
^ (k) + H u(k) + Ke [y(k) Cx
^ (k)℄ g (4.26)
4.6 Disen
~ o del Observador Optimo Cuadrati o 137
Ke
+
+ ^x (k) - +
H I z -1 C
+
+
G
det[zI G + Ke C℄ = 0 (4.28)
N = [ CT GT CT (GT )n 1 C T ℄ (4.29)
138 Control Optimo
G !G T
; H !C T
; K !K e T
(4.31)
J =
2
X
11 T
(k)Qe (k) + T
(k)Re (k) (4.34)
k=0
Ejemplo 4.3
Disen
~ar un observador optimo para el pro eso motor D.C. del ejemplo 4.2
asumiendo que se requiere observar los estados x 1, x2 y x3.
Solu i on: Ver programa ejem4 3.m. En la gura 4.3 se muestra la evolu-
i on de los valores de algunos elementos de P e hasta al anzar el estado de
equilibrio.
% ejem4_3.m OBSERVADOR OPTIMO PARA EL MOTOR D.C.
lear all
J = 0.01; b = 0.1; K = 0.01; R = 1; L = 0.5;
A = [-b/J K/J 0
-K/L -R/L 0
1 0 0℄;
B = [0;1/L;0℄;
C = [0 0 1℄; D = [0℄;
T = 0.05; % SELECCIONADO EN EL EJEMPLO 4.1
[G,H,C,D℄ = 2dm(A,B,C ,D ,T,'zoh'); % CONVERSION A DISCRETO
Pe =zeros(3,3); % ondi ion ini ial
Qe = [1 0 0;0 1 0;0 0 1℄; Re = [1℄; % TODOS CON IGUAL PESO
for k=1:40
Pe = Qe + G*Pe*G' - G*Pe*C'*inv(Re + C*Pe*C')*C*Pe*G';
pe11(k) = Pe(1,1); pe21(k) = Pe(2,1); pe31(k) = Pe(3,1);
end
t = linspa e(0,length(pe11),length(pe11)); % EJE DE TIEMPOS
plot(t,pe11,t,pe21,'--',t,pe31,'-.');
xlabel('Muestras k');
ylabel('Algunos elementos de Pe'); grid
print -deps -f ejem4_3
Ke = inv(Re + C*Pe*C')*C*Pe*G'; % GANANCIA DEL OBSERVADOR
1.8
1.6
1.4
1.2
Algunos elementos de Pe
0.8
0.6
0.4
0.2
0
0 5 10 15 20 25 30 35 40
Muestras k
pueden apare er si los par ametros 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 lusi on de a i on 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
sen
~al de salida v(k) y una ganan ia integral KI aso iada. Siendo la sen
~al de
r(k) v(k) u (k) x (k) y (k)
KI H I z-1 C
+ + +
- - +
I z-1 G
referen ia r(k) un es alon unitario, de la gura 4.8 podemos dedu ir que las
4.7 El Regulador O ptimo Propor ional Integral 141
La sen
~ al de ontrol u(k) viene dada por:
K= K1 K2 Kn (4.41)
de donde se obtiene:
x(k + 1) G HK HK I x(k) 0
= + r(k + 1)
v(k + 1) CG + CHK 1 CHK I v(k) 1
(4.45)
x(k)
y(k) = C 0 (4.46)
v(k)
En el estado de equilibrio (para k !1
), los valores de x(k), u(k) y v(k)
1 1 1
toman valores esta ionarios x( ), u( ) y v( ). As la e ua i on (4.45) se
onvierte en:
1
x( ) G HK HK I 1
x( ) 0
= + (4.47)
v(1) CG + CHK 1 CHK I v(1) r
142 Control Optimo
Si de nimos:
x(k) 1
x( ) = xe(k) (4.48)
v(k) v(1) = v (k)e (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 HK I xe(k)
=
ve(k + 1) CG + CHK 1 CHK I ve(k)
G 0 xe(k) H xe(k)
= + K KI (4.50)
CG I ve(k) CH ve(k)
~ (k) + H
(k + 1) = G ~ w(k) (4.51)
w(k) = ~ (k)
K (4.52)
donde:
xe(k)
(k) = (4.53)
ve(k)
~ (k) = G 0
G (4.54)
CG I
~ (k) = H
H (4.55)
CH
~ (k) =
K K KI (4.56)
Observar que la in lusion de un integrador en el sistema de ontrol aumenta
en uno el orden del sistema; es de ir, si n es el orden del sistema original, el
nuevo orden del sistema on un integrador es (n + 1). En otras palabras, el ve
tor de estado x(k) del sistema original posee dimensi on n, mientras que el
ve tor de estado (k) del regulador propor ional integral posee dimensi on (n
+ 1).
Teniendo en mente las rela iones anteriores, podemos de nir la siguiente
fun ion de osto:
J=
11Xh ~ (k) + w 2(k)R
(k) Q ~T
i (4.57)
2
k=0
4.7 El Regulador O ptimo Propor ional Integral 143
Debemos enton es al ular una matriz K ~ ade uada de forma tal que mini-
mi e la fun i on 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
~ ℄ 1H
~ T P~ G
~ (4.58)
~ = [R
K ~+H
~ T P~ H
~℄ 1 ~ T P~ G
H ~ (4.59)
La sele ion del tiempo de muestreo se trata en la subse ion 4.9.6.
Ejemplo 4.4
Disen~ar 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)
4) Cal ular la matriz de ganan ia optima K e del observador (se ion 4.3).
2 0:0002
3 2 0 0004 3
:
1 0002
: 0:0050 0
= 6 0 0995
57; = 6 0 1497
: 1:0002 0 0:0963 :
4 0 0000 4 0 0002 75
G H
: 0:0000 1:0000 0:0049 :
0:0019 0:0000 0 0:9508 0:0765
C = 0 0 1 0
~ (k) + H
(k + 1) = G ~ w(k); w(k) = ~ (k)
K
donde:
~ (k) = G 0 ~ (k) = H
G ; H ; ~ (k) =
K K KI
CG I CH
G1 = [G zeros(4,1)
-C *G 1℄;
H1 = [H;-C *H℄;
% MATRIZ DE CONTROLABILIDAD
M = [H1 G1*H1 G1^2*H1 G1^3*H1 G1^4*H1℄;
rM = rank(M); % rM = 5 => COMPLETAMENTE CONTROLABLE
~ = [100℄; ~=
2 200
0
0 0 0
0 0 0
0
0
3
R Q
64 0
0
0 100 0
0 0 0
0
0
75
0 0 0 0 0:01
En la matriz Q ~ observamos que se esta dando mayor peso al angulo del
p endulo (200). La posi i on del arro re ibe un peso de 100 mientras que
al integrador se le asigna 0.01. Con el proposito de evitar la satura i on del
ampli ador, tenemos que redu ir la amplitud de la sen ~al de entrada (o de
ontrol) a di ho ampli ador, pues de otro modo se originar an efe tos no
lineales indeseados en el sistema. Para tal proposito, R ~ toma el valor de 100,
dando as mayor enfasis a la sen ~al de ontrol en el pro eso de optimiza ion.
Para al ular la matriz K ~ debemos resolver la e ua ion de Ri ati (4.58)
pero en su forma re ursiva:
P~ (k + 1) = Q
~ +G ~ T P~ (k)G
~ G ~ T P~ (k)H
~ [R
~ +H
~ T P~ (k)H
~ ℄ 1H~ T P~ (k)G
~ (4.60)
El programa siguiente (en odigo MATLAB) al ula el valor esta ionario de la
matriz solu ion P~ (k), donde P~ (0) es una ondi ion ini ial arbitraria:
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
~ , H1 ~, P P~ , Q ~yR ~ . As obtenemos:
donde G1 G
2 1 H3774 Q R
P~ = 105
6 00 3112
:: 0
0::3112
0727 0
0::9019
2107 0
0::5082
1197 0
0::0035
000873
9019
:
6 0 5082
:
0:2107
0:1197
0:9352
0:3735
0:3735
0:2000
0:0041
0 0015
:
7
4 5
0:0035 0:0008 0:0041 0:0015 0:0000
Cono ida la matriz P~ , podemos ahora al ular la matriz K ~ empleando la
e ua ion (4.59). As se obtiene::
K~ = [R
~+H ~ T P~ H
~ ℄ 1H
~ T P~ G
~ = [K KI ℄
donde:
K = [ 7:7295 1:7311 2:9357 2:6291℄; KI = [ 0:0097℄
4.9 Control Optimo Cuadrati o del Pendulo Invertido 149
C = 1 0 0 0
0 0 1 0℄;
N = [C' G'*C' G'^2*C' G'^3*C' G'^4*C'℄;
rnN = rank(N); % debe ser rnN = 4
Para al ular la matriz de ganan ia K e del observador optimo (se ion 4.3),
debemos sele ionar previamente las matri es de pondera i on R e y Qe:
1 0
2 1 0 0
30
Re =
0 10 ; Qe = 646 0 1000 0
0 0 0:9 75
0
0
0 0 0 1000
Podemos observar que en la matriz R e se da un peso de 10 a la medi ion
de la posi i on del arro, pues es mas exa ta que la medi i on 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 i on.
Notar tambien que la posi ion del arro posee un peso de 0.9, algo menor
omparado on el peso de 1 atribu do al angulo de la varilla, dado que el
sensor de posi i on del arro es m as exa to que el sensor de posi ion de la
varilla.
Para al ular la matriz de ganan ia del observador K e al ulamos pre-
viamente la matriz Pe a partir de la e ua ion (4.37):
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
Pe = 10
::0640
0003 90 7336
0397 0
:: 0 0397
0047 2
::
5
0 2269 ::
3
64 0 0136 2 2269 0 0753 6 3346
: : : :
= 20 9413
: 2:8240
Ke
64 0 0752
: 0:3450 57
3 7683
: 4:7913
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 i on del sistema p endulo invertido: posi i on 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 i on del sistema p endulo invertido: posi ion angular del
p endulo.
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)
COMPUTADORA
PERSONAL
TARJETA LAB-PC+
AMPLIFI- PROCESO:
SALIDAS DAC0
CADOR PE’ NDULO
ANALOGICAS DAC1 INVERTIDO /
PWM GRUA PUENTE
PA0 16 bits
PA . SENSOR EN
PA7 EL MOTOR
COMPUERTAS MUX
16 bits
DIGITALES PB
.0 SENSOR EN
PB . LA VARILLA
DE ENTRADA
PB7
Y SALIDA SALIDAS
PC0
PC .
PC6
PC7
Fs
CONTADOR / OUTB0
TEMPORIZADOR
SERVOMOTOR PENDULO
POLEA
CARRO
CARRIL
Codificador o’ptico
Polea
Alimentacio’n
. . .
Servomotor D.C .
Reductor de
velocidad
Pe’ndulo
Codificador
o’ptico
Ruedas
posi ion angular de la varilla. Cada sensor onsiste de un odi ador opti o
rotatorio, ompuesto de un dis o metali o on un nu mero determinado de
ranuras igualmente espa iadas y ubi adas en el per metro del dis o, y un
emisor-sensor opti o que genera un haz de luz perpendi ular al dis o (ver
gura 5.13).
Canal A
Canal B
Fuente de luz
Transistor
’optico
Disco con
ma’scara
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
El Ar hivo de Interfaz
fun iones NI-DAQ [25℄, as omo tambi en fun iones de le tura y es ritura
de puertos. El ar hivo FUNC PEN.H onsta de las siguientes fun iones:
Con gurarHardware: ini ializa la tarjeta Lab-PC+, on gura los puer-
tos y espe i a la fre uen ia del lo k de muestreo.
EnviarVoltaje: restringe y env a 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 i on 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
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 m aximo 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 i on negativa; su equivalente es:
(65536 65534) = 2. Luego, para obtener la posi i on 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 p endulo invertido: posi i on del arro.
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 p endulo invertido: posi i on 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)
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 00 1462
0004 3
=6
0:9998
0:0972
0:0050
0:9998
0
0
0:0002
0:0941
75 ; = 6 0 0002
7 ::
G
4 0:0000
0:0019
0:0000 1:0000
0:0000 0
0:0049
0:9508
H
4 5
:
0:0765
C=0010
26 1 0002
: 0:0050 0 0:0002 0 26 0 0004 3
37 :
G~= 0 0995
:
46 000000
:
0019
:
1:0002 0
0:0000 1:0000
0:0000 0
0:0963
0:0049
0:9508
5
0
0
0
~ = 000002
1497
;
64 000765
7 757
H ::
:
0 0000
: 0:0000 1:0000 0:0049 1:0000 0002 :
26 1 9636
: 0:2257 3 3116
: 0 4202 0 0300
:
3 :
P~ = 104 0 2257
: 0:1481 0 7068
: 0 2891 0 0030 7
: :
46 000300 0 0061 7
3 3116
: 0:7068 8 5186
: 1 4030 :0 0745 :
4202
: 0:2891 1 4030
: 0 5668 : 5 :
: 0:0030 0:0745 0:0061 0:0013
~ =
K K KI
2 1:0102 0:0055 3
2:1836 1:1280
Ke =
64 0:0005 0:9936 75
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)
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)
Problema 4.1
El problema 3.1 presenta las e ua iones que gobiernan la din ami a del sis-
tema de suspension de un bus (ver gura 3.12). Disen ~ar un sistema de
ontrol optimo uadr ati o esta ionario para lograr el objetivo de ontrol si-
guiente: la salida del pro eso y = x2 x1 (referen ia nula) no debe presentar
sobreimpulsos mayores que el 5 %, y luego de alrededor de 20 segundos, las
os ila iones originadas por un disturbio es al on de 10 m (provo ada por
imperfe iones en la pista), pr a ti amente deben desapare er. La sele i on del
tiempo de muestreo es a onvenien ia del disen ~o.
% p3opt2.m SOLUCION DEL PROBLEMA 4.1
lear all
% PARAMETROS DEL PROCESO
m1 = 2500; k1 = 80000; b1 = 350;
m2 = 320; k2 = 500000; b2 = 15020;
188 Control Optimo
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
estabiliza ion menor que 3 s, on error en estado estable nulo. La sele ion
del tiempo de muestreo es a onvenien ia del disen
~o.
% 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: Angulo de in lina ion ontrolada y angulo del de e tor (sen
~al
de ontrol) orrespondientes al problema 4.2.
192 Control Optimo
Problema 4.3
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
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; % per odo 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 m aquinas 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 id enti 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. Disen ~ar 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
para ontrolar la velo idad angular del eje del motor mediante el voltaje de
entrada que puede variar entre 100 volt.
% p11opt2.m SOLUCION DEL PROBLEMA 4.7
lear all
% PARAMETROS GENERALES
nn = 3; r=1; % nn: ORDEN DEL PROCESO; r: NUMERO DE SALIDAS
NN = 7; % ORDEN DEL VECTOR ESTIMADO DE PARAMETROS
% PARAMETROS DEL SISTEMA:
J = 0.01; % MOMENTO DE INERCIA DEL MOTOR (kgm2/s2)
Ke =0.01; Kt = 0.01; % CONSTANTE ELECTROMOTRIZ (Nm/A)
R = 12; % RESISTENCIA (Ohmios)
C = 0.5; % CONDENSADOR (uF)
L = 0.5; % INDUCTANCIA DE LA ARMADURA (H)
Kw = 1.8; % CONSTANTE TORSIONAL (Nm/rad)
% MODELO LINEAL 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.05; % PERIODO DE MUESTREO
% MODELO LINEAL DISCRETO
[G,H,C,D℄= 2dm(A ,B ,C ,D ,T,'zoh');
4.11 Problemas Resueltos 201
[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
Problema 4.8
Demostrar que el valor m nimo de la fun ion de osto des rita en la e ua ion
4.11):
J =
1 T
x (N )Sx(N ) +
1 N1 X xT (k)Qx(k) + uT (k)Ru(k)
2 2
k=0
4.12 Problemas Propuestos 203
Problema 4.9
Las e ua iones del modelo linealizado para ontrolar la posi ion del an
~o n
montado en la torreta de un tanque (ver gura 3.28) empleando un a tuador
hidr auli o se detallan en el problema 3.9.
(a) Disen~ar un sistema de ontrol optimo esta ionario para ontrolar el
angulo de eleva i on on las espe i a iones siguientes: tiempo de
estabiliza i on menor de 2 s, sobreimpulso y error en estado esta ionario
nulos. Los disturbios tipo es al on pueden a tuar simultaneamente o
no y pueden ser positivos o negativos. Para ada aso, el sistema de
ontrol optimo debe ser apaz de minimizar sus efe tos. La sele i on
del tiempo de muestreo es a onvenien ia del disen ~o.
(b) Lo mismo que (a), pero en este aso para ontrolar el angulo azimutal.
Problema 4.10
El pro eso olumna de destila ion se des ribe en el problema 3.10 y se mues-
tra en la gura 3.29. Disen ~ar un sistema de ontrol optimo multivaria-
ble esta ionario para ontrolar las temperaturas residuales T 1 = 13 z1 y
T2 = 24 z2 on las espe i a iones siguientes: error en estado esta-
ionario nulo, sobreimpulso menor al 5 % y tiempo de estabiliza ion menor
que 0.1 horas. Considerar disturbios unitarios a tuando sobre el pro eso
multivariable. La sele ion del tiempo de muestreo es a onvenien ia del disen
~o.
Problema 4.11
La gura 3.31 muestra el pro eso servomotor on arga no lineal des rito
en la se i on 3.3, en donde la arga no lineal posee ahora dos grados de
libertad on Lo = 2L1=3 y Mo=0.02 kg. La uni on de la arga on el eje
del servomotor no es exible. Las e ua iones que des riben la din ami a del
sistema son materia del problema 3.12. Disen ~ar un sistema de ontrol
optimo esta ionario para ontrolar simult aneamente las posi iones y on
m nimo tiempo de estabiliza ion y m nimo sobreimpulso.
204 Control Optimo
Problema 4.12
La gura 3.32 muestra el pro eso p endulo doble no lineal, el ual es una
extension del p endulo simple des rito en la se ion 3.1. El a oplamien-
to entre los dos p endulos 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. Disen~ar un sistema de ontrol optimo no esta ionario para ontrolar
simult aneamente las posi iones y on m nimo tiempo de estabiliza i on
y m nimo sobreimpulso, de modo tal que el p endulo doble permanez a en
posi ion verti al.
Problema 4.13
La gura 3.33 muestra el pro eso doble gru a-puente no lineal, el ual es una
extension del pro eso gru a-puente es rito en la se i on 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 esf eri a es de 0.02 kg. Disen~ar un sistema de ontrol
optimo esta ionario para ontrolar simultaneamente las posi iones y on
m nimo tiempo de estabiliza i on y m nimo sobreimpulso, de modo tal que
la gru a-puente doble permanez a en posi ion verti al uando el arro realiza
un re orrido predeterminado..
Problema 4.14
En la se i on anterior se disen ~aron sistemas de ontrol optimo esta ionario
para varios pro esos. Ahora abordaremos el disen ~o de sistemas de ontrol
optimo no esta ionarios.
Disen~ar 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 i on de osto:
J=
1 T
2
[x (N )Sx + 2 X
1 N1 T
[x (k)Qx + uT (N )Ru℄
k=0
para una ondi i on 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 disen ~o. 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 sen ~ ales de ontrol.
Cal ular tambi en el valor m nimo 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
5.1 Introdu i on
Los sistemas de ontrol adaptivo ajustan su omportamiento a las am-
biantes propiedades del pro eso ontrolado y de las sen
~ales que intera tu an
sobre di ho pro eso. Por el ontrario, los sistemas de ontrol jos se a-
ra terizan por la presen ia de una ley de ontrol invariable on el tiempo.
206 Control Adaptivo
^x ^
ESTIMADOR ESTIMADOR DE
DE ESTADOS PARAMETROS
U ESTIMACION MODELO
DE U LINEAL
+
Y CONTROLADOR CON + PROCESO Y
+ AUTOSINTONIZACION u U NO LINEAL
-
DISTURBIOS
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 i on 5.4. La
se i on 5.5 presenta el pro edimiento para disen
~ar un sistema de ontrol on
autosintoniza i on. Una apli a i on se propor iona en la se ion 5.6: ontrol
de posi ion de un servomotor sujeto a argas no lineales.
donde X (de orden n) y U (t) (de orden uno) son el ve tor de estado y la
ley de ontrol, respe tivamente. La fun ion no lineal f (:) puede tambi en
ontener disturbios v(:) en los estados. De la e ua ion (5.1), es posible
obtener el modelo lineal siguiente:
_ (t) = [A +
X A℄X(t) + [B + B℄U (t) + v(X; t)
A(z 1
)Y (k) = B(z 1
)U (k) + C (5.7)
donde la onstante C se determina de:
C = (1 + a 1 + : : : + an )Y (b1 + : : : + bn )U (5.8)
Y (k) = T
(k) ^(k) (5.9)
donde el ve tor de informa ion (o de medi i on) ontiene los valores pre-
sentes y pasados de la entrada U y de la salida Y omo sigue:
T
(k) = [Y (k 1) : : : Y (k n) U (k 1) : : : U (k n) 1℄ (5.10)
^(k) = [ a
^ 1 (k) : : : a^n (k) ^b1 (k) : : : ^bn (k) ^℄T C (5.11)
Notar que en la e ua ion (5.9), el orden del ve tor de informa ion y el orden
del ve tor de parametros es 2n+1; es de ir, di hos ve tores han in rementado
5.3 Pro edimientos de Estima ion 209
C
2) Obtener el valor ini ial del parametro (0) empleando la e ua ion
(5.8), onsiderando U = 0 e Y igual a la sen
~al 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 i on de la forma dada en (5.9).
5) Computar el error de estima ion (ver e ua iones (5.10) y (5.11)):
e(k) = Y (k) T (k) ^(k)
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)
Figura 5.4: Parametros estimados ^b1 (k) ( urva solida) y ^b2 (k).
1) Obtener el ve tor de parametros ini ial ^(0) usando los valores de los
par ametros del modelo del pro eso dadas en la e ua i on (5.4).
8) Computar:
PS(k) = S(k)P (k)S(k)
1
nS = [S(k)℄ n
1
" r(k) s (k) k
4 PS (k 1)
tr PS
nS (k) k2
#
(k) = 1 2 r2
en(k) = Y (k)= (k) T (k)n ^(k 1) (k 1)
(k + 1)PS(k) nS(k + 1) + (k)℄
j(k) = [ T nS
^(k + 1) = ^(k) + S 1(k)P S(k) nS(k)e n(k + 1)=j(k)
1
nS1)PS(k) nS(k + 1) + (k)℄
HnS(k + 1) = PS(k) nS(k + 1) [ T (k +
nS (k + 1)℄PS(k)= (k)
T
PS(k + 1) = [I HnS(k + 1)
max eig(PS )
tt = abs
min eig(PS )
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 i on; en otro aso, si tt ( ota superior), determinar N new(k)
(a partir de la rela i on PS = NnewN T new
), al ular los elementos nnew jj
(valor absoluto de la suma de los elementos de las las de Nnew(k)),
determinar la matriz diagonal Snew on elementos snewjj = 1=nnewjj , y
al ular la matriz P newS = SnewPSSnew. Finalmente, a tualizar: P =
PnewS .
Ejemplo 5.2
Estimar los par ametros del pro eso servomotor D.C. on arga no lineal
des rito en la se i on 3.3, empleando el m etodo de los m nimos uadrados
re ursivo mejorado. Emplee el modelo no lineal de segundo orden del pro-
eso y omo sen ~al ex itadora use un es alon de magnitud 0.4. Gra que 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 par ametros 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('SENAL 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)
0.6
a2
0.4
0.2
PARAMETROS ESTIMADOS
−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
8
PARAMETROS ESTIMADOS
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)
El pro edimiento de estima ion des rito en la subse i on anterior nos pro-
por iona el ve tor de parametros estimado del pro eso ^(k). Usando los
elementos de di ho ve tor de par ametros, podemos re onstruir las matri es
estimadas G ^ (k), H
^ (k) y C^ (k). El ve tor de estado estimado x^(k) puede ser
obtenido empleando un ltro de Kalman [6℄, on e ua ion de observa i on:
x
^(k) = x(k) + Ko (k)[y(k) C^ (k)x(k)℄ (5.14)
I= X
1
[xT (k)Qx(k) + u2 (k)R℄ (5.18)
k=0
220 Control Adaptivo
z(k) =
X
k 1
i=0
[Y (i) Y (i)℄ =
X
k 1
i=0
[ y(i)℄; z(k + 1) =
X
k
i=0
[ y(i)℄
enton es:
z(k + 1) = z(k) y(k) = z(k) Cx(k) (5.21)
de modo que la representa ion en el espa io de estado del sistema aumentado
toma la forma siguiente:
xa(k + 1) = G axa(k) + Hau(k) (5.22)
y(k) = Caxa(k) (5.23)
donde el super ndi e a signi a aumentado. El ve tor xa y las matri es Aa,
B a y C a poseen la forma:
x(k) G 0
xa(k) = ; Ga(k) =
z(k) C I
H
Ha = ; Ca = [C 0℄ (5.24)
0
Por onsiguiente, el problema es determinar la matriz de ganan ia K a omo
resultado de la minimiza ion de la siguiente fun ion de osto:
Ia = X1
[xa )T (k)Qa xa (k) + u2 (k)R℄ (5.25)
k=0
5.5 Pro edimiento de Disen
~o 221
x_ = A x + B u; y=C x
donde:
0 1 0
A = B = ; C = 1 0
N B Kn2 E ) KnK a t
M ( M+ MR MR
(5.29)
La fun i on de transferen ia de pulso G p(z), para un tiempo de muestreo de
0.01 s (o lo que es lo mismo, una fre uen ia de muestreo de F s = 100 Hz),
tiene la forma:
y(z) b1z + b2 b 1 z 1 + b 2z 2
Gp(z) = = 2 = (5.30)
u(z) z + a z 1+ a 2 1 + a1 z 1 + a z2 2
C
donde el valor ini ial de (0) (e ua ion (5.8) on U = 0 e Y igual a la sen
~al
de referen ia) es:
C
= (1 + a1 + a2 )Y
En el ter er paso jamos la matriz de ovarianza ini ial P de orden 5:
2 0 0 0 0 3
0 0 0 0
64675 0
0
0
0 0
0 0
0
7 P
= 0 0 0 0 ; = 1000
(5.33)
Como uarto paso obtenemos nuevas medi iones de Y (k) y de U (K) (ver
e ua i on (5.9)) y formulamos:
Y (k) = T (k) ^(k)
T
(k) = [Y (k 1) Y (k 2) U (k 1) U (k 2) 1℄
^(k) = [ a^ 1 (k) ^ 2 (k) ^b1 (k) ^b2 (k) ^(k)℄T
a C
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
^ (k) = 0 1 ^ (k) = 0
G ; H
^ 2 (k)
a ^ 1 (k)
a 1
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, Q o = 0.01 y Ro = 0.04.
donde:
x(k) G 0
xa(k) = ; Ga(k) =
z(k) C I
H
Ha = ; Ca = [C 0℄
0
5.6 Control Adaptivo de un Servomotor No Lineal 225
f
Ka(k) = R + [Ha(k)℄T P a(k)Ha(k) g 1[H (k)℄
a T
P a(k)(k)Ga(k)
El programa disadap.m al ula las matri es Ka(k), Ga(k) y H a(k) para ada
tiempo de muestreo. En el software de ontrol implementado, la matriz
P a(k) se obtiene luego de iterar la e ua i'on de Ri ati 20 ve es en ada
per odo de muestro. Los valores de R y Q a para la simula i on son: 3
24 ; (5.37)
R = 0:45; Q = a
0:05 0
0
0
0:01 0
0
0
0:01
5
5.6.6 La Ley de Control Residual
Para el sistema de ontrol a lazo errado podemos tomar la sen ~ al Y (k) igual
a la referen ia para todo k. As , podemos al ular la ley de ontrol residual
empleando la rela i on u(k) = U (k) U (k) (se ion 5.4), donde U (k) se halla
en l nea a partir de la e ua ion (5.8), omo sigue:
% 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.
El A tuador
El a tuador est a onformado por el servomotor D.C. (de ampo magn eti o
permanente y es obillas onmutadas), un generador PWM y una etapa de
poten ia. Debido a que el motor no responde inmediatamente a una tensi on
de entrada; es de ir, le toma un pequen~o tiempo para llegar a la maxima
230 Control Adaptivo
COMPUTADORA
PERSONAL
Sensor (encoder)
PA0
PA .
PA7
COMPUERTAS MUX
DIGITALES PB
.0
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 i on.
5.6 Control Adaptivo de un Servomotor No Lineal 231
Codificador optico
’
Reductor de
velocidad
Alimentacio’n
. . .
Servomotor DC
Eje de salida
Varilla
Adaptador de carga
Carga
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 tambi en 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 sen ~al PWM. El ir uito PWM
LM3524 genera sen ~ales moduladas por an ho de pulso de 15.4 KHz, las
uales son luego ampli adas por el ir uito de poten ia, gener andose una
tensi on de alimenta i on uyos l mites son 25 volt. El ir uito de poten ia
est a 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 l nea 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
Un dis o opa o ranurado a oplado al eje del motor, que se mueve entre
una fuente de luz permanente habilitada y un dete tor. A medida que
gira el rotor, el paso de luz ha ia el dete tor es habilitado o inhabilitado
por un patr'on de areas os uras y transparentes impreso en el dis o,
produ iendo una sen ~al digital que puede ser fa ilmente interpretada
por el ontrolador de movimiento del sistema.
Canal A
Canal B
Fuente de luz
Transistor
’optico
Disco con
ma’scara
odi ador usado en esta implementa i on, omo en la mayor a 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 i on del movimiento. Por ejemplo, si
el anal B adelanta al anal A, el eje est a girando en sentido antihorario,
234 Control Adaptivo
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
La Interfaz Lab-PC+
La interfaz entre el mi ro omputador, la planta, el a tuador y el sensor es
la tarjeta de adquisi i on de datos Lab-PC+. Los terminales usados para el
ontrol son:
k+ a1 k 1 + a2 k 2 = b1vk 1 + b2vk 2
xk = GXk 1+ Hu k 1; yk = CX k
on x = Xk y u(k) = uk.
La ley de ontrol es: uk = K a X a on
k (ver e ua i on (5.26)):
1
K a = (R + (H a) T P a H a ) (H a) T P aGa
236 Control Adaptivo
1. Ini ializa_Sistema();
2. Mide_Variables(&y,&r,&vel,t);
3. Estima_Parametros(Th,y,u);
4. En uentra_Control(r,&u);
5. u=Apli a_Control(u,vel);
/*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);
}
2
Posición (radianes)
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.
Problema 5.1
El problema 3.1 presenta las e ua iones que gobiernan la din ami a del sis-
tema de suspension de un bus (ver gura 3.12). Disen ~ar un sistema de
ontrol adaptivo on autosintoniza ion para lograr el objetivo de ontrol si-
guiente: la salida del pro eso y = x2 x1 (referen ia nula) no debe presentar
sobreimpulsos mayores que el 5 %, y luego de 20 segundos, las os ila iones
254 Control Adaptivo
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 avi on omer ial volando a velo idad de ru ero (altura y velo idad
onstantes). El ontrol del angulo de in lina i on del avi on (ver gura 3.14)
es un problema longitudinal a resolver. El objetivo de ontrol enton es es
disen
~ar un autopiloto que manipulando el angulo Æe del de e tor de ele-
va ion, ontrole el angulo de in lina i on del avi on.
Se pide disen~ar un sistema de ontrol adaptivo que genere una fuerza
de ontrol, de modo que la salida del pro eso (el angulo de in lina i on )
presente un sobreimpulso menor al 10 % y un tiempo de estabiliza i on 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
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
m aquinas 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
m nimo sobreimpulso. El error en estado estable debe ser nulo. Simule una
sen
~al 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 disen ~o. 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
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 m aquinas 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
Problema 5.5
La gura 2.2 muestra dos tanques id enti 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 i on del modelo
linealizado del pro eso se des ribe en el ejemplo 2.1. Disen
~ar un ontrolador
adaptivo on autosintoniza ion que umpla los siguientes requerimientos:
tiempo de estabiliza i on menor que 15 s, sobreimpulso menor al 5 % y error
en estado estable nulo. Estas ondi iones de disen ~o deben mantenerse
uando se ambie la referen ia (por ejemplo de 3 a 1 m). Adem as, el ujo de
~al de ontrol) no debe sobrepasar los 3 m3 /s.
entrada (la sen
% 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. Disen ~ar un sistema de ontrol adaptivo on autosintoniza i on
para ontrolar la velo idad angular del eje del motor mediante el voltaje de
entrada que puede variar entre 100 voltios. La sen~al 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
6
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
Problema 5.7
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 a ionado por un servomotor. Se
desea disen ~ ar un sistema de ontrol adaptivo 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.
5.7 Problemas Resueltos 277
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 Pad e de ter er orden (ver ejemplo ??):
Espe i a iones de disen ~o: 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
(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 uni on 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. Disen ~ar un sistema de ontrol adaptivo on
autosintoniza i on para ontrolar simult aneamente las posi iones y on
m nimo tiempo de estabiliza ion y m nimo sobreimpulso en la respuesta.
Problema 5.11
La gura 3.32 muestra el pro eso p endulo doble no lineal que es una exten-
sion del p endulo simple des rito en la se ion 3.1. El a oplamiento entre los
dos p endulos 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. Disen~ar un sistema de ontrol adaptivo
on autosintoniza i on para ontrolar simult aneamente las posi iones y
on m nimo tiempo de estabiliza i on y m nimo sobreimpulso en la salida, de
modo tal que el p endulo doble permanez a en posi i on verti al.
Problema 5.12
La gura 3.33 muestra el pro eso doble gru a puente no lineal que es una ex-
tensi on del pro eso gru a-puente des rito en la se i on 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 din ami o para este pro eso, onviene emplear las
e ua iones de Lagrange de la me ani a l asi a (ver problema 3.14). Conside-
rar que la arga esferi a es de 0.02 kg. Disen
~ar un sistema de ontrol adaptivo
on autosintoniza i on para ontrolar simult aneamente las posi iones y
on m nimo tiempo de estabiliza ion y m nimo sobreimpulso, de modo tal que
la doble gru a-puente permanez a en posi i on verti al uando el arro
realiza un re orrido predeterminado.
Problema 5.13
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 i on, 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
Disen~ar un sistema de ontrol adaptivo on autosintoniza ion para ontro-
lar la velo idad del m ovil on m nimo tiempo de estabiliza i on y m nimo
sobreimpulso en la salida. La sen
~al de referen ia puede ser arbitraria (pro-
blema de seguimiento).
Problema 5.14
y(t + k=t), denota los valores futuros de la salida basado en las medi-
iones disponibles en el tiempo t:
2
Trayectoria de
referencia
Trayectoria
deseada 1
2
Tiempo
Salida pasada Muerto
del proceso
Pasado 1 2 Futuro N2
Momento presente t
Al pro eso real solo se le apli a el primer elemento del ve tor de ontrol
optimo al ulado u(t + k=t), k = 0; : : : ; N 2 1, mientras que se dejan
de lado los dem as elementos de di ho ve tor. En el pr oximo instante de
muestreo, todas las se uen ias temporales se desplazan para dar abida
a las nuevas medi iones de la salida y(t+1) y a las del ve tor de ontrol
u(t + k + 1=t + 1), uyo primer elemento es generalmente diferente al
primer elemento del ve tor u(t + k=t), previamente al ulado. Este
prin ipio se denomina estrategia del \horizonte retroa tivo".
Entradas y
salidas Salidas + Trayectoria de
pasadas predecidas referencia
MODELO -
Entradas
futuras
OPTIMIZADOR
El Disturbio n(t)
La sen~al de disturbio n(t) in luye todos los efe tos no deseados en la salida
y(t). Esta sen
~al 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 )
= (6.2)
e(t) D(z 1)
x(t) = f (x(t 1); x(t 2); : : : ; u(t 1); u(t 2); : : :) (6.5)
donde f (:) es una fun i on que puede estru turarse de diversas formas. Es
de ir, f (:) puede ser una e ua ion de diferen ias, una red neuronal o una
aja negra on par ametros a ser estimados.
El Modelo CARIMA
El modelo CARIMA, del ingl es \Controlled Autoregressive Integrated Mov-
ing Average", es un modelo lineal basi o y bastante extendido en su apli-
a ion y es pre isamente el que emplearemos. El modelo CARIMA del
pro eso puede ser representado por:
C(z 1 )
A(z 1 )y(t) = B(z 1
)u(t) + e(t) (6.6)
D(z 1)
donde:
1
A(z ) = 1 + a 1 z 1 + ::: + ana z na
(6.7)
B(z 1) = b 1z 1 + ::: + bnb z nb
(6.8)
El origen del t ermino CARIMA se debe a que la e ua i on de diferen ias
del modelo del pro eso presenta tres omponentes, a saber, la omponente
salida autoregresiva:
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 i on CARIMA toma 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 tambi en umple que (ver
e ua i on (6.1):
y(t) = x(t) + n(t)
y C
donde: = By n = . La representa i on predi tiva de la ultima
u AF e AD
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 i on 3.3 es:
q_ = w
N B n2KE nKa tK
w_ = q + w+ 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:
1
n(t) = e(t)
1z 1
determine su modelo CARIMA.
Solu i on: La fun i on de transferen ia de pulso del pro eso posee la forma:
q(z) b1z + b2 b1z 1 + b2z 2 B(z 1)
= = =
u(z) z2 + a 1z + a 2 1 + a1 z 1 + a2 z 2 A(z 1 )
290 Control Predi tivo
y an
~adiendo el ruido de medi ion obtenemos:
B(z 1) B(z 1) 1
q(z) = 1)
u(z) + n(t) = 1)
u(z) + e(t)
A(z A(z 1z 1
x(t+k-1/t) y(t+k-1/t)
x(t+k-2/t) y(t+k-2/t) MODELO
MODELO x(t+k/t) SERIE / x(t+k/t)
u(t+k-1/t) PARALELO u(t+k-1/t) PARALELO
u(t+k-2/t) u(t+k-2/t)
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 estables o ines-
C(q 1 )
tables. En este aso, el modelo del disturbio n(t) = D(q 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) + e(t) (6.16)
1z1
que es la e ua i on (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)
1 1
y(t) = (1 A(z ))y(t) + B(z )u(t) + 1
e(t) = y(t) + n(t) (6.17)
1z
donde y(t) se obtiene de la rela ion:
y(t) = (1 A(z 1))y(t) + B(z 1)u(t)
y(t) = a1y(t 1) ana y(t n a)
+b1u(t 1) + + bnb u(t nb) (6.18)
Por onsiguiente, la expresi on predi tiva del modelo serie/paralelo es:
y(t + k=t) = a1y(t + k 1=t) ana y(t + k na=t)
+b1u(t + k 1=t) + + bnb u(t + k nb=t) (6.19)
292 Control Predi tivo
+
+
- MODELO -
x MODELO y
SERIE / x
u PARALELO x u PARALELO
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 i on: Empleando el resultado del ejemplo 6.1, la solu i on 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 u ltima 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) −−−−−−>
J= X N2
[r(t + k=t) y(t + k=t)℄ + 2
Nu 1
X [ u(t + k=t)℄2 (6.24)
k=N1 k=0
donde :
u(t + k=t) = u(t + k=t) u(t + k 1=t) (6.25)
on u(t + k=t) = 0 para k Nu. La traye toria de referen ia est repre-
sentada por la e ua i on:
N1; : : : ; N2: horizonte de oin iden ia; por defe to onsiderar N1 (tiem-
po muerto).
: par ametro de pondera ion; por defe to onsiderar ero.
donde el sub ndi e forz indi a forzada. La respuesta libre y libre(t + k=t)
apare e omo onse uen ia de los fa tores siguientes:
El efe to debido a las sen
~ales de ontrol pasadas u(t 1); u(t 2); : : :
298 Control Predi tivo
N u =4
u
y(t+k/t) u(t+k/t)
o o oo
o o o o
o o o o o o o o o o o o oo o o o
o o o o o
o o
r=w y
N 1=2 N 2 =8
PASADO Tiempo actual t FUTURO
El efe to debido a las perturba iones futuras del ruido n(t + k=t).
et .
6.5 El Controlador Predi tivo 299
g u(t/t)
k
Respuesta
al escalo’n
k Muestras Tiempo
t t+k
(a)
Entrada escalo’n
u(t+1/t)
g u(t+1/t)
k
Respuesta
al escalo’n
t t+k
(b)
la ual es una forma uadrati a en U, uya minimiza ion por diferen ia ion
resulta en la siguiente solu ion optima:
1
U = (GT G + I) GT (R Y) (6.33)
u(t) =
P N2
k=N 1
P
gk[r(t + k=t) y
N2
libre (t + k=t)℄
(6.34)
k=N1 gk2 +
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:
Ejemplo 6.4
Determinar la matriz dinami a de ontrol para el pro eso del ejemplo 6.1
empleando los datos siguientes: N 1 = 7, N2 = 12, Nu = 6.
% ejem6_4.m SOLUCION DEL EJEMPLO 6.4
lear all
% PARAMETROS DEL PROCESO NO LINEAL (TABLA 3.3)
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.035e-3; RR = 7.38; m = 0.06377;
Ka t = 14.9; = 0.25; Mo = 0.045; % tambi'en 0,.01,.02 K =
31.071e-3; n = 19.741; L = 4.64e-3;
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 TERCER ORDEN
6.6 Pro edimiento de Disen
~o 303
7) Implementar el hardware.
8) Implementar el software de ontrol.
9) Realizar pruebas de fun ionamiento (resultados experimentales).
y(z) Gp(s)
Gp(z) = = (1 z 1)Z
u(z) s
Con Mo = 0 (varilla sin arga adi ional), los par ametros poseen los valores
siguientes: a1=-1.9614 , a2=0.9614 , b1=0.0044 y b2=0.0043 .
u=
P N2
k=N 1
P
g(k)[r(t + k=t) y libre (t + k=t)℄
N2
k=N1 g (k) +
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/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 m axima.
6.7 Control de Posi i on de un Servomotor 309
% dispred3.m
lear all
% PARAMETROS DEL PROCESO NO LINEAL (TABLA 3.3)
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.035e-3; RR = 7.38; m = 0.06377;
Ka t = 14.9; = 0.25; Mo = 0.045; % tambi'en 0,.01,.020 K =
31.071e-3; n = 19.741; L = 4.64e-3;
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 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
310 Control Predi tivo
% 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 i on 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
Ini ializa Sistema: permite la ini ializa i on de los par ametros y va-
riables globales. Luego, ini ializa la tarjeta de adquisi i on de datos
Lab-PC+ por medio de la fun ion Conf igurarHardware. Enseguida
env a la tension de o set al puerto de salida analogi a por medio de la
fun i on EnviarV oltage (si ), para asegurar la posi i on ini ial de re-
poso del motor (posi i on verti al) y nalmente, lee la posi i on ini ial
p0 del motor.
Apli a Control: ompensa las fri iones est ati a y de Coulomb y apli-
a restri iones a la sen
~al de entrada u. Luego, env a un voltaje equi-
valente a la suma de la sen ~al de ontrol u ( on restri ion), m as la
sen
~al de ompensa ion v, mas la sen ~al del o set (2.3 volt).
La fun i on prin ipal main posee una estru tura ade uada para:
6.7 Control de Posi i on de un Servomotor 315
La asigna ion de memoria din ami a que permita alma enar los datos
para las variables: u, w, y y r en el pro eso de eje u ion del proye to.
/* 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);
}
Rpta.aescalonesvariantesparaunacargaJ
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.14: Salida ontrolada y ( urva en trazos) para una arga iner ial
de JT = J kg-m2.
Rpta.aescalonesvariantespara1.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 i on de un Servomotor 323
Rpta.aescalonesvariantespara1.84J
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.16: Salida ontrolada y ( urva en trazos) para una arga iner ial
de JT = 1:84J kg-m2.
Rpta.aescalonesvariantespara2.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
Problema 6.1
El problema 3.2 presenta las e ua iones que gobiernan la din ami a longitudi-
nal de un avi on 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 enton es
disen
~ar un autopiloto que manipulando el angulo Æe del de e tor de ele-
va ion, ontrole el angulo de in lina ion del avion. Disen~ar un sistema de
ontrol predi tivo que genere una fuerza de ontrol es alar, de modo que
la salida del pro eso (el angulo de in lina i on ) presente un sobreimpulso
menor al 5 %, un tiempo de estabiliza i on menor que 10 s y error en estado
estable nulo. Asumir 1 rad de entrada de referen ia.
Solu ion: Ver el programa p4pred1.m.
% p4pred1.m SOLUCION DEL PROBLEMA 6.1: CONTROL DE LA INCLINACION
% DE UN AVION USANDO CONTROL PREDICTIVO CON CONTROL ESCALAR
lear all
% FUNCION DE TRANSFERENCIA DE LA PLANTA EN TIEMPO CONTINUO
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 DE LA PLANTA EN TIEMPO DISCRETO
tm=1.25; % 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 =1;
% 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;
6.8 Problemas Resueltos 325
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, disen ~ar un sistema de ontrol predi tivo
que genere una matriz din ami a de ontrol, de modo tal que el angulo de
in lina i on del avi on 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
% 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
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
100
Control u (volt)
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 i on: 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
15
Velocidad (m/s)
10
0
0 50 100 150 200 250 300
60
40
Control u (volt)
20
−20
0 50 100 150 200 250 300
Tiempo (Segundos)
Figura 6.21: Velo idad del arro de m aquinas 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 sen ~al de ontrol debe estar dentro del rango
de 200 volt. Disen ~ar un sistema de ontrol de posi i on 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, tambi en se puede usar restri i on
a la salida; es de ir, para ada tiempo de muestreo, ha er que la posi ion
ontrolada iguale la sen ~al 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. L ogi amente, los resultados de la implementa i on en tiempo
real on tal restri i on, 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 i on 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 m aquinas 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
Problema 6.7
POSICION (m)
0
−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
2
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 disen~o deben mantenerse uando se am-
bie la referen ia (por ejemplo de 3 a 2 m). Adem as, el ujo de entrada (la
~al de ontrol) no debe sobrepasar los 3 m3 /s.
sen
% 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
Problema 6.8
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 disen ~ar 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 sen
~al ontrolada (la velo idad) debe ser menor que 6 s
y di ha respuesta debe presentar un sobrepi o m aximo 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
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
Las espe i a iones de disen~o para ambos sistemas de ontrol son: tiempo de
estabiliza i on menor que 40 s, error en estado esta ionario nulo y por entaje
de sobreimpulso menor al 5 %. La sele i on del tiempo de muestreo y de los
horizontes de ontrol es a onvenien ia del disen ~o.
Problema 6.12
Las e ua iones del modelo linealizado para ontrolar la posi ion del an
~o n
montado en la torreta de un tanque (ver gura 3.28) empleando un a tuador
hidr auli o se detallan en el problema 3.9.
(a) Disen~ar un sistema de ontrol predi tivo basado en modelos para on-
trolar el angulo de eleva i on on las espe i a iones siguientes: tiem-
po de estabiliza i on menor que 5 s, m nimo sobreimpulso y error en
estado esta ionario nulo, empleando fuerza de ontrol es alar. Los
344 Control Predi tivo
La gura 3.31 muestra el pro eso servomotor on arga no lineal des rito
en la se i on 3.3, en donde la arga no lineal posee ahora dos grados de
libertad on L o = 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 din ami a del
sistema son materia del problema 3.12.
(a) Disen~ar un sistema de ontrol predi tivo basado en modelos para on-
trolar simult aneamente las posi iones y on m nimo tiempo de
estabiliza i on y m nimo sobreimpulso, empleando una fuerza de on-
trol es alar.
(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.14
La gura 3.32 muestra el pro eso p endulo doble no lineal, el ual es una
extension del p endulo simple des rito en la se i on 3.1. El a oplamiento
entre los dos p endulos 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.
(a) Disen~ar un sistema de ontrol predi tivo basado en modelos para on-
trolar simult aneamente las posi iones y on m nimo tiempo de
estabiliza i on y m nimo sobreimpulso, empleando para ello una fuerza
de ontrol es alar, de modo tal que el p endulo doble permanez a en
posi ion verti al. Considerar que la arga esferi a es de 0.02 kg.
6.9 Problemas Propuestos 345
(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 gru a puente no lineal, el ual es una
extensi on del pro eso gru a 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 esf eri a es de 0.02 kg.
(a) Disen~ar un sistema de ontrol predi tivo basado en modelos para on-
trolar simult aneamente las posi iones y on m nimo tiempo de
estabiliza i on y m nimo sobreimpulso empleando para ello una fuerza
de ontrol es alar, de modo tal que la gru a-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
Problema 6.17
(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
d
r
- m - (z)
u
- hr0(s) - p(s) - m
? y
-
6
y y
(s)
T
y (t) = X
1
y (kT )Æ(t kT ) (7.1)
k=0
Notar que hemos usado la rela ion basi a z = e sT . Tambi en es u til re ordar
que la transformada Z de y (t) se puede expresar omo:
Una fun i on 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, tambi en es hermitiana; es de ir:
i!T !)T H
y (ei!T )H = y (e ) = y (ei(!s ) ; =T < w < 2 =T (7.6)
= q
(7.7)
1 p~ q
q = (7.8)
1 + p~
donde p es el bloque pro eso y p~ es el bloque modelo del pro eso. Observar
en la gura 7.2B que el ontrolador tiene omo entradas la referen ia r y la
sen
~al medible y, y omo salida la sen ~ al de ontrol u.
La gura 7.3 muestra la estru tura dis reta CMI, en donde el sistema de
ontrol in luye q(z), p~(s) y (s). Observar en di ha gura que el amino
paralelo que forma el modelo del pro eso es para sustraer el efe to de la
variable manipulada u de la salida del pro eso y. Si asumimos que el modelo
es una representa i on perfe ta del pro eso, enton es la sen~al realimentada
es igual a la in uen ia de los disturbios y no es afe tada por la a ion de
la variable manipulada. En esta situa i on, el sistema se omporta omo
uno de lazo abierto y los problemas usuales de estabilidad aso iados on la
realimenta i on desapare en.
Sin demostra ion se presenta el on epto de estabilidad interna para el
sistema CMI de la gura 7.3A.
d
r
- m - q
u
- p - m
? y
-
6
- p~ - m
A
d
r
- m - m- q - p - m
?
-
6 6
p~
B
q
d
r
- m - m- u
- p - m
? y
-
6 6
p~ - p~ -
1 e sT 1z 1
hr0(s) = = ; z = esT (7.9)
s s
Por otra parte, el bloque (s) representa un ltro que sirve para ortar las
omponentes de alta fre uen ia de las sen ~ales ontinuas antes del muestreo,
uando sea ne esario. Su fun i on de transferen ia debe ser estable; es de ir,
las ra es de su e ua ion ara ter sti a deben poseer parte real negativa. Las
rela iones siguientes son validas para la estru tura CMI:
d
r
- m - q(z)
u
- hr0(s) - p(s) - m
? y
-
6
?
(s)
- p~ (z) - m T
A
d
r
- m- q(z)
u
- hr 0(s) - p(s) - m
? y
-
6
- p~(s) - m
(s)
T
B
d
r
- m- q(z)
u
- p(s) - m
?
-
6 y
y~
- p~(s) - ?
m
C
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
Notar que la estru tura de la gura 7.3B presenta una on gura ion equiva-
lente a la estru tura mostrada en la 7.3A. La gura 7.3C ilustra el sistema
CMI ompletamente dis reto.
una regi on ir ular a otada de radio ono ido `a(!), o de modo equivalente:
j
`m (!) = `a (!)= p~(j!) j (7.23)
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) = p~(s)q(esT ) , ~ (s) = 1 ~ (s); (s) = e(s) (7.25)
r r r
hr0(s)r (esT ) r(s)
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 R o 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 i on 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:
Kp 30:4696
p(s) = =
s2 + aps + bp s2 + 1:2707s + 14:4007
Kn 91:4375
p~(s) = =
s2 +
ans + bn s2 + 3:8133s + 17:9220
Observando las respuestas al es al on 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 al on. La
fun ion de transferen ia de pulso del modelo nominal del pro eso resulta:
b1 z + b2 0:1070z + 0:1004
p~(z) = =
z2 + a1z + a2 z2 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
El pro edimiento de disen~o que se des ribe a ontinua ion es el mismo de-
sarrollado en [9℄ y se puede apli ar a pro esos estables de una entrada y
una salida. El sistema de ontrol robusto ilustrado en la gura 7.3 debe ser
internamente estable. Esto se logra si la planta p(s) y el ontrolador q(z)
son estables, asumiendo que el modelo del pro eso es perfe to (p~(s) = p(s)).
7.3 Control Robusto para Pro esos Estables 357
n
lim d n (1 (s)) = 0; 0 n<m (7.27)
s!0 ds
Disen
~ o del Pre ltro (s)
El objetivo prin ipal del pre ltro (s) es ortar las omponentes de alta
fre uen ia para evitar la superposi ion de fre uen ias. Los ya ono idos
ltros de Butterworth y Bessel satisfa en la e ua ion (7.27) para m = 1.
Para m > 1 se puede emplear una simple modi a i on. Es ribamos:
on:
m 1
m 1s + + 1s + 1
m(s) = (7.29)
( s + 1)m 1
en donde 1(s) es un pre ltro apropiado para m=1. Enton es, para un
espe o, podemos usar (7.27) para al ular los oe ientes 1 ; : : : ; m 1 .
358 Control Robusto
!20
1(s) =
s2 + 2!0 s + ! 02
min
q~H (z)
k e(z) k2 = q~min
H(z)
k (1 p~(z)q~H (z))v(z) k2 (7.30)
sujeto a la restri ion que q~H (z) sea estable y ausal. La minimiza ion de
la norma anterior resulta en el siguiente ontrolador:
donde:
H1
p~A(z) = z N h (1 ( j ) )(z ) j
j=1 H ) 1)
(7.33)
(1 j )(z ( j
y j ; j = 1; : : : ; h son los eros de p~(z) que estan fuera del r ulo unitario.
El entero positivo N se sele iona de modo tal que p~M (z) sea semipropio; es
de ir, que el numerador y el denominador de p~M (z) posean el mismo grado,
lo que es equivalente a de ir que z N p~(z) sea semipropio.
7.3 Control Robusto para Pro esos Estables 359
on:
H1
vA(z) = z Nv hv (1 ( vj ) )(z ) vj
j=1 (7.35)
(1 vj )(z ( H ) 1)
vj
donde vj ; j = 1; : : : ; hv son los eros de v(z) que est an fuera del r ulo
unitario y el entero positivo Nv se sele iona de modo tal que zNv v(z) sea
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 t pi as.
1 z 1
s z1 (p~M (z))
1 z= 1 (p T= 1
s+1 z e T=
(p~M (z)) ~ A (e ))
1
1 z(1 eT= ) 1 (1 p~A (e
T=
)e T=
)z+(p~A1 (e T= ) 1)e T=
s( s+1) (z 1)(z e T = )
(p~M (z)) (1 e T = )z
1 Tz 1 (N + +1)z N
(z 1)2
(p~M (z)) z
s2
donde: , d 1
~A (z)z N ) z=1
dz (p j
=
P h ( )jH 1
j=1 (1 )(1j ( ) ) H1
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:
b1 z + b2
p~(z) =
z2 + a1z + a2
Ademas, se debe umplir que p~(z) = p~A (z)p~M (z), de modo tal que z N 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:
1 z2 + a1z + a2
q~H (z) = (p~M (z)) =
z(b1z + b 2)
Disen
~ o del Controlador CMI q~(z)
Deseamos obtener el ontrolador CMI q~(z) postulando:
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 m nimo 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:
zi
q~(z) = z i=1 1 k (7.37)
i
B(z) = X
m 1
biz j
(7.38)
i=0
q~H (z) tambien umple on la e ua ion (7.26). Por onsiguiente, q~(z) debe
satisfa er la e ua i on (7.26) s y s olo si:
n
lim d (1 q~ (z)B(z)) = 0; n = 0; 1; : : : ; m 1 (7.39)
z!1 dz n
B(z) = X
m 1
b iz i
= b0 + b 1 z 1 ; m=2 (7.41)
i=0
b0 = 1 b 1; b1 = X 1
i
i
(7.42)
i=1
Ejemplo 7.3
Determinar el ontrolador CMI q~(z) sabiendo que el pro eso p(z) del ejemplo
7.1 es del tipo m = 1. Tener en uenta que la entrada v(s) es un es alon.
Solu ion: Sabemos que q~(z) = q~H (z)q~ (z). Para m = 1, B(z) = 1. Los
polos de q~H (z) son z = 0 y z = b2 =b1 = -0.9874. Enton es, = 1 (un polo
on parte real negativa que hay que sustituir on un polo en el origen), i =1
y i = 1 = b2=b1, de modo que:
zj 1z 1
q~(z) = z j=1
=z
1 kj 1 k1
Luego:
z2 + a1z + a2
q~(z) = q~H (z)q~ (z) =
(b1 + b2)z 2
(1 )z
f (z) = (7.43)
z
362 Control Robusto
El ltro f (z) debe preservar las propiedades asint oti 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:
jf (e )j < jp~(e
j!T j!T
)q~(ej!T )`m (!) j 1
; 0 !
T
: (7.47)
modo tal que se satisfaga la e ua i on (7.47). Esta e ua ion pone una ota
inferior a . Di ha ota tambi en se puede obtener del gra o de Bode
de:
j j
( p~(ej!T q~(eiwT ) `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 gr a o de
Bode de f (z). Este gr a 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,
j j
si ( p~(ej!T q~(eiwT ) `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:
T w`
=e (7.49)
j j
M (w) , q^(j!) `a (!) + 1 j j
p~(j!)q^(j!) W (!) < 1; 0 ! =T (7.51)
W (!) 1
j1 p~(j!)q~(j!) j (7.52)
364 Control Robusto
Para que la ondi i on anterior resulte una fun i on propia (requerimiento que
tambi en es ne esario para ualquier W (w)), se deben umplir las ondi iones
siguientes para m 1:
1
W( ) 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:
1 0:5s + 1
W (s) = 0:4 ; s = j!
0:1s + 1
que umple las ondi iones estable idas en la e ua i on (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 i on 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 i on del rendimiento robusto, tal omo veremos mas
adelante.
Disen
~ o del Filtro
La forma m as simple de disen~ar el ltro f (z) es espe i ar su estru tura dada
en la e ua i on (7.45) y luego tratar de satisfa er la e ua i on (7.51) varian-
do el parametro . In rementando , el primer t ermino de M (w) de re e
mientras que el segundo t ermino re e. Por onsiguiente, dependiendo de `a
y W , podr a no existir un valor de para que la e ua i on (7.45) sea satis-
fe ha. Asumiendo que q~(z) y f (z) se sele ionan de modo tal que el sistema
j
resulte del tipo m = 1 (para el ual se umple que p~(z)q~(z)f (z) z=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 par ametro, debe-
mos resolver el siguiente problema de optimiza ion:
Ejemplo 7.5
Disen~ar el ltro f (z) para el pro eso servomotor D.C. usando los resultados
de los ejemplos 7.1 al 7.4. Veri ar que se umplan las ondi iones de estabil-
idad y rendimiento robustos. Asumir: `m (!) j j
`m (ei! ) y `a (!) j j
`a (!) .
Solu i on: Como el sistema es del tipo m = 1, enton es: f (z) = (1z )z .
Para determinar la estabilidad robusta del pro eso, empleamos la e ua ion
(7.51) on diferentes valores de , tal omo lo al ula el programa ejem7 5.m.
Podemos omprobar que la estabilidad robusta para el aso que nos o upa,
se preserva para ualquier valor de entre 0 y 1. El mismo programa deter-
mina el rendimiento robusto del pro eso. En el gr a o de magnitudes de la
gura 7.5, podemos observar que para = 0.9 se umplen las ondi iones
de estabilidad y rendimiento robustos. Este valor de es la solu ion al
problema de optimiza ion planteado en la e ua i on (7.54). Notar que en la
veri a ion del rendimiento robusto estamos empleando un fa tor de 0.5 en
la fun i on de peso W (s).
% ejem7_5.m ESTABILIDAD ROBUSTA Y RENDIMIENTO ROBUSTO
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)
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);
% PROCESO DISCRETO pz(z)
T = 0.05;
[numdp,dendp℄ = 2dm(nump,denp,T,'zoh');
366 Control Robusto
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 −16
100 101 102 100 101 102
Frecuencia angular (rad/s) Frecuencia angular (rad/s)
j j
Figura 7.5: (a) Magnitudes de p~q~` 1 y f (z) (en trazos) para veri ar la j j
estabilidad. (b) Magnitud de M para veri ar el rendimiento robusto.
368 Control Robusto
Ejemplo 7.6
Mux
+ z2+a1.z+a2 (1−alfa)z Kp
− (b1+b2)z2 z−alfa u s2+ap.s+bp q Gráfico
Sum1 Controlador q~(z) Mux
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 disen
~ado.
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
El Controlador Optimo H2
Asumamos que p(z) = p~(z) posee polos 1 ; : : : ; k ubi ados fuera del CU
( r ulo unitario) y un polo de multi ipli idad `. De namos:
bp(z) = (1 ( jH )1 )(z ) j
j=1 (7.55)
(1 j)(z ( H ) 1 ) j
y fa tori emos la planta en una por i on pasa todo p A(z) y otra por i on
semipropia de m nima fase p M (z) (ver la subse i on 7.3.1):
p~(z) = p~A (z)p~M (z) (7.56)
De manera an aloga fa tori emos la entrada v(z):
v(z) = vA(z)vM (z) (7.57)
Asumamos ahora sin perdida de generalidad, que los polos inestables de v(z)
ubi ados fuera del CU son los primeros 1 polos j del pro eso, y de namos:
H1
1 (1 ( j ) )(z ) j
bv(z) = (7.58)
j=1 H 1)
(1 j)(z ( ) j
Disen
~ o del Controlador CMI q~(z)
donde q~ (z) an ela todos los polos i , i = 1; : : : ; de q~H (z) que posean
parte real negativa, y los sustituye on polos en el origen. De esta forma,
el sistema tiende a ontrolarse on m nimo tiempo de estabiliza ion. El
ontrolador q~(z) se formula omo:
zi
q~(z) = z i=1 1 (7.61)
ki
dk
(1 q~ (z)B(z)) = 0; k = 0; : : : ; mi 1; i = 1; : : : ; (7.62)
dzk z= i
B(z) = X
M1
bjz j
(7.63)
j=0
M= X mi (7.64)
i=1
dk 1 1
(1 q~( )B( )) = 0; k = 0; : : : ; mi 1; i = 1; : : : ; :
d k = 1
i
(7.65)
372 Control Robusto
donde:
(z) = X
!
jz
j
(7.69)
j=0
jf (e )j < jp~(e
j!T j!T
)q~(ej!T )`m (!) j 1
; 0 !
T
: (7.70)
7.5 Pro edimiento de Disen
~o 373
jq^j`a + j1 j
p~q^ W 1; 0 ! =T (7.71)
donde:
q^(s) = q~(esT )f (esT )Z[hr0 (s)℄ (7.72)
El disen
~o del pre ltro (s) se trato en la subse ion 7.3.1
7.6.2 Disen
~ o del Sistema de Control Robusto
Los pasos (2) al (7) del pro edimiento de disen
~o fueron ubiertos en los
ejemplos 7.1 al 7.5.
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 disen
~ado, 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
Problema 7.1
El problema 3.2 presenta las e ua iones que gobiernan la din ami a longi-
tudinal de un avion omer ial volando a velo idad de ru ero (altura y ve-
lo idad onstantes). El ontrol del angulo de in lina i on del avion (ver
7.7 Problemas Resueltos 381
50
40
Posición (grados)
30
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 −20
0 1 2 0 1 2
10 10 10 10 10 10
Frecuencia angular (rad/s) Frecuencia angular (rad/s)
Problema 7.2
El pro eso redu tor de humedad des rito en el problema 3.7 se muestra
en la gura 3.24(a). El objetivo de ontrol es redu ir la humedad h del
material a granel de la tolva. La banda transportadora, que se desplaza
a una velo idad v= 1 m/s onstante, introdu e el material a un horno de
se ado. El sensor de humedad dete ta h r a una distan ia d = 10 m del horno y
propor iona la sen~ al de voltaje vr . El horno puede modelarse omo
7.7 Problemas Resueltos 385
+ (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)z3+(a2−a1*k1)z
. 2+(a3−a2*k1)z−a3*k1 s3+cn.s2+dn.s
(1−k1)*b1z +(1−k1)*b2z3+(1−k1)*b3z2
4 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
1
Deflector (rad)
0.5
−0.5
0 1 2 3 4 5 6 7 8 9 10
Tiempo en segundos
Figura 7.13: Angulo de in lina ion (salida ontrolada) y angulo del de e tor
de eleva ion (sen
~al 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.
Disen~ar un sistema de ontrol robusto on modelo interno para ontrolar
la humedad del material en la banda transportadora. El u ni 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
disen~o 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 disen
~ado debe
ser del tipo m = 1. La sele i on del tiempo de muestreo es a onvenien ia
del disen~o. Asumir: `m (!) j j j
`m (ei! ) y `a (!) j
`a (!) .
Solu ion: El programa p10rob1.m detalla el pro edimiento para disen ~ar el
ontrolador robusto uando la entrada v es un es al on. La gura 7.15 (ar hi-
vo p10rob1s.m) es el diagrama de bloques empleado en la simula ion del sis-
tema disen~ado 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 disen ~ ado umple los requerimientos de es-
tabilidad y rendimiento robustos, tal omo se apre ia en la gura 7.16.
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
(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 −12
100 101 100 101
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
z2+ 9a2.z18 .
0a1.z 1+ z−k1 s2+as+b Salida y
b1.z2+
0b2.z19 (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 −10
100 101 102 100 101 102
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
200
Fuerza (N)
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 m aquinas 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 K a 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 i on menor que 8 s. Para no saturar al a tuador (un
ampli ador de poten ia), la sen ~al de ontrol debe estar dentro del rango
de 200 volt. Disen~ar 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 al on. El sistema disen ~ado debe ser del tipo m = 1. La sele ion del
tiempo de muestreo es a onvenien ia del disen ~o. Asumir: ` m (!) j j
`m (ei! )
y `a (!) j j
`a (!) .
Solu ion: El programa p8rob1.m detalla el pro edimiento para disen ~ar
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 disen~ado 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 disen~ado 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 −4.5
100 101 100 101
Frecuencia angular (rad/s) Frecuencia angular (rad/s)
El problema 3.1 des ribe en detalle las e ua iones que gobiernan la din ami a
del sistema de suspension de un bus (ver gura 3.12). Disen ~ar un sistema de
ontrol robusto on modelo interno para lograr el objetivo de ontrol que se
formula a ontinua i on. La salida del pro eso y = x 2 x1 (referen ia nula) no
400 Control Robusto
+ 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.5
Posición (m)
1.5
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
Problema 7.6
La gura 2.2 muestra dos tanques id enti 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 i on del modelo
linealizado del pro eso se des ribe en el ejemplo 2.1. Las espe i a iones de
disen
~o son: tiempo de estabiliza ion menor que 15 s, sobreimpulso menor al
5 % y error nulo en estado estable. El ujo de entrada (la sen ~al de ontrol)
no debe sobrepasar los 3 m3 /s. Disen ~ ar un ontrolador robusto on modelo
interno que logre umplir los requerimientos anteriores. Realizar el al ulo del
ontrolador para una entrada v es al on. El sistema disen ~ado debe ser del
tipo m = 1. La sele ion del tiempo de muestreo es a onvenien ia del disen
~o.
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. Disen ~ar 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 disen ~ado debe ser del tipo m=1 y la sele i
on del tiempo de muestreo es a onvenien ia del disen ~o. La salida on-
trolada no debe presentar sobreimpulso ni error esta ionario. El par ametro
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 est a a ionado por un servomotor.
Disen~ar 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
disen
~ado debe ser del tipo m = 1 y la sele ion del tiempo de muestreo es a
onvenien ia del disen~o.
402 Control Robusto
Problema 7.9
(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 i on 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 din ami a del sistema fueron
requeridas en el problema 3.12. Disen ~ ar un sistema de ontrol robusto on
modelo interno para ontrolar simult aneamente las posi iones y on
m nimo tiempo de estabiliza i on y m nimo 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 disen ~ado debe ser del
tipo m = 1 y la sele ion del tiempo de muestreo es a onvenien ia del disen ~o.
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 p endulo doble no lineal que es una exten-
sion del p endulo simple des rito en la se i on 3.1. El a oplamiento entre
los dos p endulos de igual longitud no es exible. Las e ua iones que des-
riben la din ami a del sistema son materia del problema propuesto 3.13.
7.8 Problemas Propuestos 403
Problema 7.12
La gura 3.33 muestra el pro eso doble gru a-puente no lineal que es una ex-
tensi on del pro eso gru a-puente des rito en la se i on 3.2. El a oplamiento
entre los dos p endulos de igual longitud no es exible. Las e ua iones que
des riben la dinami a del sistema son materia del problema propuesto 3.14.
Disen~ar un sistema de ontrol robusto on modelo interno para ontrolar
simult aneamente las posi iones y on m nimo tiempo de estabiliza i on y m
nimo sobreimpulso, de modo tal que la doble gru a puente permanez a en
posi ion verti al uando el arro realiza un re orrido predeterminado. Con-
siderar que la arga adi ional esf eri a de 0.02 kg var a en 6 %. Realizar el
al ulo del ontrolador para una entrada v es alon. El sistema disen ~ado debe
ser del tipo m = 1 y la sele ion del tiempo de muestreo es a onvenien ia del
disen
~o.
Problema 7.13
Problema 7.14
Problema 7.15
Repetir los problemas 7.1 al 7.14 uando la entrada v toma las formas:
1 z=
v(s) = ; v(z) = T ==tau
; = 100T
s+1 ze
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 Tz
v(s) = ; v(z) =
s2 (z 1)2
y el tipo del sistema es m=2. Tomar omo sen
~ al de referen ia una rampa
de pendiente unitaria.
Cap tulo 8
Control No Lineal
rh = x =
h 7 x1
.
5 h
.
h
(8.2)
f1
3
rf = x =
f
64 x1
.
.
fn
xn
.
.
fn
(8.3)
x1 xn
r
L0fh = h f 0 = h
Lif h = Lf (Lf i 1 h) = r(L i 1
f h) f; i = 1; 2; : : : (8.4)
Del mismo modo, si g es otro ampo ve torial, la fun i on es alar LgLf h(x)
es:
LgLf h(x) = (Lf h) g r (8.5)
8.1 Herramientas Matemati as 407
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)
[f ; g℄ = rg f rf g = ad g f
Solu ion:
0 0 2x1 + ax2 + senx1
[f ; g℄ =
2sin(2x1) 0 x2 osx1
2 + osx1 a 0
x2sinx1 osx1 os(2x1)
a os(2x1)
=
osx1 os(2x1) 2sen(2x1)( 2x1 + ax2 + senx1)
408 Control No Lineal
1. Bilinealidad:
[ 1 f1 + 2 f2 ; g℄ = 1 [f1 ; g℄ + 2 [f2 ; g℄
[f ; 1 g1 + 2 g2 ℄ = 1 [f ; g1 ℄ + 2 [f ; g2 ℄
2. Anti onmutatividad:
[f ; g℄ = [g; f ℄
3. Identidad de Ja obi:
Lad g h = Lf Lg h
f
Lg Lf h
!
De ni ion 8.3 Una fun i on : R n Rn de nida en una region , se
denomina un difeomor smo si y su inversa son suaves. Si = Rn,
enton es (x) es un difeomor smo global. Si (x) se de ne en una region
nita y para un punto dado, enton es el difeomor smo es lo al.
Lema 8.2 Sea (x) una fun ion suave de nida en una region en Rn. Si el
ja obiano r es no singular en un punto x = x de , enton es (x)
de ne un difeomor smo lo al en una regi on de .
Ejemplo 8.3
x_ = f (x(t)) + Xm
gj (x(t))uj (t); y(t) = h(x(t)) (8.6)
j=1
z_ = x_(t)
x
=
x (t)
f(x(t)) +
Xm
gj (x(t))u j (t) (8.8)
x x(t) x x(t) j=1
410 Control No Lineal
z_ = ~
f (z(t)) + X m
g~j (z(t))uj (t); ~ (z(t))
y(t) = h (8.9)
j=1
~f(z) = f ( 1
(z))
x
1
g~j (z) = gj ( (z))
x
~ (z) = h(
h 1
(z))
Observar que (8.9) onstituye un nuevo sistema no lineal on un ve tor de
estado z.
Ya vimos que la nota ion [f ; g℄ es ono ida omo el or hete de Lie. Par-
tiendo de la de ni 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:
[f ; g℄(x) = 0 = Xm
ijk(x)f k(x); 8 x; i; j
k=1
6
Si Lgh(x) = 0, enton es se obtiene la rela ion deseada entre y y u; en aso
ontrario, debemos seguir derivando la salida remanente y_ = Lf h(x) omo
se muestra a ontinua ion:
y• = Lf h(x)x_
x
= Lf h(x)f (x) + Lf h(x)g(x)u
x x
2
= L fh(x) + LgLf h(x)u
6
Nuevamente, si LgLf h(x) = 0, enton es se tiene la rela i on deseada. En
aso ontrario, se debe seguir derivando la salida hasta que en la r-esima
derivada la entrada u aparez a en forma expl ita, omo sigue:
De ni ion 8.6 El grado relativo del pro eso univariable no lineal dado en
la e ua ion (8.10), es el nu mero de ve es r que hay que derivar la salida
hasta obtener:
LgLi fh(x) = 0; i = 1; 2; : : : ; r 2 (8.11)
LgLrf 1
h(x) 6= 0 (8.12)
n 1
n(x) Lf h(x)
on x = [x1 ; x2 ; ; xn ℄ , umple on las ondi iones de una transforma ion
T
= zn
z_n = Lfnh(x) + LgLnf 1h(x)u
= Lnf h( 1(z)) + LgLn f1h( 1
(z))u = b(z) + a(z)u
y = z1 (8.14)
414 Control No Lineal
6
Notar que en la e ua i on anterior, a(z) = 0 por de ni i on, ya que en este
aso r = n.
Cuando el pro eso no lineal posee rango r < n, enton es el ambio de o-
ordenadas desarrollado anteriormente ondu e a una transforma i on par ial,
en vista de que solo se pueden de nir r fun iones de la forma 1(x); : : : ; r(x)
linealmente independientes. Sin embargo, es posible agregar n r fun iones
de la forma r+1(x); r+2(x); : : : ; n(x), de modo tal que (x) sea un difeo-
mor smo. Con ello, la forma normal del pro eso (8.10) resulta en la siguiente
representa i on en el espa io de estado:
z_1 = z2
z_2 = z3
..
z_r 1 = zr
z_r = Lfrh( 1(z)) + L gLr f1h( 1
(z))u = b(z) + a(z)u
z_r+1 = w1(z)
..
z_n = wn r(z)
y = z1 (8.15)
donde w1; w2; : : : ; wn r son fun iones suaves que dependen del nuevo estado
z y no de la entrada manipulada u.
z_1 = z2
z_2 = z3
.
z_n 1 = zn
1 1 1
z_n = Lnf h( (z)) + Lg Lnf h( (z))u = b(z) + a(z)u
y = z1 (8.16)
Si se de ne una sen
~al de realimenta ion u (la ley de ontrol no lineal) de la
forma:
1
u= [ b(z) + v℄ (8.17)
a(z)
donde v es una nueva entrada, enton es el nuevo onjunto de e ua iones
viene a ser:
z_1 = z2
z_2 = z3
.
z_v = v
y = z1 (8.18)
6 7
0 0 1 ::: 0 0
A= 66 . . . . . 77 ; B= . ; C= 1 0 ::: 0 0 (8.20)
4 0 0 0 ::: 1
0 0 0 ::: 0
5 46 75
0
1
Observar que la nueva entrada del pro eso lineal es v. La gura 8.1 mues-
tra el pro eso de linealiza i on des rito hasta ahora. El pro eso lineal de la
e ua i on (8.19) es ompletamente ontrolable y ompletamente observable,
416 Control No Lineal
v u x
- - + - x_ = f (x) + g(x)u
6 6 z
b(z) z = (x)
a(z)
1 y
a(z) ?- C -
Las ondi iones para linealiza i on exa ta pueden ahora ser rigurosamente
formalizadas.
Teorema 8.2 El pro eso univariable no lineal de la e ua ion (8.10):
x_ = f (x) + g(x)u
2. El onjunto:
2
[g; adf g; : : : ; adnf g℄
es involutivo en .
La primera ondi ion puede ser interpretada omo una ondi i on de on-
trolabilidad dado que los ampos ve toriales [g; adf g; : : : ; adfn 1 g℄ apli a-
dos a pro esos lineales se onvierten en la ono ida matriz de ontrolabilidad
[B; AB; : : : ; An 1 B℄. El rango de esta matriz debe ser n para que el pro eso
lineal (entendi endose que el modelo del pro eso es lineal) sea ompletamente
ontrolable (subse ion 2.3.6). Sin embargo, puede o urrir que un sistema
no lineal sea ontrolable, mientras que su modelo linealizado no lo es. Por
ello, la primera ondi i on puede onsiderarse omo una generaliza i on de la
ondi i on de ontrolabilidad.
La ondi ion involutiva es menos intuitiva. Para sistemas lineales, tal
ondi i on se satisfa e trivialmente ya que los ampos ve toriales son ons-
tantes. Pero, en general, no se puede de ir lo mismo uando se trata on
pro esos no lineales.
418 Control No Lineal
CAn 1
El aso no lineal y no forzado que nos o upa posee la des rip ion:
x_ = f (x); y(t) = h(x) (8.24)
uya orrespondiente matriz de observabilidad generalizada es:
2 h(x)
Lf h(x)
3
57
(8.25)
O(x) , x 64 .
L h(x) fn 1
Es fa il demostrar que si f (x) = Ax y h(x) = Cx, las matri es de
observabilidad de las e ua iones (8.23) y (8.25) se igualan. Supongamos que
la matriz O(x) posea inversa para todo x. En tal aso, la transforma i on
de nida por:
L
2
h(x) 3
z = (x) = f h(x)
(8.26)
x
.64 57
f
Ln 1h(x) los resultados anteriores
representa un ambio de oordenadas. Empleando
y en analog a on la e ua i on (8.16); la des rip i on en el espa io de estado
para las nuevas oordenadas (notar que g = 0) es:
2 z_1 3 2 z2 3
6 z_2
7 6 z3
77
64 .
z_n 1 75=
64 .
zn
;
5
y=z
1
(8.27)
A= 66 0 0 1 ::: 0
. . . . . 77
; B= 6 7
0
. ; C= 1 0 ::: 0 0 (8.29)
4 0 0 0 ::: 1
0 0 0 ::: 0
5 46 75
0
Se puede demostrar que la matriz de 1 observabilidad del pro eso des rito
en la e ua i on (8.28) es la matriz identidad. Por onsiguiente, tal pro eso es
ompletamente ontrolable. Conforme a las rela iones (8.24), (8.25) y (8.26)
se tiene que:
z_ = x_ = O(x)f (x)
x
= Az + BLnfh( 1(z))
y = Cz (8.30)
El observador a disen~ar debe estimar el ve tor de estado z; es de ir, debe
determinar su estimado ^ z empleando las medi iones a la entrada y a la salida
del pro eso. Ha iendo una extensi on de los bien ono idos observadores
lineales (subse i on 2.3.6), para el observador no lineal podemos onsiderar
la din ami a siguiente :
d^
z
= A^ z + BLnf h( 1 (z)) + L[y C^ z℄; y^ = Cx
^ (8.31)
dt
donde observamos que el t ermino L[y C^ z℄ es propor ional al error entre la
salida del pro eso y y la salida del observador y^. Para obtener la expresion
del observador para los estados x(t) del pro eso no lineal, empleamos la
version estimada de la e ua ion (8.30) que nos permite despejar el ve tor de
estado estimado dx ^ =dt omo sigue:
dx^ d^
z
= O 1 (x^)
dt dt
y usando la rela i on (8.31) obtenemos:
dx
^
dt
= O 1 (x ^) A^ f
z + BLnf h( 1 (z)) + L[y z℄
C^ g
= O 1 (x ^) O(x f
^)f (x
^) + L[y C^ z℄ g
1
= f (x ^) + O (x ^)L[y h(x ^)℄ (8.32)
420 Control No Lineal
Luego, por extensi on (ver e ua i on (8.31)), la din ami a del observador para
el sistema forzado:
tiene la forma:
d^
z 1 1 1
z + BLnf h(
= A^ z)) + L g Lnf
(^ h( (z^))u + L[y z℄
C^ (8.34)
dt
que debe umplir on los requerimientos siguientes: que el pro eso posea
grado relativo r = n, que su matriz de observabilidad sea invertible y que la
entrada u sea uniformemente a otada. La e ua i on del observador para el
sistema original toma la forma siguiente:
dx
^ 1
= f (x
^) + g(x
^)u + O L[y(t) ^)℄
h(x (8.35)
dt
para una ondi ion ini ial x
^(0).
1 a1
donde n es el orden del pro eso, y:
N= CT AT C T (AT )n 1 C T
8.6 Pro edimiento de Disen
~o 421
2 an 1 an 2 a1 1 3
66 an 2 an 3 1 0 7
W =
4 1
.
a1
.
1
0
. .
0
0
0
0
75
Los parametros ai, i = 1; : : : ; n, se obtienen de la e ua ion:
jsI j
A = sn + a 1 s n 1
+ + an 1s + an
(s 1) (s 1) = sn + 1s n 1 + + n 1s +n
y deben tener parte real negativa para garantizar la estabilidad del obser-
vador no lineal.
9) Implementar el hardware.
1. Modelo no lineal de ter er orden del pro eso uando onsideramos que
la indu tan ia de armadura L es no despre iable.
fri i on estati a y fri ion de Coulomb, enton es el pro eso no lineal puede
ser des rito mediante la siguiente representa i on en el espa io de estado:
2 N
x
B 2 1 nK
3
f (x) =
4( M )senx1 M x2 M TN + M x3
5
23
0
nE
L x2 R x
L 3 +KaLtu
g(x) =
45
01 ; h(x) = x1 (8.38)
Los elementos del ve torL de estado [x1 x2 x3 ℄T son la posi ion angular, la
velo idad angular y la orriente de armadura, respe tivamente, y K a t u es la
tensi on de armadura. Notar que el modelo del pro eso no lineal es ontinuo
y diferen iable.
El t ermino 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.
x2
x_ = BR+n2 KE TN N nKa tK = f (x) + g(x)u
MR x2 M M senx 1 + MR u
y = h(x) = x1 (8.39)
donde:
x2 0
f (x) = BR+n2 KE TN N ; g(x) = nKa tK
MR x2 M M senx 1 MR
M
B nK
M
54 5 4 50
1 =
nK
R
ML
M 0nE
L
R
L L L2
ad2f g = [f ; adf g℄ = r(ad g) f rf ad g
f f
8.7 Control No Lineal de un Servosistema 425
2 32 3 2 3 nK
0 1
54 5 4
0
5 0 ML nKR
N B nK nK nKB
= 4 M osx1
L MR
L
M ML =
ML2
22
nMKEL ML 2R2
+
3
0 nE LR2 nK
2 0 0 nKB
ML nKR
L3
[g adf g ad2 g℄ =
4
f
5 0
1
L
nK
ML
R
L2
M 2 L2
ML
n KE
2 +
ML2
L3
R2
Dado que:
2 n2K 2
det[g adf g adf g℄ = 3 3
M L
enton es tal onjunto est a onformado por ampos ve toriales linealmente
independientes. Por otra parte, el onjunto:
[g adf g℄
es involutivo porque es onstante.
3 2
La forma normal del pro eso en estudio puede ser obtenida mediante la
2
transforma i on no lineal z = (x) del estado x, omo sigue:
z1 = (x) =
3 2 3
z= 4 5 z2
z3
h(x)
4 Lf h(x)
Lf2h(x) 54=
x1
N sinx1
x2
B x2 nK x3
5
M M M
(8.46)
426 Control No Lineal
2
estado z est a dado por:
x1 = 1(z) = 3
x= x24 5
x3
4 N
senz 1 +
z1
z2
B
z + MnKz3
5
nK nK 2
De a uerdo a la subse i on 8.3, las nuevas oordenadas resultan: z_1
= z2
z_2 = z3
1 1
z_3 = L3f h( (z)) + Lg L2fh( (z)) (8.47)
(8.48)
donde:
r
L3f h(x) = (L3f h(x)) f (x)
N B N B nK nK nE R
= osx 1x 2 senx1 x2 + x3 + x2 x3
M M M M M M L L
2 nKa tK
L L h(x) =
g f
ML
Luego, la forma normal del pro eso resulta:
z_1 = z2
z_2 = z3
N NR n2 KE BR B R
z_3 = osz1 z2 senz1 + z 2 + z 3
M ML ML ML M L
nKa tK
+ u
ML
y = z1 (8.49)
x_ =
h
no lineal TN es (ver e ua i on 8.39):
x2 BR+n2 KE N nKa tK
i
MR x2 M senx1 +
MR u = f (x) + g(x)u
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
z_1 = z2
z_2 = z3
z_3 = v
y = z1 (8.52)
o lo que es equivalente:
z_ = Az + Bv; y = Cz
donde:
2 3 2 53
A= 4 0 1 0
0 0 1
0 0 0
5; B= 40
1
0
;C = 1 0 0
v Realimentacion Proceso y
no lineal no
u = u(z,v) lineal
z x
z x
v y
Proceso lineal s3
equivalente
Figura 8.2: Linealiza ion del pro eso no lineal y su pro eso lineal equivalente.
K KK ; z = y_1 2
Finalmente, la sen ~al de3 ontrol u puede ser obtenida reemplazando (8.55)
en (8.51), lo que resulta en:
ML dr 3 d2r dr N
u = + K3 1 + K2 + K3 r Kz + osz 1z 2
nK dt dt2 dt M
8.7 Control No Lineal de un Servosistema 429
NR 2
n KE BR B R
+ senz 1 + + z 2 + + z3 (8.56)
ML ML ML M L
MR 2
BR + n KE N
u= v+ x 2 + senx 1 (8.57)
nKa tK MR M
linealiza ompletamente el modelo del pro eso dado en (8.50), donde v es una
nueva entrada por disen ~arse. Al apli ar la sen~ al de ontrol anterior, el
modelo del pro eso ompletamente linealizado queda omo:
x_1 = x2
x_2 = v
y = x1 (8.58)
d2r d(r y)
v= K1 K2(r y)
dt2 dt
logra que el sistema de lazo errado tenga la forma:
d2(r y) d(r y)
+ K1 + K2(r y) = 0
dt2 dt
donde K1 y K2 determinan la din ami a del error (r y). Si se desea que
!
y r uando t !1 , enton es los eigenvalores de la e ua ion anterior deben
poseer parte real negativa. Por ejemplo, si deseamos que los eigenvalores
sean s1 = s2 = 4, enton es la e ua i on del sistema de lazo errado resulta
s2 + 8s + 16, de donde se obtiene: K1 = 8 y K2 = 16 y K3 = 64. La expresi
on de v en fun i on de la traye toria de referen ia resulta enton es:
d2r dr
v= + K1 + K 2r Kx (8.59)
dt2 dt
430 Control No Lineal
donde: 23
K=
y•
4 5 y
KK ; z = y1_
Finalmente, la sen ~al de ontrol
2 u puede obtenerse reemplazando (8.59) en
(8.57), lo que resulta en:
M R d r2 dr
u = + K 1 + K2 r K x
2
nKa tK dt dt
2
BR + n KE N
+ x2 + senx 1 (8.60)
MR M
8.7.7 Disen
~ o 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 h(x) 3 2 x1 3
O(x) =
x
4 Lxh(x)
L2xh(x)
5 4 =
x N senx1
x2
B
M x2 + nK 5
=
24 1
0
35
0
1
0
0
M M x3
(8.61)
N B nK
senx1
M M M
Claramente vemos que:
nK
det[O(x)℄ =
2 M
0
nK
osx1 B
1 0
nK nK
M
5
Por onsiguiente, la e ua i on del observador es:
dx
^
= f (x ^)u + O 1 L[y(t)
^) + g(x ^)℄
h(x
dt
y^ = h(x ^) (8.62)
8.7 Control No Lineal de un Servosistema 431
h(x) x1
O(x) = =
x Lx h(x) x x2
1 0
= B nK (8.63)
0 1M M
dx
^ 1
= f (x
^) + g(x
^)u + O L[y(t) ^)℄
h(x
dt
y^ = h(x^) (8.64)
Cabe anotar que en este aso el observador es util para estimar la velo i-
dad angular x2. Sin embargo, por software podemos tambi en estimar x2,
sabiendo que es la derivada de x 1.
(s s1)(s s2)(s s 3 ) = s 3 + K1 s 2 + K 2 s + K3
de donde resulta:
p p
K1 = 40 + 20 2; K2 = 300 + 800 2; K3 = 12000
432 Control No Lineal
z z z
z = (x)
disnl1_u disnl1_x
u x
Mux
gráfico
Señal v Señal de Proceso Mux
control u no lineal
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
disnl2_u
u
Mux
gráfico
Señal u Proceso Mux
Señal v no lineal
disnl2_x1
x1
Referencia disnl2_r
r ConversiónObservador r
de x a z no lineal
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
1
r = [e(k) + e(k 1) + e(k 2) + e(k 3)℄
4
438 Control No Lineal
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.;
r(t) = 3e 2t + 2sen(2t) + 2
444 Control No Lineal
p
Los p
p2 = polos
10 del2 +sistema
10i. Lalineal
e ua equivalente se a
ion ara ter sti ubi aron en p1 = a 10
orrespondiente tales2 polos
10i y
es:
s2 + 28:2843s + 300 = 0
de donde obtenemos: K 1 = 28:2843 y K2 = 300. Podemos observar en la
gura 8.10 que la respuesta presenta sobreimpulso nulo, tiempo de estabi-
liza ion menor que 0.4 s y error en estado estable nulo.
300
Posición (grados)
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
Problema 8.1
El pro eso p endulo no lineal mostrado en la gura 2.3, uyo modelo se des-
ribe en el ejemplo 2.2, puede rotar libremente alrededor del pivote gra ias a
8.8 Problemas Resueltos 445
X_1 = X2
g Bp 1
X_2 = senX1 X 2 + U
L o MoL2o MoLo 2
Y = X1 = h
_ = f, donde:
uya representa ion ompa ta resulta: X
X=
X1
; f=
f1
=
" g Bp
X2
1
#
X2 f2 Lo senX1 MoL2 x2 o+ MoL2 U o
U = BX 2 + M LgsenX1 + M L2 V
V = r• + K1 e_ + K2 e• = X_2
e• + K1 e_ + K2 e = 0; (s2 + K1 s + K2 )e(s) = 0
446 Control No Lineal
La sen
~ al V viene a ser:
V = r• + K1 r_ + K2 r K1 X1 K2 X2 ; Y = X1 =
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 sen
~al de ontrol orrespondiente al problema 8.1
Problema 8.2
La gura 2.2 muestra dos tanques id enti 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 sen ~al de ontrol. Disen ~ar
el sistema de ontrol no lineal empleando el m etodo de linealiza i on por
realimenta i on. El ujo de ontrol no debe sobrepasar los 5 m3=s y el tiempo
de estabiliza i on 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 deriv o el modelo no lineal del pro eso on
=0.4 (una onstante que depende de la geometr a del ori io), =1.23
(la densidad del l quido) y g=9.81 m/s2 (la a elera ion de la gravedad),
resultando:
_ = f + gU ;
H Y = h(H) = H2 ; U = Qo
f1 = H1 ;
p f2 = [ H1
p p H2 ℄; g1 = ; g2 = 0
A
Operando on =
p A
g=A obtenemos:
A
Lg Lf h(H) = r(f ) g =
2 p 6=0
2A H 1
2f
r
Lg L h(H) = (L h(H)) g = 1 4A H1 H2 2f
2
p
El nuevo onjunto de variables de estado resulta:
Los estados originales en fun ion de los nuevos estados vienen a ser:
H = 1(z) = z ;
z
H = 1(z) = ( 2 + z )2
p
2 1 1 1 2 1
z_1 = z2
1 1 1 1
z_2 = L2fh( (z)) + Lg L2fh( (z)) = b( (z)) + a( (z))U
donde:
2 2
1
b( (z)) = z2
pz1 1 ; 1
a( (z)) = p
4A z1(z2= +
pz )
2 1
8.8 Problemas Resueltos 449
V = Y• = r• + K1 e_ + K2 e; e=r Y
V = r• + K1 r_ + K2 r K 2 z1 K1 z 2
Problema 8.3
Determinar si es posible una linealiza ion exa ta de los pro esos p endulo
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 x 3.
Solu ion: La e ua ion de estado que des ribe al p endulo no lineal es:
2 3 2 x2 3
7
66 x_1
x_ 77 6 M2(sin x1)( os x1)x
2
2
Bx( os x1)x4 (M1+J2)g(sin x1)+Kx( os x1)KA u
57
5 46
(M2 ( os2 x1 ) (M1 +J2 )J1 )=M2
x_32
4 x_4
= x4
M22g(sin x 1)( os x 1) 2J M1 2(sin
M ( os x1 ) (M1 +J
2
2 x )x1+J2 B x1J x
2 )J1
K 4K u 1 x A
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
h(x) = x4
Luego, el grado relativo resulta r = 2, que es menor que el orden del pro eso:
n = 4. Por onsiguiente, el pro eso p endulo invertido no es exa tamente
linealizable. Lo mismo podemos aseverar para el pro eso grua-puente.
La gura 3.30 muestra el pro eso servomotor on arga no lineal des rito en la
se ion 3.3, en donde el eje de salida del me anismo de redu ion estasujeto a
la arga no lineal mediante una junta exible que puede ser mod- elada omo
un resorte rota ional de onstante K! =0.5 N/m/s. Disen ~ar un
452 Control No Lineal
Problema 8.5
Problema 8.6
La gura 3.31 muestra el pro eso servomotor on arga no lineal des rito
en la se i on 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 din ami a del
sistema son materia del problema 3.12. Determinar si el pro eso des rito
es ompletamente linealizable. Si lo es, disen ~ar un sistema de ontrol no
lineal on linealiza ion de la realimenta i on para ontrolar simultaneamente
las posi iones y on m nimo tiempo de estabiliza ion y m nimo 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.
[9℄ Manfred Morari y Evanghelos Za riou, Robust Pro ess Control. PTR
Prenti e Hall, Englewood Cli s, New Jersey 07632, 1989.
[13℄ Jean-Ja ques E. Slotine y Weiping Li, Applied Nonlinear Control, Pren-
ti e Hall, Englewood Cli s, New Jersey 07632, 1991.
[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.
[21℄ Frank Ayres Jr., Matri es, serie de ompendios S haum, M Graw-Hill
M exi o Panam Bogot a y otras, 1973 (o edi iones mas re ientes).
disen
~o del, 359 formulas notables, 48
Pro eso estable e inestable, 33 inversa, 50
Pro eso multivariable, 31 propiedades, 46
Pro eso univariable, 32
Pro esos on tiempo muerto, 64 Valor absoluto, 7
Puntos de equilibrio, 31 Variables residuales, 32
Ve tor, 2
Regulador optimo uadr ati o de informa ion, 210
propor ional, 131 de parametros, 210
propor ional integral, 141 derivada de un, 14
Rendimiento nominal, 359, 372 integral de un, 14
Rendimiento robusto, 365, 375 norma de un, 16
Respuestas libres y forzadas, 299 Ve tores, 15
Reten i on de orden ero, 41 independen ia de, 15
opera ion on, 15
Sensor(es) de posi ion, 158, 235 ortonormales, 15
Servomotor DC no lineal, 86
modelo, 86
Sistema ausal y estri tamente ausal,
355
Sistema de ontrol adaptivo, 208
on autosintoniza ion, 208
Software de ontrol, 162, 237, 314,
378, 441
Solu i on de la e ua i on de estado,
54, 57