AVANZADO
Dise~
no 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
Dise~
no y Apli
a
iones en Tiempo Real
ISBN 9972{9318{0{3
Ni todo el libro ni parte de esta publi
a
ion puede ser reprodu
ida, ar
hivada,
transmitida o distribuida en forma alguna o mediante algun medio ele
troni
o,
me
ani
o, o de otra ndole, sin que exista previamente y por es
rito el permiso de
autoriza
ion del autor.
Dedi atoria
A mi Familia
A mi Alma Mater
Indi
e General
Dedi atoria
iii
Prefa io
xi
..
..
..
..
..
..
..
..
..
..
.
.
.
.
.
.
.
.
.
.
..
..
..
..
..
..
..
..
..
..
.
.
.
.
.
.
.
.
.
.
..
..
..
..
..
..
..
..
..
..
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
1
1
5
14
15
15
18
19
20
26
29
29
31
31
38
38
45
49
51
53
64
INDICE GENERAL
vi
3 Modelado de Pro
esos
4 Control Optimo
4.1
4.2
4.3
4.4
4.5
4.6
4.7
4.8
4.9
Introdu
ion . . . . . . . . . . . . . . . . . . . . . . . . . .
Control O ptimo Cuadrati
o No Esta
ionario . . . . . . . .
Control O ptimo Cuadrati
o Esta
ionario . . . . . . . . . .
El Regulador O ptimo Propor
ional . . . . . . . . . . . . .
Sele
ion de las Matri
es de Pondera
ion . . . . . . . . . .
Dise~no del Observador O ptimo Cuadrati
o . . . . . . . . .
El Regulador O ptimo Propor
ional Integral . . . . . . . .
Pro
edimiento de Dise~no e Implementa
ion . . . . . . . .
Control O ptimo Cuadrati
o del Pendulo Invertido . . . .
4.9.1 Formula
ion del Problema . . . . . . . . . . . . . .
4.9.2 El Modelo del Pro
eso a Controlar . . . . . . . . .
4.9.3 Cal
ulo de la Matriz de Ganan
ia del Controlador
4.9.4 Cal
ulo la Matriz de Ganan
ia del Observador . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
69
69
70
72
74
75
76
77
77
79
79
80
80
81
81
84
84
86
87
89
90
91
116
123
123
125
127
128
130
136
139
145
145
145
146
147
149
INDICE GENERAL
vii
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
150
153
160
177
179
179
180
185
185
187
202
205
205
207
208
208
211
219
219
221
222
222
222
223
224
224
225
225
229
235
252
253
279
283
viii
INDICE GENERAL
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
..
..
..
..
..
..
..
..
..
..
..
..
..
..
..
..
..
..
..
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
..
..
..
..
..
..
..
..
..
..
..
..
..
..
..
..
..
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
290
290
292
296
296
297
301
303
304
304
305
306
306
306
311
312
321
324
342
347
347
353
353
353
356
357
361
362
363
368
370
372
372
373
374
374
374
INDICE GENERAL
ix
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
..
..
..
..
..
..
..
..
..
..
..
..
..
..
..
..
..
..
..
..
..
..
..
..
..
..
..
..
..
..
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
374
375
376
380
380
399
405
406
406
408
409
410
412
413
414
418
421
422
422
422
424
424
425
427
430
431
439
440
444
445
452
Bibliografa
453
Indi e de Materias
456
Prefa
io
Fundamentos
A nadie es
apa el he
ho de que estamos presen
iando un dramati
o y permanente desarrollo de dispositivos y equipos basados en te
ni
a digital, tales
omo mi
ro
ontroladores, tarjetas de desarrollo para pro
esamiento digital
de se~nales, sistemas en
apsulados,
omputadoras industriales, sistemas de
adquisi
ion de datos, entre otros. Tales dispositivos y equipos, que
ada vez
son mas peque~nos y de menor
osto, pero paradoji
amente mas potentes,
han provo
ado que a
tualmente la gran mayora de los sistemas de
ontrol
se dise~nen basados en te
ni
as digitales.
Con respe
to a las te
ni
as empleadas en el dise~no de los sistemas de
ontrol, podemos observar en la industria que
ada vez son mas las apli
a
iones
basadas en te
ni
as no tradi
ionales, las
uales denominaremos te
ni
as de
ontrol avanzado. En este
ontexto, las te
ni
as de
ontrol avanzado que
han logrado mayor a
epta
ion son las siguientes:
ontrol predi
tivo,
ontrol
no lineal,
ontrol robusto,
ontrol adaptivo,
ontrol optimo, entre otras. La
literatura te
ni
a y las publi
a
iones para
ada una de ellas, es de he
ho
abundante pero lamentablemente espar
ida, de modo que el tratamiento
aislado de
ada te
ni
a puede
onsumir gran
antidad de tiempo y esfuerzo.
Esta publi
a
ion integra en un solo volumen, los fundamentos y los pro
edimientos en
aminados al dise~no de sistemas de
ontrol avanzado y su
orrespondiente implementa
ion en tiempo real. El material desarrollado
basa sus fundamentos en la representa
ion de los sistemas de
ontrol en el
espa
io de estado dis
reto. Sin embargo, no se deja de men
ionar y de tratar
el punto de vista tradi
ional,
uando sea ne
esario.
He sido muy
uidadoso en
ubrir
on amplitud y
on la
laridad del
aso,
empleando mu
has ve
es ejemplos expli
ativos, aquellos
on
eptos fundamentales requeridos para un mejor entendimiento del material presentado.
Las apli
a
iones en tiempo real desarrolladas para validar los metodos de
xii
Prefa io
dise~no presentados en los
aptulos del
uatro al o
ho,
onstituyeron proye
tos de investiga
ion realizados en la Se
ion de Postgrado de la Fa
ultad de
Ingeniera Ele
tri
a y Ele
troni
a de la Universidad Na
ional de Ingeniera
(http://ee.uni.edu.pe),
asa de estudios de la
ual soy do
ente.
Herramientas Computa
ionales
La gran mayora de los ejer
i
ios y problemas formulados en este libro se desarrollan
on el auxilio de la
omputadora personal. Espe
amente, para
el desarrollo de los ejemplos y problemas, y para la simula
ion de las apli
a
iones, se emplea el software \MATLAB" (version 4.2)
on sus herramientas
\Control Systems", \Signal Pro
essing" y \SIMULINK". El software para
las apli
a
iones en tiempo real esta es
rito en C/C++ de \Borland", version
4.52. Evidentemente, los programas elaborados tambien pueden eje
utarse
en versiones de software mas a
tualizadas. Los programas fuente se pueden
des
argar de mi pagina web: http:/ee.uni.edu.pe/728681F. Antes de
emplear tales programas, leer el ar
hivo README.TXT.
Sistema de Unidades y A
entua
ion en Programas Fuente
Esta publi
a
ion emplea el Sistema Interna
ional (SI) de unidades. Para separar la parte entera de la parte de
imal de los numeros de
imales, seguiremos usando el punto (.) en lugar de la
oma (,), debido a que los paquetes
de software MATLAB y Borland C/C++ solo permiten emplear el punto (.) para expresar numeros de
imales. Como tales paquetes de software
no emplean el a
ento ortogra
o, en los listados de los programas fuente
pres
indiremos de tal a
entua
ion.
Sobre el Contenido de los Captulos
Captulo 1: Matemati
a Asistida
on Computadora.
Des
ribe
en forma su
inta algunos topi
os de matemati
as apli
adas (basi
amente
analisis matri
ial y ve
torial) ne
esarios para el desarrollo de los
aptulos
posteriores. La mayora de los ejemplos se desarrollan
on el auxilio del
software MATLAB. De all la razon del nombre del
aptulo.
Captulo 2: Sistemas Dis
retos. Presenta los
on
eptos fundamentales a
er
a de los sistemas de
ontrol realimentados operando en el tiempo
dis
reto, y la representa
ion de los mismos en el espa
io de estado.
Captulo 3: Modela
ion de Pro
esos. En este
aptulo se desarrolla
la modela
ion de los tres pro
esos,
uyos sistemas de
ontrol avanzado van a
xiii
ser implementados en tiempo real. Tales pro
esos son: el pendulo invertido,
la grua-puente y el servomotor D.C. (\Dire
t Current") sujeto a
argas no
lineales. En su se
ion problemas, el
aptulo presenta la modela
ion de
diversos pro
esos tpi
os.
Captulo 4: Control Optimo.
Desarrolla los fundamentos del
ontrol
optimo
uadrati
o dis
reto y dos apli
a
iones en tiempo real:
ontrol optimo
de posi
ion del pendulo invertido y
ontrol optimo de posi
ion de la gruapuente. En su se
ion problemas, el
aptulo desarrolla dise~nos de sistemas
de
ontrol optimo
uadrati
o para varios pro
esos tpi
os.
Captulo 5: Control Adaptivo. Dis
ute brevemente a
er
a de los
prin
ipales sistemas de
ontrol adaptivo, para luego presentar en detalle
el pro
edimiento de dise~no de un sistema de
ontrol adaptivo
on autosintoniza
ion. El pro
edimiento desarrollado se apli
a para implementar en
tiempo real el
ontrol adaptivo
on autosintoniza
ion de la posi
ion de un
servomotor D.C. operando
on
arga no lineal y variable. En su se
ion
problemas, el
aptulo presenta dise~nos de sistemas de
ontrol adaptivo
on
autosintoniza
ion para varios pro
esos tpi
os.
Captulo 6: Control Predi
tivo. Presenta los fundamentos del
ontrol predi
tivo basado en modelos y desarrolla una apli
a
ion en tiempo real:
ontrol predi
tivo de la posi
ion de un servomotor D.C. sujeto a
argas no
lineales empleando el algoritmo de la matriz dinami
a de
ontrol. En su
se
ion problemas, el
aptulo desarrolla dise~nos de sistemas de
ontrol predi
tivo para diversos pro
esos tpi
os, naturalmente, empleando el algoritmo
de la matriz dinami
a de
ontrol.
Captulo 7: Control Robusto. Trata los fundamentos del
ontrol
robusto basado en la te
ni
a de
ontrol
on modelo interno. A
ontinua
ion,
di
ha te
ni
a se apli
a para el
ontrol robusto en tiempo real de la posi
ion de
un servomotor D.C. modelado
on in
ertidumbres. Tambien, en su se
ion
problemas, el
aptulo desarrolla dise~nos de sistemas de
ontrol robusto para
diversos pro
esos tpi
os, empleando el algoritmo de
ontrol
on modelo
interno.
Captulo 8: Control No Lineal. Desarrolla los fundamentos rela
ionados
on el
ontrol no lineal de pro
esos empleando la te
ni
a denominada linealiza
ion por realimenta
ion. Para validar los fundamentos de
di
ha te
ni
a, se desarrolla el dise~no e implementa
ion del sistema de
ontrol por linealiza
ion de la realimenta
ion de la posi
ion de un servomotor
D.C. no lineal. En su se
ion problemas, el
aptulo desarrolla dise~nos de
sistemas de
ontrol no lineal para diversos pro
esos tpi
os.
xiv
Prefa io
Por su
ontenido y su presenta
ion, este volumen puede ser usado
omo librotexto en las espe
ialidades de Ingeniera Ele
tri
a, Ele
troni
a, Me
ani
a
y/o Me
atroni
a, para el di
tado de un
urso semestral, tanto de antegrado
(a llevarse en los ultimos semestres)
omo de postgrado. Para un
urso
de antegrado se sugiere desarrollar los
aptulos 1, 2, 3, 4 y 6, y tratar
su
intamente los
aptulos 5, 7 y 8. Para un
urso de postgrado se sugiere
ubrir los
aptulos 3 al 8, quedando los
aptulos 1 y 2
omo medio de
onsulta.
Por su
ara
ter apli
ativo, por el tratamiento
laro y fa
ilmente
omprensible del material presentado y gra
ias a la gran
antidad de ejemplos,
problemas y apli
a
iones desarrollados, este libro puede ser empleado tambien por la gran audien
ia de ingenieros y te
ni
os espe
ializados que ejer
en
en la industria y por los investigadores de otras areas (fsi
os, matemati
os,
entre otros) que deseen familiarizarse
on las te
ni
as digitales para dise~nar
e implementar en tiempo real sistemas de
ontrol avanzado.
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 (
aptulos 3 y 4), Omar Tupaya
hi (
aptulos 3
y 8) y Raul Benitez (
aptulos 6 y 7). Luis Le
ina (alumno de la Universidad
Polite
ni
a de Catalu~na)
olaboro
on el
aptulo 5. La revision de todo lo
es
rito estuvo a
argo de mi alumna Claudia Cordova, mientras que Rommel
Romero (mi futuro alumno) se en
argo de todo lo relativo a la impresion del
libro.
Arturo Rojas Moreno, Ph.D.
arojasmviab
p.
om
arojasuni.edu.pe
http://ee.uni.edu.pe/728681F
Cap
tulo 1
Matem
ati
a Asistida
on
Computadora
Este
aptulo es una breve exposi
ion de los fundamentos matemati
os rela
ionados
on el analisis matri
ial, el analisis ve
torial y la transformada de Lapla
e. El
material sele
ionado esta estre
hamente rela
ionado
on el material a desarrollarse en los
aptulos siguientes. Para mayores detalles del material
ubierto se
re
omienda
onsultar las referen
ias [18, [19, [20, [21, [22, [14 y el apendi
e
A de [3. Los
al
ulos, en su gran mayora, se realizan
on el auxilio del paquete
MATLAB. Todos los ar
hivos
orrespondientes a los ejer
i
ios desarrolados se
pueden des
argar del sitio: http://ee.uni.edu.pe/728681F.
1.1
A = [aij = 6
4
a11 : : : a1m
...
...
an1 : : : anm
3
7
5
i = 1; : : : ; n; j = 1; : : : ; m
Por ejemplo:
m
X
k=1
aik bkj ; i = 1; 2; : : : ; n; j = 1; 2; : : : ; m
2
4
b11
b21
b31
3
5
11
21
a11 a12
a21 a22
det(A) =
n
X
j
=1
31
a11 a12 a13
a
a
22
23
1+1
4
5
A
det
a21 a22 a23
= ( 1) a11 det a32 a33 +
a31 a32 a33
a
a
a
a
21
23
21
22
1+2
1+3
( 1) a12det a31 a33 + ( 1) a13 det a31 a32
(1.3)
Con rela
ion 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) = 12 : : : n.
La determina
ion de eigenvalores se trata en la subse
ion 1.2.2.
Matriz Inversa
Si A y B son dos matri
es no singulares; es de
ir, si det(A) 6= 0 y det(B ) 6= 0,
enton es:
(AB ) 1 = B 1A 1; (AT ) 1 = (A 1 )T
((A )T ) 1 = ((A 1 ))T ; det(A 1 ) = det1(A)
Si A es una matriz no singular de orden 2, vale re
ordar que:
1
a
b
d
b
1
A=
; A =
d
ad b
(1.4)
A=4
2
6
6
1 6
6
A 1=
det(A) 6
6
4
e
det
h
d
det
g
d
det
g
a b
d e f
g h i
f
i
f
i
e
h
3
5
b
det
h
a
det
g
a
det
g
ge
i
i
b
h
ahf
b
det
e
a
det
d
a
det
d
f
f
b
e
idb
3
7
7
7
7
7
7
5
(1.5)
(A + BDC )[A 1
A 1 B (D 1 + CA 1 B ) 1 CA 1 =
I + BDCA 1 B (D 1 + CA 1 B ) 1 CA 1 BDCA 1 B (D 1 + CA 1 B ) 1 CA 1 =
I + BDCA 1
I + BDCA 1
BD(D 1 + CA 1 B )(D 1 + CA 1 B ) 1 CA 1 =
I + BDCA 1
BDCA 1 = I
Ejemplo 1.2
10
Ejemplo 1.3
y Bmp
(los subndi
es indi
an las dimensiones) pueden ser parti
ionadas
omo sigue:
2
A=6
4
An1 m1
...
An1 mm
...
Ann mm
3
7
5
B=6
4
Bm1 p1
...
Bm1 pp
...
3
7
5
Bmm p1 Bmm pp
La
ondi
ion ne
esaria para realizar el produ
to Cnp = Anm Bmp 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 + + nn, m = m1 + + mm y
p = p1 + + pp . Determinar si el produ
to siguiente es valido y si lo es,
obtener C = AB .
2
32
3
A22 A23 A21
B22 B23
AB = 4 A32 A33 A31 5 4 B32 B33 5
A42 A43 A41
B12 B13
Solu
ion: Podemos notar que para A: n = 2+3+4 = 9, m = 2+3+1 = 6,
y para B : m = 2 + 3 + 1 = 6 y p = 2 + 3 = 5. Por
onsiguiente, la parti
ion
Ann m1
11
C = [A22*B22+A23*B32+A21*B12 A22*B23+A23*B33+A21*B13
A32*B22+A33*B32+A31*B12 A32*B23+A33*B33+A31*B13
A42*B22+A43*B32+A41*B12 A42*B23+A43*B33+A41*B13;
Ejemplo 1.4
Matriz Aumentada.- Si los ve
tores x, y, v y w son de orden n, m, p y
q respe
tivamente, obtener una e
ua
ion que reempla
e a las dos e
ua
iones
= Ax + Bv; dy
= Cy + Dw
dt
Solu
ion: Las matri
es A
on C y B
on D forman matri
es aumentadas
omo sigue:
dx
dt
dy
dt
A 0
0 C
x
y
B 0
0 D
v
w
Ejemplo 1.5
Ejemplo 1.6
Cono
idas las matri
es Ann, Bnm , Cmn y Dmm
on det(A) 6= 0 y det(D) 6= 0,
y deniendo:
E=
A B
0 D
G=
A 0
C D
H=
A B
C D
12
Ejemplo 1.7
A B
0 D
A 0
C D
A 1 BD 1
D 1
A 1
0
1
1
D CA
D 1
A 1
0
=
Solu
ion: Ver el programa ejem1 7.m.
13
Ejemplo 1.8
A B
C D
A B
C D
Solu ion:
=
A 1 + A 1 B (D CA 1 B ) 1 CA 1
(D CA 1 B ) 1
A 1 B (D CA 1 B ) 1
(D CA 1 B ) 1
(A BD 1 C ) 1
(A BD 1 C ) 1 BD 1
1
1
1
1
D C (A BD C )
D C (A BD 1 C ) 1 BD 1 + D 1
14
5-8j -7-2j;
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
B = [
d
A(t) = 6
4
dt
a11 (t)
..
.
d
a
dt n1 (t)
dt
a1m (t)
..
.
d
a
dt nm (t)
d
dt
7
5;
2 R
A(t) = 6
4
a11 (t)
..
.
an1 (t)
a1m (t)
7
..
5
.
anm (t)
(1.7)
d 1
dA 1
A = A 1
dt
A
(1.9)
15
Derivada par
ial de una fun
ion es
alar J (x) de variable ve
torial:
J
x
2 J 3
2J
x2
x1
= 64 ... 75 ;
J
xn
2J
x21
2J
x1 x2
J
xn x1
J
xn x2
= 64
...
2
...
2
2J 3
x1 xn
7
...
2
J
x2n
7
5
(1.10)
2
x1
f2
x2
x1
fm 7
x2 7
7
f2
xn
fm
xn
d
V T dx
V (x(t)) =
(1.11)
dt
x
dt
Ja
obiano de una fun
ion ve
torial f(x) de orden m
on argumento ve
torial
de orden n:
2
3
f
f
f
f
x
1
x
6 f11
6 x2
6
6
4
...
f1
xn
...
...
7
5
(1.12)
Analisis Ve torial
i xi = 0
16
det([x1 : : : xn ) 6= 0.
n
X
i=1
xi xi =
n
X
i=1
n
X
i=1
xi yi
jxi j2
...
...
xxH = 6
4 :::
xnx1 xn x2 : : : xn xn
Si x e y son ve
tores reales de orden n:
x T y = yT x =
2
xxT
= 64
n
X
i=1
xi yi ;
xT x =
3
7
5
n
X
i=1
x21 x1 x2 : : : x1 xn
...
...
:::
xn x1 xnx2 : : : x2n
(1.15)
x2i
3
7
5
(1.16)
Ve
tores Ortonormales
Los ve
tores reales x1; x2 ; : : : son ortonormales si xTi xj = 0
uando i 6= j
xTi xj 6= 0
uando i = j .
Normas de Ve
tores y Matri
es
Norma de un Ve
tor
17
k x k= 0 si y solo si x = 0
k x k=k kk x k es un es
alar
k x + y kk x k + k y k
jxH yj k x kk y k
Desigualdad triangular:
Desigualdad de S
hwarz:
La norma mas empleada es la Eu
lidiana:
p
k x k2 = (xH x)1=2 = jx1j2 + jx2 j2 + + jxnj2
que es un
aso parti
ular de la siguiente norma:
(1.17)
q
q
p
k x k= (P x)H (P x) = xH P H P x = xH Qx) 0; Q = P H P = QH
n
X
i=1
jxi j;
k x k1= max
jxij;
i
k x kp=
n
X
i=1
jxijp
k x k 1= min
jxi j
i
!1=p
n X
n
X
i=1 j =1
jaij j;
k A kF =
0
n X
n
X
i=1 j =1
11=2
jaij j2 A
18
k A k1 = max
j
m
X
i=1
jaij j ;
k A k1= max
i
jaij jA
n
X
j =1
k A k2 = max
i (AH A)
i
1.2.2 Rango de una Matriz, Eigenvalores y Eigenve
tores
Rango de una Matriz
Un eigenvalor de una matriz de orden n,
ono
ido tambien
omo valor propio, modo, \eigenvalue", valor o raz
ara
tersti
a, es un es
alar que
permite una solu
ion no trivial de la e
ua
ion:
Ax = x
x0
(1.18)
Fa
torizando x obtenemos la e
ua
ion
ara
tersti
a de A:
det(I A)
(1.19)
Aso
iado
on
ada eigenvalor i existe un eigenve
tor ei de magnitud arbitraria que es solu
ion de Aei = ei. Para un eigenve
tor normalizado e^, su
norma Eu
lidiana es uno: k e^ k= 1.
19
on todos los demas elementos iguales a
ero. Por ejemplo, si los valores
propios de A de orden n = 5 son 1 ; 1; 1 ; 2; 3 , enton
es son posibles
varias formas de J (se muestran
uatro):
2
3
2
3
1 1 0 0 0
1 1 0 0 0
6 0 1 1
6 0 1 0
0 0 77
0 0 77
6
6
J1 = 6
0 1 0 0 77
J2 = 6
0 1 0 0 77
6 0
6 0
4 0
5
4
0 0 2 0
0 0 0 2 0 5
0 0 0 0 3
0 0 0 0 3
2
3
2
3
1 0 0 0 0
1 0 0 0 0
6 0 1 0
6 0 2 0
0 0 77
0 0 77
6
6
J3 = 6
0 1 0 0 77
J4 = 6
0 1 1 0 77
6 0
6 0
4 0
5
4
0 0 2 0
0 0 0 1 1 5
0 0 0 0 3
0 0 0 0 3
Notar que J1 y J4 deben poseer tres eigenve
tores linealmente independientes, la matriz diagonal J3
in
o y J2
uatro. Para un problema espe
o, la
forma
orre
ta de la matriz J se determina de a
uerdo a las reglas siguientes:
1. Si una matriz
uadrada A de orden k posee k eigenvalores multiples,
y si el rango de [I A es k s, donde 1 s k, enton
es exis-
20
n X
n
X
i=1 j =1
aij xi xj ;
aji = aij
n X
n
X
i=1 j =1
aij xi xj ;
aji = aij
Formas Bilineales
n X
m
X
i=1 j =1
aij xi yj
n X
m
X
i=1 j =1
aij xi yj
21
negativa y semidenida negativa respe
tivamente. Hemos visto que la forma
uadrati
a xH Ax esta aso
iada
on la matriz hermitiana A, as
omo xT Ax
lo esta
on la matriz real y simetri
a A.
Una matriz A de orden n es denida positiva si su forma
uadrati
a
aso
iada es siempre positiva, ex
epto
uando x = 0. Si todos los eigenvalores
de A son positivos, enton
es A > 0.
Una matriz A de orden n es semidenida positiva si su forma
uadrati
a
aso
iada es mayor o igual a
ero
uando x 6= 0. Si los eigenvalores de A son
positivos o nulos, enton
es A 0.
Una matriz A de orden n es denida negativa si su forma
uadrati
a aso
iada es siempre negativa, ex
epto
uando x = 0. Si todos los eigenvalores
de A son negativos, enton
es A < 0.
Una matriz A de orden n es semidenida negativa si su forma
uadrati
a
aso
iada es menor o igual a
ero
uando x 6= 0. Si los eigenvalores de A son
negativos o nulos, enton
es A 0.
Si la matriz A posee eigenvalores positivos y negativos, enton
es A es
indenida.
La tabla 1.2 muestra los
omandos para eje
utar otras opera
iones matri
iales y ve
toriales empleando MATLAB.
Ejemplo 1.9
22
xH y
xT y
aij bij
aij =bij
(aij )bij
Pm
k A k1 = maxj p
i=1 jaij j
k A k2 = maxi Pi(AH A)
k A k1= maxi nj=1 jaij j
1=2
k A kF = Pij jaij j2
k x kp= (pPni=1 jxijp)1=p
k x k2 = xH x
k x k1= maxi jxij
k x k 1= mini jxij
i
E = [e1 : : : en
x'*y
x'*y
A.*B
A.\B; A./B
A.^B
norm(A,1)
norm(A,2)
norm(A,inf)
norm(A,'fro')
norm(x,p)
norm(x)
norm(x,inf)
norm(x,-inf)
rank(A)
eig(A)
[E,D=eig(A)
-->
-->
-->
-->
-->
23
x1;
x2
x3
x4
x5
Ejemplo 1.10
Ejemplo 1.11
24
Ejemplo 1.12
Ejemplo 1.13
Sean las matri
es Anm , Bmp y Cmm . Demostrar numeri
amente las siguientes propiedades del rango: rango(A) min(n; m); rango(A) = rango(AH );
rango(AB ) min(rango(A); rango(B )); rango(CB ) = rango(B ).
Solu
ion: El siguiente programa presenta las demostra
iones pedidas.
Ejemplo 1.14
25
26
%
%
%
%
%
%
0
0 -1
0
0
0
0 -1
rank((-1)*eye(4)-A); % RESULTA 2 => 2 BLOQUES DE JORDAN
% ASOCIADOS CON LA RAIZ TRIPLE (-1)
FORMA DE JORDAN: 0 0 0 0
0 -1 1 0
0 0 -1 0
0 0 0 -1
Ejemplo 1.15
Determinar la deni
ion de las matri
es siguientes:
2
A=4
2 2
2 6
1 0
2
0
2
5;
B=4
1 2 1
2 4 2
3 6 0
3
5
Solu
i
on: Ver el programa ejem1 15.m.
% ejem1_15.m DEFINICION DE MATRICES
lear all
A = [2 2 -2;2 6 0;-1 0 2;
EigA = eig(A); % EIGENVALORES DE A: 0.1996, 6.8922, 2.9083
% A > 0 DADO QUE TODOS SUS EIGENVALORES SON POSITIVOS
B = [1 2 1;2 4 2;3 6 0;
EigB = eig(B); % EIGENVALORES DE B: 0, 7.1098, -2.1098
% B ES INDEFINIDA PUES UN EIGENVALOR ES > 0 Y EL OTRO ES < 0
1.3
La Transformada de Lapla e
27
La tabla 1.3 muestra la transformada de Lapla
e de algunas fun
iones. Algunas de sus propiedades se muestran en la tabla 1.4.
Tabla 1.3: Transformadas de Lapla
e
Des
rip
ion
g(t)
g(s)
Impulso unitario
(t)
1
1
Es
alon unitario
s
1
Rampa unitaria
t
s2
n
!
n
t
Rampa de orden n
s +1 ; n! = n(n 1) : : :
1
at
Exponen
ial
e
s+a
!
Seno
sen!t
s2 +!2
s
Coseno
os!t
s2 +!2
!
Seno amortiguado e at sen!t
(s+a)2 +!2
s+a
Coseno amortiguado e at
os!t
(s+a)2 +!2
n
Ejemplo 1.16
28
v_ =
dv
dt
Determinar la fun
ion de transferen
ia del pro
eso y su respuesta a un es
alon de 1 m/s, sabiendo que la entrada es u y la salida es v.
v velocidad
friccion
bv
s(ms + b)
= 1L
b
bt=m
"
1
s
1
s + mb
Ejemplo 1.17
Empleando las propiedades del valor ini
ial y del valor nal, determinar
tales valores para la velo
idad del movil del problema anterior.
Solu
ion: El valor ini
ial se determina de: limt!0 v(t) = lims!1 sv(s) = 0.
El valor nal se obtiene de: limt!1 v(t) = lims!0 sv(s) = 1b .
Cap
tulo 2
2.1
Dise~
no de Sistemas de Control Digital
30
Muestreador
y
A/D
Computadora
Digital
D/A
y
Retencion
Actuador
y
Proceso
n
Filtraje
Medicion
2.2
31
= f(X; U; v; t)
= 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 denir el
on
epto de estado:
El ve
tor de estado X = [X1 : : : Xn T de un pro
eso (donde el superndi
e T indi
a transpuesta) es el mnimo
onjunto de variables, las variables de estado X1 : : : Xn , las
uales
ontienen informa
ion su
iente
a
er
a de la historia pasada del pro
eso. Esta informa
ion permite
omputar todos los futuros estados del pro
eso, asumiendo por supuesto, que
todas las futuras entradas U son tambien
ono
idas,
omo del mismo modo
lo son las e
ua
iones dinami
as que des
riben di
ho sistema. El numero n
de variables de estado dene el orden o la dimension del sistema.
32
= 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 subndi
e es el numero de las de la matriz y el
segundo, el numero de
olumnas. Es importante notar que en (2.3) estamos
empleando las variables residuales (tambien llamadas variables de desvia
ion
o perturba
ionales) siguientes:
x=X X
u=U U
y
2 f1
X1
6
4
f1 3
Xn
fn
X1
2 h1
X1
fn
;U )
Xn (X
h1 3
Xn
6
4
hr
X1
hr
Xn
...
...
...
...
2 f1
U1
f1 3
Um
fn
U1
2 h1
U1
fn
;U )
Um (X
h1 3
Um
hr
U1
hr
Um
...
7
5
B=6
4
...
7
5
D=6
4
(X ;U )
...
...
...
...
...
7
5
...
7
5
(2.4)
(X ;U )
La matriz de transferen
ia para pro
esos multivariables lineales se determina empleando la e
ua
ion matri
ial siguiente:
Y(s) = [C (sI A) 1 B + DU(s)
(2.5)
donde s es la variable lapla
iana e I es la matriz identidad. Cuando las
se~nales Y y U son unidimensionales, la e
ua
ion anterior se
onvierte en la
e
ua
ion de transferen
ia de un pro
eso univariable. La e
ua
ion
ara
tersti
a del pro
eso se obtiene de:
det(sI A) = 0
(2.6)
donde det es la opera
ion determinante. Las ra
es de (2.6) son tambien
ono
idas
omo ra
es
ara
tersti
as, eigenvalores, valores propios, modos,
33
El pro
eso des
rito por la e
ua
ion (2.3) es estable, siempre que todos los
eigenvalores de su e
ua
ion
ara
tersti
a (2.6) posean parte real negativa.
Cuando al menos uno de tales eigenvalores posea parte real positiva o
ero,
enton
es el pro
eso es inestable.
Ejemplo 2.1
La gura 2.2 muestra dos tanques identi
os
olo
ados en
as
ada. La se
ion
horizontal S =9 m2 de
ada tanque es
onstante. El objetivo de
ontrol es
estabilizar (
ontrolar) la altura H2 empleando
omo fuerza de
ontrol el
ujo de alimenta
ion Qo. Determinar el modelo linealizado de este pro
eso
hidrauli
o.
Q
p
0
H1
Tanque
1
Q
0
g
1
H2
Tanque
2
34
omo:
Q1 = P1
P0 ;
Q2 = P2 P0
dH
Q0 Q1 = S 1 ;
dt
dH
Q1 Q2 = S 2
dt
S
S
p
g p
[ H1
S
H2 = f2
= [0 1
H1
H2
H_ 2 =
S
S
pg p
[ H1
S
H 2 = 0
Q 2
H 1 = H 2 = 2 0
g
donde:
h = hh1
2
B=
A=
"
f1
Q0
f2
Q0
"
f1
H1
f2
H1
f1
H2
f2
H2
p
pgH
2
S
1
4
g
p
p
2S H 1
2
1
= 0 ;
Q0
Ejemplo 2.2
35
(H 1 ;H 2 )
C = [0
1;
g 5
p
p
2S H 2
D = [0
El pro
eso pendulo no lineal mostrado en la gura 2.3 puede rotar libremente alrededor del pivote gra
ias a la a
ion de un torque externo U . En
di
ha gura Bp=1.3366 N-m/rad/s es la fri
ion vis
osa rota
ional en el
punto pivote, Lo=1.6350 m es la longitud de la varilla de peso despre
iable, Mo=0.5 kg es la masa de la esfera y g=9.81 m/s2 es la a
elera
ion
de la gravedad. La salida de interes es la posi
ion angular del pendulo.
Para las situa
iones mostradas en las guras 2.3(a) y 2.3(b) determine: las
e
ua
iones no lineales de estado y de salida, los puntos de equilibrio, las
e
ua
iones linealizadas de estado y de salida, las fun
iones de transferen
ia,
las e
ua
iones
ara
tersti
as, y la estabilidad del pro
eso.
Mo
Bp
Lo
Lo
Mo
(a)
Bp
(b)
Figura 2.3: Pendulo no lineal en posi
ion de equilibrio estable (gura (a)) y
en posi
ion de equilibrio inestable (gura (b)).
Solu
ion: El pro
eso en estudio es univariable; es de
ir, una sola entrada U
a
tuando sobre el pro
eso, y una sola salida: la posi
ion angular. Primero
analizaremos la situa
ion mostrada en la gura 2.3(a). El torque resultante
alrededor del pivote es:
+ Bp_ + MogLo sen
U = Mo L2o
(2.7)
36
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 U
senX1
X2 +
X_ 2 =
2
Lo
Mo Lo
Mo L2o
Y = X1
(2.8)
uya representa
ion
ompa
ta (e
ua
ion (2.1)
on v = w = 0) resulta:
X_ = f;
Y = X1 = h
donde:
#
"
X
2
X
f
X = X1 ; f = f 1 =
(2.9)
B
g senX
1 2U
1
2 x2 +
2
2
p
Lo
Mo Lo
Mo Lo
f2 f2
X1 X2 (0;0)
"
#
f1
U
1
f2
Mo L2o
U 0
h
i
h
h
X1 X2 (0;0)
h
= [0
U 0
g
Lo
Bp
M o L2o
= 1 0
(2.11)
37
p
o o
o o
(2.12)
Bp
Mo L2o
38
2.3
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 se~nal
ontrolada y, luego de ser sensada, pasa por un muestreador, generandose
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 se~nal yd, la
ual ya puede ser pro
esada
por la
omputadora
on el n de generar el algoritmo de
ontrol.
La se~nal 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
ion de orden
ero, que se des
ribe mas
adelante, la se~nal de
ontrol es re
onstruida, lo que resulta en una se~nal de
ontrol
ontinua u
apaz de a
tuar sobre el a
tuador-pro
eso
ontinuo.
Notar que la se~nal de referen
ia digitalizada rd se genera internamente.
Si la referen
ia fuera una se~nal externa, enton
es debe ser pro
esada
omo
la se~nal 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
onvertidores de se~nal, muestreadores y dispositivos de reten
ion, son parte de la
interfaz (tarjeta de adquisi
ion 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 se~nal u , puede modelarse
omo:
1
X
u (t) = u(kT )(t
k=0
kT )
(2.15)
kT ) = e
kT s
, la transformada de
39
rd
ALGORITMO
DE CONTROL
COMPUTADORA DIGITAL
ud
u*
D
A
ACTUADOR
yd
RETENCION
FILTRAJE
A
PROCESO
MEDICION
y* T
1
X
= L[
=
k=0
1
X
k=0
u(kT )(t kT ) =
u(kT )e
kT s
1
X
k=0
u(kT )L[(t kT )
= u(esT )
(2.16)
(2.17)
k=
uya transformada de Lapla
e ahora resulta (ver referen
ias [4, [3):
u (s) =
1
X
T k= 1
u(s + i!s)
(2.19)
40
1
X
=0
u(kT )e
kT (s+j!s )
u (esT )
1
X
=0
u(kT )e
kT s e kT j!s
=
(2.20)
donde hemos usado el he
ho de que !sT = 2. La segunda propiedad
es
omo sigue: si u(s) posee un polo en s = s1, enton
es u(s) debe poseer
polos en s = s1 + j!s, = 0; 1; 2; : : : Esta propiedad puede demostrarse
expandiendo la sumatoria en la e
ua
ion (2.19):
1
X
1
1
u (s) =
u(s + i! ) = [u(s) + u(s + j! ) + u(s + 2j! )
T k= 1
!s 2!max
!
max
(2.21)
41
u(j )
u(t)
max
u*(t)
max
u*(e
max
max
Figura 2.5: Respuesta en fre
uen
ia de las se~nales u(t) y u (t) para ilustrar
el teorema del muestreo.
El area total de la se~nal u a la salida de la reten
ion es:
u(t) =
1
X
k=0
Empleando la
ono
ida transforma
ion L[(t kT ) = e s , la transformada de Lapla
e de u(t) resulta:
1
X
1
1
u(s) = u(kT )e kT s [1 e T s = u (s) [1 e T s
s
s
kT s
k=0
Es bastante util dis
retizar dire
tamente expresiones que
ontengan integrales y derivadas. La aproxima
ion re
tangular
al
ula el area debajo de
una
ierta
urva e(t) mediante la suma de re
tangulos de la forma T e(iT T )
(T es el tiempo de muestreo), tal
omo se ilustra a
ontinua
ion. Por
onsiguiente, terminos que
ontengan integra
ion pueden dis
retizarse empleando
42
2T
3T
4T
2T
u(3T)
u(0)
u (t)
u(2T)
u*(s)
u(T)
u(s)
3T 4T
u(kT )
u(kT ) u(kT
k
X
i=0
e( )d
T e(iT
T );
u(kT
T) T
k 1
X
i=0
e(iT
T)
T)
Z t
2
= e(t) eT(2kT ) = e(kT ) T2e(kT T ) = e_(t) eT_(t T )
...
(2.24)
Si la dis
retiza
ion de la derivada se realiza por adelanto, enton
es las diferen
ias son de la forma:
x(kT + T ) x(kT );
x(k + 1) x(k)
Ejemplo 2.3
Dis
retizar el modelo no lineal del pro
eso pendulo des
rito en el ejemplo 2.2
y gra
ar diez segundos de su respuesta a un torque tipo es
alon unitario.
43
Ejemplo 2.4
k
T X
u(k) = K e(k) +
e(i
TI i=0
1)
44
Posicin (rad)
0.14
0.12
0.1
0.08
0.06
0.04
0.02
0
0
100
200
300
400
500
600
Tiempo discreto k
700
800
900
1000
1) =
"
k
T X
K e(k 1) +
e(i
TI i=0
TD
[e(k 1) e(k 2)
T
1)
e(k
1)
+
Restando las expresiones anteriores y despejando u(k) obtenemos:
u(k) = u(k 1) + q0 e(k) + q1 e(k 1) + q2 e(k 2)
(2.26)
donde:
T
T
T
T
q0 = K (1 + D );
q1 = K (1 + 2 D
);
q2 = K D
T
T TI
T
Si la integra
ion emplea el metodo trapezoidal (aproxima
ion de segmentos de area mediante trapezoides), enton
es:
(
)
k
X
e(i 1) + e(i)
TD
1
u(k) = K e(k) +
T
+ T [e(k) e(k 1)
TI i=0
2
u(k
1) =
T
K e(k 1) +
2TI
" k
X
i=0
e(i
1)
e(k
1) +
k
X
i=0
e(i) e(k)
45
TD
[e(k
T
+
1) e(k 2)
Restando las expresiones anteriores y despejando u(k) obtenemos una expresion similar a (2.26), donde:
T
T
T
T
T
);
q1 = K (1 + 2 D
);
q2 = K D
q0 = K (1 + D +
T 2T
T 2T
T
I
2.3.2 La Transformada Z
1
X
k=0
1
X
ak
kak
k=0
N2
X
k=N1
1
X
ak
= 11a;
= (1
=
aN1
N1
a)2
jaj < 1
aN2 1
a
jaj < 1
jaj < 1
= 1a a ; jaj < 1
(2.29)
k=N1
A manera de ejemplo, la transformada Z del impulso unitario (kT ), sabiendo que (0T ) = 1, resulta:
1
X
Z [(kT ) = (kT )z k = z 0 = 1
ak
k=0
46
la
ual es valida para jz 1j < 1 (o jzj > 1), pues la serie debe ser
onvergente. La tabla 2.1 ilustra la transformada Z de algunas se
uen
ias notables,
mientras que la tabla 2.2 presenta la rela
ion existente entre la transformada
Z y la transformada de Lapla
e.
A
ontinua
ion se formulan algunas propiedades de la transformada Z :
(1) Linealidad:
Z [ag1 (kT ) + bg2 (kT ) = aZ [g1 (kT ) + bZ [g2 (kT )
(2) Desplazamiento a la dere
ha:
Z [g(kT dT ) = z d g(z ); d 0
(3) Desplazamiento a la izquierda:
Pd 1
Z [g(kT + dT ) = z d [g(z )
=0 g (T )z ; d 0
(4) Amortiguamiento:
Z [g(kT )e akT = g(zeaT )
(5) Multipli
a
ion por una variable:
Z [kg(kT ) = z dgdz(z)
(6) Multipli
a
ion por una exponen
ial:
Z [ak g(kT ) = g( az )
(7) Teorema del valor ini
ial:
limk!0 x(kT ) = limz!1 x(z)
(8) Teorema del valor nal:
limk!1 g(kT ) = limz!1 z z 1 g(z) = limz!1(1 z 1 )g(z)
Por ejemplo, sabiendo que Z [
os!k es
ono
ido, la transformada Z de
ak
os!k puede ser determinada empleando la propiedad de multipli
a
ion
por una exponen
ial,
omo sigue:
z (z
os!)
z (z a
os!)
k
Z [a
os!k = 2
=
2
z 2z
os! + 1 z=z=a z 2za
os! + a2
47
48
g(t)
g(s)
g(kT )
g(z )
(1)
(2)
(3)
(4)
(5)
(6)
(7)
(8)
(9)
(10)
(11)
(12)
(t)
(k)
(t)
at
te
at
t2 e
at
at
s2
(k)
s+a
1
(s+a)2
2
(s+a)3
a
s(s+a)
at
bt
sen!t
os!t
e
at sen!t
at os!t
b a
(s+a)(s+b)
!
s2 +!2
s
s2 +!2
!
(s+a)2 +!2
s+a
(s+a)2 +!2
(e aT )k
kT (e aT )k
(kT )2 (e aT )k
1 (e aT )k
(e aT )k (e bT )k
sen!kT
os!kT
(e aT )k sen!kT
(e aT )k
os!kT
z
z 1
Tz
(z 1)2
z
z e aT
T ze aT
(z e aT )2
T 2 ze aT (z +e aT )
(z e aT )3
z (1 e aT )
(z 1)(z e aT )
z (e aT e bT )
(z e aT )(z e bT )
zsen!T
z 2 2z
os!T +1
z (z
os!T )
z 2 2z
os!T +1
ze aT sen!T
z 2 2ze aT
os!T +e 2aT
z (z e aT
os!T )
z 2 2ze aT
os!T +e 2aT
49
i=1
Q
X
z eT s s=ai
dmj 1
g(s)z
m
j
1)! dsmj 1 (s bj ) z eT s s=bj
(2.30)
(mj
donde P es el numero de polos ai no repetidos de G(s) y Q es el numero de
polos bj que se repiten
on multipli
idad mj .
j =1
Ejemplo 2.5
g(s) = 2
s (s + 1)
Solu ion:
50
P
X
[(z
i=1
Q
X
ai )g(z )z k 1 z=ai
dmj 1
m
k
1
j
+
(mj 1)! dzmj 1 [(z bj ) g(z)z z=bj (2.31)
j =1
donde P es el numero de polos ai no repetidos de G(z) y Q es el numero
de polos bj que se repiten
on multipli
idad mj . Por ejemplo, determinar
g(kT ) de:
z
g (z ) =
(z 2)(z 3)(z 4)(z 1)2 (z 5)3
Para este
aso: P = 3, a1=2, a2 =3, a3 =4, Q=2, b1 =1, b2=5, m1=2 y m2=3.
Por
onsiguiente:
g(kT ) = [(z a1 )g(z )z k 1 z=a1
+ [(z a2)g(z)zk 1 z=a2 + [(z a3)g(z)zk 1 z=a3
m1 1
+ (m 1 1)! dzd m1 1 [(z b1 )m1 g(z)zk 1
1
z =b1
m
1
2
+ (m2 1 1)! dzd m2 1 [(z b2 )m2 g(z)zk 1
Ejemplo 2.6
Determinar g(kT ) para:
z =b2
z
;
(
b) :
g(z ) =
(z 1)(z 2)
(z 1)2
Solu
ion: Para el primer
aso: P = 2, a1 = 1, a2 = 2, Q = 0. Por tanto:
k
k
z
z
g(k) =
+
= 1 + 2k
z 1 z=1 z 1 z=2
Para el segundo
aso: P = 0, Q = 1, b1 = 1, m1 = 1. Luego:
1
d
z
d k
2
k
1
g(k) =
= dz (z ) = k
1! dz (z 1) (z 1)2 z
(a) :
g(z ) =
z =1
z =1
51
= (1
z 1 )Z
aT
K
(esT )
s(s + a)
= 1 +b1az z
K
b1 = (1 eaT )
a
z
1 1
52
u*(s)
G 1 (s)
T
x(s)
x*(s)
G 2 (s)
y(s)
(a)
T
u(s)
u*(s)
u(s)
u*(s)
G 2 (s)
T
x(s)
1-e
s
D(z)
G 2 (s)
x*(s)
(c)
x(s)
T
x*(s)
G(s)
y(s)
y(s)
-Ts
G p (s)
(d)
u(s)
y(s)
(b)
G 1 (s)
T
u(s)
G 1 (s)
G(s)
u(s)
G(s)
y(s)
H(s)
(e)
y(s)
H(s)
(f)
y*(s)
53
Para la gura (e) se tiene: y(s) = G(s)x (s) y x(s) = u(s) H (s)y(s).
Reemplazando y(s) en x(s), muestreando y despejando x(s) se obtiene:
u (s)
x (s) =
1 + [GH (z)
Reemplazando x(s) en y(s) = G(s)x (s) resulta:
G(z )
y (z ) =
1 + [GH (z) U (z)
Para la gura (f) tenemos y(s) = G(s)u(s) G(s)H (s)y (s). Muestreando y despejando y (s) se obtiene:
[GH (z) u(z)
y(z ) =
1 + [GH (z)
2.3.5 El Espa
io de Estado Dis
reto
= (t
donde:
(t t0 ) = L 1 [(sI
t0 )x(t0) +
Z t
t0
Z t
t0
( )d
A Bu
(2.34)
X A (t t0 )
A) 1 = eA(t t0 ) =
!
=0
es la matriz de transi
ion. Para demostrar que efe
tivamente (2.34) es una
solu
ion de la e
ua
ion de estado (2.33), basta derivar la expresion (2.34)
on respe
to al tiempo, para as obtener x_ = Ax + Bu.
54
Ejemplo 2.9
Dado u = 3e
"
6s2 +s 2
(s+1)(
s+3)(s+4)
s2 +77s 14
(s+1)(s+3)(s+4)
Cx(s) + Du(s) =
"
6s2 +s 2 # 3
(s+1)(
s+3)(s+4)
2 s+1
s2 +77s 14
(s+1)(s+3)(s+4)
=6
767=2 + 918=3
= 297
+
s+1
s+3
s+4
4
s2 305s + 50
6
= (s +221)(
s + 3)(s + 4) s + 1
297 e t + 767 e 3t + 918 e 4t ; t 0
y(t) =
6
2
3
55
Dis
retizando la e
ua
ion (2.33) para un tiempo dis
reto k = t=T y asumiendo que entre muestras la se~nal de
ontrol u es
onstante, enton
es para
la se~nal de entrada u(t) = u(kT ), kT (k + 1)T y para un estado ini
ial
56
Salida
10
20
30
40
50
0
4
Tiempo
5
6
en segundos
10
Figura 2.9: Respuestas y(t) para el ejemplo 2.9. Curva solida: y(t); en
trazos: y(kT1 ), T1 = 0:04 s;
urva punto y raya: y(kT2 ), T2 = 0:1 s.
x(kT ) = u(kT ), kT
Z t
t0
(t )Bd
(2.36)
; H=
()d B
(2.37)
0
Notar que (2.36) es una e
ua
ion ve
torial de diferen
ias que puede ser
resuelta re
ursivamente,
omo sigue:
x(1)
x(2)
=
=
eAT
Gx(0) + Hu(0)
Gx(1) + Hu(1) = G2 x(0) + GHu(0) + Hu(1)
...
x(k) =
Gk x(0) +
k
X
=1
G 1 Hu(k )
57
(2.38)
donde Gk es la denominada matriz de transi
ion dis
reta. Una segunda alternativa de solu
ion de (2.36) se da en el dominio de z. Apli
ando la propiedad
de desplazamiento ha
ia la izquierda, podemos formular que Z [x(k) = x(z)
y Z [x(k + 1) = z[x(z) x(0). Por tanto, de (2.36) se obtiene:
z [x(z ) x(0) = Gx(z ) + Hu(z )
Despejando:
x(z ) = (zI G) 1 zx(0) + (zI G) 1 Hu(z )
(2.39)
y empleando la e
ua
ion de salida resulta:
y(z ) = C (zI G) 1 zx(0) + [C (zI G) 1 H + Du(z )
(2.40)
Comparando las e
ua
iones (2.38) y (2.39) veri
amos que:
Gk = Z 1 [(zI G) 1 z
(2.41)
La matriz de transferen
ia de pulso se determina ha
iendo x(0) = 0 en
(2.40):
y(z ) = Gp (z )u(z ) = [C (zI G) 1 H + Du(z )
(2.42)
mientras que la e
ua
ion
ara
tersti
a del sistema se obtiene de:
det(zI G) = 0
(2.43)
la
ual nos informa a
er
a de la estabilidad del sistema. Re
ordar que un
sistema
ontinuo es estable
uando todos sus eigenvalores poseen parte real
negativa. Por
onsiguiente, la zona de estabilidad para sistemas
ontinuos
es el semiplano izquierdo del plano s. Desde que:
z = esT = e(+j!)T = eT ej!T = jz j\z
y
omo jzj 1
uando 0 para
ualquier \z, enton
es la zona de estabilidad en el plano z resulta un
r
ulo de radio unidad:
Un sistema dis
reto es estable si las ra
es de su e
ua
ion
ara
tersti
a,
los eigenvalores, se en
uentran dentro del
r
ulo unitario (en el dominio de
z ). En otro
aso, el sistema no es estable.
58
La forma general de la fun
ion de transferen
ia de pulso para un pro
eso es:
y(z ) b0 + b1 z 1 + + bn z n b0 z n + b1 z n 1 + + bn
Gp (z ) =
=
= zn + a zn 1 + + a
u(z ) 1 + a1 z 1 + + an z n
1
n
(2.44)
y su
orrespondiente e
ua
ion de diferen
ias toma la forma:
y(k +n)+a1 y(k +n
x(k + 1) =
y (k ) =
6
6
6
6
6
4
0
0
..
.
0
an
bn
1
0
..
.
0
an 1
0
1
..
.
0
an 2
an b0 bn 1
0
0
..
.
1
a1
an 1 b0
32
76
76
76
76
76
54
b1
x1 (k )
x2 (k )
..
.
xn 1 (k )
xn (k )
a1 b0
7 6
7 6
7 6
7+6
7 6
5 4
0
0
..
.
0
1
3
7
7
7
7 u(k )
7
5
x(k ) + b0 u(k )
(2.46)
(2.47)
x(k + 1) =
6
6
6
6
6
4
0
0
..
.
0
an
1
0
..
.
0
an 1
y (k ) =
donde: 0 = b0, 1 = b1
0
1
..
.
0
an 2
1 0
0
0
..
.
1
a1
32
76
76
76
76
76
54
7 6
7 6
7 6
7+6
7 6
5 4
0 x(k ) + 0 u(k )
a1 b0 , 2 = b2 a1 b1
n = bn a1 b1n
x1 (k )
x2 (k )
..
.
xn 1 (k )
xn (k )
a2 0 , et .
an 11 an 11
1
2
..
.
n 1
n
3
7
7
7
7 u(k )
7
5
(2.48)
(2.49)
Generalizando:
59
x(k + 1) =
a1
1
0
..
.
0
6
6
6
6
6
4
y (k ) =
a2
0
1
..
.
0
b1
an 1
0
0
..
.
1
a1 b0 b2
a2 b0
an
0
0
..
.
0
32
76
76
76
76
76
54
x1 (k )
x2 (k )
..
.
xn 1 (k )
xn (k )
7 6
7 6
7 6
7+6
7 6
5 4
1
0
..
.
0
0
3
7
7
7
7 u(k )
7
5
an b0 x(k ) + b0 u(k )
bn
(2.50)
(2.51)
x(k + 1) =
6
6
6
6
6
4
0
1
..
.
0
0
0
0
..
.
0
0
0
0
..
.
1
0
y (k ) =
0
0
..
.
0
1
an
an 1
..
.
a2
a1
32
76
76
76
76
76
54
7 6
7 6
7 6
7+6
7 6
5 4
bn
an b0
bn 1 an 1 b0
..
.
b2 a2 b0
b1 a1 b0
0 0
x1 (k )
x2 (k )
..
.
xn 1 (k )
xn (k )
0 1 x(k ) + b0 u(k )
3
7
7
7
7 u(k )
7
5
(2.52)
(2.53)
x(k + 1) =
6
6
6
6
6
4
a1
a2
..
.
an 1
an
1
0
..
.
0
0
0
1
..
.
0
0
y (k ) =
1 0
0
0
..
.
0
0
0
0
..
.
1
0
32
76
76
76
76
76
54
x1 (k )
x2 (k )
..
.
xn 1 (k )
xn (k )
7 6
7 6
7 6
7+6
7 6
5 4
b1
b2
a1 b0
a2 b0
..
.
bn 1 an 1 b0
bn an b0
0 0 x(k ) + b0 u(k )
3
7
7
7
7 u(k )
7
5
(2.54)
(2.55)
x1 (k + 1)
x2 (k + 1)
..
.
xn 1 (k + 1)
xn (k + 1)
3
7
7
7
7
7
5
2
6
=6
6
4
y (k ) =
p1 0
0 p2
..
..
.
.
0 0
1 2
0
0
..
.
pn
32
76
76
76
54
x1 (k )
x2 (k )
..
.
xn (k )
7 6
7 6
7+6
5 4
x(k ) + b0 u(k )
1
1
..
.
1
3
7
7
7 u(k )
5
(2.56)
(2.57)
60
Ejemplo 2.10
61
62
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
63
Ejemplo 2.12
64
10
2s+1
Proceso parcial Tiempo
muerto
65
yd_
Mux
yd
yd
Graph
Mux
10
Tt^3/120s3+Tt^2/10.s 2Tt/2s+1
2s+1
Tt^3/120.s3+Tt^2/10.s 2+Tt/2.s+1
Proc. parcial Aproximacin del tiempo muerto
yda_
yda
yda
Figura 2.10: Compara
ion de las respuestas a un es
alon del pro
eso y de
su modelo aproximado mediante una rela
ion Pade de ter
er orden (ejemplo
2.12).
12
10
Respuestas al escalon
2
0
6
Tiempo en segundos
10
12
Figura 2.11: Compara
ion de las respuestas a un es
alon del pro
eso (
urva
solida) y de su modelo aproximado (
urva en trazos) mediante una rela
ion
Pade de ter
er orden (ejemplo 2.12).
66
= Cx(k)
y(k + 1) = CGx(k) + CHu(k)
y(k + 2) = CG2 x(k) + CGHu(k) + CHu(k + 1)
...
y(k + n) = CGn 1 x(k) + [0; CH; CGH; : : : ; CGn 2 H Un (2.63)
donde (asumiendo que los ve
tores de entrada son
ompletamente
ono
idos)
Un = [u(k + n
1)
: : : u(k + 1) u(k)T
67
Determine si los pro
esos sistema hidrauli
o y pendulo des
ritos en los ejemplos 2.1 y 2.2 son
ompletamente
ontrolables y observables.
Solu
ion: El siguiente programa resuelve las preguntas planteadas.
% ejem2_13.m CONTROLABILIDAD Y OBSERVABILIDAD
lear all
% SISTEMA HIDRAULICO
Area = 9; gamma = 0.4; rho = 1.23; g = 9.81;
Q0e = 3;
% FLUJO DE ENTRADA EN EQUILIBRIO
H1e = Q0e^2/(gamma*rho*g); % NIVEL DE EQUILIBRIO
H2e = H1e;
a11 = -gamma*sqrt(rho*g)/(2*Area*sqrt(H1e)); a21=-a11; a22=a11;
A = [a11 0
a21 a22; % n = 2
68
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
3.1
70
Pendulo
F
Carro
y
z
11
00
00
11
00
11
00
11
l v /2
me g
mvg
lv
le
P
F
(3.1)
(3.2)
71
N
X
(3.3)
donde mi es la masa de la i-esima part
ula, ~ri es la posi
ion del
entro de
masa de la i-esima part
ula y F~j es la j-esima fuerza apli
ada al sistema de
part
ulas. Apli
ando la e
ua
ion (3.3) a nuestro sistema (en la dire
ion z)
obtenemos:
d2
d2
d2
m
2 z + me 2 ze + mv 2 zv = F
(3.4)
dt
dt
dt
Luego, sustituyendo ze (e
ua
ion (3.1)) y zv (e
ua
ion (3.2)) en la e
ua
ion
(3.4) obtenemos:
d2
d2
d2
l
m
2 z + me 2 (z + le sen ) + mv 2 (z + v sen ) = F
dt
dt
dt
2
(3.5)
N
X
(3.7)
72
las part
ulas i de di
ho sistema, pero en dire
ion opuesta a la a
elera
ion.
Empleando la e
ua
ion (3.7) en la gura 3.2 obtenemos:
(Je +Jv ) = meg(sen)le +mv g(sen ) l2v mez(
os )le mv z(
os ) l2v (3.8)
y ordenando:
(mele + mv l2v )g(sen ) (mele + mv l2v )z (
os ) = (Je + Jv ) (3.9)
donde:
l2
Je = me le2 ;
Jv = mv v
(3.10)
3
3.1.2 Modelo del Subsistema Motor-Polea
Va
Vb
Jo
La
Jm
Bm
rp
F
Bo
(3.11)
73
donde:
Jeq = Jm + n2 (Jo + Jp )
Beq = Bm + n2 Bo
(3.14)
(3.15)
El torque produ
ido en el eje del servomotor viene dado por la e
ua
ion:
Tm = Km ia
(3.16)
Sustituyendo la e
ua
ion (3.16) en (3.13) y despejando ia se obtiene:
J
B
nr
ia = eq m + eq _m + p F
(3.17)
Km
Km
Km
Km KA
u
Ra n rp
Jeq
n rp m
Beq Km Kb _
+
n rp Ra n rp m
(3.18)
Para transformar el desplazamiento angular del servomotor en el desplazamiento horizontal del
arro en fun
ion del radio de la polea y del fa
tor de
redu
ion del servomotor, empleamos:
z
m =
(3.19)
nr
p
Km KA
u
Ra n rp
Jeq
z
n2 rp2
Beq
Km Kb
+
z_
2
2
n rp Ra n2 rp2
(3.20)
74
donde:
M1 = m + me + mv ;
M2 = mele + mv
Km
;
Ra nrp
(3.24)
J
J2 = 2eq2
n rp
(3.25)
B
KK
Bx = 2eq2 + 2b 2 m
n rp n rp Ra
(3.26)
J1 = Je + Jv ;
Kx =
lv
(3.27)
(3.28)
(3.29)
(3.30)
x_ 1
x_ 2
x_ 3
x_ 4
3
7
7
5
6
6
6
6
4
x2
M2 (sin x1 )(
os x1 )x22 Bx (
os x1 )x4 (M1 +J2 )g(sin x1 )+Kx (
os x1 )KA u
(M2 (
os2 x1 ) (M1 +J2 )J1 )=M2
x4
M22 g(sin x1 )(
os x1 ) J1 M2 (sin x1 )x22 +J1 Bx x4 J1 Kx KA u
M22 (
os2 x1 ) (M1 +J2 )J1
3
7
7
7
7
5
(3.31)
y puesto que en nuestro sistema tenemos
omo salidas disponibles el desplazamiento angular de la varilla y el desplazamiento del
arro, la e
ua
ion de
salida toma la forma siguiente:
donde:
y = Cx
(3.32)
1
0
0
0
C= 0 0 1 0
(3.33)
75
Para poder analizar la e
ua
ion matri
ial (3.31) empleando te
ni
as de
ontrol lineal, es ne
esario obtener un modelo lineal del pro
eso. Suponiendo
que las variables de estado se desvan levemente
on respe
to a una
ondi
ion de opera
ion (un estado de equilibrio, por ejemplo), la aproxima
ion
lineal se puede obtener mediante la expansion en series de Taylor, despre
iando los terminos de orden superior. Consideremos que nuestro pro
eso
sea representado por la siguiente expresion:
x_ = f(x; u)
(3.34)
= x1 x2 x3 x4 T
= f1 f2 f3 f4 T = x_ 1 x_ 2 x_ 3 x_ 4 T
en donde u es la se~nal 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
1 f (x; u) (x x)2 + 2 2 f (x; u) (x x)(u u) + 2 f (x; u) (u u)2 +
2! x2
xu
u2
(3.35)
Si la varia
ion de las variable residuales (x x ) y (u u) es peque~na, enton
es
se pueden despre
iar los terminos 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; 0T = 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_
f
x
u
Dado que f (x; u) es una fun
ion de variable ve
torial, su derivada par
ial
on respe
to a x y u viene a representar la opera
ion ja
obiana (ver ejemplos
2.1 y 2.2). Enton
es, la e
ua
ion (3.35) se
onvierte en:
2
x_ = f (0; 0) +
6
6
6
6
4
f1 (0;0)
x1
f2 (0;0)
x1
f3 (0;0)
x1
f4 (0;0)
x1
f1 (0;0)
x2
f2 (0;0)
x2
f3 (0;0)
x2
f4 (0;0)
x2
f1 (0;0)
x3
f2 (0;0)
x3
f3 (0;0)
x3
f4 (0;0)
x3
f1 (0;0)
x4
f2 (0;0)
x4
f3 (0;0)
x4
f4 (0;0)
x4
7
7
7x
7
5
2 f (0;0)
1
u
6 f2 (0;0)
6
6 f3u
(0;0)
4
u
f4 (0;0)
u
7
7
7u
5
(3.37)
76
J1 Kx KA
M22
La obten
ion del modelo del pro
eso en el espa
io de estado dis
reto ya ha
sido explorada en la subse
ion 2.3.5. En resumen, las e
ua
iones de estado
en tiempo
ontinuo del pro
eso estan dadas por:
x_ (t) = Ax(t) + Bu(t)
(3.41)
y(t) = Cx(t) + Du(t)
(3.42)
La solu
ion de tales e
ua
iones es:
Z t
x(t) = (t t0 )x(t0 ) + (t )Bu( )d
(3.43)
donde t0 es el tiempo ini
ial, y:
(t
t0
1 Ak (t t )k
X
0
t0 ) = eA(t t0 ) =
k
!
k=0
(3.44)
Z T
77
()(d) B
(3.47)
La e
ua
ion de salida en tiempo dis
reto viene a ser:
y(kT ) = Cx(kT ) + Du(kT )
(3.48)
en donde C y D son matri
es
onstantes que no dependen del perodo de
muestreo T ; por
onsiguiente, son las mismas que para el
aso
ontinuo.
3.2
El modelado del pro
eso grua-puente es similar al
aso del pendulo invertido. La uni
a variante es que en este
aso el pendulo debe apuntar ha
ia
abajo, tal
omo se muestra en la gura 3.4. Al igual que en el
aso del
pendulo invertido, para mayor fa
ilidad, se ha subdividido el pro
eso en dos
subsistemas:
arro-varilla y motor-polea.
+ Fuerza de
u
control
Servomotor
D.C.
Carro
puente
Grua
78
y
z
z
P
0
F
lv
11
00
00
11
00 m v g
11
le
lv
me g
lv
(3.50)
2 sen
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 + me 2 ze + mv 2 zv = F
dt
dt
dt
Luego, sustituyendo ze y zv en fun
ion de z:
d2
d2
d2
l
m
2 z + me 2 (z le sen ) + mv 2 (z v sen ) = F
dt
dt
dt
2
(3.51)
(3.52)
79
y reordenando, obtenemos:
(mele + mv l2v )z(
os ) (mele + mv l2v )g(sen ) = (Je + Jv )
donde:
l2
Je = me le2 ;
Jv = mv v
3
(3.55)
Km
;
Ra nrp
B
Bx = 2eq2
n rp
+ nK2rbK2Rma
p
Las e
ua
iones arriba obtenidas se representan en el espa
io de estados mediante la siguiente asigna
ion de variables:
x1 =
(3.59)
_
x2 =
(3.60)
x3 = z
(3.61)
x4 = z_
(3.62)
80
x_ 1
x_ 2
x_ 3
x_ 4
3
7
7
5
6
6
6
6
4
x2
M2 (sin x1 )(
os x1 )x22 Bx (
os x1 )x4 (M1 +J2 )g(sin x1 )+Kx (
os x1 )KA u
( M2 (
os2 x1 )+(M1 +J2 )J1 )=M2
x4
M22 g(sin x1 )(
os x1 ) J1 M2 (sin x1 )x22 J1 Bx x4 +J1 Kx KA u
M22 (
os2 x1 )+(M1 +J2 )J1
3
7
7
7
7
5
(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 expresion:
y = Cx
(3.64)
donde:
C = 10 00 01 00
(3.65)
3.2.4 Obten
ion del Modelo Lineal
J1 Kx KA
M22
Para obtener el modelo en tiempo dis
reto podemos usar las expresiones de
las e
ua
iones (3.46) y (3.47) ya dis
utidas anteriormente.
81
La tabla 3.1 muestra las variables y parametros para los pro
esos pendulo
invertido y grua-puente. Los valores de los parametros se obtuvieron de las
hojas de espe
i
a
iones y por medi
ion.
3.2.7 Identi
a
ion de la Zona Muerta del Servomotor
Al analizar la
urva velo
idad vs. voltaje de entrada del servomotor (guras 3.6 y 3.7) se puede observar una zona muerta originada por la fri
ion
estati
a . Tal fri
ion iguala al torque ne
esario para
omenzar a mover el
servomotor; es de
ir, debido a la presen
ia de la fri
ion estati
a, el servomotor permane
e en reposo siempre que no re
iba un nivel de voltaje que
supere un determinado umbral.
entrada vs salida
800
600
400
salida
200
200
400
600
800
2
1.5
0.5
0
entrada
0.5
1.5
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
Tabla 3.1: Variables y parametros valorados para los pro
esos pendulo invertido y grua-puente.
Smbolo Des
rip
ion
Valor/Formula
posi
ion angular de la varilla
F
fuerza apli
ada al
arro
m
posi
ion angular del motor
z
posi
ion del
arro
lv
longitud de la varilla
0.767 m
le
distan
ia entre P y la esfera
ze
omponente horizontal
zv
omponente horizontal
g
gravedad
9.8 N
me
masa de la esfera
no usado
mv
masa de la varilla
0.063095 kg
m
masa del
arro
0.92 kg
mp
masa de la polea
0.2 kg
KA
ganan
ia del ampli
ador
14.9
Ra
resisten
ia del motor
7.38 ohm
La
indu
tan
ia del motor
se despre
io
Kb
onstante
ontraele
tromotriz
31.035210 3 V/rad
Km
onstante de torque del motor
31.07110 3 N-m/A
Jm
iner
ia del eje primario del motor
1.959610 6 kg-m2
Bm
fri
ion vis
osa del eje primario 1.834210 3 N-m/rad/s
Jo
iner
ia del eje se
undario
se despre
io
Bo
fri
ion vis
osa del eje se
undario
se despre
io
n
fa
tor de redu
ion de velo
idad
1/19.741
rp
radio de la polea
0.0648 m
Jp
iner
ia de la polea
mp rp2 =2
Jeq
momento de iner
ia equivalente
Jm + n2 (Jo + Jp )
Beq
fri
ion vis
osa equivalente
Bm + n2 Bo
Je
momento de iner
ia de la esfera
mele2
Jv
momento de iner
ia de la varilla
mv lv2 =3
83
entrada vs salida
150
100
salida
50
50
100
150
0.4
0.3
0.2
0.1
0
entrada
0.1
0.2
0.3
0.4
600
400
salida
200
200
400
600
800
2
1.5
0.5
0
entrada u
0.5
1.5
84
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
3.3
T
+
eb
-
+
u Kact
R
Jm
0000
1111
1111
TM 0000
0000 m
1111
bm
q
m
N 2 = n N1
N2
N1
11
00
00
11
00
11
00
11
00
11
00
11
00
11
TL
00
11
00
11
00
11
00
11
00
11
00
11
00
11
00
11
00
11
00
11
00
11
00
11
LO
m
q
JL
1111
0000
0000
1111
bL
0000
1111
85
86
Jeff
(3.76)
(3.77)
87
F (x)
4
2
G(x)
x2
N
B
( M )senx1 M x2
nE x
L 2
0
0
Ka
t
L
3
5
M TN
Rx
L 3
H (x) = x1
5
+ nK
M x3
(3.86)
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 simula
ion del pro
eso (ar
hivo servsim.m) y la gura 3.11 muestra la respuesta
88
del pro
eso a un es
alon para los
asos
on L 6= 0 y L = 0. Di
has respuestas resultan muy similares debido a que la indu
tan
ia L es muy peque~na
y para nes pra
ti
os puede despre
iarse,
on lo
ual el orden del pro
eso
no lineal queda redu
ido a uno de segundo. Para simular el pro
eso usando
servsim.m se debe eje
utar primero el ar
hivo de datos servpar.m.
cc
Kact
gan5
n*K
R
sum1subsistema
elctrico
n*E
gan1 friccin de
Coulomb
w 1 q
1
+
Ms+B
s
gan2
N
gan3
grfico
MATLAB
Function
seno
1.2
0.8
0.6
u
0.4
0.2
0
0
4
Tiempo
5
6
en segundos
10
89
=
=
Ka
t
u
R
nE
w
R
"
N
M senx1
nKKa
t u
RM
B
M
(3.87)
#
x2
2 KE
+ nMR
x2
M TN
H (x) = x1
(3.88)
R
T ;
nKKa
t N
(3.90)
N
senx1
M
B
M
2 KE
nKKa
t
+ nMR
x2 +
v
RM
(3.91)
(3.92)
90
La e
ua
ion 3.92 indi
a que en la implementa
ion del software del sistema
de
ontrol debemos
ompensar la se~nal de
ontrol u en 0.12 volt. Experimentalmente, un valor de 0.2 ha generado buenos resultados.
Por otra parte, debido a que valores grandes de la se~nal de
ontrol u
pueden saturar al servomotor, es que se requiere un limitador de la tension
de
ontrol u. Este limitador puede tambien implementarse en el software
de
ontrol. Se ha determinado experimentalmente que para no entrar en la
zona de satura
ion del servomotor, la se~nal de
ontrol
ompensada no debe
sobrepasar el umbral de 1.4 voltios.
3.3.5 Linealiza
ion y Dis
retiza
ion del Pro
eso
MR
A tal resultado tambien se puede llegar si apli
aramos la te
ni
a del ja
obiano. La fun
ion de transferen
ia Gp(s) del pro
eso puede determinarse
mediante la rela
ion:
y(s)
= C
[sI A
1B
(3.94)
Gp (s) =
u(s)
91
Problemas Resueltos
92
Cal ular los eigenvalores del pro eso, tanto en el dominio ontinuo
La gura 3.12 muestra el diagrama de
uerpo libre del sistema de suspension de la rueda de un bus (normalmente un bus posee
uatro de tales
sistemas), donde m1 = 2500 kg es la masa que soporta el sistema de suspension, m2 = 320 kg es la masa del sistema de suspension, k1 = 80000
N/m es la
onstante del resorte de suspension, k2 = 500000 N/m es la
onstante del resorte del aro mas la rueda, b1 = 350 N-s/m es la
onstante de
amortiguamiento de la suspension y b2 = 15020 N-s/m es la
onstante de
amortiguamiento del aro mas la rueda. Este modelo se en
uentra en el sitio
www.engin.umi
h.edu/group/
tm/index.html.
Un buen sistema de suspension debe tratar de eliminar en el tiempo
mas
orto posible las os
ila
iones produ
idas por protuberan
ias, desniveles
y hue
os en la pista. Teniendo en
uenta que la distan
ia x2 w (la deforma
ion de la rueda) es despre
iable, enton
es podemos usar la distan
ia
x1 x2
omo la salida de nuestro pro
eso, dado que la distan
ia x1 w es
dif
il de medir. El disturbio w puede modelarse
omo un es
alon. Di
ho
disturbio puede ser provo
ado, por ejemplo,
uando el bus esta saliendo de
un desnivel pronun
iado de
orta longitud. Las e
ua
iones del movimiento
que gobiernan el sistema de suspension son:
m1 x1 = b1 (x_ 1 x_ 2 ) k1 (x1 x2 ) + u
m2 x2 = b1 (x_ 1 x_ 2 ) + k1 (x1 x2 ) + b2 (w_ x_ 2 ) + k2 (w x2 )
93
Masa de 1/4
del bus
x1
k1
x2
m1
b1
Masa de la
suspension
k2
m2
b2
y=
0 0 1 0 64
donde:
x1
x_1
y1
y2
3
7
7
5
+ 0 0
u
w
y1 = x1 x2
k1 k1
k2
1
1
y2 =
+
y
(w x2 ) + m1 + m2 u dt
m1 m2 1 m 2
b1 b2
b1 b1
b1
b2
k1
a21 =
;
a23 =
+
+
m1 m2
m1 m1 m2 m2
m1
b1
b1
b2
k1 k1 k2
a33 =
+ +
; a43 = m1 + m2 + m2
m1 m2 m2
Z
94
95
x 10
2.5
y(k) para u=1, w=0
2.5
2
1.5
1
0.5
0
0
50
100
Tiempo en segundos
1.5
1
0.5
50
100
Tiempo en segundos
150
50
100
Tiempo en segundos
150
1
y(k) para u=0, w=1
0
0
150
1
0.5
0
0.5
1
0
x 10
50
100
Tiempo en segundos
150
0.5
0
0.5
1
0
96
Problema 3.2
La dinami
a de un avion puede ser des
rita por varios
onjuntos a
oplados de
e
ua
iones diferen
iales no lineales. Sin embargo, bajo
iertas suposi
iones,
tales e
ua
iones pueden ser desa
opladas y linealizadas para obtener dos
onjuntos: las e
ua
iones longitudinales y las e
ua
iones laterales. El
ontrol
de la in
lina
ion del avion mostrado en la gura 3.14 es un problema
longitudinal.
Empuje
x
Impulso
Arrastre
e
z
z
Peso
97
0 0 1
2
4
q
3
5
98
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
y(t) continua
8
6
4
2
0
0
10
15
20
Tiempo en segundos
25
30
y(k) discreta
4
3
2
1
0
0
10
15
Tiempo en segundos
20
25
Figura 3.15: Respuestas al es
alon para el angulo de in
lina
ion del avion
omer
ial en vuelo.
Problema 3.3
99
BARRA
ESFERA
LEVA
ENGRANAJE
d
J
+ M rMgsen Mr_ 2
R2
J
+ M rMg Mr_ 2
R2
100
Sin embargo, usaremos
uatro estados, pues en lugar de
ontrolar la posi
ion
a traves de , lo haremos a traves de , lo que en esen
ia signi
a que
queremos
ontrolar el torque de la barra. Las e
ua
iones de estado y de
salida para esta situa
ion son:
2
3 2 0 1
0
0 32 r 3 2 0 3
r_
0 0 L Mgd+M 0 77 66 r_ 77 66 0 77
6 r 7 6
6
7=6
2
+
u
74
4 _ 5 6
4 0 0
5 5 4 0 5
0
1
1
0 0
0
0 _
J
R
y=
1 0 0 0 64
r
r_
_
3
7
7
5
0.1000
1.0000
0.0010
0.0209
0.0000
0.0010
0
0
101
1.0000
0
0.1000
1.0000
% 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
y(t) continua
0.8
0.6
0.4
0.2
0
0
0.5
1.5
2
Tiempo en segundos
2.5
0.5
1.5
2
Tiempo en segundos
2.5
y(k) discreta
0.8
0.6
0.4
0.2
0
0
102
Problema 3.4
1111111111111111111111
0000000000000000000000
Calor perdido
0000000000000000000000
1111111111111111111111
00
11
00
11
Calentador
electrico
00 10
11
00 Q o
11
00
11
00
11
0
1
00
11
00
11
000
111
Calor entregado
00 111
11
00
11
000
11111111
00000000
00
11
00
11
000
111
Temperatura
Qc
00
11
00
11
000
111
00 111
11
00 exterior
11
0001010
Temperatura
00
11
00
11
o
interior
i
00
11
00
11
0
1
00
11
00
11
00
11
00
11
0000000000000000000000
1111111111111111111111
0000000000000000000000
1111111111111111111111
103
= fi
di
dt
i
i +
f
f
+
v
o o o V
V
1 i + 1 o + 1 v
= 3000
3000 1500
104
Problema 3.5
La gura 3.20 muestra un monorriel de dos
arros. El modelo de este pro
eso
se en
uentra en la referen
ia [15. Sean M1 la masa del
arro de maquinas y
B1 sus fri
iones debido al aire y al rodamiento. La fuerza lineal equivalente
para mover al pro
eso se designa
omo u(t). Los dos
arros poseen masas
M2 y M3 respe
tivamente, y estan sujetos a fri
iones B2 y B3 . Los
arros
se a
oplan uno al otro
on dispositivos no rgidos (resortes) que poseen
105
y(t) continua
2
1.5
1
0.5
0
0
2000
4000
6000
8000
10000
Tiempo en segundos
12000
14000
16000
y(k) discreta
2
1.5
1
0.5
0
0
2000
4000
6000
8000
Tiempo en segundos
10000
12000
106
1
0
x1
0
1
x2
0
1
x3
0
1
0
1
B 23
B 12
0
1
0
1
2do. CARRO
1er. CARRO
MAQUINA
0
1
0
1
M2
M3
M1
K 23 1111111
K 12 1111111
0
1
0000000
1111111
0000000
0000000
0
1
0000000
1111111
0000000
1111111
0000000
1111111
1
0
11111111111111111111111111111111111
000000000000000000000000000000000000
1
B3
B2
B1
Figura 3.20: Pro
eso monorriel de dos
arros mas un
arro de maquinas.
Si ubi
amos ta
ometros en una rueda de
ada
arro, enton
es la e
ua
ion
de salida toma la forma:
2
3 2
y1
0 0 0 0 03
4 y2 5 = 4 0 0 0 0 0 5 x
y3
0 0 0 0 0
yi = i vi ; i = 1; 2; 3
donde i es la
onstante ta
ometri
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
0 0 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;
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 resolver es posi
ionar el as
ensor ade
uadamente. El voltaje de armadura v(t)
lo suministra un ampli
ador de poten
ia
on satura
ion (gura 3.22(b)),
108
0.08
Salidas
0.1
0.04
0.06
0.02
0
0
0.5
1.5
2
Tiempo en segundos
2.5
0.5
1.5
2
Tiempo en segundos
2.5
discretas
Salidas
0.1
0.08
0.04
0.06
0.02
0
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
uentra en estado de satura
ion, generando 200 volt, dependiendo de si el
as
ensor esta 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 tambien 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_ 1
0:2 0 0 0 3 2 x1 3 2 10 3 3
6 x_ 2 7 6 1
0 0 0 77 66 x2 77 + 66 0 77
6
7 6
4 x_ 3 5 = 4 2
0 2 0 5 4 x3 5 4 0 5
x_ 4
5 0 0 5 x4
0
109
0 1 0 0 x
0
1.0000
0
0
% H = 1.0e-003 *
%
0.1961
%
0.0197
%
0.0347
%
0.0725
% RESPUESTAS AL ESCALON
0
0
0.6703
0
0
0
0
0.3679
110
Voltaje de
entrada
Voltaje de
armadura
Velocidad del
ascensor
Posicion del
ascensor
0.001
u
s + 0.2
Amplificador
de potencia
con saturacion
x1
10
15
Motor actuador
mas tambor
2
x3
5
x4
Sensor de velocidad
s + 5
Sensor de posicion
v
200
s + 2
0.005
3000
(a)
x1
1
u
-200
(b)
(c)
x4
D/A con
memoria
Computador
digital
Posicion del
ascensor
Actuador
mas
sensores
x
x4
Amplificador
Voltaje de
armadura
x3
sensor de
velocidad
A/D
sensor de
(d)
posicion
x3
111
[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
Salidas continuas
0.15
0.1
0.05
0
0
10
15
20
Tiempo en segundos
15
20
25
30
Tiempo en segundos
25
30
Salidas discretas
0.2
0.15
0.1
0.05
0
0
10
35
40
45
112
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
Sensor
Horno
Referencia
d
v
Deposito
v
(b)
u
1
s+1
Horno
hs
e - d/v
hr
Tiempo muerto
10
s + 0.5
Sensor
vr
0.0872
0.0046
0.0002
0.0000
0.9865
0.0995
0.0050
0.0002
113
-0.0075
0.9997
0.1000
0.0050
-0.0022
-0.0001
1.0000
0.1000
-0.0003
0.0000
0.0000
1.0000
% 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: momento de iner
ia del rotor J = 0.01 kg-m2 =s2 ,
onstante ele
tromotriz
Ke = Kt = 0.01 N-m/A, resisten
ia R = 12 ohm, resisten
ia de armadura
RA R,
ondensador C = 0.5 F, indu
tan
ia de armadura L = 0.5 H,
onstante torsional K! = 1.8 N-m/rad.
Las e
ua
iones que gobiernan la dinami
a del pro
eso ele
trome
ani
o
mostrado en la gura 3.26 se des
riben a
ontinua
ion. Subpro
eso ele
tri
o:
1
v
dI
IR = (v v ); C C = I IM ; L M = v e
R
dt
dt
114
Humedad
continua
20
15
10
5
0
5
0
8
10
12
Tiempo en segundos
14
16
18
20
Humedad discreta
20
15
10
5
0
5
0
10
15
Tiempo en segundos
20
25
= KtIM ;
Resorte torsional mas la iner
ia J :
T
dT
dt
= K! (!1
e = Ke !1
d!2
=T
dt
x1 = vC , x2 = IM
!2 );
RC
!
t e
0 5; C = 0 0 1
0
El modelo del pro
eso en estudio se en
uentra en la referen
ia [10.
B=4
+
v
-
IR
115
IM
L
C
+
e
-
T
1
116
% 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
3.5
Problemas Propuestos
117
Voltaje en C (continuo)
5
4
3
2
1
0
0
10
15
20
25
30
Tiempo en segundos
35
40
45
50
Voltaje en C (discreto)
5
4
3
2
1
0
0
10
20
30
40
Tiempo en segundos
50
60
Las e
ua
iones del modelo linealizado para
ontrolar la posi
ion angular del
a~non 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
K
p_ =
m p
q + m ! + dp
J
J
q_ = Kv Lv q Kv Kp Jp + Kv 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 desplazamiento de la servovalvula, Km = [8.46106 , 1.96106 (el primer valor
118
Angulo de
elevacion
Azimut: angulo
de
posicionamiento horizontal
Una
olumna de destila
ion es un pro
eso
omplejo que requiere una gran
antidad de variables (mas de 100) para des
ribir su
omportamiento en
forma muy aproximada. Sin embargo, ha
iendo las simpli
a
iones del
aso
(tales
omo redu
ion del numero de variables y linealiza
ion de los puntos
de opera
ion) se puede llegar a un modelo redu
ido que pueda ser empleado
para el
ontrol del pro
eso. Ese es el
aso de una
olumna de extra
ion
119
Agua
Mezcla de
agua e isopropanol
1
0
0 1
1
T1
S: flujo lateral
de vapor
z
Propanol
Glycol
T
1
0
0 2
1
u 1 : vapor de
calentamiento
Producto (glycol)
z2
Concentraciones
Temperaturas
Figura 3.29: Columna de destila
ion
on los perles de
on
entra
ion y de
temperatura.
Las e
ua
iones de estado y de salida que gobiernan el pro
eso en
uestion
son las siguientes:
x = Ax + Bu + F d;
y = Cx
donde:
2
Q1 3
6 V1 7
u
x
T
1
F
A
1
1
7
x=6
u = S ;
d = F
; y = T2
4 z1 5 ;
A
z2
2
3
2
3
a11 0 0 0
b11 0
6 a21 a22 0 0 7
6 0
0 77
7;
6
A=6
B
=
4 0
5
4
a32 0 0
0 b32 5
0 a42 ) 0 0
0 b42 )
2
3
0 0
7
6 0
0
0
0
0
13
7
C= 0 0 0
F =6
4 f31 f32 5 ;
24
0 f42
120
on a11 = 30:3, a21 = 0:12 10 3 , a22 = 6:02, a32 = 3:77, a42 = 2:8,
b11 = 6:15 105 , b32 = 3:04, b42 = 0:052, f31 = 62:2, f32 = 5:76, f42 = 5:12,
13 = 7:3 y
24 = 25. Las variables poseen el siguiente signi
ado (ver
gura 3.29): Q1 es el
ujo de
alor produ
ido por el
aldero de vapor, V1
es el
ujo de vapor produ
ido por el
aldero de vapor, u1es el vapor de
alefa
ion, S es el
ujo de vapor lateral, z1 es la posi
ion del
ambio
de interfase entre el agua y el isopropanol, z2 es la posi
ion del
ambio de
interfase entre el agua y el gly
ol, T1 y T2 son los
ambios de temperatura
en z1 y z2 , FA es el
ujo de la mez
la de agua mas isopropanol, y xF A1
es la
omposi
ion de la mez
la de agua mas isopropanol. Notar que todas
las variables son residuales; es de
ir, representan los
ambios
on respe
to al
estado de equilibrio. El modelo de este pro
eso de en
uentra en la referen
ia
[17.
Problema 3.11
La gura 3.30 muestra el pro
eso servomotor
on
arga no lineal des
rito en
la se
ion 3.2. Notar ahora que el eje de salida del me
anismo de redu
ion
esta sujeto a la
arga no lineal mediante una junta
exible que puede ser
modelada
omo un resorte rota
ional de
onstante K! =0.5 N/m/s. Considerar dos
asos: (a)
uando la indu
tan
ia de armadura es despre
iable, y
(b)
uando no lo es.
m
R
+
Va
eb
Jm
Bm
Mo
Ro
K
2
Lo
m
BL JL
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.
121
R
+
Va
eb
Jm
Bm
Lo
m
Ro
Union
no
flexible
BL JL
La gura 3.32 muestra el pro
eso pendulo doble no lineal. Las e
ua
iones
que des
riben la dinami
a del pro
eso pendulo simple fueron dedu
idas en la
se
ion 3.1. Para dedu
ir el modelo matemati
o del pro
eso pendulo doble
onviene emplear las e
ua
iones de Lagrange de la me
ani
a
lasi
a. El
a
oplamiento entre los dos pendulos no es
exible. Los dos pendulos poseen
la misma longitud y la masa esferi
a es de 0.02 kg.
Problema 3.14
La gura 3.33 muestra el pro
eso doble grua-puente no lineal. Las e
ua
iones
que des
riben la dinami
a del pro
eso grua-puente fueron dedu
idas en la
se
ion 3.2. Para dedu
ir el modelo matemati
o del pro
eso doble gruapuente
onviene emplear las e
ua
iones de Lagrange de la me
ani
a
lasi
a.
El a
oplamiento entre las dos se
iones de la varilla no es
exible. Las dos
varillas poseen la misma longitud y la masa esferi
a adi
ional es de 0.02 kg.
122
+ Fuerza de
u
control
Servomotor
D.C.
Carro
z
+ Fuerza de
u
control
Servomotor
D.C.
Carro
z
y
Doble
puente
grua
Cap
tulo 4
Control Optimo
Este
aptulo desarrolla un pro
edimiento para dise~nar sistemas de
ontrol optimo
esta
ionarios y no esta
ionarios, usando una ley de
ontrol optima
uadrati
a
que emplea las se~nales del pro
eso medidas dire
tamente o estimadas mediante
un observador optimo. Las
ongura
iones usadas para el dise~no son el regulador optimo propor
ional y el regulador optimo propor
ional integral. La ultima
ongura
ion a~nade un integrador al
ontrolador
on el proposito de redu
ir el
error en estado estable. El pro
edimiento de dise~no desarrollado, puede ser
apli
ado tanto a sistemas univariables
omo a sistemas multivariables.
Dos apli
a
iones validan el pro
edimiento de dise~no desarrollado:
ontrol
optimo de los pro
esos pendulo invertido y grua puente. La penultima se
ion,
problemas resueltos, esta dedi
ada al dise~no de sistemas de
ontrol optimo
esta
ionarios para diferentes pro
esos. La ultima se
ion propone problemas de
dise~no a resolver. Todos los ar
hivos
orrespondientes a los ejer
i
ios, problemas, dise~nos, simula
iones y software desarrollados se pueden des
argar del sitio
http://ee.uni.edu.pe/728681F.
4.1
Introdu ion
El
ontrol optimo trata de determinar el \mejor" sistema de
ontrol empleando una te
ni
a optima de dise~no. Esta te
ni
a asume la formula
ion de una
fun
ion matemati
a denominada la fun
ion de
osto, tambien
ono
ida
omo
fun
ion de rendimiento, ndi
e de rendimiento o ndi
e de fun
ionamiento,
entre otras denomina
iones. El pro
edimiento de dise~no del sistema de
ontrol optimo trata de en
ontrar un extremo (un mnimo o un maximo, dado el
aso) de una fun
ion de
osto
on el proposito de determinar los parametros
Control Optimo
124
N
X
k=0
(4.1)
donde k es el tiempo dis
reto, N es el tiempo dis
reto nal, x(k) es el ve
tor
de estado, r(k) es el ve
tor de referen
ia (entrada al sistema de
ontrol) y
u(k) es el ve
tor de
ontrol optimo. Esta ley de
ontrol (denominada tambien
fuerza o se~nal de
ontrol)
onstituye la entrada al pro
eso a
ontrolar.
Para apli
a
iones pra
ti
as, el ve
tor de
ontrol u debe estar siempre
a
otado. Por ejemplo,
jui (k)j Ui
(4.2)
donde
ada elemento Ui es una
onstante determinada (el subndi
e denota
la
omponente i del ve
tor u). Para el
aso de
ontrol a
otado
on mnimo
gasto de energa, se puede formular:
u2i (k) Mi
(4.3)
4.2 Control Optimo
Cuadrati
o No Esta
ionario
4.2
125
Control Optimo
Cuadrati
o No Esta
ionario
El problema del
ontrol optimo
uadrati
o dis
reto no esta
ionario
onsiste
en en
ontrar una ade
uada ley de
ontrol optima que sea
apaz de trasladar
la dinami
a del pro
eso desde un estado ini
ial x(0) ha
ia un estado nal
deseado x(N ). La fuerza de
ontrol optima u(k) se determina a partir de
la minimiza
ion de una fun
ion de
osto
uadrati
a dis
reta. Esta fuerza de
ontrol apli
ada al pro
eso a
ontrolar, provo
a que di
ho pro
eso responda
en forma optima (o lo mas
er
ano al optimo). El
ontrol optimo
uadrati
o
dis
reto se basa en la siguiente fun
ion de
osto:
1
1 NX1 xT (k)Qx(k) + uT (k)Ru(k)
J = xT (N )Sx(N ) +
(4.4)
2
2 k=0
donde x(k) es el ve
tor de estado de dimension n y u(k) es el ve
tor de
ontrol de dimension r. Mientras que la matriz hermitiana semidenida
positiva S (de dimension n n) pondera la importan
ia del estado nal
x(N ), la matriz hermitiana semidenida positiva Q (de dimension n n)
pondera la importan
ia del ve
tor de estado x(k), y la matriz hermitiana
denida positiva R (de dimension r r) pondera la importan
ia de la se~nal
de
ontrol u(k). La deni
ion de matri
es se trato en la subse
ion 1.2.4. La
ley del
ontrol optima a usar emplea la realimenta
ion del ve
tor de estado
x(k) en su formula
ion y posee la forma siguiente:
u(k) = K (k)x(k)
(4.5)
donde K (k) (de dimension rn) es la matriz de ganan
ia del
ontrolador, denominada tambien matriz de realimenta
ion de estados. Cuando la dinami
a
del sistema de
ontrol es nita, K (k) es una matriz variante en el tiempo;
pero
uando di
ha dinami
a al
anza su estado esta
ionario (es de
ir,
uando
N ! 1), enton
es K (k) se
onvierte en una matriz
onstante K . En esta
ultima situa
ion, estaremos frente al denominado
ontrol optimo en estado
esta
ionario, y es el que usaremos en nuestras apli
a
iones. Una
ondi
ion
ne
esaria para poder apli
ar el
ontrol por realimenta
ion de estados es que
el pro
eso sea
ompletamente
ontrolable. Por
onsiguiente, sera ne
esario
veri
ar di
ha
ondi
ion en el pro
eso antes de ini
iar el pro
edimiento de
dise~no.
La realimenta
ion de estados requiere ademas que todos los estados sean
disponibles y medibles. Si en el sistema a
ontrolar existieran estados que
126
Control Optimo
no pudieran ser medidos dire
tamente, sera ne
esario estimarlos. Esta estima
ion puede ser realizada empleando la te
ni
a de observa
ion de estados
que sera tratada en la se
ion 4.6. El requerimiento en esta parte es que el
pro
eso sea
ompletamente observable.
La solu
ion al problema de
ontrol optimo
uadrati
o puede obtenerse
empleando varios enfoques, tales
omo el metodo de minimiza
ion usando
multipli
adores de Lagrange o mediante el prin
ipio de optimalidad [3,[4.
Asumamos que el pro
eso puede ser modelado mediante la siguiente e
ua
ion
de estado dis
reta:
x(k + 1) = Gx(k) + Hu(k);
x(0) =
(4.6)
donde G es la matriz de estado de dimension n n, H es la matriz de
ontrol
de dimension n r y x(0) es una
ondi
ion ini
ial del ve
tor de estado.
El pro
eso debe ser de estado
ompletamente
ontrolable; es de
ir, que
en un tiempo nito, sus estados puedan ser transferidos desde un estado
ini
ial arbitrario a
ualquier otro estado deseado. La
ondi
ion ne
esaria y
su
iente para la
ompleta
ontrolabilidad del pro
eso es que la matriz de
ontrolabilidad M dada por la siguiente expresion (subse
ion 2.3.6):
M = H GH Gn 1 H
(4.7)
posea rango
ompleto; es de
ir, el rango de M debe ser igual al orden n del
pro
eso.
La solu
ion al problema del
ontrol optimo
uadrati
o no esta
ionario
esta dada por la siguiente matriz de ganan
ia del
ontrolador:
K (k) = [R + H T P (k + 1)H 1 H T P (k + 1)G
(4.8)
donde P (k+1) es una matriz hermitiana denida positiva de dimension nn.
Di
ha matriz es solu
ion de la siguiente e
ua
ion matri
ial de Ri
ati:
P (k) = Q + GT P (k +1)G GT P (k +1)H [R + H T P (k +1)H 1 H T P (k +1)G
(4.9)
La matriz P (K ) de la e
ua
ion (4.9) puede determinarse re
ursivamente
partiendo de la siguiente
ondi
ion terminal para k = N :
P (N ) = S
(4.10)
hasta llegar a la
ondi
ion ini
ial P (0) para k = 0. El pro
edimiento es
omo sigue: reemplazando P (N ) en la e
ua
ion (4.8), podemos obtener
4.3 Control Optimo
Cuadrati
o Esta
ionario
127
as determinadas, se pueden usar ahora para
al
ular la ley de
ontrol dada
por la e
ua
ion (4.5). Por otra parte, se puede demostrar que el valor mnimo
de la fun
ion de
osto se determina de:
1
Jmin = xT (0)P (0)x(0)
(4.11)
2
4.3
Control Optimo
Cuadrati
o Esta
ionario
Control Optimo
128
Una forma de obtener la matriz P de la e
ua
ion matri
ial (4.13), es empleando la e
ua
ion de Ri
ati en estado no esta
ionario dada en la e
ua
ion
(4.9), pero invirtiendo la dire
ion del tiempo:
P (k + 1) = Q + GT P (k)G GT P (k)H [R + H T P (k)H 1 H T P (k)G (4.17)
La e
ua
ion (4.17) permite determinar una matriz P de magnitud
onvergente usando
al
ulo re
ursivo
omo sigue. Asumiendo ini
ialmente para
k = 0 que P (0) = 0, podemos obtener P (1); luego usar P (1) para obtener P (2), y asi su
esivamente, hasta llegar a un tiempo dis
reto k para el
ual P (k) = P (k + 1) = P (k + 2) = . Con la matriz P as determinada,
podemos
al
ular ahora la ganan
ia K usando la e
ua
ion (4.14), para luego
obtener la ley de
ontrol dada por la e
ua
ion (4.15). El diagrama de bloques del
ontrol optimo de estado esta
ionario se representa en la gura 4.1,
en donde se asume que todos los estados se en
uentran disponibles. Para
opera
ion satisfa
toria del sistema de lazo
errado mostrada en di
ha gura,
todas las ra
es de su e
ua
ion
ara
tersti
a:
det[zI G + HK = 0
(4.18)
deben posi
ionarse dentro del
r
ulo unitario. Tales ra
es se denominan
tambien valores propios, ra
es
ara
tersti
as, eigenvalores o modos de fun
ionamiento.
x (k)
u (k)
H
I z -1
G
-K
El Regulador Optimo
Propor
ional
El regulador es un sistema de ontrol realimentado, en donde la salida ontrolada sigue a una se~nal de referen ia r(k) = (k) onstante, donde (k)
4.4 El Regulador Optimo
Propor
ional
129
es la fun
ion es
alon. Restringiremos nuestro tratamiento a sistemas univariables. Previamente debemos re
al
ar que la naturaleza propor
ional del
regulador en
uestion, obliga a que se aplique
on
uidado a sistemas que
no poseen un
omportamiento integral. Este es el punto en dis
usion.
La gura 4.2 muestra el esquema de un regulador para la variable de
estado x2 del ve
tor de estado x, empleando una ley de
ontrol de realimenta
ion de estados de la forma u = Kx.
x (k)
r(k)
k2
u(k)
- -
..
.
y(k) = x 2 (k)
k1
k3
..
.
kn
G + HK ) 1 Hk2 R(z );
(4.21)
1
Apli
ando la propiedad del valor nal (subse
ion 2.3.2) a y(z) obtenemos:
lim y(k) = lim z 1 y(z) = C (I G + HK ) 1Hk2 R
(4.22)
k!1
z !1
(z ) =
130
Control Optimo
donde observamos que la matriz hermitiana R pondera la se~nal de
ontrol u(k) mientras que la matriz hermitiana Q pondera el ve
tor de estado
x(k). En la subse
ion 1.1.2 vimos que una matriz es hermitiana
uando
su
onjugada transpuesta (o su transpuesta
onjugada) resulta en la misma
matriz. Por tanto, es valido que (R)T = (RT ) = R y (Q)T = (QT ) = Q.
Cuando las matri
es R y Q son reales, enton
es ambas deben ser simetri
as
y se veri
a que RT = R y QT = Q. Asimismo, en la subse
ion 1.2.4
se dijo que una matriz
uadrada R es denida positiva si las ra
es de su
e
ua
ion
ara
tersti
a jzI Rj = 0 son todas positivas, mientras que una
matriz
uadrada Q es semidenida positiva si las ra
es de su e
ua
ion
ara
tersti
a jzI Qj = 0 son positivas o nulas (sin embargo, no todas las
ra
es deben ser nulas).
La matriz R, por
onvenien
ia, puede tomar la forma de una matriz real
diagonal:
2
3
r1 0 : : : 0
6
... 77
6 0 r2
6
R=6 .
. . . 775
4 ..
0 :::
rp
donde los elementos r1, r2,. . .,rp deben ser todos positivos para que R sea
una matriz simetri
a denida positiva. Para sistemas
on una sola se~nal de
entrada, R resulta un es
alar de valor positivo.
131
Control Optimo
132
R
+
V
I
L
+
.
e=K
-
T
.
b
J
b
1 0
x1
x2
+ DV ;
133
D = [0
Control Optimo
134
yRpta (rad/s)
end
Kr = inv(R + H'*P*H)*H'*P*G;
% SE CUMPLE QUE K=Kr Y P=Pr
0.1
0.05
0
0
0.5
1.5
2.5
0.5
1.5
2.5
0.5
1.5
Tiempo
2.5
y (rad/s)
1.5
1
0.5
0
0
V (voltios)
40
20
0
0
(s)
Figura 4.4: Respuesta yRpta (a lazo abierto) del motor D.C. a un es
alon
de 1 rad/s. La velo
idad angular
ontrolada es y; la se~nal de
ontrol es V .
Ejemplo 4.2
0 0 1
2
4
x1
x2
x3
3
5
+ DV ;
D = [0
135
Control Optimo
136
y (rad)
1.5
0.5
0
0
0.5
1.5
0.5
1.5
Tiempo
2.5
2.5
V (voltios)
60
40
20
0
20
0
(s)
Figura 4.5: Salida
ontrolada y (posi
ion angular) y se~nal de
ontrol V para
el motor D.C.
4.6
Dise~
no del Observador Optimo
Cuadrati
o
En mu
hos
asos pra
ti
os, solo unas
uantas variables del ve
tor de estado
En tales
situa
iones ne
esitamos estimar di
ho ve
tor de estado; es de
ir, requerimos
hallar un ve
tor de estado estimado x^ (k). Esto puede lograrse mediante el
empleo de un observador dis
reto de estados. El dise~no de di
ho observador
impli
a determinar su matriz de ganan
ia Ke, que puede ser
al
ulada a
partir de la minimiza
ion de una fun
ion de
osto
uadrati
a. El diagrama
de bloques del observador de estados se representa en la gura 4.6, donde
podemos notar que el observador emplea las medi
iones de la salida y(k) y
de la se~nal de
ontrol u(k).
De la gura 4.6 podemos formular:
x(k + 1) = Gx(k) + Hu(k)
(4.24)
y(k) = Cx(k)
(4.25)
mientras que la e
ua
ion del observador toma la forma:
x^ (k + 1) = Gx^ (k) + H fu(k) + Ke [y(k) C x^ (k)g
(4.26)
x(k) del pro eso son sus eptibles de ser medidas en forma dire ta.
4.6 Dise~no del Observador Optimo
Cuadrati
o
u(k)
H
137
x (k)
y (k)
C
I z -1
+
G
Ke
+
+
+
I z -1
x^ (k)
C
+
G
138
Control Optimo
(4.35)
(4.36)
4.7 El Regulador Optimo
Propor
ional Integral
139
Dise~nar un observador optimo para el pro
eso motor D.C. del ejemplo 4.2
asumiendo que se requiere observar los estados x1, x2 y x3.
Solu
ion: Ver programa ejem4 3.m. En la gura 4.3 se muestra la evolu
ion de los valores de algunos elementos de Pe 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
4.7
El Regulador Optimo
Propor
ional Integral
Control Optimo
140
1.8
1.6
Algunos elementos de Pe
1.4
1.2
1
0.8
0.6
0.4
0.2
0
0
10
15
20
Muestras
25
30
35
40
Figura 4.7: Algunos elementos de Pe: Pe(1; 1) (
urva solida), Pe(2; 1) (
urva
en trazos) y Pe(3; 1) (
urva
on puntos y rayas).
pueden apare
er si los parametros del pro
eso o su estru
tura (su e
ua
ion
de estado) no han sido estimados
on su
iente exa
titud. Para pro
esos
que no poseen propiedades integradoras, la in
lusion de a
ion integral en el
sistema de
ontrol permite obtener un error esta
ionario nulo. La gura 4.8
ilustra un regulador optimo (propuesto en [3) para sistemas univariables,
que in
luye di
ha a
ion integral en el sistema de
ontrol: un integrador
on
se~nal de salida v(k) y una ganan
ia integral KI aso
iada. Siendo la se~nal de
r(k)
v(k)
u (k)
KI
+
-
+
-
I z-1
x (k)
y (k)
C
I z-1
G
K
4.7 El Regulador Optimo
Propor
ional Integral
141
Control Optimo
142
Si denimos:
(4.48)
v(k) v(1) = ve (k)
(4.49)
y restamos ahora la e
ua
ion (4.47) de (4.45), y luego usando las rela
iones
(4.48) y (4.49) obtendremos:
xe (k + 1) =
G HK
HKI
xe (k)
ve (k + 1)
CG + CHK 1 CHKI
ve (k)
xe (k )
G
0
x
(
k
)
H
e
= CG I ve(k) + CH
K KI
ve (k) (4.50)
La e
ua
ion (4.50) puede ser es
rita
omo:
~ (k) + Hw
~ (k)
(k + 1) = G
~ (k )
w(k) = K
donde:
x
(
k
)
e
(k) = v (k)
e
~G(k) = G 0
H~ (k) =
(4.53)
CG I
(4.54)
H
CH
(4.55)
K~ (k) = K
(4.51)
(4.52)
(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 dimension n, mientras que
el ve
tor de estado (k) del regulador propor
ional integral posee dimension
(n + 1).
Teniendo en mente las rela
iones anteriores, podemos denir la siguiente
fun
ion de
osto:
1 h
i
X
1
~ (k) + w2 (k)R~
J=
(k)T Q
(4.57)
2 k=0
KI
4.7 El Regulador Optimo
Propor
ional Integral
143
Debemos enton
es
al
ular una matriz K~ ade
uada de forma tal que minimi
e la fun
ion de
osto dada en la e
ua
ion (4.57). Empleando el mismo
pro
edimiento usado en la se
ion 4.3, es posible formular la e
ua
ion de
Ri
ati y la e
ua
ion de ganan
ia del
ontrolador K~ para el regulador,
omo
sigue:
P~ = Q~ + G~ T P~ G~ G~ T P~ H~ [R~ + H~ T P~ H~ 1 H~ T P~ G~
(4.58)
K~ = [R~ + H~ T P~ H~ 1 H~ T P~ G~
(4.59)
La sele
ion del tiempo de muestreo se trata en la subse
ion 4.9.6.
Ejemplo 4.4
Dise~nar el regulador propor
ional integral optimo esta
ionario que sea
apaz
de estabilizar la velo
idad angular del eje del motor (des
rito en el ejemplo
4.1) a 1 rad/s,
on las espe
i
a
iones siguientes: tiempo de estabiliza
ion
menor que 2 s, error en estado estable menor al 1 % y sobreimpulso de la
salida menor al 5 %.
Solu
ion: El programa ejem4 4.m resuelve el problema y sus resultados se
muestran en la gura 4.9.
% ejem4_4.m SOLUCION DEL EJEMPLO 4.4
lear all
J = 0.01; b = 0.1; K = 0.01; R = 1; L = 0.5;
A = [-b/J K/J
-K/L -R/L; % orden n=3
B = [0;1/L;
C
= [1 0; D
= [0;
% VERIFICAR CONTROLABILIDAD Y OBSERVABILIDAD
M = [B A*B; N = [C
' A'*C
'; % rank(M) = rank(N) = n = 2
% LUEGO EL SISTEMA ES COMPLETAMENTE CONTROLABLE Y OBSERVABLE
T = 0.05;
% SELECCIONADO EN EL EJEMPLO 4.1
[G,H,C,D =
2dm(A,B,C
,D
,T,'zoh'); % CONVERSION A DISCRETO
Gtilde = [G zeros(2,1)
-C*G eye(1,1);
% DEBE SER DE ORDEN n+1=4
Htilde = [H
-C*H;
Q = [1 0 0;0 0.1 0;0 0 2; R = [0.01; % MATRICES DE PONDERACION
[Ktil,Ptil,E = dlqr(Gtilde,Htilde,Q,R); % Ktil: GANANCIA OPTIMA
K = [Ktil(1) Ktil(2); KI = -Ktil(3);
x = [0;0; yi=0; v=0;
% CONDICIONES INICIALES
N = 60; r=1;
% RESPUESTA AL ESCALON r=1
Control Optimo
144
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
y (rad/s)
1.5
0.5
0
0
0.5
1.5
0.5
1.5
Tiempo
2.5
2.5
V (voltios)
25
20
15
10
5
0
(s)
4.8
145
Control Optimo
Cuadrati
o del Pendulo Invertido
En esta se
ion nos o
uparemos del dise~no del
ontrol optimo
uadrati
o del
pro
eso pendulo invertido empleando el pro
edimiento de dise~no des
rito en
la se
ion 4.8.
4.9.1 Formula
ion del Problema
Dado el pro
eso pendulo invertido,
onformado por una varilla montada en
un
arro impulsado por un servomotor D.C.
ontrolado por voltaje de armadura, se desea dise~nar un servo
ontrolador que sea
apaz de mantener
el pendulo invertido en posi
ion verti
al (tanto
omo sea posible), y al mismo tiempo, mantener el
arro en una posi
ion referen
ial. En el problema
planteado, el pendulo se mueve en el mismo plano que la traye
toria del
arro. El sistema de
ontrol sera dise~nado empleando la te
ni
a de
ontrol
146
Control Optimo
optimo
uadrati
o y la
ongura
ion de un servosistema. La entrada al pro
eso (la se~nal de
ontrol) es el voltaje de armadura del servomotor D.C. y las
salidas del servosistema son la posi
ion angular del pendulo y la traye
toria
horizontal del
arro. Se desea un tiempo de estabiliza
ion de la posi
ion del
arro de aproximadamente 6 segundos
on el menor sobreimpulso posible.
Cabe anotar que para al
anzar las espe
i
a
iones de dise~no planteadas,
se requiere sele
ionar ade
uadamente las matri
es de pondera
ion,
omo
veremos mas adelante.
4.9.2 El Modelo del Pro
eso a Controlar
La determina
ion del modelo matemati
o del pro
eso pendulo invertido fue
tratado
on amplitud en la se
ion 3.1. Para una fre
uen
ia de muestreo
de 200 Hz y asumiendo reten
ion de memoria de orden
ero, la e
ua
ion
de estado dis
reta del pro
eso y su e
ua
ion de salida se determinan
omo
sigue:
% PARAMETROS DEL PROCESO
m
= 0.92; me = 0; mv = 0.063095; mp = 0.2; g = 9.81;
lv = 0.767; le = 0; rp = 0.0648; n = 1/19.741;
Jm = 1.9596e-6;
Je = me*le^2; Jv = mv*lv^2/3; Jo = 0; Jp = mp*rp^2/2;
Jeq = Jm + n^2*(Jo + Jp);
Bm = 1.8342e-6; Bo =0; Beq = Bm + n^2*Bo;
Km = 31.071e-3; Kb = 31.053e-3; Ra = 7.38; KA = 14.9;
M1 = m
+ me + mv; M2 = me*le + mv*lv/2;
J1 = Je + Jv; J2 = Jeq/(n^2*rp^2);
Kx = Km/(Ra*n*rp);
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; % SALIDA: POSICION DEL CARRO
4.9 Control Optimo
Cuadrati
o del Pendulo Invertido
147
Ts = 1/200;
% TIEMPO DE MUESTREO
[G,H =
2d(A,B,Ts);
2
6
G=6
4
1:0002
0:0995
0:0000
0:0019
0:0050
0
1:0002
0
0:0000 1:0000
0:0000
0
C=
0:0002
0:0963
0:0049
0:9508
0 0 1 0
3
7
7;
5
2
6
H=6
4
0:0004
0:1497
0:0002
0:0765
3
7
7
5
CH
Adi
ionalmente debemos averiguar si el pro
eso es
ompletamente
ontrolable formando la matriz de
ontrolabilidad M y averiguando su rango, que
debe ser 5. El
al
ulo se realiza
omo sigue:
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
2
6
6
G~ = 6
6
4
1:0002
0:0995
0:0000
0:0019
0:0000
0:0050
1:0002
0:0000
0:0000
0:0000
0
0
1:0000
0
1:0000
0:0002
0
0:0963
0
0:0049
0
0:9508
0
0:0049 1:0000
3
7
7
7;
7
5
2
6
6
~ =6
H
6
4
0:0004
0:1497
0:0002
0:0765
0:0002
3
7
7
7
7
5
Control Optimo
148
6
6
6
6
4
1:3774
0:3112
0:9019
0:5082
0:0035
0:3112
0:0727
0:2107
0:1197
0:0008
0:9019
0:2107
0:9352
0:3735
0:0041
0:5082
0:1197
0:3735
0:2000
0:0015
0:0035
0:0008
0:0041
0:0015
0:0000
7
7
7
7
5
4.9 Control Optimo
Cuadrati
o del Pendulo Invertido
149
Para
al
ular la matriz de ganan
ia Ke del observador optimo (se
ion 4.3),
debemos sele
ionar previamente las matri
es de pondera
ion Re y Qe:
2
1 0 0 0 3
0 ; Qe = 66 0 1000 0 0 77
Re = 10 10
4 0
0 0:9 0 5
0 0 0 1000
Podemos observar que en la matriz Re se da un peso de 10 a la medi
ion
de la posi
ion del
arro, pues es mas exa
ta que la medi
ion del angulo,
debido a que el sensor usado para medir di
ho angulo posee un error de
uantiza
ion mayor. En la matriz Qe se asigna un peso de 1000, el mayor en
Qe, tanto a la velo
idad angular de la varilla
omo a la velo
idad del
arro,
porque estas son las variables que no son posibles de medir dire
tamente y
ne
esitamos que tengan una mayor in
uen
ia en el pro
eso de estima
ion.
Notar tambien que la posi
ion del
arro posee un peso de 0.9, algo menor
omparado
on el peso de 1 atribudo al angulo de la varilla, dado que el
sensor de posi
ion del
arro es mas exa
to que el sensor de posi
ion de la
varilla.
Para
al
ular la matriz de ganan
ia del observador Ke
al
ulamos previamente la matriz Pe a partir de la e
ua
ion (4.37):
Pe (k + 1) = Qe + GPe (k)GT GPe (k)C T [Re + CPe (k)C T 1 CPe(k)GT
El programa siguiente (en
odigo MATLAB)
al
ula el valor esta
ionario de
la matriz solu
ion Pe (el valor ini
ial de Pe es arbitrario):
for i = 1:40
Pe = Qe + G*Pe*G'-G*Pe*C'*inv(Re+C*Pe*C^(T))*C*Pe*G'
end
Control Optimo
150
Pe = 103 6
4
0:0021
0:0640
0:0003
0:0136
0:0640
9:7336
0:0397
2:2269
0:0003
0:0397
0:0047
0:0753
0:0136
2:2269
0:0753
6:3346
3
7
7
5
Ke = 6
4
0:7802
20:9413
0:0752
3:7683
0:0185
2:8240
0:3450
4:7913
7
7
5
4.9.5 Simula
ion del Sistema de Control Optimo
Con los datos determinados, podemos entrar ahora a la fase de simula
ion
del sistema de
ontrol optimo
uadrati
o, antes de ini
iar su implementa
ion
en tiempo real. El siguiente programa disopt2.m, ademas de efe
tuar todos
los
al
ulos anteriores, realiza la simula
ion del sistema
ontrolado empleando una ley de
ontrol optima y
on observa
ion optima de estados. Es
interesante anotar que el modelo del pro
eso empleado en la simula
ion es
el modelo no lineal (3.31) dis
retizado dire
tamente. Tambien hemos a~nadido senten
ias para simular el efe
to de satura
ion del ampli
ador. Como
se~nal de referen
ia se emplea un es
alon de valor 1.5 m. Los resultados de
la simula
ion se pueden observar en las guras 4.10, 4.11 y 4.12.
% disopt2.m SISTEMA DE CONTROL OPTIMO DEL PENDULO INVERTIDO
lear all
% PARAMETROS DEL PROCESO
m
= 0.92; me = 0; mv = 0.063095; mp = 0.2; g = 9.81;
lv = 0.767; le = 0; rp = 0.0648; n = 1/19.741;
Jm = 1.9596e-6;
Je = me*le^2; Jv = mv*lv^2/3; Jo = 0; Jp = mp*rp^2/2;
Jeq = Jm + n^2*(Jo + Jp);
Bm = 1.8342e-6; Bo =0; Beq = Bm + n^2*Bo;
Km = 31.071e-3; Kb = 31.053e-3; Ra = 7.38; KA = 14.9;
M1 = m
+ me + mv; M2 = me*le + mv*lv/2;
J1 = Je + Jv; J2 = Jeq/(n^2*rp^2);
Kx = Km/(Ra*n*rp);
4.9 Control Optimo
Cuadrati
o del Pendulo Invertido
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);
151
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
0.8
0.6
0.4
0.2
0
0.2
0
10
Tiempo
12
14
16
18
20
(s)
Figura 4.10: Simula
ion del sistema pendulo invertido: posi
ion del
arro.
4.9.6 El Hardware del Sistema de Control
La gura 4.13 muestra los
omponentes fsi
os (el hardware) del sistema de
ontrol. Tales
omponentes son: el pro
eso a
ontrolar (pendulo invertido
o grua-puente), los sensores de posi
ion, el ampli
ador de poten
ia, la tarjeta de adquisi
ion de datos Lab-PC+, y una
omputadora personal
on
mi
ropro
esador Pentium. El pro
eso pendulo invertido (o grua-puente) se
muestra esquematizado en la gura 4.14 y
omprende:
Un servomotor D.C. Pittman de iman permanente de aproximadamente 350 rpm, que posee redu
ion de velo
idad interna y
odi
ador
opti
o in
orporado,
uya opera
ion expli
aremos mas adelante.
Dos poleas de radio igual a 6.48
m, una de las
uales esta unida al
eje del motor y la otra, al otro extremo de un
arril.
Un
arril de metal por donde se desliza el
arro porta-pendulo.
Control Optimo
154
0.15
0.1
0.05
0.05
0.1
0
10
Tiempo
12
14
16
18
20
(s)
Figura 4.11: Simula
ion del sistema pendulo invertido: posi
ion angular del
pendulo.
0.7
0.6
0.5
Seal de control u
0.4
0.3
0.2
0.1
0
0.1
0.2
0
10
Tiempo
12
14
16
18
20
(s)
Figura 4.12: Simula ion del sistema pendulo invertido: se~nal de ontrol.
4.9 Control Optimo
Cuadrati
o del Pendulo Invertido
155
COMPUTADORA
PERSONAL
TARJETA LAB-PC+
SALIDAS
ANALOGICAS
PA
COMPUERTAS
DIGITALES
DE ENTRADA
Y SALIDA
AMPLIFICADOR
PWM
DAC0
DAC1
PA0
..
.
PA7
16 bits
MUX
PB
PC
PB0
..
.
PB7
16 bits
PROCESO:
PENDULO
INVERTIDO /
GRUA PUENTE
SENSOR EN
EL MOTOR
SENSOR EN
LA VARILLA
SALIDAS
PC0
..
.
PC6
PC7
Fs
CONTADOR /
TEMPORIZADOR
OUTB0
Control Optimo
156
SERVOMOTOR
PENDULO
POLEA
CARRO
CARRIL
movil (para sujetar una varilla metali
a por uno de sus extremos) y
un
odi
ador opti
o in
orporado (ver gura 4.15). El peso total del
arro es de 920 gr. El esquema del
arro se muestra en la gura 4.16.
Una varilla metali
a de 70
m de largo y de 64 gr que ha
e la fun
ion
de pendulo.
Codificador optico
Polea
Alimentacion
Servomotor D.C
Reductor de
velocidad
El sistema de ontrol posee dos sensores de posi ion, uno de los uales se en arga de medir la posi ion angular del motor y el otro se en arga de medir la
4.9 Control Optimo
Cuadrati
o del Pendulo Invertido
157
Pendulo
Codificador
optico
Ruedas
158
Control Optimo
4.9 Control Optimo
Cuadrati
o del Pendulo Invertido
4 bits
Puerto
digital
PA
Clock UP
74HC Clock Down
193
8 bits
4 bits
4 bits
Puerto
digital
PB
159
Canal A
74HC
193
74HC
193
LS7083
Canal B
8 bits
4 bits
74HC
193
160
Control Optimo
Para el fun
ionamiento
orre
to del sistema de
ontrol optimo dis
reto se
requiere la sele
ion ade
uada de la fre
uen
ia (o perodo) de muestreo. Tal
sele
ion debe tomar en
onsidera
ion la respuesta deseada del sistema de
lazo
errado y el tiempo que pueda tomar el programa para ha
er todos
los
al
ulos ne
esarios por
ada lazo de
ontrol (y para
ada perodo de
muestreo). Los programas implementados tuvieron una dura
ion promedio
por bu
le de 430 s, lo que permite pro
esar el sistema
on fre
uen
ias de
muestreo de hasta 2,3 KHz.
Como regla pra
ti
a, podemos es
oger un perodo de muestreo que sea
10 ve
es menor que la dura
ion de un
i
lo de os
ila
ion senoidal amortiguada de la se~nal de salida del sistema en lazo
errado (para el
aso de
respuesta subamortiguada). Para el
aso de respuesta sobreamortiguada,
podemos es
oger un perodo de muestreo 10 ve
es menor que el tiempo de
levantamiento; es de
ir, el tiempo trans
urrido hasta que o
urra el primer
ru
e entre la se~nal de referen
ia y la se~nal de respuesta del sistema. Si
asumimos ini
ialmente que las respuestas a obtener deben poseer un tiempo
de levantamiento de un segundo, apli
ando esta regla pra
ti
a, tendremos
que es
oger un perodo de muestreo menor que 0,1 segundos; es de
ir, una
fre
uen
ia mayor de 10 Hz. Tomando en
uenta todas estas
onsidera
iones
se es
ogio una fre
uen
ia de muestreo de Fs = 200 Hz, o lo que es lo mismo,
un perodo de muestreo de 5 ms.
4.9.7 Implementa
ion del Software de Control
4.9 Control Optimo
Cuadrati
o del Pendulo Invertido
161
fun
iones NI-DAQ [25, as
omo tambien fun
iones de le
tura y es
ritura
de puertos. El ar
hivo FUNC PEN.H
onsta de las siguientes fun
iones:
CongurarHardware: ini
ializa la tarjeta Lab-PC+,
ongura los puertos y espe
i
a la fre
uen
ia del
lo
k de muestreo.
EnviarVoltaje: restringe y enva voltajes al DAC0 del Lab-PC+.
LeerSensor: adquiere datos de los puertos A y B de 8 bits
ada uno
y
olo
a un 0 o un 1 en el segundo bit del puerto C,
on el n de
sele
ionar la le
tura del sensor de la varilla o la del sensor del motor.
NivelClo
k: lee el bit 7 del puerto C y re
ibe el
lo
k de muestreo de
OUTB0.
ResetContadores:
olo
a un 1 o un 0 en el bit 3 del puerto C,
on el
n de borrar el
ontenido de los
ontadores de los sensores.
El Programa de Control
El programa de
ontrol se denomina PENDOI4.CPP. En el ambiente de trabajo 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 programa PENDOI4.CPP
omprende las partes siguientes:
1. Ini
ializa
ion
(a) Ini
ializa
ion de la tarjeta de adquisi
ion de datos.
(b) Ini
ializa
ion de variables.
(
) Estable
imiento de la posi
ion
ero del
arro y de la varilla.
2. Bu
le del algoritmo de
ontrol
(a) Dete
ion del
an
o de subida del
lo
k.
(b) Medi
ion de las salidas.
(
) Observa
ion de estados.
(d) Cal
ulo y apli
a
ion de la se~nal de
ontrol.
3. Alma
enamiento de las respuestas.
El diagrama de
ujo del programa se muestra en la gura 4.19. Los
programas implementados tuvieron una dura
ion promedio por bu
le de
430 s. A
ontinua
ion
omentamos brevemente
ada uno de los puntos
anteriores.
Control Optimo
162
INICIO
INMICIALIZA:
- TARJETA DE ADQUISICION DE DATOS
- VARIABLES
BORRA CONTADORES
ESTABLECIMIENTO DE LA POSICION
CERO DEL CARRO Y LA VARILLA
NO
FIN
SI
DETECTA
FLANCO DE SUBIDA
DEL PULSO DE RELOJ
NO
SI
MIDE SALIDAS
ESTIMA ESTADOS
~
CALCULA SENAL DE CONTROL
~
COMPENSA SENAL DE CONTROL
~
ENVIA SENAL DE CONTROL
ACTUALIZA VARIABLES
ARCHIVA DATOS
4.9 Control Optimo
Cuadrati
o del Pendulo Invertido
163
El hardware de la tarjeta Lab-PC+ se
ongura
on la fun
ion para ini
ializa
ion CongurarHardware(Fs), en donde se espe
i
a la fre
uen
ia de
muestreo Fs que debe generar.
Ini
ializa
ion de Variables
Para obtener la posi
ion angular a partir del numero de pulsos dados por
los
ontadores, podemos usar la siguiente rela
ion:
Para la varilla, posi
ion angular de la varilla: (2=256) NP .
Para el motor, posi
ion angular del eje del motor: (2=512) NP
(antes de la redu
ion).
Para la le
tura de los sensores tenemos que tomar en
uenta la satura
ion
de los
ontadores, los
uales pueden guardar un valor maximo de 65535.
En el
aso de la varilla,
onsideraremos
omo positivo los valores que
resulten de un re
orrido horario, y negativo los que resulten de un re
orrido
antihorario. Para este
aso, los
ontadores no llegano a saturarse, pues a
lo sumo la varilla podra tener un re
orrido de 360 , lo que
orresponde
164
Control Optimo
a un in
remento de 256 puntos, valor bastante lejos del valor maximo del
ontador. El problema a resolver aqu es
omo re
ono
er si nos en
ontramos
ante un re
orrido positivo o negativo justo
uando el
ontador
omienza a
de
rementar (partiendo de 0). Para resolver esta situa
ion,
onsideraremos
que estamos ante un valor negativo si el
ontenido de los
ontadores es
mayor que 32768 (la mitad del valor maximo que pueden
ontener). Por
ejemplo, si obtenemos en el
ontador un valor de 65534, y
omo este es mayor
que 32768, enton
es representa una posi
ion negativa; su equivalente es:
(65536 65534) = 2. Luego, para obtener la posi
ion angular ha
emos:
2 2=256 rad. La rutina que realiza esta le
tura esta dada por:
/*lee angulo Varilla*/
ontVa=LeerSensor(VARILLA);
ontVa=(
ontVa>32768)?-1*(65536-
ontVa):
ontVa;
*y0=
ontVa*(2.*PI/256.);
4.9 Control Optimo
Cuadrati
o del Pendulo Invertido
165
Control Optimo
166
Cal
ulo de la Se~nal de Control
v=-DeadZone;
v=+DeadZone;
v=0.;
Las respuestas hasta aqu obtenidas se guardan
ada una en una matriz;
luego
ada matriz es alma
enada en un ar
hivo para su posterior le
tura,
analisis y pro
esamiento.
Listado de los Programas Fuente
/*FUNC_PEN.H Fun
iones para manejar la tarjeta de adquisi
ion
de datos Lab-PC+ en
onjunto
on la interfaz del sistema del
pendulo invertido*/
#if !defined (__FUNC_PEN_H)
#define __FUNC_PEN_H
void ConfigurarHardware (float);
/*
onfigurar hardware y estable
er la fre
uen
ia del
lo
k de
4.9 Control Optimo
Cuadrati
o del Pendulo Invertido
167
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
/*FUNC_PEN.CPP Trabaja en
onjunto
on FUNC_PEN.H */
#in
lude "fun
_pen.h"
#in
lude "nidaq.h"
#in
lude <dos.h>
#define DAC0 0x264
#define PORTA 0x270
#define PORTB 0x271
#define PORTC 0x272
void ConfigurarHardware (float fre
)
{
int periodoTimer, devi
eCode;
periodoTimer = (int)(2000000/fre
);
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 */
}
void EnviarVoltaje (float v)
{
unsigned salidaDigital;
/*restringe el voltaje de entrada al driver */
if(v<0.) v = 0.8;
if(v>3.7) v = 3.7;
salidaDigital = (unsigned) (409.6*v+0.5);
outport(DAC0,salidaDigital);//ESCRIBE salidaDigital EN DAC0
}
unsigned int LeerSensor(int sensor)
{
unsigned
har byteH,byteL;
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);
}
int NivelClo
k()
{
unsigned
har bytePoll;
bytePoll = inportb (PORTC); //lee PORTC
return (bytePoll>127);//valida solo PC7 (
lk de la tarjeta-OUTB0)
//(pooling)
}
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));
}
/*PENDOI4.CPP Programa prin
ipal: pendulo invertido
on estima
ion
de estados de orden
ompleto. El programa
arga los datos del
ar
hivo pendoi.dat*/
#in
lude <assert.h>
#in
lude <stdio.h>
#in
lude <stdlib.h>
#in
lude <
onio.h>
#in
lude <math.h>
#in
lude <time.h>
#in
lude "fun
_pen.h"
#define
#define
#define
#define
#define
#define
PI M_PI
IZQ 0
DER 1
VARILLA IZQ
MOTOR DER
A_RADIANES 2.*PI/512.
#define
#define
#define
#define
#define
#define
#define
#define
Nm 1/19.741
rp 0.0648
Fs 200.
Ts (1./Fs)
tsimul 60.
DeadZone 0.1
offset 2.29 //2.36
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.;
void ini
ializaMatri
es()
{
170
Control Optimo
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);
for(i = 0;i <= 3;i++)
{
for(j = 0;j <= 1;j++)
fs
anf(pfi
hero,"%f",&Ke[i[j);
}
f
lose(pfi
hero);
Xe[0 = 0.; Xe[1 = 0.; Xe[2 = 0.; Xe[3 = 0.;
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
printf("\n");
}
}
void MideSalidas(float *y0,float *y1)
{
stati
float y1_ant = 0.;
stati
unsigned
ontC_ant = 0;
unsigned
ontVa,
ontC_a
t;
int
ontVa1;
/*lee angulo Varilla*/
ontVa = LeerSensor(VARILLA);
ontVa1 = (
ontVa>32768) ? -1*(65536-
ontVa):
ontVa;
*y0 =
ontVa1*(2.*PI/256.); //angulo de la varilla en radianes
/*lee posi
ion del
arro*/
ontC_a
t = LeerSensor(MOTOR);
if(
ontC_a
t <
ontC_ant)
{
if((
ontC_ant-
ontC_a
t) > 32768)
*y1 = y1_ant+(65536-
ontC_ant+
ontC_a
t)*A_RADIANES*Nm*rp;
else
*y1 = y1_ant-(
ontC_ant-
ontC_a
t)*A_RADIANES*Nm*rp;
}
else
{
if((
ontC_a
t-
ontC_ant) > 32768)
*y1 = y1_ant-(65536-
ontC_a
t+
ontC_ant)*A_RADIANES*Nm*rp;
else
*y1 = y1_ant+(
ontC_a
t-
ontC_ant)*A_RADIANES*Nm*rp;
}
ontC_ant=
ontC_a
t;
y1_ant=*y1;
}
void EstimaEstados(float X0,float X2)
/*re
ibe X0 y X2 y en
uentra Xe[*/
{
/*X1~(k) = Xe_a
t[0
X1~(k-1) = Xe_ant[0
X2~(k) = Xe_a
t[1
X2~(k-1) = Xe_ant[1
X3~(k) = Xe_a
t[2
X3~(k-1) = Xe_ant[2
X4~(k) = Xe_a
t[3
X4~(k-1) = Xe_ant[3*/
171
172
stati
float Yant[={0.,0.};
float G_KeCX[4, KeYant[4, S = 0.;
int i, j, p;
/*
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;
}
/*
ompensa fri
ion estati
a y de
oulomb*/
onst float Wth = .1;
onst float V
FE = .2,V
FC = .15;
float CompensaFri
ion(float u,float vel)
{
float volt = 0.;
if(fabs(vel) <= Wth)
{/*
ompensa fri
ion estati
a*/
if(u < 0.) volt = -V
FE;
if(u > 0.) volt = V
FE;
}
else
{ /*
ompensa fri
ion de
oulomb*/
if (u <0.) volt = -V
FC;
if (u >0.) volt = V
FC;
Control Optimo
4.9 Control Optimo
Cuadrati
o del Pendulo Invertido
}
return (u+volt);
}
void main()
{
ini
ializaMatri
es();
float vel, yant, ya
t;
har te
la;
unsigned
har
k_ant,
k_a
t;
int n, k;
float t;
int
;
float V,V_ant = 0.;
float u_1 = 0., u_2 = 0., u_3 = 0., u_4 = 0., v = 0.;
n=(int) tsimul/Ts;
har tiempo[ ="
:\\user\\leonardo\\datos\\pendnio.t" ;
har theta_[ ="
:\\user\\leonardo\\datos\\pendnio.th";
har v_vara[ ="
:\\user\\leonardo\\datos\\pendnio.vv";
har z_
arro[ ="
:\\user\\leonardo\\datos\\pendnio.z" ;
har v_
arro[ ="
:\\user\\leonardo\\datos\\pendnio.v
";
har sal_var[ ="
:\\user\\leonardo\\datos\\pendnio.y0";
har sal_
ar[ ="
:\\user\\leonardo\\datos\\pendnio.y1";
har
U_[ ="
:\\user\\leonardo\\datos\\pendnio.u";
float *u_, *x1_, *x2_, *x3_, *x4_;/**/float *y_0_, *y_1_;
FILE *pfi
hero;
assert(NULL! = (u_ =(float*)
allo
(n+1,sizeof(float))));
assert(NULL! = (x1_=(float*)
allo
(n+1,sizeof(float))));
assert(NULL! = (x2_=(float*)
allo
(n+1,sizeof(float))));
assert(NULL! = (x3_=(float*)
allo
(n+1,sizeof(float))));
assert(NULL! = (x4_=(float*)
allo
(n+1,sizeof(float))));
assert(NULL! = (y_0_=(float*)
allo
(n+1,sizeof(float))));
assert(NULL! = (y_1_=(float*)
allo
(n+1,sizeof(float))));
if((te
la=get
h()) == 27) goto FIN;
ConfigurarHardware(Fs);
EnviarVoltaje(offset);
lrs
r();
173
Control Optimo
174
printf("1) Ubi
ar el
arro en el
entro del
arril\n4) Ubi
ar la varilla en posi
ion verti
al y mantenerla asi hasta presionar F1\n");
while(((te
la = get
h()) != 59) && (te
la != 27)) ;
if(te
la == 27) goto FIN;
ResetContadores();
printf("\n\nColo
ar la varilla en la posi
ion ini
ial deseada\n
Presionar F2 para
omenzar el
ontrol\n");
do
{
while(!kbhit())
{
MideSalidas(&y0,&y1);
gotoxy(5,10); printf("varilla en radianes: %f",y0);
gotoxy(5,11); printf("varilla en grados : %f",y0*180./PI);
}
}
while(((te
la = get
h()) != 60)&&(te
la != 27));
if(te
la == 27) goto FIN;
t = 0.; u =
for(k = 0;k
{
if(kbhit())
{
if((te
la =
if(te
la ==
}
0.; r = 0.;
<= n;)
k_ant =
k_a
t;
k_a
t = NivelClo
k();
if((
k_ant == 0) && (
k_a
t == 1))
{
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
gotoxy(5,17);printf("
arro
175
en metros : %f",y1);
EstimaEstados(y0,y1);
/*En
uentra Control*/ /*u(k+1)*/
V = V_ant+r-Xe[2; V_ant = V;//a
ion integral
u = KI*V-K[0*Xe[0-K[1*Xe[1-K[2*Xe[2-K[3*Xe[3;
/*satura
ion*/
if(u < -1.4) u = -1.4;
if(u > 1.4) u = 1.4;
vel = (ya
t-yant)/Ts/rp;//Xe_a
t[3/rp;
/*Compensa zona muerta*/
if(u < 0) v = -DeadZone;
if(u > 0) v = +DeadZone;
if(u == 0)v = 0.;
EnviarVoltaje(u+v+offset);
/*guarda datos en arrays*/
u_[k = u;
x1_[k = Xe[0;
x2_[k = Xe[1;
x3_[k = Xe[2;
x4_[k = Xe[3;
y_0_[k = y0;
y_1_[k = y1;
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
4.9 Control Optimo
Cuadrati
o del Pendulo Invertido
177
=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();
}
Control Optimo
178
posicin del carro (medicin directa)
2
posicin (m)
1.5
0.5
0.5
0
10
12
tiempo (s)
14
16
18
20
Figura 4.20: Control optimo del pendulo invertido: posi
ion del
arro.
ngulo del pndulo (medicin directa)
0.5
0.4
0.3
ngulo (rad)
0.2
0.1
0
0.1
0.2
0.3
0.4
0.5
0
10
12
tiempo (s)
14
16
18
20
Figura 4.21: Control optimo del pendulo invertido: posi
ion angular del
pendulo.
4.10 Control Optimo
Cuadrati
o de la Grua-Puente
179
entrada
1.5
entrada (v)
0.5
0.5
1.5
0
10
12
tiempo (s)
14
16
18
20
Control Optimo
Cuadrati
o de la Gr
ua-Puente
En esta se
ion nos o
upamos del dise~no del
ontrol optimo
uadrati
o del
pro
eso grua-puente empleando el pro
edimiento de dise~no presentado en la
se
ion 4.8.
4.10.1 Formula
ion del Problema
Dado el sistema grua-puente,
onformado por una varilla que
uelga libremente de un
arro impulsado por un servomotor D.C.
ontrolado por su
voltaje de armadura, se desea dise~nar un servo
ontrolador que sea
apaz
de trasladar al
arro a una posi
ion determinada, de forma tal que la os-
180
Control Optimo
La determina
ion del modelo matemati
o del pro
eso grua-puente se trato
on amplitud en la se
ion 3.2. Para una fre
uen
ia de muestreo de 200 Hz
y asumiendo reten
ion de memoria de orden
ero, y siguiendo el pro
edimiento desarrollado en las subse
iones 4.9.2, 4.9.3, 4.9.4 y 4.9.5, el siguiente
programa disopt3.m determina el modelo lineal dis
reto,
al
ula las matri
es de ganan
ia del
ontrolador optimo y del observador optimo, y simula
el sistema de
ontrol para la grua puente. Cabe re
al
ar que la simula
ion
emplea el modelo no lineal de la planta. Los resultados se muestran a
ontinua
ion del programa y los resultados gra
os se ilustran en las guras
4.23, 4.24 y 4.25.
% disopt3.m SISTEMA DE CONTROL OPTIMO PARA LA GRUA-PUENTE
lear all
% PARAMETROS DEL PROCESO
m
= 0.92; me = 0; mv = 0.063095; mp = 0.2; g = 9.81;
lv = 0.767; le = 0; rp = 0.0648; n = 1/19.741;
Jm = 1.9596e-6;
Je = me*le^2; Jv = mv*lv^2/3; Jo = 0; Jp = mp*rp^2/2;
Jeq = Jm + n^2*(Jo + Jp);
Bm = 1.8342e-6; Bo =0; Beq = Bm + n^2*Bo;
Km = 31.071e-3; Kb = 31.053e-3; Ra = 7.38; KA = 14.9;
M1 = m
+ me + mv; M2 = me*le + mv*lv/2;
J1 = Je + Jv; J2 = Jeq/(n^2*rp^2);
Kx = Km/(Ra*n*rp);
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
4.10 Control Optimo
Cuadrati
o de la Grua-Puente
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
181
182
Control Optimo
4.10 Control Optimo
Cuadrati
o de la Grua-Puente
0:9998
0:0972
0:0000
0:0019
G=6
4
0:0050
0
0:9998
0
0:0000 1:0000
0:0000
0
C=
2
6
6
G~ = 6
6
4
1:0002
0:0995
0:0000
0:0019
0:0000
0:0050
1:0002
0:0000
0:0000
0:0000
2
6
6
P~ = 104 6
6
4
K=
0
0
1:0000
0
1:0000
1:9636
0:2257
3:3116
0:4202
0:0300
8:2596
0:0002
0:0941
0:0049
0:9508
7
7;
5
H =6
4
0:0002
0
0:0963
0
0:0049
0
0:9508
0
0:0049 1:0000
3:3116
0:7068
8:5186
1:4030
0:0745
~ = K
K
KI
Ke = 6
4
3
7
7
7;
7
5
0:4202
0:2891
1:4030
0:5668
0:0061
3
7
7
5
6
6
~ =6
H
6
4
0:0004
0:1497
0:0002
0:0765
0:0002
0:0300
0:0030
0:0745
0:0061
0:0013
3
7
7
7
7
5
3
7
7
7
7
5
0:0004
0:1462
0:0002
0:0765
0 0 1 0
0:2257
0:1481
0:7068
0:2891
0:0030
183
0:0055
1:1280
0:9936
0:6519
KI = 0:2907
3
7
7
5
La implementa
ion del hardware, as
omo el dise~no del software del sistema
de
ontrol, fueron tratadas en las subse
iones 4.9.6 y 4.9.7, respe
tivamente.
Cabe anotar que el hardware del sistema y la estru
tura del software es
omun, tanto para el pendulo invertido
omo para la grua-puente. Basta
ambiar de signo en algunas senten
ias del ar
hivo PENDOI4.CPP (des
rito
en la subse
ion 4.9.7) para
rear el software de
ontrol del pro
eso gruapuente.
Control Optimo
184
1.8
1.6
1.4
1.2
1
0.8
0.6
0.4
0.2
0
0
10
Tiempo
12
14
16
18
20
(s)
Figura 4.23: Simula
ion del sistema grua-puente: posi
ion del
arro.
0.5
0.4
0.3
0.2
0.1
0
0.1
0.2
0.3
0.4
0
10
Tiempo
12
14
16
18
20
(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
Seal de control u
0.8
0.6
0.4
0.2
0.2
0
10
Tiempo
12
14
16
18
20
(s)
posicin (m)
1.5
0.5
0.5
0
10
12
tiempo (s)
14
16
18
20
Control Optimo
186
ngulo de la varilla (medicin directa)
0.6
0.4
ngulo (rad)
0.2
0.2
0.4
0.6
0
10
12
tiempo (s)
14
16
18
20
entrada (v)
0.5
0.5
1.5
0
10
12
tiempo (s)
14
16
18
20
187
Problemas Resueltos
El problema 3.1 presenta las e
ua
iones que gobiernan la dinami
a del sistema de suspension de un bus (ver gura 3.12). Dise~nar un sistema de
ontrol optimo
uadrati
o esta
ionario para lograr el objetivo de
ontrol siguiente: 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
alon de 10
m (provo
ada por
imperfe
iones en la pista), pra
ti
amente deben desapare
er. La sele
ion
del tiempo de muestreo es a
onvenien
ia del dise~no.
% 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
189
xlabel('Tiempo en segundos')
ylabel('Control u (N)')
print -deps -f p3opt2
3
Posicin y (m)
x 10
10
0
20
40
60
80
100
Tiempo en segundos
120
140
160
20
40
60
80
100
Tiempo en segundos
120
140
160
Control u (N)
x 10
0.8
0.6
0.4
0.2
0
0
Problema 4.2
El problema 3.2 presenta las e
ua
iones que gobiernan la dinami
a longitudinal de un avion
omer
ial volando a velo
idad de
ru
ero (altura y velo
idad
onstantes). El
ontrol del angulo de in
lina
ion del avion (ver gura 3.14)
es un problema longitudinal a resolver. El objetivo de
ontrol es dise~nar un
autopiloto que manipulando el angulo e del de
e
tor de eleva
ion,
ontrole
el angulo de in
lina
ion del avion.
Se pide dise~nar un sistema de
ontrol optimo
uadrati
o esta
ionario que
genere una fuerza de
ontrol, de modo que la salida del pro
eso (el angulo
de in
lina
ion ) presente un sobreimpulso menor al 10 % y un tiempo de
190
Control Optimo
estabiliza
ion menor que 3 s,
on error en estado estable nulo. La sele
ion
del tiempo de muestreo es a
onvenien
ia del dise~no.
% p4opt2 SOLUCION DEL PROBLEMA 4.2
lear all
% ECUACION DE ESTADO DEL PROCESO
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;
% PROCESO DISCRETO
T=0.1; % TIEMPO DE MUESTREO
[num1, den1=ss2tf(A,B,C,D);
[G,H=
2d(A,B,T);
[Bz,Az=ss2tf(G,H,C,D);
% CONTROL OPTIMO ESTACIONARIO CON ACCION INTEGRAL
G1 = [G zeros(3,1);-C*G 1;
H1 = [H;-C*H;
% 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
% CALCULO DE LA GANACIA K DEL CONTROLADOR
KK = inv(R+H1'*P*H1)*H1'*P*G1;
K = [KK(1) KK(2) KK(3);
KI = -KK(4);
% 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;
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
Inclinacin (rad)
0.15
0.1
0.05
0
0
4
5
6
Tiempo en segundos
10
4
5
6
Tiempo en segundos
10
0.2
0.15
0.1
0.05
0
0.05
0
Figura 4.30: A ngulo de in
lina
ion
ontrolada y angulo del de
e
tor (se~nal
de
ontrol)
orrespondientes al problema 4.2.
192
Control Optimo
Problema 4.3
193
KI = -KK(5);
% SIMULACION
N = 100; x=[0;0;0;0; v=0; Y=0;
for k=1:N
r(k)=0.5; Ref=r(k);
v = v + Ref - Y;
U = - K*x + KI*v;
x = G*x + H*U;
Y = C*x;
y(k) = Y; u(k) = U;
end
% GRAFICOS
t=linspa
e(0,N*T,N);
subplot(2,1,1)
plot(t,y(1:N)), grid
ylabel('Posi
ion (m)')
xlabel('Tiempo en segundos')
subplot(2,1,2)
plot(t,u(1:N)), grid
xlabel('Tiempo en segundos')
ylabel('Voltaje de
ontrol')
print -deps -f p5opt2
Problema 4.4
Control Optimo
194
Posicin (m)
0.6
0.4
0.2
0
0
4
5
6
Tiempo en segundos
10
4
5
6
Tiempo en segundos
10
Voltaje de control
40
20
0
20
40
0
Figura 4.31: Posi
ion de la bola y el voltaje de
ontrol para el problema 4.3.
0
0
0
1
0
0
K12/M2 B12/M2 -(K12+K23)/M2 -(B2+B23+B12)/M2 K23/M2 B23/M2
0
0
0
0
0
1
0
0 K23/M3 B23/M3 -K23/M3 -(B3+B23)/M3;
B=[0 1 0 0 0 0';
alfa = 1; % CONSTANTE TACOMETRICA
C=[ 0 alfa
0 0 0 0
0
0
0 alfa 0 0
0
0
0
0 0 alfa;
D=[0;0;0;
[num
,den
=ss2tf(A,B,C,D);
% MODELO LINEAL DISCRETO
T = 0.2; % perodo de muestreo
[G,H,C,D=
2dm(A,B,C,D,T,'zoh');
% ADICIONANDO ACCION INTEGRAL
G1 = [G zeros(6,1);-C(1,:)*G 1;
H1 = [H;-C(1,:)*H;
% CALCULO DE LA GANANCIA DEL CONTROLADOR
Q = [1
0
0
0
0 0
0
0
1
0
0
0 0
0
0
0
1
0
0 0
0
%
%
%
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
Control Optimo
196
Velocidad (m/s)
30
25
20
15
10
5
0
10
20
30
40
50
60
Tiempo en segundos
70
80
90
100
10
20
30
40
50
60
Tiempo en segundos
70
80
90
100
600
400
200
0
0
Figura 4.32: Velo
idad del
arro de maquinas y la fuerza de
ontrol para el
problema 4.4.
% p8opt2.m SOLUCION DEL PROBLEMA 4.5
lear all
% MODELO CONTINUO DE LA PLANTA
A=[-0.2 0 0 0
1 0 0 0
2 0 -2 0
5 0 0 -5;
B=[10e-3; 0; 0; 0; C=[0 1 0 0 ; D=[0;
% MODELO LINEAL DISCRETO
T = 0.2; % PERIODO DE MUESTREO
[G,H,C,D=
2dm(A,B,C,D,T,'zoh');
G1 = [G zeros(4,1);-C*G 1;
H1 = [H;-C*H;
% INGRESO DE PESOS
Q = [1 0 0 0 0
0 100 0 0 0
0 0 1 0 0
0 0 0 1 0
0 0 0 0 3;
R = [0.01;
% ECUACION DE RICCATI
%
%
%
%
%
197
P = diag(0,4);
for i = 1:40
P = Q + G1'*P*G1 - G1'*P*H1*inv(R+H1'*P*H1)*H1'*P*G1;
end
CALCULO DE LA MATRIZ DE GANANCIA KK
KK = inv(R+H1'*P*H1)*H1'*P*G1;
SEPARAMOS LA ACCION INTEGRAL
K = [KK(1) KK(2) KK(3) KK(4);
KI = -KK(5);
KK = dlqr(G1,H1,Q,R);
CALCULO DE LA MATRIZ DE OBSERVABILIDAD
No = [C' G'*C' (G')^2*C' (G')^3*C';
rankNo = rank(No); % sistema no es observable
SIMULACION
N = 200; x=[0;0;0;0; v=0; Y=0;
for k=1:N
r(k)=3*sign(sin(0.02*k)); Ref=r(k);
v = v + Ref - Y;
U = - K*x + KI*v;
if(U > 200)
U = 200;
elseif(U < -200)
U = -200;
end
x = G*x + H*U;
Y = C*x;
y(k) = Y; u(k) = U;
end
GRAFICOS
t=linspa
e(0,N*T,N);
subplot(2,1,1)
plot(t,y(1:N),t,r(1:N)), grid
ylabel('Posi
ion (m)')
xlabel('Tiempo en segundos')
subplot(2,1,2)
plot(t,u(1:N)), grid
xlabel('Tiempo en segundos')
ylabel('Voltaje de
ontrol')
print -deps -f p8opt2
Problema 4.6
La gura 2.2 muestra dos tanques identi
os
olo
ados en
as
ada. La se
ion
horizontal A=9 m2 de
ada tanque es
onstante. El objetivo de
ontrol es
Control Optimo
198
Posicin (m)
4
2
0
2
4
0
10
15
20
25
Tiempo en segundos
30
35
40
10
15
20
25
Tiempo en segundos
30
35
40
Voltaje de control
100
100
200
0
199
Problema 4.7
El pro eso ele trome ani o mostrado en la gura 3.26 se des ribe en el problema 3.8. Dise~nar un sistema de ontrol optimo uadrati o esta ionario
Control Optimo
200
4
Nivel (m)
3
2
1
0
0
10
15
20
25
Tiempo en segundos
30
35
40
10
15
20
25
Tiempo en segundos
30
35
40
1.5
0.5
0
0
201
Control Optimo
202
ylabel('Velo
idad (rad/s)')
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 p11opt2
Velocidad (rad/s)
10
5
0
5
10
0
10
15
20
Tiempo en segundos
25
30
10
15
20
Tiempo en segundos
25
30
Voltaje de control
40
20
0
20
40
60
0
Problemas Propuestos
Problema 4.8
Demostrar que el valor mnimo de la fun
ion de
osto des
rita en la e
ua
ion
4.11):
NX1
1
1
T
J = x (N )Sx(N ) +
xT (k)Qx(k) + uT (k)Ru(k)
2
2 k=0
203
1
2
donde los argumentos nulos representan el tiempo dis
reto nulo ini
ial.
Jmin = xT (0)P (0)x(0)
Problema 4.9
Las e
ua
iones del modelo linealizado para
ontrolar la posi
ion del
a~non
montado en la torreta de un tanque (ver gura 3.28) empleando un a
tuador
hidrauli
o se detallan en el problema 3.9.
(a) Dise~nar un sistema de
ontrol optimo esta
ionario para
ontrolar el
angulo de eleva
ion
on las espe
i
a
iones siguientes: tiempo de
estabiliza
ion menor de 2 s, sobreimpulso y error en estado esta
ionario
nulos. Los disturbios tipo es
alon 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
ion
del tiempo de muestreo es a
onvenien
ia del dise~no.
(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 muestra en la gura 3.29. Dise~nar un sistema de
ontrol optimo multivariable esta
ionario para
ontrolar las temperaturas residuales T1 =
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
dise~no.
Problema 4.11
La gura 3.31 muestra el pro
eso servomotor
on
arga no lineal des
rito
en la se
ion 3.3, en donde la
arga no lineal posee ahora dos grados de
libertad
on Lo = 2L1=3 y Mo=0.02 kg. La union de la
arga
on el eje
del servomotor no es
exible. Las e
ua
iones que des
riben la dinami
a
del sistema son materia del problema 3.12. Dise~nar un sistema de
ontrol
optimo esta
ionario para
ontrolar simultaneamente las posi
iones y
on
mnimo tiempo de estabiliza
ion y mnimo sobreimpulso.
204
Control Optimo
Problema 4.12
La gura 3.32 muestra el pro
eso pendulo doble no lineal, el
ual es una
extension del pendulo simple des
rito en la se
ion 3.1. El a
oplamiento entre los dos pendulos de igual longitud no es
exible. Las e
ua
iones
que des
riben la dinami
a del sistema son materia del problema propuesto
3.13. Dise~nar un sistema de
ontrol optimo no esta
ionario para
ontrolar
simultaneamente las posi
iones y
on mnimo tiempo de estabiliza
ion
y mnimo sobreimpulso, de modo tal que el pendulo doble permanez
a en
posi
ion verti
al.
Problema 4.13
La gura 3.33 muestra el pro
eso doble grua-puente no lineal, el
ual es una
extension del pro
eso grua-puente es
rito en la se
ion 3.2. El a
oplamiento
entre las dos se
iones iguales de la varilla no es
exible. Las e
ua
iones que
des
riben la dinami
a del sistema son materia del problema propuesto 3.14.
Considerar que la
arga esferi
a es de 0.02 kg. Dise~nar un sistema de
ontrol
optimo esta
ionario para
ontrolar simultaneamente las posi
iones y
on
mnimo tiempo de estabiliza
ion y mnimo sobreimpulso, de modo tal que
la grua-puente doble permanez
a en posi
ion verti
al
uando el
arro realiza
un re
orrido predeterminado..
Problema 4.14
Cap
tulo 5
Control Adaptivo
En este
aptulo se desarrolla un pro
edimiento para dise~nar un sistema de
ontrol adaptivo
on autosintoniza
ion,
on la
apa
idad de
ontrolar pro
esos no
lineales univariables (de una entrada y una salida) operando en la presen
ia
de
argas no lineales. Tales pro
esos pueden ser representados por e
ua
iones
diferen
iales no lineales, donde pre
isamente los terminos no lineales
ompli
an
los aspe
tos analti
os de modelado del pro
eso y de dise~no del
ontrolador.
Sin embargo, basado en el
orrespondiente modelo lineal del pro
eso, podemos
estru
turar un sistema de
ontrol adaptivo
on autosintoniza
ion
ombinando algoritmos lineales de
ontrol
on pro
edimiento para estimar en linea los
parametros y los estados del pro
eso.
En la antepenultima se
ion de este
aptulo se presenta una apli
a
ion
para demostrar la validez del pro
edimiento de dise~no:
ontrol de posi
ion de
un servomotor D.C. expuesto a
argas no lineales. La penultima se
ion, problemas resueltos, esta dedi
ada al dise~no de sistemas de
ontrol adaptivo
on
autosintoniza
ion para diferentes pro
esos. La ultima se
ion propone problemas de dise~no. Todos los ar
hivos
orrespondientes a los ejer
i
ios, problemas,
dise~nos, simula
iones y software desarrollados se pueden des
argar del sitio:
http:/ee.uni.edu.pe/728681F.
5.1
Introdu ion
Los sistemas de
ontrol adaptivo ajustan su
omportamiento a las
ambiantes propiedades del pro
eso
ontrolado y de las se~nales que intera
tuan
sobre di
ho pro
eso. Por el
ontrario, los sistemas de
ontrol jos se
ara
terizan por la presen
ia de una ley de
ontrol invariable
on el tiempo.
206
Control Adaptivo
ESTIMADOR
DE ESTADOS
ESTIMADOR DE
PARAMETROS
ESTIMACION
DE U
MODELO
LINEAL
+
CONTROLADOR CON
AUTOSINTONIZACION
+
u
PROCESO
NO LINEAL
DISTURBIOS
Figura 5.1: Congura
ion del sistema de
ontrol
on autosintoniza
ion.
El sistema de
ontrol
on autosintoniza
ion mostrado en la gura 5.1
opera
omo sigue: luego de
ada tiempo de muestreo, el ve
tor estimado
de parametros ^ se a
tualiza empleando los datos propor
ionados por la
entrada U del pro
eso y por la salida Y del mismo. Luego, los elementos
de ^ se usan para re
uperar el modelo lineal del pro
eso, lo
ual permite
estimar el ve
tor de estado del modelo del pro
eso x^ (empleando un ltro
de Kalman) y el valor de equilibrio U de la ley de
ontrol a
tual U . Tales
resultados se usan luego para
omputar la ley de
ontrol residual u y para
a
tualizar la ley de
ontrol a
tual U a partir de la rela
ion U = U + u.
Este
aptulo esta organizado
omo sigue. La se
ion 5.2 trata
on el
problema de modelar pro
esos no lineales usando modelos lineales. Pro
edimientos para estimar en lnea (\on-line") los parametros y estados del
207
modelo del pro
eso se desarrollan en la se
ion 5.3, mientras que el algoritmo del
ontrolador
on autosintoniza
ion se deriva en la se
ion 5.4. La
se
ion 5.5 presenta el pro
edimiento para dise~nar un sistema de
ontrol
on
autosintoniza
ion. Una apli
a
ion se propor
iona en la se
ion 5.6:
ontrol
de posi
ion de un servomotor sujeto a
argas no lineales.
5.2
(5.2)
donde A es la matriz de estado de dimension n n, B es la matriz de
ontrol
de dimension n 1, C es la matriz de salida de dimension 1 n, y A, B
y C son las
orrespondientes in
ertidumbres a
otadas
on dimensiones
apropiadas. Ademas, v(X; t) es un ve
tor no lineal de disturbios de orden
n a
tuando sobre los estados, w(X; t) es un disturbio no lineal de orden
uno a
tuando en la salida, e Y (t) es la salida del pro
eso de orden uno.
El pro
eso nominal no perturbado (o pro
eso
on
ertidumbre) se obtiene
jando en
ero todas las in
ertidumbres y todos los disturbios en la e
ua
ion
(5.1). Muestreando di
ho modelo nominal, podemos obtener la siguiente
representa
ion:
X(k + 1) = GX(k) + HU (k);
Y (k) = CX(k)
(5.3)
donde k es el tiempo dis
reto y las matri
es G y H poseen las mismas
dimensiones que las matri
es A y B , respe
tivamente. La
orrespondiente
e
ua
ion polinomial residual toma la forma:
A(z 1)y(z) = B(z 1)u(z)
(5.4)
208
Control Adaptivo
(5.5)
X y
(5.6)
(5.7)
(5.8)
Esta se
ion presenta los pro
edimientos para estimar (o identi
ar) en lnea
los parametros y los estados del modelo del pro
eso.
5.3.1 El Metodo de los Mnimos Cuadrados Re
ursivo
Para estimar los parametros del modelo del pro
eso usaremos las se~nales
a
tuales U (k) e Y (k) en lugar de sus desvia
iones u(k) e y(k). Para ello, la
des
rip
ion en el espa
io de estado dada por la e
ua
ion (5.7) tiene que ser
reordenada para tomar la forma siguiente:
Y (k) = T (k)^(k)
(5.9)
donde el ve
tor de informa
ion (o de medi
ion)
ontiene los valores presentes 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)
y el ve
tor ^
ontiene los parametros a ser estimados, a saber:
^(k) = [ a^1 (k) : : : a^n (k) ^b1 (k) : : : ^bn (k) C^T
(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
209
Estimar los parametros del pro
eso servomotor D.C.
on
arga no lineal
des
rito en la se
ion 3.3, empleando el metodo de los mnimos
uadrados
re
ursivo. Emplee el modelo lineal de segundo orden del pro
eso y
omo
se~nal ex
itadora use un es
alon de magnitud 0.4. Graque la respuesta del
pro
eso.
Solu
ion: El programa ejem5 1.m estima los parametros para el pro
eso
pedido. La gura 5.2 gra
a la respuesta Y del pro
eso a un es
alon U = 0.4.
Las guras 5.3 y 5.4 muestran los parametros estimados. Podemos observar
que
ada parametro estimado
onverge a un valor que es aproximadamente
el valor del
orrespondiente parametro del modelo dis
reto.
210
Control Adaptivo
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);
211
El algoritmo basi
o de los mnimos
uadrados re
ursivo se en
uentra bastante difundido. Sin embargo, di
ho algoritmo puede presentar problemas
poten
iales de
ara
ter numeri
o que podran afe
tar el dise~no nal del
ontrolador
on autosintoniza
ion. Por tal motivo, en este
aptulo se emplea
el metodo de los mnimos
uadrados re
ursivo mejorado propuesto en [5, el
ual puede implementarse en la forma siguiente:
212
Control Adaptivo
SEAL EXCITATRIZ U
0.4
0.3
0.2
0.1
0
0
100
200
300
400
500
600
700
MUESTRAS DISCRETAS k = 0.01 s
800
100
200
300
400
500
600
700
800
MUESTRAS (CADA MUESTRA EQUIVALE A 0.01 s)
900
1000
900
1000
2.5
2
1.5
1
0.5
0
0
Figura 5.2: Respuesta del modelo lineal del pro
eso a un es
alon de magnitud
U = 0.4.
1
PARAMETROS ESTIMADOS
0.5
0.5
1.5
2
0
100
200
300
400
500
600
700
800
MUESTRAS (CADA MUESTRA EQUIVALE A 0.01 s)
900
1000
213
0.045
0.04
PARAMETROS ESTIMADOS
0.035
0.03
0.025
0.02
0.015
0.01
0.005
0
0
100
200
300
400
500
600
700
800
MUESTRAS (CADA MUESTRA EQUIVALE A 0.01 s)
900
1000
214
Control Adaptivo
8) Computar:
"
jj
jj
Ejemplo 5.2
Estimar los parametros del pro
eso servomotor D.C.
on
arga no lineal
des
rito en la se
ion 3.3, empleando el metodo de los mnimos
uadrados
re
ursivo mejorado. Emplee el modelo no lineal de segundo orden del pro
eso y
omo se~nal ex
itadora use un es
alon de magnitud 0.4. Graque la
respuesta del pro
eso.
Solu
ion: El programa ejem5 2.m estima los parametros para el pro
eso
pedido. La gura 5.5 gra
a la respuesta Y del pro
eso a un es
alon U
= 0.4. Las guras 5.6 y 5.7 muestran los parametros estimados. Podemos
observar que
ada parametro estimado
onverge a un valor
onstante.
215
216
Control Adaptivo
% PROCEDIMIENTO DE IDENTIFICACION
psi_p = [Y(k-1) Y(k-2) U(k-1) U(k-2)';
psi = [Y(k-1) Y(k-2) U(k-1) U(k-2) 1';
nor = max(1,norm(psi));
psin = psi/nor;
Q =
hol(Pi');
S = inv(diag(Q*ones(N,1),0));
Ps = S*Pi*S;
psins = inv(S)*psin;
rt = 1 + psins'*Ps*psins;
LF = 1 - (rt-sqrt(rt^2-4*norm(Ps*psins)^2/tra
e(Ps)))/2;
e = Y(k)/nor - thetai'*psin;
div = psins'*Ps*psins + LF;
theta = thetai + e*inv(S)*Ps*psins/div;
ae1(r) = -theta(1);
% PARAMETRO a1 ESTIMADO
ae2(r) = -theta(2);
% PARAMETRO a2 ESTIMADO
be1(r) = theta(3);
% PARAMETRO b1 ESTIMADO
be2(r) = theta(4);
% PARAMETRO b2 ESTIMADO
Hns = Ps*psins/div;
Ps = Ps/LF - Hns*psins'*Ps/LF;
tt = abs(max(eig(Ps))/min(eig(Ps)) );
max = 100;
min = 15;
if tt <=
min,
thetai = theta; Pi = Ps;
elseif tt >=
max,
Qnew =
hol(Ps');
Snew = inv(diag(Qnew*ones(N,1),0));
Psnew = Snew*Ps*Snew;
Pi = Psnew; thetai = theta;
end
end
% GRAFICOS
q=0:Mm-1;
figure(1)
subplot(2,1,1)
plot(q,U(1:Mm))
ylabel('SE~NAL EXCITATRIZ U')
grid
subplot(2,1,2)
plot(q,Y(1:Mm))
ylabel('RESPUESTA Y DEL PROCESO')
xlabel('MUESTRAS (CADA MUESTRA EQUIVALE A 0.01 s)')
grid
217
SEAL EXCITATRIZ U
0.4
0.3
0.2
0.1
0
0
100
200
300
400
500
600
700
800
900
1000
100
200
300
400
500
600
700
800
MUESTRAS (CADA MUESTRA EQUIVALE A 0.01 s)
900
1000
0.15
0.1
0.05
0
0
Figura 5.5: Respuesta del pro eso no lineal a un es alon de valor U = 0.4.
218
Control Adaptivo
0.6
a2
PARAMETROS
ESTIMADOS
0.4
0.2
0.2
0.4
0.6
a1
0.8
0
100
200
300
400
500
600
700
800
MUESTRAS (CADA MUESTRA EQUIVALE A 0.01 s)
900
1000
14
x 10
12
PARAMETROS
ESTIMADOS
10
8
6
4
b1
2
0
2
b2
4
6
0
100
200
300
400
500
600
700
800
MUESTRAS (CADA MUESTRA EQUIVALE A 0.01 s)
900
1000
219
De la e
ua
ion (5.6) podemos obtener el siguiente modelo nominal perturbado del pro
eso:
x(k + 1) = Gx(k) + Hu(k) + v(k)
Y (k) = Cx(k) + w(k)
(5.13)
El pro
edimiento de estima
ion des
rito en la subse
ion anterior nos propor
iona el ve
tor de parametros estimado del pro
eso ^(k). Usando los
elementos de di
ho ve
tor de parametros, 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
ion:
x^(k) = x(k) + Ko (k)[y(k) C^ (k)x(k)
(5.14)
y e
ua
ion de a
tualiza
ion de estados:
x(k + 1) = G^ (k)x^(k) + H^ (k)u(k)
(5.15)
En la e
ua
ion (5.14), la matriz de ganan
ia Ko(k) se
al
ula de:
Ko (k) = Po (k)C T (k)[C^ (k)Po (k)C^ T (k) + Ro 1
(5.16)
donde Po (k) es la matriz denida positiva, solu
ion uni
a de la siguiente
e
ua
ion matri
ial dis
reta aso
iada de Ri
ati:
Po (k + 1) = Qo + G^ ( T )(k)Po (k)G^ (k) G^ T (k)Ko (k)C^ (k)Po (k)G^ (k) (5.17)
donde Qo y Ro son matri
es de
ovarianza denidas positivas
orrespondiente a los disturbios v y w, respe
tivamente.
5.4
La Ley de Control
1
X
k=0
(5.18)
220
Control Adaptivo
enton es:
k 1
X
i=0
[Y (i)
Y (i) =
k 1
X
i=0
[ y(i);
z (k + 1) =
k
X
i=0
[ y(i)
(5.21)
de modo que la representa
ion en el espa
io de estado del sistema aumentado
toma la forma siguiente:
xa (k + 1) = Ga xa (k) + H a u(k)
(5.22)
a
a
y(k) = C x (k)
(5.23)
donde el superndi
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
a
a
x (k) = z (k) ; G (k) =
C I
H a = H0
; C a = [C 0
(5.24)
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
1
X
k=0
(5.25)
221
222
Control Adaptivo
5.6
La gura 3.9 presenta la estru
tura del pro
eso no lineal a
ontrolar. La
tabla 3.2 des
ribe las variables y los valores de los parametros. Vimos en el
ejemplo 5.1 que el pro
eso no lineal puede ser des
rito mediante un modelo
lineal en el espa
io de estado de la forma:
x_ = A
x + B
u;
y = C
x
donde:
0
1
0
A
=
B
= KnK
;
C
= 1 0
2E
N
B
Kn
( M + MR )
MR
M
(5.29)
La fun
ion de transferen
ia de pulso Gp(z), para un tiempo de muestreo de
0.01 s (o lo que es lo mismo, una fre
uen
ia de muestreo de Fs = 100 Hz),
tiene la forma:
b1 z + b2
b1 z 1 + b2 z 2
y(z )
Gp (z ) =
=
=
(5.30)
u(z ) z 2 + a1 z + a2 1 + a1 z 1 + a2 z 2
y su
orrespondiente e
ua
ion de diferen
ias es:
y(k) = a1 y(k 1) a2 y(k 2) + b1 u(k 1) + b2 u(k 2)
(5.31)
a
t
223
Para estimar (o identi
ar) los parametros del modelo del pro
eso, empleamos el metodo de los mnimos
uadrados re
ursivo mejorado desarrollado en la subse
ion 5.3.2. Como primer paso
al
ulamos el ve
tor ini
ial de
parametros (e
ua
ion (5.5):
(0) =
a1 a2 b1 b2 C (0) T
donde el valor ini
ial de C (0) (e
ua
ion (5.8)
on U = 0 e Y igual a la se~nal
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
3
0 0 0 0
6 0 0 0 0 7
6
7
7
P =6
= 1000
(5.33)
6 0 0 0 0 7;
4 0 0 0 0 5
0 0 0 0
Como
uarto paso obtenemos nuevas medi
iones de Y (k) y de U (K ) (ver
e
ua
ion (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) a^2 (k) ^b1 (k) ^b2 (k) C^(k)T
Con los datos determinados hasta aqu, ahora podemos implementar los
otros pasos (ver ejemplo 5.2)
on Cmin = 15 y Cmax = 100.
224
Control Adaptivo
El pro
edimiento para la estima
ion de estados se des
ribe en la subse
ion
5.3.3. El pro
edimiento de estima
ion (subse
ion anterior) nos propor
iona
el ve
tor de parametros estimado del pro
eso, a saber:
^(k) = [ a^1 (k) a^2 (k) ^b1 (k) ^b2 (k) C^(k)T
Usando los elementos de di
ho ve
tor de parametros, podemos re
onstruir las
matri
es estimadas G^ (k), H^ (k) y C^ (k)
orrespondientes a la representa
ion
anoni
a
ontrolable (e
ua
ion (5.32)):
0
1 ; H^ (k) = 0
^G(k) =
a^2 (k) a^1 (k)
1
C^ (k) = ^b2 (k) ^b1 (k) ; D^ (k) = [0
Las e
ua
iones del ltro de Kalman para estimar el ve
tor de estado x^ son
(ver e
ua
iones (5.14), (5.15) y (5.16)):
x^(k) = x(k) + Ko (k)[y(k) C^ (k)x(k)
(5.34)
x(k + 1) = G^ (k)x^(k) + H^ (k)u(k)
(5.35)
Ko (k) = Po (k)C T (k)[C^ (k)Po (k)C^ T (k) + Re 1
(5.36)
Para
ada muestra dis
reta, el programa de simula
ion disadap.m (se
ion
5.6.7)
al
ula las matri
es Po (k) y Ko (k) empleando las matri
es de
ovarianza de los disturbios v y w, a saber, Qo = 0.01 y Ro = 0.04.
5.6.5 La Ley de Control
= 0 ;
C a = [C
225
Para el sistema de
ontrol a lazo
errado podemos tomar la se~nal Y (k) igual
a la referen
ia para todo k. As, podemos
al
ular la ley de
ontrol residual
empleando la rela
ion u(k) = U (k) U (k) (se
ion 5.4), donde U (k) se halla
en lnea a partir de la e
ua
ion (5.8),
omo sigue:
U (k) = [^b1 (k) + ^b2 (k) 1 [1 + a^1 (k) + a^2 (k)Y (k) C^(k)
Finalmente, a
tualizamos la ley de
ontrol a
tual: U (k) = u(k) + U (k).
5.6.7 Simula
ion del Sistema de Control Adaptivo
El siguiente programa disadap.m resume todos los pasos des
ritos anteriormente para simular el sistema de
ontrol adaptivo. Es importante re
al
ar
que los algoritmos de
ontrol lineal estan siendo apli
ados al modelo no
lineal del pro
eso,
on el n de darle mayor realismo al pro
eso de simula
ion. La simula
ion in
luye la estrategia para no saturar el ampli
ador,
pero no in
luye la
ompensa
ion de la no linealidad provo
ada por la fri
ion
de Coulomb debido a que no es ne
esario (
onforme a los resultados de la
simula
ion). El programa disadap.m es autoexpli
ativo.
% disadap.m SIMULACION DEL SISTEMA DE CONTROL DE POSICION
%
ADAPTIVO CON AUTOSINTONIZACION
lear all
% PARAMETROS DEL PROCESO NO LINEAL (TABLA 3.3)
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;
Ra = 7.38;
m = 0.06377;
Ka
t = 14.9;
= 0.25; Mo = 0.02; % 0.00, 0.01, 0.045;
226
K = 31.071e-3;
Control Adaptivo
n = 19.741;
L = 4.64e-3;
Lo = 0.776;
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 DEL PROCESO CONTINUO DE SEGUNDO ORDEN
A
= [0 1;-N/M -(B + n^2*K*E/Ra)/M; % (
: CONTINUO)
B
= [0;n*K*Ka
t/(Ra*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);
% G
,H
, C
, D
: REPRESENTACION CANONICA CONTROLABLE
a11 = 0; a12 =1; a21 = -a2; a22 = -a1;
b11 = b1; b21 =b2-a1*b1;
11 =1;
12 = 0;
G
= [a11 a12;a21 a22; H
= [b11;b21;
C
=[
11
12; D
= [0;
% REPRESENTACION POLINOMIAL
% A(z^(-1)) = 1 + a1*z^(-1) + a2*z^(-1);
% B(z^(-1)) =
b1*z^(-1) + b2*z^(-1);
% A(z^(-1))*Y(k) = B(z^(-1))*U(k) + Ce; % CASO AUMENTADO
% en el estado esta
ionario: z = 1:
% (1 + a1 + a2)*Yo = (b1 + b2)*Uo + Ce
% CONDICIONES INICIALES
Y(1) = 0; Y(2) = 0; Y(3) = 0; % SALIDA ACTUAL
y(1) = 0; y(2) = 0;
% SALIDA RESIDUAL
U(1) = 0; U(2) = 0; U(3) = 0; % SE~NAL DE CONTROL ACTUAL
u(1) = 0; u(2) = 0;
% SE~NAL DE CONTROL RESIDUAL
xmenos = zeros(2,1);
% VECTOR DE OBSERVACION INICIAL
z=0;
% ACCION INTEGRAL INICIAL
X1 = 0; X2 = 0;
% ESTADOS ACTUALES
% CONDICIONES INICIALES DE LOS PARAMETROS
Ref = 1;
% MAGNITUD DE LA SE~NAL DE REFERENCIA
fre
= 0.007; % FRECUENCIA DE LA SE~NAL DE REFERENCIA
Ce = (1 + a1 + a2)*Ref;
% VALOR INICIAL DE Ce
thi = [-a1 -a2 b1 b2 Ce';
% VECTOR INICIAL DE PARAMETROS
alfa=1000; Pi = alfa*eye(5); % MATRIZ DE COVARIANZA INICIAL
lamb=0.98; lamb0 = 0.99;
% FACTOR DE MEMORIA
max = 100;
min = 10;
% UMBRALES DE ESTIMACION
227
228
Control Adaptivo
229
Posicin Y (rad)
2
1
0
1
2
0
10
12
14
16
18
20
14
16
18
20
2
1
0
1
2
0
8
10
12
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.
5.6.8 Implementa
ion del Hardware
El sistema de
ontrol de posi
ion
onsta de un servomotor D.C.
on me
anismo de redu
ion, una varilla a
oplada al eje del servomotor (la
arga no
lineal) perpendi
ular al eje de giro del servomotor, una etapa de poten
ia (el
ampli
ador PWM) y un sensor de posi
ion
onformado por un
odi
ador
opti
o (a
oplado al eje del motor), un de
odi
ador de
uadratura y un
ontador de 16 bits. El hardware tambien in
luye una PC Pentium y una tarjeta
de adquisi
ion de datos Lab-PC+. A la
arga no lineal (la varilla metali
a)
se le pueden a
oplar
argas adi
ionales. El esquema de implementa
ion se
ilustra en la gura 5.9 mientras que el pro
eso (el servomotor
on
arga no
lineal) se ilustra en la gura 5.10.
El A
tuador
230
Control Adaptivo
COMPUTADORA
PERSONAL
ETAPA DE POTENCIA
TARJETA LAB-PC+
SALIDAS
ANALOGICAS
DAC0
DAC1
PA
COMPUERTAS
DIGITALES
DE ENTRADA
Y SALIDA
Generador
PWM
Amplificador
de potencia
Sensor (encoder)
PA0
..
.
PA7
MUX
PB
PC
PB0
..
.
PB7
PC1
..
.
PC7
PC0
16 bits
Decodificador
de cuadratura
y contador
UP / DOWN
Varilla
Fs
CONTADOR /
OUTB0
TEMPORIZADOR
SERVOMOTOR
DC
Carga
Adicional
Figura 5.9: Esquema de implementa ion del sistema de ontrol de posi ion.
231
Codificador optico
Reductor de
velocidad
Alimentacion
1
0
0
1
0
1
0
1
0
1
0
1
0
1
Servomotor DC
Eje de salida
Varilla
Adaptador de carga
Carga
adicional
1
0
0
1
0
1
Figura 5.10: Pro
eso servomotor D.C.
on
arga no lineal y
odi
ador
opti
o in
orporado.
velo
idad, es ne
esario usar un sistema que nos permita variar la velo
idad
del servomotor (entre un m'inimo y un maximo) as
omo tambien el sentido
de su rota
ion. Di
ho sistema
omprende un generador PWM LM3524 y un
ir
uito de poten
ia (ver gura 5.11). Tal sistema nos permite variar la
velo
idad de a
uerdo al an
ho de pulso de la se~nal PWM. El
ir
uito PWM
LM3524 genera se~nales moduladas por an
ho de pulso de 15.4 KHz, las
uales son luego ampli
adas por el
ir
uito de poten
ia, generandose una
tension de alimenta
ion
uyos lmites son 25 volt. El
ir
uito de poten
ia
esta
onformado por un sistema de disparo y dos pares de
onmutadores A
y B, tal
omo se muestra en la gura 5.12.
El sistema de disparo permite la
onmuta
ion de
ada par
onmutador
(A o B), de forma tal que no se produz
an
orto
ir
uitos durante la
onmuta
ion. Cuando el sistema de disparo
ierra el
onmutador A y abre el B,
el sentido de la
orriente sigue la lnea punteada, indu
iendo de esta forma
una tension +V
en el servomotor. Ahora, si el sistema de disparo abre el
232
Control Adaptivo
Ca
Viene de la
salida A0
de la LAB-PC+
Amplificador
de potencia
Ra
Rc
Salida A
PWM
Salida B
Al servomotor DC
Generador
PWM
Cp
Rp
Vcc
~
SENAL PWM
SISTEMA
A1
B1
SERVOMOTOR
DE
DC
DISPARO
B2
A2
Par conmutador A = A1 + A2
Par conmutador B = B1 + B2
onmutador A y
ierra el B, el sentido de la
orriente sigue la lnea segmentada, indu
iendo as una tension -V
en el servomotor. Esto signi
a que el
motor re
ibe en sus bornes una tension de onda
uadrada,
uyo valor vara
entre V
,
on un
onsumo de
orriente que depende de los
onmutadores
onformados por transistores MOSFET.
233
El sensor de posi
ion esta
onformado por un
odi
ador opti
o rotatorio (interno al motor), un de
odi
ador de
uadratura y un
ontador UP/DOWN.
El
odi
ador opti
o rotatorio
onsiste en:
Una fuente de luz que puede ser un LED infrarrojo o laser.
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 se~nal digital que puede ser fa
ilmente interpretada
por el
ontrolador de movimiento del sistema.
Un sensor de luz; usualmente es un fototransistor o un fotodiodo.
Un
onformador de pulsos que
onvierte la se~nal sinusoidal proveniente
de la salida del fotodete
tor en se~nal de onda
uadrada.
El esquema basi
o del
odi
ador opti
o se muestra en la gura 5.13. El
Canal A
Canal B
Fuente de luz
Transistor
optico
Eje del servomotor
Disco con
mascara
234
Control Adaptivo
8 bits
4 bits
4 bits
Puerto
digital
PB
Clock UP
74HC Clock Down
193
Canal A
74HC
193
74HC
193
LS7083
Canal B
8 bits
4 bits
74HC
193
235
El software de
ontrol debe implementar las e
ua
iones del sistema en tiempo real, in
luyendo la solu
ion de las e
ua
iones de Ri
ati para
al
ular
las ganan
ias del
ontrolador y del observador. Ya que la simula
ion del
sistema no in
luye estos tipos de
al
ulo, es ne
esario expli
ar su
intamente
las e
ua
iones involu
radas en el sistema de
ontrol adaptivo a ser implementado en tiempo real. El modelo lineal
ontinuo del pro
eso se obtiene
de la e
ua
ion (5.29):
nK K
nK K
M + (B + a
t )_ + N = a
t
R
R
+ 3:626 + _ + 17:4604 = 89:09
236
Control Adaptivo
Ga ! GT ; H a ! C T ; Qa ! Qo ; R ! Ro ; P a ! Po
en las formulas de K a y Pka+1 del
ontrolador optimo. De esta forma resolvemos la e
ua
ion de Ri
ati para Po (
omo en el
aso del
ontrolador)
para luego poder
al
ular Ko . Los parametros de optimiza
ion usados para
el observador optimo (ltro de Kalman) son: Qo =0.01 y Ro=0.04, mientras
que para el algoritmo de estima
ion son: P = 1000I5 (matriz de
ovarianza
ini
ial, e
ua
ion (5.33)), Cmin = 15, y Cmax = 100.
237
Los programas ne
esarios para la implementa
ion en tiempo real del sistema
de
ontrol adaptivo dise~nado se estru
turan en tres ar
hivos de
odigo fuente,
los
uales son:
1. Ar
hivo R1LLIB.H, que es un ar
hivo de de
lara
iones de fun
iones
denidas en el ar
hivo R1LLIB.CPP. Estas fun
iones permiten fa
ilitar
el manejo de la tarjeta de adquisi
ion de datos Lab-PC+.
2. Ar
hivo R1LLIB.CPP, que tambien es un ar
hivo de deni
iones de
fun
iones de
laradas en R1LLIB.H para fa
ilitar el manejo de la tarjeta
de adquisi
ion de datos Lab-PC+. Este ar
hivo emplea la librera de
fun
iones NI-DAQ [25 y llama a la fun
ion CongurarHardware para,
pre
isamente,
ongurar el hardware empleado.
3. Ar
hivo CON122.CPP: Constituye el software de
ontrol.
Ensamblaje del Software de Control
Ini
ializa_Sistema();
Mide_Variables(&y,&r,&vel,t);
Estima_Parametros(Th,y,u);
En
uentra_Control(r,&u);
u=Apli
a_Control(u,vel);
La
ompila
ion de ar
hivos para ha
erlos eje
utables se realiza en Borland C/CPP mediante un proye
to que involu
re todos los ar
hivos, en nuestro
aso, los ar
hivos R1LLIB.H, R1LLIB.CPP y CON122.CPP.
Una pre
au
ion a
onsiderar es la de espe
i
ar que la
ompila
ion se
eje
ute
on el modelo de memoria \Large". Otra pre
au
ion es asegurarse
que al ini
io y al nal de la eje
u
ion de los programas, el servomotor debe
estar parado, lo que se logra enviando la se~nal oset de 2.3 voltios.
Los Programas Fuente Comentados
/*R1LLIB.H
*Ar
hivo de de
lara
ion de fun
iones definidas en R1LLIB.CPP
*Estas fun
iones permiten fa
ilitar el manejo de la tarjeta
*de adquisi
ion de datos Lab-PC+: Digital Input (16 bits),
238
Control Adaptivo
239
240
Control Adaptivo
241
242
Control Adaptivo
Td= 1./Fs;
C
= 0.;
t = 0.;
tsimul= 100.;
G[0[0 = 0.; G[0[1= 1.;
H[0 = 0.; C[0 = b2;
G[1[0 =-a2; G[1[1=-a1;
H[1 = 1.; C[1 = b1;
Ge[0[0= 0.;Ge[0[1= 1.; Ge[0[2=0.; He[0= 0.; Ce[0= b2;
Ge[1[0=-a2;Ge[1[1=-a1; Ge[1[2=0.; He[1= 1.; Ce[1= b1;
Ge[2[0=-b2;Ge[2[1=-b1; Ge[2[2=1.; He[2= 0.; Ce[2= 0.;
P[0[0= 0.;P[0[1= 0.;P[0[2= 0.;
P[1[0= 0.;P[1[1= 0.;P[1[2= 0.;
P[2[0= 0.;P[2[1= 0.;P[2[2= 0.;
Q[0[0= .1;Q[0[1= 0.;Q[0[2= 0.;
Q[1[0= 0.;Q[1[1= .1;Q[1[2= 0.;
Q[2[0= 0.;Q[2[1= 0.;Q[2[2= .1;
R
=.05;
Pb[0[0=0.;Pb[0[1=0.;Qb[0[0=.01;Qb[0[1=0.;
Pb[1[0=0.;Pb[1[1=0.;Qb[1[0=0.;Qb[1[1=.01;
Rb
=.04;
y=0.; x[0=0.; x[1= 0.; z=0.; y=0.; u=0.; TOL= 1.e-3;
Cmax= 100.;
Cmin= 15.;
ym1 = ym2 = um1 = um2 = 0.;
Thk[0 = Th[0 = -a1; Pk[0[0 = 1000.;
Thk[1 = Th[1 = -a2; Pk[1[1 = 1000.;
Thk[2 = Th[2 = b1; Pk[2[2 = 1000.;
Thk[3 = Th[3 = b2; Pk[3[3 = 1000.;
Thk[4 = Th[4 = C
; Pk[4[4 = 1000.;
Pk[0[1 = Pk[0[2 = Pk[0[3 = Pk[0[4 = 0.;
Pk[1[0 = Pk[1[2 = Pk[1[3 = Pk[1[4 = 0.;
Pk[2[0 = Pk[2[1 = Pk[2[3 = Pk[2[4 = 0.;
Pk[3[0 = Pk[3[1 = Pk[3[2 = Pk[3[4 = 0.;
Pk[4[0 = Pk[4[1 = Pk[4[2 = Pk[4[3 = 0.;
ConfigurarHardware(0x272, 0x270, 0x271, 0x264, Fs);
EnviarVoltage(Ofst);
p0 = LeerPosi
ion();
}
/*Midiendo posi
ion, velo
idad y referen
ia. Estimando
estado a
tual empleando observador optimo
uadrati
o */
void Mide_Variables(float *yk, float *r, float *vel, float t)
{
int i, j, k, n=2, niter;
double delta;
/*En primer lugar, la
onsigna: r= r(t)*/
if(t<20. || (40.<=t && t<60.) || (80.<=t && t<100.)) *r= LOW_r;
243
244
Control Adaptivo
245
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++)
{
247
248
Control Adaptivo
249
250
{
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 */
Control Adaptivo
251
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);
}
Los resultados experimentales mostrados en las guras 5.15 y 5.16 demuestran la validez del pro
edimiento de dise~no sugerido. Di
hos resultados se
obtuvieron para una se~nal de referen
ia es
alon
ambiante de =3 a =2.
Dos
asos extremos fueron tomados en
onsidera
ion: el
ontrol
on ausen
ia de
arga (gura 5.15) y el
ontrol
on
arga no lineal (gura 5.16). En
ambos
asos, el
ontrolador adaptivo es
apaz de
ontrolar la posi
ion del
eje del servomotor a pesar de la presen
ia simultanea de la
arga no lineal
y de las no linealidades inherentes (las fri
iones estati
a y de Coulomb, y
la satura
ion del servomotor).
Los experimentos se realizaron
on los siguientes parametros de optimiza
ion. Para el estimador de estado se sele
iono Qo = 0:01 y Ro = 0:04
(e
ua
iones (5.16) y (5.17)) y para la ley de
ontrol optima se eligio R = 0:05
253
y Qa = 0:1I3 (e
ua
ion (5.27)), donde I3 es la matriz identidad de dimension tres. El tiempo de muestreo, su
ientemente grande
omo para poder
efe
tuar todo el
omputo requerido por muestra, fue de Ts=0.01 s.
Posicin (radianes)
2
1.5
1
0.5
0
0
10
20
30
40
50
60
Tiempo en segundos
70
80
90
100
10
20
30
40
50
60
Tiempo en segundos
70
80
90
100
1.5
1
0.5
0
0.5
1
0
Figura 5.15: Control adaptivo de la posi
ion del servomotor. Primer
aso:
servomotor no a
iona
arga alguna.
5.7
Problemas Resueltos
El problema 3.1 presenta las e
ua
iones que gobiernan la dinami
a del sistema de suspension de un bus (ver gura 3.12). Dise~nar un sistema de
ontrol adaptivo
on autosintoniza
ion para lograr el objetivo de
ontrol siguiente: 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
Posicin (radianes)
2.5
2
1.5
1
0.5
0
0
10
20
30
40
50
60
Tiempo en segundos
70
80
90
100
10
20
30
40
50
60
Tiempo en segundos
70
80
90
100
1.5
1
0.5
0
0.5
1
0
Figura 5.16: Control adaptivo de la posi
ion del servomotor. Segundo
aso:
servomotor a
iona la
arga no lineal.
originadas por un disturbio es
alon de 10
m (provo
adas por imperfe
iones
en la pista), pra
ti
amente deben desapare
er.
Solu
ion: Ver programa p3adap1.m. Este es un problema de re
hazo a
los disturbios. Es interesante anotar que el
ara
ter adaptivo del sistema de
ontrol dise~nado, permite que las espe
i
a
iones de re
hazo del disturbio se
mantengan a pesar de que vare la masa del bus. Supongamos que la masa
del bus sin pasajeros es m1 = 2500 kg y lleno
ambia a 3500 kg. Eje
ute el
programa p3adap1.m
on este nuevo dato y vera que el objetivo de
ontrol
pra
ti
amente se sigue
umpliendo.
% p3adap1.m SOLUCION DEL PROBLEMA 5.1
lear all
% PARAMETROS DEL PROCESO
m1 = 2500; k1 = 80000; b1 = 350;
m2 = 320; k2 = 500000; b2 = 15020;
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
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 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) ...
255
256
Control Adaptivo
257
F = dlqe(GE,FE,CE,Sigma,Xi);
xmas = xmenos + F*(y(t1+4) - 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); % e
(22) y e
. (23)
Ha = [HE;zeros(r,r);
Ca = [CE zeros(r,r);
Ka = dlqr(Ga,Ha,Qa,R);
% CALCULO DE LA LEY DE CONTROL RESIDUAL
u(t1+4) = - Ka*[xmas;z;% -Kw*w(t1+4);
% ACTUALIZACION DE ESTADOS
xmenos = GE*xmas + HE*u(t1+4);
AE = 1 + ae1 + ae2 + ae3 + ae4; BE = be1 + be2 + be3 + be4;
Uin = inv(BE)*(AE*W(t1+4) - Ce);
% CALCULO DE LA SE~NAL ACTUAL DE CONTROL U
U(t1+4) = u(t1+4) + Uin;
end % ********** FIN DEL LAZO DE CONTROL
% GRAFICOS
ejex = linspa
e(0,MM*T,MM);
subplot(2,1,1)
plot(ejex,W(6:MM+5),ejex,Y(6:MM+5)); grid
ylabel('Salida y = x1-x2 (m)')
xlabel('Tiempo en segundos')
subplot(2,1,2), grid
plot(ejex,U(6:MM+5)); grid
xlabel('Tiempo en segundos')
ylabel('Fuerza de
ontrol (N)')
print -deps -f p3adap1
Problema 5.2
El problema 3.2 des
ribe las e
ua
iones que gobiernan la dinami
a longitudinal de un avion
omer
ial volando a velo
idad de
ru
ero (altura y velo
idad
onstantes). El
ontrol del angulo de in
lina
ion del avion (ver gura 3.14)
es un problema longitudinal a resolver. El objetivo de
ontrol enton
es es
dise~nar un autopiloto que manipulando el angulo e del de
e
tor de eleva
ion,
ontrole el angulo de in
lina
ion del avion.
Se pide dise~nar un sistema de
ontrol adaptivo que genere una fuerza
de
ontrol, de modo que la salida del pro
eso (el angulo de in
lina
ion )
presente un sobreimpulso menor al 10 % y un tiempo de estabiliza
ion menor
que 10 s,
on un error en estado estable nulo. Por ejemplo, si la entrada de
258
Control Adaptivo
Salida y = x1x2 (m)
0.01
0.005
0
0.005
0.01
0
10
20
30
40
50
60
Tiempo en segundos
70
80
90
100
10
20
30
40
50
60
Tiempo en segundos
70
80
90
100
20
40
60
80
0
x2
259
260
%
%
%
%
Control Adaptivo
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
261
xlabel('Tiempo en seg')
ylabel('Angulo del defle
tor (rad)')
print -deps -f p4adap1
Inclinacin (rad)
0.4
0.2
0
0.2
0.4
0
20
40
60
80
100
120
140
160
180
200
20
40
60
80
100
120
Tiempo en seg
140
160
180
200
1
0.5
0
0.5
1
0
Figura 5.18: A ngulo de in
lina
ion y se~nal de
ontrol (angulo del de
e
tor)
orrespondientes al problema 5.2.
Problema 5.3
La gura 3.20 muestra un monorriel de dos
arros des
rito en el problema 3.5. El problema a resolver es el
ontrol de velo
idad del
arro de
maquinas mediante un sistema de
ontrol adaptivo
on autosintoniza
ion.
Para garantizar a los pasajeros un viaje
onfortable, los
ambios de velo
idad deben realizarse
on un tiempo de estabiliza
ion menor que 15 s y
on
mnimo sobreimpulso. El error en estado estable debe ser nulo. Simule una
se~nal de referen
ia que
ambie la velo
idad de 30 a 20 m/s y demuestre
que se
umplen las espe
i
a
iones de dise~no. Luego enfrente el problema
de seguimiento. Mostrar que la velo
idad de la maquina puede seguir una
traye
toria predeterminada de velo
idades. El programa p7adap1b.m trata
el
aso de referen
ia arbitraria. Revise tal programa si desea ver detalles al
respe
to.
262
Control Adaptivo
%
%
%
263
264
Control Adaptivo
%
%
%
%
ae12
ae22
ae32
ae42
ae52
ae62
ae13
ae23
ae33
ae43
ae53
ae63
ae14
ae24
ae34
ae44
ae54
ae64
ae15
ae25
ae35
ae45
ae55
ae65
ae16
ae26
ae36
ae46
ae56
ae66;
265
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
30
20
10
0
0
50
100
150
200
Tiempo en segundos
250
300
50
100
150
200
Tiempo en segundos
250
300
Voltaje de control u
30
20
10
0
10
0
Figura 5.19: Velo
idad del
arro de maquinas y la fuerza de
ontrol para el
problema 5.3.
Problema 5.4
266
Control Adaptivo
Y1: Velocidad (m/s)
40
30
20
10
0
0
50
100
150
200
Tiempo en segundos
250
300
50
100
150
200
Tiempo en segundos
250
300
Voltaje de control u
30
20
10
0
10
0
Figura 5.20: Velo
idad del
arro de maquinas y la fuerza de
ontrol para el
problema 5.3. La referen
ia es arbitraria.
lear all
% PARAMETROS GENERALES
nn = 4; r=1; % nn: orden del pro
eso; r: NUMERO DE SALIDAS
NN = 9; % ORDEN DEL VECTOR ESATIMADO DE PARAMETROS
%
max = 100;
min = 15; % PARA EL ESTIMADOR DE PARAMETROS
% PARAMETROS PARA OPTIMIZAR GANANCIA DEL FILTRO DE KALMAN
Xi = 0.001; Sigma = 400;
% PARAMETROS DE OPTIMIZACION DEL CONTROLADOR Ke
R = 1; Qa = 1*eye(r+nn,r+nn);
% MODELO LINEAL DEL PROCESO EN TIEMPO CONTINUO
A
= [-0.2 0 0 0;1 0 0 0;2 0 -2 0;5 0 0 -5;
B
= [0.001;0;0;0;
C
= [0 1 0 0; D
= [0;
T = 0.8; % PERIODO DE MUESTREO
% MODELO LINEAL DISCRETO
[G,H,C,D=
2dm(A
,B
,C
,D
,T,'zoh');
[num,den=ss2tf(G,H,C,D);
a1 = den(2); a2 = den(3); a3=den(4); a4=den(5);
b1 = num(2); b2 = num(3); b3=num(4); b4=num(5);
% CONDICIONES INICIALES
Ref = 1; % MAGNITUD DE LA SE~NAL DE REFERENCIA: Yo = Ref
%
%
%
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
267
268
Control Adaptivo
269
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
Posicin (m)
8
6
4
2
0
0
100
200
300
400
500
Tiempo en segundos
600
700
800
100
200
300
400
500
Tiempo en segundos
600
700
800
Voltaje de control
200
100
0
100
200
0
Figura 5.21: Posi
ion del as
ensor y la fuerza de
ontrol (problema 5.4).
Problema 5.5
La gura 2.2 muestra dos tanques identi
os
olo
ados en
as
ada. La se
ion
horizontal A=9 m2 de
ada tanque es
onstante. El objetivo de
ontrol es
ontrolar la altura H2 empleando el
ujo Qo. La dedu
ion del modelo
linealizado del pro
eso se des
ribe en el ejemplo 2.1. Dise~nar un
ontrolador
adaptivo
on autosintoniza
ion que
umpla los siguientes requerimientos:
tiempo de estabiliza
ion menor que 15 s, sobreimpulso menor al 5 % y
error en estado estable nulo. Estas
ondi
iones de dise~no deben mantenerse
uando se
ambie la referen
ia (por ejemplo de 3 a 1 m). Adem
as, el
ujo
de entrada (la se~nal de
ontrol) no debe sobrepasar los 3 m3/s.
% p9adap1.m SOLUCION DEL PROBLEMA 5.5
lear all
% PARAMETROS GENERALES
270
%
%
%
%
%
%
%
Control Adaptivo
271
272
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 problema 3.8. Dise~nar un sistema de
ontrol adaptivo
on autosintoniza
ion
para
ontrolar la velo
idad angular del eje del motor mediante el voltaje
de entrada que puede variar entre 100 voltios. La se~nal de referen
ia es
arbitraria (problema de seguimiento).
% p11adap1.m SOLUCION DEL PROBLEMA 5.6
lear all
% PARAMETROS GENERALES
273
Nivel en metros
3
2.5
2
1.5
1
0
20
40
60
80
100
Tiempo en segundos
120
140
160
20
40
60
80
100
Tiempo en segundos
120
140
160
4
2
0
2
4
0
274
Control Adaptivo
%
%
%
%
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
275
276
Control Adaptivo
Velocidad (rad/s)
8
6
4
2
0
2
0
10
20
30
10
20
30
40
50
60
70
80
40
50
Tiempo en seg
60
70
80
Voltaje de control
40
20
0
20
40
0
277
278
Control Adaptivo
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
279
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+4) = - Ka*[xmas;z; % e
. (27)
% ACTUALIZANDO ESTADOS
xmenos = GE*xmas + HE*u(t+4); % e
. (15)
AE = 1 + ae1 + ae2 + ae3 + ae4; BE = be1 + be2 + be3 + be4;
Uin = inv(BE)*(AE*Yo(t+4) - Ce);
% CALCULO DE LA SE~NAL DE CONTROL U(t)
U(t+4) = u(t+4) + Uin;
end
end % FIN DEL LAZO DE CONTROL *************************
% GRAFICOS
ejex = linspa
e(0,MM*T,MM);
subplot(2,1,1)
plot(ejex,Yo(3:MM+2),ejex,Y(3:MM+2)), grid
ylabel('Posi
ion (m)')
subplot(2,1,2)
plot(ejex,U(3:MM+2)), grid
xlabel('Tiempo en seg')
ylabel('Voltaje de
ontrol')
print -deps -f p5adap1
5.8
Problemas Propuestos
Problema 5.8
280
Control Adaptivo
1
Posicin (m)
0.8
0.6
0.4
0.2
0
0
50
100
150
200
250
50
100
150
Tiempo en seg
200
250
Voltaje de control
10
5
0
5
10
15
0
Figura 5.24: Posi
ion de la bola y el voltaje de
ontrol para el problema 5.7.
del modelado del pro
eso, el tiempo muerto puede ser des
rito mediante la
aproxima
ion de Pade de ter
er orden (ver ejemplo ??):
num(s) 1 Tt s=2 + (Tt s)2 =10 (Tt s)3 =120
e Ts
=
den(s) 1 + Tt s=2 + (Tt s)2 =10 + (Tt s)3 =120
Espe
i
a
iones de dise~no: tiempo de estabiliza
ion menor que 40 s, error
en estado esta
ionario nulo y por
entaje de sobreimpulso menor al 5 %.
Problema 5.9
Las e
ua
iones del modelo linealizado para
ontrolar la posi
ion del
a~non
montado en la torreta de un tanque (gura 3.28), empleando un a
tuador
hidrauli
o se detallan en el problema 3.9.
(a) Dise~nar un sistema de
ontrol adaptivo
on autosintoniza
ion para
ontrolar el angulo de eleva
ion
on las espe
i
a
iones siguientes:
tiempo de estabiliza
ion menor que 5 s, mnimo sobreimpulso en la
respuesta y error de estado esta
ionario nulo. Los disturbios tipo es
alon pueden a
tuar simultaneamente o no, y pueden ser positivos o
negativos. Para
ada
aso, el sistema de
ontrol dise~nado debe ser
apaz de minimizar sus efe
tos.
281
(b) Lo mismo que (a), pero en este
aso para
ontrolar el angulo azimutal.
Problema 5.10
La gura 3.31 muestra el pro
eso servomotor
on
arga no lineal des
rito en
la se
ion 3.3, en donde la
arga no lineal posee ahora dos grados de libertad
on Lo = 2L1=3 y Mo =0.02 kg. La union de la
arga
on el eje del servomotor
no es
exible. Las e
ua
iones que des
riben la dinami
a del sistema son
materia del problema 3.12. Dise~nar un sistema de
ontrol adaptivo
on
autosintoniza
ion para
ontrolar simultaneamente las posi
iones y
on
mnimo tiempo de estabiliza
ion y mnimo sobreimpulso en la respuesta.
Problema 5.11
La gura 3.32 muestra el pro
eso pendulo doble no lineal que es una extension del pendulo simple des
rito en la se
ion 3.1. El a
oplamiento entre los
dos pendulos de igual longitud no es
exible. Las e
ua
iones que des
riben la
dinami
a del sistema son materia del problema propuesto 3.13. Considerar
que la
arga esferi
a es de 0.02 kg. Dise~nar un sistema de
ontrol adaptivo
on autosintoniza
ion para
ontrolar simultaneamente las posi
iones y
on mnimo tiempo de estabiliza
ion y mnimo sobreimpulso en la salida, de
modo tal que el pendulo doble permanez
a en posi
ion verti
al.
Problema 5.12
La gura 3.33 muestra el pro
eso doble grua puente no lineal que es una extension del pro
eso grua-puente des
rito en la se
ion 3.2. El a
oplamiento
entre las dos se
iones iguales de la varilla no es
exible. Para poder determinar un modelo no lineal dinami
o para este pro
eso,
onviene emplear las
e
ua
iones de Lagrange de la me
ani
a
lasi
a (ver problema 3.14). Considerar que la
arga esferi
a es de 0.02 kg. Dise~nar un sistema de
ontrol adaptivo
on autosintoniza
ion para
ontrolar simultaneamente las posi
iones y
on mnimo tiempo de estabiliza
ion y mnimo sobreimpulso, de modo tal
que la doble grua-puente permanez
a en posi
ion verti
al
uando el
arro
realiza un re
orrido predeterminado.
Problema 5.13
282
Control Adaptivo
se despre
ia la iner
ia de las ruedas y se asume que la fuerza de fri
ion bv,
donde b= 50 N-s/m es el
oe
iente de fri
ion, es lo uni
o que se opone
al movimiento del
arro, enton
es la dinami
a del pro
eso puede modelarse
omo (ver ejemplo 1.16):
mv_ (t) + bv(t) = u(t);
v_ =
dv
dt
Dise~nar un sistema de
ontrol adaptivo
on autosintoniza
ion para
ontrolar la velo
idad del movil
on mnimo tiempo de estabiliza
ion y mnimo
sobreimpulso en la salida. La se~nal de referen
ia puede ser arbitraria (problema de seguimiento).
Problema 5.14
Cap
tulo 6
6.1
El Control Predi
tivo Basado en Modelos [7, [8 es una metodologa de
ontrol que usa el modelo del pro
eso para
al
ular y optimizar las predi
iones
de las a
iones de
ontrol y de la salida
ontrolada. Esta metodologa se ha
desarrollado alrededor de
iertos prin
ipios, dos de los
uales son:
Empleo de un modelo del pro
eso para pronosti
ar su salida a
ontrolar
en instantes de tiempo futuro.
Cal
ulo de una a
ion de
ontrol optima basada en la minimiza
ion
de fun
iones de
osto, posiblemente in
luyendo restri
iones en las
variables del pro
eso.
284
285
Con rela
ion a la gura 6.1, el prin
ipio del
ontrol predi
tivo se
ara
teriza por la siguiente estrategia:
Politica de control pasada
Trayectoria
deseada
1
2
Salida pasada
del proceso
Pasado
Tiempo
Muerto
1 2
Momento presente t
Futuro
N2
un horizonte k = 1 : : : N2. Los valores pronosti
ados se denotan
omo y(t + k=t) y a N2 se le denomina el horizonte de predi
ion. La
predi
ion se realiza mediante el modelo del pro
eso, el
ual se asume
que esta disponible. El pronosti
o en
uestion depende de las entradas y salidas pasadas, pero tambien del es
enario del
ontrol futuro
u(t + k=t), k = 0; : : : ; N2 1; es de
ir, de las a
iones de
ontrol que
se intentan apli
ar a partir del tiempo t.
286
minimizar una fun
ion de
osto espe
a que depende del error del
ontrol predi
tivo r(t + k=t) y(t + k=t), k = 1; : : : ; N2 .
Al pro eso real solo se le apli a el primer elemento del ve tor de ontrol
La estrategia del
ontrol predi
tivo
omprende: el pro
eso de predi
ion
a traves de un modelo del pro
eso, la espe
i
a
ion de una traye
toria de
referen
ia, la estru
tura
ion de la futura ley de
ontrol, la deni
ion de la
fun
ion de
osto (y sus restri
iones) y el
al
ulo del es
enario de
ontrol
optimo. Tal estrategia puede ser visualizada en el diagrama de bloques
mostrado en la gura 6.2.
Entradas y
salidas
pasadas
+ Trayectoria de
Salidas
referencia
predecidas
MODELO
Entradas
futuras
OPTIMIZADOR
Funcion
de costo
restricciones
6.3
287
MODELO
La se~nal de disturbio n(t) in
luye todos los efe
tos no deseados en la salida
y(t). Esta se~nal representa el efe
to
onjunto de todos los disturbios sobre el
pro
eso, otras entradas no medibles, ruido de medi
ion, errores de modelado,
in
ertidumbres, et
. El disturbio n(t), que es de
ara
ter esto
asti
o, puede
ser modelado mediante un ltro
oloreado de la forma:
n(t) C (z 1 )
=
(6.2)
e(t) D(z 1 )
donde z 1 es el operador de desplazamiento, e(t) es un ruido blan
o no
orrela
ionado
on media
ero, y los polinomios son de la forma:
C (z 1 ) = 1 +
1 z 1 + +
n z n
(6.3)
1
1
n
D(z ) = 1 + d1 z + + dn z
(6.4)
El ltro de disturbio debe dise~narse: para eliminar disturbios en el estado
estable (
uando z = 1),
omo ltro sele
tivo (para eliminar una determinada
fre
uen
ia) y para in
rementar la robustez del sistema en la presen
ia de
errores de medi
ion. Estru
turas tpi
as de los polinomios del ltro pueden
ser:
C (z 1 ) = 1 +
z 1 ;
D(z 1 ) = (1 + dz 1 )(1 z 1 )
288
La se~nal x(t) representa el efe
to del pro
eso en la salida y(t) debido a la
entrada u(t). De nuevo, x(t) no es una se~nal medible. En general, la rela
ion
entre u(t) y x(t) puede representarse mediante un modelo dinami
o generi
o
de la forma:
x(t) = f (x(t 1); x(t 2); : : : ; u(t 1); u(t 2); : : :)
(6.5)
donde f (:) es una fun
ion 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 parametros a ser estimados.
El Modelo CARIMA
El modelo CARIMA, del ingles \Controlled Autoregressive Integrated Moving 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:
A(z 1 ) = 1 + a1 z 1 + ::: + an z n
(6.7)
B (z 1 ) = b1 z 1 + ::: + bn z n
(6.8)
El origen del termino CARIMA se debe a que la e
ua
ion de diferen
ias
del modelo del pro
eso presenta tres
omponentes, a saber, la
omponente
salida autoregresiva:
y(k) = a1 y(k 1) a2 y(k 2) ::: an y(k na )
el
omponente promedio temporal de
ontrol:
+ b0u(k 1) + b1u(k 2) + ::: + bn u(k nb 1)
y el
omponente promedio temporal integrado del error e(t):
+ e(k) +
1 e(k 1) +
21e(kz 12) + ::: +
n e(k n
)
a
289
Por ejemplo, para un pro
eso de segundo orden sin presen
ia de perturba
iones; es de
ir,
on C (z 1) = 0, la representa
ion CARIMA toma la forma:
B (z 1 )
b1 z 1 + b2 z 2
y(t) = x(t) =
u
(
t
)
=
(6.9)
A(z 1 )
1 + a1 z 1 + a2 z 2 u(t)
la
ual
ondu
e a la e
ua
ion de diferen
ias:
y(t) = a1 y(t 1) a2 y(t 2) + b1 u(t 1) + b2 u(t 2)
(6.10)
El modelo lineal CARIMA mas generalizado es de la forma:
B (z 1 )
C (z 1 )
A(z 1 )y(t) =
u
(
t
)
+
e(t)
(6.11)
F (z 1 )
D(z 1 )
Notar en (6.11) que la salida y(t) del modelo tambien
umple que (ver
e
ua
ion (6.1):
y(t) = x(t) + n(t)
C . La representa
i
donde: uy = AFB y ne = AD
on predi
tiva de la ultima
expresion es:
y(t + k=t) = x(t + k=t) + n(t + k=t)
(6.12)
Ejemplo 6.1
290
El predi
tor y(t + k=t) de la se~nal de salida y el predi
tor n(t + k=t) de
la se~nal de perturba
ion pueden ser modelados empleando representa
iones
serie y serie/paralelo
omo se detalla a
ontinua
ion.
6.4.1 Predi
ion de y (t + k=t)
Para prede
ir y(t + k=t) existen dos posibles esquemas de implementa
ion,
los
uales se muestran en la gura 6.4 para un modelo de segundo orden.
x(t+k-1/t)
y(t+k-1/t)
x(t+k-2/t)
u(t+k-1/t)
u(t+k-2/t)
y(t+k-2/t)
MODELO
PARALELO
x(t+k/t)
u(t+k-1/t)
u(t+k-2/t)
MODELO
SERIE /
x(t+k/t)
PARALELO
291
El Modelo Serie/Paralelo
El modelo serie/paralelo puede ser empleado para pro
esos 1estables o inestables. En este
aso, el modelo del disturbio n(t) = DC ((qq 1)) e(t) se es
oge
diferente al del modelo paralelo. El modelo serie/paralelo se obtiene rees
ribiendo el modelo paralelo
omo sigue:
A(z 1 )
A(z 1 )y(t) = B (z 1 )u(t) +
(6.16)
1 z 1 e(t)
que es la e
ua
ion (6.6)
uando C (z 1) = A(z 1 ) y D(z 1) = 1 z 1. La
salida y(t) toma enton
es la forma:
A(z 1 )
y(t) = (1 A(z 1 ))y(t) + B (z 1 )u(t) +
1 z 1 e(t) = y(t) + n(t) (6.17)
donde y(t) se obtiene de la rela
ion:
y(t) = (1 A(z 1 ))y(t) + B (z 1 )u(t)
y(t) = a1 y(t 1) an y(t na )
+b1u(t 1) + + bn u(t nb)
(6.18)
Por
onsiguiente, la expresion predi
tiva del modelo serie/paralelo es:
y(t + k=t) = a1 y(t + k 1=t) an y(t + k na =t)
+b1 u(t + k 1=t) + + bn u(t + k nb=t) (6.19)
a
292
PROCESO
PROCESO
+
x
u
MODELO
PARALELO
y
u
MODELO
SERIE /
PARALELO
Para
ualquier tiempo t, se puede
al
ular x(t) usando los datos disponibles
del modelo:
[x(t 1) : : : x(t na) u(t 1) : : : u(t nb)
Luego, usando las medi
iones y(t) (por ende y(t + k=t)), podemos
al
ular
la perturba
ion n(t) mediante la rela
ion:
n(t) = x(t) y(t)
(6.20)
Como ya se tienen disponibles los valores previos n(t 1); n(t 2); : : :, ello
nos permite
omputar:
D(z 1 )
e(t) =
n(t)
C (z 1 )
e(t) =
1 e(t 1)
2 e(t 2) + n(t)+ d1 n(t 1)+ d2 n(t 2)+ (6.21)
donde e(t) es un ruido blan
o no
orrela
ionado
on media nula. Esto signi
a que la mejor predi
ion de e(t) es:
e(t + k=t) = 0; k = 1; : : : ; N2
(6.22)
Por extension, la mejor predi
ion del disturbio se obtiene de:
C (z 1 )
n(t + k=t) =
e(t + k=t); k = 1; : : : ; N2
D(z 1 )
= d1n(t + k 1=t) d2n(t + k 2=t) + e(t + k=t)
+
1e(t + k 1=t) +
2 e(t + k 2=t) +
(6.23)
293
El
al
ulo re
ursivo toma en
uenta que para
ualquier k, e(t + k=t) = 0.
Por
onsiguiente, para:
k = 1; n(t + 1=t) = d1 n(t=t) d2 n(t 1=t)
k = 2; n(t + 2=t) = d1 n(t + 1=t) d2 n(t=t)
...
k = N2 ; n(t + N2 =t) = d1 n(t + N2 1=t) d2 n(t + N2 2=t)
Ejemplo 6.2
Comparar las respuestas a una sinusoide del pro
eso servomotor D.C. no
lineal del ejemplo 6.1,
uando la salida y no es ruidosa y
uando lo es. El
tiempo de muestreo es T = 0.01 s. Considerar ruido blan
o gaussiano.
Solu
ion: Empleando el resultado del ejemplo 6.1, la solu
ion a este problema se detalla en el programa ejem6 2.m. Los resultados se muestran en
las guras 6.6, 6.7 y 6.8. Observar en la ultima gura que el ruido e(t)
empleado posee media
ero y una fun
ion de distribu
ion gaussiana.
% ejem6_2.m SOLUCION EJEMPLO 6.2
lear all
% PARAMETROS DEL PROCESO NO LINEAL (TABLA 3.3)
JL = 3.5e-7;
bL = 1e-5;
Ro = 0.01; Lo = 0.776;
Jm = 1.9062e-6; bm = 1.8338e-6; g = 9.81;
E = 31.035e-3;
R = 7.38;
m = 0.06377;
Ka
t = 14.9;
= 0.25; Mo = 0.045; % 0, 0.01, 0.02
K = 31.071e-3;
n = 19.741;
L = 4.64e-2;
B = n^2*bm + bL;
Jeff = n^2*Jm +JL;
M = Jeff + (1/3)*m*Lo^2 + Mo*Lo^2 + (2/5)*Mo*Ro^2;
N = g*Lo*(Mo+m/2);
% MODELO NO LINEAL DEL PROCESO CONTINUO DE SEGUNDO ORDEN
A
= [0 1;-N/M -(B + n^2*K*E/R)/M;
B
= [0;n*K*Ka
t/(R*M); C
= [1 0; D
= [0;
% MODELO LINEAL DISCRETO DEL PROCESO DE SEGUNDO ORDEN
T = 0.01;
% PERIODO DE MUESTREO
[G,H,C,D=
2dm(A
,B
,C
,D
,T,'zoh');
[num,den=ss2tf(G,H,C,D);
a1 = den(2); a2 = den(3); b1 = num(2); b2 = num(3);
% CONDICIONES INICIALES NULAS
q(1)=0; q(2)=0; q(3)=0; u(1)=0; u(2)=0; u(3)=0;
y(1)=0; y(2)=0; y(3)=0; e(1)=0; e(2)=0; e(3)=0;
% RESPUESTAS DEL PROCESO
294
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
295
Posicin en rad
4
2
0
2
4
0
4
5
6
Tiempo en segundos
10
4
5
6
Tiempo en segundos
10
Entrada (voltios)
1
0.5
0
0.5
1
0
4
2
0
2
4
6
0
4
5
6
Tiempo en segundos
10
4
5
6
Tiempo en segundos
10
Entrada (voltios)
1
0.5
0
0.5
1
0
296
0.4
0.2
0
0.2
0.4
0
4
5
6
Tiempo en segundos
10
Distribucin de e(t)
300
200
100
0
0.4
0.3
0.2
0.1
0
0.1
< e(t) >
0.2
0.3
0.4
Figura 6.8: Ruido blan
o e(t)
on media
ero y distribu
ion gaussiana.
6.5
u(t + k=t); k = 0; : : : ; N2
J=
donde :
N2
X
k=N1
[r(t + k=t)
y(t + k=t)2 +
NX
u 1
k=0
[u(t + k=t)2
(6.24)
297
N1; : : : ; N2 : horizonte de
oin
iden
ia; por defe
to
onsiderar N1 (tiem-
po muerto).
: parametro de pondera
ion; por defe
to
onsiderar
ero.
: parametro de ltraje; por defe
to
onsiderar
ero.
Si la traye
toria deseada w(t) se programa previamente, enton
es los valores
futuros w(t + k) se pueden emplear para determinar w(t + k=t). Es de
ir,
w(t + k=t) = w(t + k) para k = 1; : : : ; N2 . Si no deseamos una estrategia
de
ontrol predi
tivo en avan
e, el valor a
tual w(t) se puede usar
omo un
valor de predi
ion w(t + k=t) = w(t) para k = 1; : : : ; N2 .
Es importante observar ademas que:
1. La traye
toria de referen
ia dada en (6.26)
onstituye un ltro de
primer orden para w(t). Este ltro se puede representar mediante
la siguiente fun
ion de transferen
ia:
r(z )
1 = z(1 )
=
(6.27)
w(z ) 1 z 1
z
2. El ltro para w(t) se puede implementar fuera del lazo de
ontrol, no
afe
tando de esta manera a la estabilidad del sistema, pero s
ontribuyendo al re
hazo del ruido.
La gura 6.9 ilustra el objetivo del
ontrol predi
tivo basado en modelos.
6.5.2 Respuesta Libre y Respuesta Forzada
Con
eptualmente, la respuesta futura y(t + k=t) puede ser
onsiderada
omo
el resultado a
umulativo de dos efe
tos:
y(t + k=t) = ylibre(t + k=t) + yforz (t + k=t)
(6.28)
donde el subndi
e forz indi
a forzada. La respuesta libre ylibre(t + k=t)
apare
e
omo
onse
uen
ia de los fa
tores siguientes:
El efe
to debido a las se~nales de
ontrol pasadas u(t 1); u(t 2); : : :
298
1
0
0
1
1
0
0
1
0
1
01
1
1
0
0
0
1
0
0 1
1
0
1
00
11
00
11
00
11
00
11
1
0
0
1
N u =4
0
1
0
0
0
00
11
0
01
01
1
01
1
0
1
00 1
11
0
1
11
0
0
1
y(t+k/t)
u(t+k/t)
o o
o o
o
o
o
o
o o o o o o o o o o o o o o o o
o
o o o o
o o o
r=w
PASADO
N 1=2
N 2 =8
Tiempo actual t
FUTURO
1); : : :; esto
El efe to debido a las perturba iones futuras del ruido n(t + k=t).
299
Entrada escalon
u(t/t)
g u(t/t)
k
Respuesta
al escalon
k Muestras
t
Tiempo
t+k
(a)
Entrada escalon
u(t+1/t)
g u(t+1/t)
k
Respuesta
al escalon
Tiempo
(k-1) Muestras
t+k
(b)
u(t + Nu 1=t)
(6.29)
donde los parametros g1; : : : ; gN2 son los
oe
ientes de la respuesta del
sistema al es
alon unitario. Es de
ir, la respuesta de la salida del sistema a
los
ambios tipo es
alon unitario en la entrada.
Para un sistema lineal, la respuesta al es
alon unitario no depende del
punto de opera
ion. Este punto es jo y puede ser
al
ulado fuera de lnea
(\o-line") usando el modelo del sistema.
Para un sistema no lineal,
omo en el
aso de una red neuronal, la
respuesta al es
alon unitario es diferente para
ada punto de opera
ion.
Esta respuesta tiene que ser
al
ulada en
ada tiempo de muestreo (\online"), apli
ando en
ada instante de muestreo un
ambio es
alon (
ti
io) a
la entrada a
tual del pro
eso y
al
ulando su efe
to en la salida respe
tiva.
Nu +1
300
U=
gN1 gN1 1
6 gN +1
gN1
1
G=6
4 :::
:::
gN2 gN2 1
u(t=t) u(t + 1=t)
:::
:::
7
:::
:::
7
5
:::
:::
: : : gN2 Nu +1
u(t + Nu 1=t)
T
301
Con la nota
ion anterior, la fun
ion de
osto (e
ua
ion (6.24)) resulta:
(R Y)T (R Y)+UT U = [(R Y ) GUT [(R Y ) GU+UT U (6.32)
la
ual es una forma
uadrati
a en U,
uya minimiza
ion por diferen
ia
ion
resulta en la siguiente solu
ion optima:
U = (GT G + I ) 1 GT (R Y)
(6.33)
Es importante indi
ar que:
Solamente el primer elemento u(t=t) de U es ne
esario para
omputar la entrada de
ontrol a
tual u(t) = u(t 1)+u(t=t). El mismo
pro
edimiento se repite para la nueva medi
ion y(t + 1) en el proximo
instante de tiempo t + 1. Este pro
edimiento se denomina el prin
ipio
del \horizonte retroa
tivo".
La matriz [GT G + I a ser invertida tiene dimension Nu Nu. Para el
aso por defe
to, es de
ir, para Nu = 1, se obtiene una ley de
ontrol
es
alar (
on muy buenos resultados en mu
hos
asos pra
ti
os) de la
forma:
PN2
(t + k=t) ylibre(t + k=t)
u(t) = k=N1 gk [rP
(6.34)
N2 g 2 +
k=N1 k
Otra aproxima
ion para la estru
tura
ion del es
enario de
ontrol
onsiste en el empleo de fun
iones base de la forma:
X
u(t + k=t) = i Bi
(6.35)
i
302
Determinar la matriz dinami
a de
ontrol para el pro
eso del ejemplo 6.1
empleando los datos siguientes: N1 = 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
303
%
%
%
%
6.6
0
g(N1-5)
g(N1-4)
g(N1-3)
g(N1-2)
g(N1-1)
g(N2-Nu+1);
304
7) Implementar el hardware.
8) Implementar el software de
ontrol.
9) Realizar pruebas de fun
ionamiento (resultados experimentales).
6.7
La gura 3.9 presenta la estru
tura del pro
eso no lineal a
ontrolar. La tabla
3.2 des
ribe las variables y los valores de sus parametros. Asumiendo que la
se~nal de
ontrol u esta
ompensada por las no linealidades y despre
iando
la indu
tan
ia L del servomotor, el pro
eso no lineal puede ser des
rito
mediante el siguiente modelo lineal (subse
ion 3.3.5):
x_ = A
x + B
u;
y = C
x
0
1
0
A
=
;
C
= 1 0
;
B
= KnK
2E
N
B
Kn
( M + MR )
MR
M
2
1
m
M = Jeff + ML2o + MRo2 + mL2o );
N = gLo (M + )
5
3
2
2
2
Jeff = n Jm + JL ;
B = n bm + bL
La fun
ion de transferen
ia Gp(s) del pro
eso puede determinarse de:
y(s)
Gp (s) =
= C
[sI A
1B
u(s)
a
t
305
La expresion para determinar la respuesta libre del pro
eso en
uestion se determino en el ejemplo 6.3. El siguiente programa determina re
ursivamente
la traye
toria deseada W (t), la traye
toria de referen
ia r(t) y la respuesta
libre ylibre. Por simpli
idad, emplearemos la nota
ion: yf = ylibre.
% CONDICIONES Y PARAMETROS INICIALES
yf(1)=0; yf(2)=0; yf(3)=0; % yf: RESPUESTA LIBRE
r(1) =0; r(2) =0; r(3)=0; % r : REFERENCIA
alf = 0.01; fre
= 0.0063; GW = 1;
MM = 1000; n1=1; n2=20;
% REFERENCIA, SALIDA LIBRE Y RESPUESTAS AL ESCALON
for t = 3:MM+2
for k = n1:n2
W(t+k) = GW*sign(sin(fre
*(t))); % TRAYECTORIA DESEADA
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
end
306
N2 = 12.
307
308
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
1
0
1
2
0
8
Tiempo
10
12
en segundos
14
16
18
20
14
16
18
20
2
1
0
1
2
0
8
10
12
Tiempo en segundos
Figura 6.11: Primera simula
ion del sistema de
ontrol predi
tivo. La
arga
no lineal es maxima.
309
310
% 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);
311
1
0.5
0
0.5
1
0
8
Tiempo
10
12
en segundos
14
16
18
20
14
16
18
20
2
1
0
1
2
0
8
10
12
Tiempo en segundos
Figura 6.12: Segunda simula
ion del sistema de
ontrol predi
tivo. La
arga
no lineal es maxima.
6.7.6 Implementa
ion del Hardware
312
El software usado para la implementa
ion del algoritmo de
ontrol de posi
ion emplea el lenguaje C y se eje
uta en una PC Pentium. Los programas ne
esarios para el
ontrol se estru
turan en tres ar
hivos es
ritos en C:
R1LLIB.H, R1LLIB.CPP y PREDI4.CPP. El ar
hivo PREDI4.CPP es el
que
ontiene el algoritmo de
ontrol.
La realiza
ion de ar
hivos eje
utables a partir de los programas fuente, se
elabora en el ambiente de trabajo del Borland C/C++ mediante la
rea
ion
de un proye
to denominado PREDI4.PRJ, en el
ual intervienen los ar
hivos
men
ionados en el parrafo anterior.
Diagrama de Flujo del Software de Control
313
INICIO
INICIALIZACION DE VARIABLES
INICIALIZACION DE LA TARJETA LabPC+
DETECTAR FLANCO
DE SUBIDA
k MENOR QUE n
SI
DETECTAR FLANCO
DE SUBIDA
NO
SI
LEER POSICION Pk
CALCULAR POSICION Y VELOCIDAD
APLICAR RESTRICCIONES EN Pk
~ DE CONTROL
GENERAR SENAL
GENERAR SALIDA COMPENSADA
~
RESTRINGIR LA SENAL
DE CONTROL
~
ENVIAR LA SENAL COMPENSADA
ACTUALIZAR VARIABLES
314
A
ontinua
ion se des
riben las fun
iones propias del software de
ontrol.
Ini
ializa Sistema: permite la ini
ializa
ion de los parametros y variables globales. Luego, ini
ializa la tarjeta de adquisi
ion de datos
Lab-PC+ por medio de la fun
ion ConfigurarHardware. Enseguida
enva la tension de oset al puerto de salida analogi
a por medio de la
fun
ion EnviarV oltage (si
), para asegurar la posi
ion ini
ial de reposo del motor (posi
ion verti
al) y nalmente, lee la posi
ion ini
ial
p0 del motor.
Mide V ariables: espe
i
a la se~nal de referen
ia
onsiderada. Luego
mide la posi
ion a
tual del motor (posi
ion de la varilla) y la velo
idad
(en fun
ion de la posi
ion), a
tualiza los estados de las variables y, w,
r y e, y apli
a restri
iones a la salida.
Apli
a Control:
ompensa las fri
iones estati
a y de Coulomb y apli
a restri
iones a la se~nal de entrada u. Luego, enva un voltaje equivalente a la suma de la se~nal de
ontrol u (
on restri
ion), mas la
se~nal de
ompensa
ion v, mas la se~nal del oset (2.3 volt).
La fun
ion prin
ipal main posee una estru
tura ade
uada para:
315
316
317
318
}
void main()
{
int ant = 0, a
t = 0, k, n;
FILE *out;
float *yb, *ub, *wb, *rb, vel, y, u, w, r;
float yant;
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!=(yb= (float *)
allo
(n/5,sizeof(float))));
assert(NULL!=(wb= (float *)
allo
(n/5,sizeof(float))));
assert(NULL!=(rb= (float *)
allo
(n/5,sizeof(float))));
for(k = 0; k < n;)
{
a
t = NivelClo
k();
if ((ant == 0)&&(a
t == 1))
{
Mide_Variables(&y, &w, &r, &vel, t);
/* Se~nal de Control */
//u = q0*(b1*uant + b2*uantant + e + a1*eant + a2*eantant);
u=(landa+q0*b1*(1-landa))*uant+q0*(1-landa)
*(b2*uantant + e + a1*eant + a2*eantant);
uantant = uant;
uant=u;
u = Apli
a_Control(u, vel);
if(!(k%5))
{
yb[k/5 = y*180./M_PI;
wb[k/5 = w*180./M_PI;
rb[k/5 = r*180./M_PI;
ub[k/5 = u;
}
k++;
t+=T;
gotoxy(15,5); printf("*****************************************");
gotoxy(18,7); printf("Control Predi
tivo de un Servomotor D.C.");
gotoxy(15,9); printf("*****************************************");
gotoxy(21,11);printf("tiempo:
t=%+5.3f",t);
gotoxy(21,13);printf("setpoint:
w=%+5.3f",w*180./M_PI);
319
gotoxy(21,15);printf("se~nal de refer.:
r=%+5.3f",r*180./M_PI);
gotoxy(21,17);printf("se~nal de
ontrol:
u=%+5.3f",u);
gotoxy(21,19);printf("posi
ion angular:
y=%+5.3f",y*180./M_PI);
gotoxy(21,21);printf("error de posi
ion: e=%+5.3f",e*180./M_PI);
gotoxy(21,23);printf("error seguimiento: es=%+5.3f",es*180./M_PI);
gotoxy(15,25);printf("*****************************************");
if(kbhit())
if(get
h() == 27) break;
}
ant = a
t;
}
EnviarVoltage(Ofst);
out=fopen("predi4.out","wt");
for (int i = 0; i<n/5; i++)
fprintf(out,"%10f %10f %10f %10f %10f %10f\n",
i*5*T, wb[i, rb[i, yb[i, ub[i, wb[i-yb[i);
delete wb, rb, yb, ub;
f
lose(out);
}
/* 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).
*/
#if !defined (__R1LLIB_H_PRY)
#define __R1LLIB_H_PRY
// Configura
ion de Lab-PC+ (digital in, polling, analog out, timer)
void ConfigurarHardware (unsigned, unsigned, unsigned, unsigned,int);
// Salida de Voltage por R1LAOPort
void EnviarVoltage(float);
// Leer Posi
ion (16 bits leidos por R1LLSBPort y R1LMSBPort)
unsigned int LeerPosi
ion();
// Leer Nivel del
lo
k (polling). Devuelve 0 o 1
int NivelClo
k ();
#endif
320
/* 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).
*/
#in
lude "r1llib.h"
#in
lude "nidaq.h" // Libreria de Programas
#in
lude <dos.h>
//
stati
unsigned R1LLSBPort; // dire
ion puerto dig. de entrada
stati
unsigned R1LMSBPort; // dire
ion puerto dig. de
ontrol
stati
unsigned R1LPollPort; // dire
ion puerto dig. de polling
stati
unsigned R1LAOPort; // dire
ion de la salida analogi
a
stati
int
R1LFS;
// fre
uen
ia de muestreo en Hertz
//
void ConfigurarHardware (unsigned pollPort, unsigned lPort,
unsigned hPort, unsigned salPort, int fre
)
{
int
uentaTimer, devi
eCode;
uentaTimer = (int)(2000000/fre
);
R1LPollPort = pollPort;
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);
}
void EnviarVoltage (float u)
{
unsigned salidaDigital;
salidaDigital = (unsigned) (409.5*u-0.5);
outport(R1LAOPort,salidaDigital);
321
}
unsigned int LeerPosi
ion()
{
unsigned
har o
t1,o
t2;
o
t1 = inportb(R1LLSBPort);
o
t2 = inportb(R1LMSBPort);
return (255*o
t2+o
t1);
}
int NivelClo
k ()
{
unsigned
har bytePoll;
bytePoll = inportb (R1LPollPort);
return (bytePoll&1);
}
322
60
Posicin (grados)
:y
:w
50
40
30
20
10
0
0
10
20
30
40
50
t(seg)
60
70
80
90
100
Figura 6.14: Salida
ontrolada y (
urva en trazos) para una
arga iner
ial
de JT = J kg-m2 .
Rpta. a escalones variantes para 1.42J
70
60
Posicin (grados)
:y
:w
50
40
30
20
10
0
0
10
20
30
40
50
t(seg)
60
70
80
90
100
Figura 6.15: Salida
ontrolada y (
urva en trazos) para una
arga iner
ial
de JT = 1:42J kg-m2.
323
60
Posicin (grados)
:y
:w
50
40
30
20
10
0
0
10
20
30
40
50
t(seg)
60
70
80
90
100
Figura 6.16: Salida
ontrolada y (
urva en trazos) para una
arga iner
ial
de JT = 1:84J kg-m2 .
Rpta. a escalones variantes para 2.98J
70
60
:y
:w
u(t):voltios
50
40
30
20
10
0
0
10
20
30
40
50
t(seg)
60
70
80
90
100
Figura 6.17: Salida
ontrolada y (
urva en trazos) para una
arga iner
ial
de JT = 2:98J kg-m2 .
324
6.8
Problemas Resueltos
El problema 3.2 presenta las e
ua
iones que gobiernan la dinami
a longitudinal de un avion
omer
ial volando a velo
idad de
ru
ero (altura y velo
idad
onstantes). El
ontrol del angulo de in
lina
ion del avion (ver gura 3.14)
es un problema longitudinal a resolver. El objetivo de
ontrol es enton
es
dise~nar un autopiloto que manipulando el angulo e del de
e
tor de eleva
ion,
ontrole el angulo de in
lina
ion del avion. Dise~nar 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
ion ) presente un sobreimpulso
menor al 5 %, un tiempo de estabiliza
ion 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;
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, dise~nar un sistema de
ontrol predi
tivo
que genere una matriz dinami
a de
ontrol, de modo tal que el angulo de
in
lina
ion del avion siga una traye
toria arbitraria, pero predeterminada.
326
y: Inclinacin (rad)
2
1
0
1
2
0
100
200
300
400
500
600
700
100
200
300
400
TIEMPO : SEG
500
600
700
2
1
0
1
2
0
Figura 6.18: A ngulo de in
lina
ion y se~nal de
ontrol (angulo del de
e
tor)
orrespondientes al problema 6.1.
Solu
ion:
327
% RESPUESTA AL ESCALON
g(1) = b1; g(2) = -a1*b1 + b1 + b2;
g(3) = - a1*g(2) - a2*g(1) + b1 +b2+b3;
for k=4:N2
g(k) = -a1*g(k-1) -a2*g(k-2) -a3*g(k-2) + b1 + b2 + b3;
end
% MATRIZ GANANCIA DE RESPUESTA AL ESCALON
GG=[g(1) 0
0
0
0
g(2) g(1) 0
0
0
g(3) g(2) g(1) 0
0
g(4) g(3) g(2) g(1) 0
g(5) g(4) g(3) g(2) g(1)
g(6) g(5) g(4) g(3) g(2)
g(7) g(6) g(5) g(4) g(3)
g(8) g(7) g(6) g(5) g(4)
g(9) g(8) g(7) g(6) g(5)
g(10) g(9) g(8) g(7) g(6);
% CONDICIONES INICIALES
for k=1:4
yf(k)=0; y(k)=0; r(k)=0; u(k)=0;
end
alf = 0.1; lambda = 0.98; MM = 500; du(1)=0;
I=eye(5,5); % MATRIZ IDENTIDAD
% LAZO DE CONTROL
for t =4:MM+3
% TRAYECTORIA DESEADA, REFERENCIA r Y RESPUESTA LIBRE yf
for k=1:N2
W(t+k)= sin(0.05*t)+0.005*t;
r(t+k) = alf*r(t+k-1) + (1-alf)*W(t+k);
yf(t+k)= -a1*yf(t+k-1)-a2*yf(t+k-2)-a3*yf(t+k-3)+(b1+b2+b3)*u(t-1);
end
% MATRIZ R DE SE~NALES r
R=[r(t+1) r(t+2) r(t+3) r(t+4) r(t+5) r(t+6)...
r(t+7) r(t+8) r(t+9) r(t+10)';
% MATRIZ DE RESPUESTA LIBRE YF
YF=[yf(t+1) yf(t+2) yf(t+3) yf(t+4) yf(t+5) yf(t+6)...
yf(t+7) yf(t+8) yf(t+9) yf(t+10)';
% LEY DE CONTROL
U=inv(GG'*GG+lambda*I)*GG'*(R-YF);
du=U(1);
u(t) = u(t-1) + du;
% PROCESO
y(t+1)=-a1*y(t)-a2*y(t-1)-a3*y(t-2) ...
328
+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
y: Inclinacin (rad)
4
3
2
1
0
1
0
200
400
600
800
1000
1200
200
400
600
TIEMPO : SEG
800
1000
1200
0.3
0.2
0.1
0
0.1
0.2
0
Figura 6.19: A ngulo de in
lina
ion y se~nal de
ontrol (angulo del de
e
tor)
orrespondientes al problema 6.2.
Problema 6.3
La gura 3.20 muestra el pro
eso monorriel de dos
arros des
rito en el
problema 3.5. El problema a resolver es el
ontrol de velo
idad del
arro de
329
330
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
30
20
10
0
0
50
100
150
100
150
Control u (volt)
150
100
50
0
50
0
50
Tiempo (segundos)
Figura 6.20: Velo
idad del
arro de maquinas y la fuerza de
ontrol para el
problema 6.3.
Problema 6.4
332
Velocidad (m/s)
20
15
10
5
0
0
50
100
50
100
150
200
250
300
150
200
(Segundos)
250
300
Control u (volt)
60
40
20
0
20
0
Tiempo
Figura 6.21: Velo
idad del
arro de maquinas y la fuerza de
ontrol para el
problema 6.3. La referen
ia es arbitraria.
Problema 6.5
La gura 3.22 muestra el pro
eso as
ensor que fue tratado en el problema
3.6. El problema a resolver es posi
ionar suavemente el as
ensor en un piso
determinado, lo que signi
a sobreimpulso nulo (para que no se pase de piso)
y tiempo de estabiliza
ion menor que 10 s. Para no saturar al a
tuador (un
ampli
ador de poten
ia), la se~nal de
ontrol debe estar dentro del rango
de 200 volt. Dise~nar un sistema de
ontrol de posi
ion predi
tivo
on
fuerza de
ontrol es
alar que
umpla las espe
i
a
iones pedidas. Con el
objeto de
umplir tales espe
i
a
iones, tambien se puede usar restri
ion
a la salida; es de
ir, para
ada tiempo de muestreo, ha
er que la posi
ion
ontrolada iguale la se~nal de referen
ia. Es interesante anotar, que di
ha
restri
ion origina en la simula
ion una respuesta que sigue perfe
tamente a
la referen
ia. Logi
amente, los resultados de la implementa
ion en tiempo
real
on tal restri
ion, no son tan perfe
tos
omo lo son en la simula
ion,
tal
omo su
ede en el
aso del
ontrol predi
tivo del servomotor
on
arga
no lineal (subse
ion 6.7.8).
% p8pred1.m SOLUCION DEL PROBLEMA 6_5: CONTROL DE POSICION
% DE UN ASCENSOR USANDO CONTROL PREDICTIVO CON FUERZA
% DE CONTROL ESCALAR Y CON RESTRICCION EN LA SALIDA
lear all
333
40
30
20
10
0
0
50
100
150
100
150
u: control
100
50
50
0
50
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
20
15
10
5
0
0
100
200
300
100
200
300
400
500
600
700
800
900
1000
700
800
900
1000
u: Fuerza de control
15
10
5
0
5
0
400
500
600
Tiempo
(Segundos)
Figura 6.23: Velo
idad del
arro de maquinas y la fuerza de
ontrol para el
problema 6.4. La referen
ia es arbitraria.
% CONDICIONES INICIALES
for k=1:5
yf(k)=0; y(k)=0; r(k)=0; u(k)=0;
end
alf =0.1; lambda = 0.00;
MM=300;
% LAZO DE CONTROL
for t =5:MM+4;
% TRAYECTORIA DESEADA, REFERENCIA r Y RESPUESTA LIBRE yf
for k=1:N2
W(t+k)=-3*sign(sin(0.02*t));
r(t+k) = alf*r(t+k-1) + (1-alf)*W(t+k);
yf(t+k)= -a1*yf(t+k-1)-a2*yf(t+k-2)-a3*yf(t+k-3)-a4*yf(t+k-4)...
+ (b1 + b2 + b3 + b4)*u(t-1);
end
% RESTRICCION A LA SALIDA
y(t) = W(t);
% LEY DE CONTROL
du(t)=(g(1)*(r(t+1)-yf(t+1))+g(6)*(r(t+6)-yf(t+6))+ ...
g(2)*(r(t+2) - yf(t+2)) + g(7)*(r(t+7) - yf(t+7)) + ...
g(3)*(r(t+3) - yf(t+3)) + g(8)*(r(t+8) - yf(t+8)) + ...
335
Problema 6.6
La gura 2.2 muestra dos tanques identi
os
olo
ados en
as
ada. La se
ion horizontal A=9 m2 de
ada tanque es
onstante. El objetivo de
ontrol
es
ontrolar la altura H2 empleando el
ujo Qo. La dedu
ion del modelo
linealizado del pro
eso se derivo en el ejemplo 2.1. Dise~nar un
ontrolador
predi
tivo del tipo es
alar
on los requerimientos siguientes: tiempo de estabiliza
ion menor que 15 s, sobreimpulso menor al 10 % y error en estado
336
POSICION (m)
4
2
0
2
VOLTAJE DE CONTROL
4
0
50
100
150
200
TIEMPO EN SEGUNDOS
250
300
50
100
150
200
TIEMPO EN SEGUNDOS
250
300
200
100
0
100
200
0
Figura 6.24: Posi
ion del as
ensor y la fuerza de
ontrol (problema 6.5).
POSICION (m)
4
2
0
2
VOLTAJE DE CONTROL
4
0
100
200
300
400
500
600
100
200
300
400
TIEMPO EN SEGUNDOS
500
600
200
100
100
0
337
estable nulo. Estas
ondi
iones de dise~no deben mantenerse
uando se
ambie la referen
ia (por ejemplo de 3 a 2 m). Ademas, el
ujo de entrada (la
se~nal de
ontrol) no debe sobrepasar los 3 m3 /s.
% p9pred1.m SOLUCION DEL PROBLEMA 6.7 CONTROL DE NIVEL
% USANDO CONTROL PREDICTIVO CON CONTROL du ESCALAR
lear all
% PARAMETROS DEL SISTEMA
A = 9; gamma = 0.4; rho = 1.23; g = 9.81; Q = 3;
H =Q^2/(gamma^2*rho*g);
Z=(gamma*sqrt(rho*g))/(2*A*sqrt(H));
% ESPACIO DE ESTADO DE LA PLANTA EN TIEMPO CONTINUO
A
= [-Z 0;Z -Z; B
=[1 ; 0;
C
=[0 1; D
=[0;
T = 0.9; % TIEMPO DE MUESTREO
% MODELO LINEAL DISCRETO
[G,H,C,D=
2dm(A
,B
,C
,D
,T,'zoh');
[numd,dend=ss2tf(G,H,C,D);
a1 = dend(2); a2 = dend(3);
b1 = numd(2); b2 = numd(3);
% RESPUESTA AL ESCALON
g1 = b1;
g2 = -a1* b1 + b1 + b2;
g3 = -a1*g2-a2*g1+b1+b2; g4 = -a1*g3-a2*g2+b1+b2;
g5 = -a1*g4-a2*g3+b1+b2; g6 = -a1*g5-a2*g4+b1+b2;
g7 = -a1*g6-a2*g5+b1+b2; g8 = -a1*g7-a2*g6+b1+b2;
g9 = -a1*g8-a2*g7+b1+b2; g10 = -a1*g9-a2*g8+b1+b2;
% HORIZONTES DE CONTROL
N1 = 1; N2 =10; Nu =1; %
ontrol es
alar
% CONDICIONES INICIALES
for k=1:3
yf(k)=0; y(k)=0; r(k)=0; u(k)=0;
end
alf = 0.1; lambda = 0; MM = 500;
% LAZO DE CONTROL
for t =3:MM+2
% TRAYECTORIA DESEADA, REFERENCIA r Y RESPUESTA LIBRE yf
for k=1:N2
W(t+k) = 1.5 + 0.5*sign(sin(0.02*t));
r(t+k) = alf*r(t+k-1) + (1-alf)*W(t+k);
yf(t+k) = -a1*yf(t+k-1) - a2*yf(t+k-2) + (b1 + b2)*u(t-1);
end
% LEY DE CONTROL
du(t)=(g1*(r(t+1)-yf(t+1))+g6*(r(t+6)-yf(t+6))+ ...
338
g2*(r(t+2)
g3*(r(t+3)
g4*(r(t+4)
g5*(r(t+5)
(g1^2
%
%
%
Problema 6.8
Problema 6.9
El pro eso ele trome ani o mostrado en la gura 3.26 se des ribe en el problema 3.8. Se pide dise~nar un sistema de ontrol predi tivo on fuerza de
339
NIvel H2 (m)
2.5
2
1.5
1
0.5
0
0
50
100
150
200
250
300
Tiempo en segundos
350
400
450
50
100
150
200
250
300
Tiempo en segundos
350
400
450
3
2
1
0
1
2
0
NIvel H2 (m)
2.5
2
1.5
1
0.5
0
0
50
100
150
200
250
300
Tiempo en segundos
350
400
450
50
100
150
200
250
300
Tiempo en segundos
350
400
450
1
0
340
ontrol es
alar, para
ontrolar la velo
idad angular del eje del motor mediante el voltaje de entrada que puede variar entre 100 volt. El tiempo de
estabiliza
ion de la se~nal
ontrolada (la velo
idad) debe ser menor que 6 s
y di
ha respuesta debe presentar un sobrepi
o maximo de 5 %,
on error en
estado estable nulo.
% p11pred1.m SOLUCION DEL PROBLEMA 6_9
% CONTROL DE VELOCIDAD DEL SISTEMA ELECTROMECANICO
% USANDO CONTROL PREDICTIVO CON CONTROL du ESCALAR
lear all
% PARAMETROS DEL SISTEMA
J = 0.01; Ke = 0.01; Kt = 0.01;
R = 12; C = 0.5; L = 0.5; Kw = 1.8;
% MODELO DEL PROCESO EN TIEMPO CONTINUO
A
= [-1/(R*C) -1/C 0
Kw/(L*Kw + Kt*Ke) 0 -Ke*Kw/(L*Kw + Kt*Ke)
0 Kt/J 0;
B
= [1/(R*C);0;0;
C
= [0 0 1; D
= [0;
T = 0.1; % TIEMPO DE MUESTREO
% MODELO LINEAL DISCRETO
[G,H,C,D=
2dm(A
,B
,C
,D
,T,'zoh');
[numd,dend=ss2tf(G,H,C,D);
a1 = dend(2); a2 = dend(3); a3=dend(4);
b1 = numd(2); b2 = numd(3); b3=numd(4);
% RESPUESTA AL ESCALON
g1 = b1;
g2 =-a1*b1+b1+b2;
g3=-a1*g2-a2*g1+b1+b2+b3;
g4 =-a1*g3- a2*g2-a3*g1+b1+b2+b3;
g5=-a1*g4-a2*g3-a3*g2+b1+b2+b3;
g6 =-a1*g5-a2*g4-a3*g3+b1+b2+b3;
g7=-a1*g6-a2*g5-a3*g4+b1+b2+b3;
g8 =-a1*g7-a2*g6-a3*g5+b1+b2+b3;
g9=-a1*g8-a2*g7-a3*g6+b1+b2+b3;
g10=-a1*g9-a2*g8-a3*g7+b1+b2+b3;
% HORIZONTES DE CONTROL
N1 = 1; N2 = 10; Nu = 1;
% CONDICIONES INICIALES
for k = 1:4
yf(k) = 0; y(k) = 0; r(k) = 0; u(k) = 0;
end
du(1) = 0;
alf = 0.85; lambda = 0;
% LAZO DE CONTROL
%
%
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
342
Velocidad (rad/s)
5
0
10
20
30
40
Tiempo
50
60
en segundos
70
80
90
100
10
20
30
40
Tiempo
50
60
en segundos
70
80
90
100
Voltaje de control
100
50
0
50
100
0
6.9
Problemas Propuestos
Problema 6.11
343
Velocidad (rad/s)
15
10
5
0
5
0
20
40
60
80
Tiempo
100
120
140
en segundos
160
180
200
20
40
60
80
Tiempo
100
120
140
en segundos
160
180
200
Voltaje de control
3
2
1
0
1
2
0
Las e
ua
iones del modelo linealizado para
ontrolar la posi
ion del
a~non
montado en la torreta de un tanque (ver gura 3.28) empleando un a
tuador
hidrauli
o se detallan en el problema 3.9.
(a) Dise~nar un sistema de
ontrol predi
tivo basado en modelos para
ontrolar el angulo de eleva
ion
on las espe
i
a
iones siguientes: tiempo de estabiliza
ion menor que 5 s, mnimo sobreimpulso y error en
estado esta
ionario nulo, empleando fuerza de
ontrol es
alar. Los
344
La gura 3.31 muestra el pro
eso servomotor
on
arga no lineal des
rito
en la se
ion 3.3, en donde la
arga no lineal posee ahora dos grados de
libertad
on Lo = 2L1=3 y Mo=0.02 kg. La union de la
arga
on el eje
del servomotor no es
exible. Las e
ua
iones que des
riben la dinami
a del
sistema son materia del problema 3.12.
(a) Dise~nar un sistema de
ontrol predi
tivo basado en modelos para
ontrolar simultaneamente las posi
iones y
on mnimo tiempo de
estabiliza
ion y mnimo sobreimpulso, empleando una fuerza de
ontrol 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 pendulo doble no lineal, el
ual es una
extension del pendulo simple des
rito en la se
ion 3.1. El a
oplamiento
entre los dos pendulos de igual longitud no es
exible. Las e
ua
iones que
des
riben la dinami
a del sistema son materia del problema propuesto 3.13.
(a) Dise~nar un sistema de
ontrol predi
tivo basado en modelos para
ontrolar simultaneamente las posi
iones y
on mnimo tiempo de
estabiliza
ion y mnimo sobreimpulso, empleando para ello una fuerza
de
ontrol es
alar, de modo tal que el pendulo doble permanez
a en
posi
ion verti
al. Considerar que la
arga esferi
a es de 0.02 kg.
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 grua puente no lineal, el
ual es una
extension del pro
eso grua puente es
rito en la se
ion 3.2. El a
oplamiento
entre las dos se
iones iguales de la varilla no es
exible. Las e
ua
iones que
des
riben la dinami
a del sistema son materia del problema propuesto 3.14.
Considerar que la
arga esferi
a es de 0.02 kg.
(a) Dise~nar un sistema de
ontrol predi
tivo basado en modelos para
ontrolar simultaneamente las posi
iones y
on mnimo tiempo de
estabiliza
ion y mnimo sobreimpulso empleando para ello una fuerza
de
ontrol es
alar, de modo tal que la grua-puente doble permanez
a
en posi
ion verti
al.
(b) Lo mismo que (a) pero empleando para ello una fuerza de
ontrol
matri
ial. La sele
ion de los horizontes de
ontrol y del tiempo de
muestreo es a
onvenien
ia del problema planteado.
Problema 6.16
346
Problema 6.17
Cap
tulo 7
Control Robusto
En este
aptulo se desarrollan dos pro
edimientos para dise~nar sistemas de
ontrol robusto. El primero emplea la estru
tura de un sistema de
ontrol
on
modelo interno y se apli
a a pro
esos univariables que presentan
omportamiento estable. El segundo pro
edimiento usa la estru
tura
lasi
a de un sistema
de
ontrol realimentado, pero su
ontrolador se dise~na mediante el prin
ipio de
ontrol
on modelo interno y se apli
a a pro
esos univariables inestables.
El sistema de
ontrol robusto debe ser
apaz de minimizar asintoti
amente
el error entre la salida y una traye
toria de referen
ia, no obstante la presen
ia
de disturbios y de in
ertidumbres en el modelado. Para tal efe
to, el sistema de
ontrol debe satisfa
er los requerimientos de estabilidad y rendimiento robustos.
En la antepenultima se
ion de este
aptulo se presenta la apli
a
ion:
ontrol
de la posi
ion de un servomotor D.C. sujeto a
argas no lineales. La penultima
se
ion, problemas resueltos, esta dedi
ada al dise~no de sistemas de
ontrol
robusto para diferentes pro
esos. Todos los ar
hivos
orrespondientes a los
ejer
i
ios, problemas, dise~nos, simula
iones y software desarrollados se pueden
des
argar del sitio: http://ee.uni.edu.pe/728681F.
7.1
La gura 7.1 muestra el diagrama de bloques de un sistema de
ontrol dis
reto
onven
ional, donde el bloque
es el
ontrolador, el bloque hr0(s) es la
reten
ion (o memoria) de orden
ero, el bloque p(s) es el pro
eso a
ontrolar,
el bloque
(s) es un ltro pasa bajo, y r, u, d, y e y
son las se~nales de
referen
ia, de
ontrol (la variable manipulada), de disturbio, de salida del
pro
eso (la variable
ontrolada), y de salida ltrada, respe
tivamente. La
348
r
Control Robusto
m
6
(z )
y
hr0 (s)
(s)
m
d
p(s)
-?
-y
k=0
kT )
(7.1)
1
X
sT
L[y (t) = y (e ) = y
(kT )e skT
k=0
(7.2)
T k= 1
T k= 1
(7.4)
Notar que hemos usado la rela
ion basi
a z = esT . Tambien es util re
ordar
que la transformada Z de y
(t) se puede expresar
omo:
Z [y
(kT ) = y
(z )
(7.5)
349
Una fun
ion ra
ional y periodi
a posee la propiedad de que sus valores para
fre
uen
ias mayores que =T se pueden determinar a partir de aquellos valores
orrespondiente al intervalo 0 w =T . Ademas, si y
(z) es
periodi
a, tambien es hermitiana; es de
ir:
y
(ei!T )H = y
(e i!T ) = y
(ei(! !)T )H ; =T < w < 2=T (7.6)
Considere ahora el diagrama de bloques mostrado en la gura 7.2
orrespondiente a la estru
tura de un sistema CMI (Control
on Modelo Interno),
la que
omparada
on la estru
tura
onven
ional, presenta grandes ventajas que vamos a dis
utir mas adelante. Las rela
iones entre el
ontrolador
lasi
o
(z) y el
ontrolador q(z) (el
ontrolador CMI) se obtienen de la
gura 7.2B o de su forma alternativa la gura 7.2C. Estas rela
iones son:
q
=
(7.7)
1 p~ q
(7.8)
q =
1 + p~
s
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 se~nal medible y, y
omo salida la se~nal 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
ion perfe
ta del pro
eso, enton
es la se~nal 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
ion, el sistema se
omporta
omo
uno de lazo abierto y los problemas usuales de estabilidad aso
iados
on la
realimenta
ion desapare
en.
Sin demostra
ion se presenta el
on
epto de estabilidad interna para el
sistema CMI de la gura 7.3A.
Estabilidad Interna: Asumiendo que el modelo es perfe
to, es de
ir que
p(s) = p~(s), enton
es el sistema CMI de la gura 7.3A es internamente estable s y solo si la planta p(s) y el
ontrolador q(z ) son estables.
350
Control Robusto
m
6
p~
d
-?
-?
m m
p~
-?
-?
p~
B
m m
q
p~
m
d
-y
-?
351
Por otra parte, el bloque
(s) representa un ltro que sirve para
ortar las
omponentes de alta fre
uen
ia de las se~nales
ontinuas antes del muestreo,
uando sea ne
esario. Su fun
ion de transferen
ia debe ser estable; es de
ir,
las ra
es de su e
ua
ion
ara
tersti
a deben poseer parte real negativa. Las
rela
iones siguientes son validas para la estru
tura CMI:
r(z ) = Z [r(s)
(7.10)
d(z ) = Z [d(s)
(7.11)
d
(z ) = Z [
(s)d(s)
(7.12)
y(z ) = Z [y(s)
(7.13)
e(z ) = Z [y(s) r(s)
(7.14)
y
(z ) = Z [
(s)y(s)
(7.15)
p~
(z ) = Z [hr0 (s)~p(s)
(s)
(7.16)
p
(z ) = Z [hr0 (s)p(s)
(s)
(7.17)
352
r
Control Robusto
m
6
q (z )
- hr0(s)
-
r
m
6
q (z )
m
6
p(s)
-
q (z )
- hr0(s)
(s)
m
d
p(s)
p~(s)
-?
p(s)
p~(s)
-?
(s)
r
p~ (z )
d
?
-
-?
y~
-?
Figura 7.3: Estru tura CMI. A: Estru tura muestreada. B: Estru tura equivalente a A pero no implementable. C: Estru tura dis reta.
353
p~(z )
p(z )
= Z [hr0(s)~p(s)
(7.18)
= Z [hr0(s)p(s)
(7.19)
Notar que la estru
tura de la gura 7.3B presenta una
ongura
ion equivalente a la estru
tura mostrada en la 7.3A. La gura 7.3C ilustra el sistema
CMI
ompletamente dis
reto.
7.2
Formula
i
on del Problema CMI
Para dise~nar el
ontrolador dis
reto q(z) debemos tener disponibles el modelo del pro
eso (que puede ser
ontinuo o dis
reto), los rangos de in
ertidumbre del modelo, los tipos de entradas y los objetivos de rendimiento.
7.2.1 El Modelo del Pro
eso
Los metodos de identi
a
ion mas populares generan modelos de fun
iones
de transferen
ia de pulso. Tales fun
iones son su
ientes para dise~nar el
sistema de
ontrol, pero no permiten el analisis del
omportamiento del sistema entre puntos de muestreo, lo que puede ser signi
ativamente peor que
el
omportamiento en los mismos puntos. Como las in
ertidumbres del modelo se des
riben en forma natural en el tiempo
ontinuo, resulta enton
es
onveniente tener el modelo
ontinuo del pro
eso que puede asumirse lineal e
invariante
on el tiempo y
on presen
ia de tiempos muertos. Es importante
en esta parte men
ionar la
ara
tersti
a
ausal de los sistemas.
Sistema Causal y Estri
tamente Causal: Un sistema g(z ) es propio o
ausal si limz!1g(z ) es nito. Un sistema propio es estri
tamente propio
si limz!1g(z ) = 0, y es semipropio si limz!1g(z ) > 0. Todos los sistemas
Hagamos que p(s) = p(j!) pertenez
a a una familia de pro
esos II denida
por:
II = fp : jp(j!) p~(j!)j `a (!)g
(7.20)
en donde `a (!) es la in
ertidumbre aditiva del pro
eso; es de
ir, que la
in
ertidumbre o error de modela
ion del pro
eso a
tual p(j!) se ubique en
354
Control Robusto
una region
ir
ular a
otada de radio
ono
ido `a(!), o de modo equivalente:
p(j!) = p~(j!) + `a (j!)
(7.21)
j`a (j!)j `a (!); 8 p II
(7.22)
La
ota de la in
ertidumbre multipli
ativa `m(!) del pro
eso se dene
omo:
`m (!) = `a (!)=jp~(j!)j
(7.23)
De las guras 7.3A o 7.3B podemos obtener
on p = p~:
y(s) r(s) = e(s) = hr0 (s)~p(s)q(esT )r (esT ) r(s);
r(s) = hr0 (s)r (esT )
(7.24)
y luego:
y(s)
e(s)
=
p~(s)q(esT ) , ~r (s) = 1 ~r (s);
r (s) =
~
(7.25)
sT
hr0 (s)r (e )
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 Ro y masa
Mo ), la
ual puede variar entre 0 y 0.045 kg. En base a la respuesta al
es
alon, ya sea del pro
eso o de su modelo nominal, sele
ione un tiempo
de muestreo ade
uado y determine la fun
ion de transferen
ia de pulso p~(z)
del modelo nominal del pro
eso.
Solu
ion: El programa ejem7 1.m determina p(s) y p~(s) para el pro
eso en
estudio. El resultado es el siguiente:
Kp
30:4696
=
p(s) = 2
s + ap s + bp s2 + 1:2707s + 14:4007
Kn
91:4375
p~(s) = 2
=
2
s + an s + bn s + 3:8133s + 17:9220
Observando las respuestas al es
alon en la gura 7.4, podemos
on
luir que
un tiempo de muestreo de T = 0.05 s es su
iente para poder
apturar la
355
urva de transi
ion produ
ida por la respuesta del pro
eso al es
alon. La
fun
ion de transferen
ia de pulso del modelo nominal del pro
eso resulta:
b z + b2
p~(z ) = 2 1
= 0:1070z + 0:1004
z + a1 z + a2 z 2 1:7858z + 0:8264
% ejem7_1.m CALCULO DE p(s) Y DE SUS MODELOS NOMINALES pn(s) Y pn(z)
lear all
% PARAMETROS DEL PROCESO NO LINEAL
Lo = 0.776;
JL = 3.5e-7;
bL = 1e-5;
Ro = 0.01;
Jm = 1.9062e-6; bm = 1.8338e-6; g = 9.81;
E = 31.0352e-3; R = 7.38;
m = 0.06377;
Ka
t = 14.9;
= 0.25; % Mo = 0,0.01,0.02,0.045;
K = 31.071e-3;
n = 19.741;
L = 4.64e-3;
B = n^2*bm +bL; Jeff = n^2*Jm +JL;
% PROCESO p(s) (EL SUBINDICE p SIGNIFICA PROCESO)
Mo = 0.045;
M = Jeff + (1/3)*m*Lo^2 + Mo*Lo^2 + (2/5)*Mo*Ro^2;
N = g*Lo*(Mo+m/2);
Ap = [0 1;-N/M -(B + n^2*K*E/R)/M;
Bp = [0;n*K*Ka
t/(R*M);
Cp = [1 0; Dp = [0;
[nump,denp=ss2tf(Ap,Bp,Cp,Dp);
% nump(s)/denp(s) = p(s) = Kp/(s^2 + ap*s + bp)
Kp = nump(3); ap = denp(2); bp = denp(3);
% MODELO NOMINAL pn(s) (EL SUBINDICE n SIGNIFICA NOMINAL)
Mo=0.0;
M = Jeff + (1/3)*m*Lo^2 + Mo*Lo^2 + (2/5)*Mo*Ro^2;
N = g*Lo*(Mo+m/2);
An = [0 1;-N/M -(B + n^2*K*E/R)/M;
Bn = [0;n*K*Ka
t/(R*M);
Cn = [1 0; Dn = [0;
[numn,denn = ss2tf(An,Bn,Cn,Dn);
% numn(s)/denn(s) = pn(s) = Kn/(s^2 + an*s + bn)
Kn = numn(3); an = denn(2); bn = denn(3);
% [Kp ap bp = [30.4696 1.2707 14.4007
% [Kn an bn = [91.4375 3.8133 17.9220
% MODELO NOMINAL DISCRETO pnz(z)
T = 0.05;
[numd,dend =
2dm(numn,denn,T,'zoh');
% numd(s)/dend(s) = pnz(z) = (b1*z + b2)/(z^2 + a1*z + a2)
a1 = dend(2); a2 = dend(3);
b1 = numd(2); b2 = numd(3);
356
Control Robusto
4
3
2
1
0
0
4
5
6
Tiempo en segundos
10
8
6
4
2
0
0
0.5
1.5
2
Tiempo en segundos
2.5
Figura 7.4: Respuestas a la se~nal es
alon del pro
eso y de su modelo nominal.
7.3
El pro
edimiento de dise~no que se des
ribe a
ontinua
ion es el mismo desarrollado 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)).
357
El pro
edimiento de dise~no
onsta de dos pasos. En el primero, denominado rendimiento nominal, se sele
iona un
ontrolador q~(z) que permita
obtener respuestas satisfa
torias del sistema a entradas de interes, sin tener
en
onsidera
ion restri
iones e in
ertidumbres en el modelo. En el segundo paso, denominado estabilidad y rendimiento robustos, se sele
iona un
ontrolador de la forma q(z) = q~(z)f (z), donde f (z) es un ltro pasa bajo
introdu
ido para lograr estabilidad y rendimiento robustos.
7.3.1 Rendimiento Nominal
Sistemas del Tipo m
d
lim
(1 p~(z)q(z)) = 0;
z !1 dz n
n
d
lim
(1
s!0 dsn
Dise~no del Preltro
(s)
(s)) = 0;
0n<m
0n<m
(7.26)
(7.27)
El objetivo prin
ipal del preltro
(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
ion. Es
ribamos:
(s) =
1 (s)
m (s)
(7.28)
on:
sm 1 + +
1 s + 1
(7.29)
m (s) = m 1
(s + 1)m 1
en donde
1(s) es un preltro 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
q~H (z )
el
(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:
q~H (z ) = z (pM (z )vM (z )) 1 fz 1 pA1 (z )vM (z )g
(7.31)
donde el operador f:g denota que luego de una expansion en fra
iones
par
iales del operando, solo seran retenidos los terminos que sean estri
tamente propios y estables; es de
ir, aquellos terminos que posean polos que
se ubiquen dentro del
r
ulo unitario (in
luso en z = 1). Notar tambien
que el pro
eso estable p~(z) ha sido fa
torizado en una parte pasa todo p~A(z)
y otra parte de mnima fase p~M (z),
omo sigue:
p~(z ) = p~A (z )~pM (z )
(7.32)
donde:
(1 (jH ) 1 )(z j )
p~A(z ) = z N hj=1
(7.33)
(1 j )(z (jH ) 1 )
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 zN p~(z) sea semipropio.
359
Tabla 7.1: Controlador q~H (z) para algunas entradas tpi
as.
v(s)
1
s
v (z )
z
z=
z e T =
z (1 eT = )
(z 1)(z e T = )
s2
Tz
(z 1)2
(~pM (z))
s+1
s(s+1)
1 (1 p~A1 (e
T =
)e
T =
(1
T=
))
)z+(~pA1 (e
e T = )z
T =
) 1)e
(~pM (z)) 1 (N +
+1)z z N
donde:
, dzd (~pA1(z)z N )jz=1
1
= Phj=1 (1 ( )(1) ( ) 1 )
H
j
j
H
j
T =
360
Control Robusto
Ejemplo 7.2
Determinar el
ontrolador optimo
uadrati
o q~H (z) para el pro
eso p(z) del
ejemplo 7.1, asumiendo que la entrada v(s) es un es
alon.
Solu
ion: Del ejemplo 7.1
ono
emos p~(z ) para T = 0.05 s:
b z + b2
p~(z ) = 2 1
z + a1 z + a2
Ademas, se debe
umplir que p~(z) = p~A(z)~pM (z), de modo tal que zN p~(z)
sea semipropio y por
onsiguiente, N = 1. El
ero b2 =b1 = -0.9874 de p~(z)
se ubi
a dentro del
r
ulo unitario; enton
es j = 0 y:
z (b1 z + b2 )
p~(z )
p~A(z ) = z 1 ;
p~M (z ) =
=
2
p~A (z ) z + a1 z + a2
Empleando ahora la tabla 7.1 para v(z) = z z 1 obtenemos:
z 2 + a1 z + a2
q~H (z ) = (~pM (z )) 1 =
z (b1 z + b2 )
Dise~no del Controlador CMI q~(z )
Deseamos obtener el
ontrolador CMI q~(z) postulando:
q~(z ) = q~H (z )~q (z )B (z )
(7.36)
donde q~ (z)
an
ela todos los polos de q~H (z) que posean parte real negativa
y los sustituye
on polos en el origen
on el proposito de que el sistema tienda
a
ontrolarse
on mnimo tiempo de estabiliza
ion. B (z) se sele
iona para
preservar el tipo m del sistema.
Sean i ; i = 1; : : : ; , los polos de q~H (z)
on parte real negativa. Enton
es
podemos es
ribir:
z i
(7.37)
q~ (z ) = z i=1
1 ki
B (z ) =
m
X1
i=0
bi z
(7.38)
donde m es el tipo del sistema y los oe ientes bi; i = 0; : : : ; m 1, se sele ionan de modo tal que q~(z) satisfaga la e ua ion (7.26). Por onstru ion,
361
d
lim
(1 q~ (z)B (z)) = 0;
z !1 dz n
n = 0; 1; : : : ; m
m
X1
i=0
bi z
= b0 + b1z
b0 = 1 b1 ;
b1 =
X
i=1
1; m = 2
i
(7.39)
(7.40)
(7.41)
(7.42)
i
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:
q~ (z ) = z
Luego:
z
j =1
j
kj
1
= z 1 z1
1
k1
2
(z) = z (b+ +a1bz +)z2a2
1
362
Control Robusto
El ltro f (z) debe preservar las propiedades asintoti
as del sistema de lazo
errado; es de
ir, la e
ua
ion (7.26). Por
onsiguiente, para que el sistema
sea del tipo m, el ltro f (z) debe satisfa
er:
dn
(1
f (z )) = 0;
n
dz
z =1
0n<m
(7.44)
363
modo tal que se satisfaga la e
ua
ion (7.47). Esta e
ua
ion pone una
ota
inferior a . Di
ha
ota tambien se puede obtener del gra
o de Bode
de:
(jp~(ej!T q~(eiwT )j`m (!)) 1
(7.48)
Si esta
antidad nun
a es menor que 1, enton
es = 0. Si se obtuvieran
valores menores que 1, puede ser determinada a partir del gra
o de
Bode de f (z). Este gra
o resulta pra
ti
amente similar al obtenido
on el
ltro de primer orden dado en la e
ua
ion (7.43), siempre que el numero de
oe
ientes w en la e
ua
ion (7.45) sea su
ientemente grande. Por ejemplo,
si (jp~(ej!T q~(eiwT )j`m (!)) 1 de
re
e en la forma que lo ha
e un sistema de
primer orden, hasta al
anzar un valor de 0:7 en ! = !`, enton
es:
= e T w
(7.49)
`
Para rendimiento robusto, el
ontrolador tiene que ser dise~nado para que:
M (w) , jq^(j!)j`a (!) + j1 p~(j!)^q (j!)jW (!) < 1; 0 ! =T (7.51)
q^(j!) = q~(ej!T )f (ej!T )Z [hr0 (s)
(s)
donde se ha introdu
ido una fun
ion de peso W (!) sobre la
ual se dis
ute
a
ontinua
ion. La sele
ion de W (w) depende de los requerimientos de
rendimiento impuestos por el dise~nador. Es razonable usar la fun
ion de
sensitividad ideal (s) = p~(s)~q(s)
omo una gua para la busqueda de W (!):
W (!) 1 j1 p~(j!)~q (j!)j
(7.52)
364
Control Robusto
Para que la
ondi
ion anterior resulte una fun
ion propia (requerimiento que
tambien es ne
esario para
ualquier W (w)), se deben
umplir las
ondi
iones
siguientes para m 1:
W (1) 1 1;
W (0) 1 0
(7.53)
Ejemplo 7.4
Determinar una fun
ion de peso ade
uada para el pro
eso servomotor D.C.
sujeto a
argas no lineales (ver ejemplos 7.1, 7.2 y 7.3).
Solu
ion: Podemos sele
ionar la siguiente fun
ion de peso:
0:5s + 1 ; s = j!
W (s) 1 = 0:4
0:1s + 1
que
umple las
ondi
iones estable
idas en la e
ua
ion (7.53). Sin embargo,
se re
omienda emplear la forma general dada en la e
ua
ion (7.52), debido a
que nos permite
ambiar la magnitud de la fun
ion de peso usando un fa
tor
multipli
ativo, siempre que no se sobrepase la
ondi
ion dada en (7.52).
Esta forma de variar la fun
ion de peso propor
iona mayor
exibilidad en
el pro
eso de veri
a
ion del rendimiento robusto, tal
omo veremos mas
adelante.
Dise~no del Filtro
La forma mas simple de dise~nar el ltro f (z) es espe
i
ar su estru
tura dada
en la e
ua
ion (7.45) y luego tratar de satisfa
er la e
ua
ion (7.51) variando el parametro . In
rementando , el primer termino de M (w) de
re
e
mientras que el segundo termino
re
e. Por
onsiguiente, dependiendo de `a
y W , podra no existir un valor de para que la e
ua
ion (7.45) sea satisfe
ha. Asumiendo que q~(z) y f (z) se sele
ionan de modo tal que el sistema
resulte del tipo m = 1 (para el
ual se
umple que p~(z)~q(z)f (z)jz=1 = 1) o
mayor, y que `m (0) < 1, enton
es, siempre es posible
onseguir rendimiento
robusto para ! = 0 y para
ualquier peso W (!).
El parametro debe ser sintonizado para que se satisfagan las
ondi
iones dadas en las e
ua
iones (7.47) y (7.51). Desde que es posible imponer
la
ota inferior de , enton
es, para determinar di
ho parametro, debemos resolver el siguiente problema de optimiza
ion:
min max M (!) , (T )
(7.54)
1 0!=T
365
Dise~nar 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 estabilidad y rendimiento robustos. Asumir: `m(!) j`m (ei! )j y `a (!) j`a (!)j.
Solu
ion: 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 determina el rendimiento robusto del pro
eso. En el gra
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
ion (7.54). Notar que en la
veri
a
ion del rendimiento robusto estamos empleando un fa
tor de 0.5 en
la fun
ion 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
367
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
30
0
2
Magnitud de M en dB
Magnitudes en dB
20
10
10
20
6
8
10
12
30
40 0
10
14
10
Frecuencia angular
10
(rad/s)
16 0
10
10
Frecuencia angular
10
(rad/s)
Figura 7.5: (a) Magnitudes de jp~q~`j 1 y jf (z)j (en trazos) para veri
ar la
estabilidad. (b) Magnitud de M para veri
ar el rendimiento robusto.
368
Control Robusto
Cuando el tiempo de muestreo es su
ientemente peque~no, enton
es el sistema dis
reto tiende a
omportarse
omo uno
ontinuo, in
rementandose de
esta manera el rendimiento nominal del sistema. Sin embargo, el
osto
omputa
ional es mayor y la apari
ion de una alta fre
uen
ia de muestreo del
orden de 1=T puede ha
er que disminuya el rendimiento robusto. Por
onsiguiente, tiempos de muestreo su
ientemente grandes pueden ser a
eptables
para
onseguir estabilidad robusta y rendimiento robusto. Sin embargo, si
el tiempo de muestreo fuera muy grande, podra ser imposible satisfa
er los
requerimientos para lograr un rendimiento robusto.
Como regla, =T se puede sele
ionar mas grande que el an
ho de banda
sobre el
ual se desea un buen rendimiento. Otra forma de sele
ionar
T es deteminar la respuesta al es
alon del pro
eso para poder sele
ionar
un tiempo T su
ientemente peque~no, que nos permita muestrear y luego
re
uperar sin di
ultad la
urva de respuesta resultante.
Si para un
ierto tiempo de muestreo T se en
uentra que (T ) < 1,
enton
es podemos seguir in
rementando el tiempo de muestreo. Por otra
parte, si para un determinado T resulta que (T ) > 1, signi
a enton
es
que las in
ertidumbres asumidas en el modelo del pro
eso y en la estru
tura
del
ontrolador deben ser reajustadas.
Ejemplo 7.6
Sum1
z2+a1.z+a2
(b1+b2)z2
Controlador q~(z)
(1alfa)z
zalfa
Filtro
u_ej7_6
Mux
Kp
s2+ap.s+bp
Proceso p(s)
Mux
Grfico
q_ej7_6
Kn
s2+an.s+bn
control
referencia
.
369
posicin
Figura 7.6: Diagrama de bloques para la simula
ion del sistema de
ontrol
robusto dise~nado.
Posicin en rad
1
0.8
0.6
0.4
0.2
Control en voltios
0
0
4
5
6
Tiempo en segundos
10
4
5
6
Tiempo en segundos
10
0.3
0.2
0.1
0
370
Control Robusto
El pro
edimiento de dise~no del
ontrolador robusto para pro
esos inestables,
es el mismo que para pro
esos estables. Primero se dise~na el
ontrolador q~H y
luego se le modi
a de modo tal que permita evitar el problema debido a las
os
ila
iones que se pueden originar entre muestras. En esta forma obtenemos
el
ontrolador q~ = q~H q~ B (z). Este ultimo
ontrolador se modi
a
on un
ltro f (z) para poder garantizar estabilidad y rendimiento robustos. El
ontrolador resultante posee la forma: q(z) = q~(z)f (z).
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 `. Denamos:
(1 (jH ) 1 )(z j )
bp(z ) = j=1
(7.55)
(1 j )(z (jH ) 1 )
y fa
tori
emos la planta en una por
ion pasa todo pA(z) y otra por
ion
semipropia de mnima fase pM (z) (ver la subse
ion 7.3.1):
p~(z ) = p~A (z )~pM (z )
(7.56)
De manera analoga 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 denamos:
(1
(
jH ) 1 )(z j )
1
bv (z ) = j =1
(7.58)
(1 j )(z (jH ) 1 )
Asumamos ademas que v(z) posee al menos ` polos en z=1. Enton
es el
ontrolador optimo H2 (z) viene dado por:
q~H (z ) = zbp (z )(pM (z )bv (z )vM (z )) 1 f(zbp (z )pA (z )) 1 bv (z )vM (z )g (7.59)
donde el operador f:g denota que luego de una expansion en fra
iones par
iales del operando, solo seran retenidos los terminos que sean estri
tamente
propios, ex
eptuando aquellos
orrespondiente a los polos de pA(z) 1 .
Notar que para pro
esos estables: bp = bv = 1. Si todos los polos
inestables del pro
eso p(s) se ubi
an en el origen, se puede usar la tabla 7.1.
371
1 ki
(7.61)
i
Sean i, i = 1; : : : ; , las ra
es inestables (in
luyendo z=1)
on multipli
idad mi
orrespondientes al mnimo denominador
omun de p(z) y v(z)
Tener en
uenta que v(z) y p(z) poseen la misma
antidad de polos en z = 1.
Los requerimientos para garantizar el tipo del sistema y la estabilidad interna pueden ser uni
ados mediante la rela
ion siguiente:
q~ (z ) = z
k
d
(1 q~ (z)B (z))
dz k
= 0;
z =i
k = 0; : : : ; mi
1;
i = 1; : : : ;
(7.62)
M
X1
j =0
X
i=1
bj z
(7.63)
(7.64)
mi
dk
(1
q~ ( 1 )B ( 1 ))
=i 1
= 0;
k = 0; : : : ; mi
1;
i = 1; : : : ; :
(7.65)
372
Control Robusto
)z
z
(7.66)
dz k
(1
f (z ))
z =i
= 0;
k = 0; : : : ; mi
1;
i = 1; : : : ;
(7.67)
Los
oe
ientes 0 ; : : : ; ! se sele
ionan de modo tal que para un determinado , se
umpla la e
ua
ion (7.67), generandose M e
ua
iones lineales
on
M in
ognitas. Observar que para = 1, se tiene 1 = 1, m1 = 1 y (z ) = 1.
Si M = 2,
onviene sele
ionar ! 2 para evitar la solu
ion trivial.
7.4.3 Estabilidad y Rendimiento Robustos
373
(7.71)
(7.72)
374
Control Robusto
Los pasos (2) al (7) del pro
edimiento de dise~no fueron
ubiertos en los
ejemplos 7.1 al 7.5.
7.6.3 Simula
ion del Sistema de Control Robusto
La simula
ion realizada en el ejemplo 7.6
onsidero una planta p(s) lineal.
En la siguiente simula
ion, la planta a
onsiderar es su modelo no lineal,
on
el a~nadido de dos bloques de satura
ion (para evitar saturar el ampli
ador
de poten
ia) mas una se~nal de realimenta
ion que es propor
ional al torque
no lineal produ
ido por la
arga no lineal. No se esta
onsiderando el efe
to
375
S1
z2+a1.z+a2
(b1+b2)z2
(1alfa)z
zalfa
Controlador q~(z)
Filtro
Referencia
u_disrob
u
Saturacin 1
gan5
Saturacin 2
n*K
R
S3 Subsistema
elctrico
n*E
gan2
Graph
Mux
Control
Kact
Mux
S4
Kn
s2+an.s+bn
Modelo nominal pn(s) + S2
1
1
w
s
Ms+B
Subsistema Integrador
mecnico
q_disrob
N
gan3
MATLAB
Function
Salida
Seno
Figura 7.8: Diagrama de bloques para la simula
ion del sistema de
ontrol
robusto dise~nado,
onsiderando el modelo no lineal del pro
eso.
376
Control Robusto
Posicin en rad
0.5
0
0
8
10
12
Tiempo en segundos
14
16
18
20
8
10
12
Tiempo en segundos
14
16
18
20
Control en voltios
0.25
0.2
0.15
0.1
0.05
0
0
Figura 7.9: Resultado de la simula
ion del sistema de
ontrol robusto empleando el modelo no lineal del pro
eso.
7.6.5 Implementa
ion del Software
377
378
Control Robusto
/* 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;
/* Ini
ializa
ion de variables */
x1p=0.;
xn1p=0.;
xn1pp=0.;
ep=0.;
epp=0.;
up=0.;
upp=0.;
ConfigurarHardware(0x272, 0x270, 0x271, 0x264, Fs);
EnviarVoltage(Ofst);
p0 = LeerPosi
ion();
} void Mide_Variables(
float *x1, float *xn1, float *r, float *vel, float t)
{
/* referen
ia: r= r(t)*/
*r = M_PI/4;
/* Ahora leo la posi
ion */
pk = LeerPosi
ion();
*x1 = x1p + ((float)(abs(pk-p0)>8000?0:pk-p0))*ESCALA;
p0 = pk;
/* Modelo nominal */
*xn1 = - a1*xn1p - a2*xn1pp + b1*up + b2*upp;
/* A
tualizamos los estados */
x1p=*x1;
xn1p=*xn1; xn1pp=xn1p;
epp=ep;
ep=e;
/* error */
e = *r - (*x1-*xn1);
w =(e+a1*ep+a2*epp)/(b1+b2);
/* velo
idad angular */
*vel= (5.*(*x1-x1p)+ *vel)/(1.+5.*T);
}
379
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
Problemas Resueltos
El problema 3.2 presenta las e ua iones que gobiernan la dinami a longitudinal de un avion omer ial volando a velo idad de ru ero (altura y velo idad onstantes). El ontrol del angulo de in lina ion del avion (ver
381
(grados)
40
Posicin
50
20
30
10
0
0
10
15
20
25
30
Tiempo en segundos
35
40
45
50
10
15
20
25
30
Tiempo en segundos
35
40
45
50
0.2
0.15
0.1
0.05
0
0
Figura 7.10: Resultado experimental del sistema de
ontrol de posi
ion robusto del servomotor D.C. sujeto a una
arga no lineal maxima.
gura 3.14) es un problema longitudinal a resolver. El objetivo de
ontrol es
enton
es dise~nar un autopiloto que manipulando el angulo e del de
e
tor
de eleva
ion,
ontrole el angulo de in
lina
ion del avion. Se pide dise~nar
un sistema de
ontrol robusto
on modelo interno que genere una fuerza de
ontrol tal que la salida del pro
eso (el angulo de in
lina
ion ) presente un
sobreimpulso menor al 10 % y un tiempo de estabiliza
ion menor que 4 s,
on
un error en estado estable nulo. Tomar 0.2 rad
omo entrada de referen
ia.
Realizar el
al
ulo del
ontrolador para una entrada v es
alon. El sistema
dise~nado debe ser del tipo m = 1. La sele
ion del tiempo de muestreo es a
onvenien
ia del dise~no. Asumir: `m (!) j`m(ei! )j y `a(!) j`a (ei! )j.
Solu
ion: Los rangos de varia
ion de los parametros se muestran en el
programa p4rob1.m, al igual que el pro
edimiento en detalle para dise~nar
el
ontrolador robusto
uando la entrada v es un es
alon. La gura 7.12
(ar
hivo p4rob1s.m) es el diagrama de bloques empleado en la simula
ion
del sistema dise~nado y requiere que previamente se eje
ute el programa
p4rob1.m. Los resultados de la simula
ion se muestran en la gura 7.13
(obtenida
on el ar
hivo p4rob1r.m). El sistema dise~nado
umple los requerimientos de estabilidad y rendimiento robustos, tal
omo se apre
ia en la
gura 7.11.
382
Control Robusto
383
% (z^3+a1*z^2+a2*z+a3)*(z-k1)/((b1*z^3+b2*z^2+b3*z)*z*(1-k1))
% CALCULO DEL FILTRO PARA m=1: f(z)=(1-alfa)*z/(z-alfa);
% 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.33; % CUMPLE CONDICIONES DE ESTABILIDAD Y RENDIMIENTO
% ROBUSTOS PERO REQUIERE DE UNA ENTRADA U MUY GRANDE; POR ELLO
% PARA EL DISE~NO FINAL EL PARAMETRO SE FIJA EN: alfa=0.5
for w = 0:pi/T
% pi/T =
s=i*w; z=exp(s);
pnz = (b1*z^2+b2*z+b3)/(z^3+a1*z^2+a2*z+a3);
pz = (bp1*z^2+bp2*z+bp3)/(z^3+ap1*z^2+ap2*z+ap3);
laz = pz - pnz;
lmz = laz/pnz;
qtilde=(z^3+a1*z^2+a2*z+a3)*(z-k1)/((b1*z^2+b2*z+b3)*z*(1-k1));
mag_dB(w+1) = 20*log10(1/(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
% pi/T =
s=i*w; z=exp(s);
pn=(an*s+bn)/(s^3+
n*s^2+dn*s);
p= (ap*s+bp)/(s^3+
p*s^2+dp*s);
la = p - pn;
lm = la/pn;
qtilde=(z^3+a1*z^2+a2*z+a3)*(z-k1)/((b1*z^2+b2*z+b3)*z*(1-k1));
f = (1-alfa)*z/(z-alfa);
q = qtilde*f;
G = 0.1; 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
% 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)')
384
Control Robusto
(rad/s)')
(rad/s)')
(b)
5
30
Magnitud de M en dB
Magnitudes en dB
(a)
40
20
10
10 0
10
10
15
10
Frecuencia angular
10
(rad/s)
20 0
10
10
Frecuencia angular
10
(rad/s)
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 hr a una distan
ia d = 10 m del
horno y propor
iona la se~nal de voltaje vr . El horno puede modelarse
omo
385
S1
(1alfa)z
zalfa
Filtro
ap.s+bp
s3+cp.s2+dp.s
Mux
Graph
Proceso p(s)
Mux
Referencia
2+(a3a2*k1)za3*k1
z4+(a1k1)z 3+(a2a1*k1)z
.
(1k1)*b1z4+(1k1)*b2z3+(1k1)*b3z2
Controlador q~
an.s+bn
s3+cn.s 2+dn.s
Modelo nominal pn(s)
u_p4rob1
y_p4rob1
Control u
Salida y
+ S2
Inclinacin (rad)
0.25
0.2
0.15
0.1
0.05
0
0
4
5
6
Tiempo en segundos
10
4
5
6
Tiempo en segundos
10
Deflector (rad)
1.5
1
0.5
0
0.5
0
Figura 7.13: A ngulo de in
lina
ion (salida
ontrolada) y angulo del de
e
tor
de eleva
ion (se~nal de
ontrol) para el problema 7.1.
386
Control Robusto
un pro
eso de primer orden. La gura 3.24(b) muestra la F.T del pro
eso.
Dise~nar un sistema de
ontrol robusto
on modelo interno para
ontrolar
la humedad del material en la banda transportadora. El uni
o parametro
in
ierto a
onsiderar es el tiempo muerto v=d. Asuma
omo valor nominal
Tn = 9 s y
omo tiempo muerto del pro
eso Tp = 11 s. Las espe
i
a
iones
de dise~no son: tiempo de estabiliza
ion menor que 40 s, error en estado
esta
ionario nulo y por
entaje de sobreimpulso menor al 5 %. Realizar el
al
ulo del
ontrolador para una entrada v es
alon. El sistema dise~nado debe
ser del tipo m = 1. La sele
ion del tiempo de muestreo es a
onvenien
ia
del dise~no. Asumir: `m (!) j`m(ei! )j y `a(!) j`a (!)j.
Solu
ion: El programa p10rob1.m detalla el pro
edimiento para dise~nar el
ontrolador robusto
uando la entrada v es un es
alon. La gura 7.15 (ar
hivo p10rob1s.m) es el diagrama de bloques empleado en la simula
ion del sistema dise~nado y requiere previamente que se eje
ute el programa p10rob1.m.
El resultado de la simula
ion se muestra en la gura 7.16 (obtenida
on el
ar
hivo p10rob1r.m). El sistema dise~nado
umple los requerimientos de estabilidad y rendimiento robustos, tal
omo se apre
ia en la gura 7.16.
% p10rob1.m SOLUCION AL PROBLEMA 7.2
lear all
% FT (FUNCION DE TRANSFERENCIA) DEL PROCESO
% vr(s)/u(s) = K*exp(-d*s/v)/(s^2 + a*s + b): ESTRUCTURA DE LA FT
K=10; a=1.5; b=0.5;
% DESEAMOS ROBUSTEZ EN EL TIEMPO MUERTO CON RANGO:
Tn=9; Tp=11; % (n: NOMINAL, p: PROCESO)
numn=[0 0 K; denn=[1 a b;
% pn=K*exp(-Tn*s)/(s^2+a*s+b)
nump=[0 0 K; denp=[1 a b;
% p=K*exp(-Tp*s)/(s^2+a*s+b)
% MODELO NOMINAL DISCRETO pnz(z)
T = 0.5; % z = exp(T*s) => exp(Tn*s)=z^(Tn/T)=z^18
[numd,dend =
2dm(numn,denn,T,'zoh');
% numd(z)/dend(z)=(b1*z+b2)/(z^2+a1*z+a2)
a1=dend(2); a2=dend(3);
b1=numd(2); b2=numd(3);
% numD(z)/denD(z)=pnz(z)=z^(-Tn/T)*numd(z)/dend(z)
% pnz(z) = z^(-Tn/T)*(b1*z+b2)/(z^2+a1*z+a2)
%
= (b1*z+b2)/(z^20+a1*z^19+a2*z^18)
% PROCESO DISCRETO pz(z)
% T = 0.5; z = exp(T*s) => exp(Tp*s)=z^(Tp/T)=z^22
[numdp,dendp =
2dm(nump,denp,T,'zoh');
% numdp(z)/dendp(z)=(bp1*z+bp2)/(z^2+ap1*z+ap2)
387
ap1=dendp(2); ap2=dendp(3);
bp1=numdp(2); bp2=numdp(3);
% numDp(z)/denDp(z)=pz(z)=z^(-Tp/T)*numdp(z)/dendp(z)
% pz(z) = z^(-Tp/T)*(bp1*z+bp2)/(z^2+ap1*z+ap2)
%
= (bp1*z+bp2)/(z^24+a1*z^23+a2*z^22)
%
%
%
%
%
%
%
DETERMINACION DE pnz(z)=pA(z)*pM(z):
roots(numD): -0.1353
COMO pnz NO POSEE CEROS FUERA DEL CIRCULO UNITARIO (CU) Y COMO
z^N*pnz DEBE SER SEMIPROPIO, ENTONCES N=19; LUEGO pA=z^(-N) Y
pM=pnz/pA=z^19*(b1*z+b2)/(z^20+a1*z^19+a2*z^18)
DETERMINACION DE v(z)=vA(z)*vM(z)=z/(z-1) PARA UNA ENTRADA ESCALON:
SE SABE POR EJERCICIOS ANTERIORES QUE vA=1; vM=z/(z-1)
%
%
%
%
%
%
CALCULO DE qtilde_H=(pM(z))^(-1):
SEGUN TABLA, qtilde_H=(z^20+a1*z^19+a2*z^18)/(b1*z^20+b2*z^19)
CALCULO DE qtilde_:
(b1*z^4+b2*z^3)=z^3*(b1*z+b2) => CANCELAR z=-b2/b1=-0.1353
Y SUSTITUIRLO CON z=0; ESTO ES, k1=-0.1353, rho=1, Y
qtilde_=z^(-rho)*(z-k1)/(1-k1)=z^(-1)*(z-k1)/(1-k1)
k1=-0.1353;
CALCULO DE qtilde=qtilde_H*qtilde_*B(z) (PARA m=1):
PARA QUE EL SISTEMA SEA DEL TIPO m=1, B(z)=1, ENTONCES:
qtilde=qtilde_H*qtilde_=
(z^20+a1*z^19+a2*z^18)*(z-k1)/(z*(b1*z^20+b2*z^19)*(1-k1))
CALCULO DEL FILTRO CON m=1: f(z)=(1-alfa)*z/(z-alfa);
CALCULO DE LA FUNCION DE PESO PARA m=1: W(w)>=G/(abs(1-pn*qtilde))
CONDICIONES: W^(-1)(infty) MAYOR QUE 1, W(0)^(-1) MAYOR QUE 0
%
%
%
%
%
%
%
388
Control Robusto
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=K*exp(-Tn*s)/(s^2+a*s^2+b*s);
p= K*exp(-Tp*s)/(s^2+a*s^2+b*s);
la = p - pn;
lm = la/pn;
qtilde=(z^20+a1*z^19+a2*z^18)*(z-k1)/...
(z*(b1*z^20+b2*z^19)*(1-k1));
f = (1-alfa)*z/(z-alfa);
q = qtilde*f;
G = 0.9; 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
% 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
389
(a)
(b)
15
10
0
5
2
Magnitud de M en dB
Magnitudes en dB
0
5
10
15
20
25
10
30
35 0
10
12 0
10
10
Frecuencia angular
(rad/s)
10
Frecuencia angular
(rad/s)
S1
(1alfa)z
zalfa
Filtro
K
s2+as+b
Proceso p(s)
Mux
Tp
Graph
Mux
Referencia
z20
+a1.z 19
+a2.z 18.
b1.z 20
+b2.z 19
Controlador q~H
zk1
(1k1)z
Controllador q~_
K
s2+as+b
Modelo nominal pn(s) Tn
y_p10rob
Salida y
+ S2
u_p10rob
Control u
390
Control Robusto
Humedad
0.5
0
0
10
20
30
40
50
60
Tiempo en segundos
70
80
90
100
10
20
30
40
50
60
Tiempo en segundos
70
80
90
100
Flujo calorfico
0.06
0.04
0.02
0
0.02
0
%
%
%
%
%
%
391
392
Control Robusto
% 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 v(z)=vA(z)*vM(z)=z/(z-1) PARA ENTRADA ESCALON:
% SE SABE POR EJEMPLOS ANTERIORES QUE: vA=1; vM=z/(z-1)
% 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;
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);
% 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.8;
for w = 0:pi/T
% pi/T =
s=i*w; z=exp(s);
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);
pz=(bz1*z^5+bz2*z^4+bz3*z^3+bz4*z^2*bz5*z+bz6)/...
(z^6+az1*z^5+az2*z^4+az3*z^3+az4*z^2+az5*z+az6);
laz = pz - pnz;
lmz = laz/pnz;
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);
mag_dB(w+1) = 20*log10(1/(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=(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);
p=(bp1*s^5+bp2*s^4+bp3*s^3+bp4*s^2+bp5*s+bp6)/...
(s^6+ap1*s^5+ap2*s^4+ap3*s^3+ap4*s^2+ap5*s+ap6);
la = p - pn;
lm = la/pn;
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);
f = (1-alfa)*z/(z-alfa);
q = qtilde*f;
G = 0.72; 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
394
Control Robusto
(b)
40
0
1
30
2
3
Magnitud de M en dB
Magnitudes en dB
20
10
4
5
6
7
8
10
9
20 0
10
10
Frecuencia angular
10
(rad/s)
10 0
10
10
Frecuencia angular
10
(rad/s)
+
r
395
numc(z)
denc(z)
S1
Controlador c(z)
u_p7rob1
nump(s)
denp(s)
y
Mux
Graph
Proceso
p(s)
Mux
y_p7rob1
Control u
Salida y
Velocidad (m/s)
15
10
0
0
4
5
6
Tiempo en segundos
10
4
5
6
Tiempo en segundos
10
300
Fuerza (N)
250
200
150
100
50
0
0
Figura 7.19: Velo
idad del
arro de maquinas y fuerza de
ontrol para el
problema 7.3.
396
Control Robusto
Problema 7.4
La gura 3.22 muestra el pro
eso as
ensor tratado en el problema 3.6. Sin
embargo, para este problema
onsidere que el a
tuador posee la siguiente
fun
ion de transferen
ia:
x1 (s)
= Ka ; 0:008 Ka 0:012
v(s) s + 0:2
El problema a resolver es posi
ionar suavemente el as
ensor en un piso determinado, lo que signi
a sobreimpulso nulo (para que no se pase de piso)
y tiempo de estabiliza
ion menor que 8 s. Para no saturar al a
tuador (un
ampli
ador de poten
ia), la se~nal de
ontrol debe estar dentro del rango
de 200 volt. Dise~nar un sistema de
ontrol robusto que
umpla las espe
i
a
iones pedidas. Realizar el
al
ulo del
ontrolador para una entrada
v es
alon. El sistema dise~nado debe ser del tipo m = 1. La sele
ion del
tiempo de muestreo es a
onvenien
ia del dise~no. Asumir: `m(!) j`m (ei! )j
y `a(!) j`a (!)j.
Solu
ion: El programa p8rob1.m detalla el pro
edimiento para dise~nar
el
ontrolador robusto
uando la entrada v es un es
alon. La gura 7.21
(ar
hivo p8rob1s.m) es el diagrama de bloques empleado en la simula
ion
del sistema dise~nado y requiere pque reviamente se eje
ute el programa de
p8rob1.m. El resultado de la simula
ion se muestra en la gura 7.22 (obtenida
on el ar
hivo p8rob1r.m). El sistema dise~nado
umple los requerimientos
de estabilidad y rendimiento robustos, tal
omo se apre
ia en la gura 7.20.
% p8rob1.m SOLUCION AL PROBLEMA 7.4
lear all
% PROCESO
A
= [-0.2 0 0 0;1 0 0 0;2 0 -2 0;5 0 0 -5;
B
= [0.012;0;0;0;
C
= [0 1 0 0; D
= [0;
[nump,denp=ss2tf(A
,B
,C
,D
);
bp2=nump(3); bp3=nump(4); bp4=nump(5);
ap1=denp(2); ap2=denp(3); ap3=denp(4); ap4=denp(5);
% p=(bp2*s^2+bp3*s+bp4)/(s^4+ap1*s^3+ap2*s^2+ap3*s);
% PROCESO DISCRETO
T = 0.8; % TIEMPO DE MUESTREO
[G,H,C,D=
2dm(A
,B
,C
,D
,T,'zoh');
[numz,denz=ss2tf(G,H,C,D);
az1 = denz(2); az2 = denz(3); az3=denz(4); az4=denz(5);
bz1 = numz(2); bz2 = numz(3); bz3=numz(4); bz4=numz(5);
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);
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
Magnitud de M en dB
Magnitudes en dB
1.5
2
2.5
3
3.5
10
4
15 0
10
10
Frecuencia angular
4.5 0
10
(rad/s)
10
Frecuencia angular
(rad/s)
Problemas Propuestos
Problema 7.5
El problema 3.1 des
ribe en detalle las e
ua
iones que gobiernan la dinami
a
del sistema de suspension de un bus (ver gura 3.12). Dise~nar un sistema de
ontrol robusto
on modelo interno para lograr el objetivo de
ontrol que se
formula a
ontinua
ion. La salida del pro
eso y = x2 x1 (referen
ia nula) no
400
Control Robusto
+
r
numc(z)
denc(z)
S1
Controlador c(z)
u_p8rob1
nump(s)
denp(s)
Mux
Graph
Proceso
p(s)
Mux
y_p8rob1
Control u
Salida y
2.5
2
1.5
1
0.5
0
0
4
5
6
Tiempo en segundos
10
4
5
6
Tiempo en segundos
10
Voltaje de control
200
150
100
50
0
50
0
Figura 7.22: Posi
ion del as
ensor y fuerza de
ontrol (problema 7.4).
debe presentar sobreimpulsos mayores que 5 %. Luego de aproximadamente
20 segundos, las os
ila
iones originadas por un disturbio es
alon de 10
m
provo
ada por imperfe
iones en la pista, pra
ti
amente deben desapare
er.
El parametro in
ierto del pro
eso es la masa del bus, la que sin pasajeros es
de m1 = 2500 kg y lleno de pasajeros
ambia a 3500 kg. Realizar el
al
ulo
del
ontrolador para una entrada v es
alon. El sistema dise~nado debe ser
del tipo m=1. Sele
ionar un tiempo de muestreo
onveniente.
401
Problema 7.6
La gura 2.2 muestra dos tanques identi
os
olo
ados en
as
ada. La se
ion
horizontal A=9 m2 de
ada tanque es
onstante. El objetivo de
ontrol es
ontrolar la altura H2 empleando el
ujo Qo. La dedu
ion del modelo
linealizado del pro
eso se des
ribe en el ejemplo 2.1. Las espe
i
a
iones de
dise~no son: tiempo de estabiliza
ion menor que 15 s, sobreimpulso menor al
5 % y error nulo en estado estable. El
ujo de entrada (la se~nal de
ontrol)
no debe sobrepasar los 3 m3/s. Dise~nar un
ontrolador robusto
on modelo
interno que logre
umplir los requerimientos anteriores. Realizar el
al
ulo
del
ontrolador para una entrada v es
alon. El sistema dise~nado debe ser
del tipo m = 1. La sele
ion del tiempo de muestreo es a
onvenien
ia del
dise~no.
Problema 7.7
El pro
eso ele
trome
ani
o mostrado en la gura 3.26 se des
ribe en el problema 3.8. Dise~nar un sistema de
ontrol robusto
on modelo interno para
ontrolar la velo
idad angular del eje del motor mediante el voltaje de entrada que puede variar entre 100 volt. Realizar el
al
ulo del
ontrolador
para una entrada v es
alon. El sistema dise~nado debe ser del tipo m=1 y la
sele
ion del tiempo de muestreo es a
onvenien
ia del dise~no. La salida
ontrolada no debe presentar sobreimpulso ni error esta
ionario. El parametro
in
ierto es la iner
ia J de la
arga que puede variar en 12 %.
Problema 7.8
El problema 3.3 des
ribe el pro
eso de la bola rodando a lo largo de una barra
on un grado de libertad, tal
omo se muestra en la gura 3.16. Una leva
one
ta la barra
on un engranaje que esta a
ionado por un servomotor.
Dise~nar un sistema de
ontrol robusto que pueda posi
ionar la bola a 0.5 m
de un extremo de la barra de 1 m de longitud. Evidentemente, la os
ila
ion
de la bola debe estar restringida sobre la barra. El voltaje de
ontrol no debe
sobrepasar los 40 voltios y la masa de la bola puede variar en 15 %.
Realizar el
al
ulo del
ontrolador para una entrada v es
alon. El sistema
dise~nado debe ser del tipo m = 1 y la sele
ion del tiempo de muestreo es a
onvenien
ia del dise~no.
402
Control Robusto
Problema 7.9
Las e
ua
iones del modelo linealizado para
ontrolar la posi
ion del
a~non
montado en la torreta de un tanque (ver gura 3.28) empleando un a
tuador
hidrauli
o se detallan en el problema 3.9.
(a) Dise~nar un sistema de
ontrol robusto
on modelo interno para
ontrolar el angulo de eleva
ion
on las espe
i
a
iones siguientes: tiempo de estabiliza
ion menor que 8 s, mnimo sobreimpulso y error en
estado esta
ionario nulo. Los disturbios tipo es
alon pueden a
tuar
simultaneamente o no y pueden ser positivos o negativos. Para
ada
aso, el sistema de
ontrol dise~nado debe ser
apaz de minimizar sus
efe
tos. Realizar el
al
ulo del
ontrolador para una entrada v es
alon.
El sistema dise~nado debe ser del tipo m = 1 y la sele
ion del tiempo
de muestreo es a
onvenien
ia del dise~no. Considerar que todos los
parametros poseen in
ertidumbre de 5 %.
(b) Lo mismo que (a), pero en este
aso para
ontrolar el angulo azimutal.
Problema 7.10
La gura 3.31 muestra el pro
eso servomotor
on
arga no lineal des
rito
en la se
ion 3.3, en donde la
arga no lineal posee ahora dos grados de
libertad
on Lo = 2L1 =3. La union de la
arga
on el eje del servomotor
no es
exible. Las e
ua
iones que des
riben la dinami
a del sistema fueron
requeridas en el problema 3.12. Dise~nar un sistema de
ontrol robusto
on
modelo interno para
ontrolar simultaneamente las posi
iones y
on
mnimo tiempo de estabiliza
ion y mnimo sobreimpulso. Considerar (a
su
riterio) varia
iones en la
arga adi
ional Mo . Realizar el
al
ulo del
ontrolador para una entrada v es
alon. El sistema dise~nado debe ser del
tipo m = 1 y la sele
ion del tiempo de muestreo es a
onvenien
ia del
dise~no. Considerar dos
asos: (a)
uando la indu
tan
ia de armadura es
despre
iable, y (b)
uando no lo es.
Problema 7.11
La gura 3.32 muestra el pro
eso pendulo doble no lineal que es una extension del pendulo simple des
rito en la se
ion 3.1. El a
oplamiento entre
los dos pendulos de igual longitud no es
exible. Las e
ua
iones que des
riben la dinami
a del sistema son materia del problema propuesto 3.13.
403
La gura 3.33 muestra el pro
eso doble grua-puente no lineal que es una extension del pro
eso grua-puente des
rito en la se
ion 3.2. El a
oplamiento
entre los dos pendulos de igual longitud no es
exible. Las e
ua
iones que
des
riben la dinami
a del sistema son materia del problema propuesto 3.14.
Dise~nar un sistema de
ontrol robusto
on modelo interno para
ontrolar
simultaneamente las posi
iones y
on mnimo tiempo de estabiliza
ion y
mnimo sobreimpulso, de modo tal que la doble grua puente permanez
a en
posi
ion verti
al
uando el
arro realiza un re
orrido predeterminado. Considerar que la
arga adi
ional esferi
a de 0.02 kg vara en 6 %. Realizar el
al
ulo del
ontrolador para una entrada v es
alon. El sistema dise~nado debe
ser del tipo m = 1 y la sele
ion del tiempo de muestreo es a
onvenien
ia
del dise~no.
Problema 7.13
v_ =
dv
dt
404
Control Robusto
Problema 7.14
Repetir los problemas 7.1 al 7.14
uando la entrada v toma las formas:
1 ; v(z) = z= ; = 100T
v(s) =
s + 1
z e T==tau
donde T es el tiempo de muestreo.
Problema 7.16
Repetir los problemas 7.1 al 7.14
uando la entrada v toma las formas:
1
Tz
v(s) = 2 ;
v(z ) =
s
(z 1)2
y el tipo del sistema es m=2. Tomar
omo se~nal de referen
ia una rampa
de pendiente unitaria.
Cap
tulo 8
Control No Lineal
Luego de formulado el problema de
ontrol a resolver, el siguiente paso es
en
ontrar un modelo que sea
apaz de
apturar la dinami
a del pro
eso en el
rango de opera
ion. En realidad todos los pro
esos son no lineales y mu
has
ve
es resulta mas
onveniente trabajar dire
tamente
on el modelo no lineal. As
podemos dise~nar sistemas de
ontrol no lineal empleando diversas te
ni
as tales
omo [13: el metodo dire
to de Liapunov,
ontrol deslizante,
ontrol adaptivo
(
aptulo 5) y linealiza
ion de la realimenta
ion (materia de este
aptulo).
La idea fundamental del
ontrol de pro
esos no lineales empleando la te
ni
a
de linealiza
ion por realimenta
ion, es linealizar (hallar un modelo lineal equivalente) el pro
eso (par
ial o totalmente, si fuera posible) mediante un
ambio
ade
uado de
oordenadas y una realimenta
ion del ve
tor de estado de di
ho
pro
eso, de modo tal que el pro
eso resultante (su forma normal) nos permita
apli
ar te
ni
as de
ontrol lineal (en el
aso de linealiza
ion
ompleta del pro
eso), o bien, ata
ar los problemas de
ontrol
on un grado de di
ultad menor
(en el
aso de linealiza
ion par
ial).
El pro
edimiento de dise~no sugerido se apli
a al
ontrol no lineal de posi
ion
de un servomotor D.C., sujeto a la a
ion de una
arga no lineal y al efe
to que
produ
en algunas no linealidades inherentes al pro
eso, tales
omo satura
ion
del ampli
ador y fri
ion de Coulomb.
La penultima se
ion, problemas resueltos, esta dedi
ada al dise~no de sistemas de
ontrol no lineal para diferentes pro
esos. En la ultima se
ion se proponen proplemas de dise~no. Todos los ar
hivos
orrespondientes a los ejer
i
ios,
problemas, dise~nos, simula
iones y software desarrollados se pueden des
argar
del sitio: http://ee.uni.edu.pe/728681F.
406
8.1
Control No Lineal
Herramientas Matemati as
Las herramientas matemati
as a dis
utir
orresponden a la geometra diferen
ial y a la topologa. Solo se tratan los puntos dire
tamente involu
rados
on la te
ni
a de linealiza
ion por realimenta
ion. Por esta razon es que
esas matemati
as no se in
luyeron
omo parte del
aptulo 1.
La nota
ion:
f : Rn ! Rn
(8.1)
indi
a que a
ada fun
ion ve
torial f le
orresponde un
ampo ve
torial en el
espa
io n-dimensional Rn. Los
ampos ve
toriales de interes para nosotros
son los denominados suaves. Un
ampo ve
torial f (x) es suave
uando tal
fun
ion ve
torial posee innitas derivadas par
iales
ontinuas.
Si h(x) es una fun
ion es
alar de variable ve
torial suave, donde x es el
ve
tor de estado, enton
es su gradiente es:
2 h 3
h 6 x.. 1
rh = x
=4 .
h
xn
2 f1
(8.2)
7
5
x1
f1 3
xn
fn
x1
fn
xn
f 6 ..
rf = x
=4 .
...
7
5
(8.3)
Deni
ion 8.1 Dada una fun
ion es
alar suave h(x) : Rn ! R y un
ampo ve
torial suave f (x) : Rn ! Rn, nosotros podemos denir una nueva
fun
ion es
alar Lf h = rh f denominada la derivada de Lie, o simplemente
la derivada dire
ional de h a lo largo de la dire
ion del ve
tor f .
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)
Solu
ion: Las derivadas de la salida son:
h
y_ = x_ = Lx_ h = Lf h
x
y =
[Lf h
x_ = L2f h
x
[f; g = rg f rf g = adf g
Observar que al
or
hete de Lie se le denota tambien
omo adf g, donde
ad signi
a adjunta. Su
esivos
or
hetes de Lie se pueden denir re
ursivamente:
adf 0 g = g
adf g = [f; adf 1 g; i = 1; 2; : : :
i
Ejemplo 8.2
0
0
2
x
+
ax
+
senx
1
2
1
[f; g =
2sin(2x1 ) 0
x2
osx1
2 +
osx1 a
0
x2 sinx1
osx1
os(2x1 )
a
os
(2
x
)
1
=
osx1
os(2x1 ) 2sen(2x1 )( 2x1 + ax2 + senx1)
408
Control No Lineal
[f; g = [g; f
3. Identidad de Ja obi:
Lad g h = Lf Lg h Lg Lf h
f
y 2 son onstantes
El
on
epto de difeomorsmo, que puede ser visto
omo una generaliza
ion
del
on
epto familiar de transforma
ion de
oordenadas, es el siguiente:
Deni
ion 8.3 Una fun
ion : Rn ! Rn denida en una region
, se
denomina un difeomorsmo si y su inversa son suaves. Si
= Rn,
enton
es (x) es un difeomorsmo global. Si (x) se dene en una region
409
Solu ion:
Un difeomorsmo puede ser usado para transformar una representa
ion no
lineal en otra, en terminos de un nuevo ve
tor de estado. Consideremos que
el pro
eso no lineal sea des
rito por la siguiente representa
ion en el espa
io
de estado:
m
X
x_ = f (x(t)) + gj (x(t))uj (t);
y(t) = h(x(t))
(8.6)
j =1
donde u(t) = [u1 (t); : : : ; um (t)T es el ve
tor de
ontrol (la variable manipulada) del pro
eso de orden m, x(t) = [x1 (t); : : : ; xn (t)T es el ve
tor de estado
del pro
eso de orden n, y(t) = [y1(t); : : : ; yp(t)T es el ve
tor de salida del
pro
eso (la variable
ontrolada) de orden p y las fun
iones f = [f1; : : : ; fnT ,
g = [g1 ; : : : ; gm T y h = [h1 ; : : : ; hp T
orresponden a
ampos ve
toriales innitamente diferen
iables.
Asumamos la siguiente transforma
i
on no lineal 3de estados:
2
1 (x1 ; : : : ; xn )
6
7
...
z = (x) = 4
(8.7)
5
n (x1 ; : : : ; xn )
donde la fun
ion de transforma
ion es invertible y tanto
omo su inversa
1 son innitamente diferen
iables. Notar que la transforma
ion dada en la
e
ua
ion (8.7) es un difeomorsmo. Mientras que la propiedad de inversion
de permite un retorno a los estados originales, la propiedad de diferen
ia
ion garantiza que la des
rip
ion del pro
eso
on las nuevas
oordenadas
sea tambien innitamente diferen
iable, tal
omo lo es el pro
eso original.
Empleando la transforma
ion z = (x) en la e
ua
ion (8.6) obtenemos:
x_ (t)
z_ =
x
=
x
(t)
m
X
f (x(t)) +
g (x(t))uj (t)
x x(t)
x x(t) j =1 j
(8.8)
410
Control No Lineal
j =1
f ( 1 (z))
x
g ( 1 (z))
x j
h( 1 (z))
=
h~(z) =
Observar que (8.9)
onstituye un nuevo sistema no lineal
on un ve
tor de
estado z.
8.1.4 El Teorema de Frobenius
rhi fj = 0
donde 1 i n m, 1 j m. En adi
ion,
tambien linealmente independientes.
los gradientes
rhi
son
n) e ua iones diferen-
Deni
ion 8.5 Se di
e que un
onjunto linealmente independiente de
ampos ve
toriales [f1 ; : : : ; fm en Rn es involutivo, si y solo si existen fun
iones
es
alares ijk : Rn ! Rn tales que:
m
X
k=1
8 i; j
411
Ya vimos que la nota
ion [f; g es
ono
ida
omo el
or
hete de Lie. Partiendo de la deni
ion anterior se puede dedu
ir que:
1. Los
ampos ve
toriales
onstantes, es de
ir, si fk y gk son
onstantes
para
ualquier k = 1; : : : ; m, son siempre involutivos puesto que:
[f; g(x) = 0 =
m
X
k=1
8 x; i; j
Ejemplo 8.4
h
h
+ (x23 3x2 ) x
+
2
x3
=0
x3
2
donde sus
ampos ve
toriales aso
iados poseen la forma:
f1 = [4x3
1 0T ; f2 = [ x1 (x23 3x2 ) 2x3 T
Determine si tal
onjunto de e
ua
iones diferen
iales par
iales es solu
ionable
(o en otras palabras, si [f1 ; f2 es
ompletamente integrable).
Solu
ion: Operando, en
ontramos que:
[f1 ; f2 = [ 12x3 3 0T
Dado que [f1 ; f2 = 3f1 + 0f2 , este
onjunto de
ampos ve
toriales es involutivo. Por
onsiguiente, las e
ua
iones diferen
iales par
iales dadas son
solu
ionables.
x1
h
x1
412
8.2
Control No Lineal
Grado Relativo
y = h(x)
(8.10)
se desea obtener una rela
ion dire
ta entre la entrada u y la salida y. Para
ello derivamos la salida
omo sigue:
h(x)
h(x)
h(x)
y_ =
x_ =
f (x) +
g(x)u
x
x
x
= Lf h(x) + Lgh(x)u
Si Lg h(x) 6= 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
=
=
=
L h(x)x_
x f
Lf h(x)f (x) + Lf h(x)g(x)u
x
x
L2f h(x) + Lg Lf h(x)u
Lg Lrf 1 h(x) 6= 0
Deni
ion 8.6 El grado relativo del pro
eso univariable no lineal dado en
la e
ua
ion (8.10), es el numero de ve
es r que hay que derivar la salida
hasta obtener:
Lg Lif h(x) = 0;
i = 1; 2; : : : ; r
Lg Lrf 1 h(x) 6= 0
para todo x que pertenez
a a una region
de Rn.
(8.11)
(8.12)
8.3
413
La te
ni
a de linealiza
ion por realimenta
ion requiere de una representa
ion
no lineal bastante util del pro
eso a
ontrolar: la forma normal. La transforma
ion no lineal de
oordenadas que permite llevar un pro
eso no lineal de
una entrada y una salida (e
ua
i
on (8.10)) a su forma normal, involu
ra los
r
1
terminos h(x); Lf h(x); : : : ; Lf h(x), tal
omo veremos mas adelante. Por
onsiguiente, tal transforma
ion depende del grado relativo r del pro
eso.
Empezaremos por el
aso mas simple: r = n, donde n es el orden del pro
eso.
La siguiente transforma
ion de
oordenadas:
3
2
3 2
h(x)
1 (x)
6 2 (x) 7 6 Lf h(x) 7
7
7 6
; y = h(x)
(8.13)
z = (x) = 6
6
7=6
.
.
.
.
4
. 5 4 n 1. 75
n (x)
Lf h(x)
on x = [x1 ; x2; ; xnT ,
umple
on las
ondi
iones de una transforma
ion
no lineal; es de
ir, es un difeomorsmo basado en la hipotesis de que el orden
del sistema es r = n. Por
onsiguiente, di
ha transforma
ion puede llevar al
pro
eso des
rito en la e
ua
ion (8.10) a la forma siguiente:
1 (x)
z_1 =
x_
x
1 (x) [f (x) + g(x)u
= x
= Lf h(x) + Lg h(x)u = Lf h(x) = 2(x)
= z2
...
n 1 (x)
z_n 1 =
x_
x
n 2
= Lf h(x) [f (x) + g(x)u
=
=
z_n =
=
y
x
Lnf 1 h(x) + Lg Lnf 2 h(x)u = Lnf 1 h(x) = n (x)
zn
Lnf h(x) + Lg Lnf 1 h(x)u
Lnf h( 1 (z)) + Lg Lnf 1 h( 1 (z))u = b(z) + a(z)u
z1
(8.14)
414
Control No Lineal
= z2
= z3
...
z_r 1 = zr
z_r = Lrf h( 1 (z)) + Lg Lrf 1 h( 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.
8.4
415
416
Control No Lineal
ya que sus matri
es de
ontrolabilidad [B AB : : : An 1B y de observabilidad [C T AT C T : : : (AT )n 1 C T poseen rango n (rango
ompleto). Por
otra parte, el pro
eso resultante es un integrador de orden n debido a que
su fun
ion de transferen
ia resulta:
y(s)
1
=
C [sI A 1 B = n
(8.21)
v(s)
s
v
-
6
b(z)
a(z)
1
a(z)
x_ = f (x) + g(x)u
?-
z = (x)
C
-
417
[g;
adf g; : : : ; adnf 1 g
[g;
adf g; : : : ; adnf 2 g
418
8.5
Control No Lineal
Observadores No Lineales
6
6
6
4
C
CA
...
CAn 1
7
7
7
5
(8.23)
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
3
h(x)
6 Lf h(x) 7
7
O (x) , 6
(8.25)
6
.
.
x 4
. 75
Lnf 1 h(x)
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
ion
denida por:
2
3
h(x)
6 Lf h(x) 7
z = (x) = 6
(8.26)
... 775
x 6
4
Lnf 1 h(x)
representa un
ambio de
oordenadas. Empleando los resultados anteriores
y en analoga
on la e
ua
ion (8.16); la des
rip
ion en el espa
io de estado
para las nuevas
oordenadas (notar que g = 0) es:
2
3 2
3
z_1
z2
6 z_2 7 6
7
z3
7
6
7 6
6 .. 7 6
7
...
y = z1
(8.27)
7;
6 . 7=6
7
6
7 6
4 z_n 1 5 4
5
zn
z_n
Lnf h[ 1 (z)
419
420
Control No Lineal
L = (W N T ) 1 6
4
n an
...
1 a1
(8.36)
7
5
1C T
an 1
an 2
421
an 2
an 3
a1 1 3
1 0 77
...
...
... ... 77
7
a1
1 0 0 5
1
0 0 0
Los parametros ai, i = 1; : : : ; n, se obtienen de la e
ua
ion:
jsI Aj = sn + a1sn 1 + + an 1s + an
mientras que los parametros i, i = 1; : : : ; n, se determinan a partir de las
ra
es deseadas del observador i, i = 1; : : : ; n. Estas ra
es
onforman la
e
ua
ion
ara
tersti
a del observador:
(s 1 ) (s 1 ) = sn + 1 sn 1 + + n 1s + n
y deben tener parte real negativa para garantizar la estabilidad del observador no lineal.
W
8.6
422
Control No Lineal
9) Implementar el hardware.
10) Implementar el software de
ontrol.
11) Realizar pruebas de fun
ionamiento (resultados experimentales).
8.7
La gura 3.9 presenta la estru
tura del pro
eso no lineal a
ontrolar. La
tabla 3.2 des
ribe las variables y los valores de los parametros. Asumiendo
que la se~nal de
ontrol u va a ser
ompensada en software de los efe
tos de la
423
fri
ion estati
a y fri
ion de Coulomb, enton
es el pro
eso no lineal puede
ser des
rito mediante la siguiente representa
ion en el espa
io de estado:
x_ = f (x) + g(x)Ka
t u;
y = h(x)
(8.37)
donde:
2
f (x)
4
2
g(x)
x2
N
B
( M )senx1 M x2 M1 TN + nK
M x3
nE x
R x + Ka
t u
L 2 L 3
L
03
0 5;
3
5
h(x) = x1
(8.38)
Los elementos del ve
tor de estado [x1 x2 x3T son la posi
ion angular, la
velo
idad angular y la
orriente de armadura, respe
tivamente, y Ka
t u es la
tension de armadura. Notar que el modelo del pro
eso no lineal es
ontinuo
y diferen
iable.
El termino no lineal TN debido a las fri
iones estati
a y de Coulomb,
puede no
onsiderarse, dado que sus efe
tos van a ser
ompensados por
software
uando el sistema de
ontrol no lineal se implemente en tiempo
real.
Modelo No Lineal de Segundo Orden (L = 0)
El modelo no lineal de segundo orden del pro
eso es (subse
ion 3.3):
=
BR+n2 KE x
2
MR
y = h(x) = x1
donde:
x_
f (x) =
BR+n2 KE x
2
MR
TN
M
x2
x2
N
M senx1
TN
M
N
M senx1
g(x) =
nKa
t K
MR
424
Control No Lineal
Para apli
ar las
ondi
iones de linealiza
ion estable
idas en el teorema 8.2,
debemos
al
ular:
adf g = [f; g = rg f rf g
2
0
1 0 32 0 3 2 0 3
nK 5
54 0 5 = 4
= 4 MN
osx1 MB nK
M
ML
1
R
R
nE
0 L
L
L
L2
ad2f g = [f; adf g = r(adf g) f rf adf g
=4
N
M
osx1
nE
L
B
M
R
L
nK 5 4
M
2
[g adf g ad2f g = 4
Dado que:
32
0
0
1
425
nK 5
ML
R
L2
=4
nK
ML
R
L2
3
nK
ML
nKB nKR 5
M22 L
ML2
n KE R2
2
ML
L3
nK
ML
nKB nKR 5
M22 L
ML2
n KE R2
2
ML
L3
n2 K 2
M 3 L3
Como en el
aso anterior, para apli
ar las
ondi
iones de linealiza
ion estable
idas en el teorema 8.2, debemos
al
ular:
adf g = [f; g = rg f rf g
Es fa
il demostrar que:
nKa
t K 2
det[g adf g =
MR
lo que signi
a que tal
onjunto esta
onformado por
ampos ve
toriales
linealmente independientes.
Por otra parte, el
onjunto [g adf g es involutivo porque es
onstante.
8.7.5 La Forma Normal
Forma Normal del Modelo No Lineal de Ter
er Orden
La forma normal del pro
eso en estudio puede ser obtenida mediante la
transforma
ion no lineal z = (x) del estado x,
omo sigue:
2
3
2
3 2
3
x1
z1
h(x)
5
x2
z = 4 z2 5 = (x) = 4 Lf h(x) 5 = 4
N
B
nK
2
z3
Lf h(x)
M sinx1 M x2
M x3
(8.46)
426
Control No Lineal
Notar en la ultima e
ua
ion que el nuevo estado z posee signi
ado fsi
o,
puesto que z1 es la posi
ion del eje del servomotor, z2 es su velo
idad angular
y z3 su a
elera
ion. El estado original x expresado en fun
ion del nuevo
estado z esta dado por:
2
x=4
x1
x2
x3
= 1 (z) = 4
z1
z2
3
5
+
+
De a
uerdo a la subse
ion 8.3, las nuevas
oordenadas resultan:
z_1 = z2
z_2 = z3
z_3 = L3f h( 1 (z)) + Lg L2f h( 1 (z))
donde:
N
B
osx1 x2
M
M
N
nK senz1
B
nK z2
(8.47)
(8.48)
M
nK z3
a
t K
+ nKML
u
B
M
R
x
L 3
+ RL z3
(8.49)
z1
El modelo no lineal de segundo orden del pro
eso, sin
onsiderar el termino
no lineal TN es (ver e
ua
ion 8.39):
h
i
n2 KE x
N senx + nK K u = f (x) + g(x)u
x_ = x2 BR+MR
2 M
1
MR
y = h(x) = x1
(8.50)
que de he
ho ya se en
uentra en su forma normal.
a
t
427
La forma normal para linealiza
ion exa
ta del pro
eso esta dada en la
e
ua
ion (8.49). Reemplazamos en di
ha e
ua
ion la siguiente ley de
ontrol:
1
u =
[v L2f h( 1 (z))
L L2 h( 1 (z))
=
g f
ML
N
NR
v +
osz1 z2 +
senz1
nK
M
ML
2
B R
n KE BR
+ ML z2 + M + L z3
ML
+
(8.51)
donde v es una entrada equivalente, obtenemos:
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
2
0 1 03
03
A = 4 0 0 1 5;
B = 4 0 5;C = 1 0 0
0 0 0
1
La fun
ion de transferen
ia del pro
eso lineal equivalente se obtiene de:
y(s)
1
=
C (sI A) 1 B = 3
v(s)
s
O lo que es lo mismo:
d3 y(t)
=v
(8.53)
dt
El pro
eso de linealiza
ion desarrollado se ilustra en la gura 8.2.
Ahora se debe dise~nar v de modo tal que y = z1 siga una traye
toria
deseada r(t). El siguiente
ontrol logra tal objetivo:
d3 r
d2 (r y)
d(r y)
v=
K1
K2
K3 (r y)
(8.54)
dt3
dt2
dt
428
Control No Lineal
Realimentacion
no lineal
u = u(z,v)
z
Proceso
no
lineal
z = (x )
s3
Proceso lineal
equivalente
Figura 8.2: Linealiza
ion del pro
eso no lineal y su pro
eso lineal equivalente.
Reemplazando (8.54) en (8.53) obtenemos la e
ua
ion del sistema de lazo
errado:
d2 (r y )
d(r y)
d3 (r y)
K1
K2
K3 (r y) = 0
dt3
dt2
dt
donde los parametros K1, K2 y K3 determinan la dinami
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 = s3 = 4, enton
es la e
ua
ion del sistema de
lazo
errado resulta s3 + 12s2 + 48s + 64, de donde se obtiene: K1 = 12,
K2 = 48 y K3 = 64. La expresion de v en fun
ion de la traye
toria de
referen
ia resulta:
v=
donde:
d3 r
d2 r
dr
+
K
+
K2 + K3 r Kz
1
3
2
dt
dt
dt
K = K1 K2 K3
z=4
y
y_
y
(8.55)
3
5
ML
nK
d3 r
d2 r
dr
N
+
K
+
K2 + K3 r Kz +
osz1 z2
1
3
2
dt
dt
dt
M
NR
n2 KE
senz1 +
ML
ML
BR
+ ML
z2 +
429
B
M
+ RL
z3
(8.56)
MR
BR + n2 KE
N
v+
x2 + senx1
nKa
tK
MR
M
(8.57)
=v
La se~nal v debe dise~narse de modo tal que y = x1 siga una traye
toria de
referen
ia r(t). La siguiente se~nal v:
d2 r
d(r y)
v=
K1
K2 (r y)
dt2
dt
dt
d2 r
+ K1 dr
+ K2 r Kx
dt2
dt
(8.59)
430
Control No Lineal
donde:
K = K1 K2
z=4
y
y_
y
3
5
B
M
nK
M
det[O(x) =
nK
M
6= 0
B
nK
M
nK
h(x^)
(8.62)
431
432
Control No Lineal
Sistema lineal equivalente
r
Realimentacion
lineal
v = v(r, z )
z
Realimentacion
no lineal
u = u( z ,v)
Proceso
no
lineal
z
z = (x)
433
disnl1_u
disnl1_x
x
Mux
Seal v
Referencia
r
Seal de Proceso
control u no lineal
Conversin
de x a z
Mux
grfico
disnl1_r
referencia r
434
Control No Lineal
Posicin (radianes)
1.5
1
0.5
0
0.5
1
0
8
10
12
Tiempo en segundos
14
16
18
20
8
10
12
Tiempo en segundos
14
16
18
20
1.5
1
0.5
0
0.5
1
1.5
0
Figura 8.5: Resultado de la simula
ion del sistema de
ontrol no lineal empleando un modelo no lineal de ter
er orden.
Sistema lineal equivalente
r
Realimentacion
lineal
v = v(r, z )
z
Realimentacion
no lineal
u = u( z ,v)
z = (x)
Proceso
no
lineal
Observador
no lineal
z
435
se muestran en la gura 8.8, donde podemos observar que la se~nal
ontrolada sigue exa
tamente a la traye
toria de referen
ia (una se~nal sinusoidal).
Para ini
iar la simula
ion empleando la gura 8.7, previamente se requiere
eje
utar el programa de datos disnl2p.m, pues en este programa se en
uentran los valores de los parametros del sistema, as
omo tambien el
al
ulo
de la matriz de ganan
ia L.
disnl2_u
u
Mux
Seal u
Seal v
Proceso
no lineal
grfico
Mux
disnl2_x1
x1
Referencia
r
disnl2_r
Conversin Observador
de x a z
no lineal
Figura 8.7: Simula
ion del sistema de
ontrol no lineal de ter
er orden
on
observador.
% disnl2p.m PARAMETROS PARA SIMULAR EL SISTEMA DE CONTROL
%
NO LINEAL DE TERCER ORDEN CON OBSERVADOR
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;
R = 7.38;
m = 0.06377;
Ka
t = 14.9;
= 0.25;
Mo = 0.0;
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 LINEAL EQUIVALENTE DE TERCER ORDEN
436
%
%
%
Control No Lineal
A
= [0 1 0;0 0 1;0 0 0;
B
= [0;0;1;
C
= [1 0 0; D = [0;
NN = [C
' A
'*C
' (A
')^2*C
';
rangoNN = rank(NN); % es n=3 => EL PROCESO ES C.C.
CALCULO DE LAS GANANCIAS L1, L2 y L3
p = poly(A
);
a1=p(2); a2=p(3); a3=p(4);
J = [-15+10j 0 0
0 -19 0
0 0 -15-10j; % RAICES DESEADAS
JJ = poly(J);
aa1=JJ(2); aa2=JJ(3); aa3=JJ(4);
W = [a2 a1 1;a1 1 0;1 0 0;
GANANCIA DEL OBSERVADOR NO LINEAL
LL = inv(W*N')*[aa3-a3;aa2-a2;aa1-a1;
L1=LL(1); L2=LL(2); L3=LL(3);
GANANCIA DEL SISTEMA LINEALIZADO
K1=40+20*sqrt(2); K2=300+800*sqrt(2); K3=12000;
GRAFICOS
load disnl2_x1; load disnl2_r; load disnl2_u;
lg = size(disnl2_x1,1); % LONGITUD DE LAS MUESTRAS
ejex = linspa
e(0,20,lg);
subplot(2,1,1)
plot(ejex,disnl2_r,'-',ejex,disnl2_x1)
ylabel('Posi
ion (radianes)')
xlabel('Tiempo en segundos')
grid
subplot(2,1,2)
plot(ejex,disnl2_u)
ylabel('Se~nal de
ontrol (voltios)')
xlabel('Tiempo en segundos')
grid
print -f -deps disnl2r % CREA ARCHIVO disnl2r.eps
437
Posicin (radianes)
1
0.5
0
0.5
1
0
8
10
12
Tiempo en segundos
14
16
18
20
8
10
12
Tiempo en segundos
14
16
18
20
3
2
1
0
1
0
438
Control No Lineal
439
440
Control No Lineal
Posicin (radianes)
2
1
0
1
2
0
10
15
20
25
30
Tiempo en segundos
35
40
45
50
10
15
20
25
30
Tiempo en segundos
35
40
45
50
0.4
0.2
0
0.2
0.4
0
Figura 8.9: Resultado de la simula
ion del sistema de
ontrol no lineal empleando un modelo no lineal de segundo orden.
El software usado para la implementa
ion del algoritmo de
ontrol de
posi
ion emplea el lenguaje C y se eje
uta en una PC Pentium. Los programas ne
esarios para el
ontrol se estru
turan en tres ar
hivos: R1LLIB.H,
R1LLIB.CPP y DISNL.CPP. El ar
hivo DISNL.CPP es el que
ontiene el
algoritmo de
ontrol.
La realiza
ion de ar
hivos eje
utables a partir de los programas fuente, se
elabora en el ambiente de trabajo del Borland C/C++ mediante la
rea
ion
de un proye
to denominado DISNL.PRJ, en donde intervienen los ar
hivos
men
ionados en el parrafo anterior. A
ontinua
ion se presenta el listado del programa DISNL.CPP. El listado de los programas R1LLIB.H y
R1LLIB.CPP fueron presentados en la subse
ion 6.7.7.
/* DISNL.CPP Programa del sistema de
ontrol no lineal de posi
ion.
Ver espe
ifi
a
iones de dise~no en la subse
ion resultados
experimentales. */
#in
lude "r1llib.h"
#in
lude <stdio.h>
#in
lude <math.h>
#in
lude <assert.h>
#in
lude <allo
.h>
#in
lude <
onio.h>
441
442
Control No Lineal
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.;
ConfigurarHardware(0x272, 0x270, 0x271, 0x264, Fs);
EnviarVoltage(Ofst);
p0= LeerPosi
ion();
}
void Mide_Variables(float *y, float *x2, float *r, float t )
{
/* En primer lugar, la referen
ia: r = r(t)*/
*r = - 2*exp(-2*k*T) - 2*
os(2*k*T)+2;
/* Ahora leo la posi
ion */
pk = LeerPosi
ion();
*y = yp + ((float)(abs(pk-p0)>8000?0:pk-p0))*ESCALA;
p0 = pk;
/* A
tualizamos los estados */
yp =* y;
x2p =* x2;
}
void main()
{
int ant=0, a
t=0, k, nd;
FILE *out;
float *yb, x2, y;
float *ub, *rb, u, r;
float yp, x2p;
float ddr, dr;
Ini
ializa_Sistema();
lrs
r();
assert(tsimul<120);
nd = (int)tsimul/T;
t = 0.;
assert(NULL!=(ub= (float *)
allo
(n/5,sizeof(float))));
assert(NULL!=(yb= (float *)
allo
(n/5,sizeof(float))));
assert(NULL!=(rb= (float *)
allo
(n/5,sizeof(float))));
for(k=0; k<nd;)
{
a
t = NivelClo
k();
443
3e 2t + 2sen(2t) + 2
444
Control No Lineal
300
200
100
0
100
0
0.5
1.5
2
2.5
3
Tiempo en segundos
3.5
4.5
0.5
1.5
2
2.5
3
Tiempo en segundos
3.5
4.5
1.5
1
0.5
0
0.5
1
0
Problemas Resueltos
El pro eso pendulo 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
445
X1
X2
f=
f1
f2
"
X2
+ M 1L2 U
La e
ua
ion anterior posee una forma normal. Por
onsiguiente, empleando
la siguiente ley de
ontrol:
U = BX2 + MLgsenX1 + ML2 V
obtenemos X_ 2 = V . Deniendo e = r X1 , donde r es una traye
toria de
referen
ia y sele
ionando la se~nal V
omo:
V = r + K1 e_ + K2 e = X_ 2
enton
es la e
ua
ion del sistema lineal equivalente realimentado resulta:
e + K1 e_ + K2 e = 0;
(s2 + K1s + K2 )e(s) = 0
g
Lo senX1
Bp
Mo L2o x2
o o
446
Control No Lineal
Si las ra
es del sistema realimentado son s1;2 = 8 8i, enton
es:
(s + 8 + 8i)(s + 8 8i) = s2 + 16s + 128; K1 = 16; K2 = 128
La se~nal V viene a ser:
V = r + K1 r_ + K2 r K1 X1 K2 X2 ; Y = X1 =
La ley de
ontrol toma la forma siguiente:
u = BX2 + MLgsenX1 + ML2 (r + K1 r_ + K2 r) ML2 (K2 X1 + K2 X2 )
El programa p8 1.m simula el sistema de
ontrol no lineal y los resultados
se muestran en la gura 8.11.
% p8_1.m SOLUCION DEL PROBLEMA 8.1 (PENDULO NO LINEAL)
lear all
% PARAMETROS DEL PROCESO
Bp=1.3366; Lo=1.6350; Mo=0.5; g=9.81;
% POLOS DEL SISTEMA REALIMENTADO LINEALIZADO: -5 y -5
pol =
onv([1 8+8i,[1 8-8i); % POLINOMIO CARACTERISTICO
K1 = pol(2); K2 = pol(3);
% CONDICIONES INICIALES:
r(1) =0; r(2)=0; r(3)=0; r(4)=0;
dr(1) =0; dr(2)=0; dr(3)=0; dr(4)=0;
ddr(1)=0; ddr(2)=0; ddr(3)=0; ddr(4)=0;
X1(1) =0; X1(2)=0; X1(3)=0; X1(4)=0;
X2(1) =0; X2(2)=0; X2(3)=0; X2(4)=0;
MM=1000; T = 0.01;
% LAZO DE CONTROL
for k=4:MM
r(k) = 2*sin(0.8*k*T); % traye
toria de referen
ia
% APROXIMACION DE LAS DERIVADAS
dr(k) = (r(k) + 3*r(k-1) - 3*r(k-2) - r(k-3))/(6*T);
ddr(k) = (dr(k) + 3*dr(k-1) - 3*dr(k-2) - dr(k-3))/(6*T);
U(k) = Bp*X2(k)+Mo*Lo*g*sin(X1(k))+Mo*Lo^2*(ddr(k)+K1*dr(k)...
+K2*r(k)-K2*X1(k)-K1*X2(k));
% PROCESO NO LINEAL DE ORDEN 2 DICRETIZADO
X1(k+1) = X1(k) + T*X2(k);
X2(k+1) = X2(k) + T*(-(Bp/Mo*Lo^2)*X2(k)-(g/Lo)*sin(X1(k))...
+(1/Mo*Lo^2)*U(k));
end
% fin del lazo de
ontrol
% GRAFICOS
ejex = linspa
e(0,MM*T,MM-3);
447
subplot(2,1,1)
plot(ejex,r(4:MM),ejex,X1(4:MM)); grid
ylabel('Posi
ion (radianes)')
xlabel('Tiempo en segundos')
subplot(2,1,2)
plot(ejex,U(4:MM)); grid
ylabel('Se~nal de
ontrol (N)')
xlabel('Tiempo en segundos')
print -f -deps p8_1 % CREA EL ARCHIVO p8_1.eps
Posicin (radianes)
4
2
0
2
4
0
4
5
6
Tiempo en segundos
10
4
5
6
Tiempo en segundos
10
400
200
0
200
400
600
0
Figura 8.11: Traye
toria de posi
ion del pendulo (problema de seguimiento)
y se~nal de
ontrol
orrespondiente al problema 8.1
Problema 8.2
La gura 2.2 muestra dos tanques identi
os
olo
ados en
as
ada. La se
ion
horizontal A=9 m2 de
ada tanque es
onstante. El objetivo de
ontrol es
ontrolar la altura H2 empleando el
ujo Qo
omo se~nal de
ontrol. Dise~nar
el sistema de
ontrol no lineal empleando el metodo de linealiza
ion por
realimenta
ion. El
ujo de
ontrol no debe sobrepasar los 5 m3=s y el tiempo
de estabiliza
ion de la salida debe ser menor que 20 s
on error en estado
estable pra
ti
amente nulo. Sele
ionar apropiados tiempo de muestreo y
eigenvalores del sistema realimentado.
448
Control No Lineal
Solu
ion: En el ejemplo 2.1 se derivo el modelo no lineal del pro
eso
on
=0.4 (una
onstante que depende de la geometra del ori
io), =1.23
(la densidad del lquido) y g=9.81 m/s2 (la a
elera
ion de la gravedad),
resultando:
H_ = f + gU ;
= h(H) = H2;
donde: f = [f1 f2T , g = [g1 g2 T , siendo:
Y
pg p
pg p
f1 =
H1 ;
f2 =
[ H1
A
A
Operando
on
=
pg=A obtenemos:
H2 ;
= Qo
g1 =
1;
g2 = 0
h(H) = H2 ;
Lf h(H) = r(H)f = f2
Lg Lf h(H) = r(f2 ) g = p 6= 0
2A H1
1
El nuevo
onjunto de variables de estado resulta:
p
p
z1 = 1 (H) = h(H) = H2 ;
z2 = 2 (H) = Lf h(H) =
H1
H2
Los estados originales en fun
ion de los nuevos estados vienen a ser:
z p
H2 = 1 1 (z) = z1 ;
H1 = 2 1 (z) = ( 2 + z1 )2
y la e
ua
ion de estado del nuevo sistema resulta:
z_1 = z2
z_2 = L2f h( 1 (z)) + Lg L2f h( 1 (z)) = b( 1 (z)) + a( 1 (z))U
donde:
2
z2
2
1
b( (z)) =
1
;
a( 1 (z)) = p
p
2 z
4A z (z =
+ pz )
1
1 2
449
450
Control No Lineal
Problema 8.3
Determinar si es posible una linealiza
ion exa
ta de los pro
esos pendulo
invertido no lineal y grua-puente des
ritos en las se
iones 3.1 y 3.2 respe
tivamente. Se sabe que la salida es la posi
ion x3.
Solu
ion: La e
ua
ion de estado que des
ribe al pendulo no lineal es:
2
6
6
4
x_ 1
x_ 2
x_ 3
x_ 4
3
7
7
5
6
6
6
6
4
x2
M2 (sin x1 )(
os x1 )x22 Bx (
os x1 )x4 (M1 +J2 )g(sin x1 )+Kx (
os x1 )KA u
(M2 (
os2 x1 ) (M1 +J2 )J1 )=M2
x4
M22 g(sin x1 )(
os x1 ) J1 M2 (sin x1 )x22 +J1 Bx x4 J1 Kx KA u
M22 (
os2 x1 ) (M1 +J2 )J1
3
7
7
7
7
5
451
Nivel (m)
3.5
2.5
2
0
10
15
20
25
30
Tiempo en segundos
35
40
45
50
10
15
20
25
30
Tiempo en segundos
35
40
45
50
5
0
Problemas Propuestos
Problema 8.4
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 esta
sujeto a la
arga no lineal mediante una junta
exible que puede ser modelada
omo un resorte rota
ional de
onstante K! =0.5 N/m/s. Dise~nar un
452
Control No Lineal
sistema de
ontrol no lineal que emplee el metodo de linealiza
ion por realimenta
ion para
ontrolar la posi
ion angular de la
arga no lineal. Las
espe
i
a
iones de dise~no son: error en estado esta
ionario nulo y tiempo de
estable
imiento menor que 1 s para una se~nal de referen
ia arbitraria. Sele
ionar el tiempo de muestreo y los eigenvalores apropiados del sistema lineal
equivalente realimentado. Considere dos
asos: (a)
uando la indu
tan
ia
de armadura es despre
iable, y (b)
uando no lo es
Problema 8.5
La gura 3.31 muestra el pro
eso servomotor
on
arga no lineal des
rito
en la se
ion 3.3, en donde la
arga no lineal posee ahora dos grados de
libertad
on Lo = 2L1=3 y Mo=0.02 kg. La union de la
arga
on el eje
del servomotor no es
exible. Las e
ua
iones que des
riben la dinami
a del
sistema son materia del problema 3.12. Determinar si el pro
eso des
rito
es
ompletamente linealizable. Si lo es, dise~nar un sistema de
ontrol no
lineal
on linealiza
ion de la realimenta
ion para
ontrolar simultaneamente
las posi
iones y
on mnimo tiempo de estabiliza
ion y mnimo sobreimpulso. Considerar dos
asos: (a)
uando la indu
tan
ia de armadura es
despre
iable, y (b)
uando no lo es.
Bibliograf
a
454
BIBLIOGRAFIA
BIBLIOGRAFIA
455
[21 Frank Ayres Jr., Matri
es, serie de
ompendios S
haum, M
Graw-Hill
Mexi
o Panama Bogota y otras, 1973 (o edi
iones mas re
ientes).
[22 Murray R. Spiegel, Transformada de Lapla
e, serie de
ompendios
S
haum, M
Graw-Hill Mexi
o Panama Bogota y otras, 1973 (o edi
iones mas re
ientes).
[23 MathWorks, In
., MATLAB Referen
e Guide, Prenti
e Hall, Englewood Clis, New Jersey, primera edi
ion, 1998.
[24 MathWorks, In
., SIMULINK User's Guide, Prenti
e Hall, Englewood
Clis, New Jersey, primera edi
ion, 1996.
[25 Lab-PC+ User Manual, National Instruments Corporation, Part Number 320502B-01, edi
ion de agosto de 1994.
Indi
e de Materias
A
tuador, 231
Ampli
ador de poten
ia, 160
Campo ve
torial suave, 408
Campos ve
toriales
integrables, 412
involutivos, 413
CMI:
ontrol
on modelo interno, 351
Codi
ador opti
o, 159
odi
ador opti
o, 235
Control optimo
on
epto, 126
Control optimo
uadrati
o, 126
de la grua puente, 181
del pendulo invertido, 147
dis
reto, 126
esta
ionario, 129
no esta
ionario, 127
Control adaptivo de un servomotor no lineal, 224
Control
on modelo interno
estru
tura del, 351
estru
turas alternativas del, 353
in
ertidumbres del modelo en
el, 355
modelo del pro
eso en el, 355
representa
iones del, 351
Control matri
ial dinami
o, 286
INDICE DE MATERIAS
457
458
INDICE DE MATERIAS
hermitiana, 5
identidad, 5
indenida, 21
integral de una, 14
inversa de una, 6
nilpotente, 5
norma de una, 17
normal, 5
orden de una, 1
ortogonal, 5
periodi
a, 5
rango de una, 18
semidenida negativa, 21
semidenida positiva, 21
simetri
a, 5
singular, 5
transpuesta, 4
traza de una, 4
triangular inferior, 4
triangular superior, 4
unitaria, 5
Modelando pro
esos no lineales, 209
Modelo CARIMA, 290
Muestreo y re
onstru
ion, 38
Nomen
latura, 1
Observabilidad, 67
Observador optimo
uadrati
o, 138
Observadores no lineales, 420
Opera
ion
on ve
tores, 16
Opera
iones
on matri
es, 3
Pendulo invertido, 71
ontrol optimo del, 147
modelo, 72
Plano de fase, 31
Predi
tor, 292
Preltro
INDICE DE MATERIAS
459
formulas notables, 48
inversa, 50
propiedades, 46
Valor absoluto, 7
Variables residuales, 32
Ve
tor, 2
de informa
ion, 210
de parametros, 210
derivada de un, 14
integral de un, 14
norma de un, 16
Ve
tores, 15
independen
ia de, 15
opera
ion
on, 15
ortonormales, 15