Vous êtes sur la page 1sur 473

CONTROL AVANZADO

Disen
~ o y Apli a iones en Tiempo Real

ARTURO ROJAS-MORENO, Ph.D.


Universidad Na ional de Ingenier a, Peru

Control Optimo
Control Adaptivo
Control Predi tivo
Control Robusto
Control No Lineal
Programas en MATLAB y C/C++
ii

Control Avanzado
Disen
~o y Apli a iones en Tiempo Real

Copyright 2001 Arturo Rojas-Moreno. Reservados todos los dere hos.

ISBN 9972{9318{0{3

Ni todo el libro ni parte de esta publi a i on puede ser reprodu ida, ar hivada,
transmitida o distribuida en forma alguna o mediante algu n medio ele tr oni o,
me ani o, o de otra ndole, sin que exista previamente y por es rito el permiso de
autoriza ion del autor.
Dedi atoria

A mi Familia
A mi Alma Mater
Indi e General

Dedi atoria iii

Prefa io xi

1 Matemati a Asistida on Computadora 1


1.1 Cal ulo Matri ial ........................................................................... 1
1.1.1 Opera iones y Tipos de Matri es ...........................................1
1.1.2 Determinantes y Matriz Inversa ......................................... 5
1.1.3 Derivadas e Integrales on Matri es y Ve tores ............... 14
1.2 Analisis Ve torial ......................................................................... 15
1.2.1 Independen ia, Ortonormalidad y Normas .........................15
1.2.2 Rango de una Matriz, Eigenvalores y Eigenve tores ...........18
1.2.3 Diagonaliza i on de Matri es ................................................19
1.2.4 Formas Cuadr ati as y Bilineales .........................................20
1.3 La Transformada de Lapla e ...........................................................26

2 Sistemas Dis retos 29


2.1 Disen ~o de Sistemas de Control Digital 29
.........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................

2.2 Con epto de Estado y Variables de Estado ................................ 31


2.2.1 Linealiza i on de Pro esos ....................................................31
2.3 Fundamentos de Sistemas Dis retos ................................................38
2.3.1 Muestreo y Re onstru ion ............................................... 38
2.3.2 La Transformada Z ..............................................................45
2.3.3 La Transformada Z Inversa ...................................................49
2.3.4 Fun i on de Transferen ia de Pulso .................................. 51
2.3.5 El Espa io de Estado Dis reto .............................................53
2.3.6 Controlabilidad y Observabilidad .......................................64
3 Modelado de Pro esos 69
3.1 Modelo del Pro eso P endulo Invertido .......................................... 69
3.1.1 Modelo del Subsistema Carro-Pendulo ............................. 70
3.1.2 Modelo del Subsistema Motor-Polea ................................. 72
3.1.3 Representa i on en el Espa io de Estado ......................... 74
3.1.4 Obten i on del Modelo Lineal ............................................. 75
3.1.5 El Modelo en el Espa io de Estado Dis reto ....................... 76
3.2 Modelo del Pro eso Grua-Puente 77
............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................

3.2.1 Modelo del Subsistema Carro-Varilla ............................... 77


3.2.2 Modelo del Subsistema Motor-Polea ................................. 79
3.2.3 Representa i on en el Espa io de Estado ......................... 79
3.2.4 Obten i on del Modelo Lineal ............................................. 80
3.2.5 El Modelo en el Espa io de Estado Dis reto ....................... 80
3.2.6 Resumen de Variables y Parametros ................................... 81
3.2.7 Identi a ion de la Zona Muerta del Servomotor .............. 81
3.3 Modelo del Servomotor D.C. No Lineal ........................................ 84
3.3.1 El Subsistema Me ani o ................................................... 84
3.3.2 El Subsistema El e tri o .................................................... 86
3.3.3 Conversion de Energ a El e tri a en Me ani a .................... 87
3.3.4 Modelo y Compensa i on de no Linealidades ..................... 89
3.3.5 Linealiza i on y Dis retiza ion del Pro eso ...................... 90
3.4 Problemas Resueltos ....................................................................... 91
3.5 Problemas Propuestos .................................................................. 116

4 Control Optimo 123


4.1 Introdu ion ............................................................................... 123
4.2 Control Optimo Cuadr ati o No Esta ionario............................ 125
4.3 Control Optimo Cuadr ati o Esta ionario ................................. 127
4.4 El Regulador Optimo Propor ional .............................................. 128
4.5 Sele ion de las Matri es de Pondera ion ................................. 130
4.6 Disen~o del Observador Optimo Cuadrati o 136 .......................................................................................................................................................................................................................................................................................................................................................................................................................

4.7 El Regulador Optimo Propor ional Integral................................ 139


4.8 Pro edimiento de Disen ~o e Implementa ion 145 ............................................................................................................................................................................................................................................................................................................................................................................................................

4.9 Control Optimo Cuadrati o del Pendulo Invertido .................. 145


4.9.1 Formula i on del Problema ................................................ 145
4.9.2 El Modelo del Pro eso a Controlar ................................. 146
4.9.3 C al ulo de la Matriz de Ganan ia del Controlador ......... 147
4.9.4 C al ulo la Matriz de Ganan ia del Observador ............... 149
4.9.5 Simula ion del Sistema de Control O ptimo ........................150
4.9.6 El Hardware del Sistema de Control ............................... 153
4.9.7 Implementa ion del Software de Control .......................... 160
4.9.8 Resultados Experimentales ............................................... 177
4.10 Control Optimo Cuadrati o de la Grua-Puente 179 ....................................................................................................................................................................................................................................................................................................................................

4.10.1 Formula ion del Problema................................................ 179


4.10.2 Simula ion del Sistema Controlado .................................. 180
4.10.3 El Hardware y el Software del Sistema de Control ......... 185
4.10.4 Resultados experimentales ............................................... 185
4.11 Problemas Resueltos ..................................................................... 187
4.12 Problemas Propuestos .................................................................. 202

5 Control Adaptivo 205


5.1 Introdu ion ............................................................................... 205
5.2 Modelando Pro esos No Lineales ................................................ 207
5.3 Pro edimientos de Estima ion ................................................... 208
5.3.1 El M etodo de los M nimos Cuadrados Re ursivo.............. 208
5.3.2 M nimos Cuadrados Re ursivo Mejorado ......................... 211
5.3.3 Estima ion de Estados ...................................................... 219
5.4 La Ley de Control ......................................................................... 219
5.5 Pro edimiento de Disen ~o 221
........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................

5.6 Control Adaptivo de un Servomotor No Lineal........................... 222


5.6.1 Formula ion del Problema................................................ 222
5.6.2 El Modelo del Pro eso ...................................................... 222
5.6.3 Estima ion de Parametros ................................................ 223
5.6.4 Estima ion de Estados ...................................................... 224
5.6.5 La Ley de Control ............................................................ 224
5.6.6 La Ley de Control Residual ............................................. 225
5.6.7 Simula ion del Sistema de Control Adaptivo.................... 225
5.6.8 Implementa ion del Hardware ......................................... 229
5.6.9 Implementa ion del Software de Control .......................... 235
5.6.10 Resultados Experimentales ............................................... 252
5.7 Problemas Resueltos ..................................................................... 253
5.8 Problemas Propuestos .................................................................. 279

6 Control Predi tivo 283


6.1 Control Predi tivo Basado en Modelos ....................................... 283
6.2 Prin ipios del Control Predi tivo Basado en Modelos ................. 284
6.3 El Modelo del Pro eso .................................................................. 287
6.4 El Modelo del Predi tor ................................................................ 290
6.4.1 Predi i on de y(t + k=t) ................................................. 290
6.4.2 Predi i on de n(t + k=t) ................................................. 292
6.5 El Controlador Predi tivo ............................................................. 296
6.5.1 Objetivo del Controlador ................................................. 296
6.5.2 Respuesta Libre y Respuesta Forzada ........................... 297
6.5.3 La Ley de Control ............................................................. 301
6.6 Pro edimiento de Disen ~o 303
........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................

6.7 Control de Posi ion de un Servomotor ........................................ 304


6.7.1 Formula i on del Problema ................................................ 304
6.7.2 Respuesta Libre del Pro eso............................................. 305
6.7.3 Respuesta del Pro eso al Es alon..................................... 306
6.7.4 La Ley de Control ............................................................. 306
6.7.5 Simula ion del Sistema de Control Predi tivo ............... 306
6.7.6 Implementa ion del Hardware .......................................... 311
6.7.7 El Software de Control ..................................................... 312
6.7.8 Resultados Experimentales ............................................... 321
6.8 Problemas Resueltos ..................................................................... 324
6.9 Problemas Propuestos .................................................................. 342

7 Control Robusto 347


7.1 Estru tura del Control on Modelo Interno .............................. 347
7.2 Formula ion del Problema CMI ................................................... 353
7.2.1 El Modelo del Pro eso ...................................................... 353
7.2.2 Des rip i on de In ertidumbres del Modelo .................... 353
7.3 Control Robusto para Pro esos Estables ..................................... 356
7.3.1 Rendimiento Nominal ....................................................... 357
7.3.2 El Filtro Dis reto CMI...................................................... 361
7.3.3 Estabilidad Robusta .......................................................... 362
7.3.4 Rendimiento Robusto ..................................................... 363
7.4 Control Robusto para Pro esos Inestables .................................. 368
7.4.1 Rendimiento Nominal ....................................................... 370
7.4.2 El Filtro Dis reto CMI...................................................... 372
7.4.3 Estabilidad y Rendimiento Robustos ............................ 372
7.5 Pro edimiento de Disen ~o 373
........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................

7.6 Control Robusto de un Servomotor No Lineal ............................ 374


7.6.1 Formula i on del Problema ................................................ 374
7.6.2 Disen ~o del Sistema de Control Robusto 374 .........................................................................................................................................................................................................................................................................................................................................
7.6.3 Simula ion del Sistema de Control Robusto ......................374
7.6.4 Implementa ion del Hardware ......................................... 375
7.6.5 Implementa ion del Software ............................................ 376
7.6.6 Resultados Experimentales ............................................... 380
7.7 Problemas Resueltos ..................................................................... 380
7.8 Problemas Propuestos .................................................................. 399

8 Control No Lineal 405


8.1 Herramientas Matemati as ....................................................... 406
8.1.1 Derivadas y Cor hetes de Lie ........................................... 406
8.1.2 Difeomor smo y Transforma ion de Estados ................ 408
8.1.3 Transforma ion no Lineal de Estados ........................... 409
8.1.4 El Teorema de Frobenius ................................................. 410
8.2 Grado Relativo.............................................................................. 412
8.3 Forma Normal de Pro esos No lineales....................................... 413
8.4 Linealiza ion Exa ta y la Ley de Control ................................. 414
8.5 Observadores No Lineales ........................................................... 418
8.6 Pro edimiento de Disen ~o 421
........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................

8.7 Control No Lineal de un Servosistema ........................................ 422


8.7.1 Formula ion del Problema................................................ 422
8.7.2 Modelo del Pro eso .......................................................... 422
8.7.3 Determina ion del Grado Relativo................................ 424
8.7.4 Comprobar Linealiza ion Exa ta ................................... 424
8.7.5 La Forma Normal ............................................................. 425
8.7.6 La ley de Control No Lineal ............................................ 427
8.7.7 Disen ~o del Observador No Lineal de Estados 430 .................................................................................................................................................................................................................................

8.7.8 Simula ion del Sistema de Control No Lineal ................. 431


8.7.9 Implementa ion del Hardware ......................................... 439
8.7.10 Implementa ion del Software ............................................ 440
8.7.11 Resultados Experimentales ............................................... 444
8.8 Problemas Resueltos ..................................................................... 445
8.9 Problemas Propuestos .................................................................. 452

Bibliograf a 453

Indi e de Materias 456


Prefa io

Fundamentos

A nadie es apa el he ho de que estamos presen iando un dram ati o y per-


manente desarrollo de dispositivos y equipos basados en te ni a digital, tales
omo mi ro ontroladores, tarjetas de desarrollo para pro esamiento digital
de sen~ales, sistemas en apsulados, omputadoras industriales, sistemas de
adquisi ion de datos, entre otros. Tales dispositivos y equipos, que ada vez
son m as pequen ~os y de menor osto, pero paradoji amente m as potentes,
han provo ado que a tualmente la gran mayor a de los sistemas de ontrol
se disen~en basados en te ni as digitales.
Con respe to a las t e ni as empleadas en el disen
~o de los sistemas de on-
trol, podemos observar en la industria que ada vez son mas las apli a iones
basadas en t e ni as no tradi ionales, las uales denominaremos te ni as de
ontrol avanzado. En este ontexto, las t e 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 t e 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 disen ~o de sistemas de ontrol avanzado y su
orrespondiente implementa ion en tiempo real. El material desarrollado
basa sus fundamentos en la representa ion de los sistemas de ontrol en el
espa io de estado dis reto. Sin embargo, no se deja de men ionar y de tratar
el punto de vista tradi ional, uando sea ne esario.
He sido muy uidadoso en ubrir on amplitud y on la laridad del aso,
empleando mu has ve es ejemplos expli ativos, aquellos on eptos funda-
mentales requeridos para un mejor entendimiento del material presentado.
Las apli a iones en tiempo real desarrolladas para validar los metodos de
xii Prefa io

disen
~o presentados en los ap tulos del uatro al o ho, onstituyeron proye -
tos de investiga ion realizados en la Se ion de Postgrado de la Fa ultad de
Ingenier a El e tri a y Ele tr oni a de la Universidad Na ional de Ingenier a
(http:// ee.uni.edu.pe), asa de estudios de la ual soy do ente.

Herramientas Computa ionales


La gran mayor a de los ejer i ios y problemas formulados en este libro se de-
sarrollan on el auxilio de la omputadora personal. Espe amente, para
el desarrollo de los ejemplos y problemas, y para la simula i on de las apli a-
iones, se emplea el software \MATLAB" (versi on 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 tambi en pueden eje utarse
en versiones de software mas a tualizadas. Los programas fuente se pueden
des argar de mi p agina web: http:/ ee.uni.edu.pe/728681F. Antes de
emplear tales programas, leer el ar hivo README.TXT.

Sistema de Unidades y A entua i on en Programas Fuente


Esta publi a i on emplea el Sistema Interna ional (SI) de unidades. Para se-
parar la parte entera de la parte de imal de los nu meros de imales, seguire-
mos usando el punto (.) en lugar de la oma (,), debido a que los paquetes
de software MATLAB y Borland C/C++ s olo permiten emplear el pun- to
(.) para expresar nu meros 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 Cap tulos


Cap tulo 1: Matem ati a Asistida on Computadora. Des ribe
en forma su inta algunos topi os de matemati as apli adas (b asi amente
analisis matri ial y ve torial) ne esarios para el desarrollo de los ap tulos
posteriores. La mayor a de los ejemplos se desarrollan on el auxilio del
software MATLAB. De all la razon del nombre del ap tulo.
Cap tulo 2: Sistemas Dis retos. Presenta los on eptos fundamen-
tales a er a de los sistemas de ontrol realimentados operando en el tiempo
dis reto, y la representa i on de los mismos en el espa io de estado.
Cap tulo 3: Modela i on de Pro esos. En este ap tulo 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 p endulo invertido,
la gru a-puente y el servomotor D.C. (\Dire t Current") sujeto a argas no
lineales. En su se ion problemas, el ap tulo presenta la modela ion de
diversos pro esos t pi os.
Cap tulo 4: Control Optimo. Desarrolla los fundamentos del ontrol
optimo uadrati o dis reto y dos apli a iones en tiempo real: ontrol optimo
de posi i on del p endulo invertido y ontrol optimo de posi ion de la gru a-
puente. En su se i on problemas, el ap tulo desarrolla disen ~ os de sistemas
de ontrol optimo uadr ati o para varios pro esos t pi os.
Cap tulo 5: Control Adaptivo. Dis ute brevemente a er a de los
prin ipales sistemas de ontrol adaptivo, para luego presentar en detalle el
pro edimiento de disen ~o de un sistema de ontrol adaptivo on autosin-
toniza i on. El pro edimiento desarrollado se apli a para implementar en
tiempo real el ontrol adaptivo on autosintoniza ion de la posi i on de un
servomotor D.C. operando on arga no lineal y variable. En su se ion
problemas, el ap tulo presenta disen ~os de sistemas de ontrol adaptivo on
autosintoniza i on para varios pro esos t pi os.
Cap tulo 6: Control Predi tivo. Presenta los fundamentos del on-
trol predi tivo basado en modelos y desarrolla una apli a ion en tiempo real:
ontrol predi tivo de la posi i on de un servomotor D.C. sujeto a argas no
lineales empleando el algoritmo de la matriz din ami a de ontrol. En su
se i on problemas, el ap tulo desarrolla disen ~os de sistemas de ontrol pre-
di tivo para diversos pro esos t pi os, naturalmente, empleando el algoritmo
de la matriz din ami a de ontrol.
Cap tulo 7: Control Robusto. Trata los fundamentos del ontrol
robusto basado en la t e ni a de ontrol on modelo interno. A ontinua i on,
di ha t e ni a se apli a para el ontrol robusto en tiempo real de la posi ion de
un servomotor D.C. modelado on in ertidumbres. Tambi en, en su se ion
problemas, el ap tulo desarrolla disen ~os de sistemas de ontrol robusto para
diversos pro esos t pi os, empleando el algoritmo de ontrol on modelo
interno.
Cap tulo 8: Control No Lineal. Desarrolla los fundamentos rela-
ionados on el ontrol no lineal de pro esos empleando la t e ni a deno-
minada linealiza ion por realimenta ion. Para validar los fundamentos de
di ha t e ni a, se desarrolla el disen ~o e implementa ion del sistema de on-
trol por linealiza ion de la realimenta ion de la posi ion de un servomotor
D.C. no lineal. En su se ion problemas, el ap tulo desarrolla disen ~os de
sistemas de ontrol no lineal para diversos pro esos t pi os.
xiv Prefa io

Pre-requisitos y Con gura i on de Cursos


Por su ontenido y su presenta i on, este volumen puede ser usado omo libro-
texto en las espe ialidades de Ingenier a El e tri a, Ele tr oni a, Me ani a
y/o Me atr oni 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 ap tulos 1, 2, 3, 4 y 6, y tratar
su intamente los ap tulos 5, 7 y 8. Para un urso de postgrado se sugiere
ubrir los ap tulos 3 al 8, quedando los ap tulos 1 y 2 omo medio de
onsulta.
Por su ara ter apli ativo, por el tratamiento laro y fa ilmente om-
prensible del material presentado y gra ias a la gran antidad de ejemplos,
problemas y apli a iones desarrollados, este libro puede ser empleado tam-
bi en por la gran audien ia de ingenieros y t e ni os espe ializados que ejer en
en la industria y por los investigadores de otras areas (f si os, matem ati os,
entre otros) que deseen familiarizarse on las t e ni as digitales para disen ~ar
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 ( ap tulos 3 y 4), Omar Tupaya hi ( ap tulos 3
y 8) y Rau l Benitez ( ap tulos 6 y 7). Luis Le ina (alumno de la Universidad
Polit e ni a de Catalun~a) olabor o on el ap tulo 5. La revisi on de todo lo
es rito estuvo a argo de mi alumna Claudia Cordova, mientras que Rommel
Romero (mi futuro alumno) se en arg de todo lo relativo a la impresi on del
libro.

Arturo Rojas Moreno, Ph.D.


arojasm viab p. om
arojas uni.edu.pe
http:// ee.uni.edu.pe/728681F
Cap tulo 1

Matem ati a Asistida on


Computadora

Este ap tulo es una breve exposi ion de los fundamentos matemati os rela iona-
dos on el analisis matri ial, el an alisis ve torial y la transformada de Lapla e. El
material sele ionado est a estre hamente rela ionado on el material a desarro-
llarse en los ap tulos siguientes. Para mayores detalles del material ubierto se
re omienda onsultar las referen ias [18℄, [19℄, [20℄, [21℄, [22℄, [14℄ y el ap endi e
A de [3℄. Los al ulos, en su gran mayor a, se realizan on el auxilio del paquete
MATLAB. Todos los ar hivos orrespondientes a los ejer i ios desarrolados se
pueden des argar del sitio: http:// ee.uni.edu.pe/728681F.

1.1 C al ulo Matri ial


1.1.1 Opera iones y Tipos de Matri es
Nomen latura
La nomen latura que se expli a a ontinua ion no est libre de ex ep iones
a la regla. Tales ex ep iones ser an a laradas onforme aparez an.
Una matriz A de orden (o dimension) n m, la ual sera denotada
siempre on letra mayus ula, es un arreglo re tangular on sus elementos

2 3
aij dispuestos en n las y m olumnas. Es de ir:
a11 : : : a1m
A = [aij ℄ =
64 .
.
75
; i = 1; : : : ; n; j = 1; : : : ; m
an1 : : : anm
2 Matemati a Asistida on Computadora

Los elementos de una matriz pueden ser numeros (reales o omplejos),


fun iones, otras matri es, et . Cuando n = 1, A se onvierte en un ve tor
la. Cuando m = 1, A toma la forma de un ve tor olumna. Sin embargo,
2
los ve tores ser an denotados en negrita. Por ejemplo, el ve tor olumna x(t)
de orden n se representa omo:
x(t) = 3
64 x1(t)
.
xn(t)
75
El ve tor la orrespondiente es:
T
T
x (t) = x1(t) xn(t) ; x(t) = x1(t) xn(t)
donde el super ndi e T indi a transpuesta.
El ambio de dominio (o de argumento) de una matriz o ve tor debido a
una transforma ion solo afe ta al dominio. Por ejemplo, las transformadas
de Lapla e de A(t), x(t) e Y(t) (subse i on 1.3) se representan omo A(s),
x(s) e Y(s) respe tivamente.
La rela i on entre la salida y(:) y la entrada u(:) de un sistema, depen-
diendo del argumento, se designa omo:
y(t) = g(t) u(t); y(s) = G(s)u(s)
y(k) = g(k) u(k); y(z) = G(z)u(z)
donde el asteris o denota la opera i on onvolu i on, t y k son los tiempos
ontinuo y dis reto, s y z son las variables lapla iana y zeta, G(s) y G(z)
son fun iones de transferen ia y, g(t) y g(k) son las respuestas del sistema a
un impulso unitario. Mas adelante veremos que el asteris o tambi en denota
la opera ion onjugada en expresiones omplejas.
Estados de equilibrio de matri es y ve tores variantes on el tiempo
ontinuo t o dis reto k se denotan on una barra sobre la letra empleada.
Por ejemplo, los estados de equilibrio de A(k) e Y(k) son A (k) e Y(k)
respe tivamente. En muy ontados asos, la barra sobre una variable tiene el
signi ado de sen~al re onstruida por un dispositivo de reten ion.
En el aso de ve tores variantes on el tiempo ( ontinuo o dis reto),
y uando sea ne esario, emplearemos variables redu idas (es ritas on le- tra
minu s ula), las uales tambi en se denominan variables de desvia i on o
perturba ionales. Por ejemplo, la variable redu ida de Y(k) es:
y(k) = Y(k) Y(k)
1.1 C al ulo Matri ial 3

Las formas estimadas de A(:), x(:) e Y(:) (para ualquier argumento) se


representan omo A^(:), x ^ (:), respe tivamente.
^ (:) e Y

Opera iones on Matri es


Una matriz A on todos sus elementos aij iguales a ero se denomina matriz
ero o nula y se denota omo A = 0. Dos matri es A = [aij ℄ y B = [bij ℄ son
iguales si son del mismo orden y ademas [aij ℄ = [bij ℄.
La suma de dos matri es, denotada omo C = A B, s olo es posible si
A y B son del mismo orden:
C = [ ij ℄ = A B = [aij bij ℄
La multipli a ion de dos matri es, denotada omo C = AB, solo es
posible si el nu mero de olumnas de A es igual al nu mero de las de B. Si
A es de orden n m y B es de orden m r, enton es C debe ser de orden
n r. Los elementos de C se determinan omo sigue:

ij = X
m
aikbkj; i = 1; 2; : : : ; n; j = 1; 2; : : : ; m
k=1

Por ejemplo:
2 3
b11
a11 a12 a13
a21 a22 a23 4 5
b21
b31
= 11
21
=
a11b11 + a12b21 + a13b31
a21b11 + a22b21 + a23b31

Si es un es alar, enton es A resulta una matriz en donde ada elemento


queda multipli ado por . Es de ir:
A = [aij℄ = [ aij℄
La multipli a i on es aso iativa:
ABCD = (AB)(CD) = A(BCD) = (ABC)D
y distributiva:
(A + B)(C + D) = AC + AD + BC + BD
Cuando AB = BA, se di e que A y B son matri es que onmutan. Sin
embargo, en general, la multipli a i on no es onmutativa:
AB 6= BA
4 Matemati a Asistida on Computadora

Si AB = 0, impli a que A = 0 o B = 0, o que A y B sean singulares


(e ua ion (1.1)). Si AB = AC, no ne esariamente impli a que B = C.
La matriz transpuesta, denotada omo AT , es la matriz A on sus las y
olumnas inter ambiadas. Por onsiguiente:
(AT )T = A; (A + B)T = AT + B T ; (AB)T = B T AT

Un numero omplejo se designa omo s = + j!, donde j = 1 es la


p
unidad de los nu meros imaginarios y tanto omo ! son nu meros reales.
La opera ion onjugada, denotada omo A , toma la onjugada a todos los
elementos omplejos de A. Para la opera i on onjugada se umple:

(A ) = A; (A + B) = A + B ; (AB) = A B

La opera ion hermitiana, denotada omo A H , toma la onjugada y luego


la transpuesta (o toma la transpuesta y luego la onjugada) de la matriz A.
Es de ir:
AH = (A )T = (AT )
Por onsiguiente:

(AH )H = A; (A + B) H = AH + B H ; (AB)H = B HA H

Tipos de Matri es
Si el orden de una matriz A es n n, enton es la matriz se denomina uadrada
de orden n. Esta matriz posee una diagonal prin ipal, o simplemente una
diagonal on elementos aii. La traza de una matriz uadrada se de ne omo:

traza(A) = a11 + + ann


Una matriz uadrada se denomina matriz diagonal uando los elementos que
no pertene en a su diagonal son todos eros:
2 d11 0 0 : :: 0 3
D = [dii ℄ = 6 0 d22 0 : :: 0
7
4 . . .

0 0 0 : : : dnn
.
5
Una matriz uadrada se denomina triangular superior si los elementos debajo
de su diagonal son todos eros. Si los elementos en ima de de su diagonal
son todos eros, enton es la matriz es triangular inferior.
1.1 Cal ulo Matri ial 5

La matriz identidad I, denotada tambi en omo In (n es el orden de la


matriz), es una matriz diagonal que solo posee unos. Si A es uadrada, AI
= IA, y en general se umple que:
A es sim etri a si: AT = A
A es antisim etri a si: AT = A
A es ortogonal si: AAT = AT A = I
A es periodi a si: A +1 = A; es un entero positivo A
es nilpotente si: A = 0; es un entero positivo
A es hermitiana si: (AT ) = (A )T = AH = A
A es antihermitiana si: AH = A
A es unitaria si: AAH = AH A = I
A es normal si: AAH = AH A
A 1 es inversa de A si: AA 1 = A 1 A = I
A es singular si: det(A) = 0 (1.1)
donde det(A) denota el determinante de A, punto que se trata en la siguiente
subse i on.
Una matriz uadrada A on elementos omplejos puede ser es rita o-
mo la suma de una matriz hermitiana B = 1 (A2 + A H) mas una matriz
antihermitiana C = 12 (A AH). Es de ir:
1
A = B + C = 1 (A + AH ) + (A A ) H
2 2
1.1.2 Determinantes y Matriz Inversa
Determinantes
El determinante de la matriz A = [aij ℄ de orden 2 es:
a11 a12
det = a11a22 a12a21 (1.2)
a21 a22
Para obtener el determinante de una matriz de orden n > 2 podemos
emplear el m etodo de la expansion. Si tomamos omo base la primera la,
el determinante de una matriz A se obtiene de:

det(A) =
X( 1)
n
1+j
a 1j det(A1j) = ( 1)1+1a11 det(A11) + ( 1)1+2a12 det(A12) +
j=1
6 Matemati a Asistida on Computadora

donde A 1j, j = 1; : : : ; n es la matriz que resulta luego de eliminar la la 1

02 31
y la olumna j de A. Por ejemplo, el determinante de una matriz de orden
n = 3 se al ula omo:
a11 a12 a13

det
4 a21 a
a31 a32 a
a2
2 5A
= ( 1)1+1 a11 det
a22 a23
a32 a33
+
2333
a21 a23 a21 a22
( 1)1+2a12 det + ( 1)1+3a13det (1.3)
a31 a33 a31 a32
Con rela i on a dos matri es uadradas A y B de orden n:
1. Si ada elemento de una la o olumna de A es ero, det(A) = 0.
2. det(A) = det(AT ).
3. Si multipli a una la o olumna de A, enton es el det(A) queda
multipli ado por .
4. Si B se obtiene inter ambiando dos las o olumnas de A, enton es
det(B) = det(A).
5. Si dos las o olumnas de A son iguales, enton es det(A) = 0.
6. Si sumamos un multiplo de una la o olumna de A a ualquiera de
sus las o olumnas, el valor del det(A) no ambia.
7. det(AB) = det(BA) = det(A)det(B)
8. Si los eigenvalores de A son 1; 2; : : : ; n , det(A) = 1 2 ::: n. La
determina i on de eigenvalores se trata en la subse ion 1.2.2.

Matriz Inversa
6
Si A y B son dos matri es no singulares; es de ir, si det(A) = 0 y det(B) = 6
0,enton es:
(AB) 1 = B 1 A 1; (AT ) 1 = (A 1 )T
1
((A )T ) 1 = ((A 1 ) )T ; det(A 1 ) =
det(A)
Si A es una matriz no singular de orden 2, vale re ordar que:
a b ; 1 d b
A= A1= (1.4)
d ad b a
1.1 C al ulo Matri ial 7

Si A es una matriz no singular de orden 3: 2


A = a b 35
4 d

g
e

h
f

2 e f b b
3
det det det ef

1 1 6
6 det
h i
d f
a
h i
77
A = ( )
det A det g i a
d f
64 det
g i
d e
det
a b
det

a b 57
g h g h det
d e

det(A) = aei + gbf + dh ge ahf idb (1.5)


Lema de Inversion de Matri es. Si A, B, C y D son matri es no
singulares de orden n n, n m, m n y n n respe tivamente, enton es:
1 1 1 1 1
(A + BDC) =A A B(D + CA B) 1 CA 1
(1.6)

Este lema se demuestra pre-multipli ando ada miembro de la e ua i on (1.6)


por (A + BDC). Luego, efe tuar las opera iones matri iales resultantes:
(A + BDC )(A + BDC ) 1 = I

(A + BDC)[A 1 A 1 B( D 1 + CA 1 B) 1 CA 1 ℄ =
1
I + BDCA B (D 1 + CA 1 B ) 1
CA 1
BDCA 1B ( D 1 + CA 1
B ) 1 CA 1
= I+
1 1 1 1 1 1 1
BDCA (BDD + BDCA B)(D + CA B ) CA =
I + BDCA 1 BD (D 1 + CA 1B )(D 1 + CA 1 B ) 1 CA 1 = I +
1 1
BDCA BDCA = I

Valor Absoluto. Si g = gr + jgi es un numero o una fun ion real o


ompleja, su valor absoluto, ono ido tambi en omo modulo o magnitud y
jj
denotado omo g , es un nu mero real positivo o ero. El angulo de g en rad
< =
se denota omo \g. Si e[:℄ e m[:℄ son los operadores real e imaginario
respe tivamente, enton es se umple que:

<e[g℄ = g ; r =m[g℄ = g ; i <


g = e[g℄ + j m[g℄ = g \g = jj

jgj =
p<( e[g℄)2 + ( m[g℄)2 ; = \g = ar tan
=m[g℄
<e[g℄
8 Matemati a Asistida on Computadora

Si G es una matriz ompleja on elementos g ij, enton es las opera iones


anteriores se eje utan elemento por elemento; es de ir:

<e[G℄ = <e[g ℄; =m[G℄ = =m[g ℄


ij ij

G = jGj\G = jg j\g ; jGj = jg j; \G = \g


ij ij ij ij

La tabla 1.1 muestra los omandos para eje utar opera iones matri iales
empleando MATLAB.

Ejemplo 1.1
Dada la matriz uadrada A, al ular B.
2 1 j 2 j 3 j
3
A= 4 6
4j 2 3 + 5j
j 7 j 8 + 3j
5
B = (A + A
T
j j
0:7jA3 )A 1 AH A \A e[A℄ m[A℄ < =
(2j + 1) traza(A)det(A)
Solu ion: El programa en MATLAB para al ular B es el siguiente:
% ejem1_1.m EJEMPLO SOBRE CALCULO MATRICIAL COMPLEJO
lear all
A = [1-j 2-j 3- j
4j -2 3+5j
6-j 7-j 8+3j℄;
B = ( onj(A)+ onj(A')-0.7j*A^3)*inv(A)*A'*abs(A)* ...

angle(A)*real(A)*imag(A)/((2*j+1)*tra e(A)*det(A));

% B = 1.0e+002 *
% 0.2488 - 0.0957i 0.8007 - 0.3510i -2.1614 + 0.9495i
% 0.2952 + 0.3551i 0.9809 + 1.0977i -2.6468 - 2.9592i
% 0.8222 + 0.1991i 2.7135 + 0.5050i -7.3267 - 1.3550i

Ejemplo 1.2

Determinar la matriz hermitiana B y la antihermitiana C de la matriz A


del ejemplo anterior.
1.1 C al ulo Matri ial 9

Tabla 1.1: Comandos para omputo matri ial

Opera ion Codigo MATLAB


Suma A +B A + B
Resta AB A - B
Multipli a ion AB A*B
Multipli a ion A; : omplejo kappa*A
Conjugada A onj(A)
Transpuesta (A real) AT A'
Transpuesta (A ompleja) AT onj(A'); A.'
Hermitiana AH A'
Poten ia An A^n
Determinante det(A) det(A)
Inversa A1 inv(A)
Division izquierda A*X = B; X = A\B
Division dere ha X*A = B; X = B/A
Valor absoluto j Aj abs(A)
A ngulo \A angle(A)
Parte real <[A℄ real(A)
Parte maginaria
Traza
Matriz identidad
P
=[A℄
n
i=1 aii
imag(A)
tra e(A)
In eye(n)
10 Matemati a Asistida on Computadora

Solu ion: Las matri es pedidas son:


1
B = 1 (A + AH ); C = (A A )
H
2 2
H H
y se puede omprobar que B = B y C = C . Ver programa ejem1 2.m.
% ejem1_2.m MATRICES HERMITIANAS
lear all
A = [1-j 2-j 3-j
4j -2 3+5j
6-j 7-j 8+3j℄;
B = (A + A')/2; C = (A - A')/2;

ZB = B - B'; % ZB RESULTA LA MATRIZ CERO


ZC = C + C'; % ZC RESULTA LA MATRIZ CERO

Ejemplo 1.3
Multipli a ion on Parti i on de Matri es.- Dos matri es Anm y Bmp

2 3 2
(los sub ndi es indi an las dimensiones) pueden ser parti ionadas omo sigue:
An1 m1 An1 mm Bm1 p1 Bm1 pp
3
A=
64 .
.
75 ; B=
46 .
.
75
A n n m1 Ann mm Bm m p 1 Bmmpp
La ondi i on ne esaria para realizar el produ to C np = AnmBmp empleando
parti iones, es que las olumnas de A y las las de B sean parti ionadas
en la misma forma. Por tanto, n = n1 + + n n, m = m 1 + + mm y

2 32
p = p1 + + pp. Determinar si el produ to siguiente es v alido y si lo es,

53
obtener C = AB.
A22 A23 A21 B22 B23

AB =
4 A32 A
A42 A43
A3
3
A
54 B32 B33
B12 B13
3141

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
es orre ta. La multipli a i on ahora es dire ta:
2 A22B22 + A23B32 + A21B12 A22B23 + A23B33 + A21B13 3
C= 4 A32B22 + A33B32 + A31B12
A42B22 + A43B32 + A41B12
A32B23 + A33B33 + A31B13
A42B23 + A43B33 + A41B13
5
En nota i on MATLAB, ono iendo las matri es parti ionadas, el produ to
resulta:
1.1 C al ulo Matri ial 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
diferen iales siguientes:
dx dy
= Ax + Bv; = Cy + Dw
dt dt
Solu i on: Las matri es A on C y B on D forman matri es aumentadas
omo sigue:
dx
dt A 0 x B 0 v
dy = +
dt
0 C y 0 D w

Ejemplo 1.5
Si los i son los eigenvalores de la matriz A de orden n, omprobar num eri amente
que:
det(A) = 1 2 : : : n; i = 1; : : : ; n
Solu i on: Ver el programa ejem1 5.m.
% ejem1_5.m COMPRUEBA QUE det(A)=L(1)L(2)L(3)L(4)
lear all
A = [1-j 2-j 3-j -3+8j
4j -2 3+5j 4-2j
6-j 7-j 8+3j 3+j
2 -1 j 0℄;
L = eig(A); % DETERMINA LOS EIGENVALORES DE A
detA = det(A); P = L(1)*L(2)*L(3)*L(4);
% SE DEBE CUMPLIR QUE: P = detA

Ejemplo 1.6

Cono idas las matri es Ann, Bnm, Cmn y Dmm on det(A) 6= 0 y det(D) 6=
0,y de niendo:

A B A 0 A B
E= ; G= ; H=
0 D C D C D
12 Matemati a Asistida on Computadora

demuestre num eri amente que:


det(E) = det(G) = det(A)det(D)
1 1
det(H) = det(A)det(D CA B) = det(D)det(A BD C)
Solu ion: El siguiente programa demuestra num eri amente lo pedido.
% ejem1_6.m DETERMINANTE DE MATRICES PARTICIONADAS
lear all
% MATRICES DATOS CON n=2 Y m=3:
A = [-3+j 4-2j
5-8j -7-2j℄;
B = [ j -1+3j 2-5j
4+7j 6 3+8j℄;
C = [ 2-j j
1+j -5j
-3-7j 8℄;
D = [2+j -3-j 4j
1+3j 0 -7j
1+j -9-2j -5℄;
% CONDICION: det(A) Y det(D) DISTINTOS DE 0
% zeros(m,n) CREA UNA MATRIZ DE CEROS DE ORDEN (m,n)
E = [A B
zeros(3,2) D℄;
G = [A zeros(2,3)
C D℄;
M = det(A)*det(D);
% SE DEBE CUMPLIR: det(E) = det(G) = M DISTINTO DE 0
H = [A B
C D℄;
J = det(A)*det(D-C*inv(A)*B);
K = det(D)*det(A-B*inv(D)*C);
% SE DEBE CUMPLIR: det(H) = det(J) = K

Ejemplo 1.7

Demostrar num eri amente que:


1
A B A 1 A 1 BD 1
=
0 D 0 D 1
1 1
A 0 A 0
= 1 CA 1
C D D D 1
Solu ion: Ver el programa ejem1 7.m.
1.1 C al ulo Matri ial 13

% ejem1_7.m INVERSION DE MATRICES PARTICIONADAS


lear all
% MATRICES DATOS CON n=2 Y m=3:
A = [-3+j 4-2j
5-8j -7-2j℄;
B = [ j -1+3j 2-5j
4+7j 6 3+8j℄;
C = [ 2-j j
1+j -5j
-3-7j 8℄;
D = [2+j -3-j 4j
1+3j 0 -7j
1+j -9-2j -5℄;
% CONDICION: det(A) y det(D) DISTINTOS DE 0
% LA MATRIZ CERO DEBE SER DE ORDEN (m,n)
Z1 = zeros(3,2);
E = [A B
Z1 D℄;
G = [inv(A) -inv(A)*B*inv(D)
Z1 inv(D)℄;
% LA MATRIZ CERO DEBE SER DE ORDEN (m,n):
Z2 = zeros(2,3);
F = [A Z2
C D℄;
H = [inv(A) Z2
-inv(D)*C*inv(A) inv(D)℄;
% E*G, G*E, F*H y H*F DEBEN RESULTAR MATRICES IDENTIDAD

Ejemplo 1.8

Demostrar num eri amente que:


1
A B A 1 + A 1B (D CA 1 B ) 1 CA 1 A 1B (D CA 1 B ) 1
=
C D (D CA 1 B ) 1 (D CA 1 B) 1
1
A B (A BD 1 C ) 1 (A BD 1 C ) 1 BD 1
=
C D D 1C ( A BD 1 C ) 1 D 1C ( A BD 1 C ) 1 BD 1 + D 1
Solu i on: Ver en el siguiente programa la demostra i on pedida.
% ejem1_8.m INVERSION DE MATRICES PARTICIONADAS
lear all
% MATRICES DATOS CON n=2 Y m=3:
A = [-3+j 4-2j
14 Matemati a Asistida on Computadora

5-8j -7-2j℄;
B = [ j -1+3j 2-5j
4+7j 6 3+8j℄;
C = [ 2-j j
1+j -5j
-3-7j 8℄;
D = [2+j -3-j 4j
1+3j 0 -7j
1+j -9-2j -5℄;
% CONDICION: det(D) Y det(D-C*inv(A)*B) DISTINTOS DE 0
E = [A B;C D℄;
G11 = inv(A) + inv(A)*B*inv(D-C*inv(A)*B)*C*inv(A);
G12 = -inv(A)*B*inv(D-C*inv(A)*B);
G21 = -inv(D-C*inv(A)*B)*C*inv(A);
G22 = inv(D-C*inv(A)*B);
G = [G11 G12;G21 G22℄;
% CONDICION: det(D) Y det(A-B*inv(D)*C) DISTINTOS DE 0
H11 = inv(A-B*inv(D)*C);
H12 = -inv(A-B*inv(D)*C)*B*inv(D);
H21 = -inv(D)*C*inv(A-B*inv(D)*C);
H22 = inv(D)*C*inv(A-B*inv(D)*C)*B*inv(D)+inv(D);
H = [H11 H12;H21 H22℄;
% E*G, E*H, G*E y H*E DEBEN RESULTAR MATRICES IDENTIDAD

1.1.3 Derivadas e Integrales on Matri es y Ve tores


Derivada e integral de una matriz A(t) = [aij(t)℄ de orden n m:
2 d d 3 Z 2R () R ()3
d
dt A(t) =
dt a11(t)
.
dt a1m

d .
(t)
; A t
6R
()= 4 .
a11 t a1m t

R .()
dt an1
d (t) dt anm (t) () an1 t anm t

Derivada e integral de un ve tor x(t) = [x1 : : : xn ℄T :


2 (1.7)

2 d
Z x(t) = R 3
x1(t)
d
dt
x(t) = 64 dt x1(t)

d
537 ;

xn(t)
64 R 75
.
(1.8)
dt xn(t)
.
Cuando las matri es A y B y el es alar son fun iones de t, se umple:
d d d d dA dB
[A + B℄ = A + B; [AB℄ = B+A
dt dt dt dt dt dt
d dA dk dA 1
d
[Ak℄ = k+A ; A 1= A1 (1.9)
dt dt dt dt A
1.2 Analisis Ve torial 15

2 3
Derivada par ial de una fun i on es alar J(x) de variable ve torial:
J 2 2
J 2
J 2
J 3
46 75 46
J x1
. 2
J x2
. 1
x 1 x2
.
x1 x n
.
= ; = .

57
. x2 .2 .2 (1.10)
x J J J 2
J
xn x n x1 x n x2 n

Derivada total de una fun ion es alar V (x(t)) de variable ve


x2 torial:
T
d V 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 f1
x
f2
x
fm
x1
3
f11 f21
f
= 66 x2 fxm
2 (1.12)

57
. .
x
4 .
f1
xn
x2
.
.
f2
.
fm
xn xn
Si la matriz uadrada A y los ve tores x e y son reales y de orden n se
umple:
xT Ax = Ax + AT x
x
xT Ay
= Ay; xT Ay = AT x (1.13)
x y
Si A es una matriz hermitiana de orden n y x e y son ve tores omplejos de
orden n, se umple:

x HAx = Ax
x
xH Ay = Ay; xH Ay = AT x (1.14)
x y

1.2 An alisis Ve torial


1.2.1 Independen ia, Ortonormalidad y Normas
Independen ia de Ve tores
Se di e que los ve tores xi, i = 1; : : : ; n son linealmente independientes si:

Xn
ixi =0
i=1
16 Matemati a Asistida on Computadora

La e ua ion anterior impli a que las onstantes i = 0, i = 1; : : : ; n, o que


6
det([x1 : : : xn℄) = 0.

Opera ion on Ve tores Complejos y Reales


Si x e y son ve tores omplejos de orden n:

H H
x y = (y x) = y x = T Xn
xi yi
i=1

X n
Xj j
n

2
xH x = i=1 x
i xi

x 1 x 1 x 1 x2
= i=1 xi
: : : x 1 xn
3
xxH = ::: . . (1.15)
x nx 1 xn x : : : xn x
Si x e y son ve tores reales de orden n:

x T y = yT x =
X n

xi yi ; xT x =
Xn

x2i
2 i=1

x12 x1x2 : : : x1xn


3
i=1

T
xx =
64 ::: . .
75 (1.16)
xn x1 xn x 2 ::: x2n

Ve tores Ortonormales

Los ve tores reales x1; x2; : : : son ortonormales si xi T xj = 0 uando i 6= jy


6
xTi xj = 0 uando i = j.

Normas de Ve tores y Matri es


Norma de un Ve tor
En general, una norma es una medida del taman ~o de un ve tor o matriz. La
eje u ion de la norma resulta en un es alar positivo. La norma de un ve tor
k k
denotada omo x posee las propiedades siguientes:

kx k 0 para todo x 6= 0
1.2 Analisis Ve torial 17

k x k= 0 si y solo si x = 0
k x k=k kk x k es un es alar
Desigualdad triangular: kx+yk k xk+kyk
Desigualdad de S hwarz: jxH yj k x kk y k
La norma mas empleada es la Eu lidiana:

k x k2 = (x H
x)1=2 = pj j j j
x1 2 + x2 2 + j j2
+ xn (1.17)

que es un aso parti ular de la siguiente norma:

k x k=
q p
(P x)H (P x) = xH P H P x = xH Qx)℄
q 0; Q = P H P = QH
Otras normas pueden ser de nidas omo:

k x k=
Xj j
n

xi ; k x k1= max jx j; i k x k 1= min jx j i


i i
i=1

Xj j !
1=p
n

k x kp= xi p

i=1

Norma de una Matriz


La norma de una matriz A de orden n es el menor valor de tal que:

k Ak k Ak
Tal norma umple las propiedades de la norma de un ve tor. En adi i on,
tambi en umple:

k A k=k AH k; k A k=k AT k; k Ax k k A kk x k
k A k2 = max[x
x
H H
A Ax℄; si x x = 1 H

j j k A k; si es un eigenvalor de A
Otras normas para una matriz A de orden n son:
0
XX j j A1
1=2

k A k=
XX j
n n

j
aij ; k A kF =
n n

aij 2

i=1 j=1 i=1 j=1


18 Matemati a Asistida on Computadora

! 0 1
k A k1 = max
j
Xj j
m

i=1
aij ; X Ak
A = max
i
n

kj=1 a ij

k A k2 = max
q j j
i (A
H A)
1

i
1.2.2 Rango de una Matriz, Eigenvalores y Eigenve tores
Rango de una Matriz
Si A es una matriz de orden n m, su rango, denotado omo rango(A), es igual
al nu mero maximo r de sus ve tores olumnas linealmente indepen-
dientes. Si A es una matriz de orden n m y B es de orden m k:

rango(AB) = rango(AH ) = rango(AH A) = rango(AA H)


rango(AB) = rango(AT ) = rango(AT A) = rango(AAT )
rango(AB) rango(A); rango(AB) rango(B)
rango(AB) = rango(A); si A y B son no singulares
rango(AB) = rango(B); si A y B son no singulares

Si A es una matriz de orden n y det(A) 6= 0, enton es:


rango(A) = n

Eigenvalores y Eigenve tores


Un eigenvalor de una matriz de orden n, ono ido tambi en omo valor pro-
pio, modo, \eigenvalue", valor o ra z ara ter sti a, es un es alar que
permite una solu ion no trivial de la e ua i on:

Ax = x x 0 (1.18)

Fa torizando x obtenemos la e ua ion ara ter sti a de A:

det( I A) (1.19)

Aso iado on ada eigenvalor i existe un eigenve tor ei de magnitud arbi-


traria que es solu ion de Aei = ei . Para un eigenve tor normalizado e
^, su
norma Eu lidiana es uno: ek k
^ = 1.
1.2 Analisis Ve torial 19

1.2.3 Diagonaliza ion de Matri es


Matri es Similares
Se di e que dos matri es A y B de orden n son similares si existe una matriz
P no singular tal que P 1AP = B y B = P AP 1 .
Sea A una matriz de orden n que posee n eigenvalores distintos. Sea E =
[e1 : : : en ℄ una matriz formada on los eigenve tores de A y sea una
matriz diagonal uyos elementos son los eigenvalores de A. Enton es se di e
que A y son similares porque:
2 1
0
0 :::
:::
0
0
3
E AE = =1
664 .
2

. .
757
; E E 1
=A (1.20)

0 0 ::: n

Forma Can oni a de Jordan


Si una matriz A de orden n posee r eigenve tores linealmente independientes,
la forma de Jordan es una matriz J que posee n r unos sobre la diagonal,
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 1 1 0 0 0 3 21 1 0 0 03
J1 =
64
0
0
0
1
0
0
1
1
0 2
0
0
0
0
0 75
J2 =
664
0
0
0
1

0
0
0

0
1
0
0 57
0
0
0
2
0 0 0 0 0 0 0 0 3

2 1
0
0 0
0
0
0
3

0
0
3 21
0
0 0
0
0
0
0
0
3
J3 =
64 0
0
1
0
0
1
0 2
0 0
0 75
J4 =
64
0
0
2
0
0
1
0
1
1
0
175
0 0 0 0 3 0 0 0 0 3

Notar que J1 y J4 deben poseer tres eigenve tores linealmente independien-


tes, 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 Matemati a Asistida on Computadora

ten s eigenve tores linealmente independientes aso iados on . Por


onsiguiente, existen s bloques de Jordan.

2. La suma de los ordenes de los bloques de Jordan derivados on la regla


anterior debe ser igual a la multipli idad k (ver ejemplo 1.14).

1.2.4 Formas Cuadr ati as y Bilineales

Formas Cuadrati as

Una forma uadrati a es un polinomio real que ontiene t erminos de la forma


aij x i xj . Si A = [aij ℄ = AH es una matriz hermitiana de orden n y x es un
ve tor omplejo de orden n, enton es:

x HAx = XX
n n
aijxi x j; aji = aij
i=1 j=1

Si A = [aij ℄ = AT es una matriz real y simetri a de orden n y x es un ve tor


real de orden n:

xT Ax = XX
n n
aijxix j ; aji = aij
i=1 j=1

Formas Bilineales

Una forma bilineal es un polinomio real que ontiene t erminos de la forma


aij xi yj . Si A = [aij ℄ es una matriz ompleja de orden n, y si los ve tores
omplejos x e y son de orden n y m respe tivamente, enton es:

x HAy = XX
n m
aijxi yj
i=1 j=1

Si A = [aij℄ es real de orden n, y si los ve tores reales x e y son de orden n y


m respe tivamente, enton es:

xT Ay = XX
n m
aijxiy j
i=1 j=1
1.2 Analisis Ve torial 21

De ni i on y Semide ni ion de Matri es


Para una matriz A de orden n, las expresiones A > 0, A 0, A < 0 y
A 0 denotan que A es de nida positiva, semide nida positiva, de nida
negativa y semide nida negativa respe tivamente. Hemos visto que la forma
uadr ati a xH Ax est a aso iada on la matriz hermitiana A, as omo x T Ax
lo est a on la matriz real y sim etri a A.
Una matriz A de orden n es de nida positiva si su forma uadr ati 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 semide nida positiva si su forma uadrati a
6
aso iada es mayor o igual a ero uando x = 0. Si los eigenvalores de A son
positivos o nulos, enton es A 0.
Una matriz A de orden n es de nida 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 semide nida negativa si su forma uadr ati a
6
aso iada es menor o igual a ero uando x = 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
inde nida.
La tabla 1.2 muestra los omandos para eje utar otras opera iones ma-
tri iales y ve toriales empleando MATLAB.

Ejemplo 1.9

Resolver el siguiente sistema (mas in ognitas que e ua iones):

(5 j)x1 + (2 + 3j)x2 + (3 j)x3 + ( 1 + 4j)x4 + ( 6 + j)x5 = 2 9j


4jx1 2x2 + (3 + 5j)x3 7jx4 + (8 2j)x5 = 4 j
(6 j)x1 + (7 j)x2 + (8 3j)x3 + (3 j)x4 + (1 + 4j)x5 = 3 + j

Solu i on: Ver el programa ejem1 9.m.


% ejem1_9.m SISTEMA DE ECUACIONES: MAS INCOGNITAS QUE ECUACIONES
lear all
A = [5-j 2+3j 3-j -1+4j -6+j
4j -2 3+5j -7j 8-2j
6-j 7-j 8-3j 3-j 1+4j℄;
22 Matemati a Asistida on Computadora

Tabla 1.2: Comandos para omputo matri ial y ve torial

Opera ion Codigo MATLAB

Produ to interno omplejo xHy x'*y


Produ to interno real xT y x'*y
Produ to por elemento aijbij A.*B
Division por elemento aij=bij A.\B; A./B
bij
Poten ia por elemento
Norma matri ial
(aij )
k A k1 = maxj Pp
ja j m
i=1 ij
A.^B
norm(A,1)
k A k2 = maxi ni(A HA)
Norma matri ial
Norma matri ial k A k1 = max i j=1 ja j P norm(A,2)
norm(A,inf)

P
ij
1=2
Norma matri ial k A kF = n ij jaijj 2 1=p norm(A,'fro' )
Norma ve torial P
k x kp= ( i=1 jx jp) i norm(x,p)
Norma ve torial pH norm(x)
Norma ve torial
kk xx kk21== max
x x
jx j
i i norm(x,inf)
Norma ve torial k x k 1= min jx j i i norm(x,-inf)
Rango rank(A)
Eigenvalores i eig(A)
Eigenve tores E = [e1 : : : en ℄ [E,D℄=eig(A)
1.2 Analisis Ve torial 23

B = [2-9j;4-j;3+j℄;
X = A\B; %
% X =
% 3.5719 - 3.4126i --> x1;
% 0 --> x2
% -2.8535 + 1.6221i --> x3
% 0 --> x4
% 0.9991 - 0.4860i --> x5

Ejemplo 1.10

Resolver el siguiente sistema (menos in ognitas que e ua iones):

(5 j)x1 + (2 + 3j)x2 + (3 j)x3 = 2 9j


4jx1 2x2 + (3 + 5j)x3 = 4 j
(6 j)x1 + (7 j)x2 + (8 3j)x3 = 3 +j
( 1 + 4j)x1 + ( 6 + j)x2 + (3 j)x3 = 3 + 7j
7jx1 + (8 2j)x2 + (1 + 4j)x3 =9

Solu i on: Ver el programa ejem1 10.m.


% ejem1_10.m SISTEMA DE ECUACIONES: MENOS INCOGNITAS QUE ECUACIONES
lear all
A = [5-j 2+3j 3-j
4j -2 3+5j
6-j 7-j 8-3j
-1+4j -6+j 3-j
-7j 8-2j 1+4j℄;
B = [2-9j;4-j;3+j;-3+7j;-9℄;
X = A\B;
% X =
% 1.2270 - 2.1969i --> x1
% 0.6871 + 1.2202i --> x2
% -0.9472 + 0.4153i --> x3

Ejemplo 1.11

Comprobar num eri amente que:

xHy = (yHx) = yT x

Solu i on: Ver el programa ejem1 11.m.


24 Matemati a Asistida on Computadora

% ejem1_11.m CALCULO VECTORIAL


lear all
% VECTORES DATOS
x = [-1+j;3-5j;-5+6j;8-9j;4-2j;-1+j℄;
y = [-5+j;-3+j;-8+9j;5-6j;2+7j;-3-j℄;
% COMPROBAR QUE x'*y = onj(y'*x) = onj(y')* onj(x)
p = x'*y; q = onj(y'*x); r = onj(y')* onj(x);
[p q r℄ % p, q y r DEBEN SER IGUALES

Ejemplo 1.12

En el siguiente programa se al ulan diferentes normas matri iales y ve to-


riales.

% ejem1_12.m NORMAS
lear all
% VECTOR DATO
x = [-1+j;3-5j;-5+6j;8-9j;4-2j;-1+j℄;
a = norm(x,5); % NORMA p = 5 (a = 12.3798)
b = norm(x,2); % NORMA EUCLIDIANA (b = 16.2481)
= norm(x,inf); % NORMA INFINITO ( = 12.0416)
d = norm(x,-inf); % NORMA -INFINITO (d = 1.4142)
% MATRIZ DATO
A = [1-j 2-j 3-j -4-j
4j -2 3+5j 2-8j
6-j 7-j 8+3j -7+3j
3+5j 2-8j 1-j 2-9j℄;
e = norm(A); % MAXIMO EIGENVALOR DE A: e = 18.7269
f = norm(A,2); % LO MISMO QUE norm(A): e = f = 18.7269
g = norm(A,1); % max(sum(abs(A)))): g = 29.2046
h = norm(A,inf); % max(sum(abs(A'))): h = 29.3136
k = norm(A,'inf'); % IGUAL QUE norm(A,inf): k = h = 29.3136
m = norm(A,'fro'); % sqrt(sum(diag(A'*A))): m = 23.7276
p = 'fro'; % p DEBE SER 1, 2, inf o 'fro'
n = norm(A,2); % NORMA p: n = 18.7269

Ejemplo 1.13

Sean las matri es Anm, Bmp y Cmm. Demostrar num eri amente las siguien-
tes propiedades del rango: rango(A) min(n; m); rango(A) = rango(A H );
rango(AB) min(rango(A); rango(B)); rango(CB) = rango(B).

Solu ion: El siguiente programa presenta las demostra iones pedidas.


1.2 Analisis Ve torial 25

% ejem1_13.m PROPIEDADES DEL RANGO


lear all
% MATRICES DATO
A = [-1+j 3-5j -5+6j -2+5j
8-9j 4-2j -1+j -4
-2+3j 4-6j -2-5j 7j℄; % ORDEN (3,4)
B = [1+j -3-5j
8+9j -4+2j
-2+3j -4-6j
-5-6j -2+5j℄; % ORDEN (4,2)
C = [-1+j -2+j 3-j -5-7j
4-2j -1+j -4 2
4-6j -2-5j 7j -j
7j -1 9j 4j℄; % ORDEN (4,4)
rA = rank(A); rAH = rank(A'); rB = rank(B);
rAB = rank(A*B); rCB = rank(C*B);
% SE DEBE CUMPLIR: rA MENOR O IGUAL QUE min(3,4);
% rA = rAH
% rAB MENOR O IGUAL QUE min(rA,rB)
% rCB = rB

Ejemplo 1.14

El siguiente programa determina la forma de Jordan para la matriz:


2 0 1 0 3 3
A= 64 0 1
0 0
0 0
1
0
1
1
1
2
75
% ejem1_14.m FORMA CANONICA DE JORDAN
lear all
A = [0 1 0 3;0 -1 1 1;0 0 0 1;0 0 -1 -2℄; % ORDEN 4
[E D℄ = eig(A);
% E = % MATRIZ DE EIGENVECTORES
% 1.0000 -0.7071 0.9045 0.7068
% 0 0.7071 0 -0.7074
% 0 0 0.3015 -0.0002
% 0 0 -0.3015 0.0002

%D = % LOS EIGENVALORES DE A FORMAN LA DIAGONAL DE D


% 0 0 0 0
% 0 -1 0 0
26 Matemati a Asistida on Computadora

% 0 0 -1 0
% 0 0 0 -1
rank((-1)*eye(4)-A); % RESULTA 2 => 2 BLOQUES DE JORDAN
% ASOCIADOS CON LA RAIZ TRIPLE (-1)
% FORMA DE JORDAN: 0 0 0 0
% 0 -1 1 0
% 0 0 -1 0
% 0 0 0 -1

Ejemplo 1.15

2
Determinar la de ni ion de las matri es siguientes: 2
A=
2 2 2 3; B=
1 2 1 3
2 6 0 2 4 2
4 5 4 5
1 0 2 360
Solu ion: Ver el programa ejem1 15.m.
% ejem1_15.m DEFINICION DE MATRICES
lear all
A = [2 2 -2;2 6 0;-1 0 2℄;
EigA = eig(A); % EIGENVALORES DE A: 0.1996, 6.8922, 2.9083
% A > 0 DADO QUE TODOS SUS EIGENVALORES SON POSITIVOS
B = [1 2 1;2 4 2;3 6 0℄;
EigB = eig(B); % EIGENVALORES DE B: 0, 7.1098, -2.1098
% B ES INDEFINIDA PUES UN EIGENVALOR ES > 0 Y EL OTRO ES < 0

1.3 La Transformada de Lapla e


La transformada de Lapla e de una fun ion g(t) se de ne omo:

g(s) = L[g(t)℄ =
Z 1
g(t)e st
dt (1.21)
0

donde s es la variable lapla iana. La transformada de Lapla e es util para


modelar sistemas lineales invariantes on el tiempo. Su transformada inversa
se designa omo:
g(t) = L 1[g(s)℄ (1.22)
Como ejemplo, la transformada de Lapla e de la fun ion g(t) = e at, donde
a es real, se determina omo sigue:
Z 1
" e (s+a)t #1
1
at ℄ = e at e st dt = =
L[e
0 s +a s+a
0
1.3 La Transformada de Lapla e 27

La tabla 1.3 muestra la transformada de Lapla e de algunas fun iones. Al-


gunas 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
Rampa unitaria 1
t
s2
Rampa de orden n tn n! ;
n! = n(n 1) : : :
sn+1
Exponen ial e at 1
s+a
Seno sen!t !
s2+! 2
Coseno os!t s
s2+! 2
e atsen!t !
Seno amortiguado (s+a)2+! 2
Coseno amortiguado e at os!t s+a
(s+a)2+! 2

Tabla 1.4: Propiedades de la transformada de Lapla e


Des rip ion Propiedad
hidg
= sg(s) g(0), g(0) = [g(t)℄
Deriva ion L
hidt
dng n n1
t=0

g n 1 (0)
Deriva ion de orden n L
h
dtn = s g(s)
dn 1
s
i g(0)

Integral
n1
hR i
g (0) =
t
L 0 g(t)dt
dtn 1 g(t) t=0

= g(s) s
Desplazamiento en tiempo L[g(t t0) (t t0 )℄ = e t0 sg(s)
Desplazam. en fre uen ia L[e atg(t)℄ = g(s + a)
Valor ini ial limt!0 g(t) = lims!1 sg(s)
Valor nal limt!1 g(t) = lims!0 sg(s)

Ejemplo 1.16

La gura 1.1 muestra un arro de masa m = 1000 kg desplazandose on una


velo idad v gra ias a la a i on de la fuerza u produ ida por su motor. Si se
28 Matemati a Asistida on Computadora

despre ia la iner ia de las ruedas y se asume que la fuerza de fri ion bv es


lo uni o que se opone al movimiento, donde b= 50 N-s/m es el oe iente
de fri ion, enton es la dinami a del pro eso puede modelarse omo:

mv_(t) + bv(t) = u(t); 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 m u

Figura 1.1: Movil en movimiento.

Solu ion: La fun ion de transferen ia del pro eso se obtiene apli ando la
propiedad de deriva ion de orden n (tabla 1.4), on todas las ondi iones
ini iales iguales a ero:
v(s) 1
msv(s) + bv(s) = u(s); =
u(s) ms + b

Dado que la entrada es un es alon, u(s) =


1
v(t) = L [v(s)℄ = L 1 1
1
s.

1 1
"
La salida se determina de:
1 1
#
b
s s+
s(ms + b) = b L m
y empleando la tabla 1.3 obtenemos:
1 bt=m
v(t) = (1 e )
b
Ejemplo 1.17

Empleando las propiedades del valor ini ial y del valor nal, determinar
tales valores para la velo idad del m ovil del problema anterior.

Solu ion: El valor ini ial se determina de: lim t!0 v(t) = lims!1 sv(s) = 0.
El valor nal se obtiene de: limt!1 v(t) = lims!0 sv(s) = b 1.
Cap tulo 2

Sistemas Dis retos

En este ap tulo se exponen los on eptos de variables de estado, muestreo y re


onstru ion de sen ~ales en los pro esos a ontrolar. Tambien se trata la dis-
retiza i on dire ta de pro esos ontinuos, la transformada Z omo herramienta
de dis retiza ion, las formas an oni as de los pro esos en el espa io de es-
tado dis reto y los on eptos de ontrolabilidad y observabilidad. El material
expuesto pretende dar una base solida a er a de los sistemas de ontrol en el do-
minio dis reto. Todos los ar hivos orrespondientes a los ejer i ios desarrollados
en este ap tulo se pueden des argar del sitio: http:// ee.uni.edu.pe/728681F.

2.1 Disen
~ o de Sistemas de Control Digital
La gura 2.1 muestra la estru tura de un sistema de ontrol digital, uyo
objetivo de ontrol es lograr que la sen~al de salida Y del pro eso (de ara ter
ontinuo, omo en la mayor a de los asos) siga a la sen ~al de referen ia r
umpliendo determinadas espe i a iones de disen ~o, tales omo: m nimo
tiempo de estabiliza ion, m nimo sobreimpulso y/o error en estado esta-
ionario nulo en Y . En otras palabras, el algoritmo de ontrol implementa-
do, en este aso digitalmente, debe ser apaz de rear una sen ~al de ontrol
U (la variable manipulada), la ual a tuando sobre el pro eso a trav es de un
a tuador, minimi e la sen~ al de error e. El bloque de ltraje es u til para eli-
minar las omponentes ontaminantes de alta fre uen ia de la sen ~al de ruido
de medi ion n. El ltro de ruido puede ser anal ogi o o digital y su in lusion
depende de la magnitud del ruido y su relevan ia dentro del fun ionamiento
del sistema de ontrol.
30 Sistemas Dis retos

Disturbios

r e Muestreador D/A U Actuador Y


y Computadora y y
Digital
A/D Retencion Proceso

Filtraje Medicion

Figura 2.1: Estru tura de un sistema de ontrol digital.

En la estru tura de ontrol des rita en el parrafo anterior, el algorit-


mo de ontrol se implementa en un dispositivo digital que puede ser una
omputadora personal, una omputadora de pro esos ( on apa idad para
manejar varios lazos de ontrol), un mi ro ontrolador o una tarjeta PDS (Pro
esamiento Digital de Sen ~ales). El pro esamiento digital del algorit- mo
de ontrol requiere de la presen ia de los dispositivos de adquisi ion de datos:
muestreadores, onversores de sen ~al A/D (analogi o a digital) y D/A (digital
a analogi o) y retenedores (re onstru tores) de sen~al.
La on gura i on mostrada en la gura 2.1 no es uni a. Por ejemplo, dado
el aso, la sen~al de referen ia y la ompara i on de sen ~ales pueden ser gene-
radas dentro de la omputadora digital. En otros asos, si el a tuador y los
dispositivos de medi i on son apa es de pro esar sen ~ales digitales, enton es
tales dispositivos pueden a tuar dire tamente sobre el pro eso, dando lugar
a nuevas on gura iones. En las apli a iones des ritas en este libro, el dispo-
sitivo de pro esamiento digital es una omputadora personal, los sensores de
sen~al son de odi adores ele troni os de pulsos (\en oders"), mientras que
el a tuador es una ombina i on de un servomotor D.C. (de orriente onti-
nua) on un ampli ador ele tr oni o PWM (\Pulse Wide Modulation").
El empleo del pro esamiento digital permite la realiza i on de algoritmos
de ontrol so sti ados existentes en la teor a de ontrol moderna, pero tam-
bi en refuerza la interrogante sobre qu e algoritmo de ontrol es ade uado para
determinada apli a ion. Una respuesta a esta interrogante solo es posible
si se tiene ono imiento su iente del modelo de la dinami a del pro eso a
ontrolar y de sus sen ~ales. Tal ono imiento va a permitir la sele ion ade-
uada de un algoritmo de ontrol que sea apaz de ha er umplir el objetivo
de ontrol on el menor gasto ( omputa ional, por ejemplo) y on el mayor
rendimiento (satisfa ion de las espe i a iones de disen ~o).
2.2 Con epto de Estado y
Variables de Estado 31

2.2 Con epto de Estado y Variables de Estado


La din ami a de un pro eso multivariable, es de ir, un pro eso que posee mu
ltiples entradas y mu ltiples salidas, puede ser representada en el espa io de
estado mediante dos onjuntos de e ua iones diferen iales ordinarias de
primer orden, denominadas las e ua iones de estado y de salida, omo sigue:

_ = f(X; U; v; t)
X
Y = h(X; U; w; t) (2.1)
donde f y h son fun iones ve toriales de variable ve torial de orden n y r
respe tivamente, X es el ve tor de estado de orden n, U es el ve tor de
ontrol de orden m, Y es el ve tor de salida de orden r, v es el ve tor de
disturbios (de orden n) en los estados, y w es el ve tor de disturbios (de
orden r) en las salidas. El tiempo t se in luye omo parte del argumento
para indi ar que pueden existir parametros variantes on el tiempo. En este
punto es onveniente de nir el on epto de estado:
El ve tor de estado X = [X1 : : : Xn ℄T de un pro eso (donde el su-
per ndi e T indi a transpuesta) es el m nimo onjunto de variables, las va-
riables de estado X1 : : : Xn, las uales ontienen informa i on su iente
a er a de la historia pasada del pro eso. Esta informa i on permite om-
putar todos los futuros estados del pro eso, asumiendo por supuesto, que
todas las futuras entradas U son tambi en ono idas, omo del mismo modo lo
son las e ua iones din ami as que des riben di ho sistema. El nu mero n de
variables de estado de ne el orden o la dimensi on del sistema.
El espa io de estado es el espa io n-dimensional de todos los estados.
Cuando el sistema es de orden n = 2, el espa io de estado es ono ido omo
el plano de fase on oordenadas X 1 y X2. Los puntos de equilibrio en el
espa io de estado para el pro eso des rito en (2.1) se determinan uando el
estado del pro eso no ambia gra ias a la a i on de una fuerza de entrada U .
Por tanto, los puntos de equilibrio (X) se determinan de:
_ = f(X; U) = 0
X (2.2)

2.2.1 Linealiza ion de Pro esos


La representa ion linealizada en el espa io de estado de (2.1), sin la presen ia
de parametros variantes on el tiempo, es la siguiente:
x_ = Ax + Bu + E v
32 Sistemas Dis retos

y = Cx + Du + F w (2.3)
donde A es la matriz de estado, B es la matriz de ontrol, E es la matriz
de disturbios en los estados, C es la matriz de salida de los estados, D es
la matriz de salida de las entradas y F es la matriz de disturbios en las
salidas. Las dimensiones de di has matri es son: Ann, Bnm, Enn, Crn, Drm y Err ,
donde el primer sub ndi e es el nu mero de las de la matriz y el
segundo, el nu mero de olumnas. Es importante notar que en (2.3) estamos
empleando las variables residuales (tambi en llamadas variables de desvia ion
o perturba ionales) siguientes:
x=X X

u=U U

Sin la presen ia de disturbios (v = w = 0), y para la opera ion del pro


eso alrededor del estado de equilibrio (X , U ), las matri es A, B, C y D

3
pueden ser determinadas evaluando las siguientes matri es ja obianas:
2 2 3
A =
64
f1
X1
. .
X
f1n

f. n
75 B=
f1
U1
.
fn
.
U
f1m

f. n
75
2
fn X

h1
1 Xn
h1 3
(X;U)

2 U1

h1
Um
h1 ;U)
3 (X

C =
64 .
hr
X1
.
Xn

.
hr
75 D=
U1
.
hr
.
Um
.
hr
(2.4)
X n U1 Um (X;U)
X1 (X;U)
La matriz de transferen ia para pro esos multivariables lineales se de-
termina empleando la e ua ion matri ial siguiente:
1
Y(s) = [C(sI A) B + D℄U(s) (2.5)
donde s es la variable lapla iana e I es la matriz identidad. Cuando las
sen
~ales Y y U son unidimensionales, la e ua i on anterior se onvierte en la
e ua ion de transferen ia de un pro eso univariable. La e ua i on ara -
ter sti a del pro eso se obtiene de:
det(sI A) = 0 (2.6)
donde det es la opera i on determinante. Las ra es de (2.6) son tambi en
ono idas omo ra es ara ter sti as, eigenvalores, valores propios, modos,
2.2 Con epto de Estado y Variables de Estado 33

entre otras denomina iones. Los eigenvalores determinan la estabilidad del


pro eso alrededor de un punto de equilibrio Xen el espa io de estado omo
sigue:
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 ter sti 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.
De a uerdo a la e ua i on (2.2), el pro eso des rito por (2.3) on u y v
nulos posee un solo punto de equilibrio: el origen. Empleando este he ho,
la estabilidad del pro eso des rito en (2.3) tambi en puede ser formulada
empleando el on epto de estado, omo sigue:
El pro eso des rito por la e ua ion (2.3) es estable, uando no siendo
forzado (es de ir, uando u = v = 0), el estado del pro eso tiende a ero
para ualquier estado ini ial nito x0.

Ejemplo 2.1

La gura 2.2 muestra dos tanques id enti os olo ados en as ada. La se ion
horizontal S=9 m2 de ada tanque es onstante. El objetivo de ontrol es
estabilizar ( ontrolar) la altura H 2 empleando omo fuerza de ontrol el
ujo de alimenta ion Qo. Determinar el modelo linealizado de este pro eso
hidrauli o.

Q p
0 0

 Tanque
H
1 p 1
1 
g
Q 
p 1


0
 Tanque
H2
p 2
2 
Q
2

Figura 2.2: Pro eso hidr auli o.

Solu i on: Los ujos de salida Q 1 y Q2 de los tanques se pueden modelar


34 Sistemas Dis retos

omo:
Q1 =
p P1 P0 ; Q2 =
p P2 P0

donde P1, P2 y P0 son las presiones en el fondo de los tanques y en el exterior


respe tivamente, y =0.4 es una onstante que depende de la geometr a del
ori io. Si =1.23 kg/m3 es la densidad del l quido y g=9.81 m/s2 es la a
elera ion de la gravedad:

P1 P0 = gH1; P2 P0 = gH2

El ujo a umulado en ada tanque es:


dH1 dH2
Q0 Q1 = S ; Q
1
Q2 = S
dt dt
Resolviendo las e ua iones anteriores para las alturas, obtenemos:
g
p
_ 1

H1 = Q0
p H1 = f1
S p S
H_2 = g

y su orrespondiente e ua ion de [ H1
p p H2 ℄ = f2
S salida:
H1
Y = [0 1℄
H2

De namos las siguientes variables residuales: h 1 = H1 H1, h2 = H2 H2,


q0 = Q0 Q 0. Cono iendo Q 0 = 3 m3/s, el estado de equilibrio del pro eso se
puede obtener de:
1 g
p
_

H1 = Q0
p H1 = 0
p
_2=
H
S
g
p pS
H1
H2 ℄ = 0
lo que resulta en: [
S
Q2
H1 = H2 = 2 0
g
Apli ando el ja obiano, el pro eso linealizado resulta:

h_ = A h + B q0 ; y = h2 = C h
2.2 Con epto de Estado y Variables de Estado 35

donde:
" # 2 pH
pg
0 35
h=
h1
h2
; A=
f1
H1
f2
H1
f1
H2
f2
H2 (H 1 ;H2 )
4
= pg
p
2S H
2S

1
1

2S
pg
pH 2

" #f1
1
B= = ; C = [0 1℄; D = [0℄
Q
f20 Q0 0
Q0
Ejemplo 2.2
El pro eso p endulo no lineal mostrado en la gura 2.3 puede rotar libre-
mente alrededor del pivote gra ias a la a i on de un torque externo U . En
di ha gura Bp=1.3366 N-m/rad/s es la fri i on vis osa rota ional en el punto
pivote, Lo=1.6350 m es la longitud de la varilla de peso despre ia- ble,
Mo=0.5 kg es la masa de la esfera y g=9.81 m/s 2 es la a elera i on de la
gravedad. La salida de inter es es la posi i on angular del p endulo. Para las
situa iones mostradas en las guras 2.3(a) y 2.3(b) determine: las e ua
iones no lineales de estado y de salida, los puntos de equilibrio, las e ua
iones linealizadas de estado y de salida, las fun iones de transferen ia, las e
ua iones ara ter sti as, y la estabilidad del pro eso.

Bp Mo

U U


 Lo
Lo

Mo Bp
(a) (b)

Figura 2.3: P endulo no lineal en posi i on 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:

U = MoL2 o• + Bp _ + MogLosen (2.7)


36 Sistemas Dis retos

Notar que (2.7) es no lineal debido al sen . Sele ionando en (2.7) omo
variables de estado X1 = , X2 = _ y omo salida Y = X1 se obtiene:
X_1 = X2
g Bp 1
X_2 = senX1 X 2 + U
L o
MoL2o MoLo 2
Y = X1 (2.8)
uya representa ion ompa ta (e ua ion (2.1) on v = w = 0) resulta:
_ = f;
X Y = X1 = h
donde:
X1 f1
" X2
#
X= ; f= = Bp
(2.9)
X2 f2 g 1
Lo senX1 MoL2 x2 + o
MoL2 U o

Notar en (2.9) que n = 2, m = 1, r = 1. Empleando (2.2), los estados de


equilibrio se obtienen de:
_ 1 = X2 = 0
X
_2 = g Bp 1
X senX X 2 + U =0
1 MoL2o M oLo2
Lo
y = X1 X 1 (2.10)
uya solu i on, on U = 0, es: X2 = 0 y X1 = 2k ; k = 0; 1; : : : Por
onsiguiente, los estados de equilibrio son (0[2 ℄; 0) para la gura 2.3(a) y
( [3 ℄; 0) para la gura 2.3(b). Empleando (2.4), la linealiza ion de (2.9)
alrededor del estado de equilibrio (X1 ; X2 ; U ) = (0; 0; 0) resulta:
x_ = Ax + Bu; y = Cx + Du
donde: " #
A= f1
X1 X2
f1 " =
0 1
#
B = U
f21
fX
1
f22
X
=
" #(0;0)

0
Lgo
L
MBop o2

h
f2
U
h
0
h
i 1
MoLo2

=10
X1 X2 (0;0)
C
= h
D = = [0℄ (2.11)
U 0
2.2 Con epto de Estado y Variables de Estado 37

La fun i on de transferen ia del pro eso se puede determinar de:


Y (s) = C(sI A) 1 B
"
# " #
U (s)
s 1
= [1 0℄ 1 0
g Bp 1
Lo M oL o
2 +s MoL2
o

= 1
M L2s2 + B s + M gL (2.12)
o o p o o

La e ua ion ara ter sti a se determina de (2.6):

det(sI A) = MoL2os2 + Bps + MogLo = 0 (2.13)

que resulta siendo el denominador de la fun i on de transferen ia dada en


(2.12). Con los valores dados de Mo, Lo y Bp, las dos ra es de (2.13)
resultan: s1;2 = 0:7482 2:6038i, lo ual nos indi a que el estado de
equilibrio (0; 0; 0) es estable.
Cuando el p endulo se en uentra en la posi i on mostrada en la gura
2.3(b), enton es = + , sen( + ) = sen , _ = _ y • = • . Por
onsiguiente, la e ua ion que des ribe la dinami a del p endulo no lineal es:

U = M oL 2o• + Bp _ MogLosen (2.14)

Con el pro edimiento empleado para la situa i on mostrada en la gura


2.3(a), fa ilmente podemos determinar que:

" g
0 1
Bp
#
L M L
o
2
A= o
o

y su e ua i on ara ter sti a resulta:

det(sI A) = MoL2 • +o Bp _ MogLosen

la ual posee dos ra es: s1 = 3:5587 y s2 = 2:6024. El eigenvalor positivo


nos indi a que el punto de equilibrio ( ; 0) es inestable.
La e ua ion de estado x_ = Ax + Bu para el pro eso pendulo, puede
determinarse apli ando en (2.7) el riterio de linealiza ion sen = , ha-
iendo u = U , y sele ionando omo variables de estado x 1 = y x2 = _ .
Sin embargo, la forma general de linealiza i on requiere de la apli a ion de
las matri es ja obianas dadas en (2.4).
38 Sistemas Dis retos

2.3 Fundamentos de Sistemas Dis retos

2.3.1 Muestreo y Re onstru i on

La gura 2.4 muestra un lazo de ontrol que in luye una omputadora digital
equipada on los dispositivos de adquisi ion de datos ne esarios. La sen ~al
ontrolada y, luego de ser sensada, pasa por un muestreador, gener andose
un tren de impulsos y separados uno del otro en T segundos (el tiempo
de muestreo). Luego, el tren de impulsos es digitalizado por medio del
dispositivo A=D, lo que resulta en la sen ~al yd , la ual ya puede ser pro esada
por la omputadora on el n de generar el algoritmo de ontrol.
La sen~al de ontrol digitalizada ud sufre el pro eso inverso: pasa por un
dispositivo D=A y luego por un muestreador para generar el tren de impulsos
u . Mediante un dispositivo de reten i on de orden ero, que se des ribe mas
adelante, la sen~al de ontrol es re onstruida, lo que resulta en una sen ~al de
ontrol ontinua u apaz de a tuar sobre el a tuador-pro eso ontinuo.
Notar que la sen ~ al de referen ia digitalizada rd se genera internamente.
Si la referen ia fuera una sen ~al externa, enton es debe ser pro esada omo
la sen
~al y. En lo que sigue, asumiremos que el tiempo de muestreo T es el
mismo para todos los muestreadores y que di hos muestreadores operan sin-
roni amente; es de ir, que el retardo entre la opera ion de un muestreador
on respe to a otro es despre iable. Es importante anotar que los onver-
tidores de sen~al, muestreadores y dispositivos de reten ion, son parte de la
interfaz (tarjeta de adquisi i on de datos, por ejemplo) de la omputadora
digital on su mundo ir undante (el pro eso-a tuador y los dispositivos de
medi ion).
Un tren de impulsos, por ejemplo la sen ~al u , puede modelarse omo:

u (t) = X
1
u(kT )Æ(t kT ) (2.15)
k=0

donde T es el tiempo de muestreo de u(t), k es el tiempo dis reto (t = kT ), y


Æ(t kT ) es la fun ion impulso unitario o delta de Dira que se de ne
omo:
1 si t = kT
Æ(t kT ) =
6
0 si t = kT

Empleando la ono ida identidad L[Æ(t kT )℄ = e kT s , la transformada de


2.3 Fundamentos de Sistemas Dis retos 39

COMPUTADORA DIGITAL

rd ud u* u
D RETENCION’
DE CONTROL

ACTUADOR PROCESO
ALGORITMO

A T

D
y
FILTRAJE MEDICION
yd A y* T

Figura 2.4: Lazo de ontrol on una omputadora omo ontrolador.

Lapla e de u resulta:

X 1
u (s) = L[ k=0 u(kT )Æ(t kT )℄ =
X1

k=0
u(kT )L[Æ(t kT )℄

= X
1
u(kT )e kT s
= u (esT ) (2.16)
k=0

La fre uen ia de muestreo se determina de la rela ion:


2 (2.17)
!s =
T
El tren de impulsos u (t) se puede representar alternativamente mediante
su serie de Fourier:
u (t) =
1 1
u(t)ej!st
X (2.18)
T
k= 1
uya transformada de Lapla e ahora resulta (ver referen ias [4℄, [3℄):

u (s) =
1 X
1
u(s + i !s) (2.19)
T k= 1

La sen
~al u (s) posee dos propiedades importantes. La primera es su ara ter
periodi o, que puede demostrarse reemplazando en la e ua i on (2.16) la
40 Sistemas Dis retos

variable lapla iana s por s + j !s, = 0; 1; 2; : : :, omo sigue:

u (s + j !s) = X1
u(kT )e kT (s+j !s ) =
X
1
u(kT )e kT s e kT j !s
=0 =0
= u (esT ) (2.20)

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 i on (2.19):

u (s) =
1 X1
u(s + i !s) =
1
[u(s) + u(s + j!s) + u(s + 2j!s)
T k= 1 T
+ + u(s j!s) + u(s 2j!s) + ℄

Si u(s) posee un polo en s = s1, enton es ada t ermino de la expansion


ontribuye on un polo en s = s1 + j !s.
La gura 2.5 muestra la respuesta en fre uen ia de las sen ~ales u(t) y
u (t), asumiendo que u(t) es de banda limitada. Del gra o de u (ej! ) j j
podemos extraer la siguiente on lusion referente al teorema fundamental
del muestreo:
Para que la sen~al ontinua original u(t) pueda ser re onstruida om-
pletamente a partir de sus muestras, la fre uen ia de muestreo tiene que
sele ionarse de modo tal que:

!s 2!max T (2.21)
! max

La gura 2.6 muestra en detalle el pro eso de muestreo y re onstru ion de


la sen
~al u empleando un dispositivo de reten ion de orden ero, el ual re-
onstruye la sen ~al mediante aproxima iones re tangulares. Tener en uenta
que u es una sen ~al generi a. Podemos detrerminar la fun ion de transferen-
ia gr0(s) de la reten ion omo sigue. El area del pulso re tangular de base (k
+ 1)T kT es u(kT )[ (t kT ) (kT )℄, donde (:) es la fun i on es alon unitario
que se de ne omo:

1 si t kT
(t kT ) =
0 si t < kT
2.3 Fundamentos de Sistemas Dis retos 41

u(t) u(j )

t max max 

u*(t) u*(e j )
s s
 
t s max max s 

Figura 2.5: Respuesta en fre uen ia de las sen


~ales u(t) y u (t) para ilustrar
el teorema del muestreo.

~al u a la salida de la reten ion es: 1


El area total de la sen
u (t) =
Xu(kT )[ (t kT )
k=0
(kT )℄

kT s
Empleando la ono ida transforma ion L[ (t kT )℄ = e ,s la transforma-
da de Lapla e de u(t) resulta:

u(s) = X
1
u(kT )e kT s 1 [1
s
e Ts 1
℄ = u (s) [1
s
e Ts

k=0

Por onsiguiente, la fun i on de transferen ia de la reten ion de orden ero


viene a ser:
u(s) 1 e sT
= Gr0(s) = (2.22)
u (s) s
Este ultimo resultado ser a usado posteriormente.

Dis retiza ion Dire ta


Es bastante util dis retizar dire tamente expresiones que ontengan inte-
grales y derivadas. La aproxima i on 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 onsi-
guiente, terminos que ontengan integra ion pueden dis retizarse empleando
42 Sistemas Dis retos

_
u(s) u*(s) e- sT
1 u(s)
T s
RETENCIO’N DE OR_DEN CERO
u (t) u*(t) u (t)

u(2T)

u(3T)
u(T)
u(0)
t 0 T 2T 3T 4T 0 T 2T 3T 4T

Figura 2.6: Pro eso de muestreo y re onstru i on.

aproxima ion re tangular omo sigue:

u(t) =
Z t
e( )d
0

u(kT )
X k

T e(iT T ); u(kT T) T
X
k 1

e(iT T)
i=0 i=0
u(kT ) u(kT T ) = T e(kT T ); u(k) u(k 1) = T e(k 1) (2.23)

En la ultima expresion hemos obviado en el argumento su dependen ia on


el tiempo de muestreo T , pues se sobreentiende que todos los terminos se dis-
retizan empleando el mismo tiempo de muestreo. T erminos que ontengan
derivadas pueden dis retizarse empleando diferen ias por atraso:
de(t) e(kT ) e(kT ) e(kT T )
= e_(t) =
dt T T
2
de_(t) e(kT ) e(kT ) e(kT T ) e_(t) e_(t T)
= e•(t) = =
dt T2 T2 T
.
. (2.24)

Si la dis retiza ion de la derivada se realiza por adelanto, enton es las dife-
ren 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 p endulo des rito en el ejemplo 2.2
y gra ar diez segundos de su respuesta a un torque tipo es alon unitario.
2.3 Fundamentos de Sistemas Dis retos 43

Asumir los siguientes valores: L o = 1.6350 m, Mo = 0.5 Kg, Bp = 1.3366


N-m/rad/s, g = 9.81 m/s 2 y T = 0.01 s.
Solu i on: Dis retizando por adelanto las e ua iones dadas en (2.8) y ob-
viando la es ritura del tiempo de muestreo T en los argumentos, obtenemos:
X1(k + 1) = X1(k) + T X2(k)
g Bp 1
X (k + 1) = X (k) + T senX (k) x (k) + U (k)
1
Lo o
2 MoL2o
2 2 M oL2
y(k) = x1(k)
El siguiente programa en odigo MATLAB determina la respuesta que se
muestra en la gura 2.7. Observar que ada muestra k equivale a T s.
% ejem2_3.m RESPUESTA DEL PENDULO NO LINEAL A UN ESCALON
lear all
Lo = 1.6350; Mo = 0.5; Bp =1.3366; g = 9.81; T = 0.01;
X1(1) = 0; X2(1) = 0;
for k = 1:1000 % CADA MUESTRA k EQUIVALE A T SEGUNDOS
U(k) = 1; % ESCALON DE ENTRADA
X1(k+1) = X1(k) + T*X2(k);
X2(k+1) = X2(k) + T*( -(g/Lo)*sin(X1(k)) - (Bp/(Mo*Lo^2))*X2(k) ...
+ (1/(Mo*Lo^2))*U(k) );
Y(k) = X1(k);
end
plot(Y); grid
ylabel('Posi ion (rad)')
xlabel('Tiempo dis reto k')
print -deps -f fig2_7

Ejemplo 2.4
Dis retizar el siguiente ontrolador ideal PID:

u(t) = K e(t) +
1
TI 0
t Z
e(t)dt + TD
de(t)
(2.25)
dt
donde K es la ganan ia propor ional, T I es el tiempo de integra i on y T D
es el tiempo derivativo. En un primer aso emplear integra i on re tangular
y luego usar integra i on trapezoidal.

(
Solu i on: Empleando las rela iones (2.23) y (2.24) en (2.25) se obtiene:
T Xk TD
)
u(k) = K e(k) + e(i 1) + [e(k) e(k 1)℄
TI i=0
T
44 Sistemas Dis retos

0.2

0.18

0.16

0.14

0.12
Posición (rad)

0.1

0.08

0.06

0.04

0.02

0
0 100 200 300 400 500 600 700 800 900 1000
Tiempo discreto k

Figura 2.7: Respuesta del p endulo no lineal al es alon.


( T "X
k #
u(k 1) = K e(k 1) + e(i 1) e(k 1)
TI i=0
TD
+ [e(k 1) e(k 2)℄
T
Restando las expresiones anteriores y despejando u(k) obtenemos:
u(k) = u(k 1) + q0e(k) + q1e(k 1) + q2e(k 2) (2.26)
donde:
TD TD T TD
q0 = K(1 + ); q =
1 K(1 + 2 ); q2 = K
T T TI T
Si la integra i on emplea el m etodo trapezoidal (aproxima ion de segmen-

(
tos de area mediante trapezoides), enton es:
1 X k e(i 1) + e(i) TD
)
u(k) = K e(k) + T + [e(k) e(k 1)℄
TI i=0

k
2 T k

( T
"X i=0
X
i=0 e(i)
#
u(k 1) = K e(k 1) + e(i 1) e(k 1) + e(k)
2TI
2.3 Fundamentos de Sistemas Dis retos 45

TD
+ [e(k 1) e(k 2)℄
T
Restando las expresiones anteriores y despejando u(k) obtenemos una ex-
presi on similar a (2.26), donde:
TD T TD T TD
q = K(1 + + ); q = K(1 + 2 ); q =K
0 1 2
T 2TI T 2TI T

2.3.2 La Transformada Z
Es util introdu ir la siguiente rela i on:
z = eT s = eT ( +j!) = eT [ os!T + jsen!T ℄ (2.27)
Reemplazando en la e ua ion (2.16) la sen ~al u por una variable generi a g,
llegamos a la siguiente de ni ion de la transformada Z:

g(z) = Z[g(kT )℄ = X1
g(kT )z k = g(0) + g(T )z 1 + g(2T )z 2 + (2.28)
k=0

j j
La serie en (2.28) onverge si g(kT ) se restringe a valores nitos y si z > 1. jj
Las sumatorias siguientes son bastante utiles para resolver problemas
rela ionados on la transformada Z:
XN 1
ak =
1 aN
1a
; jaj < 1
k=0

X 1
ak =
1
; jaj < 1
X1k=0
kak =
1a
a ; jaj < 1
(1 a)2
X
k=0
N2

ak =
aN1 aN2 1
; jaj < 1
k=N1 1 a
1 a N1
jaj < 1
X ak =
1a
; (2.29)

k=N1
A manera de ejemplo, la transformada Z del impulso unitario Æ(kT ), sa-
biendo que Æ(0T ) = 1, resulta:
Z[Æ(kT )℄ = X1
Æ(kT )z k
=z 0
=1
k=0
46 Sistemas Dis retos

mientras que la transformada Z del es al on (kT )=1 empleando la segunda


de las sumatorias dadas en (2.29) resulta:

Z[ (kT )℄ = X
1
z k=
1z
1
1
=
z
z
1
k=0

j j jj
la ual es valida para z 1 < 1 (o z > 1), pues la serie debe ser onver-
gente. La tabla 2.1 ilustra la transformada Z de algunas se uen ias notables,
mientras que la tabla 2.2 presenta la rela ion existente entre la transformada
Z y la transformada de Lapla e.
A ontinua i on se formulan algunas propiedades de la transformada Z:

(1) Linealidad:
Z[ag1(kT ) + bg2(kT )℄ = aZ[g1(kT )℄ + bZ[g2(kT )℄

(2) Desplazamiento a la dere ha:


Z[g(kT dT )℄ = z dg(z); d 0

(3) Desplazamiento a la izquierda:


Z[g(kT + dT )℄ = zd[g(z) d
P 1

=0
g( T )z ℄; d 0

(4) Amortiguamiento:
Z[g(kT )e akT ℄ = g(zeaT )

(5) Multipli a i on por una variable:


Z[kg(kT )℄ = z dg(z)dz

(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 1z g(z) = limz!1(1 z 1)g(z)
Por ejemplo, sabiendo que Z[ os!k℄ es ono ido, la transformada Z de ak
os!k puede ser determinada empleando la propiedad de multipli a ion por
una exponen ial, omo sigue:

z(z os!) z(z a os!)


Z[ak os!k℄ = =
z2 2z os! + 1 z=z=a z2 2za os! + a2
2.3 Fundamentos de Sistemas Dis retos 47

Tabla 2.1: Transformada Z de algunas se uen ias.

No g(t) g(z)

(1) Æ(k) 1

(2) Æ(k d)) z d

z
(3) (k)
z 1
z d+1
(4) (k d) z 1

(5) k (k) z
(z 1)2
(6) a k (k) z
z a

(7) ak 1 (k 1) 1
za

(8) ka k (k) az
(z a) 2

z sin!
(9) (k)sen!k
z2 2z os!+1
z(z os!)
(10) (k) os!k z2 2z os!+1
(11) (k)aksen!k za sen!
z2 2za os!+a2
z(z a os!)
(12) (k)ak os!k z2 2za os!+a2
k(k 1) (k m+2) z d+1
(13) (d 1)!
ak d+1
(1 z 1)d
48 Sistemas Dis retos

Tabla 2.2: Transformada de Lapla e versus transformada Z.

No g(t) g(s) g(kT ) g(z)

(1) Æ(t) 1 Æ(k) 1


z
(2) (t) 1 (k)
s z 1

(3) t 1 k Tz
s2 (z 1)2

(4) e at 1 aT )k z
s+a
(e z e aT

at 1 aT )k T ze aT
(5) te (s+a) 2 kT (e (z e aT )2

at 2 aT k T 2 ze aT (z+e aT
)
(6) t 2e (s+a)3 (kT )2(e ) (z e aT )3
at a aT )k z(1 e aT )
(7) 1e s(s+a) 1 (e (z 1)(z e aT )
z(e aT e bT )
(8) e at e bt ba
(s+a)(s+b)
(e aT )k (e bT )k
(z e aT )(z e bT )
!
sen!kT zsen!T
(9) sen!t s2 +!2 z2 2z os!T +1
s z(z os!T )
(10) os!t s2+! 2
os!kT z 2 2z os!T +1
aT
atsen!t ! (e aT )ksen!kT ze sen!T
(11) e (s+a)2 +! 2 z2 2ze aT os!T +e 2aT

at s+a aT )k z(z e aT os!T )


(12) e os!t (s+a)2 +!2 (e os!kT z2 2ze aT os!T +e 2aT
2.3 Fundamentos de Sistemas Dis retos 49

La forma general para obtener Z[g(s)℄ es mediante el m etodo de los


residuos (derivado de la integral de onvolu ion). Si se tiene:
q(s)
g(s) =
p(s)
donde el grado del polinomio p(s) es mayor que el de q(s), y adem as si
suponemos que todas las ra es de q(s) poseen parte real negativa, enton es
g(z) se obtiene de:

g(z) =
X P
(s a ) i
g(s)z
z eT s s=ai
i=1

+
X Q

1
dmj 1
(s bj ) m j
g(s)z
z eT s
(2.30)
j=1 (mj 1)! dsmj 1 s=b j

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.
Ejemplo 2.5
Determinar g(z) sabiendo que:
1
g(s) =
s2(s + 1)

Solu i on: Para este aso P = 1, a 1 = 1, Q = 1, b1 = 0, m1 = 2. Luego:


1 z
g(z) = (s + 1) +
s2(s + 1) (z eT s) s= 1

1 d 1 z z z(z 1 T )
s2 = +
(2 1)! ds s2(s+ 1) (z eT s) s=0 z eT (z 1)2

2.3.3 La Transformada Z Inversa


En el dominio ontinuo, la transformada de Lapla e g(s) = L[g(t)℄ posee
una inversa L 1[g(s)℄ = g(t) que es u ni a. En ontraste, la transforma ion
Z[g(t)℄ = g(z) posee una inversa Z 1[g(z)℄ = g(t) que no es u ni a debido a que
la sen
~al dis reta no est a de nida entre muestras. En el dominio dis reto, sin
embargo, la transforma i on g(z) = Z[g(kT )℄ posee una u ni a inversa Z
1[g(z)℄ = g(kT ).
50 Sistemas Dis retos

Una forma de determinar g(kT ) es dividir el numerador de g(z) entre su


denominador. Otra forma es expandir g(z) en fra iones par iales y obtener
la transformada Z 1 de ada uno de los t erminos resultantes. Un m etodo
generalizado para determinar la inversa de g(z) onsiste en fa torizar g(z)
en fa tores de primer orden; luego, usar la siguiente formula de inversion:

g(kT ) = XP
[(z ai )g(z)z k 1
℄z=a i
i=1

+
XQ

1
dmj 1
[(z bj )mj g(z)z k 1
(2.31)
j=1 (mj 1)! dzmj 1 z=b j

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 m j . 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=a 1
+ [(z a2 )g(z)z k 1 ℄z=a2 + [(z a3 )g(z)z k 1
℄z=a 3

1 dm1 1 1
+ [(z b1 )m1 g(z)z k
(m1 1)! dz m1 1
z=b 1

+ 1 dm2 1 [(z m2
b2 ) g(z)z k 1

(m2 1)! dz m2 1
z=b2

Ejemplo 2.6
Determinar g(kT ) para:
z z
(a) : g(z) = ; (b) : g(z) =
(z 1)(z 2) (z 1)2
Solu ion: Para el primer aso: P = 2, a 1 = 1, a2 = 2, Q = 0. Por tanto:
z k z k
g(k) = + = 1 + 2k
z 1 z=1 z 1 z=2
Para el segundo aso: P = 0, Q = 1, b 1 = 1, m1 = 1. Luego:
1 d (z 1)2 z
=
d k
(z ) =k
g(k) = z k1
1! dz (z 1)2 z=1 dz z=1
2.3 Fundamentos de Sistemas Dis retos 51

2.3.4 Fun i on de Transferen ia de Pulso


Cono iendo la fun ion de transferen ia G(s) = y(s)=u(s) de un sistema, la
orrespondiente fun ion de transferen ia de pulso se determina de la rela ion:
y(z) 1 e sT G(s)
= G(z) = Z[G r 0 G(s)℄ = Z G(s) = (1 z 1 )Z
u(z) s s
(2.32)
Para el aso multivariable, la matriz de transferen ia de pulso G(z) se
determina empleando la rela ion (2.32) para ada elemento de la matriz de
transferen ia G(s). Para derivar la fun ion de transferen ia de pulso para el
aso de pro esos en as ada o formando lazos errados, debemos pro eder
on autela, porque no siempre es posible en ontrar una rela i on de la forma
y(z) = G(z)u(z). Los siguientes ejemplos ilustran los asos tratados.
Ejemplo 2.7
Dado el tiempo de muestreo T , determinar la fun ion de transferen ia de
pulso para el pro eso:
K Tt s ;
G(s) = e Tt = dT; d = 1; 2; 3; : : :
s+a
Solu i on: Empleando la rela ion (2.32) y la tabla 2.2 obtenemos:

1 K b1z 1
G(z) = Z[G r 0G(s)℄ = (1 z )Z (esT ) d = 1
z d
s(s + a) 1 + a1z
K
a1 = e aT
; b1 = (1 eaT )
a
Ejemplo 2.8
Determinar la salida muestreada para los asos ilustrados en las guras
2.8(a)-(f).
Solu i on: En la gura (a) se tiene: y(s) = G 2(s)x (s) y x(s) = G1(s)u(s),
donde x(s) es una sen
~al auxiliar. Muestreando x(s) omo sigue:
[x(s)℄ = x (s) = [G1 (s)u(s)℄ = G1 (s)u (s)
Reemplazando ahora x (s) en y(s), y luego muestreando y(s) obtenemos
una expresion en el dominio dis reto, a saber: y (s) = G2 (s)G 1 (s)u (s).
Esta ultima rela ion es equivalente a:
y(z) = G2(z)G1(z)u(z)
52 Sistemas Dis retos

T T
G 1 (s) G 2 (s)
u(s) u*(s) x(s) x*(s) y(s)
(a)
T y(s)
G 1 (s) G 2 (s)
u(s) u*(s)
(b)
u(s) T
G 1 (s) G 2 (s)
x(s) x*(s) y(s)
(c)

T -Ts
1-e
D(z) s Gp (s)
u(s) u*(s) y(s)

(d) G(s)

u(s) T y(s) u(s) y(s)


x(s)
G(s) G(s)
+ x*(s) +
- - T
H(s) H(s)
y*(s)
(e) (f)

Figura 2.8: Sistemas dis retos a lazo abierto y a lazo errado.

En la gura (b) se tiene: y(s) = G 2(s)G1(s)u (s). Muestreando y obte-


nemos:
y (s) = [G2(s)G1(s)u (s)℄ = [G2G1(s)℄ u (s)

Por onsiguiente:
y(z) = [G2G1(s)℄(z)u(z)

En la gura ( ) se tiene: y(s) = G 2(s)x (s) y x(s) = G1(s)u(s). Pro e-


diendo omo en los asos anteriores se obtiene:

y(z) = G2(z)[G1u℄(z)

En la gura (d) tenemos: y(s) = G(s)D(z)u (s). Muestreando y(s)


obtenemos:
y(z) = G(z)D(z)u(z)
2.3 Fundamentos de Sistemas Dis retos 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) = U (z)
1 + [GH℄(z)

Para la gura (f) tenemos y(s) = G(s)u(s) G(s)H(s)y (s). Muestre-


ando y despejando y (s) se obtiene:

[GH℄(z)
y(z) = u(z)
1 + [GH℄(z)

2.3.5 El Espa io de Estado Dis reto


En la se i on 2.2 vimos que la din ami a linealizada de un pro eso (sin la
presen ia de disturbios) puede ser representada en el espa io de estado por
la e ua i on (2.3):

x_ = Ax + Bu; y = Cx + Du (2.33)

La solu ion de la e ua i on de estado anterior, dado un estado ini ial x(t 0),
es:

x(t) = eA(t t0 )
x(t0)) + eAt
Z t
e A
Bu( )d

= (t t0)x(t0) +
Z t
t0

(t )Bu( )d (2.34)
t0

donde:

(t t0 ) = L 1
[(sI A) 1
℄ = eA(t t0 )
= X
1
A (t t 0)
!
=0

es la matriz de transi ion. Para demostrar que efe tivamente (2.34) es una
solu i on de la e ua i on de estado (2.33), basta derivar la expresi on (2.34)
on respe to al tiempo, para as obtener x_ = Ax + Bu.
54 Sistemas Dis retos

La representa i on de la e ua ion de estado en el dominio lapla iano toma


la forma:
sx(s) x(t0) = Ax(s) + Bu(s)
x(s) = (sI A) 1x(t0) + (sI A) 1
Bu(s)
y(s) = Cx(s) + Du(s) (2.35)
Ejemplo 2.9
Dado u = 3e t, determinar la respuesta de un pro eso des rito por las
siguientes e ua iones de estado y de salida:
x_1 = 7x1 + x2 + 2u; x_2 = 12x1 u
y = 3x1 4x2 2u
Condi iones ini iales: x1(0) = 6, x2(0) = 1. Gra ar la respuesta y(t) y
ompararla on las respuestas obtenidas mediante dis retiza ion para los
tiempos de muestreo de 0.1 s y 0.04 s.
Solu ion: Segu n la tabla 2.2: L[3e t℄ = 3=(s + 1). Apli ando la e ua ion
(2.35) obtenemos:
7 1 2
A= ; B=
12 0 1
6
C= 3 4 ; D = [ 2℄; x(0) =
1
1 1 2
s+7 1 6 s+7 1 u(s)
x(s) = +
12 s 1 12 s 1
= 1 s12 s +
17 6 2 3
s2 + 7s + 12 +

=
" 6s2+s 2
(s+1)(s+3)(s+4)
# 1 1 s+1

s2+77s 14
(s+1)(s+3)(s+4)
" 6s2+s 2
#
y(s) = Cx(s) + Du(s) = 3 4 (s+1)(s+3)(s+4) 3
s2 +77s 14
2
(s+1)(s+3)(s+4)
s+1
22s2 305s + 50 6 297=6 767=2 + 918=3
= = +
(s + 1)(s + 3)(s + 4) s + 1 s+1 s+3 s+4
297 767 e 3t 918 4t
y(t) = e t+ + e ; t 0
6 2 3
2.3 Fundamentos de Sistemas Dis retos 55

Las respuestas mostradas en la gura 2.9 se realizaron on el programa


ejem2 9.m. Para T 0:04 s, las respuestas y(t) e y(kT ) pr a ti amente
oin iden. Conforme T aumenta, la diferen ia entre y(t) e y(kT ) es mas
notoria, lo ual nos indi a que los sistemas muestreados dependen de T .

% ejem2_9.m COMPARACION DE RESPUESTAS A UNA ENTRADA ARBITRARIA u(t)


A = [-7 1
-12 0℄; B = [2;-1℄; C = [3 -4℄; D = [-2℄;
T1 = 0.1; % TIEMPO DE MUESTREO EN SEGUNDOS
[G,H,C,D℄ = 2dm(A,B,C ,D ,T1,'zoh'); % CONTINUA A DISCRETA
x = [-6;1℄; % CONDICION INICIAL
for k = 1:100 % CADA MUESTRA k EQUIVALE A T SEGUNDOS
u(k) = 3*exp(-k*T1); % ENTRADA
y1(k) = C*x + D*u(k);
x = G*x + H*u(k);
end
T2 = 0.04; % TIEMPO DE MUESTREO EN SEGUNDOS
[G,H,C,D℄ = 2dm(A,B,C ,D ,T2,'zoh'); % CONTINUA A DISCRETA
x = [-6;1℄; % CONDICION INICIAL
for k = 1:250 % CADA MUESTRA k EQUIVALE A T SEGUNDOS
u(k) = 3*exp(-3*k*T2); % ENTRADA
y2(k) = C*x + D*u(k);
x = G*x + H*u(k);
end
% SOLUCION y(t)
t = 0:0.1:10;
y = 297*exp(-t)/6 - 767*exp(-3*t)/2 + 918*exp(-4*t)/3;

% GRAFICOS
t=linspa e(0,10,101); t1=linspa e(0,10,100);
t2=linspa e(0,10,250);
plot(t,y,t1,y1,'--',t2,y2,'-.'); grid
ylabel('Respuesta y(t)')
xlabel('Tiempo en segundos')
print -deps -f fig2_9

Solu i on de la E ua ion de Estado Dis reta

Dis retizando la e ua i on (2.33) para un tiempo dis reto k = t=T y asu-


miendo que entre muestras la sen~al de ontrol u es onstante, enton es para
la sen
~al de entrada u(t) = u(kT ), kT (k + 1)T y para un estado ini ial
56 Sistemas Dis retos

10

−10
Salida y

−20

−30

−40

−50
0 1 2 3 4 5 6 7 8 9 10
Tiempo en segundos

Figura 2.9: Respuestas y(t) para el ejemplo 2.9. Curva s olida: y(t); en
trazos: y(kT1), T1 = 0:04 s; urva punto y raya: y(kT 2), T2 = 0:1 s.

x(kT ) = u(kT ), kT (k + 1)T , la e ua ion de estado se onvierte en:

x(t) = (t kT )x(t0) + u(kT )


Z t
(t )Bd
t0

Si s olo interesa la solu i on para t = (k + 1)T y empleando el ambio de


variables que sigue = (k + 1)T , d = d , obtenemos las siguientes
e ua iones dis retas de estado y de salida:

x(k + 1) = Gx(k) + Hu(k); y(k) = Cx(k) + Du(k) (2.36)

donde:
AT
G = (T ) = e ; H=
Z T
( )d B (2.37)
0
Notar que (2.36) es una e ua i on ve torial de diferen ias que puede ser
resuelta re ursivamente, omo sigue:

x(1) = Gx(0) + Hu(0)


x(2) = Gx(1) + Hu(1) = G2x(0) + GHu(0) + Hu(1)
2.3 Fundamentos de Sistemas Dis retos 57

x(k) k
= G x(0) + Xk
G 1
Hu(k ) (2.38)
=1

donde Gk es la denominada matriz de transi ion dis reta. Una segunda alter-
nativa de solu i on de (2.36) se da en el dominio de z. Apli ando la propiedad
de desplazamiento ha ia la izquierda, podemos formular que Z[x(k)℄ = x(z)
y Z[x(k + 1)℄ = z[x(z) x(0)℄. Por tanto, de (2.36) se obtiene:

z[x(z) x(0)℄ = Gx(z) + Hu(z)

Despejando:
1 1
x(z) = (zI G) zx(0) + (zI G) Hu(z) (2.39)

y empleando la e ua i on de salida resulta:


1 1
y(z) = C(zI G) zx(0) + [C(zI G) H + D℄u(z) (2.40)

Comparando las e ua iones (2.38) y (2.39) veri amos que:


1 1
Gk = Z [(zI G) z℄ (2.41)

La matriz de transferen ia de pulso se determina ha iendo x(0) = 0 en


(2.40):
y(z) = Gp (z)u(z) = [C(zI G) 1 H + D℄u(z) (2.42)
mientras que la e ua ion ara ter sti 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 =e T ej!T jj


= z \z

y omo z jj 1 uando 0 para ualquier \z, enton es la zona de esta-


bilidad en el plano z resulta un r ulo de radio unidad:
Un sistema dis reto es estable si las ra es de su e ua i on ara ter sti a,
los eigenvalores, se en uentran dentro del r ulo unitario (en el dominio de
z). En otro aso, el sistema no es estable.
58 Sistemas Dis retos

Formas Canoni as en el Espa io de Estado Dis reto

La forma general de la fun ion de transferen ia de pulso para un pro eso es:

y(z) b0 + b1z 1 + + bnz n n n 1


= b0z + b1z + + bn
Gp(z) = =
u(z) 1 + a 1z 1 + + a n z n zn + a1zn 1 + + an
(2.44)
y su orrespondiente e ua ion de diferen ias toma la forma:

y(k+n)+a 1y(k+n 1)+ +any(k) = b 0u(k+n)+b 1u(k+n 1)+ +b nu(k)


(2.45)
Conforme a la sele ion de las variables de estado, un pro eso posee diversas
representa iones en el espa io de estado. Las formas an oni as m as nota-
bles, on rela ion a la fun ion de transferen ia de pulso dada en (2.44), se
des riben a ontinua ion.

Primera Forma Canoni a Controlable:


2 0 1 0 0 32 x 1 (k ) 3 203
6 0 0 1 0
76 x 2 (k ) 7 + 6 0. 7 ( )
x(k + 1) =
6 .. .. .. . 766 ..
7 664.0 7 u k
0
an
0
an 1
0
an 2 a1
1 4 xn 1 (k)
xn ( k )
1
(2.46)
y ( k) = bn a nb0 bn 1 an 1b 0 b1 a1b0 x(k) + b0u(k) (2.47)

Segunda Forma Can oni a Controlable:


2 0 1 0 0 32 x1 (k ) 3 2 1
3
6
+ 1) = 6
0 0 1 0
76 x2 (k ) 7+6 2
7 ()
x(k
64
..
0
..
0
..
0
..
1
76
7564
..
xn 1(k)
7 6 .. 7u k
n1
an an 1 an 2 a1 xn(k) n
(2.48)
y ( k) = 1 0 0 x(k) + 0u (k ) (2.49)

donde: 0 = b0, 1 = b1 a 1b0, 2 = b2 a1b1 a 2 0, et . Generalizando:

n= bn a1b1n an 1 1 an 1 1
2.3 Fundamentos de Sistemas Dis retos 59

Ter era Forma Can oni a Controlable:


2 a1 a2 an 1 an 1 32 x1 (k 3 2 13
0 0 0 ) 0
x2 (k
6 76 )
. 7 + 6 .. 7 ( ) (2.50)
( + 1) =
x k 0 1 0
.
0
.
76 .
7 6 7 u k

6 .
.
.
. . .
7564 xn 1 (k)
640
0 0 1 0 xn(k) 0

y ( k) = b1 a1b0 b2 a2b0 bn anb0 x(k) + b0u(k) (2.51)

Primera Forma Can oni a Observable:


20 0 0 0 an 32 x1 ( k ) 3 2 bn anb0 3
6 1 0 0 0 an 1
76 x2 ( k )
77 + 66 bn 1 an 1b0 7 ()
( + 1) =
x k
6 0.. ..
0
. .
1 0 a2
. 76
7564 ..
xn 1(k) b2
..
a2b0
7u k

0 0 0 1 a1 xn(k) b1 a1b0
(2.52)
y ( k) = 0 0 0 1 x(k) + b0u(k) (2.53)

Segunda forma anoni a observable:


2 a1 1 0 0 0 32 x1 ( k ) 3 2 b1 a 1b 0 3
6
+ 1) = 6
a2 0 1 0 0
76 x2 ( k )
77 + 66 b2 a 2b 0 7 ()
x(k .. .. .. .. 76 .. 7u k
1 7564
.. ..
an 1 0 0 0 xn 1(k) bn 1 an 1b0
an 0 0 0 0 xn(k) bn a n b0
(2.54)
y ( k) = 1 0 0 0 x(k) + b0u(k) (2.55)

Forma Can oni a Diagonal (eigenvalores no repetidos)


2 x1(k + 1) 3 2 p1 0 0
32 x1 ( k )
3 2 3
x2(k + 1) 1
6 7 6 0 p2 0
76 x 2 (k )
7 61 7
.
.
7 = 6 .. . .
. 76
54 .
. 775+ 64 .. 7 ( )
6 u k (2.56)

46 xn 1 k ( + 1)
57 0
.
0 pn x n (k ) 1
xn
(k + 1)
y ( k) = 1 2 n x(k) + b0u(k) (2.57)
60 Sistemas Dis retos

donde los pi son los eigenvalores no repetidos de G p(z) = y(z)=u(z), y:

y(z)
= b0 +
X n
i
; i = lim
y(z)
(z p i) (2.58)
u(z) z pi z !p i u(z)
i=1

Forma Canoni a de Jordan (eigenvalores repetidos).- En la subse ion 1.2.3


vimos que si la matriz de estado A de orden n de un pro eso on fun ion de
transferen ia de pulso G(z) = y(z)=u(z) posee r eigenve tores linealmente
independientes (es de ir, el rango de A es r), enton es la forma de Jordan es
una matriz J que posee n r unos sobre su diagonal, on todos los dem as
elementos iguales a ero. Por itar un ejemplo, si A, de orden n = 8, ontiene
un eigenvalor p1 de multipli idad 3, otro eigenvalor p 2 de multipli idad 2,
otros tres eigenvalores distintos, y su rango es 6, enton es la forma de Jordan
presenta 8 6 = 2 unos sobre la diagonal. Es de ir:
2 p1 0 0 0 0 0 0 0 32 x1(k) 3 2 30
0 p1 1 0 0 0 0 0 x2(k) 0

66 76 77 66 7
0 0 p 0 0 0 0 0 x (k) 1
1
76 3
0
77
x(k + 1) =
6 0 0 0 p2 1 0 0 0 76 x4(k)
7 + 1
646 75
1
u(k)
64 0
0
0
0
0
0
0
0
0
00
0
p02
0
p06
0
00
p7
00
0 5746
x
x56(k)
(k)
x7(k) 5 1

0 0 0 0 0 0 0 p8 x8(k) 1 (2.59)
y(k) = 1 2 3 4 5 6 7 8 9 x(k) + b0u(k) (2.60)
y(z) 8

X
1 2 3 4 5 i
= b0 + 3
+ 2
+ + 2
+ +
u(z) (z p ) 1 (z p ) z1 p (z p )1 zp 2 2 i=6 i
zp
(2.61)

Ejemplo 2.10

La fun i on de transferen ia de pulso de un pro eso se modela omo:

y(z) = PP 6
i=0 biz
6
i

i
u(z) 1+ i=1 ai z

donde b0 = 1, b1 = 2:8, b2 = 0:65, b3 = 6:8, b4 = 4:25, b5 = 1:3,


b6 = 1:2, a1 = 1:3, a2 = 1:69, a3 = 0:345, a4 = 0:49, a5 = 0:02 y
a6 = 0:04. Determinar la estabilidad del pro eso. Determinar la e ua ion
2.3 Fundamentos de Sistemas Dis retos 61

de estado y la e ua ion de salida para la segunda forma an oni a ontrolable


y para la primera forma anoni a observable. Demuestre que la matriz de
estado de ambas formas anoni as poseen los mismos eigenvalores y que
ambas representa iones generan la misma fun ion de transferen ia de pulso.
Solu i on: El siguiente programa resuelve las preguntas planteadas.
% ejem2_10.m FORMAS CANONICAS
lear all
b0=1; b1=-2.8; b2=-0.65; b3=6.8; b4=-4.25; b5=-1.3; b6=1.2;
a1=1.3; a2=-1.69; a3=-0.345; a4=0.49; a5=0.02; a6=-0.04;
num = [b0 b1 b2 b3 b4 b5 b6℄;
rnum = roots(num); % RAICES DEL POLINOMIO DEL NUMERADOR
% rnum: -1.5, 2, 1, 1, 0.8, -0.5
den =[1 a1 a2 a3 a4 a5 a6℄;
rden = roots(den); % RAICES DEL POLINOMIO DEL DENOMINADOR
% roots: 0.5, 0.5, 0.5, -0.4, -0.4, -2
% EL PROCESO ES INESTABLE DEBIDO A LAS RAICES -0.4, -0.2 Y -2

% SEGUNDA FORMA CANONICA CONTROLABLE:


% x(k+1) = G *x(k) + H *u(k); y(k) = C *x(k) + D *u(k)
beta0 =b0; %
beta1 = b1-a1*beta0;
beta2 = b2-a1*beta1-a2*beta0;
beta3 = b3-a1*beta2-a2*beta1-a3*beta0;
beta4 = b4-a1*beta3-a2*beta2-a3*beta1-a4*beta0;
beta5 = b5-a1*beta4-a2*beta3-a3*beta2-a4*beta1-a5*beta0;
beta6 = b6-a1*beta5-a2*beta4-a3*beta3-a4*beta2-a5*beta1-a6*beta0;
G = [0 1 0 0 0 0
0 0 1 0 0 0
0 0 0 1 0 0
0 0 0 0 1 0
0 0 0 0 0 1
-a6 -a5 -a4 -a3 -a2 -a1℄;
H = [beta1
beta2
beta3
beta4
beta5
beta6℄;
C = [1 0 0 0 0 0℄; D =[beta0℄;
% PRIMERA FORMA CANONICA OBSERVABLE:
% x(k+1) = Go*x(k) + Ho*u(k); y = Co*x(k) + Do*u(k)
Go = [0 0 0 0 0 -a6
62 Sistemas Dis retos

1 0 0 0 0 -a5
0 1 0 0 0 -a4
0 0 1 0 0 -a3
0 0 0 1 0 -a2
0 0 0 0 1 -a1℄;
Ho = [b6-a6*b0
b5-a5*b0
b4-a4*b0
b3-a3*b0
b2-a2*b0
b1-a1*b0℄;
Co = [0 0 0 0 0 1℄; Do=[b0℄;
[num ,den ℄ = ss2tf(G ,H ,C ,D );
[numo,deno℄ = ss2tf(Go,Ho,Co,Do);
% SE COMPRUEBA QUE: num=num =numo, den=den =deno, eig(G )=eig(Go)

Ejemplo 2.11

Cono idas las matri es G, H, C y D (ver programa ejem2 11.m), determine


la e ua i on de estado y la e ua ion de salida de su forma anoni a de Jordan.
Demuestre que la matriz de estado de Jordan y la matriz de estado G poseen
los mismos eigenvalores y que ambas representa iones generan la misma
fun ion de transferen ia de pulso.
Solu ion: El siguiente programa resuelve las preguntas planteadas.
% ejem2_11.m FORMAS CANONICAS DE JORDAN
lear all
% x(k+1) = G*x(k) + H*u(k); y(k) = C*x(k) + D*u(k);
G = [0 1 0 3
0 -1 1 1
0 0 0 1
0 0 -1 -2℄;
H = [1;0;-4;0℄;
C = [1 0 0 0℄; D = [-2℄;
[num,den℄ = ss2tf(G,H,C,D);
eigG = eig(G); % eigG = EIGENVALORES DE G: -1, -1, -1, 0
rangG = rank(G); % rankA = 3 => G POSEE 3 VECTORES PROPIOS
% LINEALMENTE INDEPENDIENTES => 4-3=1 (UN 1 SOBRE LA DIAGONAL)
[ ,p,k℄ = residue(num,den); % EXPANSION EN FRACCIONES PARCIALES
% = [-8.0000 -8.0000 0.0000 9.0000℄';
% p = [-1.0000 -1.0000 -1.0000 0℄;
% k = -2;
1= (1); 2= (2); 3= (3); 4= (4);
2.3 Fundamentos de Sistemas Dis retos 63

p1=p(1); p2=p(2); p2=p(3); p2=p(4);


% x(k+1) = Gj*x(k) + Hj*u(k); y = Cj*x(k) + Dj*u(k)
Gj = [p1 0 0 0
0 p1 1 0
0 0 p1 0
0 0 0 p2℄;
Hj = [0;1;1;1℄;
Cj = [ 1 2 3 4℄; Dj = [k℄;
[numj,denj℄ = ss2tf(Gj,Hj,Cj,Dj);
eigGj = eig(Gj); % EIGENVALORES DE Gj: -1, -1, -1, 0
% SE COMPRUEBA QUE: num=numj, den=denj, eigG=eigGj

Pro esos Dis retos on Tiempo Muerto


En el dominio ontinuo, la transformada de Lapla e del tiempo muerto es
e Tts. Si Tt = dT , d = 1; 2; : : : y dado que e T s = z, enton es en el dominio
dis reto el tiempo muerto toma la forma z d . Este tiempo muerto puede
existir en la entrada, en la salida o entre las variables de estado del pro eso,
tal omo se ilustra a ontinua i on:

x(k + 1) = Ax(k dx) + Bu(k d u)


y(k + d y) = Cx(k)

donde los tiempos muertos dk, du y dy toman valores enteros positivos.


Si la rela ion d = Tt=T no fuera un entero (o tambien si lo fuera), resulta
util emplear la aproxima ion de Pade para el tiempo muerto:
1 1 num(s)
e Tts = 1 sT t + (sT t)2 (sT )3 +
t =
!2 !3 den(s)
Con una aproxima ion de ter er orden, podemos a omodar retardos de fase
de hasta 200o (3.5 rad) [11℄, lo ual es su iente para apturar el efe to del
tiempo muerto en mu has apli a iones. Tal aproxima i on tiene la forma:
num(s)= 1 Tts=2 + (Tts)2=10 (Tts)3=120
e Ts den(s) 1 + T s=2 + (T s)2=10 + (T s)3=120
t t t

Ejemplo 2.12

Comparar la respuesta a un es al on del pro eso:


y(s) 10
= e 5:8s
u(s) 2s + 1
64 Sistemas Dis retos

on respe to a la respuesta originada por el pro eso uando el tiempo muerto


se aproxima por una rela i on de Pad e de ter er orden. Luego determinar la
e ua ion de estado aproximada del pro eso.
Solu ion: El programa ejpades.m en SIMULINK ( gura 2.10) resuelve el
problema planteado y los resultados se ilustran en la gura 2.11. Para
realizar la simula ion usando el programa ejpades.m, eje utar previamente
el programa ejpade.m, el ual tambi en determina la e ua i on de estado y
las fun iones de transferen ia aproximadas del pro eso, tanto en el dominio
ontinuo omo en el dominio dis reto.
% ejpade.m PROCESO CON TIEMPO MUERTO D
lear all
Tt=5.8; % TIEMPO MUERTO
% APROXIMACION DE TERCER ORDEN DEL TIEMPO MUERTO D:
numD=[-Tt^3/120 Tt^2/10 -Tt/2 1℄;
denD=[Tt^3/120 Tt^2/10 Tt/2 1℄;
% PROCESO PARCIAL
nump=[0 10℄; denp=[2 1℄;
% PROCESO APROXIMADO
num= onv(numD,nump);
den= onv(denD,denp);
[A,B,C,D℄=tf2ss(num,den);
% PROCESO DISCRETO APROXIMADO
T=0.5;
[numd,dend℄= 2dm(num,den,T,'zoh');
[G,H,C,D℄= 2dm(A,B,C,D,T,'zoh');
% GRAFICOS
load yd; load yda;
t=linspa e(0,11,size(yd,1));
plot(t,yd,t,yda,'--'), grid
xlabel('Tiempo en segundos')
ylabel('Respuestas al es alon')
print -deps -f ejpade
print -deps -s ejpades

2.3.6 Controlabilidad y Observabilidad


Con epto de Controlabilidad
Un pro eso dinami o lineal se di e que es ontrolable, si es que existe un
ve tor u(k) realizable y apaz de trasladar el estado del pro eso desde un
estado ini ial x(0) ha ia ualquier estado nal x(N ) en un tiempo nito N .
2.3 Fundamentos de Sistemas Dis retos 65

10 yd_
Mux
2s+1
u Proceso parcial Tiempo yd Graph
muerto yd Mux
yda
10 −Tt^3/120s3+Tt^2/10.s2−Tt/2s+1 yda_
yda
2s+1 Tt^3/120.s3+Tt^2/10.s2+Tt/2.s+1
Proc. parcial Aproximación del tiempo muerto

Figura 2.10: Compara i on de las respuestas a un es alon del pro eso y de


su modelo aproximado mediante una rela ion Pad e de ter er orden (ejemplo
2.12).
12

10

8
Respuestas al escalóon

−2
0 2 4 6 8 10 12
Tiempo en segundos

Figura 2.11: Compara ion de las respuestas a un es alon del pro eso ( urva
s olida) y de su modelo aproximado ( urva en trazos) mediante una rela i on
Pad e de ter er orden (ejemplo 2.12).
66 Sistemas Dis retos

Despejando u(k) de la e ua ion (2.38) para k = N se obtiene:

u(N ) = M 1[x(N ) GN x(0)℄ M


= [H GH : : : GN 1 H℄

6
donde det(M ) = 0. M es ono ida omo la matriz de ontrolabilidad, la ual
puede ontener olumnas o las linealmente dependientes. Por onsiguiente,
para que un pro eso sea ompletamente ontrolable, lo que quiere de ir, para
que su matriz de ontrolabilidad solo posea las o olumnas independientes,
se debe umplir que:
1
rango(M ) = rango([H GH : : : GN H℄) = n (2.62)

donde n es el orden del pro eso. Para N < n no existe solu ion para u, y
para N > n la solu ion no es uni a.
La determina ion de la ontrolabilidad ompleta en el espa io de estado
ontinuo es similar. Basta reemplazar en M , A por G y B por H.

Con epto de Observabilidad


Un pro eso lineal din ami o on salida y(k) se denomina observable si algu n
estado x(k) puede ser obtenido a partir de un nu mero nito de salidas
y(k); y(k 1); : : : ; y(k n). Consideremos la siguiente e ua ion de salida:

y(k) = Cx(k)

Empleando la e ua ion de estado x(k + 1) = Gx(k); +Hu(k), podemos


dedu ir que:

y(k) = Cx(k)
y(k + 1) = CGx(k) + CHu(k)
y(k + 2) = CG2x(k) + CGHu(k) + CHu(k + 1)
.
1 2
y(k + n) = CGn x(k) + [0; CH; CGH; : : : ; CGn H℄Un (2.63)

donde (asumiendo que los ve tores de entrada son ompletamente ono idos)

Un = [u(k + n 1) : : : u(k + 1) u(k)℄T


2.3 Fundamentos de Sistemas Dis retos 67

La e ua i on (2.63) toma la forma:

Yn = N x(k) + SUn (2.64)

donde:

Yn = [y(k) y(k + 1) : : : y(k + n 1)℄ T


N = [C CG : : : CGn 1 ℄T = [C T GT C T
2 3 : : : (GT )n 1
CT ℄

S = 6
0
0
0
. 0.
.
0
0
0
0
0
CH
.
7
4
.

0 CH CGH : : : CGn 2H
5
Despejando, el ve tor in ognita se obtiene de:
1
x(k) = N [Yn SUn ℄ (2.65)

6
siempre que det(N ) = 0. Luego, para que el pro eso din ami o sea observa-
ble, la matriz de observabilidad N debe umplir:

rango[N ℄ = n (2.66)

La determina i on de la observabilidad ompleta en el espa io de estado


ontinuo es similar. Basta reemplazar A por G en la expresion de N .
Ejemplo 2.13
Determine si los pro esos sistema hidrauli o y p endulo des ritos en los ejem-
plos 2.1 y 2.2 son ompletamente ontrolables y observables.
Solu i on: 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 Sistemas Dis retos

B = [1
0℄;
C = [0 1℄; D = [0℄;
M = [B A*B℄; % MATRIZ DE CONTRABILIDAD
rangM = rank(M);% rangM = 2 = n => COMPLETAMENTE CONTROLABLE
N = [C' A'*C'℄; % MATRIZ DE OBSERVABILIDAD
rangN = rank(N);% rangN = 1 < 2 => NO ES COMPLETAMENTE OBSERVABLE

% PROCESO PENDULO
Bp = 1.3366; Lo = 1.635; Mo = 0.5; g = 9.81;
AP = [0 1
-g/Lo^2 -Bp/(Mo*Lo^2)℄; % n = 2
BP = [0
1/(Mo*Lo^2)℄; CP = [1 0℄; DP = [0℄;
MP = [BP AP*BP℄; % MATRIZ DE CONTRABILIDAD
rangMP = rank(MP); % rangMP = 2 = n => COMPLETAMENTE CONTROLABLE
NP = [CP' AP'*CP'℄;% MATRIZ DE OBSERVABILIDAD
rangNP = rank(NP); % rangNP = 2 = n => COMPLETAMENTE OBSERVABLE
Cap tulo 3

Modelado de Pro esos

Este ap tulo presenta la deriva i on de modelos din ami os de pro esos ontinuos
on su orrespondiente linealiza i on y dis retiza ion. Tambi en se explora la
respuesta de los pro esos a entradas t pi as y se determina las ara ter sti as de
ontrolabilidad y observabilidad de los mismos, empleando omo herramienta de
al ulo la omputadora. Las tres primeras se iones se dedi an a los pro esos
uyos sistemas de ontrol avanzado van a ser implementados en tiempo real. Tales
pro esos son: el pendulo invertido, la grua-puente y el servomotor de
orriente ontinua sujeto a argas no lineales. En su se ion problemas resueltos
se presenta la modela ion de diversos pro esos, uyos sistemas de ontrol ser an
disen~ados en los ap tulos siguientes. La u ltima se i on propone la deriva ion
de modelos din ami os de otros pro esos. Todos los ar hivos orrespondientes a
los ejer i ios y problemas desarrollados en este ap tulo se pueden des argar del
sitio: http:// ee.uni.edu.pe/728681F.

3.1 Modelo del Pro eso P endulo Invertido

El pro eso pendulo invertido onsiste de un pendulo montado sobre un arro


que se desplaza en forma horizontal. Este arro est impulsado por un
servomotor D.C. a trav es de un sistema de poleas, tal omo se muestra en la
gura 3.1. Para mayor laridad, el pro eso p endulo invertido se ha separado
en dos subsistemas: el subsistema onformado por el arro y el p endulo, que
se trata en la subse i on 3.1.1, y el subsistema onformado por el motor y
el sistema de poleas, que se desarrolla en la subse ion 3.1.2.
70 Modelado de Pro esos

+ Fuerza de
u control y’
-
Servomotor
D.C. y
 Pendulo

z F

Carro

Figura 3.1: Pro eso p endulo invertido.

3.1.1 Modelo del Subsistema Carro-P endulo


El subsistema arro-p endulo se ilustra en la gura 3.2 y est a onformado por
un arro y una varilla. De la gura 3.2 podemos observar que los entros de
gravedad de la varilla y de la esfera son:
y y’
z

lv /2
meg

m vg lv
le
z’
0
z
P
F

Figura 3.2: Subsistema arro-p endulo.

ze = z + lesen (3.1)
l
z = z + v sen (3.2)
v
2
3.1 Modelo del Pro eso P endulo Invertido 71

Para modelar el sistema me ani o empleamos la segunda ley de Newton


para los movimientos lineal y rota ional. Para el movimiento lineal, di ha
ley estable e que para un sistema de N part ulas:

X
N

i=1 mi
d2
~ri =
X
M

~
j=1 Fj (3.3)
dt2
donde mi es la masa de la i- esima part ula, ~ri es la posi ion del entro de
masa de la i- esima part ula y F~j es la j- esima fuerza apli ada al sistema de
part ulas. Apli ando la e ua ion (3.3) a nuestro sistema (en la dire i on z)
obtenemos:
d2 d2 d2
m 2 z + m e 2 z e + m v 2 zv = F (3.4)
dt dt dt
Luego, sustituyendo ze (e ua ion (3.1)) y zv (e ua ion (3.2)) en la e ua i on
(3.4) obtenemos:

d2 d2 d2 lv
m 2 z + me 2 (z + lesen ) + mv 2 (z + sen ) = F (3.5)
dt dt dt 2
y desarrollando las derivadas resulta:

lv lv
(m +m e +mv )z• (me le +m v )(sen )+ _ 2 (m ele +m v )( os ) • = F (3.6)
2 2
Para ompletar el modelo, utilizamos la segunda ley de Newton apli ada al
movimiento rotatorio alrededor del punto P del arro. Esta ley estable e que
para un sistema de N part ulas en movimiento rota ional respe to a un sis-
tema de referen ia iner ial, sometidas a M torques externos perpendi ulares
al plano de giro, se umple que:

XN

i=1 Ji
d2
i =
X
M

j=1 j (3.7)
dt2
donde j es el j- esimo torque externo, Ji es el momento de iner ia de la
i-esima part ula respe to al punto P y i es el a ngulo re orrido por la i-
esima part ula alrededor del punto P. Para apli ar esta ley al movimiento
rotatorio de la varilla alrededor del punto P utilizamos la ter era ley de
Newton, la ual nos permite remplazar el efe to de la a elera i on del sistema de
referen ia Z 0 Y 0 por una fuerza mi z• apli ada en el entro de gravedad de
72 Modelado de Pro esos

las part ulas i de di ho sistema, pero en dire ion opuesta a la a elera ion.
Empleando la e ua i on (3.7) en la gura 3.2 obtenemos:
lv lv
(Je +Jv ) • = m eg(sen )l e +m vg(sen ) m ez•( os )l e m vz•( os ) (3.8)
2 2
y ordenando:
lv
(m l + m lv )g(sen ) (m l + m )z•( os ) = (J + J ) • (3.9)
e e v e e v e v
2 2
donde:
l2
Je = mel2e; Jv = mv v (3.10)
3

3.1.2 Modelo del Subsistema Motor-Polea


El subsistema motor-polea est representado en la gura 3.3. El modelo del
sistema el e tri o se en uentra apli ando la ley de voltajes de Kir hho a
la parte el e tri a de di ha gura. Adem as, debido a que la indu tan ia en
servomotores D.C. de magneto permanente es pequen ~a, podemos despre iar
su efe to en el modelo. As obtenemos:

Ra m
+
u Va Vb Jo rp
-
La Jm F
Bm Bo

Figura 3.3: Subsistema motor-polea.

R a i a + Vb = K A u = V a (3.11)
El voltaje ontraele tromotriz est a representado por:

V b = K b _m (3.12)
Apli ando la segunda ley de Newton para el movimiento rotatorio en el
sistema me ani o del servomotor, obtenemos:
Tm = Jeq •m + Beq _m + n F rp (3.13)
3.1 Modelo del Pro eso P endulo Invertido 73

donde:

Jeq = Jm + n2(Jo + Jp) (3.14)


2
Beq = Bm + n Bo (3.15)

El torque produ ido en el eje del servomotor viene dado por la e ua ion:

Tm = K m i a (3.16)

Sustituyendo la e ua i on (3.16) en (3.13) y despejando i a se obtiene:


Jeq • nr
i= Beq _ + p F (3.17)
a m
+ m
Km Km Km

Luego, substituyendo las e ua iones (3.17) y (3.12) en (3.11) y despe-


jando F obtenemos:

KmKA Jeq • Beq KmKb _


F= u m + m (3.18)
Ran rp n rp n rp Ran rp

Para transformar el desplazamiento angular del servomotor en el desplaza-


miento horizontal del arro en fun i on del radio de la polea y del fa tor de
redu i on del servomotor, empleamos:
z
m = (3.19)
n rp
Substituyendo la ultima rela ion en (3.18), obtenemos la e ua ion general
del subsistema servomotor, omo sigue:

KmKA Jeq Beq Km Kb


F= u 2 2
z• 2 2
+ z_ (3.20)
Ran rp n rp n r p Ran2 r p2

Las e ua iones (3.6), (3.9) y (3.20) representan el modelo matem ati o del
pro eso p endulo invertido ontrolado por la orriente de armadura. Tales
e ua iones pueden ser es ritas en forma ompa ta:

M1 z• M2 (sen ) _ 2 + M2 ( os ) • F =0 (3.21)

M2 g(sen ) M2 z•( os ) J1 • = 0 (3.22)


F = Kx KA u J2 z• Bx z_ (3.23)
74 Modelado de Pro esos

donde:
lv
M 1 = m + me + m v ; M 2 = m el e + m v (3.24)
2
Jeq
J1 = Je + J v ; J2 = (3.25)
n2r p2

Km Beq K bK m
K = ; Bx = + (3.26)
x
Ranrp n2r2Ra
n2r p2 p

3.1.3 Representa ion en el Espa io de Estado

Las e ua iones obtenidas pueden ser representadas en el espa io de estado


mediante la siguiente asigna ion de variables de estado:

x1 = (3.27)
x2 = _ (3.28)
x3 = z (3.29)
x4 = z_ (3.30)

Es ribiendo di has e ua iones en el espa io de estado, obtenemos:

2 3 2 x2 3
66 x_1
x_ 77 6 M2(sin x1)( os x1)x
2
2
Bx( os x1)x4 (M1+J2)g(sin x1)+Kx( os x1)KA u
77
5 46
(M2 ( os2 x1 ) (M1 +J2 )J1 )=M2
x_32
4 x_4
=
2 2
x4
M22g(sin x 1)( os x 1) J M1 (sin 2
2 x )x1+J2 B x1J x
M2 ( os x1) (M1+J2)J1
K 4K u 1 x A 5
(3.31)
y puesto que en nuestro sistema tenemos omo salidas disponibles el despla-
zamiento angular de la varilla y el desplazamiento del arro, la e ua ion de
salida toma la forma siguiente:

y = Cx (3.32)

donde:
1 0 0 0
C= (3.33)
0 0 1 0
3.1 Modelo del Pro eso P endulo Invertido 75

3.1.4 Obten ion del Modelo Lineal


Para poder analizar la e ua ion matri ial (3.31) empleando t e ni as de on-
trol lineal, es ne esario obtener un modelo lineal del pro eso. Suponiendo
que las variables de estado se desv an levemente on respe to a una ondi-
i on de opera i on (un estado de equilibrio, por ejemplo), la aproxima i on
lineal se puede obtener mediante la expansion en series de Taylor, despre-
iando los t erminos de orden superior. Consideremos que nuestro pro eso
sea representado por la siguiente expresion:
x_ = f(x; u) (3.34)

T
x_ = x1 x2 x3 x4
T T
f = f1 f2 f3 f4 = x_1 x_2 x_3 x_4
en donde u es la sen ~al de ontrol, x_ es el ve tor de estados y f es una fun ion
ve torial de variable ve torial. La expansion en serie de Taylor alrededor del
punto de opera ion (x; u) resulta:
f (x; u) f (x; u)
x_ = f (x; u) + (x x) + (u u) +
x u
2 2 2
1 f (x; u) f (x; u) f (x; u)
(x 2
x) + 2 (x x )(u u) + (u u) 2 +
2! x2 xu u2
(3.35)
Si la varia i on de las variable residuales (x x ) y (u u ) es pequen~a, enton es
se pueden despre iar los t erminos de orden superior. En el aso que nos
o upa, el punto de opera ion (o estado de equilibrio) se ubi a alrededor del
origen: x = [0; 0; 0; 0℄T = 0 y u = 0, enton es la e ua ion (3.34) se puede
es ribir omo:
f (0; 0) f (0; 0)
x_ = f (0; 0) + x+ u (3.36)
x u
Dado que f (x; u) es una fun i on de variable ve torial, su derivada par ial
on respe to a x y u viene a representar la opera i on ja obiana (ver ejemplos
2.1 y 2.2). Enton es, la e ua i on (3.35) se onvierte en:
2 f1 (0;0)
x1
f1 (0;0)
x2
f1 (0;0)
x3
f1 (0;0)
x4
3 2 f1 (0;0)
u
3
x_ = f (0; 0) + 6 f2 (0;0)
f x
3
1
(0;0)
f2 (0;0)
f x
3
2
(0;0)
f2 (0;0)
f x
3
3
(0;0)
f2 (0;0)
f x
3
4
(0;0) 7 66 f2 (0;0)
u
75
x1
f4 (0;0)
x2
f4 (0;0)
x3
f4 (0;0)
x4
f4 (0;0)
4x+ f3 (0;0)

u
f4 (0;0) 7
u

x1 x2 x3 x4 u
(3.37)
76 Modelado de Pro esos

Luego, apli ando la u ltima expresi on a la e ua ion (3.31), obtenemos el


siguiente modelo lineal para el sistema de p endulo invertido:

x_ = Ax + Bu (3.38)

donde: 2 0 1 0 0
3
(M1+J2)M2g 2
2
00 B x M2
(M1 +J2 )J1 M 22 7 (3.39)

A=
6 (M 1+J 2 )J 1 M

46 0
M 22g
0 0 1
57
62 3
0 0 J B
(M 1+J 2)J 1 M2
2
(M 1+J 21)Jx1 M22

577
0 (3.40)
64
22
(M 1K
+J 0)J2K
xM 1 AM
B= 2

J1 K x K A 2
(M1 +J 2 )J1 M
2

3.1.5 El Modelo en el Espa io de Estado Dis reto


La obten ion del modelo del pro eso en el espa io de estado dis reto ya ha
sido explorada en la subse i on 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 i on de tales e ua iones es:

x(t) = (t t0)x(t0) +
Z t
(t )Bu( )d (3.43)
t0

donde t0 es el tiempo ini ial, y:

(t t0) = e A(t t0) = X1


Ak(t t0)k
k!
(3.44)
k=0

El modelo en tiempo dis reto est dado por:

x(kT + T ) = Gx(kT ) + Hu(kT ) (3.45)

donde T es el tiempo de muestreo. Las matri es G y H se obtienen de:

G = (T ) (3.46)
3.2 Modelo del Pro eso Grua-Puente 77

H=
Z T
( )(d ) B (3.47)
0
La e ua i on de salida en tiempo dis reto viene a ser:

y(kT ) = Cx(kT ) + Du(kT ) (3.48)

en donde C y D son matri es onstantes que no dependen del per odo de


muestreo T ; por onsiguiente, son las mismas que para el aso ontinuo.

3.2 Modelo del Pro eso Grua-Puente


El modelado del pro eso gru a-puente es similar al aso del p endulo inver-
tido. La u ni a variante es que en este aso el p endulo debe apuntar ha ia
abajo, tal omo se muestra en la gura 3.4. Al igual que en el aso del
p endulo 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. y

z F

Carro


Gru’a puente
y’

Figura 3.4: Pro eso grua-puente.

3.2.1 Modelo del Subsistema Carro-Varilla


El subsistema arro-varilla est representado en la gura 3.5. De di ha gura
podemos observar que los entros de gravedad de la varilla y de la esfera
son:
ze = z lesen (3.49)
78 Modelado de Pro esos

y y’
z

P z’
0
F z
lv

2
le
m g lv
v

meg

Figura 3.5: Subsistema arro-varilla de la grua-puente.

lv
z =zsen (3.50)
v
2
Apli ando la ley de Newton para el movimiento lineal dada por la e ua ion
(3.3) en la dire ion z, obtenemos:

d2 d2 d2
m 2 z + m e 2 z e + mv 2 z v = F (3.51)
dt dt dt
Luego, sustituyendo ze y zv en fun ion de z:

d2 d2 d2 lv
m 2 z + me 2 (z lesen ) + mv 2 (z sen ) = F (3.52)
dt dt dt 2
y desarrollando las derivadas, tenemos:
lv lv
(m +me+m v )z•+(m ele +m v )(sen ) _2 (m l +m
ee v )( os ) • = F (3.53)
2 2
Ahora, apli ando en la gura 3.5 la segunda ley de Newton para el movimien-
to rotatorio dada por la e ua i on (3.7) alrededor del punto P:
lv
(J + J ) • = m z•( os )l + m z•( os ) m g(sen )l m g(sen ) lv
e v e e v e e v
2 2
(3.54)
3.2 Modelo del Pro eso Grua-Puente 79

y reordenando, obtenemos:
lv
(m l + m lv )z•( os ) (m l + m )g(sen ) = (J + J ) • (3.55)
e e v e e v e v
2 2
donde:
l2
Je = mel2e; Jv = mv v
3

3.2.2 Modelo del Subsistema Motor-Polea


Este subsistema es el mismo que se desarroll o para el p endulo invertido en
la subse i on 3.1.2, e ua i on (3.20):
KmKA Jeq Beq Km Kb
F= u 2 2
z• 2 2
+ z_
Ran rp n rp n r p Ran2 r p2
Las e ua iones (3.53), (3.55) y (3.20) representan el modelo matem ati o del
pro eso gru a-puente ontrolado por la orriente de armadura. Tales e
ua iones pueden ser es ritas en forma ompa ta omo sigue:
M1 z• + M2 (sen ) _ 2 M2 ( os ) • F =0 (3.56)
M2 g(sen ) + M2 z•( os ) J1 • = 0 (3.57)
F = Kx KA u J2 z• Bxz_ (3.58)
donde:
lv
M1 = m + me + m v ; M 2 = m e l e + mv
2
Jeq
J1 = Je + J v ; J2 =
n2r 2p
Km Beq K bK m
K = ; Bx = +
x
Ranrp n2r2Ra
n2r p2 p

3.2.3 Representa ion en el Espa io de Estado


Las e ua iones arriba obtenidas se representan en el espa io de estados me-
diante la siguiente asigna i on de variables:
x1 = (3.59)
x2 = _ (3.60)
x3 = z (3.61)
x4 = z_ (3.62)
80 Modelado de Pro esos

Es ribiendo las e ua iones en el espa io de estado:

26 37 26 x2
3
64 4x_12 2

577
=
x_3 M2(sin x1)( os x1)x2 Bx( os x1)x4 (M1+J2)g(sin x1)+Kx( os x1)KA u

6
x_4
2
( M2 ( os2 x1 )+(M1 +J2 )J1 )=M2
M2 g(sin x1)( os x1) J1M2x(sin4 x1)x 2 J1Bxx4+J1KxKA u
M2 ( os 2 x1 )+(M1 +J
2
1
2 2 )J

(3.63)
y puesto que tenemos omo salidas disponibles el desplazamiento angular de
la varilla y el desplazamiento del arro, tendremos enton es omo e ua ion
de salida la siguiente expresi on:

y = Cx (3.64)

donde:
1 0 0 0
C= (3.65)
0 0 1 0

3.2.4 Obten ion del Modelo Lineal


Para obtener el modelo lineal del sistema grua-puente, empleamos la e ua ion
(3.36) desarrollada en la subse i on 3.1.4, omo sigue:

x_ = Ax + Bu (3.66)

donde:
2 0 1 0 0 3
66
(M1+J2)M2g
(M 1+J 2)J 1 M 2
2
0 0 B x M2
(M1 +J2 )J1 M 22 77 (3.67)
M 22g J1Bx
A= 0 0 0 1
4 (M 1+J 2)J 1 M2 0 0 (M 1+J 2)J 1 M2
5
y 26 2

0 3
2

B=
64
KxM2KA
(M 1+J 2)J 1 M2 7
0
J1 K x K A 2
2

57 (3.68)

(M1 +J 2 )J1 M
2

3.2.5 El Modelo en el Espa io de Estado Dis reto


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.
3.2 Modelo del Pro eso Grua-Puente 81

3.2.6 Resumen de Variables y Par ametros

La tabla 3.1 muestra las variables y par ametros para los pro esos p endulo
invertido y gru a-puente. Los valores de los par ametros se obtuvieron de las
hojas de espe i a iones y por medi ion.

3.2.7 Identi a ion de la Zona Muerta del Servomotor

Al analizar la urva velo idad vs. voltaje de entrada del servomotor ( gu-
ras 3.6 y 3.7) se puede observar una zona muerta originada por la fri ion
est ati a . Tal fri i on iguala al torque ne esario para omenzar a mover el
servomotor; es de ir, debido a la presen ia de la fri i on estati a, el servo-
motor permane e en reposo siempre que no re iba un nivel de voltaje que
supere un determinado umbral.

entrada vs salida
800

600

400

200
salida

−200

−400

−600

−800
−2 −1.5 −1 −0.5 0 0.5 1 1.5 2
entrada

Figura 3.6: Respuesta del servomotor sin ompensar (voltaje vs. velo idad
angular).

Observar en la gura 3.7 que la zona muerta de velo idad nula se presenta
para valores de voltaje entre 0.1 volt. Tal zona muerta es una no linealidad
que puede introdu ir efe tos no deseados en el ontrol, por lo que debe ser
ompensada mediante software, omo sigue (ver gura 3.8):
82 Modelado de Pro esos

Tabla 3.1: Variables y par ametros valorados para los pro esos p endulo in-
vertido y grua-puente.

S mbolo Des rip ion Valor/Formula


posi i on angular de la varilla
F fuerza apli ada al arro
m posi i on angular del motor
z posi i on 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 i o
Kb onstante ontraele tromotriz 31.0352 10 3 V/rad
Km onstante de torque del motor 31.071 10 3 N-m/A
Jm iner ia del eje primario del motor 1.9596 10 6 kg-m2
Bm fri i on vis osa del eje primario 1.8342 10 3 N-m/rad/s
Jo iner ia del eje se undario se despre i o
Bo fri i on vis osa del eje se undario se despre io
n fa tor de redu i on de velo idad 1/19.741
rp radio de la polea 0.0648 m
Jp iner ia de la polea mpr2=2p
2
Jeq momento de iner ia equivalente Jm + n (Jo + Jp)
Beq fri i on vis osa equivalente B m + n 2B o
Je momento de iner ia de la esfera me l 2
e
Jv momento de iner ia de la varilla mvl2v=3
3.2 Modelo del Pro eso Grua-Puente 83

entrada vs salida
150

100

50
salida

−50

−100

−150
−0.4 −0.3 −0.2 −0.1 0 0.1 0.2 0.3 0.4
entrada

Figura 3.7: Vista ampliada de la gura 3.6.

entrada vs salida
800

600

400

200
salida

−200

−400

−600

−800
−2 −1.5 −1 −0.5 0 0.5 1 1.5 2
entrada u

Figura 3.8: Respuesta del servomotor on zona muerta ompensada.


84 Modelado de Pro esos

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 Modelo del Servomotor D.C. No Lineal


El servomotor D.C. (\Dire t Current") on arga no lineal es un pro eso
de una entrada y una salida que omprende un subsistema el e tri o y un
subsistema me ani o. El subsistema el e tri o est ompuesto por un gene-
rador PWM (\Pulse Width Modulation"), que opera onjuntamente on un
ampli ador de poten ia) y por un servomotor D.C. ontrolado por voltaje
de armadura. El subsistema me ani o presenta un engranaje redu tor de
velo idad y una varilla metali a a oplada al eje del servomotor, a manera
de un brazo roboti o de un grado de libertad. En el extremo de la varilla se
pueden a oplar argas esf eri as adi ionales de masa Mo y radio Ro.
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.

I MO
T N1 RO
+ LO
u+ Kact eb Jm m
- - q
TM m
TL 
R L
bm q
m JL
N 2 = n N1
N2 bL

Figura 3.9: Pro eso: servomotor on arga no lineal.

3.3.1 El Subsistema Me ani o


La e ua i on del subsistema me ani o se puede obtener apli ando la segunda
ley de Newton en el punto donde se a opla el eje del servomotor on la
3.3 Modelo del Servomotor D.C. No Lineal 85

Tabla 3.2: Par ametros y variables del servomotor on arga no lineal.

S mbolo Des rip ion Valor/Formula


u tensi'on de entrada al pro eso
Ka t ganan ia del ampli ador 14.9
Va tension de armadura Va = K a tu
R resisten ia de armadura 7.38 ohm
L indu tan ia de armadura 4.64 10 2 H
I orriente de armadura
K onstante del torque motor 31.071 10 3N-m/A
T torque motor T = KI
TM torque de iner ia mot ori a
TN torque: fri iones no lineales
TL torque iner ial de la arga
TE torque del peso de la varilla/esfera
Jm iner ia del motor 1.9062 10 6 kg-m2
JL iner ia de la arga 3.5 10 7 kg-m2
bm oef. de fri i on del motor 1.8338 10 6 N-m/rad/s
bL oef. de fri i on de la arga 10 5 N-m/rad/s
Mo masa de la esfera 0, 0.01, 0.02, 0.045 kg
m masa de la varilla 0.06377 kg
L0 longitud de la varilla 0.776 m
R0 radio de la esfera 0.02 m
eb fuerza ontra-ele tromotriz eb = Ewm
E onstante de fuerza ele tromotriz 31.0352 10 3 V/rad/s
n rela ion de engranajes 19.741
g a elera ion de la gravedad 9.81 m/s2
w velo idad angular de la arga
wm velo idad angular del eje wm = nw
qm posi i'on angular del eje
q posi ion angular de la arga qm = nq
86 Modelado de Pro esos

varilla metali a ( gura 3.9). El torque resultante nT que debe entregar el


servomotor para ven er todos los torques que se le oponen es:

nT = nTM + TE + TL + TN (3.69)

donde:
TM = Jm w_m + bm wm = nJm w_ + nbm w (3.70)
2 2 2 1 2
TL = (Mo Lo + Mo Ro + mLo + JL )w_ + bL w (3.71)
5 3
m )sen q (3.72)
TE = gLo(Mo +
2
Reemplazando las e ua iones (3.70), (3.71) y (3.72) en la e ua i on (3.69) se
obtiene:
nTm = M w_ + Bw + N sen q + TN (3.73)

donde: 2 1
M=J 2 2 2

eff + M Lo + M Ro + mLo) (3.74)


5 3
m) (3.75)
N = gLo(M +
2
Jeff = n2Jm + JL (3.76)

B = n 2b m + b L (3.77)

3.3.2 El Subsistema El e tri o


La tensi on de armadura Va que permite ontrolar la velo idad del motor
viene expresada por:
Va = IR + LI_ + eb (3.78)

donde eb es la tension ontraele tromotriz y es igual a:

eb = Ew m (3.79)

y la tensi on de armadura Va es:

Va = uKa t (3.80)
3.3 Modelo del Servomotor D.C. No Lineal 87

3.3.3 Conversion de Energ a El e tri a en Me ani a


La e ua ion de onversion en energ a ele tri a en me ani a es:

T = KI (3.81)

donde K es la onstante del par motriz. Igualando las e ua iones (3.78) y


(3.80) (notar que wm = nw) obtenemos:
Ka t Enw R
I_ = u I (3.82)
L L L
Empleando las e ua iones (3.81) y (3.82) en (3.73) y despejando w_ obtene-
mos:
N B 1 nK I
w_ = senq w TN + (3.83)
M M M M
Las e ua iones (3.82) y (3.83) des riben el modelo no lineal del pro eso y
pueden tomar la siguiente representa ion:

x_ = F (x) + G(x)u; y = H(x) (3.84)

Eligiendo omo variables de estado: x1 = q (posi ion angular), x2 = x_1 =


q_ = w (velo idad angular) y x3 = I (intensidad de orriente), podemos
obtener:

x_1 = x2
N B 1 nK
x_2 = ( )senx1 x2 TN + x3
M M M M
nE R K a t
x_3 = x2 x3 + u (3.85)
L L L
donde la salida es la posi ion x1. Por onsiguiente:
2 x2 3
F (x) =
4 3 ( NM )senx1 M xB2 M TN 1+
nE R
nK
M x3 5
2 0 ;
L x2 L x3
H(x) = x1 (3.86)
G(x) = 4 5 0
Ka t
L

Las matri es dadas en (8.38) representan el modelo matemati o del pro eso
onsiderando arga no lineal. La gura 3.10 muestra el diagrama de simu-
la i on del pro eso (ar hivo servsim.m) y la gura 3.11 muestra la respuesta
88 Modelado de Pro esos

del pro eso a un es al on para los asos on L = 0 y L = 0. Di has respues- tas 6


resultan muy similares debido a que la indu tan ia L es muy pequen ~a 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
gan1 fricción de
Coulomb
Kact + n*K − 1 w 1 q
− +
R − Ms+B s
gan5
sum1subsistema sum2 subsistema Integrador gráfico
eléctrico mecánico
u n*E
gan2 MATLAB
N Function
gan3 seno

Figura 3.10: Diagrama de bloques del pro eso no lineal.

1.4

1.2
Posición q (rad); entrada u (voltios)

0.8

0.6

u
0.4

0.2

0
0 1 2 3 4 5 6 7 8 9 10
Tiempo en segundos

Figura 3.11: Respuesta del pro eso no lineal a un es alon.


3.3 Modelo del Servomotor D.C. No Lineal 89

Considerando L=0, la orriente de armadura resulta:


Ka t nE
I= u w (3.87)
R R

"
y la e ua i on (8.38) pasa a ser:
x2
#
F (x) =
N B n2 KE x2 1
M senx 1 M + MR M TN

0
G(x) = nKKa t u ; H(x) = x1 (3.88)
RM

3.3.4 Modelo y Compensa i on de no Linealidades


El torque TN se origina por la fri ion estati a T F y por la fri i on de
Coulomb TC . TF es el torque ne esario a ven er para que el servomotor
omien e a moverse. Cuando el servomotor ya esta en movimiento, apare e
el torque de fri i on de Coulomb TC oponi endose a di ho movimiento. Tales
torques pueden modelarse omo:

TF = CF sign(u); TC = CC sign(w) (3.89)

donde la fun i on sign(:) toma el valor +1 uando el argumento es positivo


y 1 uando es negativo. Para el servomotor empleado se ha determinado
experimentalmente [2℄ que CF CC = 0:15.
Nuestro problema es enton es ompensar (eliminar) el torque T N de la
e ua i on (3.88). Para ello de nimos:
R
u=v+ TN ; (3.90)
nKKa t
Reemplazando la e ua i on (3.90) en (3.88) obtenemos una e ua ion om-
pensada de la forma:
N B n2KE nKKa t
x_2 = senx1 + x2 + v (3.91)
M M MR RM

Asumiendo en (3.90) que TN = TC = CC sign(w), lo ual es ierto uando


el sistema ya est en movimiento, el termino no lineal resulta:
RCC
sign(w) = 0:12sign(w) (3.92)
nKKa t
90 Modelado de Pro esos

La e ua ion 3.92 indi a que en la implementa ion del software del sistema
de ontrol debemos ompensar la sen ~ al de ontrol u en 0.12 volt. Expe-
rimentalmente, un valor de 0.2 ha generado buenos resultados.
Por otra parte, debido a que valores grandes de la sen ~al de ontrol u
pueden saturar al servomotor, es que se requiere un limitador de la tension
de ontrol u. Este limitador puede tambi en implementarse en el software
de ontrol. Se ha determinado experimentalmente que para no entrar en la
zona de satura ion del servomotor, la sen ~al de ontrol ompensada no debe
sobrepasar el umbral de 1.4 voltios.

3.3.5 Linealiza ion y Dis retiza ion del Pro eso


Asumiendo que la sen ~ al de ontrol u est a debidamente ompensada de no
linealidades y despre iando la indu tan ia L del servomotor, enton es, para
desvia iones pequen ~as alrededor del origen se umple que senx1 x1 . Apli-
ando tal aproxima i on en la e ua i on (3.88) obtenemos una e ua i on de
estado lineal de la forma x_ = A x + B u y una e ua ion de salida y = C x,
donde:
0 1
A = 2
N
M ( BM + Kn E
MR )
0
B = KnKa t ; C = 1 0 (3.93)
MR

A tal resultado tambi en se puede llegar si apli aramos la t e ni a del ja o-


biano. La fun i on de transferen ia G p(s) del pro eso puede determinarse
mediante la rela i on:
y(s)
G p(s) = = C [sI A ℄ 1B (3.94)
u(s)

La fun i on de transferen ia de pulso G p(z) se determina omo sigue:

y(z) Gp(s)
Gp (z) = = (1 z 1)Z (3.95)
u(z) s

donde Z[:℄ es el operador transformada z. Di ha fun ion de transferen ia


depende del tiempo de muestreo T y posee la siguiente estru tura:
y(z) b1z + b2 b 1 z 1 + b 2z 2
Gp(z) = = 2 = (3.96)
u(z) z + a z 1+ a 2 1 + a1 z 1 + a z2 2
3.4 Problemas Resueltos 91

Su orrespondiente e ua ion de diferen ias es:

y(k) = a1y(k 1) a2y(k 2) + b1u(k 1) + b2u(k 2) (3.97)

Dado que un mismo pro eso puede tener multiples representa iones de esta-
do, a partir de la e ua i on (3.96) podemos determinar diversas representa-
iones de estado de la forma:

x(k + 1) = Gx(k) + Hu(k) (3.98)


y(kT ) = Cx(kT ) (3.99)

donde G, H y C son las matri es de estado, de ontrol y de salida, respe tiva-


mente, on dimensiones apropiadas. La representa i on anoni a ontrolable
del pro eso (primera forma, ver la subse ion 2.3.5), resulta:

0 1 0
G= ; H= ; C= b2 a2b0 b1 a1b0 ; D = [0℄
a2 a1 1
(3.100)
Tener en uenta que para nuestro pro eso b 0 = 0. Si sele ionamos omo
variables de estado x 1 = y(k), x2(k) = y(k + 1) b1u(k), obtendremos la
segunda forma an oni a ontrolable (subse i on 2.3.5):

0 1 b1
G= ; H= ; C= 1 0 ; D = [0℄
a2 a1 b2 a1b1
(3.101)
La fun i on de transferen ia de pulso del pro eso tambi en se al ula de:
y(z) 1H
b1z 1 + b2z 2
Gp(z) = = C(zI G) = (3.102)
u(z) 1 + 1a z 1 + a2z 2

3.4 Problemas Resueltos


Los pro esos p endulo invertido, gru a-puente y servomotor on arga no lineal
des ritos en las se iones anteriores, seran usados en las apli a iones en
tiempo real. Los pro esos que a ontinua ion se des riben ser an empleados
para validar los diferentes algoritmos de ontrol, los uales se tratan on
detalle en los ap tulos siguientes. Para ada pro eso en estudio se pide:

Determinar si el pro eso es ompletamente ontrolable y/o ompleta-


mente observable.
92 Modelado de Pro esos

Cal ular los eigenvalores del pro eso, tanto en el dominio ontinuo
omo en el dominio dis reto.

Sele ionar un tiempo de muestreo y determinar el modelo del pro eso


en el espa io de estado dis reto. Tener en uenta que el tiempo de
muestreo sele ionado no ne esariamente ser usado uando el pro eso
sea ontrolado digitalmente. Veremos que la ele i on del tiempo de
muestreo es a onvenien ia del algoritmo empleado.

Gra ar las respuestas del pro eso ontinuo y del pro eso dis retizado
uando las sen~ales de entrada son del tipo es alon.

La solu i on a ada problema se presenta en ar hivos m ( on extension m),


los uales pueden ser eje utados en el ambiente de trabajo de MATLAB.
Las respuestas al es alon se muestran en las guras orrespondientes.

Problema 3.1

La gura 3.12 muestra el diagrama de uerpo libre del sistema de suspen-


sion de la rueda de un bus (normalmente un bus posee uatro de tales
sistemas), donde m1 = 2500 kg es la masa que soporta el sistema de sus-
pension, m2 = 320 kg es la masa del sistema de suspensi on, k1 = 80000
N/m es la onstante del resorte de suspension, k 2 = 500000 N/m es la ons-
tante del resorte del aro m as la rueda, b1 = 350 N-s/m es la onstante de
amortiguamiento de la suspension y b 2 = 15020 N-s/m es la onstante de
amortiguamiento del aro m as la rueda. Este modelo se en uentra en el sitio
www.engin.umi h.edu/group/ tm/index.html.
Un buen sistema de suspensi on debe tratar de eliminar en el tiempo
mas orto posible las os ila iones produ idas por protuberan ias, desniveles
y hue os en la pista. Teniendo en uenta que la distan ia x2 w (la de-
forma ion de la rueda) es despre iable, enton es podemos usar la distan ia
x1 x2 omo la salida de nuestro pro eso, dado que la distan ia x1 w es
dif il de medir. El disturbio w puede modelarse omo un es al on. Di ho
disturbio puede ser provo ado, por ejemplo, uando el bus est saliendo de
un desnivel pronun iado de orta longitud. Las e ua iones del movimiento
que gobiernan el sistema de suspensi on son:

m1 x•1 = b1 (x_1 x_2 ) k1 (x1 x2 ) + u

m2 x•2 = b1 (x_1 x_2 ) + k1 (x1 x2 ) + b2 (w_ x_2 ) + k2 (w x2 )


3.4 Problemas Resueltos 93

Masa de 1/4
x1 del bus m1

k1 u b1

x2 Masa de la m2
suspension

k2 b2
w

Figura 3.12: Sistema de suspensi on de la rueda de un bus.

Se puede demostrar que las e ua iones de estado y de salida del pro eso son:

2 3 2
x_1 0 1 0 0
32 3 2 x1 01 3 2 3
64 75 664
x•1
=
a21 0 a23 b1
7 x_1
+ u+ a0b21 w

5746 75 46
0 a33 1
y_1

y_2
m
k2
2
b2
m
2
0 a43
m1

0
y1
1
m1
0
1
75 64 75m
k2
2
2

m1 m2 m
y2 + 2

26 37 x1

y= 0 0 1 0
4 5 x_1 + 0 0 u
y1 w
y2
donde:

y 2=
Z k1 k1
y1 = x 1
k2
x2
1 1
+ y 1 (w x ) +2 + u dt
m1 m2 m2 m1 m2
b1 b2 b1 b1 b1 b2 k 1
a21 = ; a23 = + +
m 1m 2 m1 m1 m2 m2 m1
b1 b1 b2 k1 k1 k2
a33 = + + ; a43 = + +
m1 m2 m2 m1 m2 m2
% P3_1P3.m SOLUCION AL PROBLEMA 3.1
lear all
94 Modelado de Pro esos

% 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℄;
% CONTROLABILIDAD Y OBSERVABILIDAD DEL PROCESO
rAB = rank( trb(A,B)); % rAB = 4 => COMPLETAMENTE CONTROLABLE
rAC = rank(obsv(A,C)); % rAC = 4 => COMPLETAMENTE OBSERVABLE
eigA = eig(A); % COMPUTA EIGENVALORES
% eigA(1) = -23.9758-35.1869i; eigA(2) = -23.9758 +35.1869i;
% eigA(3) = -0.1098 - 5.2504i; eigA(4) = -0.1098 + 5.2504i;
% CONVERSION AL ESPACIO DISCRETO
T = 0.1; % TIEMPO DE MUESTREO
[G,H,C,D℄ = 2dm(A,B,C,D,T,'zoh');
eigG = eig(G); % COMPUTA EIGENVALORES
% eigG(1) = 0.7386 + 0.2712i; eigG(2) = 0.7386 - 0.2712i;
% eigG(3) = 0.9975 + 0.0524i; eigG(4) = 0.9975 - 0.0524i;

% G =
% 0.9995 0.0100 -0.0010 0.0000
% -0.1306 0.9995 -0.1834 -0.0024
% 0.4271 0.0022 0.5513 0.0077
% 11.5437 0.0643 -14.1982 0.9221
%H=
% 0.0000 0.0005
% 0.0000 0.1306
% 0.0000 -0.4271
% 0.0000 -11.5437
% RESPUESTAS AL ESCALON
[Y,X,t℄ = step(A,B,C,D);
[YY,XX℄ = dstep(G,H,C,D);
tt = linspa e(0,size(YY,1)*T,size(YY,1));
subplot(221)
plot(t,Y(:,1)); grid
xlabel('Tiempo en segundos')
3.4 Problemas Resueltos 95

ylabel('y(t) para u=1, w=0')


subplot(223)
plot(t,Y(:,2)); grid
xlabel('Tiempo en segundos')
ylabel('y(t) para u=0, w=1')
subplot(222)
plot(tt,YY(:,1)); grid
xlabel('Tiempo en segundos')
ylabel('y(k) para u=1, w=0')
subplot(224)
plot(tt,YY(:,2)); grid
xlabel('Tiempo en segundos')
ylabel('y(k) para u=0, w=1')
print -deps -f P3_1P3

−5 −5
x 10 x 10
2.5 2.5

2 2
y(k) para u=1, w=0
y(t) para u=1, w=0

1.5 1.5

1 1

0.5 0.5

0 0
0 50 100 150 0 50 100 150
Tiempo en segundos Tiempo en segundos

1 1
y(k) para u=0, w=1
y(t) para u=0, w=1

0.5 0.5

0 0

−0.5 −0.5

−1 −1
0 50 100 150 0 50 100 150
Tiempo en segundos Tiempo en segundos

Figura 3.13: Respuestas al es alon para el sistema de suspensi on.


96 Modelado de Pro esos

Problema 3.2

La dinami a de un avi on puede ser des rita por varios onjuntos a oplados de
e ua iones diferen iales no lineales. Sin embargo, bajo iertas suposi iones,
tales e ua iones pueden ser desa opladas y linealizadas para obtener dos
onjuntos: las e ua iones longitudinales y las e ua iones laterales. El ontrol
de la in lina i on del avion mostrado en la gura 3.14 es un problema
longitudinal.
Empuje
x


Impulso 


e
x’
Arrastre

e
z
Peso
z’

Figura 3.14: Avion omer ial en pleno vuelo.

Asumiendo que el avi on est a en su velo idad de ru ero (altura y ve-


lo idad onstantes), enton es la resisten ia de arrastre y la fuerza impulsora
se an elan mientras que el empuje de eleva ion se iguala on el peso (ver
gura 3.14). Con tales onsidera iones, se puede asumir que las e ua iones
longitudinales del movimiento del avion (los datos orresponden a un avi on
omer ial Boeing) son:

_ = 0:313 + 56:7q + 0:232Æe


q_ = 0:0139 0:426q + 0:0203Æe
_ = 56:7q

donde es el angulo de ataque, q es la rela ion de in lina i on, es el angulo de


in lina i on y Æe es el angulo del de e tor de eleva i on. La fun ion de
transferen ia del pro eso es:
(s) 1:151s + 0:1774
= 3
Æe (s) s + 0:739ss + 0:921s
3.4 Problemas Resueltos 97

mientras que sus e ua iones de estado y de salida son:


24 53 24
_
q_ =
0:313 56:7 0 32 3 2
q +
0:232
0:0203
3
_
0:0139 0:426 0
54 5 4 5
Æe
0 56:7 0
24 53 0

= 0 0 1 q

El modelo des rito est a en www.engin.umi h.edu/group/ tm/index.html.


% P3_2P4.m SOLUCION AL PROBLEMA 3.2
lear all
% MODELO DEL AVION (DINAMICA LONGITUDINAL)
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℄;
% CONTROLABILIDAD Y OBSERVABILIDAD DEL PROCESO
rAB = rank( trb(A,B)); % rAB = 3 => COMPLETAMENTE CONTROLABLE
rAC = rank(obsv(A,C)); % rAC = 3 => COMPLETAMENTE OBSERVABLE
eigA = eig(A); % COMPUTA EIGENVALORES
% eigA(1) = 1; eigA(2) = -0.3695 + 0.8860i;
% eigA(3) = 0.9963 - 0.0088i;
% CONVERSION AL ESPACIO DISCRETO
T = 0.1; % TIEMPO DE MUESTREO
[G,H,C,D℄ = 2dm(A,B,C,D,T,'zoh');
eigG = eig(G); % COMPUTA EIGENVALORES
% eigG(1) = 0; eigG(2) = 0.9963 + 0.0088i;
% eigG(3) = 0.9963 - 0.0088i;

% G =
% 0.9968 0.5649 0
% -0.0001 0.9957 0
% 0.0000 0.5658 1.0000
% H =
% 0.0024
% 0.0002
% 0.0001
% RESPUESTAS AL ESCALON
[Y,X,t℄ = step(A,B,C,D);
[YY,XX℄ = dstep(G,H,C,D);
98 Modelado de Pro esos

tt = linspa e(0,size(YY,1)*T,size(YY,1));
subplot(211)
plot(t,Y); grid
xlabel('Tiempo en segundos')
ylabel('y(t) ontinua')
subplot(212)
plot(tt,YY); grid
xlabel('Tiempo en segundos')
ylabel('y(k) dis reta')
print -deps -f P3_2P4

6
y(t) continua

0
0 5 10 15 20 25 30
Tiempo en segundos

4
y(k) discreta

0
0 5 10 15 20 25
Tiempo en segundos

Figura 3.15: Respuestas al es alon para el angulo de in lina ion del avion
omer ial en vuelo.

Problema 3.3

La bola mostrada en la gura 3.16 puede rodar a lo largo de la barra on un


grado de libertad. Una leva one ta la barra on un engranaje que estaa
ionado por un servomotor. Se desea disen ~ar un sistema de ontrol que
pueda mantener la bola sobre la barra. Asumir que la bola rueda libre de
fri ion. Los par ametros del pro eso son: masa de la bola M = 0.11 kg,
radio de la bola R = 0.015 m, distan ia del extremo de la leva al entro del
engranaje d = 0.03 m, a elera ion de la gravedad g = 9.8 m/s2, longitud de
3.4 Problemas Resueltos 99

la barra L= 1.0 m e iner ia de la barra J = 9.99 10 6 kg-m2. Las variables


del pro eso son: posi ion de la barra r, oordenada angular de la barra
y posi i on angular del engranaje . Este modelo se en uentra en el sitio
www.engin.umi h.edu/group/ tm/index.html.

r
L BARRA
ESFERA
LEVA


ENGRANAJE
d

Figura 3.16: Bola balan eandose sobre una barra.

La e ua i on din ami a que des ribe el pro eso es:


J
0= +M r•M gsen Mr _ 2
R2
Cuando es pequen
~o, sen ............................................................................................................................. Luego:
J
0= + M r•M g Mr _ 2
R2
Por tanto, la e ua ion que rela iona on puede aproximarse mediante la
siguiente rela ion lineal:
d
=
L
La fun i on de transferen ia del pro eso resulta:
r(s) M gd 1
=
(s) L J +M s 2
R2

y la e ua ion de estado del pro eso viene a ser:

r_
=
0 1 r " 0 # r_
r• 0 0 + Mgd
J
L R2
+M
100 Modelado de Pro esos

Sin embargo, usaremos uatro estados, pues en lugar de ontrolar la posi ion
a traves de , lo haremos a traves de •, lo que en esen ia signi a que
queremos ontrolar el torque de la barra. Las e ua iones de estado y de

2
salida para esta situa i on son:

2 3r_ 0 1
0 0 Mgd
0 0 32 3 2 3
6 75 6
r•
= J
0 76 57 6 57
r_ r
+
00
u

4 _


0 0
0 0
L R2
+M
0
0
1
0
4 4 _ 1
0

2 3
r

y= 1 0 0 0 6 75
r_

_
4
El modelo des rito est a en www.engin.umi h.edu/group/ tm/index.html.
% P3_3P5.m SOLUCION AL PROBLRMA 3.3
lear all
% MODELO DE LA BOLA SOBRE LA BARRA
M=0.11; R=0.015; d=0.03; g=9.8; L=1; J=9.99e-6;
A = [0 1 0 0
0 0 M*g/(L*J/R^2+L*M) 0
0 0 0 1
0 0 0 0℄;
B = [0;0;0;1℄;
C = [1 0 0 0℄; D = [0℄;
% CONTROLABILIDAD Y OBSERVABILIDAD DEL PROCESO
rAB = rank( trb(A,B)); % rAB = 4 => COMPLETAMENTE CONTROLABLE
rAC = rank(obsv(A,C)); % rAC = 4 => COMPLETAMENTE OBSERVABLE
eigA = eig(A); % COMPUTA EIGENVALORES
% eigA(1) = 0; eigA(2) = 0; eigA(3) = 0; eigA(4) = 0;

% CONVERSION AL ESPACIO DISCRETO


T = 0.1; % tiempo de muestreo
[G,H,C,D℄ = 2dm(A,B,C,D,T,'zoh');
eigG = eig(G); % COMPUTA EIGENVALORES
% eigG(1) = 1; eigG(2) = 1; eigG(3) = 1; eigG(4) = 1;

%G=
% 1.0000 0.1000 0.0010 0.0000
% 0 1.0000 0.0209 0.0010
3.4 Problemas Resueltos 101

% 0 0 1.0000 0.1000
% 0 0 0 1.0000
% H =
% 0.0000
% 0.0000
% 0.0050
% 0.1000

% RESPUESTAS AL ESCALON
TT=0:0.1:3;
[Y,X℄ = step(A,B,C,D,1,TT);
[YY,XX℄ = dstep(G,H,C,D,1,31);
subplot(211)
plot(TT,Y); grid
xlabel('Tiempo en segundos')
ylabel('y(t) ontinua')
subplot(212)
plot(TT,YY); grid
xlabel('Tiempo en segundos')
ylabel('y(k) dis reta')
print -deps -f P3_3P5

0.8

0.6
y(t) continua

0.4

0.2

0
0 0.5 1 1.5 2 2.5 3
Tiempo en segundos

0.8

0.6
y(k) discreta

0.4

0.2

0
0 0.5 1 1.5 2 2.5 3
Tiempo en segundos

Figura 3.17: Respuestas al es al on de la posi i on de la bola sobre la barra.


102 Modelado de Pro esos

Problema 3.4

La gura 3.18 muestra un horno de laboratorio para ontrolar temperaturas


on pre ision. El modelo de este pro eso se en uentra en la referen ia [15℄.
Asumiendo que existe buena mez la de aire aliente, el alor entregado al
horno se modela omo:
d V2 i o
( i o) =Q Q e; Q= ; Qe =
dt R r
donde i es la temperatura interior en K o en oC, o es la temperatura
exterior en K o en oC, Q es el ujo de alefa ion en J/s o watt, Q e es
el ujo de p erdida en J/s o watt, es la apa idad t ermi a en J/K, r es la
resisten ia t ermi a en K/watt, R es la resisten ia el e tri a en ohm y V es el
voltaje de alefa i on. Notar que podemos usar K o oC, pues las opera iones
derivada o diferen ia eliminan el valor 273 de: K = 273 + oC.

Calor perdido
Calentador electrico Qo
+
Calor entregado
Vc Qc Temperatura
exterior
Temperatura
_ interior o
i

Figura 3.18: Horno de laboratorio.

Si o se onsidera onstante, la dinami a del horno se des ribe omo:


d i +1 = 1 1
+ V 2
dt r i r o R
y uando al anza su estado esta ionario i:
i
r
= + V2
i o
R
La tabla 3.3 ontiene datos experimentales de la a da de temperatura uan-
do se apaga el horno. La tabla 3.4 tabula el voltaje de alentamiento versus
la temperatura interior en estado estable. Para ambas tablas la temperatura
exterior es de 30 o C.
3.4 Problemas Resueltos 103

Tabla 3.3: Datos de a da de temperatura.


Tiempo Temperatura (oC)
14:23:10 120.0
14:31:00 108.0
14:39:30 92.0
14:48:35 80.5
15:05:00 63.0
15:34:00 40.5

Tabla 3.4: Temperaturas del horno en estado estable.


Tiempo Temperatura (oC)
9.8 34.1
20.0 50.5
29.5 74.0
40.0 110.0

La urva exponen ial 120e t= obtenida on los datos de la tabla 3.3 permite
al ular su onstante de tiempo = r = 3000 s. La urva uadr ati a
obtenida on los datos de la tabla 3.4 permite obtener r=R = 5 10 2 . Por
onsiguiente, la dinami a del horno resulta:

d i 1 1 1
= i + 0 + V 2 = f ( i; ; Vo )
dt 3000 3000 60000
Para efe tos de linealiza i on podemos de nir las siguientes variables:

i = i i; o = o o; v=VV

Enton es, la e ua ion linealizada empleando el ja obiano para el punto de


opera ion i = 50 o C, e = 30 o C, V = 20 volt, resulta:

di f f f
= i + o + v
dt i i o o
V V

di 1 1 1
= i + o + v
dt 3000 3000 1500
104 Modelado de Pro esos

% P3_4P6.m SOLUCION AL PROBLEMA 3.4


lear all
% ECUACION DE ESTADO CONTINUA:
% dTeta(t)/dt = A*Teta(t) + B*v (t) + E*Teta_o
A = [-1/3000℄;
B = [1/3000℄; E = [1/1500℄;
C = [1℄; D = [0℄;
% CONTROLABILIDAD Y OBSERVABILIDAD DEL PROCESO
rAB = rank( trb(A,B)); % rAB = 1 => COMPLETAMENTE CONTROLABLE
rAC = rank(obsv(A,C)); % rAC = 1 => COMPLETAMENTE OBSERVABLE
eigA = eig(A); % COMPUTA EIGENVALORES
% eigA = A = -1/3000; % POR SER PROCESO DE PRIMER ORDEN
% CONVERSION AL ESPACIO DISCRETO
T = 10; % 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');
% ECUACION DE ESTADO DISCRETA:
% Teta(k+1) = G*Teta(k) + H*v (k) + F*Teta_o
eigG = eig(G); % COMPUTA EIGENVALORES
% eigG = G = 0.9967; % POR SER PROCESO DE PRIMER ORDEN
% G = 0.9967; H = 0.0067; F = 0.0333;
% 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
subplot(212)
ylabel('y(t) ontinua')
plot(tt,YY); grid
xlabel('Tiempo en segundos')
ylabel('y(k) dis reta')
print -deps -f P3_4P6

Problema 3.5

La gura 3.20 muestra un monorriel de dos arros. El modelo de este pro eso
se en uentra en la referen ia [15℄. Sean M1 la masa del arro de maquinas y
B1 sus fri iones debido al aire y al rodamiento. La fuerza lineal equivalente
para mover al pro eso se designa omo u(t). Los dos arros poseen masas
M2 y M3 respe tivamente, y est an sujetos a fri iones B2 y B3. Los arros
se a oplan uno al otro on dispositivos no r gidos (resortes) que poseen
3.4 Problemas Resueltos 105

1.5
y(t) continua

0.5

0
0 2000 4000 6000 8000 10000 12000 14000 16000
Tiempo en segundos

1.5
y(k) discreta

0.5

0
0 2000 4000 6000 8000 10000 12000
Tiempo en segundos

Figura 3.19: Respuesta al es alon de la temperatura interior del horno de


laboratorio.

onstantes K23 y K12, y dispositivos amortiguadores de onstantes B 23 y B12.


Las oordenadas de posi ion se designan omo x 1, x2 y x3. Se puede
demostrar que la e ua ion de estado del sistema on vi = x_i ; i = 1; 2; 3 es:

x_ = Ax + Bu(t)
donde:
26 0 1 0 0 0 0
3
A=
6
K12
M1
0
B
2 1
+B1

0
M1
K12
M1
0
B12
M1
1
0
0
0
0
77
K12 B12 K12+K23 B2 +B23 +B12 K23 B23

64 M2
00
M2
00 K
M2
023
M3
M2
0
B23
M2
0
K23
M2
1
B3 +B2
57
M3 M3 3
x = [x1 v1 x2 v2 x3 v 3 ℄T M3

B = [0 1 0 0 0 0℄T
106 Modelado de Pro esos

x1
x2
x3
B 23 B 12
2do. CARRO 1er. CARRO MAQUINA
M3 M2 M1
K 23 K 12

B3 B2 B1

Figura 3.20: Pro eso monorriel de dos arros mas un arro de m aquinas.

Si ubi amos ta ometros en una rueda de ada arro, enton es la e ua ion


3 2
de salida toma la forma:
2 5 4
y1 0 0 0 0 0
53
4 y2
y3
= 0 0 0 0
0 0 0 0 0
0 x

yi = i vi ; i = 1; 2; 3
donde i es la onstante ta om etri a. Asumir los siguientes valores para
los parametros: M2 = M3 = 2M1 = 2600 kg, K23 = K23 = 100000 N/m,
B23 = B12 = 500 N-s/m y B2 = B3 = 2B1 = 10000 N-s/m.
% P3_5P7.m SOLUCION AL PROBLEMA 3.5
lear all
% MODELO DEL MONORRIEL
M2=2600; M3=M2; M1=1300; K23=100000; K12=K23; alfa=1;
B23=500; B12=B23; B2=10000; B3=B2; B1=5000;
A = [0 1 0 0 0 0
-K12/M1 -(B1+B12)/M1 K12/M1 B12/M1 0 0
0 0 0 1 0 0
K12/M2 B12/M2 -(K12+K23)/M2 -(B2+B23+B12)/M2 K23/M2 B23/M2
0 0 0 00 1
0 0 K23/M3 B23/M3 -K23/M3 -(B3+B23)/M3℄;
B = [0;1;0;0;0;0℄;
C = [0 alfa 0 0 0 0
0 0 0 alfa 0 0
0 0 0 0 0 alfa℄; D = [0;0;0℄;
3.4 Problemas Resueltos 107

% CONTROLABILIDAD Y OBSERVABILIDAD DEL PROCESO


rAB = rank( trb(A,B)); % rAB = 6 => COMPLETAMENTE CONTROLABLE
rAC = rank(obsv(A,C)); % rAC = 5 => NO ES COMPLETAMENTE OBSERVABLE
eigA = eig(A); % COMPUTA EIGENVALORES
% eigA =
% -2.2710 +11.5757i
% -2.2710 -11.5757i
% -2.0560 + 6.9947i
% -2.0560 - 6.9947i
% 0.0000
% -3.8462
% CONVERSION AL ESPACIO DISCRETO
T = 0.1; % TIEMPO DE MUESTREO
[G,H,C,D℄ = 2dm(A,B,C,D,T,'zoh');
rGC = rank(obsv(G,C)); % rGC = 6 => COMPLETAMENTE OBSERVABLE
eigG = eig(G); % COMPUTA EIGENVALORES
% eigG =
% 0.3200 + 0.7298i
% 0.3200 - 0.7298i
% 0.6230 + 0.5242i
% 0.6230 - 0.5242i
% 1.0000
% 0.6807
% 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('Salidas ontinuas')
subplot(212)
plot(TT,YY); grid
xlabel('Tiempo en segundos')
ylabel('Salidas dis retas')
print -deps -f P3_5P7

Problema 3.6

La gura 3.22(a) muestra el diagrama de bloques simpli ado del pro eso
as ensor, uyo modelo se en uentra en la referen ia [15℄. El problema a re-
solver es posi ionar el as ensor ade uadamente. El voltaje de armadura v(t)
lo suministra un ampli ador de poten ia on satura i on ( gura 3.22(b)),
108 Modelado de Pro esos

0.1

0.08

Salidas continuas
0.06

0.04

0.02

0
0 0.5 1 1.5 2 2.5 3
Tiempo en segundos

0.1

0.08
Salidas discretas

0.06

0.04

0.02

0
0 0.5 1 1.5 2 2.5 3
Tiempo en segundos

Figura 3.21: Respuestas al es al on de las velo idades del monorriel.

el ual no debe ex eder los 200 volt. Esto signi a una velo idad x 1 en
estado estable de:
0:001
x1 = (200) = 1 m=s
s + 0:2 s=0

Observar en la gura 3.22(d) que la velo idad y posi ion del elevador se
miden separadamente. Entre pisos, el ampli ador de poten ia se en uen-
tra en estado de satura i on, generando 200 volt, dependiendo de si el
as ensor est a subiendo o bajando. Cuando el as ensor se aproxima al piso
donde debe parar, la opera ion del ampli ador pasa a la zona lineal. En esta
situa ion debe a tuar un ontrolador para posi ionar suavemente al as-
ensor empleando las medi iones de velo idad y posi ion del as ensor. Tales
medi iones, as omo tambi en la medi ion del voltaje de armadura en la zona
de satura ion, estan disponibles para ada piso. La gura 3.22(d) muestra el
sistema de ontrol digital del as ensor. Las e ua iones de estado y de salida
del as ensor son:
2 3 2 x
x__ 12 0:2 0 0 0 32 3 2 3
xx12 100 3
64 75 6 1 0 0 0
76
54 57 64 75 +
4 x_3
x_4
=
2

5
0

0 0
2

5
0
x3
x4
0
0
3.4 Problemas Resueltos 109

y= 0 1 00 x

% P3_6P8.m SOLUCION AL PROBLEMA 3.6


lear all
% MODELO DEL ASCENSOR
A = [-0.2 0 0 0
1 0 0 0
2 0 -2 0
5 0 0 -5℄;
B = [1e-3;0;0;0℄;
C = [0 1 0 0℄; D = [0℄;
% CONTROLABILIDAD Y OBSERVABILIDAD DEL PROCESO
rAB = rank( trb(A,B)); % rAB = 4 => COMPLETAMENTE CONTROLABLE
rAC = rank(obsv(A,C)); % rAC = 2 => NO ES COMPLETAMENTE OBSERVABLE
eigA = eig(A); % COMPUTA EIGENVALORES
% eigA =
% -5.0000
% 0
% -2.0000
% -0.2000
% CONVERSION AL ESPACIO DISCRETO
T = 0.2; % TIEMPO DE MUESTREO
[G,H,C,D℄ = 2dm(A,B,C,D,T,'zoh');
rGC = rank(obsv(G,C)); % rGC = 2 => NO ES COMPLETAMENTE OBSERVABLE
eigG = eig(G); % COMPUTA EIGENVALORES
% eigG =
% 0.3679
% 1.0000
% 0.6703
% 0.9608

% G =
% 0.9608 0 0 0
% 0.1961 1.0000 0 0
% 0.3227 0 0.6703 0
% 0.6176 0 0 0.3679

% H = 1.0e-003 *
% 0.1961
% 0.0197
% 0.0347
% 0.0725
% RESPUESTAS AL ESCALON
110 Modelado de Pro esos

Voltaje de Voltaje de Velocidad del Posicion del


entrada armadura ascensor ascensor
v 0.001 1
u u v s + 0.2 x1 s x
2
Amplificador Motor actuador
de potencia mas tambor
con saturacion
2
x3 s + 2
5 Sensor de velocidad
x4 s + 5
Sensor de posicion (a)

v x1
200 0.005
3000
1

u t
-200 5 10 15

(b) (c)

Posicion del
x4 ascensor
u D/A con u v Actuador x
memoria mas 2
sensores x4
Computador Amplificador
digital
x3 Voltaje de sensor de
armadura velocidad
v
A/D

sensor de posicion x 3
(d)

Figura 3.22: Pro eso as ensor.


3.4 Problemas Resueltos 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

0.15
Salidas continuas

0.1

0.05

0
0 5 10 15 20 25 30
Tiempo en segundos

0.2
Salidas discretas

0.15

0.1

0.05

0
0 5 10 15 20 25 30 35 40 45
Tiempo en segundos

Figura 3.23: Respuestas al es al on de la posi ion del as ensor.

Problema 3.7

En la gura 3.24(a) se desea redu ir la humedad h del material a granel de la


tolva. La banda transportadora que se desplaza a una velo idad onstante
de v = 1 m/s, introdu e el material a un horno de se ado. El sensor de
humedad dete ta hr a una distan ia d = 10 m del horno y propor iona la sen
~al
de voltaje vr . El horno puede modelarse omo un pro eso de primer
112 Modelado de Pro esos

orden. La gura 3.24(b) muestra la F.T. del pro eso. El modelo del pro eso
en estudio se en uentra en la referen ia [10℄.

Tolva Controlador
Referencia
Sensor
Horno

d
v

v Deposito
(b)

u hs hr vr
1 10
e- d/v
s+1 s + 0.5
Horno Tiempo muerto Sensor

Figura 3.24: Sistema redu tor de humedad.

% P3_7P10.m SOLUCION AL PROBLEMA 3.7


lear all

% MODELO DEL REDUCTOR DE HUMEDAD


% (num(s)/den(s))*exp(-d/v);
d=10; v=1; Tm = d/v; % TIEMPO MUERTO
[numd,dend℄ = pade(Tm,3); % APROXIMACION DE ORDEN 3
% APROXIMO exp(-Tm*s) EMPLEANDO UNA F.T. DE ORDEN 3
num = onv([0 0 10℄,numd); den = onv(dend,[1 1.5 0.5℄);
[A,B,C,D℄ = tf2ss(num,den);
% CONTROLABILIDAD Y OBSERVABILIDAD DEL PROCESO
rAB = rank( trb(A,B)); % rAB = 5 => COMPLETAMENTE CONTROLABLE
rAC = rank(obsv(A,C)); % rAC = 5 => COMPLETAMENTE OBSERVABLE
% EIGENVALORES
eigA = eig(A);
% eigA:
% -1.0000; -0.3678+0.3509i; -0.3678-0.3509i; -0.5000; -0.4644
% CONVERSION AL ESPACIO DISCRETO
T = 0.1; % TIEMPO DE MUESTREO
[G,H,C,D℄ = 2dm(A,B,C,D,T,'zoh');
%G=
% 0.7510 -0.2604 -0.1435 -0.0421 -0.0052
3.4 Problemas Resueltos 113

% 0.0872 0.9865 -0.0075 -0.0022 -0.0003


% 0.0046 0.0995 0.9997 -0.0001 0.0000
% 0.0002 0.0050 0.1000 1.0000 0.0000
% 0.0000 0.0002 0.0050 0.1000 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: mo-
mento de iner ia del rotor J = 0.01 kg-m2=s2, onstante ele tromotriz
Ke = Kt = 0.01 N-m/A, resisten ia R = 12 ohm, resisten ia de armadura
RA R, ondensador C = 0.5 F, indu tan ia de armadura L = 0.5 H,
onstante torsional K! = 1.8 N-m/rad.
Las e ua iones que gobiernan la dinami a del pro eso ele trome ani o
mostrado en la gura 3.26 se des riben a ontinua i on. Subpro eso el e tri o:
1 vC dIM
IR = (v vC ); C = IR IM ; L = vC e
R dt dt
114 Modelado de Pro esos

20

15

Humedad continua
10

−5
0 2 4 6 8 10 12 14 16 18 20
Tiempo en segundos

20

15
Humedad discreta

10

−5
0 5 10 15 20 25
Tiempo en segundos

Figura 3.25: Respuestas al es alon de la humedad on tiempo muerto.

Motor:
T = K tI M ; e = K e! 1
Resorte torsional mas la iner ia J:
dT d!2
= K! (!1 ! 2); J =T
dt dt
Sele ionando omo variables de estado x 1 = vC , x2 = IM y x3 = !2, y
omo salida y = x3, la representa i on de estado del pro eso resulta:

x_ = Ax + Bu; y = Cx

2 1 1
3
A= 4 RCK!
LK! +KtKe
C
0 KeK!
0
LK! +KtKe
5
2 3RC
1
0 Kt
J
0

0
0
; B=
C= 0 0 1
4 5
El modelo del pro eso en estudio se en uentra en la referen ia [10℄.
3.4 Problemas Resueltos 115

IR R L IM
+ K 
+
v C e
-
- 2
T J
1

Figura 3.26: Sistema ele trome ani o.

% P3_8P11.m SOLUCION AL PROBLEMA 3.8


lear all
% MODELO DEL SISTEMA ELECTROMECANICO
J=0.01; Kt=0.01; Ke=Kt; R=12; RA=0; C=0.5; L=0.5; Kw=1.8;
A = [-1/(R*C) -1/C 0
Kw/(L*Kw+Kt*Ke) 0 0
0 Kt/J 0℄;
B = [1/(R*C);0;0℄;
C = [0 0 1℄; D = [0℄;
% CONTRLABILIDAD Y OBSERVABILIDAD DEL PROCESO
rAB = rank( trb(A,B)); % rAB = 3 => COMPLETAMENTE CONTROLABLE
rAC = rank(obsv(A,C)); % rAC = 3 => COMPLETAMENTE OBSERVABLE
eigA = eig(A); % COMPUTA EIGENVALORES
% eigA =
% 0
% -0.0833 + 1.9982i
% -0.0833 - 1.9982i
% G =
% 0.9638 -0.1970 0
% 0.1970 0.9802 0
% 0.0099 0.0993 1.0000
% H =
% 0.0164
% 0.0017
% 0.0001
% CONVERSION AL ESPACIO DISCRETO
T = 0.1; % TIEMPO DE MUESTREO
[G,H,C,D℄ = 2dm(A,B,C,D,T,'zoh');
rGC = rank(obsv(G,C)); % rGC = 2 => NO ES COMPLETAMENTE OBSERVABLE
eigG = eig(G); % COMPUTA EIGENVALORES
% eigG =
% 1.0000
116 Modelado de Pro esos

% 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


Para ada pro eso en estudio se pide:

Determinar el modelo matem ati o que des riba la dinami a del pro eso
(si no lo tuviera).

Determinar si el pro eso es ompletamente ontrolable y/o ompleta-


mente observable.

Cal ular los eigenvalores del pro eso, tanto en el dominio ontinuo
omo en el dominio dis reto.

Sele ionar un tiempo de muestreo y determinar el modelo del pro eso


en el espa io de estado dis reto. Tener en uenta que el tiempo de
muestreo sele ionado, no ne esariamente sera usado uando el pro eso
3.5 Problemas Propuestos 117

Voltaje en C (continuo)
4

0
0 5 10 15 20 25 30 35 40 45 50
Tiempo en segundos

5
Voltaje en C (discreto)

0
0 10 20 30 40 50 60
Tiempo en segundos

Figura 3.27: Respuestas al es al on del voltaje en el ondensador.

sea ontrolado digitalmente. Veremos que la ele i on del tiempo de


muestreo es a onvenien ia del algoritmo empleado.
Gra ar las respuestas del pro eso ontinuo y del pro eso dis retizado
uando las sen~ales de entrada (sen
~ales de referen ia o sen
~ ales disturbio)
son del tipo es al on.

Problema 3.9

Las e ua iones del modelo linealizado para ontrolar la posi i on angular del
an
~on ubi ado en la la torreta de un tanque mediante un a tuador hidrauli o
son las siguientes (ver gura 3.28):
_ = !
!_ = p + d
Km Km
p_ = mp q+ !+ d p
J J
q_ = K v L v q Kv K p Jp + K v u + dq; Lv = 1
donde es el angulo de la torreta, ! es la velo idad angular de la torreta, p
es la a elera ion angular produ ida por el a tuador hidrauli o, q es el des-
plazamiento de la servovalvula, Km = [8.46 106 , 1.96 106 ℄ (el primer valor
118 Modelado de Pro esos

orresponde al angulo de desplazamiento horizontal de la torreta, mientras


que el segundo valor, al angulo de eleva i on) es la ganan ia del servomotor,
J = [7900, 2070 lbf-ft-s2 ℄ es la iner ia de la torreta, m = [45.9, 17.3 rad/s℄
es la fre uen ia natural del motor, K v = [94.3, 94.3℄ es la ganan ia de la
servo v alvula, y K p = [6.33 10 6 , 3.86 10 5 ℄ es el oe iente de presion
diferen ial. Las antidades d , dp y dq representan disturbios que tambi en in
luyen los efe tos debido a las no linealidades que no fueron tomadas en
uenta en el modelo linealizado. Es u til saber que 1 lbf-ft-s2 = 1.355 kg-m2.
El modelo de este pro eso de en uentra en la referen ia [17℄.

Torreta del tanque

Angulo de

elevaci’on



Azimut: a’ngulo de
posicionamiento horizontal

Figura 3.28: Vistas lateral y horizontal de la torreta de un tanque.

Problema 3.10

Una olumna de destila i on es un pro eso omplejo que requiere una gran
antidad de variables (mas de 100) para des ribir su omportamiento en
forma muy aproximada. Sin embargo, ha iendo las simpli a iones del aso
(tales omo redu ion del nu mero de variables y linealiza ion de los puntos
de opera ion) se puede llegar a un modelo redu ido que pueda ser empleado
para el ontrol del pro eso. Ese es el aso de una olumna de extra ion
3.5 Problemas Propuestos 119

para la separa i on del isopropanol de una mez la on ontenido de agua,


empleando gly ol omo un extra tante (ver gura 3.29).

Extractante

(glycol)

Agua
T S: flujo lateral T1
Mezcla de 1
de vapor
agua e iso-
propanol z
1 Propanol
Glycol T
T 2
2
z2
u 1 : vapor de
calentamiento
Producto (glycol) Concentraciones Temperaturas

Figura 3.29: Columna de destila ion on los per les de on entra i on 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:

x=
62 Q1
37; u= T1
64 V1
z1 75 u1
S
; d=
xF A1
FA
; y=
T2
z2
2 a11 00 0 b11 3 2 0 3
A=
46 a21
0
a22
0 0
a32 0
0 ; B=
0
0 57 64 b32
0
75
2 0 a42) 0
0 3 0
b42)

6
0
0
0
0 77
F=
f31 f32 ;
0 f42
50 0
C = 0 0 013 24
0
120 Modelado de Pro esos

on a11 = 30:3, a21 = 0:12 10 3, a22 = 6:02, a32 = 3:77, a42 = 2:8,
b11 = 6:15 105, b32 = 3:04, b42 = 0:052, f31 = 62:2, f32 = 5:76, f42 = 5:12,
13 = 7:3 y 24 = 25. Las variables poseen el siguiente signi ado (ver
gura 3.29): Q1 es el ujo de alor produ ido por el aldero de vapor, V1
es el ujo de vapor produ ido por el aldero de vapor, u1es el vapor de
alefa ion, S es el ujo de vapor lateral, z1 es la posi i on del ambio
de interfase entre el agua y el isopropanol, z2 es la posi i on del ambio de
interfase entre el agua y el gly ol, T 1 y T2 son los ambios de temperatura
en z1 y z2, FA es el ujo de la mez la de agua mas isopropanol, y x F A1 es
la omposi ion de la mez la de agua m as isopropanol. Notar que todas las
variables son residuales; es de ir, representan los ambios on respe to al
estado de equilibrio. El modelo de este pro eso de en uentra en la referen ia
[17℄.

Problema 3.11

La gura 3.30 muestra el pro eso servomotor on arga no lineal des rito en
la se i on 3.2. Notar ahora que el eje de salida del me anismo de redu i on
est a sujeto a la arga no lineal mediante una junta exible que puede ser
modelada omo un resorte rota ional de onstante K!=0.5 N/m/s. Consi-
derar dos asos: (a) uando la indu tan ia de armadura es despre iable, y
(b) uando no lo es.

Mo
R m Ro
+ 
u Va eb Lo
m
- K
Jm
L Bm 
 BL JL

Figura 3.30: Servomotor unido a la arga no lineal mediante un a oplamiento


exible.

Problema 3.12

La gura 3.31 muestra el pro eso servomotor on arga no lineal des rito en
la se i on 3.3, en donde la arga no lineal posee ahora dos grados de libertad.
3.5 Problemas Propuestos 121

La union de la arga on el eje del servomotor no es exible. Asumir que


Lo = 2L1=3. Considerar dos asos: (a) uando la indu tan ia de armadura
es despre iable, y (b) uando no lo es.

Mo Ro
L 
m 
 Unio’ n
R m no
+  flexible 
Lo 
u Va eb
m
-
Jm
L Bm 
 BL JL


Figura 3.31: Servomotor on arga no lineal de dos grados de libertad. El
a oplamiento de la arga al eje del motor no es exible.

Problema 3.13

La gura 3.32 muestra el pro eso p endulo doble no lineal. Las e ua iones
que des riben la din ami a del pro eso p endulo simple fueron dedu idas en la
se i on 3.1. Para dedu ir el modelo matem ati o del pro eso p endulo doble
onviene emplear las e ua iones de Lagrange de la me ani a lasi a. El
a oplamiento entre los dos p endulos no es exible. Los dos p endulos poseen
la misma longitud y la masa esf eri a es de 0.02 kg.

Problema 3.14

La gura 3.33 muestra el pro eso doble gru a-puente no lineal. Las e ua iones
que des riben la din ami a del pro eso gru a-puente fueron dedu idas en la
se i on 3.2. Para dedu ir el modelo matemati o del pro eso doble gru a-
puente onviene emplear las e ua iones de Lagrange de la me ani a l asi a.
El a oplamiento entre las dos se iones de la varilla no es exible. Las dos
varillas poseen la misma longitud y la masa esferi a adi ional es de 0.02 kg.
122 Modelado de Pro esos

+ Fuerza de
u control
- 
Servomotor
D.C. y

z F

Carro

Figura 3.32: Pro eso p endulo doble no lineal.

+ Fuerza de
u control
-
Servomotor
D.C. y

z F

Carro


z
Doble
y’
 gru’ a puente

Figura 3.33: Pro eso doble grua-puente.


Cap tulo 4

Control Optimo

Este ap tulo desarrolla un pro edimiento para disen~ar sistemas de ontrol optimo
esta ionarios y no esta ionarios, usando una ley de ontrol optima uadrati a que
emplea las sen ~ales del pro eso medidas dire tamente o estimadas mediante un
observador optimo. Las on gura iones usadas para el disen~o son el regu-
lador optimo propor ional y el regulador optimo propor ional integral. La ultima
on gura i on an ~ade un integrador al ontrolador on el prop osito de redu ir el
error en estado estable. El pro edimiento de disen~o desarrollado, puede ser
apli ado tanto a sistemas univariables omo a sistemas multivariables.
Dos apli a iones validan el pro edimiento de disen~o desarrollado: ontrol
optimo de los pro esos p endulo invertido y gru a puente. La penu ltima se i on,
problemas resueltos, est a dedi ada al disen~o de sistemas de ontrol optimo
esta ionarios para diferentes pro esos. La ultima se ion propone problemas de
disen
~o a resolver. Todos los ar hivos orrespondientes a los ejer i ios, proble-
mas, disen~os, simula iones y software desarrollados se pueden des argar del sitio
http:// ee.uni.edu.pe/728681F.

4.1 Introdu i on
El ontrol optimo trata de determinar el \mejor" sistema de ontrol emplean-
do una t e ni a optima de disen~o. Esta t e ni a asume la formula ion de una
fun ion matemati a denominada la fun i on de osto, tambi en ono ida omo
fun i on de rendimiento, ndi e de rendimiento o ndi e de fun ionamiento,
entre otras denomina iones. El pro edimiento de disen ~o del sistema de on-
trol optimo trata de en ontrar un extremo (un m nimo o un maximo, dado el
aso) de una fun ion de osto on el proposito de determinar los par ametros
124 Control Optimo

optimos de una ley de ontrol; de all el t ermino optimo. En la mayor a de


los asos, sin embargo, la bu squeda de la fun i on de osto involu ra pro e-
dimientos de error y orre i on; esto signi a que no siempre podemos estar
seguros a er a de la forma exa ta que deber a poseer la fun i on de osto.
Para sistemas de ontrol dis retos, la fun i on de osto generalmente
posee la forma siguiente:

J= X
N
L(x(k); r(k); u(k)) (4.1)
k=0

donde k es el tiempo dis reto, N es el tiempo dis reto nal, x(k) es el ve tor
de estado, r(k) es el ve tor de referen ia (entrada al sistema de ontrol) y
u(k) es el ve tor de ontrol optimo. Esta ley de ontrol (denominada tambi en
fuerza o sen
~ al de ontrol) onstituye la entrada al pro eso a ontrolar.
Para apli a iones pr a ti as, el ve tor de ontrol u debe estar siempre
a otado. Por ejemplo,
ju (k)j
i Ui (4.2)

donde ada elemento Ui es una onstante determinada (el sub ndi e denota
la omponente i del ve tor u). Para el aso de ontrol a otado on m nimo
gasto de energ a, se puede formular:

u2i (k) Mi (4.3)

en donde ada elemento Mi es una onstante dada. En ualquier aso, el


ve tor de ontrol u debe satisfa er iertas restri iones para poder ser un
ve tor de ontrol admisible.
En este ap tulo se desarrolla el pro edimiento de disen ~o de un sistema
de ontrol optimo uadr ati o dis reto, denominado as porque emplea una fun
ion de osto uadrati a de dominio dis reto. El resultado del disen ~o
propor iona una matriz de ganan ia que multipli ada por el ve tor de es-
tado (real o estimado) del pro eso, resulta en una ley de ontrol optima
uadrati a. El ve tor de estado estimado se determina usando un obser-
vador optimo.
Para demostrar la validez del pro edimiento de disen ~o, se presentan dos
apli a iones: disen
~o del sistema de ontrol optimo uadrati o para el pro eso
pendulo invertido y para el pro eso grua-puente.
4.2 Control Optimo
Cuadr ati o No Esta ionario 125

4.2 Control Optimo Cuadr ati o No Esta ionario


El problema del ontrol optimo uadr ati o dis reto no esta ionario onsiste
en en ontrar una ade uada ley de ontrol optima que sea apaz de trasladar
la din ami 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 i on de osto uadr ati 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 m as er ano al optimo). El ontrol optimo uadr ati o
dis reto se basa en la siguiente fun ion de osto:

1
J = xT (N )Sx(N ) +
X
1 N1
xT (k)Qx(k) + uT (k)Ru(k) (4.4)
2 2
k=0

donde x(k) es el ve tor de estado de dimension n y u(k) es el ve tor de


ontrol de dimensi on r. Mientras que la matriz hermitiana semide nida
positiva S (de dimension n n) pondera la importan ia del estado nal
x(N ), la matriz hermitiana semide nida positiva Q (de dimension n n)
pondera la importan ia del ve tor de estado x(k), y la matriz hermitiana
de nida positiva R (de dimension r r) pondera la importan ia de la sen ~al
de ontrol u(k). La de ni i on de matri es se trat en la subse i on 1.2.4. La
ley del ontrol optima a usar emplea la realimenta i on 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 dimensi on r n) es la matriz de ganan ia del ontrolador, de-


nominada tambi en matriz de realimenta ion de estados. Cuando la din ami 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
u ltima situa i on, 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, ser ne esario
veri ar di ha ondi i on en el pro eso antes de ini iar el pro edimiento de
disen~o.
La realimenta i on de estados requiere adem as 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, ser ne esario estimarlos. Esta esti-
ma ion puede ser realizada empleando la t e ni a de observa ion de estados
que ser a tratada en la se ion 4.6. El requerimiento en esta parte es que el
pro eso sea ompletamente observable.
La solu ion al problema de ontrol optimo uadr ati o puede obtenerse
empleando varios enfoques, tales omo el m etodo de minimiza i on usando
multipli adores de Lagrange o mediante el prin ipio de optimalidad [3℄,[4℄.
Asumamos que el pro eso puede ser modelado mediante la siguiente e ua ion
de estado dis reta:

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 i on 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 expresi on (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 i on al problema del ontrol optimo uadr ati o no esta ionario
est a dada por la siguiente matriz de ganan ia del ontrolador:
1
K(k) = [R + H T P (k + 1)H℄ H T P (k + 1)G (4.8)

donde P (k+1) es una matriz hermitiana de nida positiva de dimension n n.


Di ha matriz es solu i on de la siguiente e ua ion matri ial de Ri ati:
1
P (k) = Q+GT P (k +1)G GT P (k +1)H[R+H T P (k +1)H℄ H T P (k +1)G
(4.9)
La matriz P (K) de la e ua i on (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 i on 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
Cuadr ati o Esta ionario 127

K(N 1) (matriz de ganan ia en el tiempo k = N 1). Del mismo modo,


on P (N 1) podemos obtener K(N 2), y asi su esivamente hasta llegar a
obtener K(0). Las matri es de ganan ia K(k) (para k = N 1; N 2; : : : ; 0)
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 m nimo
de la fun ion de osto se determina de:
1 T
Jmin = x (0)P (0)x(0) (4.11)
2

4.3 Control Optimo Cuadr ati o Esta ionario


En la se i on anterior vimos que uando la din ami a del sistema de ontrol
evolu iona en un tiempo N nito, la ganan ia de realimenta i on de estados
K(k) es una matriz variante en el tiempo. Sin embargo, uando la din ami a
del sistema de ontrol evolu iona hasta un tiempo N in nito, la solu ion del
ontrol optimo uadrati o pasa a ser una solu i on de estado esta ionario.
En este aso, la ganan ia K(k) se onvierte en una matriz onstante K.
Para N in nito, el t ermino xT (N )Sx(N ) de la e ua i on (4.4) desapare e
1
debido a que x( ) = 0. Por onsiguiente, la fun i on de osto para el estado
esta ionario toma la forma:

J=
1
2
X
1
xT (k)Qx(k) + uT (k)Ru(k) (4.12)
k=0

Por otra parte, en el estado esta ionario la matriz P (k) resulta una matriz
onstante P . De este modo la e ua ion de Ri ati en estado esta ionario
toma la forma:
1
P = Q + GT P G GT P H[R + H T P H℄ HT P G (4.13)

mientras que la matriz de ganan ia K resulta:


1
K = [R + H T P H℄ HT P G (4.14)

u(k) = Kx(k) (4.15)


y la fun i on de osto m nima viene a ser:
1 T
Jmin = x (0)P x(0) (4.16)
2
128 Control Optimo

Una forma de obtener la matriz P de la e ua i on matri ial (4.13), es em-


pleando la e ua i on de Ri ati en estado no esta ionario dada en la e ua ion
(4.9), pero invirtiendo la dire ion del tiempo:
1
P (k + 1) = Q + GT P (k)G GT P (k)H[R + H T P (k)H℄ H T P (k)G (4.17)

La e ua ion (4.17) permite determinar una matriz P de magnitud onver-


gente 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 obte-
ner 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 i on (4.14), para luego
obtener la ley de ontrol dada por la e ua i on (4.15). El diagrama de blo-
ques 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 i on ara ter sti a:

det[zI G + HK℄ = 0 (4.18)

deben posi ionarse dentro del r ulo unitario. Tales ra es se denominan


tambi en valores propios, ra es ara ter sti as, eigenvalores o modos de fun-
ionamiento.

u(k) x (k)
H I z -1

-K

Figura 4.1: Sistema de ontrol optimo a lazo errado.

4.4 El Regulador Optimo Propor ional


El regulador es un sistema de ontrol realimentado, en donde la salida on-
trolada sigue a una sen~al de referen ia r(k) = (k) onstante, donde (k)
4.4 El Regulador Optimo Propor ional 129

es la fun ion es al on. Restringiremos nuestro tratamiento a sistemas uni-


variables. 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 usi on.
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 reali-
menta i on de estados de la forma u = Kx.
x (k)
r(k) + u(k) y(k) = x 2 (k)
k2 x (k+1) = Gx (k) + Hu(k) . C
+ .
- -
- - k1

k3

.
kn

Figura 4.2: Esquema del regulador optimo propor ional.

Para una salida arbitraria, por ejemplo x 2:

u(k) = k1x1(k) k 3x3(k) knxn(k) + k2r(k) k2x2(k)


= Kx(k) + k2r(k) (4.19)

Reemplazando u(k) en la e ua i on de estado del pro eso:

x(k + 1) = Gx(k) + Hu(k) = (G HK)x(k) + Hk 2r(k) (4.20)

Empleando la transformada Z en (4.20), la fun ion de transferen ia de pulso


on r(z) = R (z) resulta:
1 z
y(z) = C(zI G + HK) Hk R (z); (z) = (4.21)
2
z 1

Apli ando la propiedad del valor nal (subse ion 2.3.2) a y(z) obtenemos:

z 1
lim y(k) = lim y(z) = C(I G + HK) 1 Hk 2R (4.22)
k!1 z !1 z
130 Control Optimo

La ondi ion para que y = R es que C(I G + HK) 1 Hk 1 = 1, que no siempre se


umple. Por ello, es ne esario afe tar a la sen
~al de referen ia por una ganan
ia g de modo que:
1
gC(I G + HK) Hk 2 R = 1 (4.23)

Este pro edimiento ser a validado on los ejemplos 4.1 y 4.2.

4.5 Sele i on de las Matri es de Pondera i on


La fun ion de osto para determinar la ganan ia K del ontrolador optimo
esta ionario est dada en la e ua i on (4.12):

J=
1
2
X
1
xT (k)Qx(k) + uT (k)Ru(k)
k=0

donde observamos que la matriz hermitiana R pondera la sen ~ al de on-


trol 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 sim etri 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 de nida positiva si las ra es de su e ua
j j
ion ara ter sti a zI R = 0 son todas positivas, mientras que una
matriz uadrada Q es semide nida positiva si las ra es de su e ua i on ar- a ter
j j
sti a zI Q = 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 r1 0 : : : 0 3
R= 66 0 r2
.
. 7
4
.
.
0 :::
..
.
rp
75
donde los elementos r 1, r2,. . . ,rp deben ser todos positivos para que R sea
una matriz simetri a de nida positiva. Para sistemas on una sola sen ~al de
entrada, R resulta un es alar de valor positivo.
4.5 Sele ion de las Matri es de Pondera ion 131

La matriz Q puede tomar tambi en una forma diagonal:


2 q1 0 ::: 0 3
Q= 66 0 q2
.
. 7
4
.
.
0 :::
..
.
qn
75
donde los elementos qi pueden ser positivos y algunos de ellos nulos para
que Q sea una matriz sim etri a semide nida positiva.
Cada elemento qi o ada elemento ri dar un peso orrespondiente a ada
variable de estado xi o a ada sen ~ al de ontrol ui , respe tivamente. El rite-
rio para es oger los pesos est a en rela ion on la importan ia que le demos a
ada variable o sen ~al en uestion. Para el aso del observador de estados,
las matri es de pondera ion Re y Qe deben ser elegidas de tal forma que
la respuesta del observador sea dos o tres ve es m as r apida (regla pra ti a)
en ompara i on on la respuesta del pro eso. Es de ir, la salida y(k) del
pro eso (ver gura 4.6) debe al anzar su estado esta ionario despu es que la
salida y^(k) del observador ya la haya al anzado. Generalmente para que esto
o urra, los elementos de Re deben ser bastante menores que los elementos
de Qe. Debemos tener en uenta que un mayor peso en una de las variables
o asiona una mejor respuesta on rela i on a tal variable, pero disminuye el
desempen ~o de las demas. Es enton es ne esario balan ear en forma ade-
uada los pesos, de manera tal que obtengamos un desempen ~o general del
sistema, que se a erque en lo posible al optimo y que evidentemente, umpla
las espe i a iones de disen ~o.

Ejemplo 4.1

El motor D.C. es un a tuador muy popular en los sistemas de ontrol porque


su movimiento rotatorio, mediante a oples ade uados en su eje, puede on-
vertirse fa ilmente en movimiento de trasla ion. Eso se apre ia en fajas
transportadoras o en brazos manipuladores. La gura 4.3 muestra el ir-
uito de armadura del motor a oplado a una arga. Los par ametros del
motor fueron determinados experimentalmente, resultando: momento de
iner ia del rotor J = 0.01 kg-m2=s2, oe iente de fri ion b = 0.1 N-s/m,
onstante ele tromotriz K = Ke = Kt= 0.01 N-m/A, resisten ia de armadu-
ra R = 1 ohm e indu tan ia de armadura L = 0.5 H.
Cabe anotar que el motor de este ejemplo no es el servomotor que estamos
usando para implementar los sistemas de ontrol de los pro esos des ritos en
132 Control Optimo

R L
+ T
+
.
V e=K J
- - 
b
I b

Figura 4.3: Pro eso motor D.C.

el ap tulo 3. La \diferen ia" entre un motor y un servomotor es subjetiva.


Generalmente se aso ia a los servomotores on sistemas de ontrol donde la
poten ia involu rada es pequen~a. Sin embargo, existen mu has ex ep iones.
Suponiendo que el rotor del motor y su eje son uerpos r gidos, la dinami a
que des ribe al pro eso motor D.C. es:
J • + b _ = KI
dI
L + RI = V K _
dt
donde V es la fuente de voltaje de entrada, es la posi ion angular del eje, I
es la orriente de armadura, T = KtI es el torque mot ori o y e = Ke _ es la
fuerza ontraele tromotriz. Disen ~ar el ontrolador optimo esta ionario que
estabili e la velo idad angular del eje del motor 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: Empleando la transformada de Lapla e, la fun i on de transfe-
ren ia del motor uando la salida es la posi i on, resulta:
K
=
V s[(J s + b)(Ls + R) + K 2 ℄
la ual posee omportamiento integral. Cuando la salida es la velo idad, la
fun ion de transferen ia es:
_ K
=
V (Js + b)(Ls + R) + K 2
en la que podemos observar que no posee omportamiento integral. Eligien-
do x1 = _ y x2 = I, las e ua iones de estado y de salida resultan:
b K x1 0
x_1
= J
K
J
R + 1 V
x_2 L L
x2 L
4.5 Sele ion de las Matri es de Pondera i on 133

x1
y = x1 = 1 0 + DV ; D = [0℄
x2
El programa ejem4 1.m resuelve el problema planteado y los resultados se
muestran en la gura 4.4.

% ejem4_1.m SOLUCION DEL EJEMPLO 4.1


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℄;
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 => . y ....o.
[yRpta,xr℄ = step(A,B,C ,D ); % RESPUESTA AL ESCALON
T = 0.05; % SELECCIONADO CON LA INFORMACION ANTERIOR
[G,H,C,D℄ = 2dm(A,B,C ,D ,T,'zoh'); % CONVERSION A DISCRETO
Q = [100 0;0 1℄; R = [0.1℄; % MATRICES DE PONDERACION
[K,P,E℄ = dlqr(G,H,Q,R); k1 = K(1); % GANANCIA OPTIMA K
g = 1/(C*inv(eye(2)-G+H*K)*H*k1); % CORRECCION DE r(k)
x = [0;0℄; N = 60; % CONDICION INICIAL
for k=1:N
r=1*g;
V(k) = -K*x + k1*r;
x = G*x + H*V(k);
y(k) = x(1);
end
% GRAFICOS
r = linspa e(0,T*N,size(yRpta,1));
subplot(3,1,1)
plot(r,yRpta); ylabel('yRpta (rad/s)'); grid;
t = linspa e(0,T*N,N);
subplot(3,1,2)
plot(t,y); ylabel('y (rad/s)'); grid;
subplot(3,1,3)
plot(t,V); ylabel('V (voltios)'); grid;
xlabel('Tiempo (s)')
print -deps -f ejem4_1
% CALCULO RECURSIVO DE LA MATRIZ Pr Y CALCULO DE Kr
T = 15; Pr = zeros(2,2);
for i=1:T
Pr = Q + G'*Pr*G - G'*Pr*H*inv(R+H'*Pr*H)*H'*Pr*G;
134 Control Optimo

end
Kr = inv(R + H'*P*H)*H'*P*G;
% SE CUMPLE QUE K=Kr Y P=Pr

0.1
yRpta (rad/s)

0.05

0
0 0.5 1 1.5 2 2.5 3

1.5
y (rad/s)

0.5

0
0 0.5 1 1.5 2 2.5 3

40
V (voltios)

20

0
0 0.5 1 1.5 2 2.5 3
Tiempo (s)

Figura 4.4: Respuesta yRpta (a lazo abierto) del motor D.C. a un es alon de
1 rad/s. La velo idad angular ontrolada es y; la sen
~al de ontrol es V .

Ejemplo 4.2
Determine el ontrolador optimo uadrati o esta ionario que estabili e la
posi ion angular del eje del motor (des rito en el ejemplo 4.1) a 1 rad, on
las espe i a iones siguientes: tiempo de estabiliza i on menor que 2 s, error
en estado estable menor al 1 % y sobreimpulso a la salida menor al 5 %.
Solu ion: Eligiendo x1 = _, x2 = I y x3 = , las e ua iones de estado y de
salida resultan:
2 3 2 x_1 J J
32 3 2 3 x1 0
4 54 x_2 = K
b K
R
L
54
0
x2 + V
L
545 x 1
L

42 35
3 1 0 0 3 0

y = x3 = 0 0 1 xx12 + DV ; D = [0℄
x3
4.5 Sele ion de las Matri es de Pondera i on 135

El programa ejem4 2.m resuelve el problema planteado y los resultados se


muestran en la gura 4.5.

% ejem4_2.m SOLUCION DEL EJEMPLO 4.2


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℄;
% VERIFICAR CONTROLABILIDAD Y OBSERVABILIDAD
M = [B A*B A^2*B℄; N = [C ' A'*C ' A'^2*C '℄;
% rank(M) = rank(N) = n = 3 => . y .... o.
T = 0.05; % SELECCIONADO EN EL EJEMPLO 4.1
[G,H,C,D℄ = 2dm(A,B,C ,D ,T,'zoh'); % CONVERSION A DISCRETO
Q = [0.1 0 0;0 0.1 0;0 0 300℄; R = [0.1℄;
% MATRICES DE PONDERACION
[K,P,E℄ = dlqr(G,H,Q,R); k3 = K(3); % GANANCIA OPTIMA K
g = 1/(C*inv(eye(3)-G+H*K)*H*k3); % CORRECCION DE r(k)
% COMO g = 1 NO SE REQUIERE FACTOR DE CORRECCION
x = [0;0;0℄; N = 60; % CONDICION INICIAL
for k=1:N
r=1;
V(k) = -K*x + k3*r;
x = G*x + H*V(k);
y(k) = x(3);
end
% GRAFICOS
t = linspa e(0,T*N,N);
subplot(2,1,1)
plot(t,y); ylabel('y (rad)'); grid;
subplot(2,1,2)
plot(t,V); ylabel('V (voltios)'); grid;
xlabel('Tiempo (s)')
print -deps -f ejem4_2
% CALCULO RECURSIVO DE LA MATRIZ Pr Y CALCULO DE Kr
T = 20; Pr = zeros(3,3);
for i=1:T
Pr = Q + G'*Pr*G - G'*Pr*H*inv(R+H'*Pr*H)*H'*Pr*G;
end
Kr = inv(R + H'*P*H)*H'*P*G;
% SE CUMPLE QUE K=Kr Y P=Pr
136 Control Optimo

1.5

y (rad) 0.5

0
0 0.5 1 1.5 2 2.5 3

60

40
V (voltios)

20

−20
0 0.5 1 1.5 2 2.5 3
Tiempo (s)

Figura 4.5: Salida ontrolada y (posi ion angular) y sen


~al de ontrol V para
el motor D.C.

4.6 Disen
~ o del Observador Optimo Cuadrati o
En mu hos asos pr a ti os, s olo unas uantas variables del ve tor de estado
x(k) del pro eso son sus eptibles de ser medidas en forma dire ta. En tales
situa iones ne esitamos estimar di ho ve tor de estado; es de ir, requerimos
hallar un ve tor de estado estimado x ^ (k). Esto puede lograrse mediante el
empleo de un observador dis reto de estados. El disen~o de di ho observador
impli a determinar su matriz de ganan ia Ke, que puede ser al ulada a
partir de la minimiza ion de una fun i on de osto uadrati a. El diagrama
de bloques del observador de estados se representa en la gura 4.6, donde
podemos notar que el observador emplea las medi iones de la salida y(k) y
de la sen
~al de ontrol u(k).
De la gura 4.6 podemos formular:

x(k + 1) = Gx(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 f
^ (k) + H u(k) + Ke [y(k) Cx
^ (k)℄ g (4.26)
4.6 Disen
~ o del Observador Optimo Cuadrati o 137

u(k) + x (k) y (k)


H I z -1 C
+
G

Ke
+
+ ^x (k) - +
H I z -1 C
+
+
G

Figura 4.6: Diagrama de bloques del observador de estados

donde x ^ (k) es el ve tor de estado estimado de dimension n, y


^ (k) representa
el ve tor de salida estimado de dimensi on m, K e es la matriz de ganan ia
de realimenta ion del observador on dimensi on n m y C es la matriz de
salida de dimensi on m n. Reemplazando la e ua ion (4.25) en (4.26) y
restando la e ua ion resultante de (4.24), podemos obtener la e ua ion del
error del observador:

e(k + 1) = [G Ke C℄e(k); e(k) = x(k) x


^ (k) (4.27)

mientras que su e ua ion ara ter sti a toma la forma:

det[zI G + Ke C℄ = 0 (4.28)

en donde la matriz Ke debe ser es ogida apropiadamente para que el error


tienda a ero on una velo idad ade uada. Cabe men ionar tambi en que las
ra es de di ha e ua ion ara ter sti a deben posi ionarse dentro del r ulo
unitario para opera i on satisfa toria del observador.
El observador que nos o upa requiere que el pro eso sea ompletamente
observable; es de ir, que ualquier estado ini ial pueda determinarse a partir
de la observa i on de los ve tores de salida y de ontrol, en un nu mero nito
de per odos de muestreo. Ya es ono ido que el riterio para observabilidad
ompleta requiere onstruir la siguiente matriz de observabilidad:

N = [ CT GT CT (GT )n 1 C T ℄ (4.29)
138 Control Optimo

La ondi ion ne esaria y su iente para que el sistema sea ompletamente


observable es que la matriz N posea rango n (rango ompleto). Es de ir, el
rango de N debe ser igual al orden del pro eso.
Para al ular la matriz Ke podemos pro eder en la misma forma en que
lo hi imos on la matriz de ganan ia K del ontrolador; es de ir, podemos
utilizar las e ua iones que des riben al sistema de ontrol optimo, onvenien-
temente modi adas, para que nos permitan al ular Ke. El pro edimiento
es omo sigue. Dado que el determinante de una matriz y el de su transpues-
ta son iguales, podemos modi ar la forma de la e ua ion (4.28) omo sigue:

det[zI G + Ke C℄ = det[(zI G + Ke C)T ℄ = det[zI GT + C T K T ℄e (4.30)

Comparando la e ua i on ara ter sti a del ontrolador de estados (4.18) on


la e ua ion (4.30), podemos dedu ir que se tienen que ha er las siguientes
modi a iones:

G !G T
; H !C T
; K !K e T
(4.31)

Empleando tales modi a iones en las estru turas de la e ua ion de estado


del pro eso x(k+1) = Gx(k)+Hu(k), de su e ua ion de salida y(k) = Cx(k)
y de su ley de ontrol u(k) = Kx(k), obtendremos la siguiente e ua ion
de estado:
(k + 1) = GT (k) + C T (k) (4.32)
on una ley de ontrol que posee la forma siguiente:

(k) = K Te (k) (4.33)

Empleando las e ua iones (4.32) y (4.33) en la fun i on de osto siguiente:

J =
2
X
11 T
(k)Qe (k) + T
(k)Re (k) (4.34)
k=0

enton es la orrespondiente e ua i on de Ri ati toma la forma:


1
Pe = Qe + GPeGT GPeCT [Re + CP e CT ℄ CPeGT (4.35)

y la matriz de ganan ia K e viene dada por:


1
Ke = [Re + CP e CT ℄ CPe GT (4.36)
4.7 El Regulador Optimo Propor ional Integral 139

Para determinar Pe a partir de la e ua ion (4.35), empleamos el mismo


pro edimiento que para determinar P (se ion 4.3). Es de ir, para al ular
Pe, utilizaremos la siguiente e ua i on re ursiva:
Pe(k + 1) = Qe + GPe(k)GT GPe(k)CT [Re + CPe(k)CT ℄ 1CPe(k)GT
(4.37)

Ejemplo 4.3

Disen
~ar un observador optimo para el pro eso motor D.C. del ejemplo 4.2
asumiendo que se requiere observar los estados x 1, x2 y x3.
Solu i on: Ver programa ejem4 3.m. En la gura 4.3 se muestra la evolu-
i on de los valores de algunos elementos de P e hasta al anzar el estado de
equilibrio.
% ejem4_3.m OBSERVADOR OPTIMO PARA EL MOTOR D.C.
lear all
J = 0.01; b = 0.1; K = 0.01; R = 1; L = 0.5;
A = [-b/J K/J 0
-K/L -R/L 0
1 0 0℄;
B = [0;1/L;0℄;
C = [0 0 1℄; D = [0℄;
T = 0.05; % SELECCIONADO EN EL EJEMPLO 4.1
[G,H,C,D℄ = 2dm(A,B,C ,D ,T,'zoh'); % CONVERSION A DISCRETO
Pe =zeros(3,3); % ondi ion ini ial
Qe = [1 0 0;0 1 0;0 0 1℄; Re = [1℄; % TODOS CON IGUAL PESO
for k=1:40
Pe = Qe + G*Pe*G' - G*Pe*C'*inv(Re + C*Pe*C')*C*Pe*G';
pe11(k) = Pe(1,1); pe21(k) = Pe(2,1); pe31(k) = Pe(3,1);
end
t = linspa e(0,length(pe11),length(pe11)); % EJE DE TIEMPOS
plot(t,pe11,t,pe21,'--',t,pe31,'-.');
xlabel('Muestras k');
ylabel('Algunos elementos de Pe'); grid
print -deps -f ejem4_3
Ke = inv(Re + C*Pe*C')*C*Pe*G'; % GANANCIA DEL OBSERVADOR

4.7 El Regulador Optimo Propor ional Integral


Generalmente es ne esario an ~adir a ion integral, al regulador propor ional
visto en la se i on anterior, debido a que errores de estado permanente
140 Control Optimo

1.8

1.6

1.4

1.2
Algunos elementos de Pe

0.8

0.6

0.4

0.2

0
0 5 10 15 20 25 30 35 40
Muestras k

Figura 4.7: Algunos elementos de P e: 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 par ametros del pro eso o su estru tura (su e ua ion
de estado) no han sido estimados on su iente exa titud. Para pro esos
que no poseen propiedades integradoras, la in lusi on de a i on integral en el
sistema de ontrol permite obtener un error esta ionario nulo. La gura 4.8
ilustra un regulador optimo (propuesto en [3℄) para sistemas univariables,
que in luye di ha a ion integral en el sistema de ontrol: un integrador on
sen
~al de salida v(k) y una ganan ia integral KI aso iada. Siendo la sen
~al de
r(k) v(k) u (k) x (k) y (k)
KI H I z-1 C
+ + +
- - +
I z-1 G

Figura 4.8: El regulador propor ional integral.

referen ia r(k) un es alon unitario, de la gura 4.8 podemos dedu ir que las
4.7 El Regulador O ptimo Propor ional Integral 141

e ua iones de estado y de salida del pro eso son:

x(k + 1) = Gx(k) + Hu(k) (4.38)


y(k) = Cx(k) (4.39)

La sen
~ al de ontrol u(k) viene dada por:

u(k) = Kx(k) + KI v(k) (4.40)

donde la matriz de ganan ia del ontrolador es:

K= K1 K2 Kn (4.41)

La e ua i on para el integrador resulta:

v(k) = v(k 1) + r(k) y(k) (4.42)

de donde se obtiene:

v(k + 1) = v(k) + r(k + 1) y(k + 1)


= v(k) + r(k + 1) C[Gx(k) + Hu(k)℄
= (1 CHK I )v(k) + ( CG + CHK)x(k) + r(k + 1)(4.43)

Empleando las e ua iones (4.38) y (4.40) obtenemos:

x(k + 1) = Gx(k) + H[ Kx(k) + KI v(k)℄


= (G HK)x(k) + HK I v(k) (4.44)

y de las e ua iones (4.43) y (4.44) y (4.39) dedu imos:

x(k + 1) G HK HK I x(k) 0
= + r(k + 1)
v(k + 1) CG + CHK 1 CHK I v(k) 1
(4.45)
x(k)
y(k) = C 0 (4.46)
v(k)
En el estado de equilibrio (para k !1
), los valores de x(k), u(k) y v(k)
1 1 1
toman valores esta ionarios x( ), u( ) y v( ). As la e ua i on (4.45) se
onvierte en:
1
x( ) G HK HK I 1
x( ) 0
= + (4.47)
v(1) CG + CHK 1 CHK I v(1) r
142 Control Optimo

Si de nimos:
x(k) 1
x( ) = xe(k) (4.48)
v(k) v(1) = v (k)e (4.49)
y restamos ahora la e ua ion (4.47) de (4.45), y luego usando las rela iones
(4.48) y (4.49) obtendremos:

xe(k + 1) G HK HK I xe(k)
=
ve(k + 1) CG + CHK 1 CHK I ve(k)
G 0 xe(k) H xe(k)
= + K KI (4.50)
CG I ve(k) CH ve(k)

La e ua i on (4.50) puede ser es rita omo:

~ (k) + H
(k + 1) = G ~ w(k) (4.51)

w(k) = ~ (k)
K (4.52)
donde:
xe(k)
(k) = (4.53)
ve(k)
~ (k) = G 0
G (4.54)
CG I
~ (k) = H
H (4.55)
CH
~ (k) =
K K KI (4.56)
Observar que la in lusion de un integrador en el sistema de ontrol aumenta
en uno el orden del sistema; es de ir, si n es el orden del sistema original, el
nuevo orden del sistema on un integrador es (n + 1). En otras palabras, el ve
tor de estado x(k) del sistema original posee dimensi on n, mientras que el
ve tor de estado (k) del regulador propor ional integral posee dimensi on (n
+ 1).
Teniendo en mente las rela iones anteriores, podemos de nir la siguiente
fun ion de osto:

J=
11Xh ~ (k) + w 2(k)R
(k) Q ~T
i (4.57)
2
k=0
4.7 El Regulador O ptimo Propor ional Integral 143

Debemos enton es al ular una matriz K ~ ade uada de forma tal que mini-
mi e la fun i on de osto dada en la e ua ion (4.57). Empleando el mismo
pro edimiento usado en la se ion 4.3, es posible formular la e ua ion de Ri
ati y la e ua ion de ganan ia del ontrolador K ~ para el regulador, omo
sigue:
P~ = Q
~+G ~ T P~ G
~ G
~ T P~ H
~ [R~+H~ T P~ H
~ ℄ 1H
~ T P~ G
~ (4.58)
~ = [R
K ~+H
~ T P~ H
~℄ 1 ~ T P~ G
H ~ (4.59)
La sele ion del tiempo de muestreo se trata en la subse ion 4.9.6.

Ejemplo 4.4

Disen~ar el regulador propor ional integral optimo esta ionario que sea apaz
de estabilizar la velo idad angular del eje del motor (des rito en el ejemplo
4.1) a 1 rad/s, on las espe i a iones siguientes: tiempo de estabiliza ion
menor que 2 s, error en estado estable menor al 1 % y sobreimpulso de la
salida menor al 5 %.
Solu ion: El programa ejem4 4.m resuelve el problema y sus resultados se
muestran en la gura 4.9.
% ejem4_4.m SOLUCION DEL EJEMPLO 4.4
lear all
J = 0.01; b = 0.1; K = 0.01; R = 1; L = 0.5;
A = [-b/J K/J
-K/L -R/L℄; % orden n=3
B = [0;1/L℄;
C = [1 0℄; D = [0℄;
% VERIFICAR CONTROLABILIDAD Y OBSERVABILIDAD
M = [B A*B℄; N = [C ' A'*C '℄; % rank(M) = rank(N) = n = 2
% LUEGO EL SISTEMA ES COMPLETAMENTE CONTROLABLE Y OBSERVABLE
T = 0.05; % SELECCIONADO EN EL EJEMPLO 4.1
[G,H,C,D℄ = 2dm(A,B,C ,D ,T,'zoh'); % CONVERSION A DISCRETO
Gtilde = [G zeros(2,1)
-C*G eye(1,1)℄; % DEBE SER DE ORDEN n+1=4
Htilde = [H
-C*H℄;
Q = [1 0 0;0 0.1 0;0 0 2℄; R = [0.01℄; % MATRICES DE PONDERACION
[Ktil,Ptil,E℄ = dlqr(Gtilde,Htilde,Q,R); % Ktil: GANANCIA OPTIMA
K = [Ktil(1) Ktil(2)℄; KI = -Ktil(3);
x = [0;0℄; yi=0; v=0; % CONDICIONES INICIALES
N = 60; r=1;
% RESPUESTA AL ESCALON r=1
144 Control Optimo

for k=1:N
v = v + r - yi;
V(k) = -K*x + KI*v;
x = G*x + H*V(k);
y(k) = x(1); yi = y(k);
end
% GRAFICOS
t = linspa e(0,T*N,N);
subplot(2,1,1)
plot(t,y); ylabel('y (rad/s)'); grid;
subplot(2,1,2)
plot(t,V); ylabel('V (voltios)'); grid;
xlabel('Tiempo (s)')
print -deps -f ejem4_4
% CALCULO RECURSIVO DE LA MATRIZ Ptilde Y CALCULO DE Ktilde
T = 15; Ptilde = zeros(3,3);
for i=1:T
Ptilde = Q + Gtilde'*Ptilde*Gtilde - Gtilde'*Ptilde*Htilde*...
inv(R+Htilde'*Ptilde*Htilde)*Htilde'*Ptilde*Gtilde;
end
Ktilde = inv(R + Htilde'*Ptilde*Htilde)*Htilde'*Ptilde*Gtilde;
% SE CUMPLE QUE Ktil = Ktilde Y Ptil = Ptilde

1.5

1
y (rad/s)

0.5

0
0 0.5 1 1.5 2 2.5 3

25

20
V (voltios)

15

10

5
0 0.5 1 1.5 2 2.5 3
Tiempo (s)

Figura 4.9: Salida ontrolada y y sen


~ al de ontrol V para el ejemplo 4.4.
4.8 Pro edimiento de Disen
~ o e Implementa ion 145

4.8 Pro edimiento de Disen


~ o e Implementa ion
El pro edimiento de disen
~o e implementa ion en tiempo real de un sistema
de ontrol optimo uadr ati o omprende los pasos siguientes:

1) Formular el problema (determinar espe i a iones de disen


~ o).

2) Determinar el modelo matemati o del pro eso a ontrolar (se iones


3.1 y 3.2) y determinar si es ompletamente ontrolable y ompleta-
mente observable (se i on 2.3.6).
~ de ontrol (se i on 4.7).
3) Cal ular la matriz de ganan ia optima K

4) Cal ular la matriz de ganan ia optima K e del observador (se ion 4.3).

5) Simular el sistema de ontrol optimo uadrati o.

6) Implementar el hardware del sistema (subse ion 4.9.6).

7) Implementar el software del sistema (subse ion 4.9.7).

8) Realizar pruebas de fun ionamiento (obtener resultados experimen-


tales satisfa torios).

4.9 Control Optimo Cuadr ati o del P endulo In-


vertido
En esta se ion nos o uparemos del disen~o del ontrol optimo uadrati o del
pro eso p endulo invertido empleando el pro edimiento de disen
~o des rito en
la se ion 4.8.

4.9.1 Formula i on del Problema


Dado el pro eso p endulo invertido, onformado por una varilla montada en
un arro impulsado por un servomotor D.C. ontrolado por voltaje de ar-
madura, se desea disen ~ar un servo ontrolador que sea apaz de mantener
el p endulo invertido en posi i on verti al (tanto omo sea posible), y al mis-
mo tiempo, mantener el arro en una posi i on 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 disen ~ ado empleando la te ni a de ontrol
146 Control Optimo

optimo uadrati o y la on gura ion de un servosistema. La entrada al pro-


eso (la sen
~al de ontrol) es el voltaje de armadura del servomotor D.C. y las
salidas del servosistema son la posi i on angular del p endulo y la traye toria
horizontal del arro. Se desea un tiempo de estabiliza ion de la posi i on del
arro de aproximadamente 6 segundos on el menor sobreimpulso posible.
Cabe anotar que para al anzar las espe i a iones de disen ~o planteadas,
se requiere sele ionar ade uadamente las matri es de pondera i on, omo
veremos m as adelante.

4.9.2 El Modelo del Pro eso a Controlar


La determina i on del modelo matem ati o del pro eso p endulo invertido fue
tratado on amplitud en la se i on 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 0:0002
3 2 0 0004 3
:
1 0002
: 0:0050 0
= 6 0 0995
57; = 6 0 1497
: 1:0002 0 0:0963 :
4 0 0000 4 0 0002 75
G H
: 0:0000 1:0000 0:0049 :
0:0019 0:0000 0 0:9508 0:0765

C = 0 0 1 0

4.9.3 C al ulo de la Matriz de Ganan ia del Controlador


En la se ion 4.7 vimos que la estru tura del servosistema a emplear en el
disen
~o del ontrolador optimo se des ribe mediante las e ua iones (4.51) y
(4.52), a saber:

~ (k) + H
(k + 1) = G ~ w(k); w(k) = ~ (k)
K

donde:

~ (k) = G 0 ~ (k) = H
G ; H ; ~ (k) =
K K KI
CG I CH

Adi ionalmente debemos averiguar si el pro eso es ompletamente ontro-


lable 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

26 1:0002 0:0050 0 0:0002 0 37 26 0:0004 3


G~=
64
0:0995 1:0002 0 0:0963 0
7
; H~ =
64
00:0002
:1497
7 7
0 0765 5
0:0000 0:0000 1:0000 0:0049 0
0:0019 0:0000 0 0:9508 0 :
5 0:0002
0:0000 0:0000 1:0000 0:0049 1:0000
148 Control Optimo

Para determinar la matriz de ganan ia K ~ del ontrolador de realimenta i on


de a uerdo a lo estable ido en la se i on 4.7, sele ionamos antes las matri es
de pondera ion R~ yQ ~ omo sigue:

~ = [100℄; ~=
2 200
0
0 0 0
0 0 0
0
0
3
R Q
64 0
0
0 100 0
0 0 0
0
0
75
0 0 0 0 0:01
En la matriz Q ~ observamos que se esta dando mayor peso al angulo del
p endulo (200). La posi i on del arro re ibe un peso de 100 mientras que
al integrador se le asigna 0.01. Con el proposito de evitar la satura i on del
ampli ador, tenemos que redu ir la amplitud de la sen ~al de entrada (o de
ontrol) a di ho ampli ador, pues de otro modo se originar an efe tos no
lineales indeseados en el sistema. Para tal proposito, R ~ toma el valor de 100,
dando as mayor enfasis a la sen ~al de ontrol en el pro eso de optimiza ion.
Para al ular la matriz K ~ debemos resolver la e ua ion de Ri ati (4.58)
pero en su forma re ursiva:
P~ (k + 1) = Q
~ +G ~ T P~ (k)G
~ G ~ T P~ (k)H
~ [R
~ +H
~ T P~ (k)H
~ ℄ 1H~ T P~ (k)G
~ (4.60)
El programa siguiente (en odigo MATLAB) al ula el valor esta ionario de la
matriz solu ion P~ (k), donde P~ (0) es una ondi ion ini ial arbitraria:
P = zeros(5,5);
for i = 1:1000
P = Q + G1'*P*G1 - G1'*P*H1*inv(R + H1'*P*H1)*H1'*P*G1
end
~ , H1 ~, P P~ , Q ~yR ~ . As obtenemos:
donde G1 G
2 1 H3774 Q R

P~ = 105
6 00 3112
:: 0
0::3112
0727 0
0::9019
2107 0
0::5082
1197 0
0::0035
000873
9019
:
6 0 5082
:
0:2107
0:1197
0:9352
0:3735
0:3735
0:2000
0:0041
0 0015
:
7
4 5
0:0035 0:0008 0:0041 0:0015 0:0000
Cono ida la matriz P~ , podemos ahora al ular la matriz K ~ empleando la
e ua ion (4.59). As se obtiene::
K~ = [R
~+H ~ T P~ H
~ ℄ 1H
~ T P~ G
~ = [K KI ℄
donde:
K = [ 7:7295 1:7311 2:9357 2:6291℄; KI = [ 0:0097℄
4.9 Control Optimo Cuadrati o del Pendulo Invertido 149

4.9.4 C al ulo la Matriz de Ganan ia del Observador


Previo al al ulo la matriz de ganan ia del observador, debemos determinar
si el pro eso es ompletamente observable. Para ello formamos la matriz de
observabilidad empleando la e ua i on (4.29) on n = 4, omo sigue:

C = 1 0 0 0
0 0 1 0℄;
N = [C' G'*C' G'^2*C' G'^3*C' G'^4*C'℄;
rnN = rank(N); % debe ser rnN = 4

Para al ular la matriz de ganan ia K e del observador optimo (se ion 4.3),
debemos sele ionar previamente las matri es de pondera i on R e y Qe:

1 0
2 1 0 0
30
Re =
0 10 ; Qe = 646 0 1000 0
0 0 0:9 75
0
0
0 0 0 1000
Podemos observar que en la matriz R e se da un peso de 10 a la medi ion
de la posi i on del arro, pues es mas exa ta que la medi i on del angulo,
debido a que el sensor usado para medir di ho angulo posee un error de
uantiza ion mayor. En la matriz Qe se asigna un peso de 1000, el mayor en
Qe, tanto a la velo idad angular de la varilla omo a la velo idad del arro,
porque estas son las variables que no son posibles de medir dire tamente y
ne esitamos que tengan una mayor in uen ia en el pro eso de estima i on.
Notar tambien que la posi ion del arro posee un peso de 0.9, algo menor
omparado on el peso de 1 atribu do al angulo de la varilla, dado que el
sensor de posi i on del arro es m as exa to que el sensor de posi ion de la
varilla.
Para al ular la matriz de ganan ia del observador K e al ulamos pre-
viamente la matriz Pe a partir de la e ua ion (4.37):

Pe(k + 1) = Qe + GPe(k)GT GPe(k)CT [Re + CPe(k)CT ℄ 1CPe(k)GT

El programa siguiente (en odigo MATLAB) al ula el valor esta ionario de


la matriz solu ion P e (el valor ini ial de Pe es arbitrario):

for i = 1:40
Pe = Qe + G*Pe*G'-G*Pe*C'*inv(Re+C*Pe*C^(T))*C*Pe*G'
end
150 Control Optimo

donde P e = Pe, Qe = Qe. De esta manera obtenemos:


0 0640 0 0003 0 0136 3
26 000 0021
: : :
0753 77
:

Pe = 10
::0640
0003 90 7336
0397 0
:: 0 0397
0047 2
::
5
0 2269 ::
3
64 0 0136 2 2269 0 0753 6 3346
: : : :

Luego, la matriz de ganan ia Ke se al ula on la e ua i on (4.36):

Ke = [Re + CPeCT ℄ 1CPeGT

lo que resulta en:


2 0 7802
: 0:0185 3T

= 20 9413
: 2:8240
Ke
64 0 0752
: 0:3450 57
3 7683
: 4:7913

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 uadr ati o, antes de ini iar su implementa i on
en tiempo real. El siguiente programa disopt2.m, adem as de efe tuar todos
los al ulos anteriores, realiza la simula i on del sistema ontrolado emple-
ando una ley de ontrol optima y on observa ion optima de estados. Es
interesante anotar que el modelo del pro eso empleado en la simula i on es el
modelo no lineal (3.31) dis retizado dire tamente. Tambi en hemos an ~adi-
do senten ias para simular el efe to de satura i on del ampli ador. Como
sen
~al de referen ia se emplea un es alon de valor 1.5 m. Los resultados de
la simula i on se pueden observar en las guras 4.10, 4.11 y 4.12.
% disopt2.m SISTEMA DE CONTROL OPTIMO DEL PENDULO INVERTIDO
lear all
% PARAMETROS DEL PROCESO
m = 0.92; me = 0; mv = 0.063095; mp = 0.2; g = 9.81;
lv = 0.767; le = 0; rp = 0.0648; n = 1/19.741;
Jm = 1.9596e-6;
Je = me*le^2; Jv = mv*lv^2/3; Jo = 0; Jp = mp*rp^2/2;
Jeq = Jm + n^2*(Jo + Jp);
Bm = 1.8342e-6; Bo =0; Beq = Bm + n^2*Bo;
Km = 31.071e-3; Kb = 31.053e-3; Ra = 7.38; KA = 14.9;
M1 = m + me + mv; M2 = me*le + mv*lv/2;
J1 = Je + Jv; J2 = Jeq/(n^2*rp^2);
Kx = Km/(Ra*n*rp);
4.9 Control Optimo Cuadrati o del Pendulo Invertido 151

Bx = Beq/(n^2*rp^2) + Kb*Km/(n^2*rp^2*Ra);
d = ((M1+J2)*J1-M2^2);
a21 = (M1+J2)*M2*g/d; a24 = Bx*M2/d;
a41 = -M2^2*g/d; a44 = -J1*Bx/d;
b21 = -Kx*M2*KA/d; b41 = J1*Kx*KA/d;
% MODELOS LINEALES CONTINUO Y DISCRETO
A = [0 1 0 0
a21 0 0 a24
0 0 0 1
a41 0 0 a44℄;
B = [0
b21
0
b41℄;
C = [0 0 1 0℄; % POSICION DEL CARRO
Ts = 1/200; % TIEMPO DE MUESTREO
[G,H℄ = 2d(A,B,Ts);
G1 = [G zeros(4,1)
-C *G 1℄;
H1 = [H;-C *H℄;
M = [H1 G1*H1 G1^2*H1 G1^3*H1 G1^4*H1℄;
rM = rank(M); % rM=5 => COMPLETAMENTE CONTROLABLE
% CALCULO DE LA GANANCIA DEL CONTROLADOR
Q = [200 0 0 0 0
0 0 0 0 0
0 0 100 0 0
0 0 0 0 0
0 0 0 0 0.01℄; R = [100℄;
P = zeros(5,5);
for i=1:1000
P = Q + G1'*P*G1 -G1'*P*H1*inv(R+H1'*P*H1)*H1'*P*G1;
end
K1 = inv(R+H1'*P*H1)*H1'*P*G1;
[KK,PP℄ = dlqr(G1,H1,Q,R); % K1=KK, P=PP
K = [KK(1) KK(2) KK(3) KK(4)℄; KI = - KK(5);
% CALCULO DE LA GANANCIA DE UN OBSERVADOR
C = [1 0 0 0
0 0 1 0℄; % SE OBSERVAN POSICIONES ANGULAR Y LINEAL
Qe = [1 0 0 0
0 1000 0 0
0 0 0.9 0
0 0 0 1000℄; Re = [1 0;0 10℄;
Pe = zeros(4,4);
152 Control Optimo

for i=1:40
Pe = Qe + G*Pe*G' -G*Pe*C'*inv(Re+C*Pe*C')*C*Pe*G';
end
KeT = inv(Re+C*Pe*C')*C*Pe*G'; Ke=KeT';
[KKeT,PPe℄ = dlqr(G',C',Qe,Re); KKe=KKeT';% Pe=PPe, Ke=KKe
% SIMULACION DEL SISTEMA DE CONTROL OPTIMO
% CONDICIONES INICIALES
x1=0; x2=0; x3=0; x4=0; x5=0;
xe = [0;0;0;0℄; r=1.5;
v=0; N = 4000; % TIEMPO EN SEGUNDOS: Ts*N
for k=1:N
u = -K*xe + KI*v;
if(u > 1.4), u = 1.4; % PARA NO SATURAR EL SERVOMOTOR
elseif(u < -1.4), u = -1.4;
end
xe = G*xe + u*H + Ke*([x1;x3℄ - C*xe);
% PROCESO NO LINEAL DISCRETIZADO DIRECTAMENTE
den = -M2^2* os(x1)^2+(M1+J2)*J1;
x1 = x1 + Ts*x2;
x2 = x2 + ...
Ts*(-M2^2*sin(x1)* os(x1)*x2^2+M2*Bx* os(x1)*x4 ...
+M2*(M1+J2)*g*sin(x1)-M2*Kx* os(x1)*KA*u)/den;
x3 = x3 + Ts*x4;
x4 = x4 + ...
Ts*(M2^2*g*sin(x1)* os(x1)+J1*M2*sin(x1)*(x2)^2 ...
-J1*Bx*x4+J1*Kx*KA*u)/den;
v = v + r - x3;
y1(k)=x1; y2(k)=x3; U(k) =u;
end
% GRAFICOS
t = linspa e(0,Ts*N,N);
figure(1)
plot(t,y2(1:N)); grid
ylabel('Posi ion del arro')
xlabel('Tiempo (s)')
print -deps -f spoz
figure(2)
plot(t,y1(1:N)); grid
ylabel('Posi ion angular del pendulo')
xlabel('Tiempo (s)')
print -deps -f spoa
figure(3)
plot(t,U); grid
4.9 Control Optimo Cuadrati o del Pendulo Invertido 153

ylabel('Se~nal de ontrol u')


xlabel('Tiempo (s)')
print -deps -f spou

1.6

1.4

1.2

1
Posición del carro

0.8

0.6

0.4

0.2

−0.2
0 2 4 6 8 10 12 14 16 18 20
Tiempo (s)

Figura 4.10: Simula i on del sistema p endulo invertido: posi i on del arro.

4.9.6 El Hardware del Sistema de Control


La gura 4.13 muestra los omponentes f si os (el hardware) del sistema de
ontrol. Tales omponentes son: el pro eso a ontrolar (p endulo invertido o gru
a-puente), los sensores de posi ion, el ampli ador de poten ia, la tar- jeta
de adquisi ion de datos Lab-PC+, y una omputadora personal on mi ropro
esador Pentium. El pro eso p endulo invertido (o gru a-puente) se muestra
esquematizado en la gura 4.14 y omprende:

Un servomotor D.C. Pittman de iman permanente de aproximada-


mente 350 rpm, que posee redu i on 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 est a 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-p endulo.
154 Control Optimo

0.15

0.1
Posición angular del péndulo

0.05

−0.05

−0.1
0 2 4 6 8 10 12 14 16 18 20
Tiempo (s)

Figura 4.11: Simula i on del sistema p endulo invertido: posi ion angular del
p endulo.
0.7

0.6

0.5

0.4
Señal de control u

0.3

0.2

0.1

−0.1

−0.2
0 2 4 6 8 10 12 14 16 18 20
Tiempo (s)

Figura 4.12: Simula ion del sistema pendulo invertido: sen


~ al de ontrol.
4.9 Control Optimo Cuadrati o del Pendulo Invertido 155

COMPUTADORA
PERSONAL

TARJETA LAB-PC+

AMPLIFI- PROCESO:
SALIDAS DAC0
CADOR PE’ NDULO
ANALOGICAS DAC1 INVERTIDO /
PWM GRUA PUENTE

PA0 16 bits
PA . SENSOR EN
PA7 EL MOTOR
COMPUERTAS MUX
16 bits
DIGITALES PB
.0 SENSOR EN
PB . LA VARILLA
DE ENTRADA
PB7
Y SALIDA SALIDAS
PC0
PC .
PC6
PC7
Fs
CONTADOR / OUTB0
TEMPORIZADOR

Figura 4.13: Implementa ion del sistema de ontrol.


156 Control Optimo

SERVOMOTOR PENDULO

POLEA

CARRO

CARRIL

Figura 4.14: Sistema p endulo invertido.

Un arro de metal on uatro ruedas de bron e, el ual posee una junta


m ovil (para sujetar una varilla met ali 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 p endulo.

Codificador o’ptico
Polea
Alimentacio’n

. . .

Servomotor D.C .
Reductor de
velocidad

Figura 4.15: Servomotor on odi ador opti o y polea.

Los Sensores de Posi ion


El sistema de ontrol posee dos sensores de posi i on, uno de los uales se en-
arga de medir la posi i on angular del motor y el otro se en arga de medir la
4.9 Control Optimo Cuadrati o del Pendulo Invertido 157

Pe’ndulo

Codificador
o’ptico

Ruedas

Figura 4.16: Esquema del arro.

posi ion angular de la varilla. Cada sensor onsiste de un odi ador opti o
rotatorio, ompuesto de un dis o metali o on un nu mero determinado de
ranuras igualmente espa iadas y ubi adas en el per metro del dis o, y un
emisor-sensor opti o que genera un haz de luz perpendi ular al dis o (ver
gura 5.13).

Canal A
Canal B
Fuente de luz
Transistor
’optico

Eje del servomotor

Disco con
ma’scara

Figura 4.17: Codi ador opti o.

El pro eso de sensado es el siguiente. Al girar el dis o a la misma ve-


lo idad del servomotor (o a la misma velo idad de la varilla), las ranuras
158 Control Optimo

permiten el paso de luz a trav es del dis o. Di ho haz a tiva el transistor


opti o del emisor-sensor, generando un pulso de orriente que se onstituye as
en la entrada a un ontador de pulsos. El nu mero de ranuras que posee el
sensor de la varilla es 256, mientras que el sensor del servomotor posee 512
ranuras. Hay que tomar en uenta ademas que el odi ador in orporado
en el motor es solidario al eje primario; es de ir, para obtener el angulo de
giro en el eje de salida, se tiene que apli ar un fa tor de redu ion uyo valor
num eri o se da en la se ion 3.2.6.
El odi ador opti o da omo salida un tren de pulsos on una fre uen ia
propor ional a la velo idad angular del dis o y otro tren de pulsos desfasado
en +90 o 90 grados respe to al primero, de a uerdo al sentido de giro
del dis o. Estos dos trenes de pulsos pasan luego a un de odi ador de
uadratura LS7083 que genera las sen ~ales Clo k Up o Clo k Down, segu n
sea positivo o negativo el sentido de giro del dis o (ver gura 5.14). Las
sen
~ales Clo k Up y Clo k Down alimentan a un ontador Up/Down de 16
bits ompuesto por 4 ontadores 74LS193 de 4 bits one tados en as ada.
Los dos odi adores opti os poseen la ir uiter a des rita anteriormente,
de modo tal que para ada sensor tenemos una salida de 16 bits que se
alma ena en un registro.
La sele ion entre una u otra salida binaria se realiza por medio de la
habilita ion de un registro, o mediante una sen ~al proveniente de la omputa-
dora personal (ver gura 4.13). En on lusi on, la uenta alma enada en los
ontadores es una fun ion lineal propor ional a la posi ion angular del eje del
dis o. Para obtener la posi ion angular a partir del nu mero de pulsos NP
dados por los ontadores, podemos usar la siguiente rela i on:

Para la varilla, posi i on angular de la varilla: (2 =256) N P .

Para el motor, posi i on angular del eje del motor: (2 =512) N P


(antes de la redu ion).

El Ampli ador de Poten ia


Un ampli ador de poten ia basado en la modula ion PWM ("Pulse Width
Modulation") alimenta al servomotor D.C. Este ampli ador est ompuesto
por un modulador PWM de baja poten ia (el LM3524), una logi a digital
de disparo y un onmutador ampli ador tipo H implementado on uatro
Mosfets. Tambi en existe ir uiter a adi ional para generar la tensi on de
disparo en ada onmutador Mosfet.
4.9 Control Optimo Cuadrati o del Pendulo Invertido 159

Clock UP
74HC Clock Down
4 bits
193
Puerto
digital 8 bits
PA Canal A
74HC
4 bits
193 LS7083
Canal B

74HC
4 bits
193
Puerto R L
digital 8 bits
PB 74HC
4 bits
193

Figura 4.18: Sensado de la posi ion.

La Tarjeta de Adquisi i on de Datos Lab-PC+


La tarjeta de adquisi ion de datos Lab-PC+ de National Instruments es la
interfaz empleada para el env o de la sen
~ al de ontrol y para la adquisi ion de
datos. La inter onexion de la tarjeta de adquisi i on de datos on el ampli
ador y los sensores se realiza en la forma siguiente:

Puerto A: re ibe los 8 bits menos signi ativos del sensor.


Puerto B: re ibe los 8 bits mas signi ativos del sensor.
Puerto C:
{ bit 1: Libre (puede ser usado para enviar datos adi ionales desde
la omputadora)
{ bit 2: sele iona entre el sensor de la varilla o el del motor.
{ bit 3: reini ia (\reset") los ontadores.
{ bit 7: re ibe la sen
~al de reloj de la fre uen ia de muestreo Fs
generada por OUTB0.
{ bits 0,4,5 y 6: no usados.
DAC0: env a la sen
~ al de ontrol.
OUTB0: env a la sen
~al de reloj de muestreo.
160 Control Optimo

Sele ion de la Fre uen ia de Muestreo


Para el fun ionamiento orre to del sistema de ontrol optimo dis reto se
requiere la sele i on ade uada de la fre uen ia (o per odo) de muestreo. Tal
sele ion debe tomar en onsidera i on 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 per odo 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 pr a ti a, podemos es oger un per odo de muestreo que sea
10 ve es menor que la dura ion de un i lo de os ila ion senoidal amor-
tiguada de la sen ~al de salida del sistema en lazo errado (para el aso de
respuesta subamortiguada). Para el aso de respuesta sobreamortiguada,
podemos es oger un per odo 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 sen ~al de referen ia y la sen
~al 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 pr a ti a, tendremos
que es oger un per odo 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 ogi o una fre uen ia de muestreo de Fs = 200 Hz, o lo que es lo mismo,
un per odo de muestreo de 5 ms.

4.9.7 Implementa ion del Software de Control


La implementa i on del algoritmo de ontrol se realiza en dos fases. En
la primera, se al ulan fuera de l nea (\o -line") la matriz de ganan ia de
realimenta i on de estados K y la matriz de ganan ia del observador K e (em-
pleando por ejemplo, MATLAB). Tales matri es se guardan en un ar hivo
para que luego puedan ser usadas por el programa (es rito en odigo C) que
va a ontrolar el pro eso. Todos los datos generados pueden ser alma enados
en ar hivos para su posterior le tura, analisis y pro esamiento (por ejemplo,
para generar gra os).

El Ar hivo de Interfaz

Para fa ilitar el uso de la tarjeta de adquisi ion de datos se rearon los


ar hivos FUNC PEN.H y FUNC PEN.CPP, los uales utilizan la librer a de
4.9 Control Optimo Cuadrati o del Pendulo Invertido 161

fun iones NI-DAQ [25℄, as omo tambi en fun iones de le tura y es ritura
de puertos. El ar hivo FUNC PEN.H onsta de las siguientes fun iones:
Con gurarHardware: ini ializa la tarjeta Lab-PC+, on gura los puer-
tos y espe i a la fre uen ia del lo k de muestreo.
EnviarVoltaje: restringe y env a voltajes al DAC0 del Lab-PC+.
LeerSensor: adquiere datos de los puertos A y B de 8 bits ada uno
y olo a un 0 o un 1 en el segundo bit del puerto C, on el n de
sele ionar la le tura del sensor de la varilla o la del sensor del motor.
NivelClo k: lee el bit 7 del puerto C y re ibe el lo k de muestreo de
OUTB0.
ResetContadores: olo a un 1 o un 0 en el bit 3 del puerto C, on el
n de borrar el ontenido de los ontadores de los sensores.

El Programa de Control
El programa de ontrol se denomina PENDOI4.CPP. En el ambiente de tra-
bajo de Borland C/C++, los ar hivos FUNC PEN.H, FUNC PEN.CPP y
PENDOI4.CPP forman en onjunto el proye to PENDOI4.PRJ. El progra-
ma PENDOI4.CPP omprende las partes siguientes:
1. Ini ializa ion
(a) Ini ializa ion de la tarjeta de adquisi i on de datos.
(b) Ini ializa ion de variables.
( ) Estable imiento de la posi ion ero del arro y de la varilla.
2. Bu le del algoritmo de ontrol

(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 sen
~al 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 i on promedio por bu le de
430 s. A ontinua i on omentamos brevemente ada uno de los puntos
anteriores.
162 Control Optimo

INICIO

INMICIALIZA:
- TARJETA DE ADQUISICION DE DATOS
- VARIABLES

BORRA CONTADORES

ESTABLECIMIENTO DE LA POSICION
CERO DEL CARRO Y LA VARILLA

NO
TIEMPO < TIEMPO LIMITE FIN

SI

DETECTA
FLANCO DE SUBIDA NO
DEL PULSO DE RELOJ

SI

MIDE SALIDAS
ESTIMA ESTADOS
~
CALCULA SENAL DE CONTROL
~
COMPENSA SENAL DE CONTROL
~
ENVIA SENAL DE CONTROL
ACTUALIZA VARIABLES
ARCHIVA DATOS

Figura 4.19: Diagrama de ujo del programa de ontrol.


4.9 Control Optimo Cuadrati o del Pendulo Invertido 163

Ini ializa i on de la Tarjeta de Adquisi ion de Datos


El hardware de la tarjeta Lab-PC+ se on gura on la fun i on para ini-
ializa i on Con gurarHardware(Fs), en donde se espe i a la fre uen ia de
muestreo Fs que debe generar.

Ini ializa i on de Variables


Se ini ializan todas las variables a utilizar en el programa y se argan las
matri es que previamente fueron al uladas.

Estable imiento de la Posi i on Cero del Carro y de la Varilla


Se pide al usuario olo ar la varilla y el arro en la posi ion ero. En el
aso de la varilla, esta debe olo arse en posi i on verti al y ha ia arriba (p
endulo invertido) o ha ia abajo (gru a-puente). Con esto se onsigue que el
programa identi que la posi ion de 0 grados del pendulo y de 0 metros del
arro. Realizada esta a ion, el programa pide luego olo ar el pendulo o el
arro en las posi iones ini iales deseadas, para inmediatamente omenzar el
ontrol.

Dete i on del Flan o de Subida del Clo k


Dete ta el an o de subida del lo k mediante la fun i on NivelClo k, lo que
nos indi a el omienzo de un nuevo per odo de muestreo.

Medi i on de las Salidas


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 i on angular de la varilla: (2 =256) N P .

Para el motor, posi i on angular del eje del motor: (2 =512) N P


(antes de la redu ion).

Para la le tura de los sensores tenemos que tomar en uenta la satura i on


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 llegan a saturarse, pues a
lo sumo la varilla podr a tener un re orrido de 360o, lo que orresponde
164 Control Optimo

a un in remento de 256 puntos, valor bastante lejos del valor m aximo del
ontador. El problema a resolver aqu es omo re ono er si nos en ontramos
ante un re orrido positivo o negativo justo uando el ontador omienza a
de rementar (partiendo de 0). Para resolver esta situa ion, onsideraremos
que estamos ante un valor negativo si el ontenido de los ontadores es
mayor que 32768 (la mitad del valor maximo que pueden ontener). Por
ejemplo, si obtenemos en el ontador un valor de 65534, y omo este es mayor
que 32768, enton es representa una posi i on negativa; su equivalente es:
(65536 65534) = 2. Luego, para obtener la posi i on angular ha emos:
2 2 =256 rad. La rutina que realiza esta le tura esta dada por:
/*lee angulo Varilla*/
ontVa=LeerSensor(VARILLA);
ontVa=( ontVa>32768)?-1*(65536- ontVa): ontVa;
*y0= ontVa*(2.*PI/256.);

en donde ontVa es la variable que guarda el valor del ontador e y0 guarda


la posi ion angular en radianes.
La le tura de la posi i on del arro es un aso diferente, porque a una
determinada distan ia de re orrido, los ontadores se saturan. Para salvar
este in onveniente lo que se ha e es sumar los in rementos o restar los de re-
mentos que se obtienen entre la le tura a tual y la le tura anterior de los
ontadores. Pero adem as, previamente debemos de dis ernir si el valor le do
del ontador se trata de un in remento o un de remento. La siguiente rutina
en odigo C toma en uenta las onsidera iones anteriores:

/*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)*2.*PI/512.*Nm*rp;
else
*y1=y1_ant-( ontC_ant- ontC_a t)*2.*PI/512.*Nm*rp;
}
else
{
if(( ontC_a t- ontC_ant)>32768)
*y1=y1_ant-(65536- ontC_a t+ ontC_ant)*2.*PI/512.*Nm*rp;
else
*y1=y1_ant+( ontC_a t- ontC_ant)*2.*PI/512.*Nm*rp;
}
ontC_ant= ontC_a t;
y1_ant=*y1;
4.9 Control Optimo Cuadrati o del Pendulo Invertido 165

en donde ontC_a t es el valor a tual del ontador, ontC_ant es el valor


anterior del ontador, y1 es la variable que guarda la posi ion a tual del
arro en metros e y1_ant es el valor anterior de y1.

Observador de Estados de Orden Completo


La e ua i on que debemos implementar para el observador de estados de
orden ompleto est a dada por la e ua ion (4.31):
x
~ (k + 1) = Gx
~ (k) + Hu(k) + Ke [y(k) Cx
~ (k)℄
o por la e ua ion (luego de fa torizar el ve tor estimado x
~ (k)):
x
~ (k + 1) = (G Ke C)x
~ (k) + Hu(k) + Ke y(k)
Para ahorrar al ulos inne esarios en el programa, podemos olo ar el
valor de (G K e C) en una sola variable que pueda ser al ulada fuera de
l nea (\o -line"), para ser luego guardada en un ar hivo, y antes de ini iar
la rutina de ontrol, leerla desde el programa en C. En di ho programa
utilizaremos la siguiente nota ion para las variables:
Xe[ ℄ = x~(k); Y ant[ ℄ = y(k 1); G KeC[ ℄[ ℄ = G Ke C
H[ ℄ = H; Ke[ ℄[ ℄ = Ke; u = u(k)
La rutina en lenguaje C que implementa la e ua i on del observador es:
/* al ula G_KeC*Xe */
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;
166 Control Optimo

Cal ulo de la Sen


~ al de Control
Para el al ulo de la sen
~ al de ontrol utilizaremos las e ua iones (4.40) y
(4.42), a saber:

u(k) = Kx(k) + K I v(k)


v(k) = v(k 1) + r(k) y(k)

En el programa en odigo C utilizamos la siguiente nota i on:

Xe[ ℄ = x(k); K[ ℄ = K; KI = KI; Xe[2℄ = y(k)

V = v(k); V ant = v(k 1); r = r(k); u = u(k)


Las e ua iones (4.40) y (4.42) se representan en el programa en C por:
V=V_ant+r-Xe[2℄; V_ant=V;
u=KI*V-K[0℄*Xe[0℄-K[1℄*Xe[1℄-K[2℄*Xe[2℄-K[3℄*Xe[3℄;

y la rutina en lenguaje C para la ompensa ion de la zona muerta en el


motor est a dada por:
if(u <0) v=-DeadZone;
if(u >0) v=+DeadZone;
if(u==0) v=0.;

Para apli ar la sen


~ al de ontrol emplearemos:
Enviarvoltaje(u+v+offset);

Alma enamiento de las Respuestas


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 PI M_PI
#define IZQ 0
#define DER 1
#define VARILLA IZQ
#define MOTOR DER
#define A_RADIANES 2.*PI/512.

#define Nm 1/19.741
#define rp 0.0648
#define Fs 200.
#define Ts (1./Fs)
#define tsimul 60.
#define DeadZone 0.1
#define offset 2.29 //2.36
#define SP 1.5

float G_KeC[4℄[4℄,H[4℄;
float K[4℄,KI,Ke[4℄[2℄;
float r=0.;

float Xe[4℄={0,0,0,0},Xe_a[4℄={0,0,0,0};
float y0,y1;
float u=0.;

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 171

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℄*/
172 Control Optimo

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;
4.9 Control Optimo Cuadrati o del Pendulo Invertido 173

}
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();
174 Control Optimo

printf("1) Ubi ar el arro en el entro del arril\n4) Ubi ar la va-


rilla 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 = 0.; r = 0.;


for(k = 0;k <= n;)
{
if(kbhit())
{
if((te la = get h()) == 27) break;
if(te la == 59) r = 1.5;
}

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 175

gotoxy(5,17);printf(" arro 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

printf("\nelementos es ritos en %s:%d\n",tiempo, );


}
/*guarda angulo varilla*/
pfi hero = fopen(theta_,"wb");
if (pfi hero == NULL) printf("\nNo se puede abrir %s\n",theta_);
else
{
=fwrite(x1_,sizeof(x1_),n+1,pfi hero);
f lose(pfi hero);
printf("\nelementos es ritos en %s:%d\n",theta_, );
}
/*guarda velo idad angular varilla*/
pfi hero = fopen(v_vara,"wb");
if (pfi hero == NULL) printf("\nNo se puede abrir %s\n",v_vara);
else
{
=fwrite(x2_,sizeof(x2_),n+1,pfi hero);
f lose(pfi hero);
printf("\nelementos es ritos en %s:%d\n",v_vara, );
}
/*guarda posi ion del arro*/
pfi hero=fopen(z_ arro,"wb");
if (pfi hero == NULL) printf("\nNo se puede abrir %s\n",z_ arro);
else
{
=fwrite(x3_,sizeof(x3_),n+1,pfi hero);
f lose(pfi hero);
printf("\nelementos es ritos en %s:%d\n",z_ arro, );
}
/*guarda velo idad del arro*/
pfi hero=fopen(v_ arro,"wb");
if (pfi hero == NULL) printf("\nNo se puede abrir %s\n",v_ arro);
else
{
=fwrite(x4_,sizeof(x4_),n+1,pfi hero);
f lose(pfi hero);
printf("\nelementos es ritos en %s:%d\n",v_ arro, );
}
/*guarda y0 angulo de la varilla*/
pfi hero=fopen(sal_var,"wb");
if (pfi hero == NULL) printf("\nNo se puede abrir %s\n",sal_var);
else
{
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();
}

4.9.8 Resultados Experimentales

Los resultados experimentales se obtuvieron on una sen ~al de referen ia


es al on de 1.5 m para la posi i on del arro. Los resultados del ontrol
optimo uadrati o del sistema de pendulo invertido on observador de orden
ompleto se muestran en las guras: 4.20, 4.21 y 4.22.
En los resultados experimentales se observa que la posi ion del arro, que
es la sen
~al de realimenta i on del servosistema, sigue a la sen
~al de referen ia
en menos de 6 segundos y on sobreamortiguamiento m nimo, tal omo estaba
propuesto en las espe i a iones de disen ~o del sistema de ontrol. La posi
ion angular del p endulo logra estabilizarse alrededor de ero; es de ir, se
llega a posi ionar en forma verti al.
Observar en la respuesta esta ionaria, tanto en la posi ion del arro
omo en la posi ion angular del p endulo, la presen ia de una os ila ion
esta ionaria ( i lo l mite) que podr a redu irse usando sensores mas pre isos
178 Control Optimo

posición del carro (medición directa)


2

1.5

1
posición (m)

0.5

−0.5
0 2 4 6 8 10 12 14 16 18 20
tiempo (s)

Figura 4.20: Control optimo del p endulo invertido: posi i on del arro.

ángulo del péndulo (medición directa)


0.5

0.4

0.3

0.2

0.1
ángulo (rad)

−0.1

−0.2

−0.3

−0.4

−0.5
0 2 4 6 8 10 12 14 16 18 20
tiempo (s)

Figura 4.21: Control optimo del p endulo invertido: posi i on angular del
pendulo.
4.10 Control Optimo Cuadrati o de la Grua-Puente 179

entrada
1.5

0.5
entrada (v)

−0.5

−1

−1.5
0 2 4 6 8 10 12 14 16 18 20
tiempo (s)

Figura 4.22: Control optimo del pendulo invertido: sen


~al de ontrol.

( on un taman ~o de paso de dete ion menor).


El algoritmo de ontrol lineal empleado requiere que las variables no
salgan de la zona lineal impuesta por el modelo lineal. Sin embargo, el
sistema de ontrol disen~ ado responde en forma ade uada para desvia iones
de la posi ion de la varilla de hasta 20o, lo que est a bastante fuera de la
zona lineal impuesta por el modelo.

4.10 Control Optimo Cuadrati o de la Grua-Puente


En esta se ion nos o upamos del disen ~o del ontrol optimo uadrati o del
pro eso gru a-puente empleando el pro edimiento de disen
~o presentado en la
se ion 4.8.

4.10.1 Formula i on del Problema


Dado el sistema gru a-puente, onformado por una varilla que uelga libre-
mente de un arro impulsado por un servomotor D.C. ontrolado por su
voltaje de armadura, se desea disen ~ ar un servo ontrolador que sea apaz
de trasladar al arro a una posi ion determinada, de forma tal que la os-
180 Control Optimo

ila ion en la varilla sea m nima. El problema en onsidera i on es de dos


dimensiones, dado que la varilla se balan ea en el mismo plano que la traye -
toria del arro. El disen~o del sistema de ontrol esta basado en la teor a de
ontrol optimo uadrati o. La entrada al pro eso (la sen ~al de ontrol) es
el voltaje de armadura del servomotor D.C. y las salidas del servosistema
son la posi i on angular del p endulo y la traye toria horizontal del arro. Se
desea un tiempo de estabiliza ion de la posi i on del arro de aproximada-
mente 6 segundos on el menor sobreimpulso posible. Cabe anotar que para
al anzar las espe i a iones de disen ~o planteadas, se requiere sele ionar
ade uadamente las matri es de pondera i on.

4.10.2 Simula i on del Sistema Controlado


La determina ion del modelo matemati o del pro eso grua-puente se trato
on amplitud en la se i on 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 edi-
miento 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 gru a puente. Cabe re al ar que la simula ion
emplea el modelo no lineal de la planta. Los resultados se muestran a on-
tinua i on 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 181

A = [0 1 0 0
a21 0 0 a24
0 0 0 1
a41 0 0 a44℄;
B = [0
b21
0
b41℄;
C = [0 0 1 0℄; % POSICION DEL CARRO
Ts = 1/200; % TIEMPO DE MUESTREO
[G,H℄ = 2d(A,B,Ts);
G1 = [G zeros(4,1)
-C *G 1℄;
H1 = [H;-C *H℄;
M = [H1 G1*H1 G1^2*H1 G1^3*H1 G1^4*H1℄;
rM = rank(M); % rM=5 => COMPLETAMENTE CONTROLABLE
% CALCULO DE LA GANANCIA DEL CONTROLADOR
Q = [500 0 0 0 0
0 0 0 0 0
0 0 200 0 0
0 0 0 0 0
0 0 0 0 0.1℄; R = [1℄;
P = zeros(5,5);
for i=1:1000
P = Q + G1'*P*G1 -G1'*P*H1*inv(R+H1'*P*H1)*H1'*P*G1;
end
K1 = inv(R+H1'*P*H1)*H1'*P*G1;
[KK,PP℄ = dlqr(G1,H1,Q,R); % K1=KK, P=PP
K = [KK(1) KK(2) KK(3) KK(4)℄; KI = - KK(5);
% CALCULO DE LA GANANCIA DEL OBSERVADOR
C = [1 0 0 0
0 0 1 0℄; % SE OBSERVAN POSICIONES ANGULAR Y LINEAL
Qe = [1000 0 0 0
0 1500 0 0
0 0 100 0
0 0 0 1500℄; Re = [1 0;0 1℄;
Pe = zeros(4,4);
for i=1:200
Pe = Qe + G*Pe*G' -G*Pe*C'*inv(Re+C*Pe*C')*C*Pe*G';
end
KeT = inv(Re+C*Pe*C')*C*Pe*G'; Ke=KeT';
[KKeT,PPe℄ = dlqr(G',C',Qe,Re); KKe=KKeT'; % Pe=PPe, Ke=KKe
% CONDICIONES INICIALES PARA LA SIMULACION
182 Control Optimo

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;
u = -K*xe + KI*v;
if(u > 1.4), u = 1.4; % para no saturar el amplifi .
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 sgoz
figure(2)
plot(t,y1(1:N)); grid
ylabel('Posi ion angular de la grua-puente')
xlabel('Tiempo (s)')
print -deps -f sgoa
figure(3)
plot(t,U); grid
ylabel('Se~nal de ontrol u')
xlabel('Tiempo (s)')
print -deps -f sgou
4.10 Control Optimo Cuadrati o de la Grua-Puente 183

2 3 2 00 1462
0004 3
=6
0:9998
0:0972
0:0050
0:9998
0
0
0:0002
0:0941
75 ; = 6 0 0002
7 ::
G
4 0:0000
0:0019
0:0000 1:0000
0:0000 0
0:0049
0:9508
H
4 5
:

0:0765
C=0010

26 1 0002
: 0:0050 0 0:0002 0 26 0 0004 3
37 :
G~= 0 0995
:
46 000000
:
0019
:
1:0002 0
0:0000 1:0000
0:0000 0
0:0963
0:0049
0:9508
5
0
0
0
~ = 000002
1497
;
64 000765
7 757
H ::
:
0 0000
: 0:0000 1:0000 0:0049 1:0000 0002 :

26 1 9636
: 0:2257 3 3116
: 0 4202 0 0300
:
3 :
P~ = 104 0 2257
: 0:1481 0 7068
: 0 2891 0 0030 7
: :

46 000300 0 0061 7
3 3116
: 0:7068 8 5186
: 1 4030 :0 0745 :
4202
: 0:2891 1 4030
: 0 5668 : 5 :
: 0:0030 0:0745 0:0061 0:0013

~ =
K K KI

K= 8:2596 4:3465 37:9206 10:3665℄; KI = 0:2907

2 1:0102 0:0055 3
2:1836 1:1280
Ke =
64 0:0005 0:9936 75
0:0982 0:6519

4.10.3 El Hardware y el Software del Sistema de Control

La implementa i on del hardware, as omo el disen ~o 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 gru a-
puente.
184 Control Optimo

1.8

1.6

1.4

1.2
Posición del carro

0.8

0.6

0.4

0.2

0
0 2 4 6 8 10 12 14 16 18 20
Tiempo (s)

Figura 4.23: Simula ion del sistema grua-puente: posi ion del arro.
0.5

0.4

0.3
Posición angular de la grúa puente

0.2

0.1

−0.1

−0.2

−0.3

−0.4
0 2 4 6 8 10 12 14 16 18 20
Tiempo (s)

Figura 4.24: Simula ion del sistema grua-puente: posi ion angular de la
varilla.
4.10 Control Optimo Cuadrati o de la Grua-Puente 185

1.4

1.2

Señal de control u 1

0.8

0.6

0.4

0.2

−0.2
0 2 4 6 8 10 12 14 16 18 20
Tiempo (s)

Figura 4.25: Simula ion del sistema grua-puente: sen


~al de ontrol.

posición del carro (medición directa)


2

1.5

1
posición (m)

0.5

−0.5
0 2 4 6 8 10 12 14 16 18 20
tiempo (s)

Figura 4.26: Control optimo de la grua-puente: posi ion del arro.


186 Control Optimo

ángulo de la varilla (medición directa)

0.6

0.4

0.2
ángulo (rad)

−0.2

−0.4

−0.6

0 2 4 6 8 10 12 14 16 18 20
tiempo (s)

Figura 4.27: Control optimo de la grua-puente: posi ion angular del


pendulo.

entrada
1.5

0.5
entrada (v)

−0.5

−1

−1.5
0 2 4 6 8 10 12 14 16 18 20
tiempo (s)

Figura 4.28: Control optimo de la grua-puente: sen


~al de ontrol.
4.11 Problemas Resueltos 187

4.10.4 Resultados experimentales


Los resultados experimentales que se muestran a ontinua i on se obtuvieron
on una sen ~ al de referen ia es al on de 1.5 m para la posi ion del arro.
Los resultados del ontrol optimo uadr ati o del sistema gru a-puente on
observador de orden ompleto se muestran en las guras: 4.26, 4.27 y 4.28.
Como en el aso del p endulo invertido, en los resultados experimentales
se observa que la posi ion del arro, que es la sen ~al de realimenta i on del
servosistema, sigue a la sen
~al de referen ia en menos de 6 s y on sobreamor-
tiguamiento moderado, tal omo estaba propuesto en las espe i a iones de
disen~o del sistema de ontrol. La posi ion angular del p endulo logra esta-
bilizarse alrededor de ero; es de ir, se llega a posi ionar en forma verti al
ha ia abajo.
Igualmente, el algoritmo de ontrol lineal empleado requiere que las va-
riables no salgan de la zona lineal impuesta por el modelo lineal. Sin em-
bargo, se omprob que el sistema de ontrol disen ~ado responde en forma
ade uada para una desvia ion de la posi ion de la varilla de 20 grados,
que es bastante fuera de la zona lineal impuesta por el modelo.

4.11 Problemas Resueltos


En la se ion problemas resueltos de los ap tulos 4 al 8, la solu i on a los
problemas se en uentra, segu n el aso, en uno o m as ar hivos on extensi on
m es ritos en odigo MATLAB.

Problema 4.1

El problema 3.1 presenta las e ua iones que gobiernan la din ami a del sis-
tema de suspension de un bus (ver gura 3.12). Disen ~ar un sistema de
ontrol optimo uadr ati o esta ionario para lograr el objetivo de ontrol si-
guiente: la salida del pro eso y = x2 x1 (referen ia nula) no debe presentar
sobreimpulsos mayores que el 5 %, y luego de alrededor de 20 segundos, las
os ila iones originadas por un disturbio es al on de 10 m (provo ada por
imperfe iones en la pista), pr a ti amente deben desapare er. La sele i on del
tiempo de muestreo es a onvenien ia del disen ~o.
% p3opt2.m SOLUCION DEL PROBLEMA 4.1
lear all
% PARAMETROS DEL PROCESO
m1 = 2500; k1 = 80000; b1 = 350;
m2 = 320; k2 = 500000; b2 = 15020;
188 Control Optimo

a23 = (b1/m1)*(b1/m1+b1/m2+b2/m2)-k1/m1;
a33 = -(b1/m1+b1/m2+b2/m2);
a43 = -(k1/m1+k1/m2+k2/m2);
% MODELO LINEAL: dx/dt = A*x + B*u + E*d; y = C*x + D*u
A = [0 1 0 0
-b1*b2/(m1*m2) 0 a23 -b1/m1
b2/m2 0 a33 1
k2/m2 0 a43 0℄;
B = [0;1/m1;0;(1/m1+1/m2)℄;
E = [0;b1*b2/(m1*m2);-b2/m2;-k2/m2℄;
C = [0 0 1 0℄; D = [0℄;
% CONVERSION AL ESPACIO DE ESTADO DISCRETO
T=0.8; % TIEMPO DE MUESTREO
[G,H,C,D℄ = 2dm(A,B,C,D,T,'zoh');
[G,F,C,D℄ = 2dm(A,E,C,D,T,'zoh');
% Contro Optimo del sistema
Q = [1 0 0 0
0 1 0 0
0 0 1 0
0 0 0 1℄;
R = [1℄;
% ECUACION DE RICCATI
P = diag(0,3); % MATRIZ DE CEROS DE ORDEN 4
for i = 1:40
P = Q + G'*P*G - G'*P*H*inv(R+H'*P*H)*H'*P*G;
end
% CALCULO DE LA MATRIZ DE GANANCIA K
K = inv(R+H'*P*H)*H'*P*G;
% SIMULACION DEL SISTEMA CONTROLADO
N = 200; x=[0;0;0;0℄; w=0.01;
for k=1:N
U=-K*x;
x = G*x + H*U + F*w;
y(k)=x(3); u(k)=U;
end
% GRAFICOS
t=linspa e(0,N*T,N);
subplot(2,1,1)
plot(t,y(1:N)), grid
ylabel('Posi ion y (m)')
xlabel('Tiempo en segundos')
subplot(2,1,2)
plot(t,u(1:N)), grid
4.11 Problemas Resueltos 189

xlabel('Tiempo en segundos')
ylabel('Control u (N)')
print -deps -f p3opt2

−3
x 10
5
Posición y (m)

−5

−10
0 20 40 60 80 100 120 140 160
Tiempo en segundos
−4
x 10
1

0.8
Control u (N)

0.6

0.4

0.2

0
0 20 40 60 80 100 120 140 160
Tiempo en segundos

Figura 4.29: Salida ontrolada y = x 1 x2 y fuerza de ontrol u orrespon-


dientes al problema 4.1.

Problema 4.2

El problema 3.2 presenta las e ua iones que gobiernan la dinami a longitudi-


nal de un avi on omer ial volando a velo idad de ru ero (altura y velo idad
onstantes). El ontrol del angulo de in lina i on del avi on (ver gura 3.14) es
un problema longitudinal a resolver. El objetivo de ontrol es disen ~ar un
autopiloto que manipulando el angulo Æe del de e tor de eleva ion, ontrole
el angulo de in lina i on del avion.
Se pide disen
~ar 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 disen
~o.
% 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;
4.11 Problemas Resueltos 191

Y = C*x;
y(k) = Y; u(k) = U;
end

% GRAFICOS
t=linspa e(0,N*T,N);
subplot(2,1,1)
plot(t,y(1:N)), grid
ylabel('In lina ion (rad)')
xlabel('Tiempo en segundos')
subplot(2,1,2)
plot(t,u(1:N)), grid
xlabel('Tiempo en segundos')
ylabel('Angulo del defle tor (rad)')
print -deps -f p4opt2

0.15
Inclinación (rad)

0.1

0.05

0
0 1 2 3 4 5 6 7 8 9 10
Tiempo en segundos

0.2
Angulo del deflector (rad)

0.15

0.1

0.05

−0.05
0 1 2 3 4 5 6 7 8 9 10
Tiempo en segundos

Figura 4.30: Angulo de in lina ion ontrolada y angulo del de e tor (sen
~al
de ontrol) orrespondientes al problema 4.2.
192 Control Optimo

Problema 4.3

En el problema 3.3 se des ribe el pro eso de la bola rodando a lo largo


de una barra, on un grado de libertad, tal omo se muestra en la gura
3.16. Una leva one ta la barra on un engranaje que est a a ionado por un
servomotor. Se desea disen ~ar un sistema de ontrol optimo que pueda
posi ionar la bola en menos de 5 s a 0.5 m de un extremo de la barra que
mide 1 m de longitud. Las os ila iones de la bola deben estar restringidas
sobre la barra y el voltaje de ontrol no debe sobrepasar los 40 volt. La sele
ion del tiempo de muestreo es a onvenien ia del disen
~o.
% p5opt2.m SOLUCION DEL PROBLEMA 4.3
lose all
% DETERMINACION DE LA ECUACION DE ESTADO
M=0.11; R=0.015; g=9.8; L=1; J=9.99*1e-6; d=0.03;
A=[0 1 0 0
0 0 (M*g*d)/(L*(J/R^2 + M)) 0
0 0 0 1
0 0 0 0℄;
B=[0;0;0;1℄;
C=[1 0 0 0℄; D=[0℄;
% PROCESO DISCRETO
T=0.1; % Tiempo de muestreo
[num1, den1℄=ss2tf(A,B,C,D);
[G,H℄= 2d(A,B,T);
% DETERMINAR SI EL PROCESO TIENE INTEGRADORES,
% ES DECIR, SI TIENE EIGENVALORES EN z=0:
% eigG = eig(G); % NO TIENE EIGENVALORES EN z=0;
% ADICIONANDO ACCION INTEGRAL
G1 = [G zeros(4,1);-C*G 1℄;
H1 = [H;-C*H℄;
% ANALIZAMOS SI LA PLANTA ES CONTROLABLE
M=[H1 G1*H1 G1^2*H1 G1^3*H1 G1^4*H1℄;
rM=rank(M); % rM=4 SISTEMA ES CONTROLABLE
% CALCULO DE LA GANANCIA DEL CONTROLADOR
Q = [1 0 0 0 0
0 1 0 0 0
0 0 1 0 0
0 0 0 1 0
0 0 0 0 1e5℄;
R = [10℄;%100
% OBTENEMOS LA GANANCIA DEL CONTROLADOR APLICANDO dlqr
[KK,P℄=dlqr(G1,H1,Q,R);
K = [KK(1) KK(2) KK(3) KK(4)℄;
4.11 Problemas Resueltos 193

KI = -KK(5);
% SIMULACION
N = 100; x=[0;0;0;0℄; v=0; Y=0;
for k=1:N
r(k)=0.5; Ref=r(k);
v = v + Ref - Y;
U = - K*x + KI*v;
x = G*x + H*U;
Y = C*x;
y(k) = Y; u(k) = U;
end
% GRAFICOS
t=linspa e(0,N*T,N);
subplot(2,1,1)
plot(t,y(1:N)), grid
ylabel('Posi ion (m)')
xlabel('Tiempo en segundos')
subplot(2,1,2)
plot(t,u(1:N)), grid
xlabel('Tiempo en segundos')
ylabel('Voltaje de ontrol')
print -deps -f p5opt2

Problema 4.4

La gura 3.20 muestra un monorriel de dos arros des rito en el problema


3.5. El problema a resolver es el ontrol de velo idad del arro de m aquinas
mediante un sistema de ontrol optimo uadrati o. Para garantizar a los
pasajeros un viaje onfortable, los ambios de velo idad deben realizarse
on un tiempo de estabiliza ion menor que 10 segundos y on m nimo so-
breimpulso. El error en estado estable debe ser nulo. Simule una sen ~al
de referen ia que ambie la velo idad de 30 a 10 m/s y demuestre que se
umplen las espe i a iones de disen~ o. La sele ion del tiempo de muestreo
es a onvenien ia del disen
~o.
% p7opt2 SOLUCION DEL PROBLEMA 4.4
lose all
% PARAMETROS DEL PROCESO:
M1=1300; M2=2600; M3=2600; K12=100000; K23=100000;
B12=500; B23=500; B1=5000; B2=10000; B3=10000;
% MODELO DEL PROCESO
A=[0 1 0 0 0 0
-K12/M1 -(B1+B12)/M1 K12/M1 B12/M1 0 0
194 Control Optimo

0.6

Posición (m)
0.4

0.2

0
0 1 2 3 4 5 6 7 8 9 10
Tiempo en segundos

40
Voltaje de control

20

−20

−40
0 1 2 3 4 5 6 7 8 9 10
Tiempo en segundos

Figura 4.31: Posi ion de la bola y el voltaje de ontrol para el problema 4.3.

0 0 0 1 0 0
K12/M2 B12/M2 -(K12+K23)/M2 -(B2+B23+B12)/M2 K23/M2 B23/M2
0 0 0 0 0 1
0 0 K23/M3 B23/M3 -K23/M3 -(B3+B23)/M3℄;
B=[0 1 0 0 0 0℄';
alfa = 1; % CONSTANTE TACOMETRICA
C=[ 0 alfa 0 0 0 0
0 0 0 alfa 0 0
0 0 0 0 0 alfa℄;
D=[0;0;0℄;
[num ,den ℄=ss2tf(A,B,C,D);
% MODELO LINEAL DISCRETO
T = 0.2; % per odo de muestreo
[G,H,C,D℄= 2dm(A,B,C,D,T,'zoh');
% ADICIONANDO ACCION INTEGRAL
G1 = [G zeros(6,1);-C(1,:)*G 1℄;
H1 = [H;-C(1,:)*H℄;
% CALCULO DE LA GANANCIA DEL CONTROLADOR
Q = [1 0 0 0 0 0 0
0 1 0 0 0 0 0
0 0 1 0 0 0 0
4.11 Problemas Resueltos 195

0 0 0 1 0 0 0
0 0 0 0 1 0 0
0 0 0 0 0 1 0
0 0 0 0 0 0 100℄;
R = [10℄;
% OBTENEMOS LA GANANCIA DEL CONTROLADOR APLICANDO dlqr
[KK,P℄=dlqr(G1,H1,Q,R);
% SEPARAMOS LA ACCION INTEGRAL
K = [KK(1) KK(2) KK(3) KK(4) KK(5) KK(6)℄;
KI = -KK(7);
% SIMULACION
N = 500; x=[0;0;0;0;0;0℄; v=0; Y=0;
for k=1:N
r(k)=20 + 10*sign(sin(0.02*k)); Ref=r(k);
v = v + Ref - Y;
U = - K*x + KI*v;
x = G*x + H*U;
Y = C(1,:)*x;
y(k) = Y; u(k) = U;
end
% GRAFICOS
t=linspa e(0,N*T,N);
subplot(2,1,1)
plot(t,y(1:N),t,r(1:N)), grid
ylabel('Velo idad (m/s)')
xlabel('Tiempo en segundos')
subplot(2,1,2)
plot(t,u(1:N)), grid
xlabel('Tiempo en segundos')
ylabel('Fuerza de ontrol (N)')
print -deps -f p7opt2

Problema 4.5

La gura 3.22 muestra el pro eso as ensor tratado en el problema 3.6. El


problema a resolver es posi ionar suavemente el as ensor en un piso deter-
minado, lo que signi a sobreimpulso nulo (para que no se pase de piso) y
tiempo de estabiliza ion menor que 10 s. Para no saturar al a tuador (el
ampli ador de poten ia), la sen ~al de ontrol debe estar dentro del rango de
200 volt. Disen~ar un sistema de ontrol optimo uadrati o esta ionario
de posi i on que umpla las espe i a iones pedidas. La sele i on del tiempo de
muestreo es a onvenien ia del disen ~o.
196 Control Optimo

30

25

Velocidad (m/s)
20

15

10

5
0 10 20 30 40 50 60 70 80 90 100
Tiempo en segundos

600
Fuerza de control (N)

400

200

0
0 10 20 30 40 50 60 70 80 90 100
Tiempo en segundos

Figura 4.32: Velo idad del arro de m aquinas y la fuerza de ontrol para el
problema 4.4.

% 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
4.11 Problemas Resueltos 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 id enti os olo ados en as ada. La se ion
horizontal A=9 m2 de ada tanque es onstante. El objetivo de ontrol es
198 Control Optimo

Posición (m)
0

−2

−4
0 5 10 15 20 25 30 35 40
Tiempo en segundos

100
Voltaje de control

−100

−200
0 5 10 15 20 25 30 35 40
Tiempo en segundos

Figura 4.33: Posi i on del as ensor y la fuerza de ontrol orrespondientes al


problema 4.5.

ontrolar la altura H2 empleando el ujo Qo. La dedu ion del modelo


linealizado del pro eso se deriv en el ejemplo 2.1. Disen~ar un ontrolador
optimo uadrati o esta ionario on las espe i a iones siguientes: tiempo
de estabiliza ion menor que 20 s, sobreimpulso menor al 5 % y error nulo en
estado estable. El ujo de entrada (la sen ~al de ontrol) no debe sobrepasar
los 3 m3 /s. La sele ion del tiempo de muestreo es a onvenien ia del disen
~o.
% p9opt2.m SOLUCION DEL PROBLEMA 4.6
lear all
% DEERMINACION DE LAS MATRICES DE LA ECUACION DE ESTADO
gam=0.4; rho=1.23; g=9.81; A=9; Qo=3;
H1eq = Qo^2/(gam^2*rho*g);
a11 = -((gam*((rho*g)^1/2))/(2*A*((H1eq)^1/2)));
A=[a11 0
-a11 a11℄;
B=[1; 0℄;
C=[0 1℄; D=[0℄;
% DISCRETIZACION DEL SISTEMA
T = 0.2;
[G,H℄= 2d(A,B,T);
% VERIFICANDO SI LA PLANTA TIENE ACCION INTEGRAL
% eigG=eig(G); % NO TIENE POLOS EN z=0;
4.11 Problemas Resueltos 199

% ADICIONANDO ACCION INTEGRAL


G1 = [G zeros(2,1);-C*G 1℄; H1 = [H;-C*H℄;
% CALCULO DE LA GANANCIA DEL CONTROLADOR
Q = [1 0 0
0 1 0
0 0 0.02℄;
R = [2℄;
% OBTENEMOS LA GANANCIA DEL CONTROLADOR APLICANDO dlqr
[KK,P℄=dlqr(G1,H1,Q,R);
% SEPARAMOS LA ACCION INTEGRAL
K = [KK(1) KK(2)℄;
KI = -KK(3);
% SIMULACION
N = 200; x=[0;0℄; v=0; Y=0;
for k=1:N
r(k)=3; Ref=r(k);
v = v + Ref - Y;
U = - K*x + KI*v;
if(U > 5)
U = 5;
elseif(U < 0)
U = 0;
end
x = G*x + H*U;
Y = C(1,:)*x;
y(k) = Y; u(k) = U;
end
% GRAFICOS
t=linspa e(0,N*T,N);
subplot(2,1,1)
plot(t,y(1:N),t,r(1:N)), grid
ylabel('Nivel (m)')
xlabel('Tiempo en segundos')
subplot(2,1,2)
plot(t,u(1:N)), grid
xlabel('Tiempo en segundos')
ylabel('Flujo de ontrol (m^3/s)')
print -deps -f p9opt2

Problema 4.7

El pro eso ele trome ani o mostrado en la gura 3.26 se des ribe en el pro-
blema 3.8. Disen ~ar un sistema de ontrol optimo uadrati o esta ionario
200 Control Optimo

Nivel (m)
2

0
0 5 10 15 20 25 30 35 40
Tiempo en segundos

1.5
Flujo de control (m^3/s)

0.5

0
0 5 10 15 20 25 30 35 40
Tiempo en segundos

Figura 4.34: Nivel ontrolado H 2 y el ujo de ontrol para el problema 4.6.

para ontrolar la velo idad angular del eje del motor mediante el voltaje de
entrada que puede variar entre 100 volt.
% p11opt2.m SOLUCION DEL PROBLEMA 4.7
lear all
% PARAMETROS GENERALES
nn = 3; r=1; % nn: ORDEN DEL PROCESO; r: NUMERO DE SALIDAS
NN = 7; % ORDEN DEL VECTOR ESTIMADO DE PARAMETROS
% PARAMETROS DEL SISTEMA:
J = 0.01; % MOMENTO DE INERCIA DEL MOTOR (kgm2/s2)
Ke =0.01; Kt = 0.01; % CONSTANTE ELECTROMOTRIZ (Nm/A)
R = 12; % RESISTENCIA (Ohmios)
C = 0.5; % CONDENSADOR (uF)
L = 0.5; % INDUCTANCIA DE LA ARMADURA (H)
Kw = 1.8; % CONSTANTE TORSIONAL (Nm/rad)
% MODELO LINEAL DEL PROCESO EN TIEMPO CONTINUO
A = [-1/(R*C) -1/C 0;...
Kw/(L*Kw + Kt*Ke) 0 -Ke*Kw/(L*Kw + Kt*Ke);0 Kt/J 0℄;
B = [1/(R*C);0;0℄;
C = [0 0 1℄; D = [0℄;
T = 0.05; % PERIODO DE MUESTREO
% MODELO LINEAL DISCRETO
[G,H,C,D℄= 2dm(A ,B ,C ,D ,T,'zoh');
4.11 Problemas Resueltos 201

[num,den℄=ss2tf(G,H,C,D);
a1 = den(2); a2 = den(3); a3=den(4);
b1 = num(2); b2 = num(3); b3=num(4);

% VERIFICANDO SI LA PLANTA TIENE ACCION INTEGRAL


% rai es = eig(G); % NO TIENE POLOS z=0;

% ADICIONANDO ACCION INTEGRAL


G1 = [G zeros(3,1);-C*G 1℄;
H1 = [H;-C*H℄;
% CALCULO DE LA GANANCIA DEL CONTROLADOR
Q = [1 0 0 0
0 1 0 0
0 0 1 0
0 0 0 0.1℄;
R = [0.1℄;

% CONTROL OPTIMO DEL SISTEMA


% 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)℄;
KI = -KK(4);

% SIMULACION
N = 600; x=[0;0;0℄; v=0; Y=0;
for k=1:N
r(k)=5*sign(sin(0.008*k)); Ref=r(k);
v = v + Ref - Y;
U = - K*x + KI*v;
% if(U > 24)
% U = 24;
% elseif(U < -24)
% U = -24;
% end
x = G*x + H*U;
Y = C(1,:)*x;
y(k) = Y; u(k) = U;
end
% GRAFICOS
t=linspa e(0,N*T,N);
subplot(2,1,1)
plot(t,y(1:N),t,r(1:N)), grid
202 Control Optimo

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

10
Velocidad (rad/s)

−5

−10
0 5 10 15 20 25 30
Tiempo en segundos

40

20
Voltaje de control

−20

−40

−60
0 5 10 15 20 25 30
Tiempo en segundos

Figura 4.35: Velo idad angular ontrolada y el voltaje de ontrol para el


problema 4.7.

4.12 Problemas Propuestos

Problema 4.8

Demostrar que el valor m nimo de la fun ion de osto des rita en la e ua ion
4.11):

J =
1 T
x (N )Sx(N ) +
1 N1 X xT (k)Qx(k) + uT (k)Ru(k)
2 2
k=0
4.12 Problemas Propuestos 203

esta dada por la expresion:


1
Jmin = xT (0)P (0)x(0)
2
donde los argumentos nulos representan el tiempo dis reto nulo ini ial.

Problema 4.9

Las e ua iones del modelo linealizado para ontrolar la posi ion del an
~o n
montado en la torreta de un tanque (ver gura 3.28) empleando un a tuador
hidr auli o se detallan en el problema 3.9.
(a) Disen~ar un sistema de ontrol optimo esta ionario para ontrolar el
angulo de eleva i on on las espe i a iones siguientes: tiempo de
estabiliza i on menor de 2 s, sobreimpulso y error en estado esta ionario
nulos. Los disturbios tipo es al on pueden a tuar simultaneamente o
no y pueden ser positivos o negativos. Para ada aso, el sistema de
ontrol optimo debe ser apaz de minimizar sus efe tos. La sele i on
del tiempo de muestreo es a onvenien ia del disen ~o.
(b) Lo mismo que (a), pero en este aso para ontrolar el angulo azimutal.

Problema 4.10

El pro eso olumna de destila ion se des ribe en el problema 3.10 y se mues-
tra en la gura 3.29. Disen ~ar un sistema de ontrol optimo multivaria-
ble esta ionario para ontrolar las temperaturas residuales T 1 = 13 z1 y
T2 = 24 z2 on las espe i a iones siguientes: error en estado esta-
ionario nulo, sobreimpulso menor al 5 % y tiempo de estabiliza ion menor
que 0.1 horas. Considerar disturbios unitarios a tuando sobre el pro eso
multivariable. La sele ion del tiempo de muestreo es a onvenien ia del disen
~o.

Problema 4.11

La gura 3.31 muestra el pro eso servomotor on arga no lineal des rito
en la se i on 3.3, en donde la arga no lineal posee ahora dos grados de
libertad on Lo = 2L1=3 y Mo=0.02 kg. La uni on de la arga on el eje
del servomotor no es exible. Las e ua iones que des riben la din ami a del
sistema son materia del problema 3.12. Disen ~ar un sistema de ontrol
optimo esta ionario para ontrolar simult aneamente las posi iones y on
m nimo tiempo de estabiliza ion y m nimo sobreimpulso.
204 Control Optimo

Problema 4.12
La gura 3.32 muestra el pro eso p endulo doble no lineal, el ual es una
extension del p endulo simple des rito en la se ion 3.1. El a oplamien-
to entre los dos p endulos de igual longitud no es exible. Las e ua iones
que des riben la dinami a del sistema son materia del problema propuesto
3.13. Disen~ar un sistema de ontrol optimo no esta ionario para ontrolar
simult aneamente las posi iones y on m nimo tiempo de estabiliza i on
y m nimo sobreimpulso, de modo tal que el p endulo doble permanez a en
posi ion verti al.
Problema 4.13
La gura 3.33 muestra el pro eso doble gru a-puente no lineal, el ual es una
extension del pro eso gru a-puente es rito en la se i on 3.2. El a oplamiento
entre las dos se iones iguales de la varilla no es exible. Las e ua iones que
des riben la dinami a del sistema son materia del problema propuesto 3.14.
Considerar que la arga esf eri a es de 0.02 kg. Disen~ar un sistema de ontrol
optimo esta ionario para ontrolar simultaneamente las posi iones y on
m nimo tiempo de estabiliza i on y m nimo sobreimpulso, de modo tal que
la gru a-puente doble permanez a en posi ion verti al uando el arro realiza
un re orrido predeterminado..
Problema 4.14
En la se i on anterior se disen ~aron sistemas de ontrol optimo esta ionario
para varios pro esos. Ahora abordaremos el disen ~o de sistemas de ontrol
optimo no esta ionarios.
Disen~ar un sistema de ontrol optimo no esta ionario; es de ir, determi-
nar la ley de ontrol u(k) que minimi e la siguiente fun i on de osto:

J=
1 T
2
[x (N )Sx + 2 X
1 N1 T
[x (k)Qx + uT (N )Ru℄
k=0

para una ondi i on ini ial x(0) = arbitraria y para un valor de N para el ual
la o las salidas ontroladas umplan las espe i a iones de disen ~o. Sele
ionar apropiadamente el tiempo de muestreo y las matri es de pon- dera ion.
Gra ar la o las salidas ontroladas y las orrespondientes sen ~ ales de ontrol.
Cal ular tambi en el valor m nimo de la fun ion de osto. Re- alizar los al
ulos requeridos anteriormente para ada uno de los pro esos tratados en los
problemas 4.1, 4.2, 4.3, 4.4, 4.5, 4.6 y 4.7.
Cap tulo 5

Control Adaptivo

En este ap tulo se desarrolla un pro edimiento para disen~ar un sistema de on-


trol 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 t erminos no lineales ompli an
los aspe tos anal ti os de modelado del pro eso y de disen~o del ontrolador.
Sin embargo, basado en el orrespondiente modelo lineal del pro eso, podemos
estru turar un sistema de ontrol adaptivo on autosintoniza i on ombinan-
do algoritmos lineales de ontrol on pro edimiento para estimar en linea los
parametros y los estados del pro eso.
En la antepenu ltima se i on de este ap tulo se presenta una apli a ion
para demostrar la validez del pro edimiento de disen~o: ontrol de posi i on de
un servomotor D.C. expuesto a argas no lineales. La penultima se ion, pro-
blemas resueltos, est dedi ada al disen~o de sistemas de ontrol adaptivo on
autosintoniza i on para diferentes pro esos. La ultima se ion propone proble-
mas de disen~o. Todos los ar hivos orrespondientes a los ejer i ios, problemas,
disen
~os, simula iones y software desarrollados se pueden des argar del sitio:
http:/ ee.uni.edu.pe/728681F.

5.1 Introdu i on
Los sistemas de ontrol adaptivo ajustan su omportamiento a las am-
biantes propiedades del pro eso ontrolado y de las sen
~ales que intera tu an
sobre di ho pro eso. Por el ontrario, los sistemas de ontrol jos se a-
ra terizan por la presen ia de una ley de ontrol invariable on el tiempo.
206 Control Adaptivo

La investiga ion sobre ontroladores adaptivos se ha entrado en dos grupos


prin ipales: ontroladores adaptivos on un modelo referen ial y ontro-
ladores on autosintoniza i on. En este ap tulo se emplea la on gura i on
de un sistema de ontrol adaptivo on autosintoniza i on mostrado en la -
gura 5.1. Tal sistema ombina en su disen ~o un m etodo de estima i on de
parametros (el de los m nimos uadrados re ursivo mejorado), una t e ni a
de estima i on de estados (el ltro de Kalman), una representa ion lineal
del modelo del pro eso, y una ley de ontrol (el ontrolador propor ional-
integral optimo uadrati o on realimenta ion de estados). El objetivo del
ontrol es determinar una fuerza de ontrol apaz de minimizar la diferen ia
entre la salida del pro eso y la sen
~ al de referen ia.

^x ^
ESTIMADOR  ESTIMADOR DE
DE ESTADOS PARAMETROS

U ESTIMACION MODELO
DE U LINEAL

+
Y CONTROLADOR CON + PROCESO Y
+ AUTOSINTONIZACION u U NO LINEAL
-
DISTURBIOS

Figura 5.1: Con gura i on del sistema de ontrol on autosintoniza i on.

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 par ametros ^ 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 i on U = U + u.
Este ap tulo est 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 l nea (\on-line") los parametros y estados del
5.2 Modelando Pro esos No Lineales 207

modelo del pro eso se desarrollan en la se ion 5.3, mientras que el algo-
ritmo del ontrolador on autosintoniza ion se deriva en la se i on 5.4. La
se i on 5.5 presenta el pro edimiento para disen
~ar un sistema de ontrol on
autosintoniza i on. Una apli a i on se propor iona en la se ion 5.6: ontrol
de posi ion de un servomotor sujeto a argas no lineales.

5.2 Modelando Pro esos No Lineales


Consideremos el siguiente pro eso dinami o ontinuo:

_ = f (X; U (t); v(X; t); t)


X (5.1)

donde X (de orden n) y U (t) (de orden uno) son el ve tor de estado y la
ley de ontrol, respe tivamente. La fun ion no lineal f (:) puede tambi en
ontener disturbios v(:) en los estados. De la e ua ion (5.1), es posible
obtener el modelo lineal siguiente:

_ (t) = [A +
X A℄X(t) + [B + B℄U (t) + v(X; t)

Y (t) = [C + C℄X + w(X; t) (5.2)


donde A es la matriz de estado de dimensi on 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 i on polinomial residual toma la forma:

A(z 1)y(z) = B(z 1


)u(z) (5.4)
208 Control Adaptivo

donde z es el operador de desplazamiento, on:

A(z 1) = 1 + a1z 1 + : : : + anz n


B(z 1) = b 1z 1
+ : : : + bnz n
(5.5)

Empleando ahora las rela iones residuales: y = Y Y, x = X X y


u = U U en las e ua iones (5.3) y (5.4) obtenemos:

x(k + 1) = Gx(k) + Hu(k); y(k) = Cx(k) (5.6)

A(z 1
)Y (k) = B(z 1
)U (k) + C (5.7)
donde la onstante C se determina de:
C = (1 + a 1 + : : : + an )Y (b1 + : : : + bn )U (5.8)

5.3 Pro edimientos de Estima ion


Esta se ion presenta los pro edimientos para estimar (o identi ar) en l nea
los parametros y los estados del modelo del pro eso.

5.3.1 El M etodo de los M nimos Cuadrados Re ursivo


Para estimar los parametros del modelo del pro eso usaremos las sen ~ales
a tuales U (k) e Y (k) en lugar de sus desvia iones u(k) e y(k). Para ello, la
des rip i on 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 i on) ontiene los valores pre-
sentes y pasados de la entrada U y de la salida Y omo sigue:
T
(k) = [Y (k 1) : : : Y (k n) U (k 1) : : : U (k n) 1℄ (5.10)

y el ve tor ^ ontiene los par ametros a ser estimados, a saber:

^(k) = [ a
^ 1 (k) : : : a^n (k) ^b1 (k) : : : ^bn (k) ^℄T C (5.11)

Notar que en la e ua ion (5.9), el orden del ve tor de informa ion y el orden
del ve tor de parametros es 2n+1; es de ir, di hos ve tores han in rementado
5.3 Pro edimientos de Estima ion 209

su orden en uno. La e ua i on (5.7) on z = 1 (propiedad del valor nal)


representa la ondi i on de estado estable, es de ir:
A(1)Y = B(1)U + C (5.12)
El algoritmo b asi o de los m nimos uadrados re ursivo puede implementarse
en la forma siguiente:
1) Obtener el ve tor de parametros ini ial ^(0) usando los valores de los
par ametros del modelo del pro eso (e ua ion (5.5)).

C
2) Obtener el valor ini ial del parametro (0) empleando la e ua ion
(5.8), onsiderando U = 0 e Y igual a la sen
~al de referen ia.
3) La matriz de ovarianza ini ial P puede tener la forma P = I, donde
I es la matriz identidad y 1.
4) Tomar nuevas medi iones de Y (k) y de U (K) en el pro eso, para
obtener una nueva e ua i on de la forma dada en (5.9).
5) Computar el error de estima ion (ver e ua iones (5.10) y (5.11)):
e(k) = Y (k) T (k) ^(k)

6) Sabiendo que P (k) = [ T (k) (k)℄ 1 , omputar: i(k) = P (k) (k).


7) Computar:
T
j(k) = (k)i(k); (k) = i(k)=[ + j(k)℄
^(k + 1) = ^(k) + (k)e(k); P (k + 1) = [I (k) T (k)℄P (k)=
7) A tualizar: P (k + 1) = P (k) y ^(k + 1) = ^(k)
Ejemplo 5.1
Estimar los par ametros del pro eso servomotor D.C. on arga no lineal
des rito en la se i on 3.3, empleando el m etodo de los m nimos uadrados
re ursivo. Emplee el modelo lineal de segundo orden del pro eso y omo sen
~ al
ex itadora use un es alon de magnitud 0.4. Gra que la respuesta del pro
eso.
Solu i on: El programa ejem5 1.m estima los par ametros 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 par ametro estimado onverge a un valor que es aproximadamente
el valor del orrespondiente par ametro del modelo dis reto.
210 Control Adaptivo

% ejem5_1.m ESTIMACION DE PARAMETROS EMPLEANDO EL METODO


% DE LOS MINIMOS CUADRADOS RECURSIVO
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.0352e-3; R = 7.38; m = 0.06377;
Ka t = 14.9; = 0.25; Mo = 0.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;
M = Jeff + (1/3)*m*Lo^2 + Mo*Lo^2 + (2/5)*Mo*Ro^2;
N = g*Lo*(Mo+m/2);
% MODELO LINEAL CONTINUO DEL PROCESO DE SEGUNDO ORDEN
A = [0 1;-N/M -(B + n^2*K*E/R)/M℄; % ( : CONTINUO)
B = [0;n*K*Ka t/(R*M)℄;
C = [1 0℄; D = [0℄;
% MODELO LINEAL DISCRETO DEL PROCESO DE SEGUNDO ORDEN
T = 0.01; % PERIODO DE MUESTREO
[G,H,C,D℄= 2dm(A ,B ,C ,D ,T,'zoh');
[num,den℄=ss2tf(G,H,C,D);
a1 = den(2); a2 = den(3);
b1 = num(2); b2 = num(3);
% CONDICIONES INICIALES Y OTROS PARAMETROS
alfa=1000; Pi = alfa*eye(5); % MATRIZ P INICIAL
theta_p = [-a1 -a2 b1 b2℄'; % PARAMETROS DEL PROCESO
thetai = [0 0 0 0 0℄'; % PARAMETROS INICIALES
lambda = 0.99; % FACTOR DE MEMORIA
Y(1) = 0; Y(2) = 0; U(1) = 0; U(2) = 0;
% PROCEDIMIENTO DE IDENTIFICACION
Mm = 1000;
for r = 1:Mm
k = r + 2;
U(k) = 0.4;
psi_p = [Y(k-1) Y(k-2) U(k-1) U(k-2)℄';
Y(k) = psi_p'*theta_p; % MODELO LINEAL DEL PROCESO
psi = [psi_p;1℄; % VECTOR DE DATOS
e = Y(k)-psi'*thetai; % ERROR DE ESTIMACION
i = Pi*psi;
j = psi'*i;
gamma = i/(lambda + j);
5.3 Pro edimientos de Estima ion 211

theta = thetai+gamma*e; % VECTOR DE PARAMETROS


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
P = (eye(5) - gamma*psi')*Pi/lambda;
% ACTUALIZACION
thetai = theta;
Pi = P;
end
% GRAFICOS
q=0:Mm-1;
figure(1)
subplot(2,1,1)
plot(q,U(1:Mm)); grid
ylabel('SE~NAL EXCITATRIZ U')
xlabel('MUESTRAS DISCRETAS k = 0.01 s')
subplot(2,1,2)
plot(q,Y(1:Mm)); grid
ylabel('RESPUESTA Y DEL PROCESO')
xlabel('MUESTRAS (CADA MUESTRA EQUIVALE A 0.01 s)')
print -deps -f ejem5_1a
figure(2)
plot(q,ae1,q,ae2,'-.'); grid
xlabel('MUESTRAS (CADA MUESTRA EQUIVALE A 0.01 s) ')
ylabel('PARAMETROS ESTIMADOS')
print -deps -f ejem5_1b
figure(3)
plot(q,be1,q,be2,'-.'); grid
xlabel('MUESTRAS (CADA MUESTRA EQUIVALE A 0.01 s)')
ylabel('PARAMETROS ESTIMADOS')
print -deps -f ejem5_1

5.3.2 M nimos Cuadrados Re ursivo Mejorado

El algoritmo basi o de los m nimos uadrados re ursivo se en uentra bas-


tante difundido. Sin embargo, di ho algoritmo puede presentar problemas
poten iales de ara ter num eri o que podr an afe tar el disen
~o nal del on-
trolador on autosintoniza ion. Por tal motivo, en este ap tulo se emplea
el m etodo de los m nimos uadrados re ursivo mejorado propuesto en [5℄, el
ual puede implementarse en la forma siguiente:
212 Control Adaptivo

0.4

SEÑAL EXCITATRIZ U
0.3

0.2

0.1

0
0 100 200 300 400 500 600 700 800 900 1000
MUESTRAS DISCRETAS k = 0.01 s
RESPUESTA Y DEL PROCESO

2.5

1.5

0.5

0
0 100 200 300 400 500 600 700 800 900 1000
MUESTRAS (CADA MUESTRA EQUIVALE A 0.01 s)

Figura 5.2: Respuesta del modelo lineal del pro eso a un es alon de magnitud
U = 0.4.

0.5
PARAMETROS ESTIMADOS

−0.5

−1

−1.5

−2
0 100 200 300 400 500 600 700 800 900 1000
MUESTRAS (CADA MUESTRA EQUIVALE A 0.01 s)

Figura 5.3: Parametros estimados a


^1 (k) ( urva solida) y a
^2 (k).
5.3 Pro edimientos de Estima ion 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 900 1000
MUESTRAS (CADA MUESTRA EQUIVALE A 0.01 s)

Figura 5.4: Parametros estimados ^b1 (k) ( urva solida) y ^b2 (k).

1) Obtener el ve tor de parametros ini ial ^(0) usando los valores de los
par ametros del modelo del pro eso dadas en la e ua i on (5.4).

2) Obtener el valor ini ial del parametro (0) empleando la e ua i on C


(5.8), onsiderando U = 0 e Y igual a la sen
~ al de referen ia.
3) La matriz de ovarianza ini ial P puede tener la forma P = I, donde
I es la matriz identidad y 1.

4) Tomar nuevas medi iones de Y (k) y de U (K) en el pro eso, para


obtener una nueva e ua i on de la forma dada en (5.9).

5) Computar: (k) = max(1; k k


(k) ); n = = (k)

6) Determinar la matriz N (k) apli ando fa toriza ion Cholesky en:

N (k)N (k)T = P (k)

7) Determinar la matriz diagonal de es alamiento S(k) on elementos sjj.


Tal matriz minimiza el nu mero ondi ional del produ to S(k)N (k)
siempre que sjj = 1=njj, donde ada njj se obtiene tomando el valor
absoluto de la suma de los elementos de la la j de N (k).
214 Control Adaptivo

8) Computar:
PS(k) = S(k)P (k)S(k)
1
nS = [S(k)℄ n

r(k) = 1 +nST (k)PS (k 1) nS(k)

1
" r(k) s (k) k
4 PS (k 1)
tr PS
nS (k) k2
#
(k) = 1 2 r2
en(k) = Y (k)= (k) T (k)n ^(k 1) (k 1)
(k + 1)PS(k) nS(k + 1) + (k)℄
j(k) = [ T nS
^(k + 1) = ^(k) + S 1(k)P S(k) nS(k)e n(k + 1)=j(k)
1
nS1)PS(k) nS(k + 1) + (k)℄
HnS(k + 1) = PS(k) nS(k + 1) [ T (k +

nS (k + 1)℄PS(k)= (k)
T
PS(k + 1) = [I HnS(k + 1)
max eig(PS )
tt = abs
min eig(PS )
9) Implementar el riterio para parar la estima ion y para en ontrar la
nueva matriz de es alamiento Nnew omo sigue: sabiendo que tt es el
numero ondi ionante de PS , si tt ( ota inferior), parar la
estima i on; en otro aso, si tt ( ota superior), determinar N new(k)
(a partir de la rela i on PS = NnewN T new
), al ular los elementos nnew jj
(valor absoluto de la suma de los elementos de las las de Nnew(k)),
determinar la matriz diagonal Snew on elementos snewjj = 1=nnewjj , y
al ular la matriz P newS = SnewPSSnew. Finalmente, a tualizar: P =
PnewS .

Ejemplo 5.2

Estimar los par ametros del pro eso servomotor D.C. on arga no lineal
des rito en la se i on 3.3, empleando el m etodo de los m nimos uadrados
re ursivo mejorado. Emplee el modelo no lineal de segundo orden del pro-
eso y omo sen ~al ex itadora use un es alon de magnitud 0.4. Gra que la
respuesta del pro eso.
Solu ion: El programa ejem5 2.m estima los parametros para el pro eso
pedido. La gura 5.5 gra a la respuesta Y del pro eso a un es alon U
= 0.4. Las guras 5.6 y 5.7 muestran los par ametros estimados. Podemos
observar que ada parametro estimado onverge a un valor onstante.
5.3 Pro edimientos de Estima ion 215

% ejem5_2.m ESTIMACION DE PARAMETROS EMPLEANDO EL METODO


% DE LOS MINIMOS CUADRADOS RECURSIVO MEJORADO
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; R = 7.38; m = 0.06377;
Ka t = 14.9; = 0.25; Lo = 0.776;
K = 31.071e-3; n = 19.741; L = 4.64e-2;
Mo = 0.0; % peso variable: 0 gr, 10 gr, 20 gr y 45 gr

B = n^2*bm +bL;
Jeff = n^2*Jm +JL;
M = Jeff + (1/3)*m*Lo^2 + Mo*Lo^2 + (2/5)*Mo*Ro^2;
N = g*Lo*(Mo+m/2);
% MODELO LINEAL CONTINUO DEL PROCESO DE SEGUNDO ORDEN
A = [0 1;-N/M -(B + n^2*K*E/R)/M℄; % ( : CONTINUO)
B = [0;n*K*Ka t/(R*M)℄;
C = [1 0℄; D = [0℄;
% MODELO LINEAL DISCRETO DEL PROCESO DE SEGUNDO ORDEN
T = 0.01; % PERIODO DE MUESTREO
[G,H,C,D℄= 2dm(A ,B ,C ,D ,T,'zoh');
[num,den℄=ss2tf(G,H,C,D);
a1 = den(2); a2 = den(3);
b1 = num(2); b2 = num(3);
% CONDICIONES INICIALES (ARBITRARIAS) Y OTROS PARAMETROS
alfa=1000; N = 5; Pi = alfa*eye(N); % MATRIZ P INICIAL
theta_p = [-a1 -a2 b1 b2℄'; % PARAMETROS DEL PROCESO
thetai = [-a1/3 -a2/2 3*b1 2*b2 0℄'; % PARAMETROS INICIALES
lambda = 0.99; % FACTOR DE MEMORIA
Y(1) = 0; Y(2) = 0; U(1) = 0; U(2) = 0;
x1 = 0; x2 = 0;
% PROCEDIMIENTO DE IDENTIFICACION
Mm = 1000;
for r = 1:Mm
k = r + 2;
U(k) = 0.4;
% MODELO NO LINEAL DE SEGUNDO ORDEN DISCRETIZADO DIRECTAMENTE
TN = *sign(x2);
x1=x1+T*x2;
x2=x2+T*(-(N/M)*sin(x1) - (B/M + n^2*K*E/(M*R))*x2 - TN/M ...
+ (n*K*Ka t/(R*M))*U(k) );
Y(k) = x1;
216 Control Adaptivo

% PROCEDIMIENTO DE IDENTIFICACION
psi_p = [Y(k-1) Y(k-2) U(k-1) U(k-2)℄';
psi = [Y(k-1) Y(k-2) U(k-1) U(k-2) 1℄';
nor = max(1,norm(psi));
psin = psi/nor;
Q = hol(Pi');
S = inv(diag(Q*ones(N,1),0));
Ps = S*Pi*S;
psins = inv(S)*psin;
rt = 1 + psins'*Ps*psins;
LF = 1 - (rt-sqrt(rt^2-4*norm(Ps*psins)^2/tra e(Ps)))/2;
e = Y(k)/nor - thetai'*psin;
div = psins'*Ps*psins + LF;
theta = thetai + e*inv(S)*Ps*psins/div;
ae1(r) = -theta(1); % PARAMETRO a1 ESTIMADO
ae2(r) = -theta(2); % PARAMETRO a2 ESTIMADO
be1(r) = theta(3); % PARAMETRO b1 ESTIMADO
be2(r) = theta(4); % PARAMETRO b2 ESTIMADO
Hns = Ps*psins/div;
Ps = Ps/LF - Hns*psins'*Ps/LF;
tt = abs(max(eig(Ps))/min(eig(Ps)) );
max = 100; min = 15;
if tt <= min,
thetai = theta; Pi = Ps;
elseif tt >= max,
Qnew = hol(Ps');
Snew = inv(diag(Qnew*ones(N,1),0));
Psnew = Snew*Ps*Snew;
Pi = Psnew; thetai = theta;
end
end
% GRAFICOS
q=0:Mm-1;
figure(1)
subplot(2,1,1)
plot(q,U(1:Mm))
ylabel('SENAL EXCITATRIZ U')
grid
subplot(2,1,2)
plot(q,Y(1:Mm))
ylabel('RESPUESTA Y DEL PROCESO')
xlabel('MUESTRAS (CADA MUESTRA EQUIVALE A 0.01 s)')
grid
5.3 Pro edimientos de Estima ion 217

print -deps -f ejem5_2a


figure(2)
plot(q,ae1,q,ae2)
text(250,0.55,'a2');
text(250,-0.7,'a1');
xlabel('MUESTRAS (CADA MUESTRA EQUIVALE A 0.01 s)')
ylabel('PARAMETROS ESTIMADOS')
grid
print -deps -f ejem5_2b
figure(3)
plot(q,be1,q,be2)
text(250,2.5e-3,'b1');
text(250,-3e-3,'b2');
xlabel('MUESTRAS (CADA MUESTRA EQUIVALE A 0.01 s)')
ylabel('PARAMETROS ESTIMADOS')
grid
print -deps -f ejem5_2

0.4
SEÑAL EXCITATRIZ U

0.3

0.2

0.1

0
0 100 200 300 400 500 600 700 800 900 1000
RESPUESTA Y DEL PROCESO

0.15

0.1

0.05

0
0 100 200 300 400 500 600 700 800 900 1000
MUESTRAS (CADA MUESTRA EQUIVALE A 0.01 s)

Figura 5.5: Respuesta del pro eso no lineal a un es al on de valor U = 0.4.


218 Control Adaptivo

0.6
a2

0.4

0.2
PARAMETROS ESTIMADOS

−0.2

−0.4

−0.6

a1
−0.8
0 100 200 300 400 500 600 700 800 900 1000
MUESTRAS (CADA MUESTRA EQUIVALE A 0.01 s)

Figura 5.6: parametros estimados a


^1 (k) y a
^2 (k).

−3
x 10
14

12

10

8
PARAMETROS ESTIMADOS

b1
2

−2
b2
−4

−6
0 100 200 300 400 500 600 700 800 900 1000
MUESTRAS (CADA MUESTRA EQUIVALE A 0.01 s)

Figura 5.7: parametros estimados ^b1 (k) y ^b2 (k).


5.4 La Ley de Control 219

5.3.3 Estima ion de Estados


De la e ua i on (5.6) podemos obtener el siguiente modelo nominal pertur-
bado 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 i on anterior nos pro-
por iona el ve tor de parametros estimado del pro eso ^(k). Usando los
elementos de di ho ve tor de par ametros, podemos re onstruir las matri es
estimadas G ^ (k), H
^ (k) y C^ (k). El ve tor de estado estimado x^(k) puede ser
obtenido empleando un ltro de Kalman [6℄, on e ua ion de observa i on:

x
^(k) = x(k) + Ko (k)[y(k) C^ (k)x(k)℄ (5.14)

y e ua ion de a tualiza i on de estados:


^ (k)x
x(k + 1) = G ^ (k)u(k)
^(k) + H (5.15)

En la e ua i on (5.14), la matriz de ganan ia K o(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 de nida positiva, solu ion uni a de la siguiente


e ua i on matri ial dis reta aso iada de Ri ati:
^ ( T )(k)Po (k)G
Po (k + 1) = Qo + G ^ (k) ^ T (k)Ko (k)C^ (k)Po (k)G
G ^ (k) (5.17)

donde Qo y Ro son matri es de ovarianza de nidas positivas orrespondien-


te a los disturbios v y w, respe tivamente.

5.4 La Ley de Control


Es bastante ono ido [6℄ que el ontrolador propor ional optimo uadr ati o
es una matriz de ganan ia Kx que nos permite formular la siguiente ley de
ontrol u = Kxx(k). Di ha matriz es el resultado de la minimiza ion de
la fun i on de osto:

I= X
1
[xT (k)Qx(k) + u2 (k)R℄ (5.18)
k=0
220 Control Adaptivo

sujeto a la e ua ion de restri ion:


x(k + 1) = Gx(k) + Hu(k)
donde la matriz Q = QT es semide nida positiva y la matriz R es de nida
positiva. En la subse ion 4.5 se detalla omo sele ionar estas matri es. La
ganan ia Kx se obtiene de:
Kx = (R + H T SH) 1 H T SG (5.19)
donde S es la uni a matriz de nida-positiva solu i on de la siguiente e ua ion
matri ial dis reta aso iada de Ri ati:
0=S GT SG + GT SHK x (5.20)
Para mejorar el rendimiento del ontrolador propor ional, es posible adi-
ionar a i on integral a di ho ontrolador. De niendo la variable z(k) omo
la integral (sumatoria) del error [Y (k) Y (k)℄:

z(k) =
X
k 1

i=0
[Y (i) Y (i)℄ =
X
k 1

i=0
[ y(i)℄; z(k + 1) =
X
k

i=0
[ y(i)℄
enton es:
z(k + 1) = z(k) y(k) = z(k) Cx(k) (5.21)
de modo que la representa ion en el espa io de estado del sistema aumentado
toma la forma siguiente:
xa(k + 1) = G axa(k) + Hau(k) (5.22)
y(k) = Caxa(k) (5.23)
donde el super ndi e a signi a aumentado. El ve tor xa y las matri es Aa,
B a y C a poseen la forma:
x(k) G 0
xa(k) = ; Ga(k) =
z(k) C I
H
Ha = ; Ca = [C 0℄ (5.24)
0
Por onsiguiente, el problema es determinar la matriz de ganan ia K a omo
resultado de la minimiza ion de la siguiente fun ion de osto:

Ia = X1
[xa )T (k)Qa xa (k) + u2 (k)R℄ (5.25)
k=0
5.5 Pro edimiento de Disen
~o 221

donde la matriz Qa = [Qa ℄T es semide nida positiva. La ganan ia K a se


obtiene de:
f g
K a = R + [H a ℄T P a H a 1 [H a ℄T P a Ga (5.26)
a
En la e ua ion (5.26), P es la uni a matriz de nida-positiva solu ion de la
siguiente e ua ion matri ial dis reta aso iada de Ri ati:
P a = Qa + [Ga ℄T P a Ga [Ga ℄T P a H a K a (5.27)
Por onsiguiente, la ley de ontrol del ontrolador optimo uadrati o pro-
por ional integral viene a ser:
u(k) = Kax a(k) (5.28)
y los parametros de pondera ion de rendimiento son R y Qa.

5.5 Pro edimiento de Disen


~o
El pro edimiento para disen ~ar el sistema de ontrol on autosintoniza ion
ilustrado en la gura 5.1 es omo sigue:
1) Formular el problema (de nir espe i a iones de disen
~o).
2) Usando toda la informa i on disponible a er a del pro eso no lineal,
determinar sus modelos lineal y no lineal (se i on 5.2).
3) Implementar el m etodo de los m nimos uadrados re ursivo mejorado
(subse ion 5.3.2) para estimar los parametros del modelo del pro eso.
4) Implementar el pro edimiento desarrollado en la subse i on 5.3.3 para
estimar los estados del modelo del pro eso.
5) Implementar la ley de ontrol residual u(k) (se ion 5.4) dada por la
e ua i on (5.28), omputar U (k) usando la e ua ion (5.8), y a tualizar
la ley de ontrol a tual empleando la rela i on U (k) = u(k) + U (k).
6) Simular el sistema de ontrol adaptivo variando las matri es de pon-
dera i on R, Qa, Ro y Qo, hasta obtener un rendimiento satisfa torio
del sistema.
7) Implementar el hardware.
8) Implementar el software de ontrol.
9) Realizar pruebas de fun ionamiento (resultados experimentales).
222 Control Adaptivo

5.6 Control Adaptivo de un Servomotor No Lineal

5.6.1 Formula i on del Problema


El servomotor D.C. on arga no lineal (dis utido ampliamente en la se i on
3.3) es un pro eso de una entrada y una salida que puede ser ontrolado por
el voltaje de armadura. La arga no lineal es una varilla met ali a a oplada al
eje del servomotor, a manera de un brazo rob oti o de un grado de libertad.
En el extremo de la varilla se pueden a oplar argas adi ionales. El objetivo
del ontrol es disen ~ar e implementar un sistema de ontrol adaptivo on
autosintoniza i on, de modo tal que la varilla se posi ione en una referen ia
predeterminada on m nimo sobreimpulso en su respuesta, a pesar de la
presen ia de la arga no lineal y de las no linealidades inherentes del pro eso
omo son las fri iones estati a y de Coulomb, y satura i on en el ampli ador
del servomotor.

5.6.2 El Modelo del Pro eso


La gura 3.9 presenta la estru tura del pro eso no lineal a ontrolar. La
tabla 3.2 des ribe las variables y los valores de 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 = ; C = 1 0
N B Kn2 E ) KnK a t
M ( M+ MR MR
(5.29)
La fun i on de transferen ia de pulso G p(z), para un tiempo de muestreo de
0.01 s (o lo que es lo mismo, una fre uen ia de muestreo de F s = 100 Hz),
tiene la forma:
y(z) b1z + b2 b 1 z 1 + b 2z 2
Gp(z) = = 2 = (5.30)
u(z) z + a z 1+ a 2 1 + a1 z 1 + a z2 2

y su orrespondiente e ua ion de diferen ias es:

y(k) = a1y(k 1) a2y(k 2) + b1u(k 1) + b2u(k 2) (5.31)


5.6 Control Adaptivo de un Servomotor No Lineal 223

donde a1 = -1.9608, a2 = 0.9626; b1 = 0.044 y b2 = 0.045. Vimos que


partiendo de la e ua i on (5.30), un mismo pro eso puede adoptar mu ltiples
representa iones de estado de la forma:
x(k + 1) = Gx(k) + Hu(k); y(kT ) = Cx(kT )
donde G, H y C son las matri es de estado, de ontrol y de salida respe tiva-
mente, on dimensiones apropiadas. La representa i on anoni a ontrolable
del pro eso (primera forma, e ua i on (3.100) on b0 = 0) tiene la forma:
0 1 0
G = ; H=
a2 a1 1
C = b2 a2b0 b1 a1b0 ; D = [0℄ (5.32)

5.6.3 Estima ion de Par ametros


Para estimar (o identi ar) los parametros del modelo del pro eso, em-
pleamos el m etodo de los m nimos uadrados re ursivo mejorado desarrolla-
do en la subse i on 5.3.2. Como primer paso al ulamos el ve tor ini ial de
par ametros (e ua ion (5.5):
(0) = a1 a2 b1 b2 C (0) T

C
donde el valor ini ial de (0) (e ua ion (5.8) on U = 0 e Y igual a la sen
~al
de referen ia) es:
C
= (1 + a1 + a2 )Y
En el ter er paso jamos la matriz de ovarianza ini ial P de orden 5:
2 0 0 0 0 3
0 0 0 0
64675 0
0
0
0 0
0 0
0
7 P
= 0 0 0 0 ; = 1000
(5.33)

Como uarto paso obtenemos nuevas medi iones de Y (k) y de U (K) (ver
e ua i on (5.9)) y formulamos:
Y (k) = T (k) ^(k)
T
(k) = [Y (k 1) Y (k 2) U (k 1) U (k 2) 1℄
^(k) = [ a^ 1 (k) ^ 2 (k) ^b1 (k) ^b2 (k) ^(k)℄T
a C
Con los datos determinados hasta aqu , ahora podemos implementar los
otros pasos (ver ejemplo 5.2) on Cmin = 15 y Cmax = 100.
224 Control Adaptivo

5.6.4 Estima ion de Estados


El pro edimiento para la estima ion de estados se des ribe en la subse ion
5.3.3. El pro edimiento de estima i on (subse i on anterior) nos propor iona
el ve tor de parametros estimado del pro eso, a saber:
^(k) = [ a
^ 1 (k) ^ 2 (k) ^b1 (k) ^b2 (k) ^(k)℄T
a C
Usando los elementos de di ho ve tor de parametros, podemos re onstruir las
^ (k), H
matri es estimadas G ^ (k) y C^ (k) orrespondientes a la representa ion
anoni a ontrolable (e ua i on (5.32)):

^ (k) = 0 1 ^ (k) = 0
G ; H
^ 2 (k)
a ^ 1 (k)
a 1

C^ (k) = ^b2 (k) ^b1 (k) ; ^ (k) = [0℄


D
Las e ua iones del ltro de Kalman para estimar el ve tor de estado x
^ son
(ver e ua iones (5.14), (5.15) y (5.16)):

x
^(k) = x(k) + Ko (k)[y(k) C^ (k)x(k)℄ (5.34)

x(k + 1) = G ^ (k)x
^(k) + H ^ (k)u(k) (5.35)
Ko (k) = Po (k)C T (k)[C^ (k)Po (k)C^ T (k) + Re ℄ 1
(5.36)
Para ada muestra dis reta, el programa de simula ion disadap.m (se ion
5.6.7) al ula las matri es Po(k) y Ko(k) empleando las matri es de ova-
rianza de los disturbios v y w, a saber, Q o = 0.01 y Ro = 0.04.

5.6.5 La Ley de Control


Para determinar el ontrolador propor ional- integral optimo uadr ati o on
realimenta i on de estados (se ion 5.4), la representa ion en el espa io de
estado aumentado toma la forma siguiente (e ua ion (5.23)):

xa(k + 1) = Ga(k)xa(k) + Ha(k)u(k); y(k) = C a(k)x a(k)

donde:
x(k) G 0
xa(k) = ; Ga(k) =
z(k) C I
H
Ha = ; Ca = [C 0℄
0
5.6 Control Adaptivo de un Servomotor No Lineal 225

La matriz de ontrol Ka se obtiene de:

f
Ka(k) = R + [Ha(k)℄T P a(k)Ha(k) g 1[H (k)℄
a T
P a(k)(k)Ga(k)

El programa disadap.m al ula las matri es Ka(k), Ga(k) y H a(k) para ada
tiempo de muestreo. En el software de ontrol implementado, la matriz
P a(k) se obtiene luego de iterar la e ua i'on de Ri ati 20 ve es en ada
per odo de muestro. Los valores de R y Q a para la simula i on son: 3
24 ; (5.37)
R = 0:45; Q = a
0:05 0
0
0
0:01 0
0
0

0:01
5
5.6.6 La Ley de Control Residual
Para el sistema de ontrol a lazo errado podemos tomar la sen ~ al Y (k) igual
a la referen ia para todo k. As , podemos al ular la ley de ontrol residual
empleando la rela i on u(k) = U (k) U (k) (se ion 5.4), donde U (k) se halla
en l nea a partir de la e ua ion (5.8), omo sigue:

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 i on del Sistema de Control Adaptivo


El siguiente programa disadap.m resume todos los pasos des ritos anterior-
mente 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 simu-
la i on. La simula i on in luye la estrategia para no saturar el ampli ador,
pero no in luye la ompensa i on 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 i on). 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 Control Adaptivo

K = 31.071e-3; 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
5.6 Control Adaptivo de un Servomotor No Lineal 227

% PARAMETROS DE OPTIMIZACION
Qo = 0.01; Ro = 0.04; % PARA EL FILTRO DE KALMAN
R = 0.45; Qa = [0.05 0 0;0 0.1 0;0 0 1℄; % PARA LA GANANCIA Ka
% ******** LAZO DEL SISTEMA DE CONTROL ADAPTIVO *********
Mm = 2000;
for r = 1:Mm
t = r + 2;
% SE~NAL DE REFERENCIA
Yo(t)= Ref*sign(sin(fre *(t-2)));
% ESTIMACION DE PARAMETROS (METODO MCRM)
psi = [Y(t-1) Y(t-2) U(t-1) U(t-2) 1℄';
rho = max(1,norm(psi));
psin = psi/rho;
Nn = hol(Pi'); % Nn'*Nn = Pi => Nn*Nn' = Pi'
S = inv(diag(Nn*ones(5,1),0));
Ps = S*Pi*S;
psins = inv(S)*psin;
rt = 1 + psins'*Ps*psins;
lamb = 1 - (rt-sqrt(rt^2-4*norm(Ps*psins)^2/tra e(Ps)))/2;
e = Y(t)/rho - thi'*psin;
j = psins'*Ps*psins + lamb;
th = thi + e*inv(S)*Ps*psins/j;
Hns = Ps*psins/j;
Ps = (Ps - Hns*psins'*Ps)/lamb;
tt = abs(max(eig(Ps))/min(eig(Ps)) );
max = 100; min = 15;
if tt <= min,
Pi = Ps; thi = th;
elseif tt >= max,
Nnew = hol(Ps'); % Nnew*Nnew' = Ps'
Snew = inv(diag(Nnew*ones(5,1),0));
Psnew = Snew*Ps*Snew;
Pi = Psnew; thi = th;
end
% RECUPERACION DE LA ECUACION CANONICA CONTROLABLE
ae1 = -th(1); ae2 = -th(2);
be1 = th(3); be2 = th(4); Ce = th(5);
ae11 = 0; ae12 =1; ae21 = -ae2; ae22 = -a1;
GE = [ae11 ae12;ae21 ae22℄;
be11 = 0; be21 = 1; HE = [be11;be21℄;
e11 =be2; e12 = be1; CE = [ e11 e12℄; DE = [0℄;
% SALIDA RESIDUAL (DESVIACION)
y(t) = Y(t) - Yo(t);
228 Control Adaptivo

% CALCULO DE LA GANANCIA Ko DEL ESTIMADOR DE KALMAN


Ko = dlqe(GE,HE,CE,Qo,Ro);
xmas = xmenos + Ko*(y(t) - CE*xmenos); % OBSERVACION
z = z -CE*xmas; % ACCION INTEGRAL
% CALCULO DE LA GANANCIA Ka DEL CONTROLADOR OPTIMO
Ga = [GE zeros(2,1);-CE 1℄;
Ha = [HE;0℄;
Ca = [CE 0℄;
Ka = dlqr(Ga,Ha,Qa,R);
% CALCULO DE LA LEY DE CONTROL RESIDUAL
u(t) = - Ka*[xmas;z℄;
% ACTUALIZANDO ESTADOS
xmenos = GE*xmas + HE*u(t);
% CALCULO DE Uo (VALOR D.C. DE U(t))
AE = 1 + ae1 + ae2; BE = be1 + be2;
Uin = inv(BE)*(AE*Yo(t) - Ce);
% CALCULO DE LA SE~NAL DE CONTROL U(t)
U(t) = u(t) + Uin;
% LIMITANDO LA SE~NAL U(t) PARA EVITAR SATURACION
if(U(t) > 1.4)
U(t) = 1.4;
elseif(U(t) <-1.4)
U(t) = -1.4;
end
% MODELO NO LINEAL DE SEGUNDO ORDEN (DISCRETIZCION DIRECTA)
TN = *sign(X2);
X1 = X1 + T*X2;
X2 = X2 + T*(-(N/M)*sin(X1) - (B/M + n^2*K*E/(M*R))*X2 ...
- TN/M + (n*K*Ka t/(R*M))*U(t) );
Y(t+1) = X1;
end
% ***************** FIN DEL LAZO DE CONTROL **************
% GRAFICOS
ejex = linspa e(0,Mm*T,Mm);
subplot(2,1,1)
plot(ejex,Yo(1:Mm),ejex,Y(1:Mm)); grid
ylabel('Posi ion Y (rad)')
subplot(2,1,2)
plot(ejex,U(1:Mm)); grid
ylabel('Se~nal de ontrol U (voltios)')
xlabel('Tiempo en segundos')
print -f -deps sims a % CREA sims a.eps
5.6 Control Adaptivo de un Servomotor No Lineal 229

Posición Y (rad)
1

−1

−2
0 2 4 6 8 10 12 14 16 18 20

2
Señal de control U (voltios)

−1

−2
0 2 4 6 8 10 12 14 16 18 20
Tiempo en segundos

Figura 5.8: Resultado de la simula ion del sistema de ontrol adaptivo para
ontrolar la posi ion angular del servomotor D.C. sujeto a argas no lineales.

5.6.8 Implementa ion del Hardware

El sistema de ontrol de posi i on onsta de un servomotor D.C. on me a-


nismo de redu i on, 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 i on onformado por un odi ador
opti o (a oplado al eje del motor), un de odi ador de uadratura y un on-
tador de 16 bits. El hardware tambi en 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 i on 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

El a tuador est a onformado por el servomotor D.C. (de ampo magn eti o
permanente y es obillas onmutadas), un generador PWM y una etapa de
poten ia. Debido a que el motor no responde inmediatamente a una tensi on
de entrada; es de ir, le toma un pequen~o tiempo para llegar a la maxima
230 Control Adaptivo

COMPUTADORA
PERSONAL

TARJETA LAB-PC+ ETAPA DE POTENCIA

SALIDAS DAC0 Generador Amplificador


PWM de potencia
ANALOGICAS DAC1

Sensor (encoder)
PA0
PA .
PA7
COMPUERTAS MUX
DIGITALES PB
.0
PB . 16 bits SERVO-
DE ENTRADA MOTOR
PB7
Y SALIDA Decodificador DC
PC1 de cuadratura
y contador
PC . UP / DOWN
PC7 Varilla
PC0
Fs
CONTADOR / OUTB0 Carga
Adicional
TEMPORIZADOR

Figura 5.9: Esquema de implementa ion del sistema de ontrol de posi i on.
5.6 Control Adaptivo de un Servomotor No Lineal 231

Codificador optico

Reductor de
velocidad
Alimentacio’n

. . .

Servomotor DC

Eje de salida
Varilla
Adaptador de carga

Carga
adicional

Figura 5.10: Pro eso servomotor D.C. on arga no lineal y odi ador
opti o in orporado.

velo idad, es ne esario usar un sistema que nos permita variar la velo idad
del servomotor (entre un m'inimo y un maximo) as omo tambi en el sentido
de su rota ion. Di ho sistema omprende un generador PWM LM3524 y un
ir uito de poten ia (ver gura 5.11). Tal sistema nos permite variar la velo
idad de a uerdo al an ho de pulso de la sen ~al PWM. El ir uito PWM
LM3524 genera sen ~ales moduladas por an ho de pulso de 15.4 KHz, las
uales son luego ampli adas por el ir uito de poten ia, gener andose una
tensi on de alimenta i on uyos l mites son 25 volt. El ir uito de poten ia
est a onformado por un sistema de disparo y dos pares de onmutadores A
y B, tal omo se muestra en la gura 5.12.
El sistema de disparo permite la onmuta ion de ada par onmutador
(A o B), de forma tal que no se produz an orto ir uitos durante la on-
muta ion. Cuando el sistema de disparo ierra el onmutador A y abre el B,
el sentido de la orriente sigue la l nea punteada, indu iendo de esta forma
una tension +V en el servomotor. Ahora, si el sistema de disparo abre el
232 Control Adaptivo

Ca Ra Amplificador Rc
de potencia

Viene de la Salida A
PWM Al servo-
salida A0 Salida B motor DC
de la LAB-PC+
Generador
PWM

Cp Rp

Figura 5.11: Etapa de poten ia.

Vcc

A1 B1
~ SISTEMA
SENAL PWM SERVO-
DE MOTOR

DISPARO DC
B2
A2
Par conmutador A = A1 + A2
Par conmutador B = B1 + B2

Figura 5.12: Esquema general del sistema de disparo y de onmuta ion.

onmutador A y ierra el B, el sentido de la orriente sigue la l nea segmen-


tada, indu iendo as una tension -V en el servomotor. Esto signi a que el
motor re ibe en sus bornes una tensi on de onda uadrada, uyo valor var a
entre V , on un onsumo de orriente que depende de los onmutadores
onformados por transistores MOSFET.
5.6 Control Adaptivo de un Servomotor No Lineal 233

El Sensor de Posi ion


El sensor de posi ion esta onformado por un odi ador opti o rotatorio (in-
terno 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 sen ~al 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 sen ~al sinusoidal proveniente


de la salida del fotodete tor en sen
~al de onda uadrada.

El esquema b asi 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
ma’scara

Figura 5.13: Estru tura de un odi ador opti o rotatorio.

odi ador usado en esta implementa i on, omo en la mayor a de los asos,
in luye dos pistas de mar as o ranuras en uadratura ( anales A y B), ada
una aso iada a una fuente de luz y un fotodede tor independientes. Los
anales A y B produ en dos ondas uadradas desfasadas 900 entre s que
se utilizan para determinar la dire i on del movimiento. Por ejemplo, si
el anal B adelanta al anal A, el eje est a girando en sentido antihorario,
234 Control Adaptivo

y vi eversa. Si no se utiliza dete i on de uadratura, la vibra i on puede


ausar el env o de pulsos errati os al ontador, in luso si la maquina esta
detenida. El odi ador usado tiene una resolu i on de 512 ppr (pulsos por
revolu ion). El de odi ador de uadratura es el CI LS7083 que a tiva
la uenta as endente o des endente del ontador UP/DOWN de 16 bits,
dependiendo del sentido de giro del motor, aptado por el desfasaje entre los
trenes de pulsos de los anales A y B. El ontador UP/DOWN esta
onformado 4 CI 74HC193; dos de ellos entregan un grupo de 8 bits de
datos (bus A) a la tarjeta LAB-PC+; de manera an aloga otro grupo igual
de bits onforman el bus B (ver gura 5.14).

Clock UP
74HC Clock Down
4 bits
193
Puerto
digital 8 bits
PA Canal A
74HC
4 bits
193 LS7083
Canal B

74HC
4 bits
193
Puerto R L
digital 8 bits
PB 74HC
4 bits
193

Figura 5.14: De odi ador de uadratura y ontador UP/DOWN.

La Interfaz Lab-PC+
La interfaz entre el mi ro omputador, la planta, el a tuador y el sensor es
la tarjeta de adquisi i on de datos Lab-PC+. Los terminales usados para el
ontrol son:

1. Una salida analogi a (DAC0). La sen ~ al de ontrol se env a usando el


terminal DAC0 al CI LM3524 (generador PWM) on una resolu i on de
12 bits para generar la sen
~al analogi a.
5.6 Control Adaptivo de un Servomotor No Lineal 235

2. Dos puertos digitales de entrada (PA y PB) de 8 bits. Tales puertos


re iben los datos provenientes del ontador UP/DOWN.
3. El terminal OUTB0, que se utiliza omo salida de una sen
~al de reloj
para el fun ionamiento del sistema de ontrol.
4. El terminal PC0 (bit 0 del puerto C), que se utiliza omo entrada de la
sen
~al de reloj Fs proveniente de OUTB0.
La sen
~al de reloj OUTB0 se genera a partir de una base de tiempos de 2
MHz que a tiva la salida del ontador/temporizador 8253. Los puertos de
entrada/salida provienen de la PPI (Interfaz Paralela Programable) 8255.

5.6.9 Implementa ion del Software de Control


Considera iones Generales
El software de ontrol debe implementar las e ua iones del sistema en tiem-
po 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 imple-
mentado en tiempo real. El modelo lineal ontinuo del pro eso se obtiene
de la e ua ion (5.29):
nKa tK _ nKa tK
M • + (B + ) +N =
R R
• + 3:626 + _ + 17:4604 = 89:09

La e ua i on de diferen ias del pro eso es (ver e ua i on (5.31)):

k+ a1 k 1 + a2 k 2 = b1vk 1 + b2vk 2

donde (k) = y(k) y v(k) = u(k) (v es la sen ~ al de ontrol que requiere


ompensa ion). La e ua ion anoni a ontrolable a emplear en el algoritmo
de ontrol se da en la e ua ion (5.32):

xk = GXk 1+ Hu k 1; yk = CX k
on x = Xk y u(k) = uk.
La ley de ontrol es: uk = K a X a on
k (ver e ua i on (5.26)):
1
K a = (R + (H a) T P a H a ) (H a) T P aGa
236 Control Adaptivo

donde la matriz P a(k) = P akse obtiene de (ver e ua ion (5.27)):


P a = Q + (Ga)T P aGa + (Ga)T P a H a (R + (H a)T P a H a ) 1 (H a) T P a G
k+1 k k k k
a
Para un per odo de muestreo, empezando on P k igual a la matriz nula,
iteramos 20 ve es la e ua i on anterior, lo que da omo resultado una nueva
matriz P ka. En el siguiente per odo de muestreo, la matv ariz resultante P a k
se usa omo matriz ini ial para resolver nuevamente la e ua ion de Ri ati,
resultando luego de 20 itera iones en una matriz P ak+1 . Se ha observado que
P a al anza un valor esta ionario luego de 4 o 5 per odos de muestreo (lo
ual es equivalente a 80 o 100 itera iones). Esta forma de al ulo ahorra
tiempo de omputa i on. Los parametros de optimiza ion empleados para
el ontrolador optimo son R = 0.05 y Q a = 0:1 I3, donde I3 es la matriz
identidad de orden 3.
La matriz de ganan ia K o del ltro de Kalman se puede obtener apli-
ando dualidad al problema de ontrol. Es de ir, ha iendo los reemplazos
siguientes:
Ga !G T
; Ha !C T
; Qa !Q ;
o R !R;
o Pa !P o
a a
en las f ormulas de K y P k+1 del ontrolador optimo. De esta forma re-
solvemos la e ua i on de Ri ati para P o ( omo en el aso del ontrolador)
para luego poder al ular Ko. Los parametros de optimiza i on usados para
el observador optimo ( ltro de Kalman) son: Qo=0.01 y Ro=0.04, mientras
que para el algoritmo de estima i on son: P = 1000I 5 (matriz de ovarianza
ini ial, e ua i on (5.33)), Cmin = 15, y Cmax = 100.
Computa ionalmente, el software de ontrol requiere de mu hos al ulos.
Por ejemplo, para el pro eso de estima ion de parametros se deben realizar
dos des omposi iones de Cholesky para matri es de orden 5 empleando el
m etodo de Ja obi (ver referen ia [16℄, p agina 365), se deben al ular todos
los valores propios y ordenarlos en una matriz sim etri a. Felizmente no
es ne esario efe tuar inversion de matri es porque el pro eso ontrolado es
univariable y la opera iones on matri es generalmente fueron entre matri es
simetri as.
Adem as de la ompensa ion de la no linealidad produ ida por la fri i on
de Coulomb (an ~adiendo 0.2 voltios a la sen
~al de ontrol, dependiendo si
la velo idad angular es positiva o negativa), se onsidera tambi en el efe to de
satura ion del servomotor uando la sen ~al de ontrol sobrepasa los 2.3
1.4 voltios, donde los 2.3 voltios orresponden al valor que hay que agregar
(valor \o set") para que la velo idad ini ial sea ero. Este valor o set es
propio del servomotor empleado.
5.6 Control Adaptivo de un Servomotor No Lineal 237

Los Programas Fuente


Los programas ne esarios para la implementa i on en tiempo real del sistema
de ontrol adaptivo disen
~ado 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


de nidas 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 tambi en es un ar hivo de de ni 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 librer a de
fun iones NI-DAQ [25℄ y llama a la fun i on Con gurarHardware para,
pre isamente, on gurar el hardware empleado.

3. Ar hivo CON122.CPP: Constituye el software de ontrol.

Ensamblaje del Software de Control


El software de ontrol emplea en su eje u ion la siguiente se uen ia:

1. Ini ializa_Sistema();
2. Mide_Variables(&y,&r,&vel,t);
3. Estima_Parametros(Th,y,u);
4. En uentra_Control(r,&u);
5. u=Apli a_Control(u,vel);

La ompila ion de ar hivos para ha erlos eje utables se realiza en Bor-


land C/CPP mediante un proye to que involu re todos los ar hivos, en nues-
tro 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 i on de los programas, el servomotor debe
estar parado, lo que se logra enviando la sen ~al o set 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

*Analog Output, Timer Generator, Polling. Usa fun iones de


*le to/es ritura de registros (inportb, outport).
*/
#if !defined (__R1LLIB_H_PRY)
#define __R1LLIB_H_PRY
//Configurando la tarjeta Lab-PC+ (Digital Input, Polling,
//Analog Output, 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 ();

/*R1LLIB.CPP
*Ar hivo de de lara ion de fun iones definidas en R1LLIB.H
*Estas fun iones permiten fa ilitar el manejo de la tarjeta
*de adquisi ion de datos Lab-PC+: Digital Input (16 bits),
*Analog Output, Timer Generator, Polling. Usa fun iones de
*le to/es ritura de registros (inportb, outport).
*/
#in lude "r1llib.h"
#in lude "nidaq.h"
#in lude <dos.h>
stati unsigned R1LLSBPort; // dire ion del LSB (bit menos
//signifi ativo) del puerto digital de entrada PA0-7
stati unsigned R1LMSBPort; // dire ion del MSB (bit mas
//signifi ativo del puerto digital de entrada PB0-7
stati unsigned R1LPollPort; // dire ion del puerto digital
//de polling PC0-7. Esto es, la entrada al timer de la se~nal
//de muestreo en forma de una su esion de pulsos en el bit
//indi ado en la des rip ion del bus (PC0)
stati unsigned R1LAOPort; // dire ion de la salida
//anal'ogi a (DAC0)
stati int R1LFS ; // fre uen ia de muestreo (Hertz)
/* Ini ializando la tarjeta de adquisi ion de datos */
void ConfigurarHardware (unsigned pollPort, unsigned lPort,
unsigned hPort, unsigned salPort, int fre )
{
int uentaTimer, devi eCode;
uentaTimer = (int)(2000000/fre );
R1LPollPort = pollPort;
5.6 Control Adaptivo de un Servomotor No Lineal 239

R1LLSBPort = lPort;
R1LMSBPort = hPort;
R1LAOPort = salPort;
R1LFS = fre ;
USE_LAB();
Init_DA_Brds(1,&devi eCode);
ICTR_Setup(1,0,3, uentaTimer,1); // lo k de muestreo = timer0
DIG_Prt_Config(1,(int)(pollPort - 0x270),0,0);
DIG_Prt_Config(1,(int)(lPort-0x270),0,0);
DIG_Prt_Config(1,(int)(hPort-0x270),0,0);
}
/*Enviando al puerto de salida el voltaje espe ifi ado */
void EnviarVoltage (float u)
{
unsigned salidaDigital;
salidaDigital = (unsigned) (409.5*u-0.5);
outport(R1LAOPort,salidaDigital);
}
/*Dete tando el numero de posi iones registrados en los
ontadores */
unsigned int LeerPosi ion()
{
unsigned har o t1,o t2;
o t1 = inportb(R1LLSBPort);
o t2 = inportb(R1LMSBPort);
return (255*o t2+o t1);
}
/*Dete tando verdadero o falso en forma alternativa, de
a uerdo a la fre uen ia indi ada en ConfigurarHardware */
int NivelClo k ()
{
unsigned har bytePoll;
bytePoll = inportb (R1LPollPort);
return (bytePoll&1);
}

/*************** CON122.CPP Software de Control **************/


#in lude "r1llib.h"
#in lude <stdio.h>
#in lude <math.h>
#in lude <assert.h>
#in lude <allo .h>
#in lude < onio.h>
240 Control Adaptivo

onst float ESCALA= 2.*M_PI/(512.*19.7);


/*ESCALA ontiene la es ala rad/pulsos */
onst float LOW_r = 1.*M_PI/2.; /* valor LOW de la referen ia */
onst float HIGH_r= 1.*M_PI/3.; /* valor HIGH de la referen ia */
/*De lara ion de las fun iones GORDAS */
void Ini ializa_Sistema();
void Mide_Variables(float *yk, float *r, float *vel, float t);
void Estima_Parametros(float *Theta, float Yk, float Uk);
void En uentra_Control(float r, float *u);
float Apli a_Control(float u, float ykp);
/*De lara ion de las miles de variables globales existentes */
float a1, a2, b1, b2, U0, C ;
/* oefi ientes de la e ua ion de diferen ias; valor medio del
ontrol y valor medio de la salida */
float Td; /* per'iodo de muestreo */
float t, tsimul; /* tiempo de simula ion a tual y total */
float Fs; /* fre uen ia de muestreo */
int p0, pk; /* posi ion en pulsos, anterior y a tual */
/*IDENTIFICACI'ON */
float Thk[5℄, Th[5℄;
/*ve tores de estima ion de parametros, auxiliar y definitivo */
float ym1, ym2, um1, um2, ek, div, rt; /* 'ultimos dos valores
de la posi ion y del ontrol, el error a tual, el valor
auxiliar div y el par'ametro r(k) */
float Pk[5℄[5℄,Nk[5℄[5℄,Sk[5℄,Psk[5℄[5℄,Psn[5℄[5℄,Psaux[5℄[5℄;
/*matriz P, su des omposi ion usando Cholesky, N y matri es
S(k), Ps(k), Psn(k) y una matriz auxiliar */
float Phi[5℄, Phin[5℄, Phins[5℄, Ro;
/*ve tores Psi(k), Psin(k), PsinS(k) y parametro rho */
float Cmax, Cmin, Co, LF;
/*valores Cmax, Cmin, P, lambda(k) y numero ondi ion de C */
float al ulaC(); /* max(eig(Psk))/min(eig(Psk)) */
/*Control Optimo y Observador Optimo */
float y, x[2℄, z, TOL, rr, u;
/*valores de la salida, del estado, del integrador; toleran ia
*para Ri ati; a tualiza i\'on de los estados y de la se~nal de
* ontrol; todos los valores son relativos */
float Q[3℄[3℄, R, Ge[3℄[3℄, He[3℄, Ce[3℄, K[3℄;
*/matri es Q, R, G^a, H^a, C^a y K del ontrolador 'optimo */
float Qb[2℄[2℄, Rb, G[2℄[2℄, H[2℄, C[2℄, Kb[2℄;
/*matri es Qb, Rb, G, H, C y Kb del algoritmo del observador
optimo */
float P[3℄[3℄, Pb[2℄[2℄, Maux1[3℄[3℄, Maux2[3℄[3℄, Maux3[3℄[3℄;
5.6 Control Adaptivo de un Servomotor No Lineal 241

/*Matri es de Ri ati del ontrolador y del observador, y


auxiliares de al ulo */
float Vaux1[3℄, Vaux2[3℄, Vaux3[3℄, Vaux4[3℄, Raux1;
/*ve tores auxil. para al ular matriz solu i\'on de Ri ati */
/*Apli a ion del Control */
float V FC, V FE, Wth, Ofst;
/*valores de tension equivalente a la fri ion de Coulomb y a
la fri ion est\'ati a; valor del umbral de velo idad angular y
valor del offset, en la apli a ion de la se~nal de ontrol */
***** FUNCIONES ****
********************************************************/
float Apli a_Control(float u, float ykp)
{
float v;
if(fabs(ykp)<=Wth)
{
if(u<0.) v = -V FE;
if(u>0.) v = V FE;
}
else
{
if(u<0.) v = -V FC;
if(u>0.) v = V FC;
}
if(u+v<-1.5) u= -1.5;
else if(u+v>1.4) u= 1.4;
EnviarVoltage(u+v+Ofst);
return u;
}
/*Ini ializando parametros y variables globales (P, Pb, G,
Gb, H, Hb, a1, a2, b1, b2, ...). Usa Ini ializaHardware */
void Ini ializa_Sistema()
{
/*Con Varilla
a1=-1.9614; a2= .9631;
b1= .0044; b2= .0043;
Sin Varilla */
a1=-1.6246; a2= .6246;
b1= .0479; b2= .0410;
/*ATENCION: LOS VALORES DE a1, a2, b1, b2 DEPENDEN DE LA Fs */
V FE= .2; V FC= .15;
Wth = .1; Ofst= 2.3;
Fs= 100.0; U0 = 0.;
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;
5.6 Control Adaptivo de un Servomotor No Lineal 243

else *r= HIGH_r;


/*Ahora leo la posi i\'on */
pk= LeerPosi ion();
*yk = ym1 + ((float)(abs(pk-p0)>8000?0:pk-p0))*ESCALA;
p0= pk;
/*Y la salida */
y= *yk - *r;
/*Y la velo idad angular */
*vel= (5.*(*yk-ym1)+ *vel)/(1.+5.*Td);
/*Y vamos on el Observador: Primero, Ri ati */
delta= TOL+1.;
niter= 0;
while(delta>TOL && 20>niter++)
{
/*P(k).Ct y C.P(k) */
for(i=0; i<n; i++)
for(Vaux1[i℄=Vaux2[i℄=0.,j=0; j<n; j++){
Vaux1[i℄ += Pb[i℄[j℄*C[j℄;
Vaux2[i℄ += C[j℄*Pb[j℄[i℄;
}
/*Raux1= Rb + C.P(k).Ct */
for(Raux1= Rb, i=0; i<n; i++)
Raux1 += C[i℄*Vaux1[i℄;
/*G.P(k).Ct y C.P(k).Gt */
for(i=0; i<n; i++){
Vaux3[i℄= Vaux4[i℄= 0.;
for(j=0; j<n; j++){
Vaux3[i℄ += G[i℄[j℄*Vaux1[j℄;
Vaux4[i℄ += Vaux2[j℄*G[i℄[j℄;
}
}
/*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℄ += G[i℄[k℄*Pb[k℄[j℄;
}
/*2o. Termino> G.P(k).Gt */
244 Control Adaptivo

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℄*G[j℄[k℄;
}
/*Y Total */
delta= 0.;
for(i=0; i<n; i++)
for(j=0; j<n; j++){
Raux1= Qb[i℄[j℄+Maux3[i℄[j℄-Maux1[i℄[j℄;
if(fabs(Pb[i℄[j℄-Raux1)>delta) delta= fabs(Pb[i℄[j℄-Raux1);
Pb[i℄[j℄= Raux1;
}
}/* Fin de en ontrar la de Ri ati */
/*En ontramos ahora la de Observa ion */
/*C.P */
for(Vaux1[i=0℄=0.; i<n; Vaux1[++i℄= 0.)
for(j=0; j<n; j++)
Vaux1[i℄ += C[j℄*Pb[j℄[i℄;
/*R+C.P.Ct */
for(Raux1= Rb, i=0; i<n; i++)
Raux1 += Vaux1[i℄*C[i℄;
/*Y Final, en ontramos K= C.P.Gt/(Rb+C.P.Ct) */
for(Kb[i=0℄=0.; i<n; Kb[++i℄=0.){
for(j=0; j<n; j++)
Kb[i℄ += Vaux1[j℄*G[i℄[j℄;
Kb[i℄ /= Raux1;
}
/*Y ahora a tualizamos los estados */
rr= y - C[0℄*x[0℄ - C[1℄*x[1℄;
x[0℄= x[0℄ + Kb[0℄*rr;
x[1℄= x[1℄ + Kb[1℄*rr;
z = z - y /*C[0℄*x[0℄ - C[1℄*x[1℄*/;
}
/*Dado el estimado de la salida, la salida y la referen ia
*a tuales, y partiendo de los parametros estimados hasta
*enton es, la siguiente fun ion estima uales son los
*parametros a tuales del sistema. Utiliza al ulaC */
void Estima_Parametros(float *Theta, float Yk, float Uk)
{
int i, j, k;
float val, val1;
5.6 Control Adaptivo de un Servomotor No Lineal 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++)
{
5.6 Control Adaptivo de un Servomotor No Lineal 247

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 Psn y la Pk y la Thk*/
for(i=0; i<5; i++)
{
Thk[i℄= Th[i℄;
for(j=0; j<5; j++)
Pk[i℄[j℄= Psn[i℄[j℄= Sk[i℄*Psk[i℄[j℄*Sk[j℄;
}
}
/* */
ym2= ym1; ym1= Yk; um2= um1; um1= Uk;
a1= -Theta[0℄; a2= -Theta[1℄; b1= Theta[2℄; b2= Theta[3℄;
C = Theta[4℄;

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.;
}
/*Cal ulando el numero ondi ion de la matriz de ovarianza
de la estima ion. Esto es: abs(max(eig(Psk))/min(eig(Psk))) */
float al ulaC()
{
#define ROTATE(A, i, j, k, l)
{g=A[i℄[j℄;h=A[k℄[l℄;A[i℄[j℄=g-s*(h+g*tau); A[k℄[l℄= h+s*(g-h*tau);}
double D[5℄;
int n=5, nrot, j, iq, ip, i, k;
double tresh, theta, tau, t, sm, s, h, g, , b[5℄, z[5℄, val;
int end=0;
248 Control Adaptivo

/*Este es el Algoritmo de Ja obi


Ini ializamos V a la Identidad, y b y D a la diagonal de A */
for(i=0; i<n; i++)
{
b[i℄= D[i℄= Psaux[i℄[i℄;
z[i℄= 0.;
}
nrot= 0;
for(i=0; i<50 && !end; i++)
{
/*para ver si ya hemos a abado */
sm= 0.;
for(ip=0; ip<n-1; ip++)
for(iq= ip+1; iq<n; iq++)
sm += fabs(Psaux[ip℄[iq℄);
if(sm== 0.)
{
end= 1;
ontinue;
}
/*en los primeros tres pasos*/
if(i<4) tresh= .2*sm/(n*n);
else tresh= 0.;
/*e itera iones duras, ahora */
for(ip=0; ip<n-1; ip++)
{
for(iq= ip+1; iq<n; iq++)
{
g= 100.*fabs(Psaux[ip℄[iq℄);
/*Pasados uatro items, saltar la rota ion si es peque~na */
if(i>4 && (fabs(D[ip℄) +g == fabs(D[ip℄))
&& (fabs(D[iq℄) +g == fabs(D[iq℄)))
Psaux[ip℄[iq℄= 0.;
else if(fabs(Psaux[ip℄[iq℄)>tresh)
{
h= D[iq℄-D[ip℄;
if(fabs(h)+g==fabs(h))
t= Psaux[ip℄[iq℄/h;
else
{
theta= .5*h/Psaux[ip℄[iq℄;
t= 1./(fabs(theta)+sqrt(1.+theta*theta));
5.6 Control Adaptivo de un Servomotor No Lineal 249

if(theta<0.) t= -t;
}
= 1./sqrt(1+t*t); s= t* ;
tau= s/(1.+ ); h= t*Psaux[ip℄[iq℄;
z[ip℄ -= h; z[iq℄ += h;
D[ip℄ -= h; D[iq℄ += h;
Psaux[ip℄[iq℄ = 0.;

for(j= 0 ; j<ip; j++)


ROTATE(Psaux, j, ip, j, iq);
for(j= ip+1; j<iq; j++)
ROTATE(Psaux, ip, j, j, iq);
for(j= iq+1; j<n ; j++)
ROTATE(Psaux, ip, j, iq, j);
nrot++;
} } }
for(ip=0; ip<n; ip++)
{
b[ip℄ += z[ip℄;
D[ip℄ = b[ip℄;
z[ip℄ = 0.;
} }
if(!end)
{
puts("Demasiadas itera iones en Ja obi\n");
return 1.;
}
/*Vamos a ordenar los VEPS y los VAPS */
for(i= 0; i<n; i++)
{
val= D[k=i℄;
for(j=i+1; j<n; j++)
if(D[j℄>= val) val= D[k=j℄;
if( k!=i )
{
D[k℄= D[i℄;
D[i℄= val;
} }
return fabs(D[0℄/D[4℄);
}
/*La siguiente fun i\'on emplea el error del sistema y la nueva
estima ion de los parametros */
void En uentra_Control(float r, float *U)
250 Control Adaptivo

{
int i, j, k, n=3, niter;
double delta;

delta= TOL+1.;
niter= 0;
while(delta>TOL && 20>niter++)
{
/*P(k).H y H'P(k) */
for(i=0; i<n; i++)
for(Vaux1[i℄=Vaux2[i℄=0.,j=0; j<n; j++){
Vaux1[i℄ += P[i℄[j℄*He[j℄;
Vaux2[i℄ += He[j℄*P[j℄[i℄;
}
/*Raux1= R + H'P(k).H */
for(Raux1= R, i=0; i<n; i++)
Raux1 += He[i℄*Vaux1[i℄;
/*G'P(k).H y H'P(k).G */
for(i=0; i<n; i++){
Vaux3[i℄= Vaux4[i℄= 0.;
for(j=0; j<n; j++){
Vaux3[i℄ += Ge[j℄[i℄*Vaux1[j℄;
Vaux4[i℄ += Vaux2[j℄*Ge[j℄[i℄;
}
/*3er. Termino */
for(i=0; i<n; i++)
for(j=0; j<n; j++)
Maux1[i℄[j℄= Vaux3[i℄*Vaux4[j℄/Raux1;
/*G'P(k) */
for(i=0; i<n; i++)
for(j=0; j<n; j++){
Maux2[i℄[j℄= 0.;
for(k=0; k<n; k++)
Maux2[i℄[j℄ += Ge[k℄[i℄*P[k℄[j℄;
}
/*2o. Termino> G'P(k).G */
for(i=0; i<n; i++)
for(j=0; j<n; j++){
Maux3[i℄[j℄= 0.;
for(k=0; k<n; k++)
Maux3[i℄[j℄ += Maux2[i℄[k℄*Ge[k℄[j℄;
}
/*Y Total */
5.6 Control Adaptivo de un Servomotor No Lineal 251

delta= 0.;
for(i=0; i<n; i++)
for(j=0; j<n; j++){
Raux1= Q[i℄[j℄+Maux3[i℄[j℄-Maux1[i℄[j℄;
if(fabs(P[i℄[j℄-Raux1)>delta) delta= fabs(P[i℄[j℄-Raux1);
P[i℄[j℄= Raux1; }
}/* Fin de en ontrar la de Ri ati */
/*En ontramos ahora la de ontrol */
/*H'P */
for(Vaux1[i=0℄=0.; i<n; Vaux1[++i℄= 0.)
for(j=0; j<n; j++)
Vaux1[i℄ += He[j℄*P[j℄[i℄;
/*R+H'P.H */
for(Raux1= R, i=0; i<n; i++)
Raux1 += Vaux1[i℄*He[i℄;
/*Y Final, en ontramos K= H'P.G/(R+H'P.H) */
for(K[i=0℄=0.; i<n; K[++i℄=0.){
for(j=0; j<n; j++)
K[i℄ += Vaux1[j℄*Ge[j℄[i℄;
K[i℄ /= Raux1;
}
/*en ontrando el ontrol y el nuevo estado del Observador*/
u= -(K[0℄*x[0℄ + K[1℄*x[1℄ + K[2℄*z);
Raux1= G[0℄[0℄*x[0℄ + G[0℄[1℄*x[1℄ + H[0℄*u;
x[1℄ = G[1℄[0℄*x[0℄ + G[1℄[1℄*x[1℄ + H[1℄*u;
x[0℄ = Raux1;
/*ahora en ontramos el valor ABSOLUTO */
*U = u + ((1.+a1+a2)*r-C )/(b1+b2);
}
/*Fun i\'on prin ipal del programa */
void main()
{
int ant=0, a t=0, k, n;
FILE *out;
float *yv, *uv, *rv, vel, y, u, r;
Ini ializa_Sistema();
lrs r();
assert(tsimul<120);
t= tsimul/Td;
n= (int)t;
assert(NULL!=(uv= (float *) allo (n/5,sizeof(float))));
assert(NULL!=(yv= (float *) allo (n/5,sizeof(float))));
assert(NULL!=(rv= (float *) allo (n/5,sizeof(float))));
252 Control Adaptivo

t= u= vel= y= 0.;
for(k=0; k<n;)
{
a t=NivelClo k();
if ((ant==0)&&(a t==1))
{
Mide_Variables(&y, &r, &vel, t);
Estima_Parametros(Th, y, u);
En uentra_Control(r, &u);
u= Apli a_Control(u, vel);
if(!(k%5))
{
yv[k/5℄= y; rv[k/5℄= r; uv[k/5℄= u;
}
k++;
t += Td; gotoxy(5,5); printf("%f",t);
if(kbhit()) if(get h()==27) break;
}
ant=a t;
}
EnviarVoltage(Ofst);
out=fopen(" 2.out","wt");
for (int i=0; i<n/5; i++)
fprintf(out,"%10f %10f %10f %10f %10f\n",
i*5*Td, rv[i℄, yv[i℄, uv[i℄, rv[i℄-yv[i℄);
f lose(out);
}

5.6.10 Resultados Experimentales


Los resultados experimentales mostrados en las guras 5.15 y 5.16 demues-
tran la validez del pro edimiento de disen ~o sugerido. Di hos resultados se
obtuvieron para una sen ~ al 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 i on 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 opti-
miza 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 eligi o R = 0:05
5.7 Problemas Resueltos 253

y Qa = 0:1I3 (e ua i on (5.27)), donde I3 es la matriz identidad de dimen-


si on tres. El tiempo de muestreo, su ientemente grande omo para poder
efe tuar todo el omputo requerido por muestra, fue de T s=0.01 s.

2
Posición (radianes)

1.5

0.5

0
0 10 20 30 40 50 60 70 80 90 100
Tiempo en segundos

1.5
Señal de control (voltios)

0.5

−0.5

−1
0 10 20 30 40 50 60 70 80 90 100
Tiempo en segundos

Figura 5.15: Control adaptivo de la posi ion del servomotor. Primer aso:
servomotor no a iona arga alguna.

5.7 Problemas Resueltos


En la se ion problemas resueltos de los ap tulos 4 al 8, la solu i on a los
problemas se en uentra, segu n el aso, en uno o m as ar hivos on extensi on
m es ritos en odigo MATLAB. En ada problema, la sele i on del tiempo de
muestreo es a onvenien ia del disen
~o.

Problema 5.1

El problema 3.1 presenta las e ua iones que gobiernan la din ami a del sis-
tema de suspension de un bus (ver gura 3.12). Disen ~ar un sistema de
ontrol adaptivo on autosintoniza ion para lograr el objetivo de ontrol si-
guiente: la salida del pro eso y = x2 x1 (referen ia nula) no debe presentar
sobreimpulsos mayores que el 5 %, y luego de 20 segundos, las os ila iones
254 Control Adaptivo

2.5

Posición (radianes)
2

1.5

0.5

0
0 10 20 30 40 50 60 70 80 90 100
Tiempo en segundos

1.5
Señal de control (voltios)

0.5

−0.5

−1
0 10 20 30 40 50 60 70 80 90 100
Tiempo en segundos

Figura 5.16: Control adaptivo de la posi ion del servomotor. Segundo aso:
servomotor a iona la arga no lineal.

originadas por un disturbio es al on 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 disen
~ ado, permite que las espe i a iones de re hazo del disturbio se
mantengan a pesar de que var e 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 ver a 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
5.7 Problemas Resueltos 255

b2/m2 0 a33 1
k2/m2 0 a43 0℄;
B = [0 0;1/m1 b1*b2/(m1*m2);0 -b2/m2;(1/m1+1/m2) -k2/m2℄;
C = [0 0 1 0℄; D = [0 0℄;
% CONVERSION AL ESPACIO DISCRETO
T=0.5; % TIEMPO DE MUESTREO
[G,H,C,D℄ = 2dm(A,B,C,D,T,'zoh'); % ESPACIO DE ESTADO
% FT CUANDO ACTUA LA SE~NAL CONTROL u Y EL DISTURBIO w ES NULO
[num,den℄=ss2tf(G,H,C,D,1);
a1 = den(2); a2 = den(3); a3 = den(4); a4 = den(5);
b1 = num(2); b2 = num(3); b3 = num(4); b4 = num(5);
% F.T. uando a t'ua disturbio w y ontrol u es nulo
[numd,dend℄=ss2tf(G,H,C,D,2); % dend = den
j1=numd(2); j2=numd(3); j3=numd(4); j4=numd(5);
% F.T. del pro eso: y = (num/den)*u + (numd/den)*w
% PARAMETROS PARA OPTIMIZAR LA GANANCIA F DEL FILTRO DE KALMAN
Xi = 1; Sigma = 1;
% PARAMETROS DE OPTIMIZACION DEL CONTROLADOR Ke
R = 1;
Qa = 1*[1 0 0 0 0;0 1 0 0 0;0 0 1 0 0;0 0 0 1 0;0 0 0 0 1℄;
% CONDICIONES INICIALES
Ref = 1; % MAGNITUD DE LA SE~NAL DE REFERENCIA
nn = 4; r=1; % nn: ORDEN DEL PROCESO; r: NUMERO DE SALIDAS
NN=13; % NUMERO DE PARAMETROS A ESTIMAR
Ce = (1 + a1 + a2+ a3+a4)*Ref;
thi =[-a1 -a2 -a3 -a4 b1 b2 b3 b4 j1 j2 j3 j4 Ce℄';
alfa=1000; Pi = alfa*eye(NN); % MATRIZ P INICIAL
lamb=0.98; % FACTOR DE MEMORIA
Y(1) = 0; Y(2) = 0; Y(3) = 0; Y(4)=0; Y(5) =0; % SALIDA
U(1)= 0; U(2) = 0; U(3) = 0; U(4)=0; U(5)=0; % CONTROL
w(1)= 0; w(2) = 0; w(3) = 0; w(4)=0; w(5)=0;
xmenos = zeros(nn,1); % VECTOR DE OBSERVACION INICIAL
z=0; % ACCION INTEGRAL INICIAL
MM = 200;
% LAZO DEL SISTEMA DE CONTROL ADAPTIVO ********************
for t=1:MM;
t1=t+1;
% SE~NAL DEL DISTURBIO
w(t1+4) = 0.01;%*sign(sin(0.03*t1));
% SE~NAL DE REFERENCIA
W(t1+4) = 0;
% MODELO LINEAL DEL PROCESO CON DISTURBIO
Y(t1+4)=[Y(t1+3) Y(t1+2) Y(t1+1) Y(t1) ...
256 Control Adaptivo

U(t1+3) U(t1+2) U(t1+1) U(t1) ...


w(t1+3) w(t1+2) w(t1+1) w(t1)℄*...
[-a1 -a2 -a3 -a4 b1 b2 b3 b4 j1 j2 j3 j4℄';
y(t1+4) = Y(t1+4) - W(t1+4); % salida residual
% ESTIMACION DE PARAMETROS (METODO MCRM)
psi=[Y(t1+3) Y(t1+2) Y(t1+1) Y(t1) U(t1+3) ...
U(t1+2) U(t1+1) U(t1) ...
w(t1+3) w(t1+2) w(t1+1) w(t1) 1℄';
rho = max(1,norm(psi));
psin = psi/rho;
Nn = hol(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(t1+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 DE ESTADO
ae1=-th(1); ae2=-th(2); ae3=-th(3); ae4=-th(4);
be1=th(5); be2=th(6); be3=th(7); be4=th(8);
je1=th(9); je2=th(10); je3=th(11); je4=th(12);
Ce=th(13);
nume = [0 be1 be2 be3 be4℄;
dene = [1 ae1 ae2 ae3 ae4℄;
[GE,HE,CE,DE℄ = tf2ss(nume,dene);
numde = [1 je1 je2 je3 je4℄;
[GE,FE,CE,DE℄ = tf2ss(numde,dene);

% CALCULO DE LA GANANCIA F DEL ESTIMADOR DE KALMAN


5.7 Problemas Resueltos 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 longitudi-
nal de un avi on omer ial volando a velo idad de ru ero (altura y velo idad
onstantes). El ontrol del angulo de in lina i on del avi on (ver gura 3.14)
es un problema longitudinal a resolver. El objetivo de ontrol enton es es
disen
~ar un autopiloto que manipulando el angulo Æe del de e tor de ele-
va ion, ontrole el angulo de in lina i on del avi on.
Se pide disen~ar un sistema de ontrol adaptivo que genere una fuerza
de ontrol, de modo que la salida del pro eso (el angulo de in lina i on )
presente un sobreimpulso menor al 10 % y un tiempo de estabiliza i on menor
que 10 s, on un error en estado estable nulo. Por ejemplo, si la entrada de
258 Control Adaptivo

0.01
Salida y = x1−x2 (m)
0.005

−0.005

−0.01
0 10 20 30 40 50 60 70 80 90 100
Tiempo en segundos

−20
Fuerza de control (N)

−40

−60

−80
0 10 20 30 40 50 60 70 80 90 100
Tiempo en segundos

Figura 5.17: Salida y = x1 x2 y la fuerza de ontrol disen


~ada, orrespon-
dientes al problema 5.1.

referen ia es 0.2 rad, enton es el angulo de in lina ion no debe ex eder el


valor de 0.22 rad, y luego de 10 segundos, permane er en 0.2 rad.

% p4adap1.m SOLUCION DEL PROBLEMA 5.2


lear all

% PARAMETROS DEL PROCESO


nn = 3; r=1; % nn: ORDEN DEL PROCESO; r: NUMERO DE SALIDAS
NN = 7; % ORDEN DEL VECTOR ESTIMADO DE PARAMETROS
% max = 100; min = 15; % PARA EL ESTIMADOR DE PARAMETROS
% PARAMETROS PARA OPTIMIZAR GANANCIA DEL FILTRO DE KALMAN
Sigma = 10; Xi = 1;
% PARAMETROS DE OPTIMIZACION DEL CONTROLADOR Ke; r+nn=4
R = 400; Qa = [0 0 0 0;0 0 0 0;0 0 0.001 0;0 0 0 0.001℄;

% MODELO LINEAL DEL PROCESO EN TIEMPO CONTINUO


A = [-0.313 56.7 0;-0.0139 -0.426 0;0 56.7 0℄;
B = [0.232;0.0203;0℄;
5.7 Problemas Resueltos 259

C = [0 0 1℄; D = [0℄;
T = 0.1; % PERIODO DE MUESTREO
% MODELO LINEAL DISCRETO
[G,H,C,D℄= 2dm(A ,B ,C ,D ,T,'zoh');
[num,den℄=ss2tf(G,H,C,D);
a1 = den(2); a2 = den(3); a3=den(4);
b1 = num(2); b2 = num(3); b3=num(4);

% CONDICIONES INICIALES
Ref = 0.2; % MAGNITUD DE LA SE~NAL DE REFERENCIA
Ce = (1 + a1 + a2 + a3)*Ref; % Uo = 0 (ARBITRARIO)
thi = [-a1 -a2 -a3 b1 b2 b3 Ce℄';
alfa=1000; Pi = alfa*eye(NN); % MATRIZ P INICIAL
lamb=0.98; lamb0 = 0.99; % FACTOR DE MEMORIA
Y(1)=0; Y(2)=0; Y(3)=0; y(1)=0; y(2)=0; y(3)=0; % SALIDA
U(1)=0; U(2)=0; U(3)=0; u(1)=0; u(2)=0; u(3)=0; % CONTROL
xmenos = zeros(nn,1); % VECTOR DE OBSERVACION INICIAL
z=0; % ACCION INTEGRAL INICIAL

% LAZO DEL SISTEMA DE CONTROL *****************************


MM = 2000;
for t = 1:MM
% SE~NAL DE REFERENCIA
v1(t+3)=0.2*sign(sin(0.005*t));
% pro eso
Y(t+3) = [Y(t+2) Y(t+1) Y(t) U(t+2) U(t+1) U(t)℄*...
[-a1 -a2 -a3 b1 b2 b3℄';
y(t+3) = Y(t+3) - v1(t+3); % SALIDA RESIDUAL (DESVIACION)
% ESTIMACION DE PARAMETROS (METODO MCRM)
psi = [Y(t+2) Y(t+1) Y(t) 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+3)/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;
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
5.7 Problemas Resueltos 261

xlabel('Tiempo en seg')
ylabel('Angulo del defle tor (rad)')
print -deps -f p4adap1

0.4
Inclinación (rad)

0.2

−0.2

−0.4
0 20 40 60 80 100 120 140 160 180 200

1
Angulo del deflector (rad)

0.5

−0.5

−1
0 20 40 60 80 100 120 140 160 180 200
Tiempo en seg

Figura 5.18: Angulo de in lina ion y sen


~al de ontrol (angulo del de e tor)
orrespondientes al problema 5.2.

Problema 5.3
La gura 3.20 muestra un monorriel de dos arros des rito en el proble-
ma 3.5. El problema a resolver es el ontrol de velo idad del arro de
m aquinas mediante un sistema de ontrol adaptivo on autosintoniza ion.
Para garantizar a los pasajeros un viaje onfortable, los ambios de velo i-
dad deben realizarse on un tiempo de estabiliza ion menor que 15 s y on
m nimo sobreimpulso. El error en estado estable debe ser nulo. Simule una
sen
~al de referen ia que ambie la velo idad de 30 a 20 m/s y demuestre
que se umplen las espe i a iones de disen ~o. Luego enfrente el problema
de seguimiento. Mostrar que la velo idad de la maquina puede seguir una
traye toria predeterminada de velo idades. El programa p7adap1b.m trata
el aso de referen ia arbitraria. Revise tal programa si desea ver detalles al
respe to.
262 Control Adaptivo

% p7adap1a.m SOLUCION DEL PROBLEMA 5.3


lear all
% PARAMETROS GENERALES
nn = 6; r=1; % nn: orden del pro eso; r: NUMERO DE SALIDAS
NN = 13; % ORDEN DEL VECTOR ESATIMADO DE PARAMETROS
% max = 100; min = 15; % PARA EL ESTIMADOR DE PARAMETROS
% PARAMETROS PARA OPTIMIZAR GANANCIA DEL FILTRO DE KALMAN
Xi = 2; Sigma = 1;
% PARAMETROS DE OPTIMIZACION DEL CONTROLADOR Ke
R = 1; Qa = 1*eye(r+nn,r+nn);
% PARAMETROS DEL PROCESO
M1=1300; M2=2600; M3=2600; K12=100000; K23=100000;
B12=500; B23=500; B1=5000; B2=10000; B3=10000;
% MODELO LINEAL DEL PROCESO EN TIEMPO CONTINUO
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℄';
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.5; % periodo de muestreo0.2
[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);
% CONDICIONES INICIALES
Ref = 30; % MAGNITUD DE LA SE~NAL DE REFERENCIA
Ce = (1+a1+a2+a3+a4+a5+a6)*Ref; % Uo = 0 (ARBITRARIO)
thi = [-a1 -a2 -a3 -a4 -a5 -a6 b1 b2 b3 b4 b5 b6 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(5)=0; Y(6)=0;
y(1)=0; y(2)=0; y(3)=0; y(4)=0; y(5)=0; y(6)=0; % salida
5.7 Problemas Resueltos 263

U(1)=0; U(2)=0; U(3)=0; U(4)=0; U(5)=0; U(6)=0;


u(1)=0; u(2)=0; u(3)=0; u(4)=0; u(5)=0; u(6)= 0; % ontrol
xmenos = zeros(nn,1); % VECTOR DE OBSERVACION INICIAL
z=0; % ACCION INTEGRAL INICIAL
% INICIO DEL LAZO DE CONTROL *******************
MM = 600;
for t = 1:MM
% SE~NAL DE REFERENCIA
Yo(t+6)= 25 + 5*sign(sin(0.02*t));
% MODELO LINEAL DEL PROCESO
Y(t+6) = [Y(t+5) Y(t+4) Y(t+3) Y(t+2) Y(t+1) Y(t)...
U(t+5) U(t+4) U(t+3) U(t+2) U(t+1) U(t)℄*...
[-a1 -a2 -a3 -a4 -a5 -a6 b1 b2 b3 b4 b5 b6℄';
y(t+6) = Y(t+6) - Yo(t+6); % salida residual (desvia ion)
% ESTIMACION DE PARAMETROS (METODO MCRM)
psi = [Y(t+5) Y(t+4) Y(t+3) Y(t+2) Y(t+1) Y(t)...
U(t+5) U(t+4) 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+6)/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); ae5=-th(5); ae6=-th(6);
264 Control Adaptivo

be1=th(7); be2=th(8); be3=th(9);


be4=th(10); be5=th(11); be6=th(12); Ce=th(13);
ae11=0; ae12=1; ae13=0; ae14=0; ae15=0; ae16=0;
ae21=0; ae22=0; ae23=1; ae24=0; ae25=0; ae26=0;
ae31=0; ae32=0; ae33=0; ae34=1; ae35=0; ae36=0;
ae41=0; ae42=0; ae43=0; ae44=0; ae45=1; ae46=0;
ae51=0; ae52=0; ae53=0; ae54=0; ae55=0; ae56=1;
ae61=-ae6; ae62=-ae5; ae63=-ae4;
ae64=-ae3; ae65=-ae2; ae66=-ae1;

GE = [ae11 ae12 ae13 ae14 ae15 ae16


ae21 ae22 ae23 ae24 ae25 ae26
ae31 ae32 ae33 ae34 ae35 ae36
ae41 ae42 ae43 ae44 ae45 ae46
ae51 ae52 ae53 ae54 ae55 ae56
ae61 ae62 ae63 ae64 ae65 ae66℄;

be11=0; be21=0; be31=0; be41=0; be51=0; be61=1;


HE=[be11;be21;be31;be41;be51;be61℄;
e11 =be6; e12=be5; e13=be4;
e14=be3; e15=be2; e16=be1;
CE = [ e11 e12 e13 e14 e15 e16℄; DE = [0℄;
% CALCULO DE LA GANANCIA F DEL ESTIMADOR DE KALMAN
F = dlqe(GE,HE,CE,Sigma,Xi);
xmas = xmenos + F*(y(t+6) - 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+6) = - Ka*[xmas;z℄; % e . (27)
% ACTUALIZANDO ESTADOS
xmenos = GE*xmas + HE*u(t+6); % e . (15)
AE = 1 + ae1 + ae2 + ae3 + ae4 + ae5 + ae6;
BE = be1 + be2 + be3 + be4 + be5 + be6;
Uin = inv(BE)*(AE*Yo(t+6) - Ce);
% CALCULO DE LA SE~NAL DE CONTROL U(k)
U(t+6) = u(t+6) + Uin;
end % FIN DEL LAZO DE CONTROL **********************
% GRAFICOS
ejex = linspa e(0,MM*T,MM);
5.7 Problemas Resueltos 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
Y1: Velocidad (m/s)

30

20

10

0
0 50 100 150 200 250 300
Tiempo en segundos

30
Voltaje de control u

20

10

−10
0 50 100 150 200 250 300
Tiempo en segundos

Figura 5.19: Velo idad del arro de maquinas y la fuerza de ontrol para el
problema 5.3.

Problema 5.4

La gura 3.22 muestra el pro eso as ensor tratado en el problema 3.6. El


problema a resolver es posi ionar suavemente el as ensor en un piso deter-
minado, lo que signi a sobreimpulso nulo (para que no se pase de piso) y
tiempo de estabiliza ion menor que 10 s. Para no saturar al a tuador (el
ampli ador de poten ia), la sen ~al de ontrol debe estar dentro del rango
de 200 voltios. Disen
~ar un sistema de ontrol de posi i on adaptivo on
autosintoniza i on que umpla las espe i a iones pedidas.
% p8adap1.m SOLUCION DEL PROBLEMA 5.4
266 Control Adaptivo

40

Y1: Velocidad (m/s)


30

20

10

0
0 50 100 150 200 250 300
Tiempo en segundos

30
Voltaje de control u

20

10

−10
0 50 100 150 200 250 300
Tiempo en segundos

Figura 5.20: Velo idad del arro de m aquinas y la fuerza de ontrol para el
problema 5.3. La referen ia es arbitraria.

lear all
% PARAMETROS GENERALES
nn = 4; r=1; % nn: orden del pro eso; r: NUMERO DE SALIDAS
NN = 9; % ORDEN DEL VECTOR ESATIMADO DE PARAMETROS
% max = 100; min = 15; % PARA EL ESTIMADOR DE PARAMETROS
% PARAMETROS PARA OPTIMIZAR GANANCIA DEL FILTRO DE KALMAN
Xi = 0.001; Sigma = 400;
% PARAMETROS DE OPTIMIZACION DEL CONTROLADOR Ke
R = 1; Qa = 1*eye(r+nn,r+nn);
% MODELO LINEAL DEL PROCESO EN TIEMPO CONTINUO
A = [-0.2 0 0 0;1 0 0 0;2 0 -2 0;5 0 0 -5℄;
B = [0.001;0;0;0℄;
C = [0 1 0 0℄; D = [0℄;
T = 0.8; % PERIODO DE MUESTREO
% MODELO LINEAL DISCRETO
[G,H,C,D℄= 2dm(A ,B ,C ,D ,T,'zoh');
[num,den℄=ss2tf(G,H,C,D);
a1 = den(2); a2 = den(3); a3=den(4); a4=den(5);
b1 = num(2); b2 = num(3); b3=num(4); b4=num(5);
% CONDICIONES INICIALES
Ref = 1; % MAGNITUD DE LA SE~NAL DE REFERENCIA: Yo = Ref
5.7 Problemas Resueltos 267

Ce = (1 + a1 + a2 + a3 + a4)*Ref; % Uo = 0 (arbitrario)
thi = [-a1 -a2 -a3 -a4 b1 b2 b3 b4 Ce℄';
alfa=1000; Pi = alfa*eye(NN); % MATRIZ P INICIAL
lamb=0.98; lamb0 = 0.99; % FACTOR DE MEMORIA
Y(1)=0;Y(2)=0;Y(3)=0;Y(4)=0; y(1)=0;y(2)=0;y(3)=0;y(4)=0;
U(1)=0;U(2)=0;U(3)=0;U(4)=0; u(1)=0;u(2)=0;u(3)=0;u(4)=0;
xmenos = zeros(nn,1); % VECTOR DE OBSERVACION INICIAL
z=0; % ACCION INTEGRAL INICIAL
% INCIO DEL LAZO DE CONTROL **********************************
MM = 1000;
for t = 1:MM
% SE~NAL DE REFERENCIA
g(t+4)=6 + 4*sign(sin(0.01*t));
% MODELO LINEAL DEL PROCESO
Y(t+4)=[Y(t+3) Y(t+2) Y(t+1) Y(t) ...
U(t+3) U(t+2) U(t+1) U(t)℄*[-a1 -a2 -a3 -a4 b1 b2 b3 b4℄';
y(t+4) = Y(t+4) - g(t+4); % salida residual (desvia ion)
% ESTIMACION DE PARAMETROS (METODO MCRM)%
psi = [Y(t+3) Y(t+2) Y(t+1) Y(t) ...
U(t+3) U(t+2) U(t+1) U(t) 1℄';
rho = max(1,norm(psi));
psin = psi/rho;
Nn = hol(Pi'); % Nn'*Nn = Pi => Nn*N' = Pi' S =
inv(diag(Nn*ones(NN,1),0));
Ps = S*Pi*S;
psins = inv(S)*psin;
rt = 1 + psins'*Ps*psins;
lamb = 1 - (rt-sqrt(rt^2-4*norm(Ps*psins)^2/tra e(Ps)))/2;
e = Y(t+4)/rho - psin'*thi;
j = psins'*Ps*psins + lamb;
th = thi + e*inv(S)*Ps*psins/j;
Hns = Ps*psins/j;
Ps = (Ps - Hns*psins'*Ps)/lamb;
tt = abs(max(eig(Ps))/min(eig(Ps)) );
max = 100; min = 15;
if tt <= min,
Pi = Ps; thi = th;
elseif tt >= max,
Nnew = hol(Ps'); % Nnew*Nnew' = Ps'
Snew = inv(diag(Nnew*ones(NN,1),0));
Psnew = Snew*Ps*Snew;
Pi = Psnew; thi = th;
end
268 Control Adaptivo

% 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);
ae11 = 0; ae12 = 1; ae13 = 0; ae14 = 0;
ae21 = 0; ae22 = 0; ae23 = 1; ae24 = 0;
ae31 = 0; ae32 = 0; ae33 = 0; ae34 = 1;
ae41 =-ae4; ae42 = -ae3; ae43 = -ae2; ae44 = -ae1;
GE = [ae11 ae12 ae13 ae14;ae21 ae22 ae23 ae24;...
ae31 ae32 ae33 ae34;ae41 ae42 ae43 ae44℄;
be11=0; be21=0; be31=0; be41=1; HE=[be11;be21;be31;be41℄;
e11=be4; e12=be3; e13=be2; e14=be1;
CE=[ e11 e12 e13 e14℄; DE=[0℄;
% 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
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℄;
% ACTUALIZANDO ESTADOS
xmenos = GE*xmas + HE*u(t+4);
AE= 1 + ae1 + ae2 + ae3 + ae4; BE= be1 + be2 + be3 + be4;
Uin = inv(BE)*(AE*g(t+4) - Ce);
% CALCULO DE LA SE~NAL DE CONTROL U(t)
U(t+4) = u(t+4) + Uin;
% LIMITANDO LA SE~NAL U(t)
if(U(t+4) > 200)
U(t+4) = 200;
elseif(U(t+4) <-200)
U(t+4) = -200;
else
U(t+4) = U(t+4);
end
end % FIN DEL LAZO DE CONTROL **********************
% GRAFICOS
ejex = linspa e(0,MM*T,MM); subplot(2,1,1)
plot(ejex,g(4:MM+3),ejex,Y(4:MM+3)), grid
ylabel('Posi ion')
5.7 Problemas Resueltos 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

8
Posición (m)

0
0 100 200 300 400 500 600 700 800
Tiempo en segundos

200
Voltaje de control

100

−100

−200
0 100 200 300 400 500 600 700 800
Tiempo en segundos

Figura 5.21: Posi i on del as ensor y la fuerza de ontrol (problema 5.4).

Problema 5.5

La gura 2.2 muestra dos tanques id enti os olo ados en as ada. La se ion
horizontal A=9 m2 de ada tanque es onstante. El objetivo de ontrol es
ontrolar la altura H2 empleando el ujo Qo. La dedu i on del modelo
linealizado del pro eso se des ribe en el ejemplo 2.1. Disen
~ar un ontrolador
adaptivo on autosintoniza ion que umpla los siguientes requerimientos:
tiempo de estabiliza i on menor que 15 s, sobreimpulso menor al 5 % y error
en estado estable nulo. Estas ondi iones de disen ~o deben mantenerse
uando se ambie la referen ia (por ejemplo de 3 a 1 m). Adem as, el ujo de
~al de ontrol) no debe sobrepasar los 3 m3 /s.
entrada (la sen
% p9adap1.m SOLUCION DEL PROBLEMA 5.5
lear all
% PARAMETROS GENERALES
270 Control Adaptivo

nn = 2; r=1; % nn: ORDEN DEL PROCES; r: NUMERO DE SALIDAS


NN = 5; % ORDEN DEL VECTOR ESATIMADO DE PARAMETROS
% max = 100; min = 15 % PARA EL ESTIMADOR DE PARAMETROS
% PARAMETROS PARA OPTIMIZAR GANANCIA DEL FILTRO DE KALMAN
Xi = 100; Sigma = 0.01;
% PARAMETROS DE OPTIMIZACION DEL CONTROLADOR Ke
R = 1; Qa = 0.1*eye(r+nn,r+nn);
% PARAMETROS DEL PROCESO NO LINEAL
gamma=0.4; gg=9.81; rho=1.23; A=9; Qo=3;
H=Qo^2/(gamma^2*rho*gg);
Z=(gamma*sqrt(rho*gg))/(2*A*sqrt(H));
% MODELO LINEAL DEL PROCESO EN TIEMPO CONTINUO
A = [-Z 0;Z -Z℄;
B = [1;0℄;
C = [1 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);
b1 = num(2); b2 = num(3);
% G ,H , C , D : REPRESENTACION CANONICA CONTROLABLE
a11 = 0; a12 =1; a21 = -a2; a22 = -a1;
b11 = 0; b21 = 1; 11 =b2; 12 = b1;
G = [a11 a12;a21 a22℄; H = [b11;b21℄;
C =[ 11 12℄; D = [0℄;
% CONDICIONES INICIALES
Ref = 1; % MAGNITUD DE LA SE~NAL DE REFERENCIA: Yo = Ref
Ce = (1 + a1 + a2)*Ref; % Uo = 0 (ARBITRARIO)
thi = [-a1 -a2 b1 b2 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(1) = 0; y(2) = 0; % salida
U(1 )= 0; U(2) = 0; u(1) = 0; u(2) = 0; % ontrol
H1(1) =0; H1(2)=0;
xmenos = zeros(nn,1); % VECTOR DE OBSERVACION INICIAL
z=0; % ACCION INTEGRAL INICIAL
% INICIO DEL LAZO DE CONTROL **********************************
MM = 200;
for t = 1:MM
% SE~NAL DE REFERENCIA
g(t+2)=2-1*sign(sin(0.08*t));
% MODELO LINEAL DEL PROCESO
5.7 Problemas Resueltos 271

y(t+2) = [y(t+1) y(t) u(t+1) u(t)℄*[-a1 -a2 b1 b2℄';


Y(t+2) = y(t+2) + g(t+2); % salida a tual
% ESTIMACION DE PARAMETROS (METODO MCRM)
psi = [Y(t+1) Y(t) 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+2)/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); be1=th(3); be2=th(4); Ce=th(NN);
ae11 = 0; ae12 =1; ae21 = -ae2; ae22 = -ae1;
GE = [ae11 ae12;ae21 ae22℄;
be11 = 0; be21 = 1; HE = [be11;be21℄;
e11 =be2; e12 = be1; CE = [ e11 e12℄; DE = [0℄;
% CALCULO DE LA GANANCIA F DEL ESTIMADOR DE KALMAN
F = dlqe(GE,HE,CE,Sigma,Xi);
xmas = xmenos + F*(y(t+2) - 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
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 pro-
blema 3.8. Disen ~ar un sistema de ontrol adaptivo on autosintoniza i on
para ontrolar la velo idad angular del eje del motor mediante el voltaje de
entrada que puede variar entre 100 voltios. La sen~al de referen ia es
arbitraria (problema de seguimiento).
% p11adap1.m SOLUCION DEL PROBLEMA 5.6
lear all
% PARAMETROS GENERALES
5.7 Problemas Resueltos 273

Nivel en metros
2.5

1.5

1
0 20 40 60 80 100 120 140 160
Tiempo en segundos

4
Flujo de control (m/s)

−2

−4
0 20 40 60 80 100 120 140 160
Tiempo en segundos

Figura 5.22: Nivel ontrolado H 2 y el ujo de ontrol para el problema 5.5.

nn = 3; r=1; % nn: ORDEN DEL PROCESO; r: NUMERO DE SALIDAS


NN = 7; % ORDEN DEL VECTOR ESATIMADO DE PARAMETROS
% PARAMETROS DEL PROCESO:
J = 0.01; % MOMENTO DE INERCIA DEL MOTORM (kgm2/s2)
Ke =0.01; Kt = 0.01; % CONSTANTE ELECTROMOTRIZ (Nm/A)
R = 12; % RESISTENCIA (Ohmios)
C = 0.5; % CONDENSADOR (uF)
L = 0.5; % INDUCTANCIA DE LA ARMADURA (H)
Kw = 1.8; % CONSTANTE TORSIONAL (Nm/rad)
% MODELO LINEAL DEL PROCESO EN TIEMPO CONTINUO
A = [-1/(R*C) -1/C 0;...
Kw/(L*Kw + Kt*Ke) 0 -Ke*Kw/(L*Kw + Kt*Ke);0 Kt/J 0℄;
B = [1/(R*C);0;0℄;
C = [0 0 1℄; D = [0℄;
T = 0.2; % PERIODO DE MUESTREO
% MODELO LINEAL DISCRETO DEL PROCESO
[G,H,C,D℄= 2dm(A ,B ,C ,D ,T,'zoh');
[num,den℄=ss2tf(G,H,C,D);
a1 = den(2); a2 = den(3); a3=den(4);
b1 = num(2); b2 = num(3); b3=num(4);
% PARAMETROS PARA OPTIMIZAR GANANCIA DEL FILTRO DE KALMAN
Xi = 0.001; Sigma = 10;
274 Control Adaptivo

% PARAMETROS DE OPTIMIZACION DEL CONTROLADOR Ke


R = 0.1*eye(r,r); Qa = 0.001*eye(r+nn,r+nn);
% G ,H , C , D : REPRESENTACION CANONICA CONTROLABLE
a11 =0; a12 =1; a13 =0; a21 =0; a22 =0 ;
a23 =1; a31 = -a3; a32 = -a2; a33 =-a3;
b11 = 0; b21 = 0; b31 = 1;
11 =b3; 12 = b2; 13 = b1;
G = [a11 a12 a13;a21 a22 a23;a31 a32 a33℄;
H = [b11;b21;b31℄;
C =[ 11 12 13℄; D = [0℄;
% CONDICIONES INICIALES
Ref = 1; % MAGNITUD DE LA SE~NAL DE REFERENCIA: Yo = Ref
Ce = (1 + a1 + a2 + a3)*Ref; % Uo = 0 (ARBITRARIO)
thi = [-a1 -a2 -a3 b1 b2 b3 Ce℄';
alfa=1000; Pi = alfa*eye(NN); % MATRIZ P INICIAL
lamb=0.98; lamb0 = 0.99; % FACTOR DE MEMORIA
Y(1) = 0; Y(2) = 0; Y(3) = 0; y(1)=0; y(2)=0; y(3)=0;
U(1 )= 0; U(2) = 0; U(3) = 0; u(1)=0; u(2)=0; u(3)=0;
xmenos = zeros(nn,1); % VECTOR DE OBSERVACION INICIAL
z=0; % ACCION INTEGRAL INICIAL
% INICIO DEL LAZO DE CONTROL **********************************
MM = 400;
for t = 1:MM
% SE~NAL DE REFERENCIA
Yo(t+3)= 0.4 + 3*(sin(0.02*t))+0.01*t;
% MODELO LINEAL DEL PROCESO
Y(t+3) = [Y(t+2) Y(t+1) Y(t) U(t+2) U(t+1) U(t)℄*...
[-a1 -a2 -a3 b1 b2 b3℄';
y(t+3) = Y(t+3) - Yo(t+3); % SALIDA RESIDUAL (DESVIACION)
% ESTIMACION DE PARAMETROS (METODO MCRM)
psi = [Y(t+2) Y(t+1) Y(t) 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+3)/rho - psin'*thi;
j = psins'*Ps*psins + lamb;
th = thi + e*inv(S)*Ps*psins/j;
Hns = Ps*psins/j;
5.7 Problemas Resueltos 275

Ps = (Ps - Hns*psins'*Ps)/lamb;
tt = abs(max(eig(Ps))/min(eig(Ps)) );
max = 100; min = 15;
if tt <= min,
Pi = Ps; thi = th;
elseif tt >= max,
Nnew = hol(Ps'); % Nnew*Nnew' = Ps'
Snew = inv(diag(Nnew*ones(NN,1),0));
Psnew = Snew*Ps*Snew;
Pi = Psnew; thi = th;
end
% RECUPERACION DE LA ECUACION CANONICA CONTROLABLE
ae1 = -th(1); ae2 = -th(2); ae3 = -th(3);
be1 = th(4); be2 = th(5); be3 = th(6); Ce = th(7);
ae11 = 0; ae12 =1; ae13 = 0; ae21 = 0; ae22 = 0;
ae23 = 1; ae31 =-ae3; ae32 = -ae2; ae33 = -ae1;
GE = [ae11 ae12 ae13;ae21 ae22 ae23;ae31 ae32 ae33℄;
be11 = 0; be21 = 0; be31 = 1; HE = [be11;be21;be31℄;
e11 =be3; e12 = be2; e13 = be1;
CE = [ e11 e12 e13℄; DE = [0℄;
% CALCULO DE LA GANANCIA F DEL ESTIMADOR DE KALMAN
F = dlqe(GE,HE,CE,Sigma,Xi);
xmas = xmenos + F*(y(t+3) - CE*xmenos);
z = z -CE*xmas;
% CALCULO DE LA GANANCIA Ka DEL CONTROLADOR
Ga = [GE zeros(nn,r);-CE eye(r,r)℄;
Ha = [HE;zeros(r,r)℄;
Ca = [CE zeros(r,r)℄;
Ka = dlqr(Ga,Ha,Qa,R);
% CALCULO DE LA LEY DE CONTROL RESIDUAL
u(t+3) = - Ka*[xmas;z℄;
% ACTUALIZANDO ESTADOS
xmenos = GE*xmas + HE*u(t+3);
AE = 1 + ae1 + ae2 + ae3; BE = be1 + be2 + be3;
Uin = inv(BE)*(AE*Yo(t+3) - Ce);
% CALCULO DE LA SE~NAL DE CONTROL U(t)
U(t+3) = u(t+3) + Uin;
% LIMITANDO LA SE~NAL U(t)
if(U(t+3) > 100)
U(t+3) = 100;
elseif(U(t+3) <-100)
U(t+3) = -100;
end
276 Control Adaptivo

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('Velo idad (rad/s)')
subplot(2,1,2)
plot(ejex,U(3:MM+2)); grid
xlabel('Tiempo en seg')
ylabel('Voltaje de ontrol')
print -deps -f p11adap1

6
Velocidad (rad/s)

−2
0 10 20 30 40 50 60 70 80

40
Voltaje de control

20

−20

−40
0 10 20 30 40 50 60 70 80
Tiempo en seg

Figura 5.23: Velo idad angular ontrolada y el voltaje de ontrol para el


problema 5.6.

Problema 5.7
En el problema 3.3 se des ribe el pro eso de la bola rodando a lo largo de
una barra on un grado de libertad, tal omo se muestra en la gura 3.16.
Una leva one ta la barra on un engranaje a ionado por un servomotor. Se
desea disen ~ ar un sistema de ontrol adaptivo que pueda posi ionar la
bola a 0.5 m de un extremo de la barra de 1 m de longitud. Evidentemente,
la os ila ion de la bola debe estar restringida sobre la barra. El voltaje de
ontrol no debe sobrepasar los 40 voltios.
5.7 Problemas Resueltos 277

% p5adap1.m SOLUCION DEL PROBLEMA 5.7


lear all
% PARAMETROS GENERALES
nn = 4; r=1; % nn: ORDEN DEL PROCES; 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 = 1; Sigma = 0.001;
% 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℄;
% PARAMETROS DEL PROCESO
M=0.11; % masa de la bola(kg)
R=0.015; % radio de la bola(m)
d=0.03; % distan ia de la leva al engranaje(m)
g=9.8 ; % a elera ion de la gravedad (m/s2)
L=1.0; % longitud de la barra(m)
J=9.99e-6; % iner ia de la barra(kgm2)T=0.7,Sigma=0.001
% MODELO LINEAL DEL PROCESO EN TIEMPO CONTINUO
A = [0 1 0 0;0 0 M*g*d/(L*(J/R^2+M)) 0;0 0 0 1;0 0 0 0℄;
B = [0;0;0;1℄;
C = [1 0 0 0℄; D = [0℄;
T = 0.7; % PERIODO DE MUESTREO T=0.12
% 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
% INICIO DEL LAZO DE CONTROL **********************************
MM = 300;
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
5.8 Problemas Propuestos 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

En el pro eso de la gura 3.24(a) se desea redu ir la humedad h del material


a granel de la tolva (ver problema 3.7). La banda transportadora, que se
desplaza a una velo idad onstante de v= 1 m/s, introdu e el material a un
horno de se ado. El sensor de humedad dete ta hr a una distan ia d = 10 m
del horno y propor iona la sen~al de voltaje vr . El horno puede ser modelado
omo un pro eso de primer orden. La gura 3.24(b) muestra la F.T del pro
eso. Disen~ar un sistema de ontrol adaptivo on autosintoniza i on on el
proposito de estabilizar la humedad del material en la banda transportadora,
a pesar de que el tiempo muerto T = v=d var a entre 9 y 11 s. Para propositos
280 Control Adaptivo

0.8

Posición (m)
0.6

0.4

0.2

0
0 50 100 150 200 250

10

5
Voltaje de control

−5

−10

−15
0 50 100 150 200 250
Tiempo en seg

Figura 5.24: Posi ion de la bola y el voltaje de ontrol para el problema 5.7.

del modelado del pro eso, el tiempo muerto puede ser des rito mediante la
aproxima ion de Pad e de ter er orden (ver ejemplo ??):

e Ts num(s)= 1 Tts=2 + (Tts)2=10 (Tts)3=120


den(s) 1 + T s=2 + (T s)2=10 + (T s)3=120
t t t

Espe i a iones de disen ~o: tiempo de estabiliza ion menor que 40 s, error
en estado esta ionario nulo y por entaje de sobreimpulso menor al 5 %.

Problema 5.9

Las e ua iones del modelo linealizado para ontrolar la posi i on del an


~ on
montado en la torreta de un tanque ( gura 3.28), empleando un a tuador
hidrauli o se detallan en el problema 3.9.
(a) Disen~ar un sistema de ontrol adaptivo on autosintoniza ion para
ontrolar el angulo de eleva i on on las espe i a iones siguientes:
tiempo de estabiliza i on menor que 5 s, m nimo sobreimpulso en la
respuesta y error de estado esta ionario nulo. Los disturbios tipo es-
al on pueden a tuar simultaneamente o no, y pueden ser positivos o
negativos. Para ada aso, el sistema de ontrol disen ~ ado debe ser
apaz de minimizar sus efe tos.
5.8 Problemas Propuestos 281

(b) Lo mismo que (a), pero en este aso para ontrolar el angulo azimutal.

Problema 5.10

La gura 3.31 muestra el pro eso servomotor on arga no lineal des rito en
la se ion 3.3, en donde la arga no lineal posee ahora dos grados de libertad
on Lo = 2L1=3 y Mo=0.02 kg. La uni on de la arga on el eje del servomotor
no es exible. Las e ua iones que des riben la dinami a del sistema son
materia del problema 3.12. Disen ~ar un sistema de ontrol adaptivo on
autosintoniza i on para ontrolar simult aneamente las posi iones y on
m nimo tiempo de estabiliza ion y m nimo sobreimpulso en la respuesta.

Problema 5.11

La gura 3.32 muestra el pro eso p endulo doble no lineal que es una exten-
sion del p endulo simple des rito en la se ion 3.1. El a oplamiento entre los
dos p endulos de igual longitud no es exible. Las e ua iones que des riben la
dinami a del sistema son materia del problema propuesto 3.13. Considerar
que la arga esferi a es de 0.02 kg. Disen~ar un sistema de ontrol adaptivo
on autosintoniza i on para ontrolar simult aneamente las posi iones y
on m nimo tiempo de estabiliza i on y m nimo sobreimpulso en la salida, de
modo tal que el p endulo doble permanez a en posi i on verti al.

Problema 5.12

La gura 3.33 muestra el pro eso doble gru a puente no lineal que es una ex-
tensi on del pro eso gru a-puente des rito en la se i on 3.2. El a oplamiento
entre las dos se iones iguales de la varilla no es exible. Para poder deter-
minar un modelo no lineal din ami o para este pro eso, onviene emplear las
e ua iones de Lagrange de la me ani a l asi a (ver problema 3.14). Conside-
rar que la arga esferi a es de 0.02 kg. Disen
~ar un sistema de ontrol adaptivo
on autosintoniza i on para ontrolar simult aneamente las posi iones y
on m nimo tiempo de estabiliza ion y m nimo sobreimpulso, de modo tal que
la doble gru a-puente permanez a en posi i on verti al uando el arro
realiza un re orrido predeterminado.

Problema 5.13

La gura 1.1 muestra un arro de masa m = 1000 kg desplazandose on una


velo idad v gra ias a la a ion de la fuerza u produ ida por su motor. Si
282 Control Adaptivo

se despre ia la iner ia de las ruedas y se asume que la fuerza de fri ion bv,
donde b= 50 N-s/m es el oe iente de fri i on, es lo uni o que se opone
al movimiento del arro, enton es la dinami a del pro eso puede modelarse
omo (ver ejemplo 1.16):
dv
mv_(t) + bv(t) = u(t); v_ =
dt
Disen~ar un sistema de ontrol adaptivo on autosintoniza ion para ontro-
lar la velo idad del m ovil on m nimo tiempo de estabiliza i on y m nimo
sobreimpulso en la salida. La sen
~al de referen ia puede ser arbitraria (pro-
blema de seguimiento).

Problema 5.14

El motor D.C. es un a tuador muy popular en los sistemas de ontrol, ya


que su movimiento rotatorio, mediante a oples ade uados en su eje, puede
onvertirse fa ilmente en movimiento de trasla ion omo por ejemplo, en
fajas transportadoras y en brazos manipuladores. La gura 4.3 muestra el
ir uito de armadura del motor y el diagrama de uerpo libre de su rotor.
Las e ua iones que gobiernan el omportamiento dinami o del motor fueron
derivadas en el ejemplo 4.1. Disen~ar dos sistemas de ontrol adaptivo on
autosintoniza i on. El primero para estabilizar la velo idad angular del eje
del motor on las espe i a iones siguientes: tiempo de estabiliza i on menor
que 4 s, error en estado estable menor al 1 % y sobreimpulso en la salida
menor al 5 %. El segundo sistema de ontrol adaptivo a disen ~ar debe es-
tabilizar la posi i on del eje del motor on las mismas espe i a iones de
disen~o.
Cap tulo 6

Control Predi tivo

En este ap tulo se desarrolla un pro edimiento para disen~ar un sistema de on-


trol predi tivo basado en modelos. El algoritmo de ontrol predi tivo empleado
es el denominado ontrol matri ial din ami o, el ual puede ser tambi en del tipo es
alar. Para validar el pro edimiento de disen~o propuesto, se presenta una
apli a i on: ontrol predi tivo de la posi i on angular de un servomotor sujeto a
argas no lineales variables.
La penultima se ion, problemas resueltos, trata el disen~o de sistemas de
ontrol predi tivo para diferentes pro esos empleando leyes de ontrol es alar
y matri ial. Todos los ar hivos orrespondientes a los ejer i ios, problemas,
disen
~os, simula iones y software desarrollados se pueden des argar del sitio:
http:// ee.uni.edu.pe/728681F.

6.1 Control Predi tivo Basado en Modelos


El Control Predi tivo Basado en Modelos [7℄, [8℄ es una metodolog a de on-
trol 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 metodolog a 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.

C al 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 Control Predi tivo

Los diferentes miembros de la familia del Control Predi tivo Basado en


Modelos di eren prin ipalmente en el modelo usado para representar el pro-
eso on sus perturba iones, y en las fun iones de osto a ser minimizadas
( on o sin restri iones). En lo que sigue del ap tulo, se desarrollan los
prin ipios del Control Predi tivo Basado en Modelos para su apli a ion
en sistemas univariables. De la gama de algoritmos de ontrol predi tivo
existentes, nos o upamos en parti ular del denominado Control Matri ial
Dinami o (\Dynami Matrix Control"). Para validar el pro edimiento de
disen
~o propuesto, se presenta y dis ute una apli a ion: ontrol predi tivo de
la posi ion angular de un servomotor sujeto a argas no lineales variables.
Es importante resaltar que el ontrol predi tivo es de naturaleza abierta
y uenta on mu has ontribu iones, tanto en lo a ad emi o omo tambi en en
el mundo industrial. Mu has apli a iones del ontrol predi tivo son usadas
hoy en todos los ampos de la a tividad industrial. El buen rendimiento de
tales apli a iones es muy apre iada; por ello, a tualmente existe un re iente
inter es en esta metodolog a, si bien el trabajo pionero se ini i alrededor de
ha e dos d e adas.

6.2 Prin ipios del Control Predi tivo Basado en


Modelos
El ontrol predi tivo pronosti a la salida de la planta en un es enario de
tiempo de dura ion N2 (el horizonte de tiempo N2). Tal predi ion depende
de las salidas y entradas pasadas, pero tambi en del es enario del ontrol
futuro. La obten ion del modelo que re eje lo m as elmente posible la
evolu i on din ami a de la planta, es la llave del exito en las apli a iones.
La nota ion usada para derivar los prin ipios del ontrol predi tivo es la
siguiente:

t, representa el tiempo dis reto (t = 0, 1, 2, . . . ).

u(t), denota la entrada al pro eso y onstituye la variable manipulada o


sen
~al de ontrol.

y(t), es la salida del pro eso y onstituye la la variable ontrolada.

w(t), representa la traye toria deseada (\set point").

r(t), denota la traye toria de referen ia.


6.2 Prin ipios del Control Predi tivo Basado en Modelos 285

u(t + k=t), denota los valores futuros de la entrada en el tiempo t + k


postulados en el tiempo t, o simplemente, dado t.

y(t + k=t), denota los valores futuros de la salida basado en las medi-
iones disponibles en el tiempo t:

fy(t); y(t 1); : : : ; u(t 1); u(t 2); : : :g


y en los valores futuros de la entrada postulados en el tiempo t:

fu(t=t); u(t + 1=t); : : :g


Con rela i on a la gura 6.1, el prin ipio del ontrol predi tivo se ara -
teriza por la siguiente estrategia:

Politica de control pasada Politica de control futura


1

2
Trayectoria de
referencia
Trayectoria
deseada 1

2
Tiempo
Salida pasada Muerto
del proceso

Pasado 1 2 Futuro N2
Momento presente t

Figura 6.1: Estrategia del ontrol predi tivo.

En ada tiempo t, la salida del pro eso y(t + k) se pronosti a sobre


un horizonte k = 1 : : : N2. Los valores pronosti ados se denotan o-
mo y(t + k=t) y a N2 se le denomina el horizonte de predi ion. La
predi i on se realiza mediante el modelo del pro eso, el ual se asume
que est a disponible. El pron osti o en uesti on depende de las en-
tradas y salidas pasadas, pero tambi en del es enario del ontrol futuro
u(t + k=t), k = 0; : : : ; N 2 1; es de ir, de las a iones de ontrol que
se intentan apli ar a partir del tiempo t.
286 Control Predi tivo

Una traye toria de referen ia r(t + k=t), k = 1; : : : ; N2, que se ini ia


en r(t=t) = y(t) y se de ne sobre el horizonte de predi ion. Esta
traye toria des ribe la forma de guiar la salida del pro eso desde su
valor a tual y(t) hasta la traye toria deseada w(t).

El ve tor de ontrol u(t + k=t), k = 0; : : : ; N 2 1, se al ula para


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; : : : ; N 2.

Al pro eso real solo se le apli a el primer elemento del ve tor de ontrol
optimo al ulado u(t + k=t), k = 0; : : : ; N 2 1, mientras que se dejan
de lado los dem as elementos de di ho ve tor. En el pr oximo instante de
muestreo, todas las se uen ias temporales se desplazan para dar abida
a las nuevas medi iones de la salida y(t+1) y a las del ve tor de ontrol
u(t + k + 1=t + 1), uyo primer elemento es generalmente diferente al
primer elemento del ve tor u(t + k=t), previamente al ulado. Este
prin ipio se denomina estrategia del \horizonte retroa tivo".

La estrategia del ontrol predi tivo omprende: el pro eso de predi i on


a trav es de un modelo del pro eso, la espe i a i on de una traye toria de
referen ia, la estru tura i on de la futura ley de ontrol, la de ni 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 Salidas + Trayectoria de
pasadas predecidas referencia
MODELO -
Entradas
futuras
OPTIMIZADOR

Funcio’n de costo restricciones

Figura 6.2: Estrategia del Control Predi tivo Basado en Modelos


6.3 El Modelo del Pro eso 287

6.3 El Modelo del Pro eso


El pro eso de una entrada y una salida, probablemente no lineal, puede
modelarse omo:
y(t) = x(t) + n(t) (6.1)
tal omo se ilustra en la gura 6.3, donde y(t) es la salida medible del pro eso,
u(t) es la entrada al pro eso (la sen~al de ontrol), x(t) es la salida del modelo
y n(t) es el disturbio en el pro eso.
n
u x y
MODELO

Figura 6.3: Modelo del pro eso bajo perturba iones.

El Disturbio n(t)
La sen~al de disturbio n(t) in luye todos los efe tos no deseados en la salida
y(t). Esta sen
~al representa el efe to onjunto de todos los disturbios sobre el
pro eso, otras entradas no medibles, ruido de medi ion, errores de modelado,
in ertidumbres, et . El disturbio n(t), que es de ara ter esto asti o, puede
ser modelado mediante un ltro oloreado de la forma:
n(t) C(z 1 )
= (6.2)
e(t) D(z 1)

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:
1 1 n
C(z ) = 1 + 1z + + n z (6.3)
1 1 nd
D(z ) = 1 + d 1z + + dnd z (6.4)

El ltro de disturbio debe disen~arse: 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 t pi as de los polinomios del ltro pueden
ser:
C(z 1 ) = 1 + z 1; D(z 1 ) = (1 + dz 1)(1 z 1 )
288 Control Predi tivo

La Salida x(t) del Modelo


La sen~al 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 sen
~al medible. En general, la rela ion
entre u(t) y x(t) puede representarse mediante un modelo din ami o gen eri 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 i on que puede estru turarse de diversas formas. Es
de ir, f (:) puede ser una e ua ion de diferen ias, una red neuronal o una
aja negra on par ametros a ser estimados.

El Modelo CARIMA
El modelo CARIMA, del ingl es \Controlled Autoregressive Integrated Mov-
ing Average", es un modelo lineal basi o y bastante extendido en su apli-
a ion y es pre isamente el que emplearemos. El modelo CARIMA del
pro eso puede ser representado por:

C(z 1 )
A(z 1 )y(t) = B(z 1
)u(t) + e(t) (6.6)
D(z 1)
donde:
1
A(z ) = 1 + a 1 z 1 + ::: + ana z na
(6.7)
B(z 1) = b 1z 1 + ::: + bnb z nb
(6.8)
El origen del t ermino CARIMA se debe a que la e ua i on de diferen ias
del modelo del pro eso presenta tres omponentes, a saber, la omponente
salida autoregresiva:

y(k) = a1y(k 1) a2y(k 2) ::: ana y(k na)

el omponente promedio temporal de ontrol:

+ b0u(k 1) + b1u(k 2) + ::: + bnb u(k nb 1)

y el omponente promedio temporal integrado del error e(t):

e(k) + 1e(k 1) + 2e(k 2) + ::: + n e(k n )


+
1 z1
6.3 El Modelo del Pro eso 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 i on CARIMA toma la forma:

B(z 1) b1z 1 + b2z 2


y(t) = x(t) = 1)
u(t) = u(t) (6.9)
A(z 1 + a1z 1 + a2z 2
la ual ondu e a la e ua ion de diferen ias:

y(t) = a1y(t 1) a2y(t 2) + b1u(t 1) + b2u(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 tambi en umple que (ver
e ua i on (6.1):
y(t) = x(t) + n(t)
y C
donde: = By n = . La representa i on predi tiva de la ultima
u AF e AD
expresion es:
y(t + k=t) = x(t + k=t) + n(t + k=t) (6.12)
Ejemplo 6.1
El modelo lineal de orden 2 del servomotor D.C. sujeto a argas no lineales
des rito en la se i on 3.3 es:

q_ = w
N B n2KE nKa tK
w_ = q + w+ u
M M MR RM
Asumiendo que el ruido de medi ion n(t) en la posi ion del eje del servomotor
(la salida del pro eso) es oloreado:
1
n(t) = e(t)
1z 1
determine su modelo CARIMA.
Solu i on: La fun i on de transferen ia de pulso del pro eso posee la forma:
q(z) b1z + b2 b1z 1 + b2z 2 B(z 1)
= = =
u(z) z2 + a 1z + a 2 1 + a1 z 1 + a2 z 2 A(z 1 )
290 Control Predi tivo

y an
~adiendo el ruido de medi ion obtenemos:

B(z 1) B(z 1) 1
q(z) = 1)
u(z) + n(t) = 1)
u(z) + e(t)
A(z A(z 1z 1

donde e(t) es ruido blan o gaussiano on media nula. La e ua i on de dife-


ren ias del pro eso ruidoso viene a ser:

q(t) = (1 a1)q(t 1) + (a1 a2)q(t 2) + a2q(t 3)+

b1u(t 1) + (b2 b1)u(t 2) b2u(t 3) + e(t) + a1e(t 1) + a2e(t 2) En el


siguiente ejemplo analizaremos la sen
~ al n(t) resultante.

6.4 El Modelo del Predi tor


El predi tor y(t + k=t) de la sen~al de salida y el predi tor n(t + k=t) de
la sen
~al de perturba ion pueden ser modelados empleando representa iones
serie y serie/paralelo omo se detalla a ontinua i on.

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) y(t+k-2/t) MODELO
MODELO x(t+k/t) SERIE / x(t+k/t)
u(t+k-1/t) PARALELO u(t+k-1/t) PARALELO
u(t+k-2/t) u(t+k-2/t)

Figura 6.4: Representa i on de los modelos paralelo y serie/paralelo.

El Modelo Paralelo
El modelo paralelo, llamado algunas ve es modelo independiente, puede ser
usado para pro esos estables y es el que se implementa por defe to. En este
6.4 El Modelo del Predi tor 291

modelo la salida y(t) se realimenta a s misma. Su expresi on es:


B(z 1) 1
y(t) = u(t) + e(t) = x(t) + n(t) (6.13)
A(z 1) 1z 1
la ual se obtiene de la e ua ion (6.6)) on C(z 1 ) = 1, D(z 1 ) = (1 z 1),
1
n(t) = 1 z 11 e(t), e y(t) = A(z B(z )
1 ) u(t). Por onsiguiente, para ualquier t:

x(t) = (1 A(z 1))x(t) + B(z 1)u(t)


= a1x(t 1) ana x(t na)
+b1u(t 1) + + bnb u(t nb) (6.14)
siendo su expresion gen eri a predi tiva:
x(t + k=t) = a1x(t + k 1=t) ana y(t + k na=t)
+b1u(t + k 1=t) + + bnb u(t + k nb=t) (6.15)

El Modelo Serie/Paralelo
El modelo serie/paralelo puede ser empleado para pro esos estables o ines-
C(q 1 )
tables. En este aso, el modelo del disturbio n(t) = D(q 1) e(t) se es oge
diferente al del modelo paralelo. El modelo serie/paralelo se obtiene rees ri-
biendo el modelo paralelo omo sigue:
A(z 1)
A(z 1 )y(t) = B(z 1
)u(t) + e(t) (6.16)
1z1
que es la e ua i on (6.6) uando C(z 1) = A(z 1 ) y D(z 1 ) = 1 z 1. La
salida y(t) toma enton es la forma:
A(z 1)
1 1
y(t) = (1 A(z ))y(t) + B(z )u(t) + 1
e(t) = y(t) + n(t) (6.17)
1z
donde y(t) se obtiene de la rela ion:
y(t) = (1 A(z 1))y(t) + B(z 1)u(t)
y(t) = a1y(t 1) ana y(t n a)
+b1u(t 1) + + bnb u(t nb) (6.18)
Por onsiguiente, la expresi on predi tiva del modelo serie/paralelo es:
y(t + k=t) = a1y(t + k 1=t) ana y(t + k na=t)
+b1u(t + k 1=t) + + bnb u(t + k nb=t) (6.19)
292 Control Predi tivo

La diferen ia del modelo serie/paralelo on respe to al modelo paralelo puede


dedu irse de la gura 6.5.
u y u y
PROCESO PROCESO

+
+
- MODELO -
x MODELO y
SERIE / x
u PARALELO x u PARALELO

Figura 6.5: Implementa i on de los modelos paralelo y serie/paralelo.

6.4.2 Predi ion de n(t + k=t)


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 i on:
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) = 1e(t 1) 2e(t 2) +n(t)+d1n(t 1)+d2n(t 2)+ (6.21)
donde e(t) es un ruido blan o no orrela ionado on media nula. Esto sig-
ni a que la mejor predi ion de e(t) es:
e(t + k=t) = 0; k = 1; : : : ; N2 (6.22)
Por extensi on, 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) + 2e(t + k 2=t) + (6.23)
6.4 El Modelo del Predi tor 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) = d1n(t=t) d2n(t 1=t) k


= 2; n(t + 2=t) = d1n(t + 1=t) d2n(t=t)
.
k = N2; n(t + N2=t) = d1n(t + N2 1=t) d2n(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 i on: Empleando el resultado del ejemplo 6.1, la solu i on a este pro-
blema se detalla en el programa ejem6 2.m. Los resultados se muestran en
las guras 6.6, 6.7 y 6.8. Observar en la u ltima gura que el ruido e(t)
empleado posee media ero y una fun ion de distribu ion gaussiana.
% ejem6_2.m SOLUCION EJEMPLO 6.2
lear all
% PARAMETROS DEL PROCESO NO LINEAL (TABLA 3.3)
JL = 3.5e-7; bL = 1e-5; Ro = 0.01; Lo = 0.776;
Jm = 1.9062e-6; bm = 1.8338e-6; g = 9.81;
E = 31.035e-3; R = 7.38; m = 0.06377;
Ka t = 14.9; = 0.25; Mo = 0.045; % 0, 0.01, 0.02
K = 31.071e-3; n = 19.741; L = 4.64e-2;
B = n^2*bm + bL;
Jeff = n^2*Jm +JL;
M = Jeff + (1/3)*m*Lo^2 + Mo*Lo^2 + (2/5)*Mo*Ro^2;
N = g*Lo*(Mo+m/2);
% MODELO NO LINEAL DEL PROCESO CONTINUO DE SEGUNDO ORDEN
A = [0 1;-N/M -(B + n^2*K*E/R)/M℄;
B = [0;n*K*Ka t/(R*M)℄; C = [1 0℄; D = [0℄;
% MODELO LINEAL DISCRETO DEL PROCESO DE SEGUNDO ORDEN
T = 0.01; % PERIODO DE MUESTREO
[G,H,C,D℄= 2dm(A ,B ,C ,D ,T,'zoh');
[num,den℄=ss2tf(G,H,C,D);
a1 = den(2); a2 = den(3); b1 = num(2); b2 = num(3);
% CONDICIONES INICIALES NULAS
q(1)=0; q(2)=0; q(3)=0; u(1)=0; u(2)=0; u(3)=0;
y(1)=0; y(2)=0; y(3)=0; e(1)=0; e(2)=0; e(3)=0;
% RESPUESTAS DEL PROCESO
294 Control Predi tivo

MM = 1000;
for t=3:MM+2
u(t) = sin(0.006*t); % SINUSOIDE DE ENTRADA
q(t+1) = -a1*q(t) -a2*q(t-1) + b1*u(t) + b2*u(t-1);
e(t+1) = 0.1*randn; % GENERA RUIDO BLANCO GAUSSIANO
% DE MEDIA NULA Y VARIANZA 0.1
y(t+1) = (1-a1)*y(t) + (a1-a2)*y(t-1) + a2*y(t-2) ...
+ b1*u(t) + (b2-b1)*u(t-1) - b2*u(t-2) ...
+ e(t+1) + a1*e(t) + a2*e(t-1);
end
% GRAFICOS
ejex = linspa e(0,MM*T,MM);
figure(1)
subplot(2,1,1)
plot(ejex,q(3:MM+2)); grid
ylabel('Posi ion en rad'); xlabel('Tiempo en segundos')
subplot(2,1,2)
plot(ejex,u(3:MM+2)); grid
ylabel('Entrada (voltios)')
xlabel('Tiempo en segundos')
print -f -deps ejem6_2a
figure(2)
subplot(2,1,1)
plot(ejex,y(3:MM+2)); grid
ylabel('Posi ion ruidosa (rad)')
xlabel('Tiempo en segundos')
subplot(2,1,2)
plot(ejex,u(3:MM+2)); grid
ylabel('Entrada (voltios)')
xlabel('Tiempo en segundos')
print -f -deps ejem6_2b
figure(3)
subplot(2,1,1)
plot(ejex,e(3:MM+2)); grid
ylabel('Ruido gaussiano e(t) (rad)')
xlabel('Tiempo en segundos')
subplot(2,1,2)
hist(e)
ylabel('Distribu ion de e(t)')
xlabel('<------ e(t) --------- >')
print -f -deps ejem6_2
6.4 El Modelo del Predi tor 295

Posición en rad
2

−2

−4
0 1 2 3 4 5 6 7 8 9 10
Tiempo en segundos

1
Entrada (voltios)

0.5

−0.5

−1
0 1 2 3 4 5 6 7 8 9 10
Tiempo en segundos

Figura 6.6: Respuesta no ruidosa del pro eso a una sinusoide.

4
Posición ruidosa (rad)

−2

−4

−6
0 1 2 3 4 5 6 7 8 9 10
Tiempo en segundos

1
Entrada (voltios)

0.5

−0.5

−1
0 1 2 3 4 5 6 7 8 9 10
Tiempo en segundos

Figura 6.7: Respuesta ruidosa del pro eso a una sinusoide.


296 Control Predi tivo

0.4

Ruido gausiano e(t) (rad)


0.2

−0.2

−0.4
0 1 2 3 4 5 6 7 8 9 10
Tiempo en segundos

300
Distribución de e(t)

200

100

0
−0.4 −0.3 −0.2 −0.1 0 0.1 0.2 0.3 0.4
<−−−−−− e(t) −−−−−−>

Figura 6.8: Ruido blan o e(t) on media ero y distribu i on gaussiana.

6.5 El Controlador Predi tivo


6.5.1 Objetivo del Controlador
El objetivo del ontrolador predi tivo es determinar el ve tor de ontrol
u(t + k=t); k = 0; : : : ; N2 1, que minimi e la siguiente fun i on de osto:

J= X N2
[r(t + k=t) y(t + k=t)℄ + 2
Nu 1
X [ u(t + k=t)℄2 (6.24)
k=N1 k=0

donde :
u(t + k=t) = u(t + k=t) u(t + k 1=t) (6.25)
on u(t + k=t) = 0 para k Nu. La traye toria de referen ia est repre-
sentada por la e ua i on:

r(t + k=t) = r(t + k 1=t) + (1 )w(t + k=t) (6.26)

evaluada para k = 1; : : : ; N2, on r(t=t) = y(t).


Los parametros de disen ~o son:
N1: horizonte de predi ion m nimo.
6.5 El Controlador Predi tivo 297

N2: horizonte de predi ion maximo; por defe to podemos onsiderar


N2 = N1 + 1; : : : ; N1 + 10.

Nu: horizonte de ontrol; por defe to onsiderar Nu = 1.

N1; : : : ; N2: horizonte de oin iden ia; por defe to onsiderar N1 (tiem-
po muerto).
: par ametro de pondera ion; por defe to onsiderar ero.

: 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 i on w(t + k=t) = w(t) para k = 1; : : : ; N2.
Es importante observar adem as 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 on-
tribuyendo 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 sub ndi e forz indi a forzada. La respuesta libre y libre(t + k=t)
apare e omo onse uen ia de los fa tores siguientes:
El efe to debido a las sen
~ales de ontrol pasadas u(t 1); u(t 2); : : :
298 Control Predi tivo

N u =4
u

y(t+k/t) u(t+k/t)
o o oo
o o o o
o o o o o o o o o o o o oo o o o
o o o o o
o o
r=w y
N 1=2 N 2 =8
PASADO Tiempo actual t FUTURO

Figura 6.9: Objetivo del ontrol predi tivo basado en modelos.

El efe to debido a un es enario de ontrol futuro. Por defe to se tiene


u(t=t) = u(t 1); u(t + 1=t) = u(t 1); u(t + 2=t) = u(t 1); : : :; esto
es, u(t=t) = u(t + 1=t) = : : : = u(t + N u 1=t) = 0

El efe to debido a las perturba iones futuras del ruido n(t + k=t).

La omponente forzada yforz(t + k=t) apare e debido al resultado de


dos efe tos. El primero, ausado por la a i on del ontrol futuro; es de-
ir, ausado por las sen
~ales u(t=t), u(t + 1=t), : : : , u(t + Nu 1=t).
El segundo efe to se debe a las respuestas del pro eso a una se uen ia de
entradas es alon, omo sigue:

Un es al on on amplitud u(t=t) apli ado al pro eso en el tiempo


t, resulta en una ontribu i on g k u(t=t) en la salida del pro eso en
el tiempo t + k. Es de ir, k tiempos de muestreo m as tarde ( gura
6.10(a)).

Un es al on on amplitud u(t + 1=t) apli ado al pro eso en el tiempo


t + 1, resulta en una ontribu i on g k u(t + 1=t) para la salida del
pro eso en el tiempo t + k 1. Es de ir, k 1 tiempos de muestreo
m as tarde ( gura 6.10(b)).

et .
6.5 El Controlador Predi tivo 299

u(t/t) Entrada escalo’n

g u(t/t)
k

Respuesta
al escalo’n

k Muestras Tiempo
t t+k
(a)
Entrada escalo’n
u(t+1/t)

g u(t+1/t)
k

Respuesta
al escalo’n

(k-1) Muestras Tiempo

t t+k
(b)

Figura 6.10: El efe to de las entradas tipo es alon en la salida forzada.

Por onsiguiente, el efe to a umulativo de todos los es alones es:

yforz(t+k=t) = gk u(t=t)+gk 1 u(t+1=t)+ +gk Nu+1 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 al on unitario en la entrada.
Para un sistema lineal, la respuesta al es al on unitario no depende del
punto de opera i on. Este punto es jo y puede ser al ulado fuera de l nea
(\o -line") usando el modelo del sistema.
Para un sistema no lineal, omo en el aso de una red neuronal, la
respuesta al es al on unitario es diferente para ada punto de opera i on.
Esta respuesta tiene que ser al ulada en ada tiempo de muestreo (\on-
line"), 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.
300 Control Predi tivo

De la e ua ion (6.29) se puede obtener la siguiente expresi on para la


omponente forzada:
Yforz = GU (6.30)
donde:
Yforz =
2
y forz(t + N1=t) yforz(t + N1 + 1=t) yforz(t + N2=t)
T

G= gN1 gN1 1 ::: ::: 3


64 gN1 +1
:::
gN1
:::
:::
:::
:::
::: 57
gN 2 gN2 1 : : : gN2 Nu+1
T
U= u(t=t) u(t + 1=t) u(t + Nu 1=t)
y empleando la e ua i on (6.28), podemos es ribir:
Y = Y + GU (6.31)
donde:
Y = [y(t + N1=t) : : : y(t + N2=t)℄T ; U = [ u(t=t) : : : u(t + Nu 1=t)℄T
Y = [ylibre(t+N1=t) : : : ylibre(t+N2=t)℄T ; R = [r(t+N1=t) : : : r(t+N2=t)℄ T
Ejemplo 6.3
Determinar la respuesta libre y los oe ientes gk de la respuesta al es alon
para el pro eso servomotor D.C. des rito en el ejemplo 6.1.
Solu ion: La e ua ion de diferen ias del pro eso es:
y(k) = a1y(k 1) a2y(k 2) + b1u(k 1) + b2u(k 2)
Cuando la entrada es u(k) = 1 para todo k 0, enton es y(k) = g(k) para
todo k 0. Luego, los oe ientes g(k) se determinan de:
g(k) = a1g(k 1) a2g(k 2) + b1u(k 1) + b2u(k 2)
As podemos obtener que g(0) = 0, g(1) = b1, g(2) = a1b1 + b1 + b2, y:
g(k) = a1g(k 1) a2g(k 2) + b1 + b2; k 3
La ondi i on para respuesta libre es que:
u(t=t) = u(t + 1=t) = = u(t + N2=t) = u(t 1)
Apli ando tal ondi i on en la e ua i on de diferen ias del pro eso, determi-
namos la respuesta libre ylibre omo sigue:
ylibre(t + 1) = a1ylibre(t) a2ylibre(t 1) + (b1 + b2)u(t 1)
6.5 El Controlador Predi tivo 301

6.5.3 La Ley de Control


Con la nota i on anterior, la fun i on de osto (e ua i on (6.24)) resulta:

(R Y)T (R Y)+ UT U = [(R Y ) GU℄T [(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:
1
U = (GT G + I) GT (R Y) (6.33)

Es importante indi ar que:


Solamente el primer elemento u(t=t) de U es ne esario para om-
putar 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 pr oximo
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 N u = 1, se obtiene una ley de ontrol
es alar ( on muy buenos resultados en mu hos asos pra ti os) de la
forma:

u(t) =
P N2
k=N 1
P
gk[r(t + k=t) y
N2
libre (t + k=t)℄
(6.34)
k=N1 gk2 +

Otra aproxima ion para la estru tura ion del es enario de ontrol on-
siste en el empleo de fun iones base de la forma:

u(t + k=t) = X iB i (6.35)


i

La optimiza ion de la sen


~ al de ontrol u(t + k=t) es ahora on respe to
a los parametros i.
El ontrol predi tivo muestra diferentes propiedades dependiendo de la
sele i on de N1, N2 y Nu. Por ejemplo:
Si N1 = n, N2 = 2n 1, Nu = n y = 0, la salida enton es al anza la
referen ia despues de n muestras y se mantiene en este estado, propor-
ionando una vigorosa a ion de ontrol. Este aso es muy apropiada
para apli a iones que requieran alto rendimiento, omo en la roboti a.
302 Control Predi tivo

Si es ogemos N1 = Nu = 1, N2 = 1 y = 0, obtendremos una


respuesta transitoria de la variable ontrolada, ara terizada por un
tiempo de subida r apido y un tiempo de estabiliza ion lento. Este
he ho es relevante en el ontrol de pro esos industriales.

La Ley de Control on Restri iones


El problema de ontrol presentado en la subse i on anterior fue formulado
bajo ondi iones de ontrol sin restri iones; es de ir, onsiderando que todas las
sen~ales poseen rango ilimitado. Sin embargo, esto no es realista. En la pra
ti a, todos los pro esos estan sujetos a restri iones. Por ejemplo, en el
aso de un servosistema no lineal, si la sen ~al de ontrol u(t) es demasiado
grande, enton es el ampli ador del voltaje de armadura se puede saturar
produ i endose su deterioro.
En presen ia de restri iones no es posible la solu ion anal ti a del pro-
blema de minimiza ion, debiendo re urrirse a dos posibles solu iones. La
primera solu ion es tratar a todas las variables omo si no tuvieran restri -
iones. Posteriormente, onforme a rangos previamente espe i ados (las
restri iones), pro eder mediante software, on el orte o la limita ion de
las magnitudes de las variables on restri iones. La otra solu ion requiere
el empleo de t e ni as num eri as, tales omo la programa i on uadrati a.
Nosotros no trataremos esta alternativa.

Ejemplo 6.4
Determinar la matriz dinami a de ontrol para el pro eso del ejemplo 6.1
empleando los datos siguientes: N 1 = 7, N2 = 12, Nu = 6.
% ejem6_4.m SOLUCION DEL EJEMPLO 6.4
lear all
% PARAMETROS DEL PROCESO NO LINEAL (TABLA 3.3)
Lo = 0.776;
JL = 3.5e-7; bL = 1e-5; Ro = 0.01;
Jm = 1.9062e-6; bm = 1.8338e-6; g = 9.81;
E = 31.035e-3; RR = 7.38; m = 0.06377;
Ka t = 14.9; = 0.25; Mo = 0.045; % tambi'en 0,.01,.02 K =
31.071e-3; n = 19.741; L = 4.64e-3;
B = n^2*bm + bL;
Jeff = n^2*Jm +JL;
M = Jeff + (1/3)*m*Lo^2 + Mo*Lo^2 + (2/5)*Mo*Ro^2;
N = g*Lo*(Mo+m/2);
% MODELO NO LINEAL DEL PROCESO CONTINUO DE TERCER ORDEN
6.6 Pro edimiento de Disen
~o 303

% A = [0 1 0;-N/M -B/M n*K/M;0 -n*E/L -RR/L℄;


% B = [0;0;Ka t/L℄;
% C = [1 0 0℄; D = [0℄;
% MODELO LINEAL CONTINUO DE SEGUNDO ORDEN DEL PROCESO
A = [0 1;-N/M -(B + n^2*K*E/RR)/M℄;
B = [0;n*K*Ka t/(RR*M)℄;
C = [1 0℄; D = [0℄;
% MODELO LINEAL DISCRETO DEL PROCESO DE SEGUNDO ORDEN
T = 0.01; % periodo de muestreo
[G,H,C,D℄= 2dm(A ,B ,C ,D ,T,'zoh');
[num,den℄=ss2tf(G,H,C,D);
a1 = den(2); a2 = den(3);
b1 = num(2); b2 = num(3);
N1 = 6; N2 =12; Nu =7; % HORIZONTE DE CONTROL
% RESPUESTA AL ESCALON
g(1) = b1; g(2) = -a1*b1 + b1 + b2;
for k=3:12
g(k) = -a1*g(k-1) -a2*g(k-2) + b1 + b2;
end
% LUEGO, LA MATRIZ G TIENE LA FORMA:
G = [g(N1) g(N1-1) g(N1-2) g(N1-3) g(N1-4) g(N1-5) 0
g(N1+1) g(N1) g(N1-1) g(N1-2) g(N1-3) g(N1-4) g(N1-5)
g(N1+2) g(N1+1) g(N1) g(N1-1) g(N1-2) g(N1-3) g(N1-4)
g(N1+3) g(N1+2) g(N1+1) g(N1) g(N1-1) g(N1-2) g(N1-3)
g(N1+4) g(N1+3) g(N1+2) g(N1+1) g(N1) g(N1-1) g(N1-2)
g(N1+5) g(N1+4) g(N1+3) g(N1+2) g(N1+1) g(N1) g(N1-1)
g(N2) g(N2-1) g(N2-2) g(N2-3) g(N2-4) g(N2-5) g(N2-Nu+1)℄;

6.6 Pro edimiento de Disen


~o
El pro edimiento para disen
~ar un sistema de ontrol predi tivo basado en
modelos, empleando la matriz dinami a de ontrol es:
1) Formular el problema (de nir las espe i a iones de disen
~ o).
2) Determinar el modelo CARIMA del pro eso (subse i on 6.3).
3) Cal ular la respuesta libre del pro eso (subse i on 6.5.2).
4) Cal ular la respuesta del pro eso al es al on (subse i on 6.5.2).
5) Determinar la ley de ontrol (subse ion 6.5.3).
6) Simular el sistema de ontrol predi tivo, in luyendo las restri iones.
304 Control Predi tivo

7) Implementar el hardware.
8) Implementar el software de ontrol.
9) Realizar pruebas de fun ionamiento (resultados experimentales).

6.7 Control de Posi ion de un Servomotor


6.7.1 Formula i on del Problema
El servomotor D.C. on arga no lineal (dis utido ampliamente en la se i on
3.3) es un pro eso de una entrada y una salida que puede ser ontrolado por
el voltaje de armadura. La arga no lineal es una varilla met ali a a oplada al
eje del servomotor, a manera de un brazo rob oti o de un grado de libertad.
En el extremo de la varilla se pueden a oplar argas adi ionales. El objetivo
de ontrol es disen~ar e implementar un sistema de ontrol predi tivo basado
en modelos, empleando una ley de ontrol es alar din ami a, de modo tal que
la varilla se posi ione en una referen ia predeterminada. El sobreimpulso
de la respuesta debe ser m nimo, no obstante la presen ia de la arga no
lineal y de las no linealidades del pro eso omo son las fri iones estati a y
de Coulomb, y la satura ion en el ampli ador del servomotor.

Modelo del Pro eso


La gura 3.9 presenta la estru tura del pro eso no lineal a ontrolar. La tabla
3.2 des ribe las variables y los valores de sus parametros. Asumiendo que la
sen
~al de ontrol u est a 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 i on 3.3.5):
x_ = A x + B u; y=C x
0 1 0
A = N B Kn2E ; B = KnK a t ; C =10
M ( M+ MR ) MR
M=J 2 2 2 1 2 m
eff + M Lo + M Ro + mLo); N = gLo(M + )
2
5 3 2
2
Jeff = n Jm + JL; B = n b m + bL
La fun i on de transferen ia G p(s) del pro eso puede determinarse de:
y(s)
G p(s) = = C [sI A ℄ 1B
u(s)
6.7 Control de Posi i on de un Servomotor 305

mientras que la fun ion de transferen ia de pulso G p(z) se determina de:

y(z) Gp(s)
Gp(z) = = (1 z 1)Z
u(z) s

donde Z[:℄ es la opera ion transformada Z. Di ha fun ion de transferen ia


depende del tiempo de muestreo T y posee la estru tura siguiente:

y(z) b1z + b2 b1z 1 + b2z 2 B(z 1)


Gp(z) = = 2 = =
u(z) z + a z 1+ a 2 1 + a1 z 1+ a2 z 2 A(z 1 )

que onstituye el modelo CARIMA del pro eso, on


1 1 2
A(z ) = 1 + a 1z + a 2z ; B(z 1) = b 1z 1 + b 2z 2

Su orrespondiente e ua ion de diferen ias es:

y(k) = a1y(k 1) a2y(k 2) + b1u(k 1) + b2u(k 2)

Con Mo = 0 (varilla sin arga adi ional), los par ametros poseen los valores
siguientes: a1=-1.9614 , a2=0.9614 , b1=0.0044 y b2=0.0043 .

6.7.2 Respuesta Libre del Pro eso


La expresion para determinar la respuesta libre del pro eso en uestion se de-
termino 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 Control Predi tivo

6.7.3 Respuesta del Pro eso al Es alon


La expresion para determinar los oe ientes de la respuesta al es al on del
pro eso en uestion, se determin en el ejemplo 6.3. En odigo MATLAB el
al ulo se efe tua omo sigue:
N1 = 6; N2 = 12; % HORIZONTE DE CONTROL
% RESPUESTA AL ESCALON
g(1) = b1; g(2) = -a1*b1 + b1 + b2;
for k=3:N2
g(k) = -a1*g(k-1) -a2*g(k-2) + b1 + b2;
end

6.7.4 La Ley de Control


La ley de ontrol a emplear es del tipo es alar (N u = 1) on N1 = 1 y
N2 = 12. La forma de la ley de ontrol es:

u=
P N2
k=N 1
P
g(k)[r(t + k=t) y libre (t + k=t)℄
N2
k=N1 g (k) +
2

6.7.5 Simula ion del Sistema de Control Predi tivo


Primera Simula ion
El programa dispred1.m simula el sistema de ontrol predi tivo empleando la
ley de ontrol des rita en la subse i on 6.7.4 y un modelo lineal de segundo
orden del pro eso. La arga no lineal a posi ionar es maxima. Se esta
empleando restri ion en la fuerza de ontrol para evitar la satura ion del
ampli ador de poten ia. El resultado de esta simula i on se muestra en la
gura 6.11.
% dispred1.m PRIMERA SIMULACION DEL SISTEMA DE CONTROL PREDICTIVO
lear all
% PARAMETROS DEL PROCESO NO LINEAL (TABLA 3.3)
Lo = 0.776;
JL = 3.5e-7; bL = 1e-5; Ro = 0.01;
Jm = 1.9062e-6; bm = 1.8338e-6; g = 9.81;
E = 31.035e-3; RR = 7.38; m = 0.06377;
Ka t = 14.9; = 0.25; Mo = 0.045; % tambi'en 0,.01,.020 K =
31.071e-3; n = 19.741; L = 4.64e-3;
B = n^2*bm + bL;
Jeff = n^2*Jm +JL;
M = Jeff + (1/3)*m*Lo^2 + Mo*Lo^2 + (2/5)*Mo*Ro^2;
6.7 Control de Posi i on de un Servomotor 307

N = g*Lo*(Mo+m/2);
% MODELO LINEAL CONTINUO DEL PROCESO DE SEGUNDO ORDEN
A = [0 1;-N/M -(B + n^2*K*E/RR)/M℄;
B = [0;n*K*Ka t/(RR*M)℄;
C = [1 0℄; D = [0℄;
% MODELO LINEAL DISCRETO DEL PROCESO DE SEGUNDO ORDEN
T = 0.01; % PERIODO DE MUESTREO
[G,H,C,D℄= 2dm(A ,B ,C ,D ,T,'zoh');
[num,den℄=ss2tf(G,H,C,D);
a1 = den(2); a2 = den(3);
b1 = num(2); b2 = num(3);
% HORIZONTES
N1 = 1; N2 =12; Nu =1; % LEY DE CONTROL ESCALAR
% RESPUESTA AL ESCALON
g(1) = b1; g(2) = -a1*b1 + b1 + b2;
for k=3:N2
g(k) = -a1*g(k-1) -a2*g(k-2) + b1 + b2;
end
% CONDICIONES INICIALES
yf(1)=0; yf(2)=0; yf(3)=0; r(1)=0; r(2)=0; r(3) =0;
u(1) =0; u(2) =0; u(3) =0; w(1)=0; w(2)=0; w(3) =0;
q(1) =0; q(2) =0; q(3) =0;
alf = 0.01; lambda = 0.; fre = 0.0063; GW = 1;
MM = 2000;
% LAZO DE CONTROL
for t = 2:MM+2
for k = 1:N2
W(t+k) = GW*sign(sin(fre *(t)));
r(t+k) = alf*r(t+k-1) + (1-alf)*W(t+k);
yf(t+k) = -a1*yf(t+k-1)-a2*yf(t+k-2)+(b1 + b2)*u(t-1);
end % yf: RESPUESTA LIBRE
% LEY DE CONTROL
du(t) = (g(1)*(r(t+1)-yf(t+1))+g(2)*(r(t+2)-yf(t+2)) + ...
g(3)*(r(t+3)-yf(t+3))+g(4)*(r(t+4)-yf(t+4)) + ...
g(5)*(r(t+5)-yf(t+5))+g(6)*(r(t+6)-yf(t+6)) + ...
g(7)*(r(t+7)-yf(t+7))+g(8)*(r(t+8)-yf(t+8)) + ...
g(9)*(r(t+9)-yf(t+9))+ g(10)*(r(t+10)-yf(t+10)) + ...
g(11)*(r(t+11)-yf(t+11))+ g(12)*(r(t+12)-yf(t+12)))/...
(g(1)^2 + g(2)^2 + g(3)^2+ g(4)^2 + g(5)^2 + ...
g(6)^2 + g(7)^2 + g(8)^2+ g(9)^2 + g(10)^2 + ...
g(11)^2 + g(12)^2 + lambda);
u(t) = u(t-1) + du(t); % LEY DE CONTROL ACTUAL
% LIMITANDO LA FUERZA DE CONTROL
308 Control Predi tivo

fu = 1.4;
if(u(t) > 0 & u(t) > fu)
u(t) = fu;
elseif(u(t) < 0 & u(t) < -fu)
u(t) = -fu;
end
% PROCESO LINEAL
q(t+1) = -a1*q(t) -a2*q(t-1) + b1*u(t) + b2*u(t-1);
end
% GRAFICOS
ejex = (3:MM); ejex = ejex*T;
subplot(2,1,1)
plot(ejex,W(3:MM),ejex,q(3:MM)); grid
ylabel('Posi ion q(t) (rad)')
xlabel('Tiempo en segundos')
subplot(2,1,2)
plot(ejex,u(3:MM)); grid
ylabel('Control u(t) (voltios)')
xlabel('Tiempo en segundos')
print -f -deps dispred1

2
Posición q(t) (rad)

−1

−2
0 2 4 6 8 10 12 14 16 18 20
Tiempo en segundos

2
Control u(t) (voltios)

−1

−2
0 2 4 6 8 10 12 14 16 18 20
Tiempo en segundos

Figura 6.11: Primera simula ion del sistema de ontrol predi tivo. La arga
no lineal es m axima.
6.7 Control de Posi i on de un Servomotor 309

Segunda Simula ion


El programa dispred3.m tambi en simula el sistema de ontrol predi tivo
empleando la ley de ontrol des rita en la subse ion 6.7.4 y un modelo
no lineal de segundo orden del pro eso. La arga no lineal a posi ionar es
m axima. En esta simula ion se emplea restri i on en la fuerza de ontrol
disen
~ada para no saturar el ampli ador de poten ia. Tambien se emplea
ompensa ion para minimizar el efe to de la fuerza de fri i on de Coulomb
en la sen
~al de ontrol y restri ion del tipo y(t) = r(t) (la salida iguala a
la referen ia). El resultado de esta simula ion se muestra en la gura 6.12.
Notar que la fuerza de ontrol generada no sobrepasa el rango de 1:4 volts,
por lo que su implementa ion no va a saturar al ampli ador de poten ia a
emplear. Esta es la on gura i on que se va a implementar.

% dispred3.m
lear all
% PARAMETROS DEL PROCESO NO LINEAL (TABLA 3.3)
Lo = 0.776;
JL = 3.5e-7; bL = 1e-5; Ro = 0.01;
Jm = 1.9062e-6; bm = 1.8338e-6; g = 9.81;
E = 31.035e-3; RR = 7.38; m = 0.06377;
Ka t = 14.9; = 0.25; Mo = 0.045; % tambi'en 0,.01,.020 K =
31.071e-3; n = 19.741; L = 4.64e-3;
B = n^2*bm + bL;
Jeff = n^2*Jm +JL;
M = Jeff + (1/3)*m*Lo^2 + Mo*Lo^2 + (2/5)*Mo*Ro^2;
N = g*Lo*(Mo+m/2);
% MODELO NO LINEAL CONTINUO DEL PROCESO DE SEGUNDO ORDEN
A = [0 1;-N/M -(B + n^2*K*E/RR)/M℄;
B = [0;n*K*Ka t/(RR*M)℄;
C = [1 0℄; D = [0℄;
% MODELO LINEAL DISCRETO DEL PROCESO DE SEGUNDO ORDEN
T = 0.01; % PERIODO DE MUESTREO
[G,H,C,D℄= 2dm(A ,B ,C ,D ,T,'zoh');
[num,den℄=ss2tf(G,H,C,D);
a1 = den(2); a2 = den(3);
b1 = num(2); b2 = num(3);
% HORIZONTES
N1 = 1; N2 =12; Nu =1; % LEY DE CONTROL ESCALAR
% RESPUESTA AL ESCALON
g(1) = b1; g(2) = -a1*b1 + b1 + b2;
for k=3:N2
g(k) = -a1*g(k-1) -a2*g(k-2) + b1 + b2;
end
310 Control Predi tivo

% CONDICIONES INICIALES
yf(1)=0; yf(2)=0; yf(3)=0; r(1)=0; r(2)=0; r(3) =0;
u(1) =0; u(2) =0; u(3) =0; w(1)=0; w(2)=0; w(3) =0;
q(1) =0; q(2) =0; q(3) =0;
alf = 0.01; lambda = 0.; fre = 0.0063; GW = 1;
MM = 2000;
% BUCLE DE CONTROL *********************************
for t = 2:MM+2
% REFERENCIAS, SALIDA LIBRE Y RESPUESTAS AL ESCALON
for k = 1:N2
W(t+k) = GW*sign(sin(fre *(t)));
r(t+k) = alf*r(t+k-1) + (1-alf)*W(t+k);
yf(t+k) =-a1*yf(t+k-1)-a2*yf(t+k-2)+(b1 + b2)*u(t-1);
end % yf: RESPUESTA LIBRE
% RESTRICCION A LA SALIDA
q(t) = r(t);
% LEY DE CONTROL
du(t) = (g(1)*(r(t+1)-yf(t+1))+g(2)*(r(t+2)-yf(t+2)) + ...
g(3)*(r(t+3)-yf(t+3))+g(4)*(r(t+4)-yf(t+4)) + ...
g(5)*(r(t+5)-yf(t+5))+g(6)*(r(t+6)-yf(t+6)) + ...
g(7)*(r(t+7)-yf(t+7))+g(8)*(r(t+8)-yf(t+8)) + ...
g(9)*(r(t+9)-yf(t+9))+g(10)*(r(t+10)-yf(t+10)) + ...
g(11)*(r(t+11)-yf(t+11))+g(12)*(r(t+12)-yf(t+12)))/...
(g(1)^2 + g(2)^2 + g(3)^2+g(4)^2 + g(5)^2 + ...
g(6)^2 + g(7)^2 + g(8)^2+g(9)^2 + g(10)^2 + ...
g(11)^2 + g(12)^2 + lambda);
u(t) = u(t-1) + du(t); % ley de ontrol a tual
% COMPENSANDO LA FRICCION DE COULOMB
TN = *sign(w(t)); % TORQUE DE FRICCION DE COULOMB
if(w(t) > 0)
u(t) = u(t) + (RR/(n*K*Ka t))*TN;
elseif(w(t) < 0)
u(t) = u(t) - (RR/(n*K*Ka t))*TN;
end
% LIMITANDO LA FUERZA DE CONTROL
fu = 1.4;
if(u(t) > 0 & u(t) > fu)
u(t) = fu;
elseif(u(t) < 0 & u(t) < -fu)
u(t) = -fu;
end
% MODELO NO LINEAL DISCRETIZADO DEL PROCESO DE SEGUNDO ORDEN
q(t+1) = q(t) + T*w(t);
6.7 Control de Posi i on de un Servomotor 311

w(t+1) = w(t) + T*( - (N/M)*sin(q(t)) ...


- (B/M + n^2*K*E/(M*RR))*w(t) ...
- (1/M)*TN + (n*K*Ka t/(M*RR))*u(t) );
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 dispred3

1
Posición q(t) (rad)

0.5

−0.5

−1
0 2 4 6 8 10 12 14 16 18 20
Tiempo en segundos

2
Control u(t) (voltios)

−1

−2
0 2 4 6 8 10 12 14 16 18 20
Tiempo en segundos

Figura 6.12: Segunda simula ion del sistema de ontrol predi tivo. La arga
no lineal es maxima.

6.7.6 Implementa ion del Hardware


El hardware empleado en la implementa ion en tiempo real del sistema de
ontrol predi tivo es similar al empleado para la implementa ion en tiempo
312 Control Predi tivo

real de los sistemas de ontrol adaptivo, robusto y no lineal. Di ho hardware


se des ribe en detalle en la subse ion 5.6.8.

6.7.7 El Software de Control


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 progra-
mas 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 i on
de un proye to denominado PREDI4.PRJ, en el ual intervienen los ar hivos
men ionados en el p arrafo anterior.

Diagrama de Flujo del Software de Control


El diagrama de ujo del software de ontrol se muestra en la gura 6.13.
Notar que tal diagrama omprende los pasos siguientes, para:

1. Ini ializar la tarjeta de adquisi i on de datos Lab P C+ y las variables


utilizadas en el programa.
2. Dete tar el an o de subida del pulso de reloj ( lo k) y leer el primer
dato de la posi i on (posi i on ini ial) para ini iar el algoritmo de on-
trol.
3. Comprobar que la variable k sea menor que el nu mero de puntos n. La
variable n junto on la fre uen ia de muestreo determinan el tiempo
de dura ion del experimento.
4. Dete tar el an o de subida del pulso de reloj para ini iar un per odo
de adquisi ion de datos y de ontrol. Leer la posi i on y y apli ar las
restri iones; luego estimar la velo idad a partir de la posi ion.
5. Cal ular la sen~ al de ontrol u, ompensar las fri iones est ati a y de
Coulomb (sen ~al v), apli ar restri iones a la sen
~al de ontrol, y luego
enviar la sen
~ al u = u + v+o set por el DAC0 de la tarjeta Lab-PC+
al generador PWM. El valor del o set es 2.3 volt.
6. A tualizar las variables y repetir el lazo de ontrol hasta que k = n.
6.7 Control de Posi i on de un Servomotor 313

INICIO

INICIALIZACION DE VARIABLES
INICIALIZACION DE LA TARJETA LabPC+

DETECTAR FLANCO
DE SUBIDA

LEER POSICION INICIAL P0

NO
k MENOR QUE n FIN

SI

DETECTAR FLANCO
DE SUBIDA NO
SI

LEER POSICION Pk
CALCULAR POSICION Y VELOCIDAD
APLICAR RESTRICCIONES EN Pk

GENERAR SEN~AL DE CONTROL


GENERAR SALIDA COMPENSADA
~AL DE CONTROL
RESTRINGIR LA SEN
~
ENVIAR LA SENAL COMPENSADA
ACTUALIZAR VARIABLES

Figura 6.13: Diagrama de ujo del algoritmo de ontrol.


314 Control Predi tivo

El Programa Prin ipal


El programa prin ipal (programa PREDI4.CPP) realiza lo siguiente:

1. De lara i on de los ar hivos de abe era: r1llib.h (librer a de fun iones),


stdio.h (E/S est andar), math.h (manejo de fun iones matemati as),
asserth.h (de lara ion de ma ros de depura ion), allo .h (asigna ion
din ami a de memoria) y onio.h (fun iones de onsola y puertos E/S)

2. De lara i on de las onstantes globales.

3. De ni i on de las fun iones propias del programa: Ini ializa Sistema,


M ide V ariables y Apli a Control

4. De lara i on de las variables globales.

5. De ni ion de la fun ion prin ipal main.

Las Fun iones Propias del Software de Control


A ontinua i on se des riben las fun iones propias del software de ontrol.

Ini ializa Sistema: permite la ini ializa i on de los par ametros y va-
riables globales. Luego, ini ializa la tarjeta de adquisi i on de datos
Lab-PC+ por medio de la fun ion Conf igurarHardware. Enseguida
env a la tension de o set al puerto de salida analogi a por medio de la
fun i on EnviarV oltage (si ), para asegurar la posi i on ini ial de re-
poso del motor (posi i on verti al) y nalmente, lee la posi i on ini ial
p0 del motor.

M ide V ariables: espe i a la sen ~al de referen ia onsiderada. Luego


mide la posi i on a tual del motor (posi i on 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 est ati a y de Coulomb y apli-
a restri iones a la sen
~al de entrada u. Luego, env a un voltaje equi-
valente a la suma de la sen ~al de ontrol u ( on restri ion), m as la
sen
~al de ompensa ion v, mas la sen ~al del o set (2.3 volt).

La fun i on prin ipal main posee una estru tura ade uada para:
6.7 Control de Posi i on de un Servomotor 315

La de lara i on y de ni ion de variables lo ales.

El llamado a la fun ion Ini ializa Sistema.

El llamado a la ma ro de depura ion.

La asigna ion de memoria din ami a que permita alma enar los datos
para las variables: u, w, y y r en el pro eso de eje u ion del proye to.

Eje utar el lazo de ontrol del programa desde k = 0 hasta k = n,


donde n es un entero que indi a el m aximo nu mero de muestras usado
en la eje u i on del proye to. Dentro del lazo de ontrol se de ne la
eje u i on de la fun i on M ide V ariables en ada an o de subida del
pulso de reloj. Luego se genera la sen ~al de ontrol u y se env a a la
salida del DAC0 la tensi on ordenada por la fun ion Apli a Control.
Los valores para y, w, u y r se guardan en memoria. Posteriormente
se in rementan k y t, se visualizan en pantalla los valores instantaneos
de t, y, w, u y e, y se a tualiza el pulso de reloj siempre que k n.

Al nalizar el tiempo de eje u ion, enviar un voltaje de o set ne esario


para detener el motor en su posi i on de reposo.

La obten ion de gra os basados en datos alma enados durante el


tiempo de eje u ion, abriendo el ar hivo de salida PREDI4.OUT.

Los Programas Fuente


La traye toria deseada w onsiderada en este programa, onsiste en in o
niveles de 20 segundos de dura ion por nivel. Esos niveles, en orden de
eje u i on, son: 30o ( =6), 45o ( =4), 60o ( =3), 37:5o (5 =24) y 30o ( =6).
/* PREDI4.CPP *********** programa prin ipal *********/
#in lude "r1llib.h"
#in lude <stdio.h>
#in lude <math.h>
#in lude<assert.h>
#in lude <allo .h>
#in lude < onio.h>
onst float ESCALA = 2.*M_PI/(512.*19.7);
onst float niv1 = 1.*M_PI/6.;
onst float niv2 = 5.*M_PI/24.;
onst float niv3 = 1.*M_PI/4.;
onst float niv4 = 1.*M_PI/3.;
316 Control Predi tivo

/* De lara ion de las fun iones propias del programa */


void Ini ializa_Sistema();
void Mide_Variables(float *yk, float *w, float *r, float *vel,
float t);
float Apli a_Control(float u, float ykp);

/* De lara ion de las variables globales */


float a1, a2, b1, b2, g0, landa, alfa, N;
float y, yant, r, w, rant, es;
float T, t, tsimul;
float Fs;
int p0, pk;
float V FC, V FE, Wth, Ofst;
float eant, eantant, e;
float uant, uantant;

/********************** FUNCIONES ***************/


float Apli a_Control(float u, float ykp)
{
float v;
if(fabs(ykp)<=Wth)
{
if(u<0.) v = -V FE;
if(u>0.) v = V FE;
}
else
{
if(u<0.) v = -V FC;
if(u>0.) v = V FC;
}
if(u + v < -1.5) u = -1.5;
else if(u + v > 1.4) u = 1.4;
EnviarVoltage(u+v+Ofst);
return u;
}

void Ini ializa_Sistema()


{
/* Con Varilla*/
a1 = -1.9614; a2 = .9631;
b1 = .0044; b2 = .0043;
/* Sin Varilla */
6.7 Control de Posi i on de un Servomotor 317

//a1 = -1.6246; a2 = .6246;


//b1 = .0479; b2 = .0410;
/* ATENCION: LOS VALORES DE a1, a2, b1, b2 DEPENDEN DE LA Fs */
V FE = .2; V FC = .15;
Wth = .1; Ofst = 2.3;
Fs = 100.; T = 1./Fs;
tsimul= 100.;
/* PARAMETROS DEL SISTEMA DE CONTROL PREDICTIVO*/
q0 = 114.9425;
landa = 0.942; alfa = 0.01;
/* INICIALIZACION DE LAS VARIABLES */
yant = 0.; y = 0.;
eant = 0.; eantant = 0.;
rant = 0.; e = 0.;
uant = 0.; uantant = 0.;
ConfigurarHardware(0x272, 0x270, 0x271, 0x264, Fs);
EnviarVoltage(Ofst);
p0 = LeerPosi ion();
}
void Mide_Variables
(float *y, float *w, float *r, float *vel, float t)
{
/* Definiendo el setpoint: w= w(t)*/
if((0. <= t && t < 20.) || (80. <= t && t <= 100.)) *w = niv1;
else if(20. <= t && t < 40.) *w = niv3;
else if(40. <= t && t < 60.) *w = niv4;
else if(60. <= t && t < 80.)
*w=niv2;
/* definiendo la referen ia: r=r(t) */
*r = alfa*rant + (1-alfa)*(*w);
/* Ahora leo la posi i\'on */
pk = LeerPosi ion();
*y = yant + ((float)(abs(pk-p0) > 8000 ? 0:pk-p0))*ESCALA;
p0 = pk;
/* A tualizamos los estados */
yant =* y; rant =* r; eantant = eant; eant = e;
/* Restri iones en la salida */
if(*y < 0.0) *y = 0.0;
else if(*y > 1.0*(*r)) *y = 1.0*(*r);
/* Y el error */
e = *r - *y;
/* El error de seguimiento */
es = *w - *y;
318 Control Predi tivo

/* Y la velo idad angular */


*vel = (5.*(*y - yant) + *vel)/(1. + 5.*T);
}
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);
6.7 Control de Posi i on de un Servomotor 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 Control Predi tivo

/* 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);
6.7 Control de Posi i on de un Servomotor 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);
}

6.7.8 Resultados Experimentales


En esta subse ion se presentan los resultados experimentales del sistema
de ontrol para posi ionar el angulo de salida del servomotor D.C., sujeto
a argas no lineales, empleando restri iones tanto en la fuerza de ontrol
omo en la salida. Para los asos presentados, la traye toria deseada es
una urva dis ontinua es alonada. Las respuestas ontroladas (en l neas de
trazo) se muestran en las guras 6.14, 6.15, 6.16 y 6.17
De a uerdo a la se ion 3.3, la iner ia total de la arga no lineal es:
1 2 2 2 2 2 2
JT = JL + mLo + MoLo + MoRo = J + MoRo
3 5 5
donde J es la iner ia total originada por la varilla (sin arga adi ional). Los
otros parametros se detallan en la tabla 3.2. Podemos notar que variando
la arga adi ional (la esfera de radio Ro y masa Mo), variamos tambien la
arga total. Esto es lo que haremos en las experien ias. Para todos los asos,
se ha onsiderado un fa tor de ltraje = 0:01.
La gura 6.14 muestra el aso sin arga adi ional; es de ir, on una arga
iner ial total JT = J. La gura 6.15 orresponde a la respuesta ontrolada
uando se in rementa la iner ia de la arga no lineal en 42 % (es de ir,
uando JT = 1:42J), mientras que las guras 6.16 y 6.17 muestran las urvas
de respuesta ontrolada para los asos uando J T = 1:84J y JT = 2:98J,
respe tivamente. En todos los asos se umplen las espe i a iones de disen ~o
(ver la subse ion 6.7.1).
322 Control Predi tivo

Rpta.aescalonesvariantesparaunacargaJ
70

60
− −:y

− :w
50
Posición(grados)

40

30

20

10

0
0 10 20 30 40 50 60 70 80 90 100
t(seg)

Figura 6.14: Salida ontrolada y ( urva en trazos) para una arga iner ial
de JT = J kg-m2.

Rpta.aescalonesvariantespara1.42J
70

60
− −:y

− :w
50
Posición(grados)

40

30

20

10

0
0 10 20 30 40 50 60 70 80 90 100
t(seg)

Figura 6.15: Salida ontrolada y ( urva en trazos) para una arga iner ial
de JT = 1:42J kg-m2.
6.7 Control de Posi i on de un Servomotor 323

Rpta.aescalonesvariantespara1.84J
70

60
− −:y

− :w
50
Posición(grados)

40

30

20

10

0
0 10 20 30 40 50 60 70 80 90 100
t(seg)

Figura 6.16: Salida ontrolada y ( urva en trazos) para una arga iner ial
de JT = 1:84J kg-m2.

Rpta.aescalonesvariantespara2.98J
70

60
− −:y

− :w
50
u(t):voltios

40

30

20

10

0
0 10 20 30 40 50 60 70 80 90 100
t(seg)

Figura 6.17: Salida ontrolada y ( urva en trazos) para una arga iner ial
de JT = 2:98J kg-m2.
324 Control Predi tivo

6.8 Problemas Resueltos


En la se i on problemas resueltos de los ap tulos 4 al 8, la solu ion a los
problemas se en uentra, segu n el aso, en uno o m as ar hivos on extension
m es ritos en odigo MATLAB. La sele i on del tiempo de muestreo para
ada problema es a onvenien ia del disen ~o.

Problema 6.1

El problema 3.2 presenta las e ua iones que gobiernan la din ami a longitudi-
nal de un avi on omer ial volando a velo idad de ru ero (altura y velo idad
onstantes). El ontrol del angulo de in lina ion del avion (ver gura 3.14)
es un problema longitudinal a resolver. El objetivo de ontrol es enton es
disen
~ar un autopiloto que manipulando el angulo Æe del de e tor de ele-
va ion, ontrole el angulo de in lina ion del avion. Disen~ar un sistema de
ontrol predi tivo que genere una fuerza de ontrol es alar, de modo que
la salida del pro eso (el angulo de in lina i on ) presente un sobreimpulso
menor al 5 %, un tiempo de estabiliza i on menor que 10 s y error en estado
estable nulo. Asumir 1 rad de entrada de referen ia.
Solu ion: Ver el programa p4pred1.m.
% p4pred1.m SOLUCION DEL PROBLEMA 6.1: CONTROL DE LA INCLINACION
% DE UN AVION USANDO CONTROL PREDICTIVO CON CONTROL ESCALAR
lear all
% FUNCION DE TRANSFERENCIA DE LA PLANTA EN TIEMPO CONTINUO
num =[0 1.151 0.1774℄;
den =[1 0.739 0.921 0℄;
A=[-0.313 56.7 0; -0.0139 -0.426 0; 0 56.7 0℄;
B=[0.232; 0.0203; 0℄; C=[0 0 1℄; D=[0℄;
% FUNCION DE TRANSFERENCIA DE LA PLANTA EN TIEMPO DISCRETO
tm=1.25; % TIEMPO DE MUESTREO
[numd,dend℄= 2dm(num ,den ,tm,'zoh');
[G,H℄= 2d(A,B,tm);
a1=dend(2); a2=dend(3); a3=dend(4);
b1=numd(2); b2=numd(3); b3=numd(4);
% HORIZONTES DE CONTROL
N1 =1; N2 =10; Nu =1;
% RESPUESTA AL ESCALON
g(1) = b1; g(2) = -a1*b1 + b1 + b2;
g(3) = - a1*g(2) - a2*g(1) + b1 +b2+b3;
for k=4:N2
g(k) = -a1*g(k-1) -a2*g(k-2) -a3*g(k-2) + b1 + b2 + b3;
6.8 Problemas Resueltos 325

end
% CONDICIONES INICIALES
for k=1:4
yf(k)=0; y(k)=0; r(k)=0; u(k)=0;
end
alf = 0.1; lambda=0; MM = 500;
% LAZO DE CONTROL
for t=4:MM+3;
% TRAYECTORIA DESEADA, REFERENCIA r Y RESPUESTA LIBRE yf
for k=1:N2
W(t+k) = sign(sin(0.02*t));
r(t+k) = alf*r(t+k-1) + (1-alf)*W(t+k);
yf(t+k)= -a1*yf(t+k-1)-a2*yf(t+k-2)-a3*yf(t+k-3)+(b1+b2+b3)*u(t-1);
end
% LEY DE CONTROL
du(t) = (g(1)*(r(t+1) - yf(t+1)) + g(6)*(r(t+6) - yf(t+6)) + ...
g(2)*(r(t+2) - yf(t+2)) + g(7)*(r(t+7) - yf(t+7)) + ...
g(3)*(r(t+3) - yf(t+3)) + g(8)*(r(t+8) - yf(t+8)) + ...
g(4)*(r(t+4) - yf(t+4)) + g(9)*(r(t+9) - yf(t+9)) + ...
g(5)*(r(t+5) - yf(t+5)) + g(10)*(r(t+10) - yf(t+10)) )/...
(g(1)^2 + g(2)^2 + g(3)^2 + g(4)^2 + g(5)^2 + g(6)^2 + ...
g(7)^2 + g(8)^2 + g(9)^2 + g(10)^2 + lambda);
u(t) = u(t-1) + du(t);
% MODELO DEL PROCESO EN SU FORMA CARIMA
y(t+1)=-a1*y(t)-a2*y(t-1)-a3*y(t-2) ...
+b1*u(t)+b2*u(t-1)+b3*u(t-2);
end % FIN DEL LAZO DE CONTROL
% GRAFICOS
ejex=linspa e(0,MM*tm,MM-3);
subplot(2,1,1)
plot(ejex,W(4:MM),ejex,y(4:MM)); grid
ylabel('y: In lina ion (rad) ')
subplot(2,1,2)
plot(ejex,u(4:MM)); grid
xlabel('TIEMPO : SEG')
ylabel('u: Angulo del defle tor (rad)')
print -deps -f p4pred1

Problema 6.2

Para el pro eso del problema 6.2, disen ~ar un sistema de ontrol predi tivo
que genere una matriz din ami a de ontrol, de modo tal que el angulo de
in lina i on del avi on siga una traye toria arbitraria, pero predeterminada.
326 Control Predi tivo

y: Inclinación (rad) 1

−1

−2
0 100 200 300 400 500 600 700

2
u: Angulo del deflector (rad)

−1

−2
0 100 200 300 400 500 600 700
TIEMPO : SEG

Figura 6.18: Angulo de in lina ion y sen


~al de ontrol (angulo del de e tor)
orrespondientes al problema 6.1.

Solu ion: Ver el programa p4pred2.m.

% p4pred2.m SOLUCION DEL PROBLEMA 6.2: CONTROL DE LA INCLINACION


% DE UN AVION USANDO CONTROL PREDICTIVO CON CONTROL MATRICIAL
lear all
% FUNCION DE TRANSFERENCIA CONTINUA DE LA PLANTA
num =[0 1.151 0.1774℄;
den =[1 0.739 0.921 0℄;
A=[-0.313 56.7 0; -0.0139 -0.426 0; 0 56.7 0℄;
B=[0.232; 0.0203; 0℄; C=[0 0 1℄; D=[0℄;
% FUNCION DE TRANSFERENCIA DISCRETA DE LA PLANTA
tm=2.2; % TIEMPO DE MUESTREO
[numd,dend℄= 2dm(num ,den ,tm,'zoh');
[G,H℄= 2d(A,B,tm);
a1=dend(2); a2=dend(3); a3=dend(4);
b1=numd(2); b2=numd(3); b3=numd(4);
% HORIZONTES DE CONTROL
N1 =1; N2 =10; Nu =5;
6.8 Problemas Resueltos 327

% RESPUESTA AL ESCALON
g(1) = b1; g(2) = -a1*b1 + b1 + b2;
g(3) = - a1*g(2) - a2*g(1) + b1 +b2+b3;
for k=4:N2
g(k) = -a1*g(k-1) -a2*g(k-2) -a3*g(k-2) + b1 + b2 + b3;
end
% MATRIZ GANANCIA DE RESPUESTA AL ESCALON
GG=[g(1) 0 0 0 0
g(2) g(1) 0 0 0
g(3) g(2) g(1) 0 0
g(4) g(3) g(2) g(1) 0
g(5) g(4) g(3) g(2) g(1)
g(6) g(5) g(4) g(3) g(2)
g(7) g(6) g(5) g(4) g(3)
g(8) g(7) g(6) g(5) g(4)
g(9) g(8) g(7) g(6) g(5)
g(10) g(9) g(8) g(7) g(6)℄;
% CONDICIONES INICIALES
for k=1:4
yf(k)=0; y(k)=0; r(k)=0; u(k)=0;
end
alf = 0.1; lambda = 0.98; MM = 500; du(1)=0;
I=eye(5,5); % MATRIZ IDENTIDAD
% LAZO DE CONTROL
for t =4:MM+3
% TRAYECTORIA DESEADA, REFERENCIA r Y RESPUESTA LIBRE yf
for k=1:N2
W(t+k)= sin(0.05*t)+0.005*t;
r(t+k) = alf*r(t+k-1) + (1-alf)*W(t+k);
yf(t+k)= -a1*yf(t+k-1)-a2*yf(t+k-2)-a3*yf(t+k-3)+(b1+b2+b3)*u(t-1);
end
% MATRIZ R DE SE~NALES r
R=[r(t+1) r(t+2) r(t+3) r(t+4) r(t+5) r(t+6)...
r(t+7) r(t+8) r(t+9) r(t+10)℄';
% MATRIZ DE RESPUESTA LIBRE YF
YF=[yf(t+1) yf(t+2) yf(t+3) yf(t+4) yf(t+5) yf(t+6)...
yf(t+7) yf(t+8) yf(t+9) yf(t+10)℄';
% LEY DE CONTROL
U=inv(GG'*GG+lambda*I)*GG'*(R-YF);
du=U(1);
u(t) = u(t-1) + du;
% PROCESO
y(t+1)=-a1*y(t)-a2*y(t-1)-a3*y(t-2) ...
328 Control Predi tivo

+b1*u(t)+b2*u(t-1)+b3*u(t-2);
end % FIN DEL BUCLE DE CONTROL
% GRAFICOS
ejex=(4:MM); ejex=ejex*tm;
subplot(2,1,1)
plot(ejex,W(4:MM),ejex,y(4:MM)), grid
ylabel('y: In lina ion (rad) ')
subplot(2,1,2)
plot(ejex,u(4:MM)), grid
xlabel('TIEMPO : SEG')
ylabel('u: Angulo del defle tor (rad)')
print -deps -f p4pred2

3
y: Inclinación (rad)

−1
0 200 400 600 800 1000 1200

0.3
u: Angulo del deflector (rad)

0.2

0.1

−0.1

−0.2
0 200 400 600 800 1000 1200
TIEMPO : SEG

Figura 6.19: Angulo de in lina ion y sen


~al de ontrol (angulo del de e tor)
orrespondientes al problema 6.2.

Problema 6.3

La gura 3.20 muestra el pro eso monorriel de dos arros des rito en el
problema 3.5. El problema a resolver es el ontrol de velo idad del arro de
6.8 Problemas Resueltos 329

m aquinas mediante un sistema de ontrol predi tivo on fuerza de ontrol


es alar. Para garantizar a los pasajeros un viaje onfortable, los ambios de
velo idad deben realizarse on un tiempo de estabiliza ion menor que 10 s y
on m nimo sobreimpulso. El error en estado estable debe ser nulo. Simule
una sen~al de referen ia que ambie la velo idad de 30 a 20 m/s y demuestre
que se umplen las espe i a iones de disen ~o. Luego enfrente el problema
de seguimiento. Mostrar que la velo idad de la maquina puede seguir una
determinada traye toria predeterminada de velo idades.
Solu i on: Ver el programa p7pred1a.m. El programa p7pred1b.m trata el
aso de referen ia arbitraria. Revise ese programa si desea ver detalles al
respe to.

% p7pred1a.m SOLUCION DEL PROBLEMA 6_3: CONTROL DE VELOCIDAD


% DEL MONORRIEL DE DOS CARROS USANDO CONTROL PREDICTIVO
% CON FUERZA DE CONTROL ESCALAR Y REFERENCIA ESCALON.

% PARA REFERENCIA ARBITRARIA VER PROGRAMA p7pred1b.m


lear all

% DATOS DEL PROCESO


M1=1300; M2=2600; M3=2600; K12=100000; K23=100000;
B12=500; B23=500; B1=5000; B2=10000; B3=10000;
% MODELO DEL PROCESO
A=[0 1 0 0 0 0
-K12/M1 -(B1+B12)/M1 K12/M1 B12/M1 0 0
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 DEL PROCESO EN TIEMPO DISCRETO
tm=0.3; % TIEMPO DE MUESTREO
[G,H℄= 2d(A,B,tm);
[numd,dend℄=ss2tf(G,H,C,D,1);
a1=dend(2); a2=dend(3); a3=dend(4); a4=dend(5);
a5=dend(6); a6=dend(7);
330 Control Predi tivo

b1=numd(2); b2=numd(3); b3=numd(4); b4=numd(5);


b5=numd(6); b6=numd(7);

% HORIZONTES
N1 =1; N2 =10; Nu =1;
% RESPUESTA AL ESCALON
g(1)=b1; g(2)=-a1*b1+b1+b2;
g(3)=-a1*g(2)-a2*g(1)+b1+b2+b3;
g(4)=-a1*g(3)-a2*g(2)-a3*g(1)+b1+b2+b3+b4;
g(5)=-a1*g(4)-a2*g(3)-a3*g(2)-a4*g(1)+b1+b2+b3+b4+b5;
g(6)=-a1*g(5)-a2*g(4)-a3*g(3)-a4*g(2)-a5*g(1)+b1+b2+b3+b4+b5+b6;
for k=7:N2
g(k)=-a1*g(k-1)-a2*g(k-2)-a3*g(k-1)-a4*g(k-1)-a5*g(k-2)...
-a6*g(k-1) + b1 + b2 + b3 + b4 + b5 + b6;
end
% CONDICIONES INICIALES
for k=1:7
yf(k)=0; y(k)=0; r(k)=0; u(k)=0;
end
alf =0.1; lambda = 0; MM=500;

% LAZO DE CONTROL
for t=7:MM+6;
% TRAYECTORIA DESEADA, REFERENCIA r Y RESPUESTA LIBRE yf
for k=1:N2
W(t+k)= 25 + 5*sign(sin(0.01*t));
r(t+k) = alf*r(t+k-1) + (1-alf)*W(t+k);
yf(t+k) = -a1*yf(t+k-1)-a2*yf(t+k-2)-a3*yf(t+k-3)...
-a4*yf(t+k-4)-a5*yf(t+k-5)-a6*yf(t+k-6)+(b1+b2+b3+b4+b5+b6)*u(t-1);
end
% LEY DE CONTROL
du(t)=(g(1)*(r(t+1)-yf(t+1))+g(6)*(r(t+6)-yf(t+6))+...
g(2)*(r(t+2)-yf(t+2))+g(7)*(r(t+7)-yf(t+7))+ ...
g(3)*(r(t+3)-yf(t+3))+g(8)*(r(t+8)-yf(t+8))+ ...
g(4)*(r(t+4)-yf(t+4))+g(9)*(r(t+9)-yf(t+9))+ ...
g(5)*(r(t+5)-yf(t+5))+g(10)*(r(t+10)-yf(t+10)))/...
(g(1)^2 + g(2)^2 + g(3)^2 + g(4)^2 + g(5)^2 + g(6)^2 + ...
g(7)^2 + g(8)^2 + g(9)^2 + g(10)^2 + lambda);
u(t) = u(t-1) + du(t);
% PROCESO
y(t+1)= -a1*y(t) -a2*y(t-1) -a3*y(t-2) -a4*y(t-3)...
-a5*y(t-4) -a6*y(t-5)...
+b1*u(t) +b2*u(t-1) +b3*u(t-2) +b4*u(t-3)...
6.8 Problemas Resueltos 331

+b5*u(t-4)+b6*u(t-5);
end
% GRAFICOS
ejex=linspa e(0,MM*tm,MM-6);
subplot(2,1,1)
plot(ejex,W(7:MM),ejex,y(7:MM)); grid
ylabel('Y1: Velo idad (m/s)')
subplot(2,1,2)
plot(ejex,u(7:MM)); grid
xlabel('Tiempo (segundos)')
ylabel('Control u (volt)')
print -deps -f p7pred1a

40
Y1: Velocidad (m/s)

30

20

10

0
0 50 100 150

150

100
Control u (volt)

50

−50
0 50 100 150
Tiempo (segundos)

Figura 6.20: Velo idad del arro de maquinas y la fuerza de ontrol para el
problema 6.3.

Problema 6.4
Resuelva nuevamente el problema 6.3, pero esta vez usando un sistema de
ontrol predi tivo on fuerza de ontrol matri ial.
Solu i on: El programa p7pred2a.m resuelve el problema planteado y su
resultado se muestra en la gura 6.22. El programa p7pred2b.m trata el
aso de referen ia arbitraria y su resultado se ilustra en la gura 6.23.
332 Control Predi tivo

20

15

Velocidad (m/s)
10

0
0 50 100 150 200 250 300

60

40
Control u (volt)

20

−20
0 50 100 150 200 250 300
Tiempo (Segundos)

Figura 6.21: Velo idad del arro de m aquinas y la fuerza de ontrol para el
problema 6.3. La referen ia es arbitraria.

Problema 6.5
La gura 3.22 muestra el pro eso as ensor que fue tratado en el problema
3.6. El problema a resolver es posi ionar suavemente el as ensor en un piso
determinado, lo que signi a sobreimpulso nulo (para que no se pase de piso)
y tiempo de estabiliza ion menor que 10 s. Para no saturar al a tuador (un
ampli ador de poten ia), la sen ~al de ontrol debe estar dentro del rango
de 200 volt. Disen ~ar un sistema de ontrol de posi i on predi tivo on
fuerza de ontrol es alar que umpla las espe i a iones pedidas. Con el
objeto de umplir tales espe i a iones, tambi en se puede usar restri i on
a la salida; es de ir, para ada tiempo de muestreo, ha er que la posi ion
ontrolada iguale la sen ~al de referen ia. Es interesante anotar, que di ha
restri ion origina en la simula ion una respuesta que sigue perfe tamente a
la referen ia. L ogi amente, los resultados de la implementa i on en tiempo
real on tal restri i on, no son tan perfe tos omo lo son en la simula ion,
tal omo su ede en el aso del ontrol predi tivo del servomotor on arga
no lineal (subse i on 6.7.8).
% p8pred1.m SOLUCION DEL PROBLEMA 6_5: CONTROL DE POSICION
% DE UN ASCENSOR USANDO CONTROL PREDICTIVO CON FUERZA
% DE CONTROL ESCALAR Y CON RESTRICCION EN LA SALIDA
lear all
6.8 Problemas Resueltos 333

40

Y1: Velocidad (m/s)


30

20

10

0
0 50 100 150

100

50
u: control

−50
0 50 100 150
Tiempo (segundos)

Figura 6.22: Velo idad del arro de maquinas y la fuerza de ontrol para el
problema 6.4.

% ECUACION DE ESTADO
A=[-0.2 0 0 0
1 0 0 0
2 0 -2 0
5 0 0 -5℄;
B=[0.001;0;0;0℄; C=[0 1 0 0℄; D=[0℄;
% PROCESO EN TIEMPO DISCRETO
tm=1;
[G,H℄= 2d(A,B,tm);
[numd,dend℄=ss2tf(G,H,C,D);
a1=dend(2); a2=dend(3); a3=dend(4); a4=dend(5);
b1=numd(2); b2=numd(3); b3=numd(4); b4=numd(5);
% HORIZONTES DE CONTROL
N1 =1; N2 =10; Nu =1;
% RESPUESTA AL ESCALON
g(1) = b1; g(2) = -a1*b1 + b1 + b2;
g(3) = - a1*g(2) - a2*g(1) + b1 +b2+b3;
g(4) = - a1*g(3) - a2*g(2)-a3*g(1) + b1+b2+b3+b4;
for k=5:N2
g(k) = -a1*g(k-1)-a2*g(k-2)-a3*g(k-3)-a4*g(k-4)+b1+b2+b3+b4;
end
334 Control Predi tivo

20

Velocidad v1 (m/s)
15

10

0
0 100 200 300 400 500 600 700 800 900 1000

15
u: Fuerza de control

10

−5
0 100 200 300 400 500 600 700 800 900 1000
Tiempo (Segundos)

Figura 6.23: Velo idad del arro de m aquinas y la fuerza de ontrol para el
problema 6.4. La referen ia es arbitraria.

% CONDICIONES INICIALES
for k=1:5
yf(k)=0; y(k)=0; r(k)=0; u(k)=0;
end
alf =0.1; lambda = 0.00;
MM=300;
% LAZO DE CONTROL
for t =5:MM+4;
% TRAYECTORIA DESEADA, REFERENCIA r Y RESPUESTA LIBRE yf
for k=1:N2
W(t+k)=-3*sign(sin(0.02*t));
r(t+k) = alf*r(t+k-1) + (1-alf)*W(t+k);
yf(t+k)= -a1*yf(t+k-1)-a2*yf(t+k-2)-a3*yf(t+k-3)-a4*yf(t+k-4)...
+ (b1 + b2 + b3 + b4)*u(t-1);
end
% RESTRICCION A LA SALIDA
y(t) = W(t);
% LEY DE CONTROL
du(t)=(g(1)*(r(t+1)-yf(t+1))+g(6)*(r(t+6)-yf(t+6))+ ...
g(2)*(r(t+2) - yf(t+2)) + g(7)*(r(t+7) - yf(t+7)) + ...
g(3)*(r(t+3) - yf(t+3)) + g(8)*(r(t+8) - yf(t+8)) + ...
6.8 Problemas Resueltos 335

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);
% EVITANDO LA SATURACION DEL AMPLIFICADOR
if(u(t) > 200)
u(t) = 200;
elseif(u(t) < -200)
u(t) = 200;
end
% PROCESO
y(t+1)=-a1*y(t)-a2*y(t-1)-a3*y(t-2)-a4*y(t-3)...
+b1*u(t)+b2*u(t-1)+b3*u(t-2)+b4*u(t-3);
end % FIN DEL LAZO DE CONTROL
% GRAFICOS
ejex=linspa e(0,MM*tm,MM-4);
subplot(2,1,1)
plot(ejex,W(5:MM),ejex,y(5:MM)); grid
ylabel('POSICION (m)')
xlabel('TIEMPO EN SEGUNDOS')
subplot(2,1,2)
plot(ejex,u(5:MM)); grid
xlabel('TIEMPO EN SEGUNDOS')
ylabel('VOLTAJE DE CONTROL')
print -deps -f p8pred1

Problema 6.6

Resuelva nuevamente el problema 6.5, pero esta vez usando un sistema de


ontrol predi tivo on fuerza de ontrol matri ial.
Solu i on: El programa p8pred2a.m resuelve el problema planteado y su
resultado se muestra en la gura 6.25.

Problema 6.7

La gura 2.2 muestra dos tanques identi os olo ados en as ada. La se -


i on horizontal A=9 m 2 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 deriv o en el ejemplo 2.1. Disen
~ar un ontrolador
predi tivo del tipo es alar on los requerimientos siguientes: tiempo de es-
tabiliza ion menor que 15 s, sobreimpulso menor al 10 % y error en estado
336 Control Predi tivo

POSICION (m)
0

−2

−4
0 50 100 150 200 250 300
TIEMPO EN SEGUNDOS

200
VOLTAJE DE CONTROL

100

−100

−200
0 50 100 150 200 250 300
TIEMPO EN SEGUNDOS

Figura 6.24: Posi i on del as ensor y la fuerza de ontrol (problema 6.5).


4

2
POSICION (m)

−2

−4
0 100 200 300 400 500 600

200
VOLTAJE DE CONTROL

100

−100
0 100 200 300 400 500 600
TIEMPO EN SEGUNDOS

Figura 6.25: Posi i on del as ensor y la fuerza de ontrol orrespondientes al


problema 6.6.
6.8 Problemas Resueltos 337

estable nulo. Estas ondi iones de disen~o deben mantenerse uando se am-
bie la referen ia (por ejemplo de 3 a 2 m). Adem as, el ujo de entrada (la
~al de ontrol) no debe sobrepasar los 3 m3 /s.
sen
% p9pred1.m SOLUCION DEL PROBLEMA 6.7 CONTROL DE NIVEL
% USANDO CONTROL PREDICTIVO CON CONTROL du ESCALAR
lear all
% PARAMETROS DEL SISTEMA
A = 9; gamma = 0.4; rho = 1.23; g = 9.81; Q = 3;
H =Q^2/(gamma^2*rho*g);
Z=(gamma*sqrt(rho*g))/(2*A*sqrt(H));
% ESPACIO DE ESTADO DE LA PLANTA EN TIEMPO CONTINUO
A = [-Z 0;Z -Z℄; B =[1 ; 0℄;
C =[0 1℄; D =[0℄;
T = 0.9; % TIEMPO DE MUESTREO
% MODELO LINEAL DISCRETO
[G,H,C,D℄= 2dm(A ,B ,C ,D ,T,'zoh');
[numd,dend℄=ss2tf(G,H,C,D);
a1 = dend(2); a2 = dend(3);
b1 = numd(2); b2 = numd(3);
% RESPUESTA AL ESCALON
g1 = b1;
g2 = -a1* b1 + b1 + b2;
g3 = -a1*g2-a2*g1+b1+b2; g4 = -a1*g3-a2*g2+b1+b2;
g5 = -a1*g4-a2*g3+b1+b2; g6 = -a1*g5-a2*g4+b1+b2;
g7 = -a1*g6-a2*g5+b1+b2; g8 = -a1*g7-a2*g6+b1+b2;
g9 = -a1*g8-a2*g7+b1+b2; g10 = -a1*g9-a2*g8+b1+b2;
% HORIZONTES DE CONTROL
N1 = 1; N2 =10; Nu =1; % ontrol es alar
% CONDICIONES INICIALES
for k=1:3
yf(k)=0; y(k)=0; r(k)=0; u(k)=0;
end
alf = 0.1; lambda = 0; MM = 500;
% LAZO DE CONTROL
for t =3:MM+2
% TRAYECTORIA DESEADA, REFERENCIA r Y RESPUESTA LIBRE yf
for k=1:N2
W(t+k) = 1.5 + 0.5*sign(sin(0.02*t));
r(t+k) = alf*r(t+k-1) + (1-alf)*W(t+k);
yf(t+k) = -a1*yf(t+k-1) - a2*yf(t+k-2) + (b1 + b2)*u(t-1);
end
% LEY DE CONTROL
du(t)=(g1*(r(t+1)-yf(t+1))+g6*(r(t+6)-yf(t+6))+ ...
338 Control Predi tivo

g2*(r(t+2) - yf(t+2)) + g7*(r(t+7) - yf(t+7)) + ...


g3*(r(t+3) - yf(t+3)) + g8*(r(t+8) - yf(t+8)) + ...
g4*(r(t+4) - yf(t+4)) + g9*(r(t+9) - yf(t+9)) + ...
g5*(r(t+5) - yf(t+5)) + g10*(r(t+10)-yf(t+10)))/...
(g1^2 + g2^2 + g3^2 + g4^2 + g5^2 + g6^2 + ...
g7^2 + g8^2 + g9^2 + g10^2 + lambda);
u(t) = u(t-1) + du(t);
% PROCESO LINEALIZADO (ECUACION RESIDUAL)
y(t+1)=-a1*y(t)-a2*y(t-1)+b1*du(t)+b2*du(t-1);
% SALIDA ACTUAL (NIVEL H2)
Y(t+1) = y(t+1)+W(t+1);
% LIMITANDO EL FLUJO DE CONTROL
fu = 3.0;
if(u(t) > 0 & u(t) > fu)
u(t) = fu;
elseif(u(t) < 0 & u(t) < -fu)
u(t) = -fu;
end
end % FIN DEL LAZO DE CONTROL **************
% GRAFICOS
ejex = linspa e(0,MM*T,MM-2);
subplot(2,1,1)
plot(ejex,W(3:MM),ejex,Y(3:MM)); grid
ylabel('NIvel H2 (m)')
xlabel('Tiempo en segundos')
subplot(2,1,2)
plot(ejex,u(3:MM)); grid
ylabel('Flujo de ontrol (m^3/s)')
xlabel('Tiempo en segundos')
print -deps -f p9pred1

Problema 6.8

Resuelva nuevamente el problema 6.7, pero esta vez usando un sistema de


ontrol predi tivo on fuerza de ontrol matri ial.

Solu ion: El programa p9pred2.m resuelve el problema planteado y su


resultado se muestra en la gura 6.27.

Problema 6.9
El pro eso ele trome ani o mostrado en la gura 3.26 se des ribe en el pro-
blema 3.8. Se pide disen ~ar un sistema de ontrol predi tivo on fuerza de
6.8 Problemas Resueltos 339

2.5

NIvel H2 (m)
1.5

0.5

0
0 50 100 150 200 250 300 350 400 450
Tiempo en segundos

3
Flujo de control (m^3/s)

−1

−2
0 50 100 150 200 250 300 350 400 450
Tiempo en segundos

Figura 6.26: Nivel ontrolado H 2 y el ujo de ontrol para el problema 6.7.

2.5

2
NIvel H2 (m)

1.5

0.5

0
0 50 100 150 200 250 300 350 400 450
Tiempo en segundos

2
Flujo de control (m^3/s)

−1
0 50 100 150 200 250 300 350 400 450
Tiempo en segundos

Figura 6.27: Nivel ontrolado H 2 y el ujo de ontrol para el problema 6.8.


340 Control Predi tivo

ontrol es alar, para ontrolar la velo idad angular del eje del motor me-
diante el voltaje de entrada que puede variar entre 100 volt. El tiempo de
estabiliza ion de la sen
~al ontrolada (la velo idad) debe ser menor que 6 s
y di ha respuesta debe presentar un sobrepi o m aximo de 5 %, on error en
estado estable nulo.
% p11pred1.m SOLUCION DEL PROBLEMA 6_9
% CONTROL DE VELOCIDAD DEL SISTEMA ELECTROMECANICO
% USANDO CONTROL PREDICTIVO CON CONTROL du ESCALAR
lear all
% PARAMETROS DEL SISTEMA
J = 0.01; Ke = 0.01; Kt = 0.01;
R = 12; C = 0.5; L = 0.5; Kw = 1.8;
% MODELO DEL PROCESO EN TIEMPO CONTINUO
A = [-1/(R*C) -1/C 0
Kw/(L*Kw + Kt*Ke) 0 -Ke*Kw/(L*Kw + Kt*Ke)
0 Kt/J 0℄;
B = [1/(R*C);0;0℄;
C = [0 0 1℄; D = [0℄;
T = 0.1; % TIEMPO DE MUESTREO
% MODELO LINEAL DISCRETO
[G,H,C,D℄= 2dm(A ,B ,C ,D ,T,'zoh');
[numd,dend℄=ss2tf(G,H,C,D);
a1 = dend(2); a2 = dend(3); a3=dend(4);
b1 = numd(2); b2 = numd(3); b3=numd(4);
% RESPUESTA AL ESCALON
g1 = b1; g2 =-a1*b1+b1+b2;
g3=-a1*g2-a2*g1+b1+b2+b3;
g4 =-a1*g3- a2*g2-a3*g1+b1+b2+b3;
g5=-a1*g4-a2*g3-a3*g2+b1+b2+b3;
g6 =-a1*g5-a2*g4-a3*g3+b1+b2+b3;
g7=-a1*g6-a2*g5-a3*g4+b1+b2+b3;
g8 =-a1*g7-a2*g6-a3*g5+b1+b2+b3;
g9=-a1*g8-a2*g7-a3*g6+b1+b2+b3;
g10=-a1*g9-a2*g8-a3*g7+b1+b2+b3;
% HORIZONTES DE CONTROL
N1 = 1; N2 = 10; Nu = 1;
% CONDICIONES INICIALES
for k = 1:4
yf(k) = 0; y(k) = 0; r(k) = 0; u(k) = 0;
end
du(1) = 0;
alf = 0.85; lambda = 0;
% LAZO DE CONTROL
6.8 Problemas Resueltos 341

MM=1000;
for t =4:MM+3
% TRAYECTORIA DESEADA, REFERENCIA r Y RESPUESTA LIBRE yf
for k=1:N2
W(t+k)= 4*sign(sin(0.01*t));
r(t+k) = alf*r(t+k-1) + (1-alf)*W(t+k);
yf(t+k)= -a1*yf(t+k-1)-a2*yf(t+k-2)-a3*yf(t+k-3)+(b1+b2+b3)*u(t-1);
end
% LEY DE CONTROL
du(t) = ( g1*(r(t+1) - yf(t+1)) + g6*(r(t+6) - yf(t+6)) + ...
g2*(r(t+2) - yf(t+2)) + g7*(r(t+7) - yf(t+7)) + ...
g3*(r(t+3) - yf(t+3)) + g8*(r(t+8) - yf(t+8)) + ...
g4*(r(t+4) - yf(t+4)) + g9*(r(t+9) - yf(t+9)) + ...
g5*(r(t+5) - yf(t+5)) + g10*(r(t+10) - yf(t+10)) )/...
(g1^2 + g2^2 + g3^2 + g4^2 + g5^2 + g6^2 + ...
g7^2 + g8^2 + g9^2 + g10^2 + lambda);
u(t) = u(t-1) + du(t);
if(u(t) > 100)
u(t)=100;
elseif(u(t) < -100)
u(t) = - 100;
end
% PROCESO
y(t+1) = -a1*y(t)-a2*y(t-1)-a3*y(t-2)+b1*u(t)+b2*u(t-1)+b3*u(t-2);
end % FIN DEL LAZO DE CONTROL
% GRAFICOS
ejex=linspa e(0,MM*T,MM-3);
subplot(2,1,1)
plot(ejex,W(4:MM),ejex,y(4:MM)); grid
ylabel('Velo idad (rad/s)')
xlabel('Tiempo en segundos')
subplot(2,1,2)
plot(ejex,u(4:MM)); grid
xlabel('Tiempo en segundos')
ylabel('Voltaje de ontrol')
print -deps -f p11pred1

Problema 6.10

Resuelva nuevamente el problema 6.9, pero esta vez usando un sistema de


ontrol predi tivo on fuerza de ontrol matri ial. La traye toria deseada
debe ser una urva arbitraria (problema de seguimiento).
342 Control Predi tivo

Velocidad (rad/s)
0

−5
0 10 20 30 40 50 60 70 80 90 100
Tiempo en segundos

100
Voltaje de control

50

−50

−100
0 10 20 30 40 50 60 70 80 90 100
Tiempo en segundos

Figura 6.28: Velo idad angular ontrolada y el voltaje de ontrol para el


problema 6.9.

Solu ion: El programa p11pred2.m resuelve el problema planteado y su


resultado se muestra en la gura 6.29.

6.9 Problemas Propuestos


Problema 6.11

En el pro eso de la gura 3.24(a) (ver problema 3.7) se desea redu ir la


humedad h del material a granel de la tolva. La banda transportadora,
que se desplaza a una velo idad v = 1 m/s onstante, introdu e el material
a un horno de se ado. El sensor de humedad dete ta h r a una distan ia d =
10 m del horno y propor iona la sen ~ al de voltaje vr . El horno puede
modelarse omo un pro eso de primer orden. La gura 3.24(b) muestra la F.T
del pro eso. Disen ~ ar dos sistemas de ontrol predi tivo basado en
modelos, uno on fuerza de ontrol es alar y otro on fuerza de ontrol
matri ial (la sele i on de los valores de los horizontes es a onvenien ia del
problema planteado). El objetivo de ontrol es estabilizar la humedad del
material en la banda transportadora. Con nes de modelado del pro eso,
el tiempo muerto puede ser des rito empleando la aproxima ion de Pad e de
6.9 Problemas Propuestos 343

15

Velocidad (rad/s)
10

−5
0 20 40 60 80 100 120 140 160 180 200
Tiempo en segundos

2
Voltaje de control

−1

−2
0 20 40 60 80 100 120 140 160 180 200
Tiempo en segundos

Figura 6.29: Velo idad angular ontrolada y el voltaje de ontrol para el


problema 6.10.

ter er orden (ver ejemplo 2.12):

e Ts num(s)= 1 Tts=2 + (Tts)2=10 (Tts)3=120


den(s) 1 + T s=2 + (T s)2=10 + (T s)3=120
t t t

Las espe i a iones de disen~o para ambos sistemas de ontrol son: tiempo de
estabiliza i on menor que 40 s, error en estado esta ionario nulo y por entaje
de sobreimpulso menor al 5 %. La sele i on del tiempo de muestreo y de los
horizontes de ontrol es a onvenien ia del disen ~o.

Problema 6.12

Las e ua iones del modelo linealizado para ontrolar la posi ion del an
~o n
montado en la torreta de un tanque (ver gura 3.28) empleando un a tuador
hidr auli o se detallan en el problema 3.9.

(a) Disen~ar un sistema de ontrol predi tivo basado en modelos para on-
trolar el angulo de eleva i on on las espe i a iones siguientes: tiem-
po de estabiliza i on menor que 5 s, m nimo sobreimpulso y error en
estado esta ionario nulo, empleando fuerza de ontrol es alar. Los
344 Control Predi tivo

disturbios tipo es alon pueden a tuar simult aneamente y pueden ser


positivos o negativos. El sistema de ontrol disen~ado debe ser apaz
de minimizar sus efe tos.
(b) Lo mismo que (a) pero empleando fuerza de ontrol matri ial. La
sele i on de los horizontes de ontrol es a onvenien ia del problema
planteado.
( ) Lo mismo que (a), pero en este aso para ontrolar el angulo azimutal.
(d) Lo mismo que ( ), pero empleando fuerza de ontrol matri ial. En
todos los asos la sele i on del tiempo de muestreo y los horizontes de
ontrol es a onvenien ia del disen ~o.
Problema 6.13

La gura 3.31 muestra el pro eso servomotor on arga no lineal des rito
en la se i on 3.3, en donde la arga no lineal posee ahora dos grados de
libertad on L o = 2L1=3 y Mo=0.02 kg. La union de la arga on el eje del
servomotor no es exible. Las e ua iones que des riben la din ami a del
sistema son materia del problema 3.12.
(a) Disen~ar un sistema de ontrol predi tivo basado en modelos para on-
trolar simult aneamente las posi iones y on m nimo tiempo de
estabiliza i on y m nimo sobreimpulso, empleando una fuerza de on-
trol es alar.
(b) Lo mismo que (a) pero empleando una fuerza de ontrol matri ial. La
sele ion de los horizontes de ontrol y del tiempo de muestreo es a
onvenien ia del problema planteado.
Problema 6.14

La gura 3.32 muestra el pro eso p endulo doble no lineal, el ual es una
extension del p endulo simple des rito en la se i on 3.1. El a oplamiento
entre los dos p endulos de igual longitud no es exible. Las e ua iones que
des riben la dinami a del sistema son materia del problema propuesto 3.13.
(a) Disen~ar un sistema de ontrol predi tivo basado en modelos para on-
trolar simult aneamente las posi iones y on m nimo tiempo de
estabiliza i on y m nimo sobreimpulso, empleando para ello una fuerza
de ontrol es alar, de modo tal que el p endulo doble permanez a en
posi ion verti al. Considerar que la arga esferi a es de 0.02 kg.
6.9 Problemas Propuestos 345

(b) Lo mismo que (a) pero empleando una fuerza de ontrol matri ial.
La sele ion de los horizontes de ontrol y del tiempo de muestreo es
a onvenien ia del problema planteado.

Problema 6.15

La gura 3.33 muestra el pro eso doble gru a puente no lineal, el ual es una
extensi on del pro eso gru a puente es rito en la se ion 3.2. El a oplamiento
entre las dos se iones iguales de la varilla no es exible. Las e ua iones que
des riben la dinami a del sistema son materia del problema propuesto 3.14.
Considerar que la arga esf eri a es de 0.02 kg.
(a) Disen~ar un sistema de ontrol predi tivo basado en modelos para on-
trolar simult aneamente las posi iones y on m nimo tiempo de
estabiliza i on y m nimo sobreimpulso empleando para ello una fuerza
de ontrol es alar, de modo tal que la gru a-puente doble permanez a
en posi ion verti al.
(b) Lo mismo que (a) pero empleando para ello una fuerza de ontrol
matri ial. La sele ion de los horizontes de ontrol y del tiempo de
muestreo es a onvenien ia del problema planteado.

Problema 6.16

La gura 1.1 muestra un arro de masa m = 1000 kg desplazandose on una


velo idad v gra ias a la a i on de la fuerza u produ ida por su motor. Si
se despre ia la iner ia de las ruedas y se asume que la fuerza de fri ion bv,
donde b= 50 N-s/m es el oe iente de fri ion, es lo uni o que se opone
al movimiento del arro, enton es la dinami a del pro eso puede modelarse
omo (ver ejemplo 1.16):
dv
mv_(t) + bv(t) = u(t); v_ =
dt
(a) Disen~ar un sistema de ontrol predi tivo basado en modelos para on-
trolar la velo idad del m ovil on m nimo tiempo de estabiliza i on y m
nimo sobreimpulso. La sen ~al de referen ia puede ser arbitraria (pro-
blema de seguimiento) y la fuerza de ontrol a disen~ar es es alar.
(b) Lo mismo que (a), pero empleando fuerza de ontrol matri ial. La
sele i on los valores de los horizontes y el tiempo de muestreo son a
onvenien ia del problema planteado.
346 Control Predi tivo

Problema 6.17

El motor D.C. es un a tuador muy popular en los sistemas de ontrol porque


su movimiento rotatorio, mediante a oples ade uados en su eje, puede on-
vertirse fa ilmente en movimiento de trasla i on. Eso se apre ia en fajas
transportadoras o en brazos manipuladores. La gura 4.3 muestra el ir-
uito de armadura del motor y el diagrama de uerpo libre de su rotor.
Las e ua iones que gobiernan el omportamiento dinami o del motor fueron
derivadas en el ejemplo 4.1.

(a) Disen~ar dos sistemas de ontrol predi tivo basado en modelos. El


primero, para estabilizar la velo idad angular del eje del motor on
las espe i a iones siguientes: tiempo de estabiliza ion menor que 4 s,
error en estado estable menor al 1 % y sobreimpulso a la salida menor
al 5 %, y el segundo para estabilizar la posi ion del eje del motor on
las mismas espe i a iones de disen ~o.

(b) Repetir (a) pero en este aso empleando una fuerza de ontrol matri-
ial. La sele ion de los horizontes de ontrol y del tiempo de muestreo
es a onvenien ia del problema planteado.
Cap tulo 7

Control Robusto

En este ap tulo se desarrollan dos pro edimientos para disen~ar 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 omportamien-
to estable. El segundo pro edimiento usa la estru tura lasi a de un sistema de
ontrol realimentado, pero su ontrolador se disen~a 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 asint oti 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 antepenu ltima se i on de este ap tulo se presenta la apli a i on: ontrol
de la posi i on de un servomotor D.C. sujeto a argas no lineales. La penu ltima
se i on, problemas resueltos, est a dedi ada al disen~o de sistemas de ontrol
robusto para diferentes pro esos. Todos los ar hivos orrespondientes a los
ejer i ios, problemas, disen~os, simula iones y software desarrollados se pueden
des argar del sitio: http:// ee.uni.edu.pe/728681F.

7.1 Estru tura del Control on Modelo Interno


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 i on (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 sen ~ales 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 Control Robusto

d
r
- m - (z)
u
- hr0(s) - p(s) - m
? y
-
6
y y
(s)
T

Figura 7.1: Sistema de ontrol dis reto onven ional.

nota ion empleada responde a los fundamentos tratados en el ap tulo 2.


Por ejemplo, si la sen
~ al ontinua y (t) pasa por un muestreador on per odo
de muestreo T , enton es a la salida del muestreador se obtiene una se uen ia
de impulsos y que satisfa e la rela ion:

y (t) = X
1
y (kT )Æ(t kT ) (7.1)
k=0

La transformada de Lapla e de y (t) es enton es:

L[y (t)℄ = y (esT ) = X1


y (kT )e skT
(7.2)
k=0

Si alternativamente representamos la sen


~al y (t) por su serie de Fourier:
1
1
y (t) = T
X y (kT )eik!st (7.3)
k= 1

donde !s = 2 =T es la fre uen ia de muestreo, enton es:


1
L[y (t)℄ = y (e ) = T
sT
1
X y (s + ik!s) (7.4)
k= 1

Notar que hemos usado la rela ion basi a z = e sT . Tambi en es u til re ordar
que la transformada Z de y (t) se puede expresar omo:

Z[y (kT )℄ = y (z) (7.5)


7.1 Estru tura del Control on Modelo Interno 349

Una fun i on ra ional y periodi a posee la propiedad de que sus valores para
fre uen ias mayores que =T se pueden determinar a partir de aquellos va-
lores orrespondiente al intervalo 0 w =T . Ademas, si y (z) es
periodi a, tambi en es hermitiana; es de ir:
i!T !)T H
y (ei!T )H = y (e ) = y (ei(!s ) ; =T < w < 2 =T (7.6)

Considere ahora el diagrama de bloques mostrado en la gura 7.2 orres-


pondiente a la estru tura de un sistema CMI (Control on Modelo Interno),
la que omparada on la estru tura onven ional, presenta grandes venta-
jas que vamos a dis utir mas adelante. Las rela iones entre el ontrolador
l asi 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
q = (7.8)
1 + p~
donde p es el bloque pro eso y p~ es el bloque modelo del pro eso. Observar
en la gura 7.2B que el ontrolador tiene omo entradas la referen ia r y la
sen
~al medible y, y omo salida la sen ~ al de ontrol u.
La gura 7.3 muestra la estru tura dis reta CMI, en donde el sistema de
ontrol in luye q(z), p~(s) y (s). Observar en di ha gura que el amino
paralelo que forma el modelo del pro eso es para sustraer el efe to de la
variable manipulada u de la salida del pro eso y. Si asumimos que el modelo
es una representa i on perfe ta del pro eso, enton es la sen~al realimentada
es igual a la in uen ia de los disturbios y no es afe tada por la a ion de
la variable manipulada. En esta situa i on, el sistema se omporta omo
uno de lazo abierto y los problemas usuales de estabilidad aso iados on la
realimenta i on desapare en.
Sin demostra ion se presenta el on epto de estabilidad interna para el
sistema CMI de la gura 7.3A.

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 es-
table s y s olo si la planta p(s) y el ontrolador q(z) son estables.

El ontrolador CMI juega el rol de un ontrolador anti ipativo y puede ser


disen
~ado omo tal, pero on la apa idad adi ional de poder an elar
350 Control Robusto

d
r
- m - q
u
- p - m
? y
-
6

- p~ - m
A

d
r
- m - m- q - p - m
?
-
6 6

p~

B
q
d
r
- m - m- u
- p - m
? y
-
6 6

p~ - p~ -

Figura 7.2: Representa iones alternativas del Control on Modelo Interno.


7.1 Estru tura del Control on Modelo Interno 351

la in uen ia de los disturbios no medibles, debido a que en la estru tura CMI,


la sen~al de realimenta ion lleva onsigo la in uen ia de los disturbios.
Cuando la sen ~al realimentada de la estru tura CMI se ompara on la sen ~ al
de referen ia, se genera una sen ~al de error que el sistema de ontrol debe
minimizar.
Si el modelo no imita perfe tamente la dinami a del pro eso, enton es
la sen~al de realimenta ion se ve in uida, tanto por los disturbios no medi-
bles, omo por el efe to de di ho error de modelado, lo que provo a una
realimenta ion real de di hos efe tos que podr an ondu ir al sistema a pro-
bables problemas de estabilidad. Este he ho es el que fuerza al disen ~ador a
desintonizar el ontrolador anti ipativo ideal on el n de lograr \robustez".
No interesando la te ni a que se emplee, los ontroladores siempre se
disen~an basados en la informa ion del omportamiento dinami o del pro e-
so y de los disturbios que a tuan sobre el mismo. La exa titud de di ha
informa ion var a, pero no llega a ser perfe ta. Por ello es deseable que el
ontrolador sea insensible a esta lase de errores de modela i on (in ertidum-
bres en el modelo); es de ir, que el ontrolador sea \robusto".
Del ap tulo 2 sabemos que el bloque de reten ion (o de memoria) de
orden ero tiene la forma:

1 e sT 1z 1
hr0(s) = = ; z = esT (7.9)
s s

Por otra parte, el bloque (s) representa un ltro que sirve para ortar las
omponentes de alta fre uen ia de las sen ~ales ontinuas antes del muestreo,
uando sea ne esario. Su fun i on de transferen ia debe ser estable; es de ir,
las ra es de su e ua ion ara ter sti a deben poseer parte real negativa. Las
rela iones siguientes son validas para la estru tura CMI:

r(z) = Z[r(s)℄ (7.10)


d(z) = Z[d(s)℄ (7.11)
d (z) = Z[ (s)d(s)℄ (7.12)
y(z) = Z[y(s)℄ (7.13)
e(z) = Z[y(s) r(s)℄ (7.14)
y (z) = Z[ (s)y(s)℄ (7.15)
p~(z) = Z[hr0 (s)p~(s) (s)℄ (7.16)
p (z) = Z[hr0(s)p(s) (s)℄ (7.17)
352 Control Robusto

d
r
- m - q(z)
u
- hr0(s) - p(s) - m
? y
-
6
?
(s)

- p~ (z) - m T

A
d
r
- m- q(z)
u
- hr 0(s) - p(s) - m
? y
-
6

- p~(s) - m
(s)
T
B
d
r
- m- q(z)
u
- p(s) - m
?
-
6 y
y~
- p~(s) - ?
m
C

Figura 7.3: Estru tura CMI. A: Estru tura muestreada. B: Estru tura equi-
valente a A pero no implementable. C: Estru tura dis reta.
7.2 Formula ion del Problema CMI 353

p~(z) = Z[hr0 (s)p~(s)℄ (7.18)


p(z) = Z[hr0(s)p(s)℄ (7.19)

Notar que la estru tura de la gura 7.3B presenta una on gura ion equiva-
lente a la estru tura mostrada en la 7.3A. La gura 7.3C ilustra el sistema
CMI ompletamente dis reto.

7.2 Formula ion del Problema CMI


Para disen
~ar el ontrolador dis reto q(z) debemos tener disponibles el mo-
delo del pro eso (que puede ser ontinuo o dis reto), los rangos de in er-
tidumbre del modelo, los tipos de entradas y los objetivos de rendimiento.

7.2.1 El Modelo del Pro eso


Los m etodos de identi a ion mas populares generan modelos de fun iones
de transferen ia de pulso. Tales fun iones son su ientes para disen ~ar el
sistema de ontrol, pero no permiten el analisis del omportamiento del sis-
tema entre puntos de muestreo, lo que puede ser signi ativamente peor que
el omportamiento en los mismos puntos. Como las in ertidumbres del mo-
delo se des riben en forma natural en el tiempo ontinuo, resulta enton es
onveniente tener el modelo ontinuo del pro eso que puede asumirse lineal e
invariante on el tiempo y on presen ia de tiempos muertos. Es importante
en esta parte men ionar la ara ter sti a ausal de los sistemas.

Sistema Causal y Estri tamente Causal: Un sistema g(z) es propio o


ausal si limz!1g(z) es nito. Un sistema propio es estri tamente propio si
limz!1g(z) = 0, y es semipropio si limz!1g(z) > 0. Todos los sistemas que
no son propios se denominan impropios o no ausales.

7.2.2 Des rip i on de In ertidumbres del Modelo


Hagamos que p(s) = p(j!) pertenez a a una familia de pro esos II de nida
por:
f j
II = p : p(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 i on del pro eso a tual p(j!) se ubique en
354 Control Robusto

una regi on ir ular a otada de radio ono ido `a(!), o de modo equivalente:

p(j!) = p~(j!) + `a (j!) (7.21)


j` (j!)j
a `a (!); 8p II (7.22)

La ota de la in ertidumbre multipli ativa ` m(!) del pro eso se de ne omo:

j
`m (!) = `a (!)= p~(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) = p~(s)q(esT ) , ~ (s) = 1 ~ (s); (s) = e(s) (7.25)
r r r
hr0(s)r (esT ) r(s)
donde ~r es la fun ion de sensitividad y ~r es la fun ion de sensitividad
omplementaria.

Ejemplo 7.1

Determinar las expresiones de p(s) y p~(s) para el pro eso servomotor D.C.
on arga no lineal variable des rito en la se ion 3.3 e ilustrado en la gura
3.9. La uni a in ertidumbre del pro eso a tener en uenta es la arga adi-
ional one tada a un extremo de la varilla (una esfera de radio R o y masa
Mo ), la ual puede variar entre 0 y 0.045 kg. En base a la respuesta al
es alon, ya sea del pro eso o de su modelo nominal, sele ione un tiempo
de muestreo ade uado y determine la fun i on de transferen ia de pulso p~(z)
del modelo nominal del pro eso.
Solu ion: El programa ejem7 1.m determina p(s) y p~(s) para el pro eso en
estudio. El resultado es el siguiente:
Kp 30:4696
p(s) = =
s2 + aps + bp s2 + 1:2707s + 14:4007
Kn 91:4375
p~(s) = =
s2 +
ans + bn s2 + 3:8133s + 17:9220
Observando las respuestas al es al on en la gura 7.4, podemos on luir que
un tiempo de muestreo de T = 0.05 s es su iente para poder apturar la
7.2 Formula ion del Problema CMI 355

urva de transi ion produ ida por la respuesta del pro eso al es al on. La
fun ion de transferen ia de pulso del modelo nominal del pro eso resulta:
b1 z + b2 0:1070z + 0:1004
p~(z) = =
z2 + a1z + a2 z2 1:7858z + 0:8264
% ejem7_1.m CALCULO DE p(s) Y DE SUS MODELOS NOMINALES pn(s) Y pn(z)
lear all
% PARAMETROS DEL PROCESO NO LINEAL
Lo = 0.776;
JL = 3.5e-7; bL = 1e-5; Ro = 0.01;
Jm = 1.9062e-6; bm = 1.8338e-6; g = 9.81;
E = 31.0352e-3; R = 7.38; m = 0.06377;
Ka t = 14.9; = 0.25; % Mo = 0,0.01,0.02,0.045; K =
31.071e-3; n = 19.741; L = 4.64e-3;
B = n^2*bm +bL; Jeff = n^2*Jm +JL;
% PROCESO p(s) (EL SUBINDICE p SIGNIFICA PROCESO)
Mo = 0.045;
M = Jeff + (1/3)*m*Lo^2 + Mo*Lo^2 + (2/5)*Mo*Ro^2;
N = g*Lo*(Mo+m/2);
Ap = [0 1;-N/M -(B + n^2*K*E/R)/M℄;
Bp = [0;n*K*Ka t/(R*M)℄;
Cp = [1 0℄; Dp = [0℄;
[nump,denp℄=ss2tf(Ap,Bp,Cp,Dp);
% nump(s)/denp(s) = p(s) = Kp/(s^2 + ap*s + bp)
Kp = nump(3); ap = denp(2); bp = denp(3);
% MODELO NOMINAL pn(s) (EL SUBINDICE n SIGNIFICA NOMINAL)
Mo=0.0;
M = Jeff + (1/3)*m*Lo^2 + Mo*Lo^2 + (2/5)*Mo*Ro^2;
N = g*Lo*(Mo+m/2);
An = [0 1;-N/M -(B + n^2*K*E/R)/M℄;
Bn = [0;n*K*Ka t/(R*M)℄;
Cn = [1 0℄; Dn = [0℄;
[numn,denn℄ = ss2tf(An,Bn,Cn,Dn);
% numn(s)/denn(s) = pn(s) = Kn/(s^2 + an*s + bn)
Kn = numn(3); an = denn(2); bn = denn(3);
% [Kp ap bp℄ = [30.4696 1.2707 14.4007℄
% [Kn an bn℄ = [91.4375 3.8133 17.9220℄
% MODELO NOMINAL DISCRETO pnz(z)
T = 0.05;
[numd,dend℄ = 2dm(numn,denn,T,'zoh');
% numd(s)/dend(s) = pnz(z) = (b1*z + b2)/(z^2 + a1*z + a2)
a1 = dend(2); a2 = dend(3);
b1 = numd(2); b2 = numd(3);
356 Control Robusto

% [a1 b1 a2 b2℄ = [-1.7858 0.1070 0.8264 0.1004℄


% GRAFICOS
subplot(2,1,1)
step(nump,denp)
xlabel('Tiempo en segundos')
ylabel('Respuesta del pro eso')
grid
subplot(2,1,2)
step(numn,denn)
ylabel('Respuesta del modelo')
xlabel('Tiempo en segundos')
grid
print -f -deps ejem7_1

4
Respuesta del proceso

0
0 1 2 3 4 5 6 7 8 9 10
Tiempo en segundos

8
Respuesta del modelo

0
0 0.5 1 1.5 2 2.5 3
Tiempo en segundos

Figura 7.4: Respuestas a la sen


~al es alon del pro eso y de su modelo nominal.

7.3 Control Robusto para Pro esos Estables

El pro edimiento de disen~o que se des ribe a ontinua ion es el mismo de-
sarrollado en [9℄ y se puede apli ar a pro esos estables de una entrada y
una salida. El sistema de ontrol robusto ilustrado en la gura 7.3 debe ser
internamente estable. Esto se logra si la planta p(s) y el ontrolador q(z)
son estables, asumiendo que el modelo del pro eso es perfe to (p~(s) = p(s)).
7.3 Control Robusto para Pro esos Estables 357

El pro edimiento de disen ~o onsta de dos pasos. En el primero, deno-


minado rendimiento nominal, se sele iona un ontrolador q~(z) que permita
obtener respuestas satisfa torias del sistema a entradas de inter es, sin tener
en onsidera ion restri iones e in ertidumbres en el modelo. En el segun-
do 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
La propiedad asintoti a de la respuesta a lazo errado del sistema de ontrol
robusto puede ser estable ida mediante el on epto de tipo del sistema. Un
sistema del tipo m, donde m es un entero no negativo, es aquel uya salida
sigue perfe tamente las entradas r(s) y d(s) (ver gura 7.3) uando t !1
,
siempre que tal sistema posea todos sus polos en el semiplano izquierdo del
plano-s, ex epto m o menos polos en s = 0. Si el sistema a lazo errado es
estable, las ondi iones ne esarias y su ientes para que el sistema sea del
tipo m, on m > 0, son:
n
lim d (1 p~(z)q(z)) = 0; 0 n<m (7.26)
z!1 dz n

n
lim d n (1 (s)) = 0; 0 n<m (7.27)
s!0 ds

Disen
~ o del Pre ltro (s)
El objetivo prin ipal del pre ltro (s) es ortar las omponentes de alta
fre uen ia para evitar la superposi ion de fre uen ias. Los ya ono idos
ltros de Butterworth y Bessel satisfa en la e ua ion (7.27) para m = 1.
Para m > 1 se puede emplear una simple modi a i on. Es ribamos:

(s) = 1(s) m(s) (7.28)

on:
m 1
m 1s + + 1s + 1
m(s) = (7.29)
( s + 1)m 1
en donde 1(s) es un pre ltro apropiado para m=1. Enton es, para un
espe o, podemos usar (7.27) para al ular los oe ientes 1 ; : : : ; m 1 .
358 Control Robusto

Cualitativamente m(s) adi iona algunas propiedades en ! = 0, sin afe tar


signi ativamente el omportamiento de 1(s) en las fre uen ias altas. Para
ello se re omienda usar un grande. Un ltro de segundo orden on m = 2
(entrada rampa) posee la forma:

!20
1(s) =
s2 + 2!0 s + ! 02

La solu ion de la e ua i on (7.27) determina que 1 = + 2 =!0. Para un


valor de su ientemente grande, el pre ltro m(s) no afe ta signi ativa-
mente el omportamiento de (s) en las altas fre uen ias.

Controlador Optimo de Norma Cuadrati a H2 : q~H (z)


El ontrolador optimo de norma uadrati a q~H (z) se disen
~a resolviendo el
siguiente problema de minimiza ion de norma uadrati a H2 :

min
q~H (z)
k e(z) k2 = q~min
H(z)
k (1 p~(z)q~H (z))v(z) k2 (7.30)

sujeto a la restri ion que q~H (z) sea estable y ausal. La minimiza ion de
la norma anterior resulta en el siguiente ontrolador:

q~H (z) = z(pM (z)vM (z)) 1


fz 1
p 1
A(z)vM (z) g (7.31)

donde el operador : fgdenota que luego de una expansi on en fra iones


par iales del operando, s olo seran retenidos los t erminos que sean estri ta-
mente propios y estables; es de ir, aquellos t erminos que posean polos que
se ubiquen dentro del r ulo unitario (in luso en z = 1). Notar tambi en que el
pro eso estable p~(z) ha sido fa torizado en una parte pasa todo p~A(z) y otra
parte de m nima fase p~M (z), omo sigue:

p~(z) = p~A (z)p~M (z) (7.32)

donde:
H1
p~A(z) = z N h (1 ( j ) )(z ) j
j=1 H ) 1)
(7.33)
(1 j )(z ( j

y j ; j = 1; : : : ; h son los eros de p~(z) que estan fuera del r ulo unitario.
El entero positivo N se sele iona de modo tal que p~M (z) sea semipropio; es
de ir, que el numerador y el denominador de p~M (z) posean el mismo grado,
lo que es equivalente a de ir que z N p~(z) sea semipropio.
7.3 Control Robusto para Pro esos Estables 359

La entrada v(z) tambi en se fa toriza en forma similar:

v(z) = vA(z)vM (z) (7.34)

on:
H1
vA(z) = z Nv hv (1 ( vj ) )(z ) vj
j=1 (7.35)
(1 vj )(z ( H ) 1)
vj

donde vj ; j = 1; : : : ; hv son los eros de v(z) que est an fuera del r ulo
unitario y el entero positivo Nv se sele iona de modo tal que zNv v(z) sea
semipropio. Notar que q~H (z) debe ser estable y ausal. Sin embargo, debido
a su ara ter dis reto, este ontrolador puede presentar problemas de om-
portamiento en las intermuestras (entre puntos de muestreo) ausadas por
los polos de q~H (z) er anos al punto ( 1; 0). Por onsiguiente, es ne esario
realizar una modi a ion del ontrolador q~H (z).
La tabla 7.1 muestra la expresion del ontrolador q~H (z) para algunas
entradas t pi as.

Tabla 7.1: Controlador q~H (z) para algunas entradas t pi as.

v(s) v(z) Controlador q~H (z)

1 z 1
s z1 (p~M (z))

1 z= 1 (p T= 1
s+1 z e T=
(p~M (z)) ~ A (e ))

1
1 z(1 eT= ) 1 (1 p~A (e
T=
)e T=
)z+(p~A1 (e T= ) 1)e T=

s( s+1) (z 1)(z e T = )
(p~M (z)) (1 e T = )z

1 Tz 1 (N + +1)z N
(z 1)2
(p~M (z)) z
s2

donde: , d 1
~A (z)z N ) z=1
dz (p j
=
P h ( )jH 1
j=1 (1 )(1j ( ) ) H1
j
j
360 Control Robusto

Ejemplo 7.2

Determinar el ontrolador optimo uadrati o q~H (z) para el pro eso p(z) del
ejemplo 7.1, asumiendo que la entrada v(s) es un es alon.
Solu ion: Del ejemplo 7.1 ono emos p~(z) para T = 0.05 s:
b1 z + b2
p~(z) =
z2 + a1z + a2

Ademas, se debe umplir que p~(z) = p~A (z)p~M (z), de modo tal que z N p~(z)
sea semipropio y por onsiguiente, N = 1. El ero b2 =b1 = -0.9874 de p~(z)
se ubi a dentro del r ulo unitario; enton es j = 0 y:

1 p~(z) z(b1z + b2)


p~A (z) = z ; p~M (z) = = 2
p~A (z) z + a1z + a2
z
Empleando ahora la tabla 7.1 para v(z) = obtenemos:
z1

1 z2 + a1z + a2
q~H (z) = (p~M (z)) =
z(b1z + b 2)

Disen
~ o del Controlador CMI q~(z)
Deseamos obtener el ontrolador CMI q~(z) postulando:

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 m nimo tiempo de estabiliza ion. B(z) se sele iona para
preservar el tipo m del sistema.
Sean i ; i = 1; : : : ; , los polos de q~H (z) on parte real negativa. Enton es
podemos es ribir:
zi
q~(z) = z i=1 1 k (7.37)
i

B(z) = X
m 1
biz j
(7.38)
i=0

donde m es el tipo del sistema y los oe ientes bi; i = 0; : : : ; m 1, se sele -


ionan de modo tal que q~(z) satisfaga la e ua ion (7.26). Por onstru ion,
7.3 Control Robusto para Pro esos Estables 361

q~H (z) tambien umple on la e ua ion (7.26). Por onsiguiente, q~(z) debe
satisfa er la e ua i on (7.26) s y s olo si:
n
lim d (1 q~ (z)B(z)) = 0; n = 0; 1; : : : ; m 1 (7.39)
z!1 dz n

Para los asos espe iales m = 1 y m = 2 se puede obtener:

B(z) = 1; m=1 (7.40)

B(z) = X
m 1
b iz i
= b0 + b 1 z 1 ; m=2 (7.41)
i=0

b0 = 1 b 1; b1 = X 1
i

i
(7.42)
i=1

Ejemplo 7.3

Determinar el ontrolador CMI q~(z) sabiendo que el pro eso p(z) del ejemplo
7.1 es del tipo m = 1. Tener en uenta que la entrada v(s) es un es alon.
Solu ion: Sabemos que q~(z) = q~H (z)q~ (z). Para m = 1, B(z) = 1. Los
polos de q~H (z) son z = 0 y z = b2 =b1 = -0.9874. Enton es, = 1 (un polo
on parte real negativa que hay que sustituir on un polo en el origen), i =1
y i = 1 = b2=b1, de modo que:

zj 1z 1
q~(z) = z j=1
=z
1 kj 1 k1

Luego:
z2 + a1z + a2
q~(z) = q~H (z)q~ (z) =
(b1 + b2)z 2

7.3.2 El Filtro Dis reto CMI


El ontrolador disen~ado q~(z) debe ahora ser aumentado on un ltro pasa
bajo f (z) de modo tal que q(z) = q~(z)f (z). La estru tura y los par ametros
del ltro se determinan para que se al an e un ompromiso optimo entre
rendimiento y robustez. La forma m as simple de f (z) es:

(1 )z
f (z) = (7.43)
z
362 Control Robusto

El ltro f (z) debe preservar las propiedades asint oti as del sistema de lazo
errado; es de ir, la e ua ion (7.26). Por onsiguiente, para que el sistema
sea del tipo m, el ltro f (z) debe satisfa er:

dn (1 f (z)) = 0; 0 n<m (7.44)


dzn z=1

Para un sistema del tipo m = 1, el ltro de la e ua ion (7.43) umple


el requerimiento anterior: f (1) = 1. Sin embargo, para m 2 se debe
postular:
(1 )z
f (z) = ( 0 + 1 z 1 + + w z w) (7.45)
z
donde los oe ientes 0; : : : ; w se sele ionan de modo tal que satisfagan
la e ua ion (7.44). Para m = 2 y w 2 se ha determinado que:
6k
k= ; k = 1; : : : ; w (7.46)
(1 )(w + 1)(2w + 1)

7.3.3 Estabilidad Robusta


Disen
~ o del Filtro
La ondi ion de estabilidad robusta se estable e en terminos del ontrolador
CMI q(z) = q~(z)f (z). Asumiendo que todos los pro esos p(s) en la familia
II son estables, que q(z) es estable y que (z) est rela ionado on q(z)
por la e ua i on (7.7), enton es los sistemas en las guras 7.2A y 7.3A son
robustamente estables, si y s olo si:

jf (e )j < jp~(e
j!T j!T
)q~(ej!T )`m (!) j 1
; 0 !
T
: (7.47)

donde `m(!) representa la ota de la in ertidumbre multipli ativa. Para un


buen rendimiento del sistema, las in ertidumbres tienen que ser a otadas.
Una simple espe i a ion de rendimiento requiere que el sistema de lazo
errado sea del tipo m = 1; es de ir, que f (1) = p~(1)q~(1) = (0) = 1.
Como orolario de la e ua i on (7.47), podemos a rmar que si la in er-
tidumbre multipli ativa ` (!) es ontinua, enton es existe un ltro f (z) para
el ual el sistema a bu le errado sea del tipo m = 1, as omo tambi en robus-
tamente estable para la familia de pro esos II. Esto, siempre que `m(0) < 1,
donde `m(0) es el error multipli ativo en estado estable del sistema ontinuo.
Una forma simple de disen ~ar el ltro CMI es emplear un ltro f (z) on
la estru tura dada en la e ua ion (7.45) y luego variar el par ametro de
7.3 Control Robusto para Pro esos Estables 363

modo tal que se satisfaga la e ua i on (7.47). Esta e ua ion pone una ota
inferior a . Di ha ota tambi en se puede obtener del gra o de Bode
de:
j j
( p~(ej!T q~(eiwT ) `m (!)) 1 (7.48)
Si esta antidad nun a es menor que 1, enton es = 0. Si se obtuvieran
valores menores que 1, puede ser determinada a partir del gr a o de
Bode de f (z). Este gr a o resulta pra ti amente similar al obtenido on el
ltro de primer orden dado en la e ua ion (7.43), siempre que el numero de
oe ientes w en la e ua ion (7.45) sea su ientemente grande. Por ejemplo,
j j
si ( p~(ej!T q~(eiwT ) `m (!)) 1 de re e en la forma que lo ha e un sistema de
primer orden, hasta al anzar un valor de 0:7 en ! = !`, enton es:
T w`
=e (7.49)

Efe to del Muestreo


Un in remento de la onstante de tiempo del ltro redu e el an ho de
banda del sistema nominal. Grandes valores del tiempo de muestreo T
tambi en redu en el an ho de banda debido a que si es ribimos la e ua i on
(7.47) omo:
j j j j
p~(j!)q~(ej!T )f (ej!T ) < p(j!) `a (!) (7.50)
podemos observar que el an ho de banda del t ermino de la izquierda puede
ser redu ido in rementando en f (z) o dejando f (z) = 1 y aumentando T .

7.3.4 Rendimiento Robusto


Para rendimiento robusto, el ontrolador tiene que ser disen
~ ado para que:

j j
M (w) , q^(j!) `a (!) + 1 j j
p~(j!)q^(j!) W (!) < 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 i on de W (w) depende de los requerimientos de
rendimiento impuestos por el disen ~ador. Es razonable usar la fun i on de
sensitividad ideal (s) = p~(s)q~(s) omo una gu a para la busqueda de W (!):

W (!) 1
j1 p~(j!)q~(j!) j (7.52)
364 Control Robusto

Para que la ondi i on anterior resulte una fun i on propia (requerimiento que
tambi en es ne esario para ualquier W (w)), se deben umplir las ondi iones
siguientes para m 1:

1
W( ) 1
1; W (0) 1
0 (7.53)

Ejemplo 7.4

Determinar una fun ion de peso ade uada para el pro eso servomotor D.C.
sujeto a argas no lineales (ver ejemplos 7.1, 7.2 y 7.3).
Solu ion: Podemos sele ionar la siguiente fun ion de peso:
1 0:5s + 1
W (s) = 0:4 ; s = j!
0:1s + 1
que umple las ondi iones estable idas en la e ua i on (7.53). Sin embargo,
se re omienda emplear la forma general dada en la e ua ion (7.52), debido a
que nos permite ambiar la magnitud de la fun i on de peso usando un fa tor
multipli ativo, siempre que no se sobrepase la ondi ion dada en (7.52).
Esta forma de variar la fun ion de peso propor iona mayor exibilidad en
el pro eso de veri a i on del rendimiento robusto, tal omo veremos mas
adelante.

Disen
~ o del Filtro
La forma m as simple de disen~ar el ltro f (z) es espe i ar su estru tura dada
en la e ua i on (7.45) y luego tratar de satisfa er la e ua i on (7.51) varian-
do el parametro . In rementando , el primer t ermino de M (w) de re e
mientras que el segundo t ermino re e. Por onsiguiente, dependiendo de `a
y W , podr a no existir un valor de para que la e ua i on (7.45) sea satis-
fe ha. Asumiendo que q~(z) y f (z) se sele ionan de modo tal que el sistema
j
resulte del tipo m = 1 (para el ual se umple que p~(z)q~(z)f (z) z=1 = 1) o
mayor, y que `m(0) < 1, enton es, siempre es posible onseguir rendimiento
robusto para ! = 0 y para ualquier peso W (!).
El parametro debe ser sintonizado para que se satisfagan las ondi-
iones dadas en las e ua iones (7.47) y (7.51). Desde que es posible imponer
la ota inferior de , enton es, para determinar di ho par ametro, debe-
mos resolver el siguiente problema de optimiza ion:

min max M (!) , (T ) (7.54)


1 0 ! =T
7.3 Control Robusto para Pro esos Estables 365

donde se ha introdu ido el argumento T en para indi ar que el valor


optimo de la fun ion objeto depende del tiempo de muestreo T .

Ejemplo 7.5

Disen~ar el ltro f (z) para el pro eso servomotor D.C. usando los resultados
de los ejemplos 7.1 al 7.4. Veri ar que se umplan las ondi iones de estabil-
idad y rendimiento robustos. Asumir: `m (!) j j
`m (ei! ) y `a (!) j j
`a (!) .

Solu i on: Como el sistema es del tipo m = 1, enton es: f (z) = (1z )z .
Para determinar la estabilidad robusta del pro eso, empleamos la e ua ion
(7.51) on diferentes valores de , tal omo lo al ula el programa ejem7 5.m.
Podemos omprobar que la estabilidad robusta para el aso que nos o upa,
se preserva para ualquier valor de entre 0 y 1. El mismo programa deter-
mina el rendimiento robusto del pro eso. En el gr a o de magnitudes de la
gura 7.5, podemos observar que para = 0.9 se umplen las ondi iones
de estabilidad y rendimiento robustos. Este valor de es la solu ion al
problema de optimiza ion planteado en la e ua i on (7.54). Notar que en la
veri a ion del rendimiento robusto estamos empleando un fa tor de 0.5 en
la fun i on de peso W (s).
% ejem7_5.m ESTABILIDAD ROBUSTA Y RENDIMIENTO ROBUSTO
lear all
% PARAMETROS DEL PROCESO NO LINEAL
Lo = 0.776;
JL = 3.5e-7; bL = 1e-5; Ro = 0.01;
Jm = 1.9062e-6; bm = 1.8338e-6; g = 9.81;
E = 31.0352e-3; R = 7.38; m = 0.06377;
Ka t = 14.9; = 0.25; % Mo=0,0.01,0.02,0.045; K =
31.071e-3; n = 19.741; L = 4.64e-3;
B = n^2*bm +bL; Jeff = n^2*Jm +JL;
% PROCESO p(s)
Mo = 0.045;
M = Jeff + (1/3)*m*Lo^2 + Mo*Lo^2 + (2/5)*Mo*Ro^2;
N = g*Lo*(Mo+m/2);
Ap = [0 1;-N/M -(B + n^2*K*E/R)/M℄;
Bp = [0;n*K*Ka t/(R*M)℄;
Cp = [1 0℄; Dp = [0℄;
[nump,denp℄=ss2tf(Ap,Bp,Cp,Dp);
% nump(s)/denp(s) = p(s) = Kp/(s^2 + ap*s + bp)
Kp = nump(3); ap = denp(2); bp = denp(3);
% PROCESO DISCRETO pz(z)
T = 0.05;
[numdp,dendp℄ = 2dm(nump,denp,T,'zoh');
366 Control Robusto

% numdp(s)/dendp(s) = pnz(z) = (bp1*z + bp2)/(z^2 + ap1*z + ap2)


ap1 = dendp(2); ap2 = dendp(3);
bp1 = numdp(2); bp2 = numdp(3);
% MODELO NOMINAL pn(s)
Mo=0.00;
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);
% 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);
% CHEQUEANDO ESTABILIDAD ROBUSTA
alfa = 0.955;
for w = 0:pi/T
s=i*w; z=exp(s);
pnz = (b1*z+b2)/(z^2+a1*z+a2);
pz = (bp1*z+bp2)/(z^2+ap1*z+ap2);
laz = pz - pnz;
lmz = laz/pnz;
qt = (z^2 + a1*z + a2)/((b1 + b2)*z^2); % qt <> q~
mag_dB(w+1) = 20*log10(1/(abs(pnz*qt*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 = Kn/(s^2 + an*s + bn);
p = Kp/(s^2 + ap*s + bp);
la = p - pn;
lm = la/pn;
qt = (z^2 + a1*z + a2)/((b1 + b2)*z^2); % qt <> q~
f = (1-alfa)*z/(z-alfa);
q = qt*f;
7.3 Control Robusto para Pro esos Estables 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 2

30 0

−2
20

−4
Magnitud de M en dB

10
Magnitudes en dB

−6
0
−8

−10
−10

−20
−12

−30 −14

−40 −16
100 101 102 100 101 102
Frecuencia angular (rad/s) Frecuencia angular (rad/s)

j j
Figura 7.5: (a) Magnitudes de p~q~` 1 y f (z) (en trazos) para veri ar la j j
estabilidad. (b) Magnitud de M para veri ar el rendimiento robusto.
368 Control Robusto

Sele ion del Tiempo de Muestreo

Cuando el tiempo de muestreo es su ientemente pequen ~o, enton es el sis-


tema dis reto tiende a omportarse omo uno ontinuo, in rementandose de
esta manera el rendimiento nominal del sistema. Sin embargo, el osto om-
puta 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 onsi-
guiente, 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, podr a 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 al on del pro eso para poder sele ionar
un tiempo T su ientemente pequen ~ o, 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

Simular el sistema de ontrol robusto disen


~ado en los ejemplos 7.1 al 7.5.
Solu ion: Ver el diagrama de disen ~o en la gura 7.6 (ar hivo ejem7 6a.m) y
los resultados de la simula ion en la gura 7.7. Los gr a os se realizan
on el programa ejem7 6b.m.

7.4 Control Robusto para Pro esos Inestables

Para ontrolar pro esos on omportamiento inestable se tiene que emplear


la estru tura l asi a ilustrada en la gura 7.1. Asumiendo que el modelo del
pro eso es perfe to, es de ir, que p(s) = p~(s), y ademas que p(s) y p~(z)
posean polos inestables 1; : : : ; k , la estabilidad interna del sistema de la
gura 7.1 (donde = q(1 p q) 1) queda garantizada, siempre que q(z) sea
estable y que (1 p (z)q(z) posea eros en 1; : : : ; k.
7.4 Control Robusto para Pro esos Inestables 369

Mux
+ z2+a1.z+a2 (1−alfa)z Kp
− (b1+b2)z2 z−alfa u s2+ap.s+bp q Gráfico
Sum1 Controlador q~(z) Mux
Filtro Proceso p(s)
u_ej7_6 q_ej7_6
control Kn posición
referencia s2+an.s+bn
.
Modelo nominal pn(s) − + Sum2

Figura 7.6: Diagrama de bloques para la simula ion del sistema de ontrol
robusto disen
~ado.

0.8
Posición en rad

0.6

0.4

0.2

0
0 1 2 3 4 5 6 7 8 9 10
Tiempo en segundos

0.3
Control en voltios

0.2

0.1

0 1 2 3 4 5 6 7 8 9 10
Tiempo en segundos

Figura 7.7: Resultado de la simula ion del sistema de ontrol robusto


disen
~ado en los ejemplos 7.1 al 7.5.
370 Control Robusto

7.4.1 Rendimiento Nominal


El pro edimiento de disen ~ o del ontrolador robusto para pro esos inestables,
es el mismo que para pro esos estables. Primero se disen~a 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 `. De namos:

bp(z) = (1 ( jH )1 )(z ) j
j=1 (7.55)
(1 j)(z ( H ) 1 ) j
y fa tori emos la planta en una por i on pasa todo p A(z) y otra por i on
semipropia de m nima fase p M (z) (ver la subse i on 7.3.1):
p~(z) = p~A (z)p~M (z) (7.56)
De manera an aloga fa tori emos la entrada v(z):
v(z) = vA(z)vM (z) (7.57)
Asumamos ahora sin perdida de generalidad, que los polos inestables de v(z)
ubi ados fuera del CU son los primeros 1 polos j del pro eso, y de namos:
H1
1 (1 ( j ) )(z ) j
bv(z) = (7.58)
j=1 H 1)
(1 j)(z ( ) j

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(zb (z)p (z))
p A
1
bv (z)vM (z) g (7.59)
fg
donde el operador : 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 p A(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.
7.4 Control Robusto para Pro esos Inestables 371

Disen
~ o del Controlador CMI q~(z)

El ontrolador CMI tiene la forma:

q~(z) = q~H (z)q~ (z)B(z) (7.60)

donde q~ (z) an ela todos los polos i , i = 1; : : : ; de q~H (z) que posean
parte real negativa, y los sustituye on polos en el origen. De esta forma,
el sistema tiende a ontrolarse on m nimo tiempo de estabiliza ion. El
ontrolador q~(z) se formula omo:

zi
q~(z) = z i=1 1 (7.61)
ki

Sean i, i = 1; : : : ; , las ra es inestables (in luyendo z=1) on multi- pli


idad mi orrespondientes al m nimo denominador omu n 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 inter-
na pueden ser uni ados mediante la rela ion siguiente:

dk
(1 q~ (z)B(z)) = 0; k = 0; : : : ; mi 1; i = 1; : : : ; (7.62)
dzk z= i

Se puede formular adem as:

B(z) = X
M1
bjz j
(7.63)
j=0

M= X mi (7.64)
i=1

y omputar los oe ientes bj , j = 0; : : : ; M 1 de (7.63). Notar que (7.62)


da lugar a M e ua iones lineales on M in ognitas b0; b1; : : : ; b M 1 ; di ha
e ua i on es equivalente a:

dk 1 1
(1 q~( )B( )) = 0; k = 0; : : : ; mi 1; i = 1; : : : ; :
d k = 1
i
(7.65)
372 Control Robusto

7.4.2 El Filtro Dis reto CMI


La estru tura mas simple del ltro es:
(1 )z
f1(z) = (7.66)
z
En general, el ltro f (z) debe satisfa er los requerimientos siguientes:
1. Seguimiento asintoti o a entradas externas al sistema (referen ias y/o
disturbios). Es de ir, (1 p(z)q(z)f (z))v(z) debe ser estable.

2. Estabilidad interna. En esta situa ion, q~(z)f (z) y (1 p~(z)q~(z)f (z))


deben ser estables.
Dado que q~(z) umple los requerimientos anteriores para f (z) = 1, en-
ton es:
dk
(1 f (z)) = 0; k = 0; : : : ; mi 1; i = 1; : : : ; (7.67)
dzk z= i

donde i y mi ya fueron de nidos anteriormente. Notar que uando k = 0,


f (z) = 1 para z = 1; : : : ; . En otro aso, el ltro se es oge de:

f (z) = (z)f1(z) (7.68)

donde:
(z) = X
!
jz
j
(7.69)
j=0

Los oe ientes 0 ; : : : ; ! se sele ionan de modo tal que para un determi-


nado , 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 i on trivial.

7.4.3 Estabilidad y Rendimiento Robustos


Los requerimientos a satisfa er para garantizar estabilidad y rendimiento
robustos son los mismos que rigen para pro esos estables. Tales requisitos
fueron desarrollados en las subse iones 7.3.3 y 7.3.4. Resumiendo, para
garantizar estabilidad robusta se debe umplir:

jf (e )j < jp~(e
j!T j!T
)q~(ej!T )`m (!) j 1
; 0 !
T
: (7.70)
7.5 Pro edimiento de Disen
~o 373

Para garantizar rendimiento robusto se tiene que umplir:

jq^j`a + j1 j
p~q^ W 1; 0 ! =T (7.71)

donde:
q^(s) = q~(esT )f (esT )Z[hr0 (s)℄ (7.72)
El disen
~o del pre ltro (s) se trato en la subse ion 7.3.1

7.5 Pro edimiento de Disen


~o
El pro edimiento para disen
~ar un sistema de ontrol robusto dis reto on
estru tura CMI es omo sigue:
1) Formular el problema (de nir espe i a iones de disen
~o).
2) Usando toda la informa i on disponible a er a del pro eso no lineal,
determinar el modelo de la planta on sus in ertidumbres y de nir los
tipos de las entradas (subse ion 7.2).
3) Sele ionar la fre uen ia de muestreo (subse ion 7.3.4), analizando
las respuestas al es alon del pro eso y del modelo nominal del mismo.
4) Disen~ar el ontrolador optimo uadr ati o q~H (z). Para pro esos esta-
bles ver la subse ion 7.3.1 (en esta subse i on tambi en se en uentra el
pro edimiento para disen ~ ar el pre ltro (s)). Para pro esos inestables
ver la subse ion 7.4.1.
5) Disen
~ar el ontrolador CMI: q~(z). Para pro esos estables ver la sub-
se i on 7.3.1. Para pro esos inestables ver la subse ion 7.4.1.
6) Disen
~ar la fun ion de peso W (subse ion 7.3.4, para ambos asos).
7) Disen~ar el ltro dis reto CM I. Para pro esos estables, ver la subse -
ion 7.3.2, omprobar que se umplan los requerimientos de estabilidad
robusta y rendimiento robusto (subse iones 7.3.3 y 7.3.4). Para pro-
esos inestables, ver subse ion 7.4.2, omprobar que se umplan los
requerimientos de estabilidad robusta y rendimiento robusto (subse -
ion 7.4.3).

8) Simular el sistema de ontrol robusto.


9) Implementar el hardware del sistema de ontrol.
374 Control Robusto

10) Implementar el software de ontrol.

11) Realizar pruebas de fun ionamiento (resultados experimentales).

7.6 Control Robusto de un Servomotor No Lineal


Siguiendo el pro edimiento formulado, esta se i on presenta el disen
~o de un
sistema de ontrol robusto para ontrolar la posi i on de un servomotor D.C.,
sujeto a argas no lineales.

7.6.1 Formula i on del Problema


El servomotor D.C. on arga no lineal mostrado en la gura 3.9 y des rito en
la se ion 3.3, es un pro eso de una entrada y una salida. Este servomotor
posee un engranaje redu tor de velo idad y puede ser ontrolado por el
voltaje de armadura. La arga no lineal es una varilla met ali a a oplada
perpendi ularmente al eje del servomotor (a manera de un brazo roboti o de
un grado de libertad). En el extremo libre de di ha varilla se pueden a oplar
argas adi ionales. De esta manera la arga no lineal se ha e variable.
El objetivo de ontrol es disen ~ar e implementar un sistema de ontrol
robusto empleando una ley de ontrol CMI (Control de Modelo Interno),
de modo tal que la varilla se posi ione en una referen ia predeterminada.
El sobreimpulso de la respuesta debe ser m nimo no obstante la presen ia
de la arga no lineal variable y de las no linealidades del pro eso omo son
las fri iones (est ati a y de Coulomb) y la satura ion en el ampli ador del
servomotor.

7.6.2 Disen
~ o del Sistema de Control Robusto
Los pasos (2) al (7) del pro edimiento de disen
~o fueron ubiertos en los
ejemplos 7.1 al 7.5.

7.6.3 Simula ion del Sistema de Control Robusto


La simula ion realizada en el ejemplo 7.6 onsider una planta p(s) lineal.
En la siguiente simula ion, la planta a onsiderar es su modelo no lineal, on el
an
~adido de dos bloques de satura i on (para evitar saturar el ampli ador
de poten ia) mas una sen ~al de realimenta ion que es propor ional al torque
no lineal produ ido por la arga no lineal. No se est onsiderando el efe to
7.6 Control Robusto de un Servomotor No Lineal 375

de la fri ion de Coulomb, que tambi en es un omponente no lineal, debido


a que tal efe to ser ompensado mediante software, omo veremos mas
adelante. El diagrama de simula ion, programa disrob1.m, se muestra en
la gura 7.8, mientras que el resultado de la simula i on se puede ver en la
gura 7.9. Para efe tuar la simula i on on el programa disrob1.m, se debe
eje utar previamente el programa disrob2.m.

+ z2+a1.z+a2 (1−alfa)z u Mux


− (b1+b2)z2 z−alfa
S1 Saturación 1 Graph
Controlador q~(z) Filtro
Mux

Kn
Referencia s2+an.s+bn
u_disrob Saturación 2
Modelo nominal pn(s) − + S2
Control

Kact + n*K 1 w 1 q
− +
R Ms+B s
gan5 −
S3 Subsistema Subsistema Integrador
eléctrico S4 mecánico q_disrob
n*E
MATLAB Salida
gan2 N Function
gan3 Seno

Figura 7.8: Diagrama de bloques para la simula ion del sistema de ontrol
robusto disen
~ado, onsiderando el modelo no lineal del pro eso.

7.6.4 Implementa ion del Hardware

El hardware empleado en la implementa ion en tiempo real del sistema de


ontrol robusto es similar al empleado para la implementa ion en tiempo real
de los sistemas de ontrol adaptivo, predi tivo y no lineal. Di ho hardware
se des ribe en detalle en la subse ion 5.6.8.
376 Control Robusto

Posición en rad
0.5

0
0 2 4 6 8 10 12 14 16 18 20
Tiempo en segundos

0.25

0.2
Control en voltios

0.15

0.1

0.05

0
0 2 4 6 8 10 12 14 16 18 20
Tiempo en segundos

Figura 7.9: Resultado de la simula ion del sistema de ontrol robusto em-
pleando el modelo no lineal del pro eso.

7.6.5 Implementa ion del Software

El software de ontrol empleado en la implementa i on en tiempo real del


sistema de ontrol robusto posee la misma estru tura que el software de
ontrol empleado para la implementa ion en tiempo real de los sistemas de
ontrol predi tivo y no lineal. La estru tura de di ho software se des ribe en
detalle en la subse ion 6.7.7. El diagrama de ujo del software de ontrol
se muestra en la gura 6.13.
El software usado para la implementa i on del algoritmo de ontrol de
posi ion emplea el lenguaje C y se eje uta en una PC Pentium. Los progra-
mas ne esarios para el ontrol se estru turan en tres ar hivos: R1LLIB.H,
R1LLIB.CPP y ROB.CPP. El ar hivo ROB.CPP es el que ontiene el algo-
ritmo 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 i on
de un proye to denominado ROB.PRJ, en donde intervienen los ar hivos
men ionados en el p arrafo anterior. A ontinua i on se presenta el listado del
programa ROB.CPP. El listado de los programas R1LLIB.H y R1LLIB.CPP
fueron presentados en la subse ion 6.7.7.
7.6 Control Robusto de un Servomotor No Lineal 377

/* ROB.CPP Programa del sistema de ontrol robusto para pro eso


on arga maxima y referen ia de 45 grados. 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>
onst float ESCALA= 2.*M_PI/(512.*19.7);

/* De lara ion de las fun iones propias del programa */


void Ini ializa_Sistema();
void Mide_Variables
(float *x1k, float *xn1, float *r, float *vel, float t);
float Apli a_Control(float u, float ykp);

/* De lara ion de las variables globales */


float a1, a2, b1, b2, alfa, N;
float x1, xn1, yant, r, w; //x2;
float x1p, xn1p, xn1pp;
float T;
float t, tsimul;
float Fs;
int p0, pk;
float V FC, Ofst;
float ep, epp, e;
float up, upp;

/***************** FUNCIONES ************/


float Apli a_Control(float u, float ykp)
{
float v;
if(u<0.) v = -V FC;
else if(u>0.) v = V FC;
if(u+v<-1.4) u= -1.4;
else if(u+v>1.4) u= 1.4;
EnviarVoltage(u+v+Ofst);
return u;
}
void Ini ializa_Sistema()
{
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);
}
7.6 Control Robusto de un Servomotor No Lineal 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

gotoxy(21,19);printf("error de posi .: e=%+5.3f",e*180./M_PI);


gotoxy(15,21);printf("****************************************");
if(kbhit()) if(get h()==27) break;
}
ant=a t;
}
EnviarVoltage(Ofst);
out=fopen("rob.out","wt");
for (int i=0; i<n/5; i++)
fprintf(out,"%10f %10f %10f %10f %10f\n",
i*5*T, rb[i℄, x1b[i℄, ub[i℄, rb[i℄-(x1b[i℄-xn1b[i℄));
delete rb, x1b, xn1b, ub;
f lose(out);
}

7.6.6 Resultados Experimentales


La iner ia de la arga no lineal puede variar desde J = 0.007047 kg-m2
( orrespondiente a la varilla sin arga adi ional), hasta un valor m aximo de
2.98J ( orrespondiente a la varilla on una arga esf eri a de magnitud Mo
= 0.045 kg). Para mayores detalles a er a de la arga no lineal variable, ver
la subse ion 6.7.8.
El sistema de ontrol robusto debe ser apaz de estabilizar la posi i on
de la arga no lineal para varia iones de su iner ia omprendidas entre J
y 2.98J. La gura 7.10 muestra el resultado experimental del ontrol de
posi ion robusto para una referen ia de 45 o en presen ia de arga m axima.
Podemos observar que la respuesta del sistema muestra sobreimpulso nulo,
un tiempo estabiliza ion menor que 4 s y error en estado estable nulo.

7.7 Problemas Resueltos


En la se i on problemas resueltos de los ap tulos 4 al 8, la solu ion a los
problemas se en uentra, segu n el aso, en uno o m as ar hivos on extension
m es ritos en odigo MATLAB.

Problema 7.1

El problema 3.2 presenta las e ua iones que gobiernan la din ami a longi-
tudinal de un avion omer ial volando a velo idad de ru ero (altura y ve-
lo idad onstantes). El ontrol del angulo de in lina i on del avion (ver
7.7 Problemas Resueltos 381

50

40

Posición (grados)
30

20

10

0
0 5 10 15 20 25 30 35 40 45 50
Tiempo en segundos

0.2
Señal de control (voltios)

0.15

0.1

0.05

0
0 5 10 15 20 25 30 35 40 45 50
Tiempo en segundos

Figura 7.10: Resultado experimental del sistema de ontrol de posi ion ro-
busto del servomotor D.C. sujeto a una arga no lineal maxima.

gura 3.14) es un problema longitudinal a resolver. El objetivo de ontrol es


enton es disen~ar un autopiloto que manipulando el angulo Æe del de e tor
de eleva ion, ontrole el angulo de in lina i on del avi on. Se pide disen ~ar
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 i on 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
disen
~ado debe ser del tipo m = 1. La sele ion del tiempo de muestreo es a
onvenien ia del disen~o. Asumir: `m (!) `m (ei! ) y `a (!) `a (ei! ) . j j j j
Solu i on: Los rangos de varia i on de los par ametros se muestran en el
programa p4rob1.m, al igual que el pro edimiento en detalle para disen~ar
el ontrolador robusto uando la entrada v es un es al on. La gura 7.12
(ar hivo p4rob1s.m) es el diagrama de bloques empleado en la simula ion
del sistema disen
~ado y requiere que previamente se eje ute el programa
p4rob1.m. Los resultados de la simula i on se muestran en la gura 7.13
(obtenida on el ar hivo p4rob1r.m). El sistema disen~ado umple los reque-
rimientos de estabilidad y rendimiento robustos, tal omo se apre ia en la
gura 7.11.
382 Control Robusto

% p4rob1.m SOLUCION AL PROBLEMA 7.1


lear all
% FT (FUNCION DE TRANSFERENCIA) DEL PROCESO:
% theta/deltae=(1.151s+0.1774)/(s^2+0.739s^2+0.921s) -->dato
% theta/deltae=(a*s+b)/(s^3+ *s^2+d*s): ESTRUCTURA DE LA FT
% SE DESEA ROBUSTEZ EN TODOS LOS PARAMETROS:
an=1; bn=0.1; n=0.7; dn=0.9; % PARA EL PROCESO NOMINAL
numn=[0 0 an bn℄; denn=[1 n dn 0℄;
% pn=(an*s+bn)/(s^3+ n*s^2+dn*s)
ap=1.2; bp=0.2; p=0.8; dp=0.95; % PARA EL PROCESO
nump = [0 0 ap bp℄; denp=[1 p dp 0℄;
% p= (ap*s+bp)/(s^3+ p*s^2+dp*s)
% MODELO NOMINAL DISCRETO pnz(z)
T = 0.3;
[numd,dend℄ = 2dm(numn,denn,T,'zoh');
% numd(z)/dend(z) = pnz(z) = (b1*z^2+b2*z+b3)/(z^3+a1*z^2+a2*z+a3)
a1=dend(2); a2=dend(3); a3=dend(4);
b1=numd(2); b2=numd(3); b3=numd(4);
% PROCESO DISCRETO
[numdp,dendp℄ = 2dm(nump,denp,T,'zoh');
% numdp(z)/dendp(z) = pz(z) = (bp1*z^2+bp2*z+bp3)/...
% (z^3+ap1*z^2+ap2*z+ap3)
ap1=dendp(2); ap2=dendp(3); ap3=dendp(4);
bp1=numdp(2); bp2=numdp(3); bp3=numdp(4);
% DETERMINACION DE pnz(z)=pA(z)*pM(z):
% roots(numd): 0.9704 y -0.9416
% COMO pnz NO POSEE CEROS FUERA DEL CU, Y COMO z^N*pnz
% DEBE SER SEMIPROPIO, N=1; LUEGO pA=z^(-1) Y
% pM=pnz/pA=z*(b1*z^2+b2*z+b3)/(z^3+a1*z^2+a2*z+a3)

% CALCULO DE v(z)=vA(z)*vM(z)=z/(z-1) PARA UNA ENTRADA ESCALON:


% vA=1; vM=z/(z-1)
% CALCULO DE qtilde_H=z(pM*vM)^(-1){z^(-1)pA^(-1)vM}*:
% z(pM*vM)^(-1)=(z-1)pM^(-1)
% {z^(-1)pA^(-1)vM}*={z/(z-1)}*={1+1/(z-1)}*=1/(z-1)
% qtilde_H=pM^(-1)=(z^3+a1*z^2+a2*z+a3)/(b1*z^3+b2*z^2+b3*z)
% CALCULO DE qtilde_:
% (b1*z^2+b2*z+b3)=(z-0.9704)(z+0.9416); DEBEMOS CANCELAR z=-0.9416
% Y SUSTITUIRLO CON z=0; ESTO ES, k1=-0.9416, rho=1; LUEGO
% qtilde_=z^(-rho)*(z-k1)/(1-k1)=z^(-1)*(z-k1)/(1-k1)
k1=-0.9416;
% CALCULO DE qtilde=qtilde_H*qtilde_*B(z) PARA m=1:
% B(z)=1; qtilde=qtilde_H*qtilde_=
7.7 Problemas Resueltos 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

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 p4rob1f
print -s -deps p4rob1s

(a) (b)
40 5

30 0
Magnitud de M en dB
Magnitudes en dB

20 −5

10 −10

0 −15

−10 −20
0 1 2 0 1 2
10 10 10 10 10 10
Frecuencia angular (rad/s) Frecuencia angular (rad/s)

Figura 7.11: Condi ion de estabilidad robusta (gra o de la izquierda) y


rendimiento robusto (gra o de la dere ha) para el problema 7.1.

Problema 7.2

El pro eso redu tor de humedad des rito en el problema 3.7 se muestra
en la gura 3.24(a). El objetivo de ontrol es redu ir la humedad h del
material a granel de la tolva. La banda transportadora, que se desplaza
a una velo idad v= 1 m/s onstante, introdu e el material a un horno de
se ado. El sensor de humedad dete ta h r a una distan ia d = 10 m del horno y
propor iona la sen~ al de voltaje vr . El horno puede modelarse omo
7.7 Problemas Resueltos 385

+ (1−alfa)z u ap.s+bp
− Mux
z−alfa s3+cp.s2+dp.s
S1 Graph
Filtro Proceso p(s)
Referencia Mux
an.s+bn
z4+(a1−k1)z3+(a2−a1*k1)z
. 2+(a3−a2*k1)z−a3*k1 s3+cn.s2+dn.s
(1−k1)*b1z +(1−k1)*b2z3+(1−k1)*b3z2
4 Modelo nominal pn(s) − + S2

Controlador q~ y_p4rob1
u_p4rob1
Control u Salida y

Figura 7.12: Diagrama de bloques para simular el sistema de ontrol robusto


on modelo interno (problema 7.1).

0.25

0.2
Inclinación (rad)

0.15

0.1

0.05

0
0 1 2 3 4 5 6 7 8 9 10
Tiempo en segundos

1.5

1
Deflector (rad)

0.5

−0.5
0 1 2 3 4 5 6 7 8 9 10
Tiempo en segundos

Figura 7.13: Angulo de in lina ion (salida ontrolada) y angulo del de e tor
de eleva ion (sen
~al de ontrol) para el problema 7.1.
386 Control Robusto

un pro eso de primer orden. La gura 3.24(b) muestra la F.T del pro eso.
Disen~ar un sistema de ontrol robusto on modelo interno para ontrolar
la humedad del material en la banda transportadora. El u ni o parametro
in ierto a onsiderar es el tiempo muerto v=d. Asuma omo valor nominal
Tn = 9 s y omo tiempo muerto del pro eso Tp = 11 s. Las espe i a iones de
disen~o son: tiempo de estabiliza ion menor que 40 s, error en estado
esta ionario nulo y por entaje de sobreimpulso menor al 5 %. Realizar el
al ulo del ontrolador para una entrada v es alon. El sistema disen
~ado debe
ser del tipo m = 1. La sele i on del tiempo de muestreo es a onvenien ia
del disen~o. Asumir: `m (!) j j j
`m (ei! ) y `a (!) j
`a (!) .
Solu ion: El programa p10rob1.m detalla el pro edimiento para disen ~ar el
ontrolador robusto uando la entrada v es un es al on. La gura 7.15 (ar hi-
vo p10rob1s.m) es el diagrama de bloques empleado en la simula ion del sis-
tema disen~ado y requiere previamente que se eje ute el programa p10rob1.m.
El resultado de la simula ion se muestra en la gura 7.16 (obtenida on el ar
hivo p10rob1r.m). El sistema disen ~ ado umple los requerimientos de es-
tabilidad y rendimiento robustos, tal omo se apre ia en la gura 7.16.

% p10rob1.m SOLUCION AL PROBLEMA 7.2


lear all
% FT (FUNCION DE TRANSFERENCIA) DEL PROCESO
% vr(s)/u(s) = K*exp(-d*s/v)/(s^2 + a*s + b): ESTRUCTURA DE LA FT
K=10; a=1.5; b=0.5;
% DESEAMOS ROBUSTEZ EN EL TIEMPO MUERTO CON RANGO:
Tn=9; Tp=11; % (n: NOMINAL, p: PROCESO)
numn=[0 0 K℄; denn=[1 a b℄;
% pn=K*exp(-Tn*s)/(s^2+a*s+b)
nump=[0 0 K℄; denp=[1 a b℄;
% p=K*exp(-Tp*s)/(s^2+a*s+b)
% MODELO NOMINAL DISCRETO pnz(z)
T = 0.5; % z = exp(T*s) => exp(Tn*s)=z^(Tn/T)=z^18
[numd,dend℄ = 2dm(numn,denn,T,'zoh');
% numd(z)/dend(z)=(b1*z+b2)/(z^2+a1*z+a2)
a1=dend(2); a2=dend(3);
b1=numd(2); b2=numd(3);
% numD(z)/denD(z)=pnz(z)=z^(-Tn/T)*numd(z)/dend(z)
% pnz(z) = z^(-Tn/T)*(b1*z+b2)/(z^2+a1*z+a2)
% = (b1*z+b2)/(z^20+a1*z^19+a2*z^18)
% PROCESO DISCRETO pz(z)
% T = 0.5; z = exp(T*s) => exp(Tp*s)=z^(Tp/T)=z^22
[numdp,dendp℄ = 2dm(nump,denp,T,'zoh');
% numdp(z)/dendp(z)=(bp1*z+bp2)/(z^2+ap1*z+ap2)
7.7 Problemas Resueltos 387

ap1=dendp(2); ap2=dendp(3);
bp1=numdp(2); bp2=numdp(3);
% numDp(z)/denDp(z)=pz(z)=z^(-Tp/T)*numdp(z)/dendp(z)
% pz(z) = z^(-Tp/T)*(bp1*z+bp2)/(z^2+ap1*z+ap2)
% = (bp1*z+bp2)/(z^24+a1*z^23+a2*z^22)

% DETERMINACION DE pnz(z)=pA(z)*pM(z):
% roots(numD): -0.1353
% COMO pnz NO POSEE CEROS FUERA DEL CIRCULO UNITARIO (CU) Y COMO
% z^N*pnz DEBE SER SEMIPROPIO, ENTONCES N=19; LUEGO pA=z^(-N) Y
% pM=pnz/pA=z^19*(b1*z+b2)/(z^20+a1*z^19+a2*z^18)
% DETERMINACION DE v(z)=vA(z)*vM(z)=z/(z-1) PARA UNA ENTRADA ESCALON:
% SE SABE POR EJERCICIOS ANTERIORES QUE vA=1; vM=z/(z-1)

% CALCULO DE qtilde_H=(pM(z))^(-1):
% SEGUN TABLA, qtilde_H=(z^20+a1*z^19+a2*z^18)/(b1*z^20+b2*z^19)
% CALCULO DE qtilde_:
% (b1*z^4+b2*z^3)=z^3*(b1*z+b2) => CANCELAR z=-b2/b1=-0.1353
% Y SUSTITUIRLO CON z=0; ESTO ES, k1=-0.1353, rho=1, Y
% qtilde_=z^(-rho)*(z-k1)/(1-k1)=z^(-1)*(z-k1)/(1-k1)
k1=-0.1353;
% CALCULO DE qtilde=qtilde_H*qtilde_*B(z) (PARA m=1):
% PARA QUE EL SISTEMA SEA DEL TIPO m=1, B(z)=1, ENTONCES:
% qtilde=qtilde_H*qtilde_=
% (z^20+a1*z^19+a2*z^18)*(z-k1)/(z*(b1*z^20+b2*z^19)*(1-k1))
% CALCULO DEL FILTRO CON m=1: f(z)=(1-alfa)*z/(z-alfa);
% CALCULO DE LA FUNCION DE PESO PARA m=1: W(w)>=G/(abs(1-pn*qtilde))
% CONDICIONES: W^(-1)(infty) MAYOR QUE 1, W(0)^(-1) MAYOR QUE 0

% CHEQUEANDO ESTABILIDAD ROBUSTA


alfa = 0.95;
for w = 0:pi/T % 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);
pnz = (b1*z+b2)/(z^(Tn/T)*(z^2+a1*z+a2));
pz = (bp1*z+bp2)/(z^(Tp/T)*(z^2+ap1*z+ap2));
laz = pz - pnz;
lmz = laz/pnz;
qtilde=(z^20+a1*z^19+a2*z^18)*(z-k1)/...
(z*(b1*z^20+b2*z^19)*(1-k1));
mag_dB(w+1) = 20*log10(1/(abs(pnz*qtilde*lmz)));
f = (1-alfa)*z/(z-alfa);
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

La gura 3.20 muestra un monorriel de dos arros des rito en el problema


3.5. El problema a resolver es el ontrol de velo idad del arro de maquinas
mediante un sistema de ontrol robusto empleando modelo interno. Para
garantizar a los pasajeros un viaje onfortable, los ambios de velo idad
deben realizarse on un tiempo de estabiliza i on menor que 6 segundos y
7.7 Problemas Resueltos 389

(a) (b)
15 2

10
0
5

0 −2

Magnitud de M en dB
Magnitudes en dB

−5
−4

−10

−6
−15

−20 −8

−25
−10
−30

−35 −12
100 101 100 101
Frecuencia angular (rad/s) Frecuencia angular (rad/s)

Figura 7.14: Condi ion de estabilidad robusta (gr a o de la izquierda) y


rendimiento robusto (gra o de la dere ha) para el problema 7.2.

+ (1−alfa)z u K
− Mux
z−alfa s2+as+b
S1 Tp Graph
Filtro Proceso p(s)
Referencia Mux
K y_p10rob
z2+ 9a2.z18 .
0a1.z 1+ z−k1 s2+as+b Salida y
b1.z2+
0b2.z19 (1−k1)z Modelo nominal pn(s) Tn − + S2
Controlador q~H Controllador q~_ u_p10rob
Control u

Figura 7.15: Diagrama de bloques para simular el sistema de ontrol robusto


on modelo interno (problema 7.2.)
390 Control Robusto

Humedad
0.5

0
0 10 20 30 40 50 60 70 80 90 100
Tiempo en segundos

0.06

0.04
Flujo calorífico

0.02

−0.02
0 10 20 30 40 50 60 70 80 90 100
Tiempo en segundos

Figura 7.16: Flujo alor o (sen~al de ontrol) y humedad sensada (salida


ontrolada) para el problema 7.2.

on m nimo sobreimpulso. El error en estado estable debe ser nulo. Tener


en uenta que debido al peso de los pasajeros, podemos onsiderar un rango
de varia ion en la masa de los arros de pasajeros. Realizar el al ulo del
ontrolador para una entrada v es alon. El sistema disen~ado debe ser del
tipo m = 1. La sele ion del tiempo de muestreo es a onvenien ia del
disen
~o. Asumir: `m (!) `m (ei! ) y `a (!) `a (!) .j j j j
Solu ion: El programa p7rob1.m muestra el rango de varia i on de tales
masas y detalla el pro edimiento para disen ~ar el ontrolador robusto uan-
do la entrada v es un es alon. La gura 7.18 (ar hivo p7rob1s.m) es el
diagrama de bloques empleado en la simula i on del sistema disen ~ado y re-
quiere previamente que se eje ute el programa p7rob1.m. El resultado de la
simula i on se muestra en la gura 7.19 (obtenida on el ar hivo p7rob1r.m). El
sistema disen~ado umple los requerimientos de estabilidad y rendimiento
robustos, tal omo se puede apre iar en la gura 7.17.

% p7rob1.m SOLUCION AL PROBLEMA 7.3


lear all
% ROBUSTEZ EN LOS PESOS M2 Y M3 DADO QUE VARIAN CON EL PESO
% PROCESO: M2=3200; M3=3200 (CARROS CON PASAJEROS);
7.7 Problemas Resueltos 391

M1=1300; M2=3200; M3=3200; K12=100000; K23=100000;


B12=500; B23=500; B1=5000; B2=10000; B3=10000;
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℄';
alfa = 1; % CONSTANTE TACOMETRICA
C=[0 alfa 0 0 0 0℄; D=[0℄;
[nump,denp℄=ss2tf(A,B,C,D);
bp1=nump(2); bp2=nump(3); bp3=nump(4); bp4=nump(5);
bp5=nump(6); bp6=nump(7); ap1=denp(2); ap2=denp(3);
ap3=denp(4); ap4=denp(5); ap5=denp(6); ap6=denp(7);
% 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);
% PROCESO DISCRETO
T = 0.2; % PERIODO 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); az5 = denz(6); az6 = denz(7);
bz1 = numz(2); bz2 = numz(3); bz3 = numz(4);
bz4 = numz(5); bz5 = numz(6); bz6 = numz(7);
% numz/denz=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);
% MODELO NOMINAL DEL PROCESO: M2=2600; M3=2600;
M1=1300; M2=2600; M3=2600; K12=100000; K23=100000;
B12=500; B23=500; B1=5000; B2=10000; B3=10000;
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℄';
alfa = 1; % CONSTANTE TACOMETRICA
C=[0 alfa 0 0 0 0℄; D=[0℄;
[numn,denn℄=ss2tf(A,B,C,D);
bn1=numn(2); bn2=numn(3); bn3=numn(4); bn4=numn(5);
bn5=numn(6); bn6=numn(7); an1=denn(2); an2=denn(3);
an3=denn(4); an4=denn(5); an5=denn(6); an6=denn(7);
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_= z^(-r)*((z-k1)/(1-k1)* ... *(z-kr)/(1-kr)):


% roots([b1 b2 b3 b4 b5 b6℄): -0.2943 + 0.5702i,
% -0.2943 - 0.5702i; 0.4916 + 0.4604i, 0.4916 - 0.4604i, 1.0000
% r=2 POLOS DE qtilde_H CON PARTE REAL NEGATIVA; k1=-0.2943;
% k2=k1 => qtilde_=z^(-2)*(z-k1)^2/(1-k1)^2 k1=-
0.2943;

% CALCULO DE qtilde=qtilde_H*qtilde_*B(z):
% EL MINIMO COMUN DENOMINADOR DE pnz Y v CON RAICES INESTABLES ES:
% (z-piz)=(z-1) => z=piz=1, m1=1 (MULTIPLICIDAD) y B(z)=b0=1;
7.7 Problemas Resueltos 393

% qtilde=qtilde_H*qtilde_=
% (z^6+a1*z^5+a2*z^4+a3*z^3+a4*z^2+a5*z+a6)*(z-k1)^2/...
% (z^3*(b1*z^5+b2*z^4+b3*z^3+b4*z^2*b5*z+b6)*(1-k1)^2);
% DETERMINACION DEL FILTRO: f(z)=(1-alfa)*z/(z-alfa);

% 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

% CALCULO DEL CONTROLADOR =q/(1-pnz*q)


% NOTAR QUE q*pnz=(z-k1)^2*(1-alfa)/(z^2*(1-k1)^2*(z-alfa))
num1=(1-alfa)*[1 -2*k1 k1^2℄; den1= ...
[(1-k1)^2 -((1-k1)^2*alfa+(1-alfa)) (1-alfa)*2*k1 -(1-alfa)*k1^2℄;
% num = onv(den,num1); den = onv(num,den1);
[num ,den ℄=series(den,num,num1,den1);
% 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 p7rob1f
print -s -deps p7rob1s

(a) (b)
40 0

−1
30
−2

−3
20
Magnitud de M en dB
Magnitudes en dB

−4

10 −5

−6
0
−7

−8
−10
−9

−20 −10
100 101 102 100 101 102
Frecuencia angular (rad/s) Frecuencia angular (rad/s)

Figura 7.17: Condi ion de estabilidad robusta (gra o de la izquierda) y


rendimiento robusto (gra o de la dere ha) para el problema 7.3.
7.7 Problemas Resueltos 395

+ numc(z) u nump(s) y
Mux
r − denc(z) denp(s)
S1 Controlador c(z) Proceso Graph
p(s) Mux
u_p7rob1
y_p7rob1
Control u
. Salida y

Figura 7.18: Diagrama de bloques para simular el sistema de ontrol robusto


on modelo interno del problema 7.3.

15
Velocidad (m/s)

10

0
0 1 2 3 4 5 6 7 8 9 10
Tiempo en segundos

300

250

200
Fuerza (N)

150

100

50
0
0 1 2 3 4 5 6 7 8 9 10
Tiempo en segundos

Figura 7.19: Velo idad del arro de m aquinas y fuerza de ontrol para el
problema 7.3.
396 Control Robusto

Problema 7.4

La gura 3.22 muestra el pro eso as ensor tratado en el problema 3.6. Sin
embargo, para este problema onsidere que el a tuador posee la siguiente
fun ion de transferen ia:
x1(s) Ka
= ; 0:008 K a 0:012
v(s) s + 0:2
El problema a resolver es posi ionar suavemente el as ensor en un piso de-
terminado, lo que signi a sobreimpulso nulo (para que no se pase de piso)
y tiempo de estabiliza i on menor que 8 s. Para no saturar al a tuador (un
ampli ador de poten ia), la sen ~al de ontrol debe estar dentro del rango
de 200 volt. Disen~ar un sistema de ontrol robusto que umpla las es-
pe i a iones pedidas. Realizar el al ulo del ontrolador para una entrada
v es al on. El sistema disen ~ado debe ser del tipo m = 1. La sele ion del
tiempo de muestreo es a onvenien ia del disen ~o. Asumir: ` m (!) j j
`m (ei! )
y `a (!) j j
`a (!) .
Solu ion: El programa p8rob1.m detalla el pro edimiento para disen ~ar
el ontrolador robusto uando la entrada v es un es alon. La gura 7.21
(ar hivo p8rob1s.m) es el diagrama de bloques empleado en la simula ion del
sistema disen~ado y requiere pque reviamente se eje ute el programa de
p8rob1.m. El resultado de la simula ion se muestra en la gura 7.22 (obteni-
da on el ar hivo p8rob1r.m). El sistema disen~ado umple los requerimientos
de estabilidad y rendimiento robustos, tal omo se apre ia en la gura 7.20.
% p8rob1.m SOLUCION AL PROBLEMA 7.4
lear all
% PROCESO
A = [-0.2 0 0 0;1 0 0 0;2 0 -2 0;5 0 0 -5℄;
B = [0.012;0;0;0℄;
C = [0 1 0 0℄; D = [0℄;
[nump,denp℄=ss2tf(A ,B ,C ,D );
bp2=nump(3); bp3=nump(4); bp4=nump(5);
ap1=denp(2); ap2=denp(3); ap3=denp(4); ap4=denp(5);
% p=(bp2*s^2+bp3*s+bp4)/(s^4+ap1*s^3+ap2*s^2+ap3*s);
% PROCESO DISCRETO
T = 0.8; % TIEMPO DE MUESTREO
[G,H,C,D℄= 2dm(A ,B ,C ,D ,T,'zoh');
[numz,denz℄=ss2tf(G,H,C,D);
az1 = denz(2); az2 = denz(3); az3=denz(4); az4=denz(5);
bz1 = numz(2); bz2 = numz(3); bz3=numz(4); bz4=numz(5);
7.7 Problemas Resueltos 397

% numz/denz=pz=(bz1*z^3+bz2*z^2+bz3*z+bz4*z)/...
% (z^4+az1*z^3+az2*z^2+az3*z+az4);
% PROCESO NOMINAL
A = [-0.2 0 0 0;1 0 0 0;2 0 -2 0;5 0 0 -5℄;
B = [0.008;0;0;0℄;
C = [0 1 0 0℄; D = [0℄;
[numn,denn℄=ss2tf(A ,B ,C ,D );
bn2=numn(3); bn3=numn(4); bn4=numn(5);
an1=denn(2); an2=denn(3); an3=denn(4);
% pn=(bn2*s^2+bn3*s+bn4)/(s^4+an1*s^3+an2*s^2+an3*s);
% MODELO NOMINAL DISCRETO
T = 0.8; % TIEMPO DE MUESTREO
[G,H,C,D℄= 2dm(A ,B ,C ,D ,T,'zoh');
[num,den℄=ss2tf(G,H,C,D);
a1 = den(2); a2 = den(3); a3=den(4); a4=den(5);
b1 = num(2); b2 = num(3); b3=num(4); b4=num(5);
% num/den=pnz=(b1*z^3+b2*z^2+b3*z+b4*z)/...
% (z^4+a1*z^3+a2*z^2+a3*z+a4);
% DETERMINAION DE bp(z)
% roots(den): pn(z) POSEE 1 POLO EN z=1 Y NINGUNO FUERA DEL
% CIRCULO UNITARIO => bp(z)=1
% CALCULO DE pnz(z)=pA(z)*pM(z):
% z^N*pnz DEBE SER SEMIPROPIO, ENTONCES N=1 Y pA=z^(-1); LUEGO:
% pM=pnz/pA=z*(b1*z^3+b2*z^2+b3*z+b4*z)/...
% (z^4+a1*z^3+a2*z^2+a3*z+a4);
% DETERMINACION DE v(z)=vA(z)*vM(z)=z/(z-1) PARA ENTRADA ESCALON:
% SE SABE POR EJEMPLOS ANTERIORES QUE vA=1 Y vM=z/(z-1)

% DETERMINACION DE bV(z):
% COMO v(z) NO POSEE POLOS FUERA DEL CU, bv(z)=1
% CALCULO DE qtilde_H=z*bp*(pM*bv*vM)^(-1){(z*bp*pA)^(-1)*vM}*
% NOTAR QUE pnz(z) Y v(z) POSEEN 1 POLO EN z=1. COMO bp=bv=1:
% qtilde_H=pM^(-1)=(z^4+a1*z^3+a2*z^2+a3*z+a4)/...
% z*(b1*z^3+b2*z^2+b3*z+b4);
% CALCULO DE qtilde_= z^(-r)*((z-k1)/(1-k1)* ... *(z-kr)/(1-kr))
rr=roots([b1 b2 b3 b4℄); k1=rr(1);
% r=1 POLOS DE qtilde_H CON PARTE REAL NEGATIVA;
% => qtilde_=z^(-1)*(z-k1)/(1-k1)=(z-k1)/(z*(1-k1))
% CALCULO DE qtilde=qtilde_H*qtilde_*B(z)
% EL MINIMO COMUN DENOMINADOR DE pnz Y v CON RAICES INESTABLES
% ES: (z-piz)=(z-1) => z=piz=1, MULTIPLICIDAD m1=1 Y B(z)=b0=1;
% qtilde=qtilde_H*qtilde_=
% (z^4+a1*z^3+a2*z^2+a3*z+a4)*(z-k1)/...
398 Control Robusto

% (z^2*(1-k1)*(b1*z^3+b2*z^2+b3*z+b4*z));
% DETERMINACION DEL FILTRO: f(z)=(1-alfa)*z/(z-alfa);
% CALCULO DE LA FUNCION DE PESO PARA m=1: W(w)>=G/(abs(1-pn*qtilde))
% CONDICIONES: w^(-1)(infty) MAYOR QUE 1, W(0)^(-1) MAYOR QUE 0
%
% CHEQUEANDO ESTABILIDAD ROBUSTA
alfa = 0.7;
for w = 0:pi/T
s=i*w; z=exp(s);
pnz=(b1*z^3+b2*z^2+b3*z+b4)/(z^4+a1*z^3+a2*z^2+a3*z+a4);
pz=(bz1*z^3+bz2*z^2+bz3*z+bz4)/(z^4+az1*z^3+az2*z^2+az3*z+az4);
laz = pz - pnz;
lmz = laz/pnz;
qtilde=(z^4+a1*z^3+a2*z^2+a3*z+a4)*(z-k1)/...
(z^2*(1-k1)*(b1*z^3+b2*z^2+b3*z+b4));
mag_dB(w+1) = -20*log10(abs(pnz*qtilde*lmz));
f = (1-alfa)*z/(z-alfa);
magf_dB(w+1) = 20*log10(abs(f));
% para estabilidad robusta: magf_dB(w+1) < mag_dB(w+1)
end
% CHEQUEANDO RENDIMIENTO ROBUSTO
for w = 0:pi/T
s=i*w; z=exp(s);
pn=(bn2*s^2+bn3*s+bn4)/(s^4+an1*s^3+an2*s^2+an3*s);
p=(bp2*s^2+bp3*s+bp4)/(s^4+ap1*s^3+ap2*s^2+ap3*s);
la = p - pn;
lm = la/pn;
qtilde=(z^4+a1*z^3+a2*z^2+a3*z+a4)*(z-k1)/...
(z^2*(1-k1)*(b1*z^3+b2*z^2+b3*z+b4));
f = (1-alfa)*z/(z-alfa);
q = qtilde*f;
G = 0.75; W = G/abs(1-pn*qtilde);
% PARA RENDIMIENTO ROBUSTO: M_dB < 1
M_dB(w+1) = 20*log10(abs(q*la) + abs((1-pn*q)*W));
end
% CALCULO DEL CONTROLADOR =q/(1-pnz*q)
% NOTAR QUE q*pnz=(z-k1)*(1-alfa)/(z*(1-k1)*(z-alfa))
num1=(1-alfa)*[1 -k1℄;
den1=[(1-k1) -((1-k1)*alfa+(1-alfa)) (1-alfa)*k1℄;
% num = onv(den,num1); den = onv(num,den1);
[num ,den ℄=series(den,num,num1,den1);
% GRAFICOS
ejew = linspa e(0,pi/T,pi/T);
7.8 Problemas Propuestos 399

subplot(121)
semilogx(ejew,mag_dB(1:pi/T),ejew,magf_dB(1:pi/T),'--'); grid
ylabel('Magnitudes en dB'); title(' (a)')
xlabel('Fre uen ia angular (rad/s)')
subplot(122)
semilogx(ejew,M_dB(1:pi/T)); grid
ylabel('Magnitud de M en dB'); title(' (b)')
xlabel('Fre uen ia angular (rad/s)')
print -f -deps p8rob1f
print -s -deps p8rob1s

(a) (b)
15 0.5

0
10
−0.5

−1
5
Magnitud de M en dB
Magnitudes en dB

−1.5

0 −2

−2.5
−5
−3

−3.5
−10
−4

−15 −4.5
100 101 100 101
Frecuencia angular (rad/s) Frecuencia angular (rad/s)

Figura 7.20: Condi ion de estabilidad robusta (gr a o de la izquierda) y


rendimiento robusto (gra o de la dere ha) para el problema 7.4.

7.8 Problemas Propuestos


Problema 7.5

El problema 3.1 des ribe en detalle las e ua iones que gobiernan la din ami a
del sistema de suspension de un bus (ver gura 3.12). Disen ~ar un sistema de
ontrol robusto on modelo interno para lograr el objetivo de ontrol que se
formula a ontinua i on. La salida del pro eso y = x 2 x1 (referen ia nula) no
400 Control Robusto

+ numc(z) u nump(s) y
Mux
r − denc(z) denp(s)
S1 Controlador c(z) Proceso Graph
p(s) Mux
u_p8rob1 y_p8rob1
. Control u Salida y

Figura 7.21: Diagrama de bloques para simular el sistema de ontrol robusto


on modelo interno del problema 7.4.

2.5
Posición (m)

1.5

0.5
0
0 1 2 3 4 5 6 7 8 9 10
Tiempo en segundos

200

150
Voltaje de control

100

50

−50
0 1 2 3 4 5 6 7 8 9 10
Tiempo en segundos

Figura 7.22: Posi i on 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 al on de 10 m
provo ada por imperfe iones en la pista, pr a 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 disen ~ado debe ser
del tipo m=1. Sele ionar un tiempo de muestreo onveniente.
7.8 Problemas Propuestos 401

Problema 7.6

La gura 2.2 muestra dos tanques id enti os olo ados en as ada. La se ion
horizontal A=9 m2 de ada tanque es onstante. El objetivo de ontrol es
ontrolar la altura H2 empleando el ujo Qo. La dedu i on del modelo
linealizado del pro eso se des ribe en el ejemplo 2.1. Las espe i a iones de
disen
~o son: tiempo de estabiliza ion menor que 15 s, sobreimpulso menor al
5 % y error nulo en estado estable. El ujo de entrada (la sen ~al de ontrol)
no debe sobrepasar los 3 m3 /s. Disen ~ ar un ontrolador robusto on modelo
interno que logre umplir los requerimientos anteriores. Realizar el al ulo del
ontrolador para una entrada v es al on. El sistema disen ~ado debe ser del
tipo m = 1. La sele ion del tiempo de muestreo es a onvenien ia del disen
~o.

Problema 7.7

El pro eso ele trome ani o mostrado en la gura 3.26 se des ribe en el pro-
blema 3.8. Disen ~ar un sistema de ontrol robusto on modelo interno para
ontrolar la velo idad angular del eje del motor mediante el voltaje de en-
trada que puede variar entre 100 volt. Realizar el al ulo del ontrolador para
una entrada v es alon. El sistema disen ~ado debe ser del tipo m=1 y la sele i
on del tiempo de muestreo es a onvenien ia del disen ~o. La salida on-
trolada no debe presentar sobreimpulso ni error esta ionario. El par ametro
in ierto es la iner ia J de la arga que puede variar en 12 %.

Problema 7.8

El problema 3.3 des ribe el pro eso de la bola rodando a lo largo de una barra
on un grado de libertad, tal omo se muestra en la gura 3.16. Una leva
one ta la barra on un engranaje que est a a ionado por un servomotor.
Disen~ar un sistema de ontrol robusto que pueda posi ionar la bola a 0.5 m
de un extremo de la barra de 1 m de longitud. Evidentemente, la os ila ion
de la bola debe estar restringida sobre la barra. El voltaje de ontrol no debe
sobrepasar los 40 voltios y la masa de la bola puede variar en 15 %.
Realizar el al ulo del ontrolador para una entrada v es alon. El sistema
disen
~ado debe ser del tipo m = 1 y la sele ion del tiempo de muestreo es a
onvenien ia del disen~o.
402 Control Robusto

Problema 7.9

Las e ua iones del modelo linealizado para ontrolar la posi i on del an


~ on
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) Disen~ar un sistema de ontrol robusto on modelo interno para ontro-


lar el angulo de eleva ion on las espe i a iones siguientes: tiem-
po de estabiliza i on menor que 8 s, m nimo sobreimpulso y error en
estado esta ionario nulo. Los disturbios tipo es al on pueden a tuar
simultaneamente o no y pueden ser positivos o negativos. Para ada
aso, el sistema de ontrol disen ~ado debe ser apaz de minimizar sus
efe tos. Realizar el al ulo del ontrolador para una entrada v es alon. El
sistema disen~ado debe ser del tipo m = 1 y la sele ion del tiempo de
muestreo es a onvenien ia del disen ~o. Considerar que todos los
par ametros 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 i on 3.3, en donde la arga no lineal posee ahora dos grados de
libertad on Lo = 2L1=3. La union de la arga on el eje del servomotor
no es exible. Las e ua iones que des riben la din ami a del sistema fueron
requeridas en el problema 3.12. Disen ~ ar un sistema de ontrol robusto on
modelo interno para ontrolar simult aneamente las posi iones y on
m nimo tiempo de estabiliza i on y m nimo sobreimpulso. Considerar (a
su riterio) varia iones en la arga adi ional Mo. Realizar el al ulo del
ontrolador para una entrada v es alon. El sistema disen ~ado debe ser del
tipo m = 1 y la sele ion del tiempo de muestreo es a onvenien ia del disen ~o.
Considerar dos asos: (a) uando la indu tan ia de armadura es despre
iable, y (b) uando no lo es.

Problema 7.11

La gura 3.32 muestra el pro eso p endulo doble no lineal que es una exten-
sion del p endulo simple des rito en la se i on 3.1. El a oplamiento entre
los dos p endulos de igual longitud no es exible. Las e ua iones que des-
riben la din ami a del sistema son materia del problema propuesto 3.13.
7.8 Problemas Propuestos 403

Disen~ar un sistema de ontrol robusto on modelo interno para ontrolar


simult aneamente las posi iones y on m nimo tiempo de estabiliza ion
y m nimo sobreimpulso, de modo tal que el p endulo doble permanez a en
posi ion verti al. Considerar que la arga adi ional esf eri a de 0.02 kg var a
en 6 %. Realizar el al ulo del ontrolador para una entrada v es al on. El
sistema disen~ado debe ser del tipo m = 1 y la sele ion del tiempo de
muestreo es a onvenien ia del disen ~o.

Problema 7.12

La gura 3.33 muestra el pro eso doble gru a-puente no lineal que es una ex-
tensi on del pro eso gru a-puente des rito en la se i on 3.2. El a oplamiento
entre los dos p endulos de igual longitud no es exible. Las e ua iones que
des riben la dinami a del sistema son materia del problema propuesto 3.14.
Disen~ar un sistema de ontrol robusto on modelo interno para ontrolar
simult aneamente las posi iones y on m nimo tiempo de estabiliza i on y m
nimo sobreimpulso, de modo tal que la doble gru a puente permanez a en
posi ion verti al uando el arro realiza un re orrido predeterminado. Con-
siderar que la arga adi ional esf eri a de 0.02 kg var a en 6 %. Realizar el
al ulo del ontrolador para una entrada v es alon. El sistema disen ~ado debe
ser del tipo m = 1 y la sele ion del tiempo de muestreo es a onvenien ia del
disen
~o.

Problema 7.13

La gura 1.1 muestra un arro de masa m = 1000 kg desplazandose on una


velo idad v gra ias a la a i on de la fuerza u produ ida por su motor. Si
se despre ia la iner ia de las ruedas y se asume que la fuerza de fri ion bv,
donde b= 50 N-s/m es el oe iente de fri ion, es lo uni o que se opone
al movimiento del arro, enton es la dinami a del pro eso puede modelarse
omo (ver ejemplo 1.16):
dv
mv_(t) + bv(t) = u(t); v_ =
dt
Disen
~ar un sistema de ontrol robusto on modelo interno para ontrolar la
velo idad del movil on m nimo tiempo de estabiliza ion y m nimo sobreim-
pulso. Considerar una in ertidumbre de 5 % en todos los par ametros.
Realizar el al ulo del ontrolador para una entrada v es alon. El sistema
disen
~ado debe ser del tipo m = 1 y la sele ion del tiempo de muestreo es a
onvenien ia del disen
~o.
404 Control Robusto

Problema 7.14

El motor D.C. es un a tuador muy popular en los sistemas de ontrol porque


su movimiento rotatorio, mediante a oples ade uados a su eje, puede on-
vertirse fa ilmente en movimiento de trasla i on. Eso se apre ia en fajas
transportadoras o en brazos manipuladores. La gura 4.3 muestra el ir-
uito de armadura del motor y el diagrama de uerpo libre de su rotor.
Las e ua iones que gobiernan el omportamiento dinami o del motor fueron
derivadas en el ejemplo 4.1.

(a) Disen~ar un sistema de ontrol robusto on modelo interno para esta-


bilizar la velo idad angular del eje del motor on las espe i a iones
siguientes: tiempo de estabiliza ion menor que 4 s, error en estado es-
table menor al 1 % y sobreimpulso de la salida menor al 5 %. Considere
varia iones de 7 % en los par ametros b y J. Realizar el al ulo del
ontrolador para una entrada v es al on. El sistema disen ~ado debe ser
del tipo m = 1 y la sele ion del tiempo de muestreo es a onvenien ia del
disen~o.

(b) Disen~ar un sistema de ontrol robusto on las espe i a iones anterio-


res, pero en este aso para estabilizar la posi ion del eje del motor.

Problema 7.15

Repetir los problemas 7.1 al 7.14 uando la entrada v toma las formas:

1 z=
v(s) = ; v(z) = T ==tau
; = 100T
s+1 ze
donde T es el tiempo de muestreo.

Problema 7.16

Repetir los problemas 7.1 al 7.14 uando la entrada v toma las formas:
1 Tz
v(s) = ; v(z) =
s2 (z 1)2
y el tipo del sistema es m=2. Tomar omo sen
~ al de referen ia una rampa
de pendiente unitaria.
Cap tulo 8

Control No Lineal

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 i on. En realidad todos los pro esos son no lineales y mu has
ve es resulta m as onveniente trabajar dire tamente on el modelo no lineal. As
podemos disen ~ar sistemas de ontrol no lineal empleando diversas te ni as tales
omo [13℄: el m etodo dire to de Liapunov, ontrol deslizante, ontrol adaptivo
( ap tulo 5) y linealiza ion de la realimenta ion (materia de este ap tulo).
La idea fundamental del ontrol de pro esos no lineales empleando la t e ni a
de linealiza i on por realimenta ion, es linealizar (hallar un modelo lineal equi-
valente) el pro eso (par ial o totalmente, si fuera posible) mediante un ambio
ade uado de oordenadas y una realimenta i on 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 t e ni as de ontrol lineal (en el aso de linealiza i on 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 disen~o sugerido se apli a al ontrol no lineal de posi i on
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, est dedi ada al disen~o de sis-
temas de ontrol no lineal para diferentes pro esos. En la ultima se i on se pro-
ponen proplemas de disen ~o. Todos los ar hivos orrespondientes a los ejer i ios,
problemas, disen~os, simula iones y software desarrollados se pueden des argar
del sitio: http:// ee.uni.edu.pe/728681F.
406 Control No Lineal

8.1 Herramientas Matem ati as


Las herramientas matem ati as a dis utir orresponden a la geometr a dife-
ren ial y a la topolog a. S olo se tratan los puntos dire tamente involu rados
on la t e ni a de linealiza i on por realimenta ion. Por esta raz on es que
esas matemati as no se in luyeron omo parte del ap tulo 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 inter es para nosotros
son los denominados suaves. Un ampo ve torial f (x) es suave uando tal
fun ion ve torial posee in nitas derivadas par iales ontinuas.
Si h(x) es una fun i on es alar de variable ve torial suave, donde x es el
2 3
ve tor de estado, enton es su gradiente es:

rh = x =
h 7 x1
.

5 h
.
h
(8.2)

El ja obiano de f (x) tiene la forma:


2 f1
xn

f1
3
rf = x =
f
64 x1
.
.
fn
xn
.
.
fn
(8.3)
x1 xn

8.1.1 Derivadas y Cor hetes de Lie


De ni ion 8.1 Dada una fun ion es alar suave h(x) : R n !
R y un am-
po ve torial suave f (x) : R !
n n
R , nosotros podemos de nir una nueva fun
r
ion es alar Lf h = h 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 .

Su esivas derivadas de Lie pueden ser de nidas re ursivamente:

r
L0fh = h f 0 = h
Lif h = Lf (Lf i 1 h) = r(L i 1
f h) f; i = 1; 2; : : : (8.4)
Del mismo modo, si g es otro ampo ve torial, la fun i on es alar LgLf h(x)
es:
LgLf h(x) = (Lf h) g r (8.5)
8.1 Herramientas Matemati as 407

Ejemplo 8.1

Determinar las dos primeras derivadas de Lie de la salida y para el pro eso
siguiente:
x_ = f (x); y = h(x)

Solu i on: Las derivadas de la salida son:


h
y_ = x_ = Lx_ h = Lf h
x
[Lf h℄
y• = x_ = L2fh
x
De ni i on 8.2 Sean f y g dos ampos ve toriales en Rn. El or hete de
Lie de f y g se de ne omo un ter er ampo ve torial de la forma:

[f ; g℄ = rg f rf g = ad g f

Observar que al or hete de Lie se le denota tambi en omo adf g, donde


ad signi a adjunta. Su esivos or hetes de Lie se pueden de nir re ursiva-
mente:
adf 0 g = g
adf i g = [f ; adf i 1 g℄; i = 1; 2; : : :
Ejemplo 8.2

Determinar [f ; g℄ para el pro eso no lineal x_ = f (x) + gu, donde:

2x1 + ax2 + senx1 0


f= ; g=
x2 osx1 os(2x1)

Solu ion:
0 0 2x1 + ax2 + senx1
[f ; g℄ =
2sin(2x1) 0 x2 osx1
2 + osx1 a 0
x2sinx1 osx1 os(2x1)
a os(2x1)
=
osx1 os(2x1) 2sen(2x1)( 2x1 + ax2 + senx1)
408 Control No Lineal

Lema 8.1 Los or hetes de Lie satisfa en las propiedades siguientes:

1. Bilinealidad:

[ 1 f1 + 2 f2 ; g℄ = 1 [f1 ; g℄ + 2 [f2 ; g℄

[f ; 1 g1 + 2 g2 ℄ = 1 [f ; g1 ℄ + 2 [f ; g2 ℄

2. Anti onmutatividad:
[f ; g℄ = [g; f ℄

3. Identidad de Ja obi:

Lad g h = Lf Lg h
f
Lg Lf h

donde f ; f1; f2; g; g1 y g2 son ampos ve toriales, 1 y 2 son onstantes


es alares y h(x) es una fun ion diferen iable.

8.1.2 Difeomor smo y Transforma ion de Estados


El on epto de difeomor smo, que puede ser visto omo una generaliza i on
del on epto familiar de transforma ion de oordenadas, es el siguiente:

!
De ni ion 8.3 Una fun i on : R n Rn de nida en una region , se
denomina un difeomor smo si y su inversa son suaves. Si = Rn,
enton es (x) es un difeomor smo global. Si (x) se de ne en una region
nita y para un punto dado, enton es el difeomor smo es lo al.

El siguiente lema permite determinar difeomor smos lo ales.

Lema 8.2 Sea (x) una fun ion suave de nida en una region en Rn. Si el
ja obiano r es no singular en un punto x = x de , enton es (x)
de ne un difeomor smo lo al en una regi on de .

Ejemplo 8.3

Determinar el difeomor smo lo al alrededor del origen para el sistema si-


guiente:
z1 22
= (x) = 2x1+ 5x 1x
z2 3senx2
8.1 Herramientas Matemati as 409

Solu i on: El ja obiano de para x = (0; 0) es:


2 + 5x22 10x1x2 2 0
= =
x 0 3 osx2 x
03
=(0;0)
que posee rango 2, indi andonos que posee inversa porque es no singular
y onstituye un difeomor smo lo al de a uerdo al lema 8.2.

8.1.3 Transforma ion no Lineal de Estados


Un difeomor smo puede ser usado para transformar una representa i on no
lineal en otra, en t erminos 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:

x_ = f (x(t)) + Xm
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 manipu-


lada) 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 ; : : : ; fn ℄T ℄,
g = [g1 ; : : : ; gm ℄T ℄ y h = [h1 ; : : : ; hp ℄T orresponden a ampos ve toriales in-
nitamente diferen iables.
2
Asumamos la siguiente transforma i on no lineal de estados:
z = (x) = 1(x1; : : : ; xn) 3
64 .
57 (8.7)
n (x 1; : : : ; xn)
donde la fun ion de transforma i on es invertible y tanto omo su inversa
1 son in nitamente diferen iables. Notar que la transforma ion dada en la

e ua i on (8.7) es un difeomor smo. Mientras que la propiedad de inversion


de permite un retorno a los estados originales, la propiedad de diferen-
ia i on garantiza que la des rip ion del pro eso on las nuevas oordenadas
sea tambi en in nitamente diferen iable, tal omo lo es el pro eso original.
Empleando la transforma ion z = (x) en la e ua i on (8.6) obtenemos:

z_ = x_(t)
x

=
x (t)

f(x(t)) +
Xm
gj (x(t))u j (t) (8.8)
x x(t) x x(t) j=1
410 Control No Lineal

donde x es un punto de equilibrio para el ual la matriz ja obiana es no


singular, lo que signi a que su inversa existe. Luego, podemos obtener la
siguiente representa i on no lineal para el ve tor de estado z, omo sigue:

z_ = ~
f (z(t)) + X m
g~j (z(t))uj (t); ~ (z(t))
y(t) = h (8.9)
j=1

~f(z) = f ( 1
(z))
x
1
g~j (z) = gj ( (z))
x
~ (z) = h(
h 1
(z))
Observar que (8.9) onstituye un nuevo sistema no lineal on un ve tor de
estado z.

8.1.4 El Teorema de Frobenius


El teorema de Frobenius es una herramienta importante para el tratamiento
formal de la linealiza i on por realimenta ion de pro esos de orden n. Este
teorema propor iona las ondi iones ne esarias y su ientes para resolver
una lase espe ial de e ua iones on derivadas par iales. Antes de presentar
el teorema en uestion se requiere de las siguientes de ni iones:
De ni ion 8.4 Se di e que un onjunto linealmente independiente de am- pos ve
toriales [f1 ; : : : ; fm ℄ en Rn es ompletamente integrable, si y solo si existen
(n m) fun iones es alares h 1(x); h2(x); : : : ; hn m(x) que satisfa en el
siguiente sistema de e ua iones diferen iales par iales:
rh i fj = 0
donde 1 i n m, 1 j m. En adi ion, los gradientes hi son r
tambi en linealmente independientes.
La de ni i on anterior impli a la existen ia de n(m n) e ua iones diferen-
iales par iales de la forma rh f i j = 0.
De ni ion 8.5 Se di e que un onjunto linealmente independiente de am- pos
ve toriales [f1 ; : : : ; fm ℄ en Rn es involutivo, si y solo si existen fun iones
!
es alares ijk: Rn Rn tales que:

[rg f rf g℄(x) = [f ; g℄(x) =


m
X ijk(x)f k(x); 8 i; j
k=1
8.1 Herramientas Matemati as 411

Ya vimos que la nota ion [f ; g℄ es ono ida omo el or hete de Lie. Par-
tiendo de la de ni ion anterior se puede dedu ir que:
1. Los ampos ve toriales onstantes, es de ir, si fk y gk son onstantes
para ualquier k = 1; : : : ; m, son siempre involutivos puesto que:

[f ; g℄(x) = 0 = Xm

ijk(x)f k(x); 8 x; i; j
k=1

2. Un onjunto ompuesto por un solo ampo ve torial f es involutivo


porque [f ; f ℄ = 0.
3. Si un onjunto de ampos ve toriales [f1 ; : : : ; fm ℄ es involutivo, impli a
que para todo i; j:
rango [f1 (x); : : : ; fm (x)℄ = rango [f1 (x); : : : ; fm (x); [fi ; fj ℄℄

Ahora s podemos formular el teorema de Frobenius:


Teorema 8.1 (Frobenius) Sea [f1 ; f2 ; : : : ; fm ℄ un onjunto de ampos ve -
toriales linealmente independientes. Se di e que tal onjunto es integrable si
y solo si es involutivo.
Ejemplo 8.4
Considere el onjunto de e ua iones diferen iales par iales:
h h
=0
4x3 1 x2
x
h h h
2
x1 1 + (x3 3x2) x 2 + 2x3 x 3 = 0
x
donde sus ampos ve toriales aso iados poseen la forma:
f1 = [4x3 1 0℄T ; f2 = [ x 1 (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 i on: Operando, en ontramos que:
[f1 ; f2 ℄ = [ 12x3 3 0℄T
Dado que [f1 ; f2 ℄ = 3f1 + 0f2 , este onjunto de ampos ve toriales es in-
volutivo. Por onsiguiente, las e ua iones diferen iales par iales dadas son
solu ionables.
412 Control No Lineal

8.2 Grado Relativo

Dado el siguiente pro eso no lineal de una entrada y una salida:

x_ = f (x) + g(x)u; y = h(x) (8.10)

se desea obtener una rela i on 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

6
Si Lgh(x) = 0, enton es se obtiene la rela ion deseada entre y y u; en aso
ontrario, debemos seguir derivando la salida remanente y_ = Lf h(x) omo
se muestra a ontinua ion:

y• = Lf h(x)x_
x
= Lf h(x)f (x) + Lf h(x)g(x)u
x x
2
= L fh(x) + LgLf h(x)u

6
Nuevamente, si LgLf h(x) = 0, enton es se tiene la rela i on deseada. En
aso ontrario, se debe seguir derivando la salida hasta que en la r-esima
derivada la entrada u aparez a en forma expl ita, omo sigue:

yr = Lfrh(x) + LgLr f 1h(x)u; LgLrf 1


h(x) 6=
0

De ni ion 8.6 El grado relativo del pro eso univariable no lineal dado en
la e ua ion (8.10), es el nu mero de ve es r que hay que derivar la salida
hasta obtener:
LgLi fh(x) = 0; i = 1; 2; : : : ; r 2 (8.11)

LgLrf 1
h(x) 6= 0 (8.12)

para todo x que pertenez a a una region de R n.


8.3 Forma Normal de Pro esos No lineales 413

8.3 Forma Normal de Pro esos No lineales


La t e ni a de linealiza i on por realimenta ion requiere de una representa ion
no lineal bastante util del pro eso a ontrolar: la forma normal. La transfor-
ma ion no lineal de oordenadas que permite llevar un pro eso no lineal de
una entrada y una salida (e ua ion (8.10)) a su forma normal, involu ra los
terminos h(x); Lf h(x); : : : ; Lrf 1h(x), tal omo veremos mas adelante. Por
onsiguiente, tal transforma i on depende del grado relativo r del pro eso.
Empezaremos por el aso m as simple: r = n, donde n es el orden del pro eso.
La siguiente transforma ion de oordenadas:
2 1(x)
3 2 h(x) 3
2(x) Lf h(x)
z = (x) =
64 ..
7 =
..
664 75 ; y = h(x) (8.13)

n 1
n(x) Lf h(x)
on x = [x1 ; x2 ; ; xn ℄ , umple on las ondi iones de una transforma ion
T

no lineal; es de ir, es un difeomor smo basado en la hip otesis 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) + Lgh(x)u = Lf h(x) = 2(x)
= z2
.
n 1 (x)
z_n 1 = x_
x
2
Ln h(x)
= f
[f (x) + g(x)u℄
x
= Lfn 1h(x) + LgLnf 2h(x)u = Lnf 1h(x) = n(x)

= zn
z_n = Lfnh(x) + LgLnf 1h(x)u
= Lnf h( 1(z)) + LgLn f1h( 1
(z))u = b(z) + a(z)u

y = z1 (8.14)
414 Control No Lineal

6
Notar que en la e ua i on anterior, a(z) = 0 por de ni i on, ya que en este
aso r = n.
Cuando el pro eso no lineal posee rango r < n, enton es el ambio de o-
ordenadas desarrollado anteriormente ondu e a una transforma i on par ial,
en vista de que solo se pueden de nir r fun iones de la forma 1(x); : : : ; r(x)
linealmente independientes. Sin embargo, es posible agregar n r fun iones
de la forma r+1(x); r+2(x); : : : ; n(x), de modo tal que (x) sea un difeo-
mor smo. Con ello, la forma normal del pro eso (8.10) resulta en la siguiente
representa i on en el espa io de estado:

z_1 = z2
z_2 = z3
..
z_r 1 = zr
z_r = Lfrh( 1(z)) + L gLr f1h( 1
(z))u = b(z) + a(z)u
z_r+1 = w1(z)
..
z_n = wn r(z)
y = z1 (8.15)

donde w1; w2; : : : ; wn r son fun iones suaves que dependen del nuevo estado
z y no de la entrada manipulada u.

8.4 Linealiza i on Exa ta y la Ley de Control

La linealiza ion exa ta se re ere a tratar on pro esos no lineales de grado


r = n. En tales pro esos es posible determinar una ade uada realimenta i on
no lineal que onduz a a una linealiza i on exa ta del pro eso original. El
pro eso puede ser univariable ( on una entrada y una salida) o multivariable
( on mu ltiples entradas y mu ltiples salidas). Nosotros solo nos o uparemos
del aso univariable.
Hemos visto que un ambio de oordenadas de la forma z = (x), des-
rito en la e ua ion (8.13) y apli ado al pro eso no lineal de la e ua ion
(8.10), produ e un onjunto de nuevas oordenadas (la nueva representa i on
en el espa io de estado) que poseen la forma dada en (8.14), e ua ion que
8.4 Linealiza ion Exa ta y la Ley de Control 415

volvemos a rees ribir a ontinua i on:

z_1 = z2
z_2 = z3
.
z_n 1 = zn
1 1 1
z_n = Lnf h( (z)) + Lg Lnf h( (z))u = b(z) + a(z)u
y = z1 (8.16)

Si se de ne una sen
~al de realimenta ion u (la ley de ontrol no lineal) de la
forma:
1
u= [ b(z) + v℄ (8.17)
a(z)
donde v es una nueva entrada, enton es el nuevo onjunto de e ua iones
viene a ser:

z_1 = z2
z_2 = z3
.
z_v = v
y = z1 (8.18)

que en forma ompa ta resulta en la siguiente representa i on lineal en el


espa io de estado:
z_ = Ax + Bv; y = Cx (8.19)
donde:
2 0 1 0 ::: 0 3 2 3
0

6 7
0 0 1 ::: 0 0
A= 66 . . . . . 77 ; B= . ; C= 1 0 ::: 0 0 (8.20)
4 0 0 0 ::: 1
0 0 0 ::: 0
5 46 75
0

1
Observar que la nueva entrada del pro eso lineal es v. La gura 8.1 mues-
tra el pro eso de linealiza i on des rito hasta ahora. El pro eso lineal de la
e ua i on (8.19) es ompletamente ontrolable y ompletamente observable,
416 Control No Lineal

ya que sus matri es de ontrolabilidad [B AB : : : An 1 B℄ y de observabi-


lidad [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 i on de transferen ia resulta:
y(s) 1
= C[sI A℄ 1 B = (8.21)
v(s) sn

v u x
- - + - x_ = f (x) + g(x)u
6 6 z
b(z) z = (x)
a(z)
1 y
a(z) ?- C -

Figura 8.1: Linealiza ion por realimenta i on.

Respe to al pro eso de linealiza ion desarrollado, debemos remar ar lo


siguiente:
El sistema de lazo errado resultante ( gura 8.1) es lineal, ompleta-
mente ontrolable y ompletamente observable. Por onsiguiente, el
problema de ontrol a resolver, ya sea de regula ion o de seguimiento
de traye torias, queda resuelto disen
~ando v on ualquier te ni a de
ontrol lineal ono ida.
En general, la realimenta ion no lineal requiere de todo el ve tor de
estado z, por lo que es ne esario que todos sus elementos sean medi-
bles. De lo ontrario, estamos obligados a estimarlos empleando un
observador no lineal, omo veremos mas adelante.

Condi iones para Linealiza i on Exa ta


La linealiza ion desarrollada anteriormente fue posible debido a la existen ia
de una fun ion de salida h(x) respe to a la ual el pro eso no lineal original
8.4 Linealiza ion Exa ta y la Ley de Control 417

tiene grado relativo r = n. Resaltemos que un pro eso no lineal univariable


omo el de la e ua ion (8.10) posee grado r = n uando la fun ion h(x),
para un entorno alrededor del punto de opera i on x , satisfa e:

Lgh(x) = LgLf h(x) = = LgLfn 2h(x) = 0


Lg Lnf 1
h(x) 6= 0 (8.22)

Las ondi iones para linealiza i on exa ta pueden ahora ser rigurosamente
formalizadas.
Teorema 8.2 El pro eso univariable no lineal de la e ua ion (8.10):

x_ = f (x) + g(x)u

donde f (x) y g(x) son ampos ve toriales suaves, es linealizable si y s olo si


existe una region en donde se umplen las ondi iones siguientes:
1. Los ampos ve toriales:
1
[g; adf g; : : : ; adnf g℄

son linealmente independientes en , lo que equivale a de ir, que el


rango de la matriz resultante [.℄ debe ser igual al orden n del pro eso.

2. El onjunto:
2
[g; adf g; : : : ; adnf g℄
es involutivo en .
La primera ondi ion puede ser interpretada omo una ondi i on de on-
trolabilidad dado que los ampos ve toriales [g; adf g; : : : ; adfn 1 g℄ apli a-
dos a pro esos lineales se onvierten en la ono ida matriz de ontrolabilidad
[B; AB; : : : ; An 1 B℄. El rango de esta matriz debe ser n para que el pro eso
lineal (entendi endose que el modelo del pro eso es lineal) sea ompletamente
ontrolable (subse ion 2.3.6). Sin embargo, puede o urrir que un sistema
no lineal sea ontrolable, mientras que su modelo linealizado no lo es. Por
ello, la primera ondi i on puede onsiderarse omo una generaliza i on de la
ondi i on de ontrolabilidad.
La ondi ion involutiva es menos intuitiva. Para sistemas lineales, tal
ondi i on se satisfa e trivialmente ya que los ampos ve toriales son ons-
tantes. Pero, en general, no se puede de ir lo mismo uando se trata on
pro esos no lineales.
418 Control No Lineal

8.5 Observadores No Lineales


El estudio de la observabilidad en sistemas lineales tiene su base en la matriz
de observabilidad, que para sistemas univariables no forzados de la forma:
x_ = Ax(t); y(t) = Cx(t)
se de ne omo:
2 C 3
O= 64 CA
.
75 (8.23)

CAn 1
El aso no lineal y no forzado que nos o upa posee la des rip ion:
x_ = f (x); y(t) = h(x) (8.24)
uya orrespondiente matriz de observabilidad generalizada es:
2 h(x)
Lf h(x)
3
57
(8.25)
O(x) , x 64 .
L h(x) fn 1
Es fa il demostrar que si f (x) = Ax y h(x) = Cx, las matri es de
observabilidad de las e ua iones (8.23) y (8.25) se igualan. Supongamos que
la matriz O(x) posea inversa para todo x. En tal aso, la transforma i on
de nida por:

L
2
h(x) 3
z = (x) = f h(x)
(8.26)
x
.64 57
f
Ln 1h(x) los resultados anteriores
representa un ambio de oordenadas. Empleando
y en analog a on la e ua i on (8.16); la des rip i on en el espa io de estado
para las nuevas oordenadas (notar que g = 0) es:
2 z_1 3 2 z2 3
6 z_2
7 6 z3
77
64 .
z_n 1 75=
64 .
zn
;
5
y=z
1
(8.27)

z_n Lf nh[ 1(z)℄


8.5 Observadores No Lineales 419

que posee la forma matri ial siguiente:


1
z_ = Az + BLnf h( (z)); y = Cz (8.28)
donde:
2 0 1 0 ::: 0 3 2 3
0

A= 66 0 0 1 ::: 0
. . . . . 77
; B= 6 7
0
. ; C= 1 0 ::: 0 0 (8.29)
4 0 0 0 ::: 1
0 0 0 ::: 0
5 46 75
0

Se puede demostrar que la matriz de 1 observabilidad del pro eso des rito
en la e ua i on (8.28) es la matriz identidad. Por onsiguiente, tal pro eso es
ompletamente ontrolable. Conforme a las rela iones (8.24), (8.25) y (8.26)
se tiene que:

z_ = x_ = O(x)f (x)
x
= Az + BLnfh( 1(z))
y = Cz (8.30)
El observador a disen~ar debe estimar el ve tor de estado z; es de ir, debe
determinar su estimado ^ z empleando las medi iones a la entrada y a la salida
del pro eso. Ha iendo una extensi on de los bien ono idos observadores
lineales (subse i on 2.3.6), para el observador no lineal podemos onsiderar
la din ami a siguiente :
d^
z
= A^ z + BLnf h( 1 (z)) + L[y C^ z℄; y^ = Cx
^ (8.31)
dt
donde observamos que el t ermino L[y C^ z℄ es propor ional al error entre la
salida del pro eso y y la salida del observador y^. Para obtener la expresion
del observador para los estados x(t) del pro eso no lineal, empleamos la
version estimada de la e ua ion (8.30) que nos permite despejar el ve tor de
estado estimado dx ^ =dt omo sigue:
dx^ d^
z
= O 1 (x^)
dt dt
y usando la rela i on (8.31) obtenemos:
dx
^
dt
= O 1 (x ^) A^ f
z + BLnf h( 1 (z)) + L[y z℄
C^ g
= O 1 (x ^) O(x f
^)f (x
^) + L[y C^ z℄ g
1
= f (x ^) + O (x ^)L[y h(x ^)℄ (8.32)
420 Control No Lineal

que es la e ua ion del observador no lineal para el sistema no forzado


^(0), siempre que O 1 (x) exista.
x_ = f (x), y = h(x), on ondi ion ini ial x
Notar que tambi en hemos usado el he ho de que:
1
y^ = h(x
^) = h( (^
z)) = C^
z

Para el aso de pro esos no lineales forzados on grado relativo r = n,


y teniendo en uenta la transforma ion a ostumbrada z = (x), enton es el
sistema on las nuevas oordenadas resulta:
1
z_ = Az + B[Lnf h( (z)) + Lg Lnf 1 h( 1
(z))u℄ (8.33)

Luego, por extensi on (ver e ua i on (8.31)), la din ami a del observador para
el sistema forzado:

x_ = f (x) + g(x)u; y = h(x)

tiene la forma:
d^
z 1 1 1
z + BLnf h(
= A^ z)) + L g Lnf
(^ h( (z^))u + L[y z℄
C^ (8.34)
dt
que debe umplir on los requerimientos siguientes: que el pro eso posea
grado relativo r = n, que su matriz de observabilidad sea invertible y que la
entrada u sea uniformemente a otada. La e ua i on del observador para el
sistema original toma la forma siguiente:
dx
^ 1
= f (x
^) + g(x
^)u + O L[y(t) ^)℄
h(x (8.35)
dt
para una ondi ion ini ial x
^(0).

C al ulo de la Matriz de Ganan ia L del Observador


Dado que el par [A; C℄ dado en (8.29) es ompletamente observable, una
forma de obtener L es apli ar la ono ida formula del observador lineal [3℄:
2 an 3
L = (W N ) T 1
64 n
.
. 57 (8.36)

1 a1
donde n es el orden del pro eso, y:

N= CT AT C T (AT )n 1 C T
8.6 Pro edimiento de Disen
~o 421

2 an 1 an 2 a1 1 3
66 an 2 an 3 1 0 7
W =
4 1
.
a1
.
1
0
. .
0
0
0
0
75
Los parametros ai, i = 1; : : : ; n, se obtienen de la e ua ion:

jsI j
A = sn + a 1 s n 1
+ + an 1s + an

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 i on ara ter sti a del observador:

(s 1) (s 1) = sn + 1s n 1 + + n 1s +n

y deben tener parte real negativa para garantizar la estabilidad del obser-
vador no lineal.

8.6 Pro edimiento de Disen


~o
El pro edimiento para disen ~ar el sistema de ontrol no lineal basado en la t
e ni a de linealiza ion por realimenta ion es omo sigue:
1) Formular el problema (de nir espe i a iones de disen
~o).
2) Determinar el modelo no lineal ontinuo del pro eso.
3) Determinar el grado relativo del modelo no lineal ontinuo del pro eso
(subse i on 8.2).

4) Comprobar que se umplen las ondi iones de linealiza i on exa ta del


modelo no lineal ontinuo del pro eso (subse i on 8.4).
5) Determinar la forma normal del pro eso no lineal (subse ion 8.3).
6) Implementar la linealiza i on por realimenta i on de estado y la ley de
ontrol no lineal (subse ion 8.4).
7) Disen
~ar el observador no lineal de estados (si fuera ne esario).

8) Simular el sistema de ontrol no lineal on el proposito de prede ir un


rendimiento satisfa torio.
422 Control No Lineal

9) Implementar el hardware.

10) Implementar el software de ontrol.

11) Realizar pruebas de fun ionamiento (resultados experimentales).

8.7 Control No Lineal de un Servosistema


8.7.1 Formula i on del Problema
El servomotor D.C. on arga no lineal mostrado en la gura 3.9 y des rito en
la se ion 3.3, es un pro eso de una entrada y una salida. Este servomotor
posee un engranaje redu tor de velo idad y puede ser ontrolado por el
voltaje de armadura. La arga no lineal es una varilla met ali a a oplada
perpendi ularmente al eje del servomotor, a manera de un brazo roboti o de
un grado de libertad. En el extremo libre de di ha varilla se pueden a oplar
argas adi ionales. De esta manera la arga no lineal se ha e variable.
El objetivo de ontrol es disen ~ar e implementar un sistema de ontrol
no lineal basado en la t e ni a de linealiza ion por realimenta i on, de modo
tal que la varilla se posi ione en una referen ia predeterminada o siga una
traye toria en el rango de 0 a 2 rad. El sobreimpulso de la respuesta
debe ser m nimo no obstante la presen ia de la arga no lineal y de las no
linealidades del pro eso, omo las fri iones est ati a y de Coulomb, y la
satura ion en el ampli ador de poten ia.
Las deriva iones que siguen a ontinua ion orresponden a dos asos del
pro eso:

1. Modelo no lineal de ter er orden del pro eso uando onsideramos que
la indu tan ia de armadura L es no despre iable.

2. Modelo no lineal de segundo orden del pro eso uando se despre ia la


indu tan ia L.

8.7.2 Modelo del Pro eso


Modelo No Lineal de Ter er Orden (L 6= 0)
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 sen
~al de ontrol u va a ser ompensada en software de los efe tos de la
8.7 Control No Lineal de un Servosistema 423

fri i on estati a y fri ion de Coulomb, enton es el pro eso no lineal puede
ser des rito mediante la siguiente representa i on en el espa io de estado:

x_ = f (x) + g(x)Ka t u; y = h(x) (8.37)


donde:

2 N
x
B 2 1 nK
3
f (x) =
4( M )senx1 M x2 M TN + M x3
5
23
0
nE
L x2 R x
L 3 +KaLtu

g(x) =
45
01 ; h(x) = x1 (8.38)

Los elementos del ve torL de estado [x1 x2 x3 ℄T son la posi ion angular, la
velo idad angular y la orriente de armadura, respe tivamente, y K a t u es la
tensi on de armadura. Notar que el modelo del pro eso no lineal es ontinuo
y diferen iable.
El t ermino no lineal TN debido a las fri iones estati a y de Coulomb,
puede no onsiderarse, dado que sus efe tos van a ser ompensados por
software uando el sistema de ontrol no lineal se implemente en tiempo
real.

Modelo No Lineal de Segundo Orden (L = 0)


El modelo no lineal de segundo orden del pro eso es (subse ion 3.3):

x2
x_ = BR+n2 KE TN N nKa tK = f (x) + g(x)u
MR x2 M M senx 1 + MR u
y = h(x) = x1 (8.39)

donde:

x2 0
f (x) = BR+n2 KE TN N ; g(x) = nKa tK
MR x2 M M senx 1 MR

Al igual que en el aso anterior (L no despre iable), el termino no lineal


TN debido a las fri iones estati a y de Coulomb, puede no ser tomado en
uenta, dado que su efe to va a ser ompensado por software.
424 Control No Lineal

8.7.3 Determina ion del Grado Relativo


Grado Relativo del Pro eso No Lineal de Ter er Orden
De a uerdo a lo estable ido en la subse i on 8.2, empleamos las derivadas
de Lie en el modelo del pro eso no lineal de ter er orden omo sigue:

Lf h(x) = rh(x)f (x) = x 2 (8.40)


LgLf h(x) = r(L h(x))g(x) = 0
f (8.41)
B nK
L2f h(x) = r(L h(x))f (x) = N senx
f
M
1
M
x2 +
M
x3 (8.42)

Lg L2f h(x) = r(L h(x))g(x) = nK


2
f
ML
6= 0 (8.43)

por onsiguiente, el rango del pro eso respe to a la salida y es r = 3. Ello


impli a que el pro eso en uesti on es ompletamente linealizable.

Grado Relativo del Pro eso No Lineal de Segundo Orden


De a uerdo a lo estable ido en la subse i on 8.2, empleamos las derivadas
de Lie en el modelo del pro eso no lineal de segundo orden omo sigue:

Lf h(x) = rh(x)f (x) = x 2 (8.44)


Lg Lf h(x) = r(L h(x))g(x) = nKMa tRK 6= 0
f (8.45)

Por onsiguiente, el rango del pro eso respe to a la salida y es r = 2. Ello


impli a que el pro eso en uesti on es ompletamente linealizable.

8.7.4 Comprobar Linealiza i on Exa ta


Linealiza ion Exa ta del Modelo Lineal de Ter er Orden
Para apli ar las ondi iones de linealiza i on estable idas en el teorema 8.2,
debemos al ular:
r
2
adf g = [f ; g℄ = g f
0 1 0
f g
32 r3 2 3
0 0
=
4 N
osx 1

M
B nK

M
54 5 4 50
1 =
nK
R
ML
M 0nE
L
R
L L L2
ad2f g = [f ; adf g℄ = r(ad g) f rf ad g
f f
8.7 Control No Lineal de un Servosistema 425

2 32 3 2 3 nK
0 1
54 5 4
0
5 0 ML nKR
N B nK nK nKB

= 4 M osx1
L MR
L
M ML =
ML2
22
nMKEL ML 2R2

+
3
0 nE LR2 nK

2 0 0 nKB
ML nKR
L3

[g adf g ad2 g℄ =
4
f
5 0
1
L
nK
ML
R
L2
M 2 L2
ML
n KE
2 +
ML2
L3
R2

Dado que:
2 n2K 2
det[g adf g adf g℄ = 3 3
M L
enton es tal onjunto est a onformado por ampos ve toriales linealmente
independientes. Por otra parte, el onjunto:
[g adf g℄
es involutivo porque es onstante.

Linealiza i on Exa ta del Modelo Lineal de Segundo Orden


Como en el aso anterior, para apli ar las ondi iones de linealiza i on es-
table idas en el teorema 8.2, debemos al ular:
adf g = [f ; g℄ = rg f rf g
Es f a il demostrar que:
2
nKa t K
det[g adf g℄ =
MR
lo que signi a que tal onjunto est a 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

3 2
La forma normal del pro eso en estudio puede ser obtenida mediante la

2
transforma i on no lineal z = (x) del estado x, omo sigue:
z1 = (x) =
3 2 3
z= 4 5 z2
z3
h(x)
4 Lf h(x)
Lf2h(x) 54=
x1

N sinx1
x2
B x2 nK x3
5
M M M
(8.46)
426 Control No Lineal

Notar en la u ltima e ua ion que el nuevo estado z posee signi ado f si o,


puesto que z1 es la posi i on del eje del servomotor, z 2 es su velo idad angular
3 2
y z3 su a elera i on. El estado original x expresado en fun i on del nuevo

2
estado z est a dado por:
x1 = 1(z) = 3
x= x24 5
x3
4 N
senz 1 +
z1
z2
B
z + MnKz3
5
nK nK 2
De a uerdo a la subse i on 8.3, las nuevas oordenadas resultan: z_1
= z2
z_2 = z3
1 1
z_3 = L3f h( (z)) + Lg L2fh( (z)) (8.47)
(8.48)
donde:
r
L3f h(x) = (L3f h(x)) f (x)
N B N B nK nK nE R
= osx 1x 2 senx1 x2 + x3 + x2 x3
M M M M M M L L
2 nKa tK
L L h(x) =
g f
ML
Luego, la forma normal del pro eso resulta:
z_1 = z2
z_2 = z3
N NR n2 KE BR B R
z_3 = osz1 z2 senz1 + z 2 + z 3
M ML ML ML M L
nKa tK
+ u
ML
y = z1 (8.49)

Forma Normal del Modelo No Lineal de Segundo Orden


El modelo no lineal de segundo orden del pro eso, sin onsiderar el termino

x_ =
h
no lineal TN es (ver e ua i on 8.39):
x2 BR+n2 KE N nKa tK
i
MR x2 M senx1 +
MR u = f (x) + g(x)u
y = h(x) = x1 (8.50)
que de he ho ya se en uentra en su forma normal.
8.7 Control No Lineal de un Servosistema 427

8.7.6 La ley de Control No Lineal


Ley de Control No Lineal para el Modelo de Ter er Orden
La forma normal para linealiza ion exa ta del pro eso est dada en la
e ua ion (8.49). Reemplazamos en di ha e ua ion la siguiente ley de ontrol:
1
u = [v L2h(f 1(z))℄
L gL2f h( 1(z))
ML N
= v+ osz z + N Rsenz
1 2 1
nK M ML
2
n KE BR B R
+ + z 2+ + z3 (8.51)
ML ML M L
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 3 2 53
A= 4 0 1 0
0 0 1
0 0 0
5; B= 40
1
0
;C = 1 0 0

La fun i on de transferen ia del pro eso lineal equivalente se obtiene de:


y(s) 1
= C(sI A) 1 B =
v(s) s3
O lo que es lo mismo:
d3y(t)
=v (8.53)
dt
El pro eso de linealiza ion desarrollado se ilustra en la gura 8.2.
Ahora se debe disen ~ar v de modo tal que y = z1 siga una traye toria
deseada r(t). El siguiente ontrol logra tal objetivo:
d3r d2(r y) d(r y)
v = 3 K1 K2 K 3 (r y) (8.54)
dt dt2 dt
428 Control No Lineal

v Realimentacion Proceso y
no lineal no
u = u(z,v) lineal
z x
z  x 

v  y
Proceso lineal s3
equivalente

Figura 8.2: Linealiza ion del pro eso no lineal y su pro eso lineal equivalente.

Reemplazando (8.54) en (8.53) obtenemos la e ua i on del sistema de lazo


errado:
d3(r y) d2(r y) d(r y)
K1 K2 K3 (r y) = 0
dt3 dt2 dt
donde los parametros K1, K2 y K3 determinan la din ami a del error r y. Si
!
se desea que y r uando t !1
, enton es los eigenvalores de la e ua ion
anterior deben poseer parte real negativa. Por ejemplo, si deseamos que los
eigenvalores sean s 1 = s2 = s3 = 4, enton es la e ua i on del sistema de
lazo errado resulta s3 + 12s2 + 48s + 64, de donde se obtiene: K 1 = 12,
K2 = 48 y K3 = 64. La expresion de v en fun i on de la traye toria de referen
ia resulta:
d3r d2r dr
v= + K1 + K2 + K3r Kz (8.55)
dt3 dt2 dt
donde:
2 35
K=
y•
4 y

K KK ; z = y_1 2
Finalmente, la sen ~al de3 ontrol u puede ser obtenida reemplazando (8.55)
en (8.51), lo que resulta en:

ML dr 3 d2r dr N
u = + K3 1 + K2 + K3 r Kz + osz 1z 2
nK dt dt2 dt M
8.7 Control No Lineal de un Servosistema 429

NR 2
n KE BR B R
+ senz 1 + + z 2 + + z3 (8.56)
ML ML ML M L

Ley de Control No Lineal para el Modelo de Segundo Orden


La siguiente ley de ontrol:

MR 2
BR + n KE N
u= v+ x 2 + senx 1 (8.57)
nKa tK MR M
linealiza ompletamente el modelo del pro eso dado en (8.50), donde v es una
nueva entrada por disen ~arse. Al apli ar la sen~ al de ontrol anterior, el
modelo del pro eso ompletamente linealizado queda omo:

x_1 = x2
x_2 = v
y = x1 (8.58)

Tal onjunto de e ua iones representa un doble integrador. Es de ir:


d2y
=v
dt2
La sen~ al v debe disen
~arse de modo tal que y = x1 siga una traye toria de
referen ia r(t). La siguiente sen
~ al v:

d2r d(r y)
v= K1 K2(r y)
dt2 dt
logra que el sistema de lazo errado tenga la forma:

d2(r y) d(r y)
+ K1 + K2(r y) = 0
dt2 dt
donde K1 y K2 determinan la din ami a del error (r y). Si se desea que
!
y r uando t !1 , enton es los eigenvalores de la e ua ion anterior deben
poseer parte real negativa. Por ejemplo, si deseamos que los eigenvalores
sean s1 = s2 = 4, enton es la e ua i on del sistema de lazo errado resulta
s2 + 8s + 16, de donde se obtiene: K1 = 8 y K2 = 16 y K3 = 64. La expresi
on de v en fun i on de la traye toria de referen ia resulta enton es:
d2r dr
v= + K1 + K 2r Kx (8.59)
dt2 dt
430 Control No Lineal

donde: 23
K=
y•
4 5 y

KK ; z = y1_
Finalmente, la sen ~al de ontrol
2 u puede obtenerse reemplazando (8.59) en
(8.57), lo que resulta en:
M R d r2 dr
u = + K 1 + K2 r K x
2
nKa tK dt dt
2
BR + n KE N
+ x2 + senx 1 (8.60)
MR M

8.7.7 Disen
~ o del Observador No Lineal de Estados
Observador No Lineal para el Modelo de Ter er Orden
Dado el modelo no lineal del pro eso de ter er orden:
x_ = f (x) + g(x)u; y = h(x)
su orrespondiente matriz de observabilidad puede obtenerse apli ando la
e ua ion (8.25) omo sigue:
2 h(x) 3 2 x1 3
O(x) =

x
4 Lxh(x)

L2xh(x)
5 4 =
x N senx1
x2
B
M x2 + nK 5
=
24 1
0
35
0
1
0
0
M M x3
(8.61)

N B nK
senx1
M M M
Claramente vemos que:
nK
det[O(x)℄ =
2 M
0

lo que signi a que O(x) posee inversa. Esta inversa es:


O 1(x) =
1 0 0 3
N
40

nK
osx1 B
1 0

nK nK
M
5
Por onsiguiente, la e ua i on del observador es:
dx
^
= f (x ^)u + O 1 L[y(t)
^) + g(x ^)℄
h(x
dt
y^ = h(x ^) (8.62)
8.7 Control No Lineal de un Servosistema 431

Observador No Lineal para el Modelo de Segundo Orden


Como en el aso anterior, onsideremos el modelo no lineal del pro eso de
segundo orden, que posee la forma:

x_ = f (x) + g(x)u; y = h(x)

La orrespondiente matriz de observabilidad puede obtenerse apli ando la


e ua i on (8.25) omo sigue:

h(x) x1
O(x) = =
x Lx h(x) x x2
1 0
= B nK (8.63)
0 1M M

La din ami a del observador queda des rita enton es por:

dx
^ 1
= f (x
^) + g(x
^)u + O L[y(t) ^)℄
h(x
dt
y^ = h(x^) (8.64)

Cabe anotar que en este aso el observador es util para estimar la velo i-
dad angular x2. Sin embargo, por software podemos tambi en estimar x2,
sabiendo que es la derivada de x 1.

8.7.8 Simula i on del Sistema de Control No Lineal


Simula ion Empleando el Modelo No Lineal de Ter er Orden
La gura 8.3 muestra el diagrama de bloques del sistema de ontrol no lineal
a simular. Se desea que los polos del sistema realimentado linealizado sean:
p p
s1 = 40; s2 = 10 2 10j; s2 = 10 2 + 10j

Por onsiguiente, el polinomio ara ter sti o toma la forma:

(s s1)(s s2)(s s 3 ) = s 3 + K1 s 2 + K 2 s + K3

de donde resulta:
p p
K1 = 40 + 20 2; K2 = 300 + 800 2; K3 = 12000
432 Control No Lineal

Sistema lineal equivalente

r Realimentacion v Realimentacion u Proceso y


lineal no lineal no
v = v(r, z ) u = u( z ,v) lineal

z z z
z =  (x)

Figura 8.3: Sistema de ontrol no lineal.

La gura 8.4 (ar hivo disnl1.m) muestra el diagrama SIMULINK para la


simula i on del sistema. En el ambiente de trabajo de MATLAB, ada sub-
sistema de la gura 8.4 puede ser visualizado a voluntad. En el subsistema
Pro eso no lineal se ha olo ado la ondi i on ini ial x1(0) = 1 rad. Los
resultados de la simula ion se muestran en la gura 8.5, donde podemos
observar que la sen~ al ontrolada sigue exa tamente a la traye toria de refe-
ren ia (una sen
~al sinusoidal), en tanto que la magnitud de la sen~al de ontrol
j j
u no sobrepasa el l mite previamente estable ido de u < 1:4 volt. Para ini-
iar la simula ion empleando la gura 8.4, previamente se requiere eje utar
el programa de datos disnl1p.m.

% disnl1p.m PARAMETROS PARA LA SIMULACION DEL SISTEMA DE


% CONTROL NO LINEAL DE TERCER ORDEN
lear all
% PARAMETROS DEL PROCESO (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);
% GANANCIA DEL SISTEMA LINEALIZADO
K1=40+20*sqrt(2); K2=300+800*sqrt(2); K3=12000;
% GRAFICOS
load disnl1_x1; load disnl1_r; load disnl1_u;
8.7 Control No Lineal de un Servosistema 433

disnl1_u disnl1_x
u x

Mux

gráfico
Señal v Señal de Proceso Mux
control u no lineal

Referencia
r Conversión disnl1_r
de x a z referencia r

Figura 8.4: Simula i on del sistema de ontrol no lineal de orden 3.

lg = size(disnl1_x1,1); % LONGITUD DE LAS MUESTRAS


ejex = linspa e(0,20,lg);
subplot(2,1,1)
plot(ejex,disnl1_r,'-',ejex,disnl1_x1); grid
ylabel('Posi ion (radianes)')
xlabel('Tiempo en segundos')
subplot(2,1,2)
plot(ejex,disnl1_u); grid
ylabel('Se~nal de ontrol (voltios)')
xlabel('Tiempo en segundos')
print -f -deps disnl1r % CREA ARCHIVO disnl1r.eps

Simula ion Usando el Pro eso de Ter er Orden on Observador


La gura 8.6 muestra el diagrama de bloques del sistema de ontrol no lineal
a simular. Notar que se ha in luido el observador no lineal. Se desea que
los polos del sistema realimentado linealizado sean:
p p
s1 = 40; s2 = 10 2 10j; s2 = 10 2 + 10j

Por onsiguiente, el polinomio ara ter sti o toma la forma:


(s s1)(s s2)(s s3) = s3 + K1s2 + K2s + K3
434 Control No Lineal

1.5

Posición (radianes)
1

0.5

−0.5

−1
0 2 4 6 8 10 12 14 16 18 20
Tiempo en segundos

1.5
Señal de control (voltios)

0.5
0

−0.5

−1
−1.5
0 2 4 6 8 10 12 14 16 18 20
Tiempo en segundos

Figura 8.5: Resultado de la simula ion del sistema de ontrol no lineal em-
pleando un modelo no lineal de ter er orden.

Sistema lineal equivalente

r Realimentacion v Realimentacion u Proceso y


lineal no lineal no
v = v(r, z ) u = u( z ,v) lineal

z z
z =  (x) Observador
no lineal
z

Figura 8.6: Sistema de ontrol no lineal on observador.

de donde resulta:
p p
K1 = 40 + 20 2; K2 = 300 + 800 2; K3 = 12000

La gura 8.7 (ar hivo disnl2.m) muestra el diagrama SIMULINK para la


simula i on. En el ambiente de trabajo de MATLAB, ada susbsistema de la
gura 8.7 puede ser visualizado a voluntad. Los resultados de la simula ion
8.7 Control No Lineal de un Servosistema 435

se muestran en la gura 8.8, donde podemos observar que la sen ~ al ontro-


lada sigue exa tamente a la traye toria de referen ia (una sen
~ al sinusoidal).
Para ini iar la simula i on empleando la gura 8.7, previamente se requiere
eje utar el programa de datos disnl2p.m, pues en este programa se en uen-
tran los valores de los par ametros del sistema, as omo tambi en el al ulo
de la matriz de ganan ia L.

disnl2_u
u
Mux

gráfico
Señal u Proceso Mux
Señal v no lineal
disnl2_x1
x1
Referencia disnl2_r
r ConversiónObservador r
de x a z no lineal

Figura 8.7: Simula i on 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

Simula i on Empleando el Pro eso de Segundo Orden


La gura 8.3 muestra diagrama de bloques del sistema de ontrol no lineal
a simular. Se desea que los polos del sistema realimentado linealizado sean
s1 = 4 y s2 = 4. Por onsiguiente, el polinomio ara ter sti o toma la
forma:
(s s1)(s s2) = s2 + K1s + K2
8.7 Control No Lineal de un Servosistema 437

Posición (radianes)
0.5

−0.5

−1
0 2 4 6 8 10 12 14 16 18 20
Tiempo en segundos

3
Señal de control (voltios)

−1
0 2 4 6 8 10 12 14 16 18 20
Tiempo en segundos

Figura 8.8: Resultado de la simula i on del sistema de ontrol no lineal de


ter er orden.

de donde resulta: K1 = 8 y K2 = 16.


Esta vez vamos a simular el sistema de ontrol no lineal mediante dis-
retiza i on dire ta del sistema ontinuo. La razon es que la implementa ion
en tiempo real del sistema de ontrol se va a realizar digitalmente. El pro-
grama disnl3.m realiza la simula i on del sistema y los resultados se pueden
ver en la gura 8.9. Es importante anotar que en el programa de simula i on
disnl3.m se ha in luido la ompensa ion de la fri i on no lineal de Coulomb
y la limita ion de la sen~ al de ontrol para evitar saturar el ampli ador.
Con el prop osito de suavizar los efe tos de las derivadas presentes en la
sen
~al de ontrol u emplearemos la siguiente formula no re ursiva para la
derivada:
dr 1
= [r(k) + 3r(k 1) 3r(k 2) r(k 3)℄
dt 6
donde T es el tiempo de muestreo. Tal formula se obtiene al ulando el
promedio temporal r :

1
r = [e(k) + e(k 1) + e(k 2) + e(k 3)℄
4
438 Control No Lineal

para luego aproximar la derivada on rela ion a r, omo sigue:


dr 1 r(k) r r(k 1) r r(k 2) r r(k 3) r
= [ + + + ℄
dt 4 1:5T 0:5T 0:5T 1:5T
% disnl3.m DISE~NO DEL SISTEMA DE CONTROL NO LINEAL
% EMPLEANDO MODELO DE SEGUNDO ORDEN DEL PROCESO
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; % tambien 10, 20, 45; K =
31.071e-3; n = 19.741; L = 4.64e-1; %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);
% POLOS DEL SISTEMA LINEALIZADO REALIMENTADO: -4 y -4
pol = onv([1 4℄,[1 4℄); % POLINOMIO CARACTERISTICO
K1 = pol(2); K2 = pol(3);
% CONDICIONES Y PARAMETROS 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.05;
% LAZO DE CONTROL
for k=4:MM
r(k) = sin(0.2*k*T); % TRAYECTORIA DE REFERENCIA
% 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);
% SE~NAL DE CONTROL
u(k) = (M*R/(Ka t*n*K))*(ddr(k) + K1*dr(k) + K2*r(k) ...
- K2*x1(k) - K1*x2(k) ...
+ (B*R+n^2*K*E)/(M*R)*x2(k) + (N/M)*sin(x1(k)) );
TN = *sign(x2(k)); % torque de fri ion de Coulomb
% COMPENSANDO FRICCION
if(x2(k) > 0)
u(k) = u(k) + R* /(n*K*Ka t);
elseif(x2(k) < 0)
8.7 Control No Lineal de un Servosistema 439

u(k) = u(k) - R* /(n*K*Ka t);


end
% EVITANDO SATURACION DEL ACTUADOR
if(u(k) > 1.4)
u(k) = 1.4;
elseif(u(k) < -1.4)
u(k) = -1.4;
end
% PROCESO NO LINEAL DE SEGUNDO ORDEN DISCRETIZADO
x1(k+1) = x1(k) + T*x2(k);
x2(k+1) = x2(k) + T*( - (N/M)*sin(x1(k)) ...
- (B/M + n^2*K*E)/(M*R)*x2(k) ...
- (1/M)*TN + n*K*Ka t/(M*R)*u(k) );
end % FIN DEL LAZO DE CONTROL
% GRAFICOS
ejex = linspa e(0,MM*T,MM-3);
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 (voltios)')
xlabel('Tiempo en segundos')
print -f -deps disnl3 % rea disnl3.eps

8.7.9 Implementa ion del Hardware


El hardware empleado en la implementa ion en tiempo real del sistema de
ontrol no lineal es similar al empleado para la implementa ion en tiempo re-
al de los sistemas de ontrol adaptivo, predi tivo y robusto. Di ho hardware
se des ribe en detalle en la subse ion 5.6.8.

8.7.10 Implementa i on del Software


El software de ontrol empleado en la implementa ion en tiempo real del
sistema de ontrol no lineal posee la misma estru tura que el software de
ontrol empleado para la implementa ion en tiempo real de los sistemas de
ontrol predi tivo y robusto. La estru tura de di ho software se des ribe en
detalle en la subse ion 6.7.7. El diagrama de ujo del software de ontrol
se muestra en la gura 6.13.
440 Control No Lineal

Posición (radianes)
1

−1

−2
0 5 10 15 20 25 30 35 40 45 50
Tiempo en segundos

0.4
Señal de control (voltios)

0.2

−0.2

−0.4
0 5 10 15 20 25 30 35 40 45 50
Tiempo en segundos

Figura 8.9: Resultado de la simula ion del sistema de ontrol no lineal em-
pleando un modelo no lineal de segundo orden.

El software usado para la implementa i on del algoritmo de ontrol de


posi ion emplea el lenguaje C y se eje uta en una PC Pentium. Los progra-
mas 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 i on
de un proye to denominado DISNL.PRJ, en donde intervienen los ar hivos
men ionados en el p arrafo anterior. A ontinua ion se presenta el lista-
do 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>
8.7 Control No Lineal de un Servosistema 441

onst float ESCALA= 2.*M_PI/(512.*19.7);


/* De lara ion de las fun iones propias del programa */
void Ini ializa_Sistema();
void Mide_Variables(float *yk, float *x2k, float *r, float t);
float Apli a_Control(float u, float ykp);
/* De lara ion de las variables globales */
float y, yp, x2, x2p, r;
float rp, rpp, rppp;
float drp, drpp, drppp;
float T, k;
float t, tsimul;
float Fs;
int p0, pk;
float bL, bm, Lo, Ro, g, E, R, m, Ka t, Mo, K, n, B;
float Jeff, Jm, JL, M, N, TN, upar, K1, K2;
float V FC, V FE, Wth, Ofst;
float up;
/*************** FUNCIONES ******/
float Apli a_Control(float u)
{
float v;
float ykp
if(u<0.) v = -V FC;
else if(u>0.) v = V FC;
if(u+v<-1.5) u = -1.5;
else if(u+v>1.4) u = 1.4;
EnviarVoltage(u+v+Ofst);
return u;
}
void Ini ializa_Sistema()
{
V FC = .15;
Ofst = 2.3;
Fs = 20.; T = 1./Fs;
tsimul= 100.;
/* Parametros del pro eso no lineal */
Lo = 0.776; Ro = 0.01; g = 9.81;
Mo = 0.0; m = 0.06377; R = 7.38;
E = 31.035e-3; Ka t = 14.9; K = 31.071e-3;
bm = 1.8338e-6; bL = 1e-5; n = 19.741;
B = (n*n)*bm+bL; Jm = 1.9062e-6;
Jeff = n*n*Jm+JL; K1 = 28.2843; K2 = 300;
M = Jeff+(1/3)*m*Lo*Lo + Mo*Lo*Lo + (2/5)*Mo*Ro*Ro;
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();
8.7 Control No Lineal de un Servosistema 443

if ((ant == 0)&&(a t == 1))


{
Mide_Variables(&y, &x2, &r, t);
upar = (ddr+K1*dr+K2*r-K2*(y)-K1*x2+(B*R+n*n*K*E)/
(M*R)*x2+(N/M)*sin(y));
u = (M*R/(Ka t*n*K))*upar;
up = u;
u = Apli a_Control(u);
if(!(k%5))
{
yb[k/5℄ = y*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 no lineal de un servomotor D.C.");
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("se~nal de ontrol: u=%+5.3f",u);
gotoxy(21,17);printf("posi ion : y=%+5.3f",y*180./M_PI);
gotoxy(15,21);printf("****************************************");
if(kbhit()) if(get h()==27) break;
}
ant = a t;
}
EnviarVoltage(Ofst);
out = fopen("disnl.out","wt");
for (int i=0; i<n/5; i++)
fprintf(out,"%10f %10f %10f %10f\n",
i*5*T, rb[i℄, yb[i℄, ub[i℄);
delete rb, yb, ub;
f lose(out);
}

8.7.11 Resultados Experimentales

La gura 8.10 muestra el resultado experimental obtenido on el sistema de


ontrol de posi ion no lineal. La traye toria de referen ia posee la forma:

r(t) = 3e 2t + 2sen(2t) + 2
444 Control No Lineal

p
Los p
p2 = polos
10 del2 +sistema
10i. Lalineal
e ua equivalente se a
ion ara ter sti ubi aron en p1 = a 10
orrespondiente tales2 polos
10i y
es:
s2 + 28:2843s + 300 = 0
de donde obtenemos: K 1 = 28:2843 y K2 = 300. Podemos observar en la
gura 8.10 que la respuesta presenta sobreimpulso nulo, tiempo de estabi-
liza ion menor que 0.4 s y error en estado estable nulo.
300
Posición (grados)

200

100

−100
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5
Tiempo en segundos

1.5
Señal de control (voltios)

0.5

−0.5

−1
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5
Tiempo en segundos

Figura 8.10: Resultado experimental del sistema de ontrol de posi ion no


lineal para el servomotor D.C. a ionando una arga no lineal.

8.8 Problemas Resueltos


En la se i on problemas resueltos de los ap tulos 4 al 8, la solu ion a los
problemas se en uentra, segu n el aso, en uno o m as ar hivos on extension
m es ritos en odigo MATLAB.

Problema 8.1

El pro eso p endulo no lineal mostrado en la gura 2.3, uyo modelo se des-
ribe en el ejemplo 2.2, puede rotar libremente alrededor del pivote gra ias a
8.8 Problemas Resueltos 445

la a ion de un torque externo U . En di ha gura B p=1.3366 N-m/rad/s es


la fri ion vis osa rota ional en el punto pivote, L o=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 inter es es la posi i on an-
gular del p endulo. Para la situa i on mostrada en la gura 2.3(a), disen ~ar
un sistema de ontrol no lineal empleando el m etodo de linealiza ion por
realimenta i on. Los eigenvalores del sistema lineal equivalente realimentado
deben estar ubi ados en 8 8i.
Solu i on: 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. En la
gura 2.3(a) el torque resultante alrededor del pivote es:

U = MoL2 o• + Bp _ + MogLosen (8.65)

que es una e ua i on no lineal debido al t ermino sen . Sele ionando omo


variables de estado X1 = , X2 = _ y omo salida Y = X1, se obtiene:

X_1 = X2
g Bp 1
X_2 = senX1 X 2 + U
L o MoL2o MoLo 2
Y = X1 = h
_ = f, donde:
uya representa ion ompa ta resulta: X

X=
X1
; f=
f1
=
" g Bp
X2
1
#
X2 f2 Lo senX1 MoL2 x2 o+ MoL2 U o

La e ua ion anterior posee una forma normal. Por onsiguiente, empleando


la siguiente ley de ontrol:

U = BX 2 + M LgsenX1 + M L2 V

obtenemos X_2 = V . De niendo e = r X1 , donde r es una traye toria de


referen ia y sele ionando la sen
~al V omo:

V = r• + K1 e_ + K2 e• = X_2

enton es la e ua i on del sistema lineal equivalente realimentado resulta:

e• + K1 e_ + K2 e = 0; (s2 + K1 s + K2 )e(s) = 0
446 Control No Lineal

Si las ra es del sistema realimentado son s 1;2 = 8 8i, enton es:

(s + 8 + 8i)(s + 8 8i) = s2 + 16s + 128; K1 = 16; K2 = 128

La sen
~ al 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 + M LgsenX1 + M L2 (r• + K1 r_ + K2 r) M L2 (K2 X1 + K2 X2 )

El programa p8 1.m simula el sistema de ontrol no lineal y los resultados


se muestran en la gura 8.11.
% p8_1.m SOLUCION DEL PROBLEMA 8.1 (PENDULO NO LINEAL)
lear all
% PARAMETROS DEL PROCESO
Bp=1.3366; Lo=1.6350; Mo=0.5; g=9.81;
% POLOS DEL SISTEMA REALIMENTADO LINEALIZADO: -5 y -5
pol = onv([1 8+8i℄,[1 8-8i℄); % POLINOMIO CARACTERISTICO
K1 = pol(2); K2 = pol(3);
% CONDICIONES INICIALES:
r(1) =0; r(2)=0; r(3)=0; r(4)=0;
dr(1) =0; dr(2)=0; dr(3)=0; dr(4)=0;
ddr(1)=0; ddr(2)=0; ddr(3)=0; ddr(4)=0;
X1(1) =0; X1(2)=0; X1(3)=0; X1(4)=0;
X2(1) =0; X2(2)=0; X2(3)=0; X2(4)=0;
MM=1000; T = 0.01;
% LAZO DE CONTROL
for k=4:MM
r(k) = 2*sin(0.8*k*T); % traye toria de referen ia
% APROXIMACION DE LAS DERIVADAS
dr(k) = (r(k) + 3*r(k-1) - 3*r(k-2) - r(k-3))/(6*T);
ddr(k) = (dr(k) + 3*dr(k-1) - 3*dr(k-2) - dr(k-3))/(6*T);
U(k) = Bp*X2(k)+Mo*Lo*g*sin(X1(k))+Mo*Lo^2*(ddr(k)+K1*dr(k)...
+K2*r(k)-K2*X1(k)-K1*X2(k));
% PROCESO NO LINEAL DE ORDEN 2 DICRETIZADO
X1(k+1) = X1(k) + T*X2(k);
X2(k+1) = X2(k) + T*(-(Bp/Mo*Lo^2)*X2(k)-(g/Lo)*sin(X1(k))...
+(1/Mo*Lo^2)*U(k));
end % fin del lazo de ontrol
% GRAFICOS
ejex = linspa e(0,MM*T,MM-3);
8.8 Problemas Resueltos 447

subplot(2,1,1)
plot(ejex,r(4:MM),ejex,X1(4:MM)); grid
ylabel('Posi ion (radianes)')
xlabel('Tiempo en segundos')
subplot(2,1,2)
plot(ejex,U(4:MM)); grid
ylabel('Se~nal de ontrol (N)')
xlabel('Tiempo en segundos')
print -f -deps p8_1 % CREA EL ARCHIVO p8_1.eps

4
Posición (radianes)

−2

−4
0 1 2 3 4 5 6 7 8 9 10
Tiempo en segundos

400
Señal de control (N)

200

−200

−400

−600
0 1 2 3 4 5 6 7 8 9 10
Tiempo en segundos

Figura 8.11: Traye toria de posi ion del pendulo (problema de seguimiento)
y sen
~al de ontrol orrespondiente al problema 8.1

Problema 8.2

La gura 2.2 muestra dos tanques id enti os olo ados en as ada. La se ion
horizontal A=9 m2 de ada tanque es onstante. El objetivo de ontrol es
ontrolar la altura H2 empleando el ujo Qo omo sen ~al de ontrol. Disen ~ar
el sistema de ontrol no lineal empleando el m etodo de linealiza i on por
realimenta i on. El ujo de ontrol no debe sobrepasar los 5 m3=s y el tiempo
de estabiliza i on de la salida debe ser menor que 20 s on error en estado
estable pra ti amente nulo. Sele ionar apropiados tiempo de muestreo y
eigenvalores del sistema realimentado.
448 Control No Lineal

Solu ion: En el ejemplo 2.1 se deriv o el modelo no lineal del pro eso on
=0.4 (una onstante que depende de la geometr a del ori io), =1.23
(la densidad del l quido) y g=9.81 m/s2 (la a elera ion de la gravedad),
resultando:
_ = f + gU ;
H Y = h(H) = H2 ; U = Qo

donde: f = [f1 f2 ℄T , g = [g1 g2 ℄T , siendo:


p
g g
p 1

f1 = H1 ;
p f2 = [ H1
p p H2 ℄; g1 = ; g2 = 0
A
Operando on =
p A
g=A obtenemos:
A

h(H) = H2; Lf h(H) = r(H)f = f 2

Lg Lf h(H) = r(f ) g =
2 p 6=0
2A H 1

Luego, el sistema es ompletamente linealizable dado que su grado relativo


es dos. Seguimos operando:

L2h(H) = r(L h(H)) f = rf 2f = 2 pH 1 2


f f
2 pH
2

2f
r
Lg L h(H) = (L h(H)) g = 1 4A H1 H2 2f
2
p
El nuevo onjunto de variables de estado resulta:

z1 = 1(H) = h(H) = H2; z2 = 2(H) = Lf h(H) = p p H1 H2

Los estados originales en fun ion de los nuevos estados vienen a ser:
H = 1(z) = z ;
z
H = 1(z) = ( 2 + z )2
p
2 1 1 1 2 1

y la e ua i on de estado del nuevo sistema resulta:

z_1 = z2
1 1 1 1
z_2 = L2fh( (z)) + Lg L2fh( (z)) = b( (z)) + a( (z))U
donde:
2 2
1
b( (z)) = z2
pz1 1 ; 1
a( (z)) = p
4A z1(z2= +
pz )
2 1
8.8 Problemas Resueltos 449

De niendo una sen


~al equivalente V on Y = H2 :

V = Y• = r• + K1 e_ + K2 e; e=r Y

se da lugar a la siguiente e ua i on ara ter sti a del sistema linealizado re-


alimentado:
e• + K1 e_ + K2 e = 0
Si las ra es deseadas del sistema son s1;2 = 0:6, enton es:

(s + 0:6)(s + 0:6) = s2 + 1:25s + 0:39; K1 = 1:25; K2 = 0:39

~ al V , on Y = H2 = z1 e Y_ = z_1 = z2 , toma la forma nal:


La sen

V = r• + K1 r_ + K2 r K 2 z1 K1 z 2

y la ley de ontrol resulta: U = a (V1 b). El programa p8 2p9.m simula el


sistema de ontrol no lineal. Los resultados se muestran en la gura 8.12.
% p8_2p9.m DISE~NO DEL SISTEMA DE CONTROL NO LINEAL
% PARA EL PROCESO HIDRAULICO (PROBLEMA 8_2)
lear all
% PARAMETROS DEL PROCESO NO LINEAL
A=9; gamma=0.4; rho=1.23; g=9.81; =gamma*sqrt(rho*g)/A;
% POLOS DEL SISTEMA LINEALIZADO REALIMENTADO: -8-8i y -8+8i
pol = onv([1 0.6℄,[1 0.65℄); % POLINOMIO CARACTERISTICO
K1 = pol(2); K2 = pol(3);% K1=K2=0.6; T=0.01-0.07 Ts=20
% CONDICIONES Y PARAMETROS 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;
H1(4)=2; H2(4)=2;
MM=1000; T = 0.05;
% LAZO DE CONTROL
for k=4:MM
r(k) = 3; % TRAYECTORIA DE REFERENCIA
% 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);
% CONVERSION DE ESTADOS
z1(k)=H2(k);
z2(k)= *(sqrt(H1(k))-sqrt(H2(k)) );
% LEY DE CONTROL
V(k) = ddr(k) + K1*dr(k) + K2*r(k) - K2*z1(k) - K1*z2(k);
450 Control No Lineal

b(k) = ( ^2/2)*( *z2(k)/sqrt(z1(k))-1 );


a(k) = ^2/( 4*A*sqrt(z1(k))*(z2(k)/ +sqrt(z1(k)) ) );
U(k) = (V(k)-b(k))/a(k);
Q=5;
if(U(k) > Q)
U(k)=Q;
elseif(U(k) < -Q)
U(k)=Q;
end
% PROCESO NO LINEAL DE SEGUNDO ORDEN DISCRETIZADO
H1(k+1) = H1(k) + T*(- *sqrt(H1(k)) + (1/A)*U(k));
H2(k+1) = H2(k) + T*( *sqrt(H1(k)) - *sqrt(H2(k)) );
end % fin del lazo de ontrol
% GRAFICOS
ejex = linspa e(0,MM*T,MM-3);
subplot(2,1,1)
plot(ejex,r(4:MM),ejex,H2(4:MM)), grid
ylabel('Nivel (m)')
xlabel('Tiempo en segundos')
subplot(2,1,2)
plot(ejex,U(4:MM)), grid
ylabel('Flujo de ontrol (m^3/s)')
xlabel('Tiempo en segundos')
print -f -deps p8_2p9 % rea p8_2p9.eps

Problema 8.3

Determinar si es posible una linealiza ion exa ta de los pro esos p endulo
invertido no lineal y grua-puente des ritos en las se iones 3.1 y 3.2 respe -
tivamente. Se sabe que la salida es la posi ion x 3.
Solu ion: La e ua ion de estado que des ribe al p endulo no lineal es:

2 3 2 x2 3
7
66 x_1
x_ 77 6 M2(sin x1)( os x1)x
2
2
Bx( os x1)x4 (M1+J2)g(sin x1)+Kx( os x1)KA u

57
5 46
(M2 ( os2 x1 ) (M1 +J2 )J1 )=M2
x_32
4 x_4
= x4
M22g(sin x 1)( os x 1) 2J M1 2(sin
M ( os x1 ) (M1 +J
2
2 x )x1+J2 B x1J x
2 )J1
K 4K u 1 x A

De la e ua ion anterior de orden n=4 es f a il dedu ir las expresiones de las


fun iones ve toriales f (x) y g(x). Un pro eso es exa tamente linealizable
8.9 Problemas Propuestos 451

3.5

Nivel (m)
2.5

2
0 5 10 15 20 25 30 35 40 45 50
Tiempo en segundos

5
Flujo de control (m^3/s)

−5
0 5 10 15 20 25 30 35 40 45 50
Tiempo en segundos

Figura 8.12: Nivel de salida y ujo de ontrol para el problema 8.2.

si su grado relativo es igual al orden del pro eso. Empleando el riterio de


grado relativo en el pro eso p endulo obtenemos:

h(x) = x4

Lf h(x) =rh(x) f = f (x) 4

L L h(x) = rf (x) g(x) =


g f 60
4

Luego, el grado relativo resulta r = 2, que es menor que el orden del pro eso:
n = 4. Por onsiguiente, el pro eso p endulo invertido no es exa tamente
linealizable. Lo mismo podemos aseverar para el pro eso grua-puente.

8.9 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 estasujeto a
la arga no lineal mediante una junta exible que puede ser mod- elada omo
un resorte rota ional de onstante K! =0.5 N/m/s. Disen ~ar un
452 Control No Lineal

sistema de ontrol no lineal que emplee el m etodo de linealiza i on por re-


alimenta i on para ontrolar la posi ion angular de la arga no lineal. Las espe
i a iones de disen ~o son: error en estado esta ionario nulo y tiempo de
estable imiento menor que 1 s para una sen~al de referen ia arbitraria. Sele -
ionar el tiempo de muestreo y los eigenvalores apropiados del sistema lineal
equivalente realimentado. Considere dos asos: (a) uando la indu tan ia
de armadura es despre iable, y (b) uando no lo es

Problema 8.5

Demostrar las propiedades de bilinealidad, anti onmutatividad y de Ja obi


estable idas en el lema 8.1 y luego demostrar el teorema 8.2.

Problema 8.6

La gura 3.31 muestra el pro eso servomotor on arga no lineal des rito
en la se i on 3.3, en donde la arga no lineal posee ahora dos grados de
libertad on Lo = 2L1=3 y Mo=0.02 kg. La union de la arga on el eje
del servomotor no es exible. Las e ua iones que des riben la din ami a del
sistema son materia del problema 3.12. Determinar si el pro eso des rito
es ompletamente linealizable. Si lo es, disen ~ar un sistema de ontrol no
lineal on linealiza ion de la realimenta i on para ontrolar simultaneamente
las posi iones y on m nimo tiempo de estabiliza ion y m nimo sobreim-
pulso. Considerar dos asos: (a) uando la indu tan ia de armadura es
despre iable, y (b) uando no lo es.
Bibliograf a

[1℄ Omar A. Tupaya hi-Calder on, Control No Lineal de Servosistemas.


Apli a i on: Manipulador de Robot de un Grado de Libertad. Tesis
para optar el T tulo de Ingeniero Ele troni o, Fa ultad de Ingenier a El e
tri a y Ele troni a de la Universidad Na ional de Ingenier a, Peru ,
1995-I, Cap tulo III.

[2℄ Alexander L. Pon e-Dioses , Control de Servo Sistemas No Lineales


Usando Redes Neuronales. Tesis para optar el T tulo de Ingeniero Ele -
tr oni o, Fa ultad de Ingenier a El e tri a y Ele troni a de la Universidad
Na ional de Ingenier a, Peru, 1996-II, Cap tulo VI.

[3℄ Katsuhiko Ogata, Sistemas de Control en Tiempo Dis reto. Prenti e


Hall Hispanoameri ana S.A., M exi o, segunda edi ion, 1996

[4℄ Charles L. Phillips y H. Troy Nagle, Digital Control System Analy-


sis and Design. Prenti e Hall, Englewood Cli s, New Jersey, segunda
edi ion, 1990

[5℄ N. Rao Sripada y D. Grant Fisher, \Improved Least Squares Identi -


ation". Int. J. Control, vol. 46, no. 6, pp. 1889{1913, Di ... 1987.

[6℄ M. G. Sofonov, Stability and Robustness of Multivariable Feedba k Sys-


tems. MA, London, UK: The MIT Press Cambridge, 1980.

[7℄ R. De Keyser, \A Gentle Introdu tion to Model Based Predi tive Con-
trol". In PADI2 International Conferen e on Control Engineering and
Signal Pro essing, Piura, Peru, 1998.

[8℄ Eduardo F. Cama ho y Carlos Bordons, Model Predi tive Control.


Springer-Verlag London Limited 1999.
454 BIBLIOGRAF IA

[9℄ Manfred Morari y Evanghelos Za riou, Robust Pro ess Control. PTR
Prenti e Hall, Englewood Cli s, New Jersey 07632, 1989.

[10℄ R. Canales Ruiz y R. Barrera Rivera, Analisis de Sistemas Dinami os


y Control Automati o. Editorial Limusa, Mexi o, 1977.

[11℄ A. Rojas-Moreno, Design of Self-tuning Controllers for Pro esses Hav-


ing Multiple Unknown Time-varying Delays, Ph.D. Thesis, Utah State
University, Logan, UT, 1995.

[12℄ Rolf Isermann, Digital Control Systems, Volume 1, Springer-Verlag,


segunda edi i on, Germany, 1989

[13℄ Jean-Ja ques E. Slotine y Weiping Li, Applied Nonlinear Control, Pren-
ti e Hall, Englewood Cli s, New Jersey 07632, 1991.

[14℄ Alan V. Oppenheim y Alan S. Willsky, Sen ~ales y Sistemas Prenti e-


Hall Hispanoameri ana, S.A., M exi o-Englewood Cli s-Londres-Sidney
y otras, 1983.

[15℄ Gene H. Hostetter, Digital Control System Design, Holt, Rinehart and
Winston, In ., New York, Chi ago, San Fran is o, Philadelphia, Mon-
treal, Toronto, London, Sydney, Tokyo, 1988.

[16℄ William H. Press, Brian P. Flannery y Saul A. Teukolosky, Numeri al


Re ipes in C, Cambridge University Press, Cambridge, 1988.

[17℄ Bernard Friedland, Control System Design. An Introdu tion to State-


Spa e Methods, M Graw-Hill, In ., New York St. Louis y otras, 1986.

[18℄ Murray R. Spiegel, An alisis Ve torial, serie de ompendios S haum,


M Graw-Hill M exi o Panam a Bogot a y otras, 1973 (o edi iones mas
re ientes).

[19℄ Murray R. Spiegel, Cal ulo Superior, serie de ompendios S haum,


M Graw-Hill M exi o Panam a Bogot a y otras, 1973 (o edi iones mas
re ientes).

[20℄ Donald M. Wiberg, Espa io de Estado y Sistemas Lineales, serie de


ompendios S haum, M Graw-Hill M exi o Panam Bogot a y otras,
1973 (o edi iones mas re ientes).
BIBLIOGRAF IA 455

[21℄ Frank Ayres Jr., Matri es, serie de ompendios S haum, M Graw-Hill
M exi o Panam Bogot a y otras, 1973 (o edi iones mas re ientes).

[22℄ Murray R. Spiegel, Transformada de Lapla e, serie de ompendios


S haum, M Graw-Hill M exi o Panam a Bogot a y otras, 1973 (o edi-
iones mas re ientes).

[23℄ MathWorks, In ., MATLAB Referen e Guide, Prenti e Hall, Engle-


wood Cli s, New Jersey, primera edi ion, 1998.

[24℄ MathWorks, In ., SIMULINK User's Guide, Prenti e Hall, Englewood


Cli s, New Jersey, primera edi ion, 1996.

[25℄ Lab-PC+ User Manual, National Instruments Corporation, Part Num-


ber 320502B-01, edi ion de agosto de 1994.
Indi e de Materias

A tuador, 231 Control no lineal de un servosis-


Ampli ador de poten ia, 160 tema de posi ion, 424
Control predi tivo
del servomotor no lineal, 306
Campo ve torial suave, 408
disturbio del pro eso en el, 289
Campos ve toriales
ley de ontrol on restri io-
integrables, 412
nes del, 304
involutivos, 413
ley de ontrol del, 303
CMI:
modelo CARIMA del, 290
ontrol on modelo interno, 351
modelo del predi tor en el, 292
Codi ador opti o, 159
modelo del pro eso del, 289
odi ador opti o, 235 modelo paralelo en el, 292
Control optimo modelo serie/paralelo en el, 293
on epto, 126 predi ion del disturbio en el,
Control optimo uadr ati o, 126 294
de la grua puente, 181 salida del modelo en el, 290
del p endulo invertido, 147 Control predi tivo basado en mo-
dis reto, 126 delos, 285
esta ionario, 129 prin ipios del, 286
no esta ionario, 127 Control predi tivo:respuesta forza-
Control adaptivo de un servomo- da del, 300
tor no lineal, 224 Control predi tivo:respuesta libre
Control on modelo interno del, 299
estru tura del, 351 Control robusto
estru turas alternativas del, 353 para pro esos estables, 358
in ertidumbres del modelo en para pro esos inestables, 370
el, 355 Control robusto de un servomotor
modelo del pro eso en el, 355 no lineal, 376
representa iones del, 351 Controlabilidad, 65
Control matri ial din ami o, 286 Controlador optimo H2 : q~H (z), 372
INDICE DE MATERIAS 457

Controlador optimo uadr ati o e ua ion de, 31, 57


propor ional, 221 espa io de, 31, 54
propor ional integral, 223 variables de, 31
Controlador optimo uadrati o H2: ve tor de, 31
q~H (z), 360 Estima i on de estados, 221
para entradas t pi as, 361
Controlador CMI q~(z), 362, 373 Filtro de Kalman, 221
Controlador predi tivo, 298 Filtro dis reto CMI, 363, 374
fun i on de osto del, 298 Forma bilineal, 20
objetivo del, 298 Forma an oni a, 58
parametros de disen~o del, 298 ontrolable, 59
Cor hete de Lie, 409 de Jordan, 60
Cor hetes de Lie diagonal, 60
propiedades de los, 410 observable, 60
Forma an oni a de Jordan, 19
De ni i on de Matri es, 21 Forma uadr ati a, 20
De ni i on de matri es, 21 Forma normal, 416
Derivada de Lie, 408 Frobenius
Determinante, 5 teorema de, 413
de una matriz, 5 Fun i on de osto, 126
propiedades, 6 uadr ati a dis reta, 127
Diagonaliza i on de matri es, 19 m nima, 129
Difeomor smo, 410 Fun ion de transferen ia de pulso,
lo al, 410 51
Dis retiza i on dire ta, 41
Grua-puente, 79
E ua i on ara ter sti a, 32 modelo, 79
E ua i on de Ri ati, 128, 129 Grado relativo, 414
E ua ion de salida, 31, 57
E ua i on de transferen ia, 32 Hardware del sistema de ontrol,
E ua i on del observador no lineal, 155, 314, 377, 441
422
Independen ia de ve tores, 15
Eigenvalor, 18
Interfaz Lab-PC+, 161, 236
Eigenve tor, 18
Espa io de estado dis reto, 54 Ja obiano, 15
Estabilidad interna, 351
Estabilidad Robusta, 364 Ley de ontrol optima, 127, 140
Estabilidad robusta, 374 Ley de ontrol no lineal, 417
Estado, 31 Linealiza i on de pro esos, 31
458 INDICE DE MATERIAS

Linealiza ion exa ta, 416 hermitiana, 5


ondi iones para, 419 identidad, 5
Linealiza ion por realimenta i on, inde nida, 21
407 integral de una, 14
inversa de una, 6
M nimos uadrados re ursivo nilpotente, 5
algoritmo, 211 norma de una, 17
m etodo de los, 210 normal, 5
m etodo mejorado de los, 213 orden de una, 1
mejorado, algoritmo, 213 ortogonal, 5
Matri es, 3 periodi a, 5
de pondera ion, 132 rango de una, 18
diagonaliza ion de, 19 semide nida negativa, 21
iguales, 3 semide nida positiva, 21
ja obianas, 32 simetri a, 5
lema de inversion de, 7 singular, 5
multipli a ion de, 3 transpuesta, 4
que onmutan, 3 traza de una, 4
similares, 19 triangular inferior, 4
suma de, 3 triangular superior, 4
Matriz, 1 unitaria, 5
antihermitiana, 5 Modelando pro esos no lineales, 209
antisimetri a, 5 Modelo CARIMA, 290
ero, 3
Muestreo y re onstru ion, 38
uadrada, 4
de ontrol, 32 Nomen latura, 1
de disturbios, 32
de estado, 32 Observabilidad, 67
de observabilidad generaliza- Observador optimo uadrati o, 138
da, 420 Observadores no lineales, 420
de salida, 32 Opera i on on ve tores, 16
de transferen ia, 32 Opera iones on matri es, 3
de nida negativa, 21
de nida positiva, 21 Pendulo invertido, 71
derivada de una, 14 ontrol optimo del, 147
diagonal, 4 modelo, 72
eigenvalor de una, 18 Plano de fase, 31
eigenve tor de una, 18 Predi tor, 292
forma anoni a de Jordan, 19 Pre ltro
INDICE DE MATERIAS 459

disen
~o del, 359 formulas notables, 48
Pro eso estable e inestable, 33 inversa, 50
Pro eso multivariable, 31 propiedades, 46
Pro eso univariable, 32
Pro esos on tiempo muerto, 64 Valor absoluto, 7
Puntos de equilibrio, 31 Variables residuales, 32
Ve tor, 2
Regulador optimo uadr ati o de informa ion, 210
propor ional, 131 de parametros, 210
propor ional integral, 141 derivada de un, 14
Rendimiento nominal, 359, 372 integral de un, 14
Rendimiento robusto, 365, 375 norma de un, 16
Respuestas libres y forzadas, 299 Ve tores, 15
Reten i on de orden ero, 41 independen ia de, 15
opera ion on, 15
Sensor(es) de posi ion, 158, 235 ortonormales, 15
Servomotor DC no lineal, 86
modelo, 86
Sistema ausal y estri tamente ausal,
355
Sistema de ontrol adaptivo, 208
on autosintoniza ion, 208
Software de ontrol, 162, 237, 314,
378, 441
Solu i on de la e ua i on de estado,
54, 57

Teorema del muestreo, 40


Tipo de sistemas, 359
Tipos de matri es, 4
Transforma i on no lineal de esta-
dos, 411
Transformada de Lapla e, 26
formulas notables, 27
inversa, 26
propiedades, 27
Transformada Z, 45
de se uen ias, 47
de ni ion, 45

Vous aimerez peut-être aussi