Anda di halaman 1dari 473

CONTROL

AVANZADO

Dise~
no y Apli a iones en Tiempo Real

ARTURO ROJAS-MORENO, Ph.D.


Universidad Na ional de Ingenier
a, Per
u

 Control


Optimo

 Control

Adaptivo

 Control

Predi tivo

 Control

Robusto

 Control

No Lineal

 Programas

en MATLAB y C/C++

ii

Control Avanzado

Dise~
no y Apli a iones en Tiempo Real

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


Copyright

ISBN 9972{9318{0{3
Ni todo el libro ni parte de esta publi a ion puede ser reprodu ida, ar hivada,
transmitida o distribuida en forma alguna o mediante algun medio ele troni o,
me ani o, o de otra ndole, sin que exista previamente y por es rito el permiso de
autoriza ion del autor.

Dedi atoria

A mi Familia
A mi Alma Mater


Indi e General

Dedi atoria

iii

Prefa io

xi

1 Matemati a Asistida on Computadora

1.1 Cal ulo Matri ial . . . . . . . . . . . . . . . . . . . . . . . .


1.1.1 Opera iones y Tipos de Matri es . . . . . . . . . . .
1.1.2 Determinantes y Matriz Inversa . . . . . . . . . . . .
1.1.3 Derivadas e Integrales on Matri es y Ve tores . . .
1.2 Analisis Ve torial . . . . . . . . . . . . . . . . . . . . . . . .
1.2.1 Independen ia, Ortonormalidad y Normas . . . . . .
1.2.2 Rango de una Matriz, Eigenvalores y Eigenve tores .
1.2.3 Diagonaliza ion de Matri es . . . . . . . . . . . . . .
1.2.4 Formas Cuadrati as y Bilineales . . . . . . . . . . .
1.3 La Transformada de Lapla e . . . . . . . . . . . . . . . . .

2 Sistemas Dis retos

2.1 Dise~no de Sistemas de Control Digital . . .


2.2 Con epto de Estado y Variables de Estado .
2.2.1 Linealiza ion de Pro esos . . . . . .
2.3 Fundamentos de Sistemas Dis retos . . . . .
2.3.1 Muestreo y Re onstru ion . . . . .
2.3.2 La Transformada Z . . . . . . . . . .
2.3.3 La Transformada Z Inversa . . . . .
2.3.4 Fun ion de Transferen ia de Pulso .
2.3.5 El Espa io de Estado Dis reto . . .
2.3.6 Controlabilidad y Observabilidad . .

..
..
..
..
..
..
..
..
..
..

.
.
.
.
.
.
.
.
.
.

..
..
..
..
..
..
..
..
..
..

.
.
.
.
.
.
.
.
.
.

..
..
..
..
..
..
..
..
..
..

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

1
1
5
14
15
15
18
19
20
26
29

29
31
31
38
38
45
49
51
53
64

INDICE GENERAL

vi
3 Modelado de Pro esos

3.1 Modelo del Pro eso Pendulo Invertido . . . . . . . . . . .


3.1.1 Modelo del Subsistema Carro-Pendulo . . . . . . .
3.1.2 Modelo del Subsistema Motor-Polea . . . . . . . .
3.1.3 Representa ion en el Espa io de Estado . . . . . .
3.1.4 Obten ion del Modelo Lineal . . . . . . . . . . . .
3.1.5 El Modelo en el Espa io de Estado Dis reto . . . .
3.2 Modelo del Pro eso Grua-Puente . . . . . . . . . . . . . .
3.2.1 Modelo del Subsistema Carro-Varilla . . . . . . . .
3.2.2 Modelo del Subsistema Motor-Polea . . . . . . . .
3.2.3 Representa ion en el Espa io de Estado . . . . . .
3.2.4 Obten ion del Modelo Lineal . . . . . . . . . . . .
3.2.5 El Modelo en el Espa io de Estado Dis reto . . . .
3.2.6 Resumen de Variables y Parametros . . . . . . . .
3.2.7 Identi a ion de la Zona Muerta del Servomotor .
3.3 Modelo del Servomotor D.C. No Lineal . . . . . . . . . . .
3.3.1 El Subsistema Me ani o . . . . . . . . . . . . . . .
3.3.2 El Subsistema Ele tri o . . . . . . . . . . . . . . .
3.3.3 Conversion de Energa Ele tri a en Me ani a . . .
3.3.4 Modelo y Compensa ion de no Linealidades . . . .
3.3.5 Linealiza ion y Dis retiza ion del Pro eso . . . . .
3.4 Problemas Resueltos . . . . . . . . . . . . . . . . . . . . .
3.5 Problemas Propuestos . . . . . . . . . . . . . . . . . . . .


4 Control Optimo

4.1
4.2
4.3
4.4
4.5
4.6
4.7
4.8
4.9

Introdu ion . . . . . . . . . . . . . . . . . . . . . . . . . .
Control O ptimo Cuadrati o No Esta ionario . . . . . . . .
Control O ptimo Cuadrati o Esta ionario . . . . . . . . . .
El Regulador O ptimo Propor ional . . . . . . . . . . . . .
Sele ion de las Matri es de Pondera ion . . . . . . . . . .
Dise~no del Observador O ptimo Cuadrati o . . . . . . . . .
El Regulador O ptimo Propor ional Integral . . . . . . . .
Pro edimiento de Dise~no e Implementa ion . . . . . . . .
Control O ptimo Cuadrati o del Pendulo Invertido . . . .
4.9.1 Formula ion del Problema . . . . . . . . . . . . . .
4.9.2 El Modelo del Pro eso a Controlar . . . . . . . . .
4.9.3 Cal ulo de la Matriz de Ganan ia del Controlador
4.9.4 Cal ulo la Matriz de Ganan ia del Observador . .

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

69

69
70
72
74
75
76
77
77
79
79
80
80
81
81
84
84
86
87
89
90
91
116

123

123
125
127
128
130
136
139
145
145
145
146
147
149

INDICE GENERAL

4.9.5 Simula ion del Sistema de Control O ptimo . . . .


4.9.6 El Hardware del Sistema de Control . . . . . . . .
4.9.7 Implementa ion del Software de Control . . . . . .
4.9.8 Resultados Experimentales . . . . . . . . . . . . .
4.10 Control O ptimo Cuadrati o de la Grua-Puente . . . . . .
4.10.1 Formula ion del Problema . . . . . . . . . . . . . .
4.10.2 Simula ion del Sistema Controlado . . . . . . . . .
4.10.3 El Hardware y el Software del Sistema de Control
4.10.4 Resultados experimentales . . . . . . . . . . . . . .
4.11 Problemas Resueltos . . . . . . . . . . . . . . . . . . . . .
4.12 Problemas Propuestos . . . . . . . . . . . . . . . . . . . .
5 Control Adaptivo

5.1 Introdu ion . . . . . . . . . . . . . . . . . . . . . . . . . .


5.2 Modelando Pro esos No Lineales . . . . . . . . . . . . . .
5.3 Pro edimientos de Estima ion . . . . . . . . . . . . . . . .
5.3.1 El Metodo de los Mnimos Cuadrados Re ursivo .
5.3.2 Mnimos Cuadrados Re ursivo Mejorado . . . . . .
5.3.3 Estima ion de Estados . . . . . . . . . . . . . . . .
5.4 La Ley de Control . . . . . . . . . . . . . . . . . . . . . .
5.5 Pro edimiento de Dise~no . . . . . . . . . . . . . . . . . . .
5.6 Control Adaptivo de un Servomotor No Lineal . . . . . .
5.6.1 Formula ion del Problema . . . . . . . . . . . . . .
5.6.2 El Modelo del Pro eso . . . . . . . . . . . . . . . .
5.6.3 Estima ion de Parametros . . . . . . . . . . . . . .
5.6.4 Estima ion de Estados . . . . . . . . . . . . . . . .
5.6.5 La Ley de Control . . . . . . . . . . . . . . . . . .
5.6.6 La Ley de Control Residual . . . . . . . . . . . . .
5.6.7 Simula ion del Sistema de Control Adaptivo . . . .
5.6.8 Implementa ion del Hardware . . . . . . . . . . . .
5.6.9 Implementa ion del Software de Control . . . . . .
5.6.10 Resultados Experimentales . . . . . . . . . . . . .
5.7 Problemas Resueltos . . . . . . . . . . . . . . . . . . . . .
5.8 Problemas Propuestos . . . . . . . . . . . . . . . . . . . .

6 Control Predi tivo

vii

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

150
153
160
177
179
179
180
185
185
187
202
205

205
207
208
208
211
219
219
221
222
222
222
223
224
224
225
225
229
235
252
253
279

283

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

viii

INDICE GENERAL

6.4 El Modelo del Predi tor . . . . . . . . . . . . . . . .


6.4.1 Predi ion de y(t + k=t) . . . . . . . . . . . .
6.4.2 Predi ion de n(t + k=t) . . . . . . . . . . . .
6.5 El Controlador Predi tivo . . . . . . . . . . . . . . .
6.5.1 Objetivo del Controlador . . . . . . . . . . .
6.5.2 Respuesta Libre y Respuesta Forzada . . . .
6.5.3 La Ley de Control . . . . . . . . . . . . . . .
6.6 Pro edimiento de Dise~no . . . . . . . . . . . . . . . .
6.7 Control de Posi ion de un Servomotor . . . . . . . .
6.7.1 Formula ion del Problema . . . . . . . . . . .
6.7.2 Respuesta Libre del Pro eso . . . . . . . . . .
6.7.3 Respuesta del Pro eso al Es alon . . . . . . .
6.7.4 La Ley de Control . . . . . . . . . . . . . . .
6.7.5 Simula ion del Sistema de Control Predi tivo
6.7.6 Implementa ion del Hardware . . . . . . . . .
6.7.7 El Software de Control . . . . . . . . . . . . .
6.7.8 Resultados Experimentales . . . . . . . . . .
6.8 Problemas Resueltos . . . . . . . . . . . . . . . . . .
6.9 Problemas Propuestos . . . . . . . . . . . . . . . . .
7 Control Robusto

7.1 Estru tura del Control on Modelo Interno . . . . .


7.2 Formula ion del Problema CMI . . . . . . . . . . . .
7.2.1 El Modelo del Pro eso . . . . . . . . . . . . .
7.2.2 Des rip ion de In ertidumbres del Modelo . .
7.3 Control Robusto para Pro esos Estables . . . . . . .
7.3.1 Rendimiento Nominal . . . . . . . . . . . . .
7.3.2 El Filtro Dis reto CMI . . . . . . . . . . . . .
7.3.3 Estabilidad Robusta . . . . . . . . . . . . . .
7.3.4 Rendimiento Robusto . . . . . . . . . . . . .
7.4 Control Robusto para Pro esos Inestables . . . . . .
7.4.1 Rendimiento Nominal . . . . . . . . . . . . .
7.4.2 El Filtro Dis reto CMI . . . . . . . . . . . . .
7.4.3 Estabilidad y Rendimiento Robustos . . . . .
7.5 Pro edimiento de Dise~no . . . . . . . . . . . . . . . .
7.6 Control Robusto de un Servomotor No Lineal . . . .
7.6.1 Formula ion del Problema . . . . . . . . . . .
7.6.2 Dise~no del Sistema de Control Robusto . . .

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

..
..
..
..
..
..
..
..
..
..
..
..
..
..
..
..
..
..
..

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

..
..
..
..
..
..
..
..
..
..
..
..
..
..
..
..
..

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

290
290
292
296
296
297
301
303
304
304
305
306
306
306
311
312
321
324
342
347

347
353
353
353
356
357
361
362
363
368
370
372
372
373
374
374
374

INDICE GENERAL

7.6.3 Simula ion del Sistema de Control Robusto .


7.6.4 Implementa ion del Hardware . . . . . . . . .
7.6.5 Implementa ion del Software . . . . . . . . .
7.6.6 Resultados Experimentales . . . . . . . . . .
7.7 Problemas Resueltos . . . . . . . . . . . . . . . . . .
7.8 Problemas Propuestos . . . . . . . . . . . . . . . . .
8 Control No Lineal

8.1 Herramientas Matemati as . . . . . . . . . . . . . .


8.1.1 Derivadas y Cor hetes de Lie . . . . . . . . .
8.1.2 Difeomor smo y Transforma ion de Estados .
8.1.3 Transforma ion no Lineal de Estados . . . . .
8.1.4 El Teorema de Frobenius . . . . . . . . . . .
8.2 Grado Relativo . . . . . . . . . . . . . . . . . . . . .
8.3 Forma Normal de Pro esos No lineales . . . . . . . .
8.4 Linealiza ion Exa ta y la Ley de Control . . . . . . .
8.5 Observadores No Lineales . . . . . . . . . . . . . . .
8.6 Pro edimiento de Dise~no . . . . . . . . . . . . . . . .
8.7 Control No Lineal de un Servosistema . . . . . . . .
8.7.1 Formula ion del Problema . . . . . . . . . . .
8.7.2 Modelo del Pro eso . . . . . . . . . . . . . . .
8.7.3 Determina ion del Grado Relativo . . . . . .
8.7.4 Comprobar Linealiza ion Exa ta . . . . . . .
8.7.5 La Forma Normal . . . . . . . . . . . . . . .
8.7.6 La ley de Control No Lineal . . . . . . . . . .
8.7.7 Dise~no del Observador No Lineal de Estados
8.7.8 Simula ion del Sistema de Control No Lineal
8.7.9 Implementa ion del Hardware . . . . . . . . .
8.7.10 Implementa ion del Software . . . . . . . . .
8.7.11 Resultados Experimentales . . . . . . . . . .
8.8 Problemas Resueltos . . . . . . . . . . . . . . . . . .
8.9 Problemas Propuestos . . . . . . . . . . . . . . . . .

ix

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

..
..
..
..
..
..
..
..
..
..
..
..
..
..
..
..
..
..
..
..
..
..
..
..
..
..
..
..
..
..

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

374
375
376
380
380
399
405

406
406
408
409
410
412
413
414
418
421
422
422
422
424
424
425
427
430
431
439
440
444
445
452

Bibliografa

453

Indi e de Materias

456

Prefa io
Fundamentos

A nadie es apa el he ho de que estamos presen iando un dramati o y permanente desarrollo de dispositivos y equipos basados en te ni a digital, tales
omo mi ro ontroladores, tarjetas de desarrollo para pro esamiento digital
de se~nales, sistemas en apsulados, omputadoras industriales, sistemas de
adquisi ion de datos, entre otros. Tales dispositivos y equipos, que ada vez
son mas peque~nos y de menor osto, pero paradoji amente mas potentes,
han provo ado que a tualmente la gran mayora de los sistemas de ontrol
se dise~nen basados en te ni as digitales.
Con respe to a las te ni as empleadas en el dise~no de los sistemas de ontrol, podemos observar en la industria que ada vez son mas las apli a iones
basadas en te ni as no tradi ionales, las uales denominaremos te ni as de
ontrol avanzado. En este ontexto, las te ni as de ontrol avanzado que
han logrado mayor a epta ion son las siguientes: ontrol predi tivo, ontrol
no lineal, ontrol robusto, ontrol adaptivo, ontrol optimo, entre otras. La
literatura te ni a y las publi a iones para ada una de ellas, es de he ho
abundante pero lamentablemente espar ida, de modo que el tratamiento
aislado de ada te ni a puede onsumir gran antidad de tiempo y esfuerzo.
Esta publi a ion integra en un solo volumen, los fundamentos y los pro edimientos en aminados al dise~no de sistemas de ontrol avanzado y su
orrespondiente implementa ion en tiempo real. El material desarrollado
basa sus fundamentos en la representa ion de los sistemas de ontrol en el
espa io de estado dis reto. Sin embargo, no se deja de men ionar y de tratar
el punto de vista tradi ional, uando sea ne esario.
He sido muy uidadoso en ubrir on amplitud y on la laridad del aso,
empleando mu has ve es ejemplos expli ativos, aquellos on eptos fundamentales requeridos para un mejor entendimiento del material presentado.
Las apli a iones en tiempo real desarrolladas para validar los metodos de

xii

Prefa io

dise~no presentados en los aptulos del uatro al o ho, onstituyeron proye tos de investiga ion realizados en la Se ion de Postgrado de la Fa ultad de
Ingeniera Ele tri a y Ele troni a de la Universidad Na ional de Ingeniera
(http:// ee.uni.edu.pe), asa de estudios de la ual soy do ente.
Herramientas Computa ionales

La gran mayora de los ejer i ios y problemas formulados en este libro se desarrollan on el auxilio de la omputadora personal. Espe  amente, para
el desarrollo de los ejemplos y problemas, y para la simula ion de las apli a iones, se emplea el software \MATLAB" (version 4.2) on sus herramientas
\Control Systems", \Signal Pro essing" y \SIMULINK". El software para
las apli a iones en tiempo real esta es rito en C/C++ de \Borland", version
4.52. Evidentemente, los programas elaborados tambien pueden eje utarse
en versiones de software mas a tualizadas. Los programas fuente se pueden
des argar de mi pagina web: http:/ ee.uni.edu.pe/728681F. Antes de
emplear tales programas, leer el ar hivo README.TXT.
Sistema de Unidades y A entua ion en Programas Fuente

Esta publi a ion emplea el Sistema Interna ional (SI) de unidades. Para separar la parte entera de la parte de imal de los numeros de imales, seguiremos usando el punto (.) en lugar de la oma (,), debido a que los paquetes
de software MATLAB y Borland C/C++ solo permiten emplear el punto (.) para expresar numeros de imales. Como tales paquetes de software
no emplean el a ento ortogra o, en los listados de los programas fuente
pres indiremos de tal a entua ion.
Sobre el Contenido de los Captulos
Captulo 1: Matemati a Asistida on Computadora.

Des ribe
en forma su inta algunos topi os de matemati as apli adas (basi amente
analisis matri ial y ve torial) ne esarios para el desarrollo de los aptulos
posteriores. La mayora de los ejemplos se desarrollan on el auxilio del
software MATLAB. De all la razon del nombre del aptulo.
Captulo 2: Sistemas Dis retos. Presenta los on eptos fundamentales a er a de los sistemas de ontrol realimentados operando en el tiempo
dis reto, y la representa ion de los mismos en el espa io de estado.
Captulo 3: Modela ion de Pro esos. En este aptulo se desarrolla
la modela ion de los tres pro esos, uyos sistemas de ontrol avanzado van a

xiii

ser implementados en tiempo real. Tales pro esos son: el pendulo invertido,
la grua-puente y el servomotor D.C. (\Dire t Current") sujeto a argas no
lineales. En su se ion problemas, el aptulo presenta la modela ion de
diversos pro esos tpi os.

Captulo 4: Control Optimo.
Desarrolla los fundamentos del ontrol
optimo uadrati o dis reto y dos apli a iones en tiempo real: ontrol optimo
de posi ion del pendulo invertido y ontrol optimo de posi ion de la gruapuente. En su se ion problemas, el aptulo desarrolla dise~nos de sistemas
de ontrol optimo uadrati o para varios pro esos tpi os.
Captulo 5: Control Adaptivo. Dis ute brevemente a er a de los
prin ipales sistemas de ontrol adaptivo, para luego presentar en detalle
el pro edimiento de dise~no de un sistema de ontrol adaptivo on autosintoniza ion. El pro edimiento desarrollado se apli a para implementar en
tiempo real el ontrol adaptivo on autosintoniza ion de la posi ion de un
servomotor D.C. operando on arga no lineal y variable. En su se ion
problemas, el aptulo presenta dise~nos de sistemas de ontrol adaptivo on
autosintoniza ion para varios pro esos tpi os.
Captulo 6: Control Predi tivo. Presenta los fundamentos del ontrol predi tivo basado en modelos y desarrolla una apli a ion en tiempo real:
ontrol predi tivo de la posi ion de un servomotor D.C. sujeto a argas no
lineales empleando el algoritmo de la matriz dinami a de ontrol. En su
se ion problemas, el aptulo desarrolla dise~nos de sistemas de ontrol predi tivo para diversos pro esos tpi os, naturalmente, empleando el algoritmo
de la matriz dinami a de ontrol.
Captulo 7: Control Robusto. Trata los fundamentos del ontrol
robusto basado en la te ni a de ontrol on modelo interno. A ontinua ion,
di ha te ni a se apli a para el ontrol robusto en tiempo real de la posi ion de
un servomotor D.C. modelado on in ertidumbres. Tambien, en su se ion
problemas, el aptulo desarrolla dise~nos de sistemas de ontrol robusto para
diversos pro esos tpi os, empleando el algoritmo de ontrol on modelo
interno.
Captulo 8: Control No Lineal. Desarrolla los fundamentos rela ionados on el ontrol no lineal de pro esos empleando la te ni a denominada linealiza ion por realimenta ion. Para validar los fundamentos de
di ha te ni a, se desarrolla el dise~no e implementa ion del sistema de ontrol por linealiza ion de la realimenta ion de la posi ion de un servomotor
D.C. no lineal. En su se ion problemas, el aptulo desarrolla dise~nos de
sistemas de ontrol no lineal para diversos pro esos tpi os.

xiv

Prefa io

Pre-requisitos y Con gura ion de Cursos

Por su ontenido y su presenta ion, este volumen puede ser usado omo librotexto en las espe ialidades de Ingeniera Ele tri a, Ele troni a, Me ani a
y/o Me atroni a, para el di tado de un urso semestral, tanto de antegrado
(a llevarse en los ultimos semestres) omo de postgrado. Para un urso
de antegrado se sugiere desarrollar los aptulos 1, 2, 3, 4 y 6, y tratar
su intamente los aptulos 5, 7 y 8. Para un urso de postgrado se sugiere
ubrir los aptulos 3 al 8, quedando los aptulos 1 y 2 omo medio de
onsulta.
Por su ara ter apli ativo, por el tratamiento laro y fa ilmente omprensible del material presentado y gra ias a la gran antidad de ejemplos,
problemas y apli a iones desarrollados, este libro puede ser empleado tambien por la gran audien ia de ingenieros y te ni os espe ializados que ejer en
en la industria y por los investigadores de otras areas (fsi os, matemati os,
entre otros) que deseen familiarizarse on las te ni as digitales para dise~nar
e implementar en tiempo real sistemas de ontrol avanzado.
Agrade imientos

La publi a ion de este libro fue nan iada en parte por el Instituto General
de Investiga ion de la UNI. Mi agrade imiento a su Dire tor, Dr. Guillermo
Lira. Mi gratitud espe ial a mis alumnos que olaboraron on esta publi a ion: Leonardo Gushiken ( aptulos 3 y 4), Omar Tupaya hi ( aptulos 3
y 8) y Raul Benitez ( aptulos 6 y 7). Luis Le ina (alumno de la Universidad
Polite ni a de Catalu~na) olaboro on el aptulo 5. La revision de todo lo
es rito estuvo a argo de mi alumna Claudia Cordova, mientras que Rommel
Romero (mi futuro alumno) se en argo de todo lo relativo a la impresion del
libro.
Arturo Rojas Moreno, Ph.D.
arojasmviab p. om
arojasuni.edu.pe
http:// ee.uni.edu.pe/728681F

Cap
tulo 1

Matem
ati a Asistida on
Computadora
Este aptulo es una breve exposi ion de los fundamentos matemati os rela ionados on el analisis matri ial, el analisis ve torial y la transformada de Lapla e. El
material sele ionado esta estre hamente rela ionado on el material a desarrollarse en los aptulos siguientes. Para mayores detalles del material ubierto se
re omienda onsultar las referen ias [18, [19, [20, [21, [22, [14 y el apendi e
A de [3. Los al ulos, en su gran mayora, se realizan on el auxilio del paquete
MATLAB. Todos los ar hivos orrespondientes a los ejer i ios desarrolados se
pueden des argar del sitio: http:// ee.uni.edu.pe/728681F.

1.1

Cal 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 esta libre de ex ep iones


a la regla. Tales ex ep iones seran 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
aij dispuestos en n las y m olumnas. Es de ir:
2

A = [aij = 6
4

a11 : : : a1m

...

...

an1 : : : anm

3
7
5

i = 1; : : : ; n; j = 1; : : : ; m

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,
los ve tores seran denotados en negrita. Por ejemplo, el ve tor olumna x(t)
de orden n se representa omo:
2
3
x1 (t)
... 75
x(t) = 6
4
xn (t)
El ve tor la orrespondiente es:




xT (t) = x1 (t)    xn (t) ;
x(t) = x1 (t)    xn (t) T
donde el superndi 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 ion 1.3) se representan omo A(s),
x(s) e Y(s) respe tivamente.
La rela ion entre la salida y(:) y la entrada u(:) de un sistema, dependiendo 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 ion onvolu ion, 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 tambien 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 se~nal 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 letra minus ula), las uales tambien se denominan variables de desvia ion o
perturba ionales. Por ejemplo, la variable redu ida de Y(k) es:
 (k)
y(k) = Y(k) Y

1.1 Cal ulo Matri ial

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


representan omo A^(:), x^ (:) e Y^ (:), respe tivamente.
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 , solo 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 numero de olumnas de A es igual al numero 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 =

Por ejemplo:


m
X
k=1

a11 a12 a13


a21 a22 a23

aik bkj ; i = 1; 2; : : : ; n; j = 1; 2; : : : ; m
2
4

b11
b21
b31

3
5

11
21

a11 b11 + a12 b21 + a13 b31


a21 b11 + a22 b21 + a23 b31

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 ion 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 ion no es onmutativa:
AB 6= BA

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 = p 1 es la
unidad de los numeros imaginarios y tanto  omo ! son numeros reales.
La opera ion onjugada, denotada omo A , toma la onjugada a todos los
elementos omplejos de A. Para la opera ion onjugada se umple:
(A ) = A; (A + B ) = A + B ; (AB ) = A B 
La opera ion hermitiana, denotada omo AH , 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 H AH
Tipos de Matri es

Si el orden de una matriz A es nn, 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:
3
2
d11 0 0 : : : 0
6 0 d22 0 : : :
0 77
D = [dii = 6
6 .
... 75
.
.
.. ..
4 ..
0 0 0 : : : dnn
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

La matriz identidad I , denotada tambien 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 simetri a si: AT = A
A es antisimetri 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 ion.
Una matriz uadrada A on elementos omplejos puede ser es rita omo la suma de una matriz hermitiana B = 12 (A + AH ) mas una matriz
antihermitiana C = 12 (A AH ). Es de ir:
1
1
A = B + C = (A + AH ) + (A AH )
2
2
1.1.2 Determinantes y Matriz Inversa
Determinantes

El determinante de la matriz A = [aij de orden 2 es:




a11 a12
a21 a22



= a11 a22 a12a21


(1.2)
Para obtener el determinante de una matriz de orden n > 2 podemos
emplear el metodo de la expansion. Si tomamos omo base la primera la,
el determinante de una matriz A se obtiene de:
det

det(A) =

n
X
j

=1

( 1)1+j a1j det(A1j ) = ( 1)1+1 a11 det(A11 ) + ( 1)1+2 a12 det(A12 ) +   

Matemati a Asistida on Computadora

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


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

31



a11 a12 a13
a
a
22
23
1+1

4
5
A
det
a21 a22 a23
= ( 1) a11 det a32 a33 +
a31 a32 a33




a
a
a
a
21
23
21
22
1+2
1+3
( 1) a12det a31 a33 + ( 1) a13 det a31 a32
(1.3)
Con rela ion a dos matri es uadradas A y B de orden n:
1. Si ada elemento de una la o olumna de A es ero, det(A) = 0.

2. det(A) = det(AT ).
3. Si  multipli a una la o olumna de A, enton es el det(A) queda
multipli ado por .
4. Si B se obtiene inter ambiando dos las o olumnas de A, enton es
det(B ) = det(A).
5. Si dos las o olumnas de A son iguales, enton es det(A) = 0.
6. Si sumamos un multiplo de una la o olumna de A a ualquiera de
sus las o olumnas, el valor del det(A) no ambia.
7. det(AB ) = det(BA) = det(A)det(B )
8. Si los eigenvalores de A son 1 ; 2 ; : : : ; n , det(A) = 12 : : : n.
La determina ion de eigenvalores se trata en la subse ion 1.2.2.

Matriz Inversa
Si A y B son dos matri es no singulares; es de ir, si det(A) 6= 0 y det(B ) 6= 0,

enton es:

(AB ) 1 = B 1A 1; (AT ) 1 = (A 1 )T
((A )T ) 1 = ((A 1 ))T ; det(A 1 ) = det1(A)
Si A es una matriz no singular de orden 2, vale re ordar que:




1
a
b
d
b
1
A=
; A =
d

ad b

(1.4)

1.1 Cal ulo Matri ial

Si A es una matriz no singular de orden 3:


2

A=4
2
6
6

1 6
6
A 1=
det(A) 6
6
4



e
det
h

d
det
 g
d
det
g

a b
d e f
g h i



f
i 
f
i 
e
h

3
5



b
det
h

a
det
 g
a
det
g

det(A) = aei + gbf + dh

ge




i 

i 
b
h
ahf



b
det
e

a
det
 d
a
det
d




f 

f 
b
e

idb

3
7
7
7
7
7
7
5

(1.5)

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:
(A + BDC ) 1 = A 1 A 1 B (D 1 + CA 1B ) 1CA 1 (1.6)
Este lema se demuestra pre-multipli ando ada miembro de la e ua ion (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 =

I + BDCA 1 B (D 1 + CA 1 B ) 1 CA 1 BDCA 1 B (D 1 + CA 1 B ) 1 CA 1 =
I + BDCA 1

I + BDCA 1

(BDD 1 + BDCA 1 B )(D 1 + CA 1 B ) 1 CA 1 =

BD(D 1 + CA 1 B )(D 1 + CA 1 B ) 1 CA 1 =
I + BDCA 1

BDCA 1 = I

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


ompleja, su valor absoluto, ono ido tambien omo modulo o magnitud y
denotado omo jgj, es un numero 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 = gr ; =m[g = gi ; g = <e[g + j =m[g = jgj\g


p

=
m[g


2
2
jgj = (<e[g) + (=m[g) ; \g = ar tan <e[g

Matemati a Asistida on Computadora

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


anteriores se eje utan elemento por elemento; es de ir:
<e[G = <e[gij ; =m[G = =m[gij
G = jGj\G = jgij j\gij ; jGj = jgij j; \G = \gij
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 4j
2 3 + 5j 5
6 j 7 j 8 + 3j
(A + AT 0:7jA3 )A 1 AH jAj\A <e[A=m[A
B=
(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.2952 + 0.3551i
%
0.8222 + 0.1991i

0.8007 - 0.3510i -2.1614 + 0.9495i


0.9809 + 1.0977i -2.6468 - 2.9592i
2.7135 + 0.5050i -7.3267 - 1.3550i

Ejemplo 1.2

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


del ejemplo anterior.

1.1 Cal ulo Matri ial

Tabla 1.1: Comandos para omputo matri ial


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

10

Matemati a Asistida on Computadora

Las matri es pedidas son:


1
1
B = (A + AH );
C = (A AH )
2
2
H
y se puede omprobar que B = B y C = C H . Ver programa ejem1 2.m.
Solu ion:

% 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 ion de Matri es.- Dos matri es Anm

y Bmp
(los subndi es indi an las dimensiones) pueden ser parti ionadas omo sigue:
2

A=6
4

An1 m1

...

   An1 mm

...

   Ann mm

3
7
5

B=6
4

Bm1 p1

...

   Bm1 pp

...

3
7
5

Bmm p1    Bmm pp
La ondi ion ne esaria para realizar el produ to Cnp = Anm Bmp empleando
parti iones, es que las olumnas de A y las las de B sean parti ionadas
en la misma forma. Por tanto, n = n1 +    + nn, m = m1 +    + mm y
p = p1 +    + pp . Determinar si el produ to siguiente es valido y si lo es,
obtener C = AB .
2
32
3
A22 A23 A21
B22 B23
AB = 4 A32 A33 A31 5 4 B32 B33 5
A42 A43 A41
B12 B13
Solu ion: Podemos notar que para A: n = 2+3+4 = 9, m = 2+3+1 = 6,
y para B : m = 2 + 3 + 1 = 6 y p = 2 + 3 = 5. Por onsiguiente, la parti ion
Ann m1

es orre ta. La multipli a ion ahora es dire ta:


2
3
A22 B22 + A23 B32 + A21 B12 A22 B23 + A23 B33 + A21 B13
C = 4 A32 B22 + A33 B32 + A31 B12 A32 B23 + A33 B33 + A31 B13 5
A42 B22 + A43 B32 + A41 B12 A42 B23 + A43 B33 + A41 B13
En nota ion MATLAB, ono iendo las matri es parti ionadas, el produ to
resulta:

1.1 Cal 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
dt

= Ax + Bv; dy
= Cy + Dw
dt
Solu ion: Las matri es A on C y B on D forman matri es aumentadas
omo sigue:
 dx 

dt
dy
dt

A 0
0 C



x
y

B 0
0 D



v
w

Ejemplo 1.5

Si los i son los eigenvalores de la matriz A de orden n, omprobar numeri amente


que:
det(A) = 1 2 : : : n ;
i = 1; : : : ; n
Solu ion: Ver el programa ejem1 5.m.
% ejem1_5.m COMPRUEBA QUE det(A)=L(1)L(2)L(3)L(4)
lear all
A = [1-j 2-j 3-j -3+8j
4j -2
3+5j 4-2j
6-j 7-j 8+3j 3+j
2
-1
j 0;
L = eig(A); % DETERMINA LOS EIGENVALORES DE A
detA = det(A); P = L(1)*L(2)*L(3)*L(4);
% SE DEBE CUMPLIR QUE: P = detA

Ejemplo 1.6

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

A B
0 D

G=

A 0
C D

H=

A B
C D

12

Matemati a Asistida on Computadora

demuestre numeri amente que:


det(E ) = det(G) = det(A)det(D)
det(H ) = det(A)det(D CA 1 B ) = det(D)det(A BD 1C )
Solu ion: El siguiente programa demuestra numeri 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 numeri amente que:




A B
0 D

A 0
C D




A 1 BD 1
D 1

A 1
0
1
1
D CA
D 1

A 1
0

=
Solu ion: Ver el programa ejem1 7.m.

1.1 Cal 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 numeri amente que:




A B
C D
A B
C D

Solu ion:

=


A 1 + A 1 B (D CA 1 B ) 1 CA 1
(D CA 1 B ) 1

A 1 B (D CA 1 B ) 1
(D CA 1 B ) 1

(A BD 1 C ) 1
(A BD 1 C ) 1 BD 1
1
1
1
1
D C (A BD C )
D C (A BD 1 C ) 1 BD 1 + D 1

Ver en el siguiente programa la demostra ion pedida.

% ejem1_8.m INVERSION DE MATRICES PARTICIONADAS


lear all
% MATRICES DATOS CON n=2 Y m=3:
A = [-3+j
4-2j

14

Matemati a Asistida on Computadora

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

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
A(t) = 6
4
dt

a11 (t)
..
.
d
a
dt n1 (t)
dt




a1m (t)
..
.
d
a
dt nm (t)
d
dt

7
5;

2 R

A(t) = 6
4

a11 (t)
..
.
an1 (t)





a1m (t)
7
..
5
.
anm (t)
(1.7)

Derivada e integral de un ve tor x(t) = [x1 : : : xnT :


2 d
3
2 R
3
x1 (t)
x1 (t)
Z
dt
d
... 75 ;
... 75
x(t) = 6
x(t) = 6
(1.8)
4
4
dt
R
d x (t)
xn (t)
dt n
Cuando las matri es A y B y el es alar  son fun iones de t, se umple:
dB
d
[A + B = dtd A + dtd B ; dtd [AB = dA
B+A
dt
dt
dt
d
dk
[Ak = dA
k+A ;
dt
dt
dt

d 1
dA 1
A = A 1
dt
A

(1.9)

1.2 Analisis Ve torial

15

Derivada par ial de una fun ion es alar J (x) de variable ve torial:
J
x

2 J 3

2J
x2

x1
= 64 ... 75 ;
J
xn

2J
x21

2J
x1 x2



 J
xn x1

 J
xn x2



= 64

...
2

...
2

2J 3
x1 xn
7

...
2

 J
x2n

7
5

(1.10)

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




2
x1
f2
x2




x1
fm 7
x2 7
7

f2
xn



fm
xn

d
V T dx
V (x(t)) =
(1.11)
dt
x
dt
Ja obiano de una fun ion ve torial f(x) de orden m on argumento ve torial
de orden n:
2
3
f
f
f
f
x

1
x

6 f11
6 x2
6
6
4

...

f1
xn

...

...

7
5

(1.12)

Si la matriz uadrada A y los ve tores x e y son reales y de orden n se


umple:
 T
x Ax = Ax + AT x
x
 T
 T
x Ay = Ay;
x Ay = AT x
(1.13)
x
y
Si A es una matriz hermitiana de orden n y x e y son ve tores omplejos de
orden n, se umple:
 H
x Ax = Ax
x
 H
 H
x Ay = Ay;
x Ay = AT x
(1.14)
x
y
1.2

Analisis 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:
n
X
i=1

i xi = 0

16

Matemati a Asistida on Computadora

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

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

Opera ion on Ve tores Complejos y Reales


Si x e y son ve tores omplejos de orden n:
xH y = (yH x) = yT x =
xH x =
2

n
X
i=1

xi xi =

n
X
i=1

n
X
i=1

xi yi

jxi j2

x1 x1 x1 x2 : : : x1 xn

...
...
xxH = 6
4 :::
xnx1 xn x2 : : : xn xn
Si x e y son ve tores reales de orden n:
x T y = yT x =
2

xxT

= 64

n
X
i=1

xi yi ;

xT x =

3
7
5

n
X
i=1

x21 x1 x2 : : : x1 xn
...
...
:::
xn x1 xnx2 : : : x2n

(1.15)

x2i

3
7
5

(1.16)

Ve tores Ortonormales
Los ve tores reales x1; x2 ; : : : son ortonormales si xTi xj = 0 uando i 6= j
xTi xj 6= 0 uando i = j .
Normas de Ve tores y Matri es
Norma de un Ve tor

En general, una norma es una medida del tama~no 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
denotada omo k x k posee las propiedades siguientes:
k x 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
k x + y kk x k + k y k
jxH yj k x kk y k

Desigualdad triangular:
Desigualdad de S hwarz:
La norma mas empleada es la Eu lidiana:
p
k x k2 = (xH x)1=2 = jx1j2 + jx2 j2 +    + jxnj2
que es un aso parti ular de la siguiente norma:

(1.17)

q
q
p
k x k= (P x)H (P x) = xH P H P x = xH Qx)  0; Q = P H P = QH

Otras normas pueden ser de nidas omo:


k x k=

n
X
i=1

jxi j;

k x k1= max
jxij;
i
k x kp=

n
X
i=1

jxijp

k x k 1= min
jxi j
i

!1=p

Norma de una Matriz

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


k A k  k A k

Tal norma umple las propiedades de la norma de un ve tor. En adi ion,


tambien umple:
k A k=k AH k; k A k=k AT k; k Ax kk A kk x k
H H
H
k A k2 = max
x [x A Ax; si x x = 1
jj k A k; si  es un eigenvalor de A
Otras normas para una matriz A de orden n son:
k A k=

n X
n
X
i=1 j =1

jaij j;

k A kF =

0
n X
n
X


i=1 j =1

11=2

jaij j2 A

18

Matemati a Asistida on Computadora

k A k1 = max
j

m
X
i=1

jaij j ;


k A k1= max
i

jaij jA

n
X
j =1

k A k2 = max
i (AH A)
i
1.2.2 Rango de una Matriz, Eigenvalores y Eigenve tores
Rango de una Matriz

Si A es una matriz de orden n  m, su rango, denotado omo rango(A), es


igual al numero maximo r de sus ve tores olumnas linealmente independientes. Si A es una matriz de orden n  m y B es de orden m  k:
rango(AB ) = rango(AH ) = rango(AH A) = rango(AAH )
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 tambien omo valor propio, modo, \eigenvalue", valor o raz ara tersti a, es un es alar  que
permite una solu ion no trivial de la e ua ion:
Ax = x
x0
(1.18)
Fa torizando x obtenemos la e ua ion ara tersti a de A:
det(I A)
(1.19)
Aso iado on ada eigenvalor i existe un eigenve tor ei de magnitud arbitraria que es solu ion de Aei = ei. Para un eigenve tor normalizado e^, su
norma Eu lidiana es uno: k e^ k= 1.

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 1 AP = 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
3
1 0 : : : 0
6 0 2 : : : 0 7
1
E AE =  = 6
(1.20)
6 ..
...
... 775 ; E E 1 = A
4 .
0 0 : : : n
Forma Canoni 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
3
2
3
1 1 0 0 0
1 1 0 0 0
6 0 1 1
6 0 1 0
0 0 77
0 0 77
6
6
J1 = 6
0 1 0 0 77
J2 = 6
0 1 0 0 77
6 0
6 0
4 0
5
4
0 0 2 0
0 0 0 2 0 5
0 0 0 0 3
0 0 0 0 3
2
3
2
3
1 0 0 0 0
1 0 0 0 0
6 0 1 0
6 0 2 0
0 0 77
0 0 77
6
6
J3 = 6
0 1 0 0 77
J4 = 6
0 1 1 0 77
6 0
6 0
4 0
5
4
0 0 2 0
0 0 0 1 1 5
0 0 0 0 3
0 0 0 0 3
Notar que J1 y J4 deben poseer tres eigenve tores linealmente independientes, la matriz diagonal J3 in o y J2 uatro. Para un problema espe  o, la
forma orre ta de la matriz J se determina de a uerdo a las reglas siguientes:
1. Si una matriz uadrada A de orden k posee k eigenvalores multiples,
y si el rango de [I A es k s, donde 1  s  k, enton es exis-

20

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 Cuadrati as y Bilineales
Formas Cuadrati as

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


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

n X
n
X
i=1 j =1

aij xi xj ;

aji = aij

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 =

n X
n
X
i=1 j =1

aij xi xj ;

aji = aij

Formas Bilineales

Una forma bilineal es un polinomio real que ontiene terminos de la forma


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

n X
m
X
i=1 j =1

aij xi yj

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 =

n X
m
X
i=1 j =1

aij xi yj

1.2 Analisis Ve torial

21

De ni ion 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
uadrati a xH Ax esta aso iada on la matriz hermitiana A, as omo xT Ax
lo esta on la matriz real y simetri a A.
Una matriz A de orden n es de nida positiva si su forma uadrati a
aso iada es siempre positiva, ex epto uando x = 0. Si todos los eigenvalores
de A son positivos, enton es A > 0.
Una matriz A de orden n es semide nida positiva si su forma uadrati a
aso iada es mayor o igual a ero uando x 6= 0. Si los eigenvalores de A son
positivos o nulos, enton es A  0.
Una matriz A de orden n es 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 uadrati a
aso iada es menor o igual a ero uando x 6= 0. Si los eigenvalores de A son
negativos o nulos, enton es A  0.
Si la matriz A posee eigenvalores positivos y negativos, enton es A es
inde nida.
La tabla 1.2 muestra los omandos para eje utar otras opera iones matri 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 ion: Ver el programa ejem1 9.m.
% ejem1_9.m
lear all
A = [5-j
4j
6-j

SISTEMA DE ECUACIONES: MAS INCOGNITAS QUE ECUACIONES


2+3j 3-j -1+4j -6+j
-2
3+5j -7j
8-2j
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
Produ to interno real
Produ to por elemento
Division por elemento
Poten ia por elemento
Norma matri ial
Norma matri ial
Norma matri ial
Norma matri ial
Norma ve torial
Norma ve torial
Norma ve torial
Norma ve torial
Rango
Eigenvalores
Eigenve tores

xH y
xT y
aij bij
aij =bij
(aij )bij
Pm
k A k1 = maxj p
i=1 jaij j
k A k2 = maxi Pi(AH A)
k A k1= maxi nj=1 jaij j

1=2
k A kF = Pij jaij j2
k x kp= (pPni=1 jxijp)1=p
k x k2 = xH x
k x k1= maxi jxij
k x k 1= mini jxij
i
E = [e1 : : : en

x'*y
x'*y
A.*B
A.\B; A./B
A.^B
norm(A,1)
norm(A,2)
norm(A,inf)
norm(A,'fro')
norm(x,p)
norm(x)
norm(x,inf)
norm(x,-inf)
rank(A)
eig(A)
[E,D=eig(A)

1.2 Analisis Ve torial


B = [2-9j;4-j;3+j;
X = A\B; %
% X =
%
3.5719 - 3.4126i
%
0
% -2.8535 + 1.6221i
%
0
%
0.9991 - 0.4860i

-->
-->
-->
-->
-->

23

x1;
x2
x3
x4
x5

Ejemplo 1.10

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


(5 j )x1 + (2 + 3j )x2 + (3 j )x3 = 2 9j
4jx1 2x2 + (3 + 5j )x3 = 4 j
(6 j )x1 + (7 j )x2 + (8 3j )x3 = 3 + j
( 1 + 4j )x1 + ( 6 + j )x2 + (3 j )x3 = 3 + 7j
7jx1 + (8 2j )x2 + (1 + 4j )x3 = 9
Solu ion: Ver el programa ejem1 10.m.
% ejem1_10.m SISTEMA DE ECUACIONES: MENOS INCOGNITAS QUE ECUACIONES
lear all
A = [5-j
2+3j 3-j
4j -2
3+5j
6-j
7-j 8-3j
-1+4j
-6+j 3-j
-7j
8-2j 1+4j;
B = [2-9j;4-j;3+j;-3+7j;-9;
X = A\B;
% X =
%
1.2270 - 2.1969i --> x1
%
0.6871 + 1.2202i --> x2
% -0.9472 + 0.4153i --> x3

Ejemplo 1.11

Comprobar numeri amente que:


xH y = (yH x) = yT x
Solu ion: Ver el programa ejem1 11.m.

24

Matemati a Asistida on Computadora

% 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 toriales.


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

Ejemplo 1.13

Sean las matri es Anm , Bmp y Cmm . Demostrar numeri amente las siguientes propiedades del rango: rango(A)  min(n; m); rango(A) = rango(AH );
rango(AB )  min(rango(A); rango(B )); rango(CB ) = rango(B ).
Solu ion: El siguiente programa presenta las demostra iones pedidas.

1.2 Analisis Ve torial


% 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
6 0
1 1 1 77
A=6
4 0 0
0 1 5
0 0 1 2
% ejem1_14.m FORMA CANONICA DE JORDAN
lear all
A = [0 1 0 3;0 -1 1 1;0 0 0 1;0 0 -1 -2; % ORDEN 4
[E D = eig(A);
% E =
% MATRIZ DE EIGENVECTORES
%
1.0000 -0.7071 0.9045 0.7068
%
0
0.7071
0 -0.7074
%
0
0 0.3015 -0.0002
%
0
0 -0.3015 0.0002
% D =
%
0
%
0

% LOS EIGENVALORES DE A FORMAN LA DIAGONAL DE D


0
0
0
-1
0
0

25

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
Determinar la de ni ion de las matri es siguientes:
2

A=4

2 2
2 6
1 0

2
0
2

5;

B=4

1 2 1
2 4 2
3 6 0

3
5

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

1.3

La Transformada de Lapla e

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


Z 1
g(s) = L[g(t) =
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
(
s+a)t 1
1
e
=
L[e at =
e at e st dt =
s+a 0 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. Algunas de sus propiedades se muestran en la tabla 1.4.
Tabla 1.3: Transformadas de Lapla e
Des rip ion
g(t)
g(s)
Impulso unitario
(t)
1
1

Es alon unitario
s
1
Rampa unitaria
t
s2
n
!
n
t
Rampa de orden n
s +1 ; n! = n(n 1) : : :
1
at
Exponen ial
e
s+a
!
Seno
sen!t
s2 +!2
s
Coseno
os!t
s2 +!2
!
Seno amortiguado e at sen!t
(s+a)2 +!2
s+a
Coseno amortiguado e at os!t
(s+a)2 +!2
n

Tabla 1.4: Propiedades de la transformada de Lapla e


Des rip ion
Propiedad
h i
Deriva ion
L dg
= sg(s) g(0), g(0) = [g(t)t=0
h dt i
Deriva ion de orden n
L ddt g = sng(s) sn 1 g(0)    gn 1 (0)
h
1 i
gn 1 (0) = dt d 1 g(t)
t=0
hR
i
Integral
L 0t g(t)dt = g(ss)
Desplazamiento en tiempo L[g(t t0)(t t0) = e t0 sg(s)
Desplazam. en fre uen ia L[e at g(t) = g(s + a)
Valor ini ial
limt!0 g(t) = lims!1 sg(s)
Valor nal
limt!1 g(t) = lims!0 sg(s)
n
n

Ejemplo 1.16

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


velo idad v gra ias a la a ion de la fuerza u produ ida por su motor. Si se

28

Matemati a Asistida on Computadora

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

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) = 1s . La salida se determina de:
v(t) = L 1 [v(s) = L 1

s(ms + b)

y empleando la tabla 1.3 obtenemos:


1
v(t) = (1
b

= 1L
b

bt=m

"

1
s

1
s + mb

Ejemplo 1.17

Empleando las propiedades del valor ini ial y del valor nal, determinar
tales valores para la velo idad del movil del problema anterior.
Solu ion: El valor ini ial se determina de: limt!0 v(t) = lims!1 sv(s) = 0.
El valor nal se obtiene de: limt!1 v(t) = lims!0 sv(s) = 1b .

Cap
tulo 2

Sistemas Dis retos


En este aptulo se exponen los on eptos de variables de estado, muestreo y
re onstru ion de se~nales en los pro esos a ontrolar. Tambien se trata la dis retiza ion dire ta de pro esos ontinuos, la transformada Z omo herramienta
de dis retiza ion, las formas anoni as de los pro esos en el espa io de estado 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 dominio dis reto. Todos los ar hivos orrespondientes a los ejer i ios desarrollados
en este aptulo se pueden des argar del sitio: http:// ee.uni.edu.pe/728681F.

2.1

Dise~
no de Sistemas de Control Digital

La gura 2.1 muestra la estru tura de un sistema de ontrol digital, uyo


objetivo de ontrol es lograr que la se~nal de salida Y del pro eso (de ara ter
ontinuo, omo en la mayora de los asos) siga a la se~nal de referen ia r
umpliendo determinadas espe i a iones de dise~no, tales omo: mnimo
tiempo de estabiliza ion, mnimo sobreimpulso y/o error en estado esta ionario nulo en Y . En otras palabras, el algoritmo de ontrol implementado, en este aso digitalmente, debe ser apaz de rear una se~nal de ontrol
U (la variable manipulada), la ual a tuando sobre el pro eso a traves de un
a tuador, minimi e la se~nal de error e. El bloque de ltraje es util para eliminar las omponentes ontaminantes de alta fre uen ia de la se~nal de ruido
de medi ion n. El ltro de ruido puede ser analogi o o digital y su in lusion
depende de la magnitud del ruido y su relevan ia dentro del fun ionamiento
del sistema de ontrol.

30

Sistemas Dis retos


Disturbios

Muestreador
y
A/D

Computadora
Digital

D/A
y
Retencion

Actuador
y
Proceso

n
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 algoritmo 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 Se~nales). El pro esamiento digital del algoritmo de ontrol requiere de la presen ia de los dispositivos de adquisi ion de
datos: muestreadores, onversores de se~nal A/D (analogi o a digital) y D/A
(digital a analogi o) y retenedores (re onstru tores) de se~nal.
La on gura ion mostrada en la gura 2.1 no es uni a. Por ejemplo, dado
el aso, la se~nal de referen ia y la ompara ion de se~nales pueden ser generadas dentro de la omputadora digital. En otros asos, si el a tuador y los
dispositivos de medi ion son apa es de pro esar se~nales 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 dispositivo de pro esamiento digital es una omputadora personal, los sensores de
se~nal son de odi adores ele troni os de pulsos (\en oders"), mientras que
el a tuador es una ombina ion de un servomotor D.C. (de orriente ontinua) on un ampli ador ele troni o PWM (\Pulse Wide Modulation").
El empleo del pro esamiento digital permite la realiza ion de algoritmos
de ontrol so sti ados existentes en la teora de ontrol moderna, pero tambien refuerza la interrogante sobre que 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 se~nales. 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 dise~no).

2.2 Con epto de Estado y Variables de Estado

2.2

31

Con epto de Estado y Variables de Estado

La dinami a de un pro eso multivariable, es de ir, un pro eso que posee


multiples entradas y multiples 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:
X_
Y

= f(X; U; v; t)
= h(X; U; w; t)
(2.1)
donde f y h son fun iones ve toriales de variable ve torial de orden n y r
respe tivamente, X es el ve tor de estado de orden n, U es el ve tor de
ontrol de orden m, Y es el ve tor de salida de orden r, v es el ve tor de
disturbios (de orden n) en los estados, y w es el ve tor de disturbios (de
orden r) en las salidas. El tiempo t se in luye omo parte del argumento
para indi ar que pueden existir parametros variantes on el tiempo. En este
punto es onveniente de nir el on epto de estado:
El ve tor de estado X = [X1 : : : Xn T de un pro eso (donde el superndi e T indi a transpuesta) es el mnimo onjunto de variables, las variables de estado X1 : : : Xn , las uales ontienen informa ion su iente
a er a de la historia pasada del pro eso. Esta informa ion permite omputar todos los futuros estados del pro eso, asumiendo por supuesto, que
todas las futuras entradas U son tambien ono idas, omo del mismo modo
lo son las e ua iones dinami as que des riben di ho sistema. El numero n
de variables de estado de ne el orden o la dimension 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 X1 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 ion de una fuerza de entrada
 . Por tanto, los puntos de equilibrio (X ) se determinan de:
U
_ = 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 + Ev

32

Sistemas Dis retos

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

x=X X

u=U U
y

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


pro eso alrededor del estado de equilibrio (X , U ), las matri es A, B , C y D
pueden ser determinadas evaluando las siguientes matri es ja obianas:
A

2 f1
X1
6
4



f1 3
Xn

fn
X1
2 h1
X1




fn
 ;U )
Xn (X
h1 3
Xn

6
4

hr
X1



hr
Xn

...
...

...
...

2 f1

U1



f1 3
Um

fn
U1
2 h1
U1




fn
 ;U )
Um (X
h1 3
Um

hr
U1



hr
Um

...

7
5

B=6
4

...

7
5

D=6
4

(X ;U )

...

...

...

...

...

7
5

...

7
5

(2.4)

(X ;U )

La matriz de transferen ia para pro esos multivariables lineales se determina empleando la e ua ion matri ial siguiente:
Y(s) = [C (sI A) 1 B + DU(s)
(2.5)
donde s es la variable lapla iana e I es la matriz identidad. Cuando las
se~nales Y y U son unidimensionales, la e ua ion anterior se onvierte en la
e ua ion de transferen ia de un pro eso univariable. La e ua ion ara tersti a del pro eso se obtiene de:
det(sI A) = 0
(2.6)
donde det es la opera ion determinante. Las ra es de (2.6) son tambien
ono idas omo ra es ara tersti as, eigenvalores, valores propios, modos,

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 X en 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 tersti a (2.6) posean parte real negativa.
Cuando al menos uno de tales eigenvalores posea parte real positiva o ero,
enton es el pro eso es inestable.

De a uerdo a la e ua ion (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) tambien 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 identi os olo ados en as ada. La se ion
horizontal S =9 m2 de ada tanque es onstante. El objetivo de ontrol es
estabilizar ( ontrolar) la altura H2 empleando omo fuerza de ontrol el
ujo de alimenta ion Qo. Determinar el modelo linealizado de este pro eso
hidrauli o.
Q

p
0

H1

Tanque
1

Q
0

g
1

H2

Tanque
2

Figura 2.2: Pro eso hidrauli o.


Solu ion:

Los ujos de salida Q1 y Q2 de los tanques se pueden modelar

34

omo:

Sistemas Dis retos


p

Q1 = P1

P0 ;

Q2 = P2 P0

dH
Q0 Q1 = S 1 ;
dt

dH
Q1 Q2 = S 2
dt

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


respe tivamente, y =0.4 es una onstante que depende de la geometra del
ori io. Si =1.23 kg/m3 es la densidad del lquido y g=9.81 m/s2 es la
a elera ion de la gravedad:
P1 P0 = gH1 ;
P2 P0 = gH2
El ujo a umulado en ada tanque es:
Resolviendo las e ua iones anteriores para las alturas, obtenemos:
pg p
1
H1 = f1
H_ 1 = Q0
H_ 2 =

S
S
p
g p
[ H1
S

H2 = f2

y su orrespondiente e ua ion de salida:


Y

= [0 1

H1
H2

De namos las siguientes variables residuales: h1 = H1 H 1, h2 = H2 H 2,


q0 = Q0 Q 0 . Cono iendo Q 0 = 3 m3 /s, el estado de equilibrio del pro eso
se puede obtener de:
pg p 
1
H_ 1 = Q 0
H1 = 0
lo que resulta en:

H_ 2 =

S
S
pg p 
[ H1
S

H 2 = 0

Q 2
H 1 = H 2 = 2 0
g

Apli ando el ja obiano, el pro eso linealizado resulta:


h_ = A h + B q0 ;
y = h2 = C h

2.2 Con epto de Estado y Variables de Estado

donde:


h = hh1
2

B=

A=
"

f1
Q0
f2
Q0

"

f1
H1
f2
H1

f1
H2
f2
H2

p
pgH
2
S
1
4
g
p
p
2S H 1
2


1
= 0 ;
Q0

Ejemplo 2.2

35

(H 1 ;H 2 )

C = [0

1;

g 5
p
p
2S H 2

D = [0

El pro eso pendulo no lineal mostrado en la gura 2.3 puede rotar libremente alrededor del pivote gra ias a la a ion de un torque externo U . En
di ha gura Bp=1.3366 N-m/rad/s es la fri ion vis osa rota ional en el
punto pivote, Lo=1.6350 m es la longitud de la varilla de peso despre iable, Mo=0.5 kg es la masa de la esfera y g=9.81 m/s2 es la a elera ion
de la gravedad. La salida de interes es la posi ion angular  del pendulo.
Para las situa iones mostradas en las guras 2.3(a) y 2.3(b) determine: las
e ua iones no lineales de estado y de salida, los puntos de equilibrio, las
e ua iones linealizadas de estado y de salida, las fun iones de transferen ia,
las e ua iones ara tersti as, y la estabilidad del pro eso.
Mo

Bp

Lo

Lo

Mo

(a)

Bp
(b)

Figura 2.3: Pendulo no lineal en posi ion de equilibrio estable ( gura (a)) y
en posi ion de equilibrio inestable ( gura (b)).
Solu ion: El pro eso en estudio es univariable; es de ir, una sola entrada U
a tuando sobre el pro eso, y una sola salida: la posi ion angular. Primero
analizaremos la situa ion mostrada en la gura 2.3(a). El torque resultante
alrededor del pivote es:
 + Bp_ + MogLo sen
U = Mo L2o 
(2.7)

36

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 U
senX1
X2 +
X_ 2 =
2
Lo
Mo Lo
Mo L2o
Y = X1
(2.8)
uya representa ion ompa ta (e ua ion (2.1) on v = w = 0) resulta:
X_ = f;
Y = X1 = h
donde:
#



 "
X
2
X
f
X = X1 ; f = f 1 =
(2.9)
B
g senX
1 2U
1
2 x2 +
2
2
p

Lo

Mo Lo

Mo Lo

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


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

f2 f2
X1 X2 (0;0)
"
#
 f1 
U
1
f2
Mo L2o
U 0
h
i

h
h
X1 X2 (0;0)

h
= [0
U 0

g
Lo

Bp
M o L2o

= 1 0
(2.11)

2.2 Con epto de Estado y Variables de Estado

37

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


Y (s)
= C (sI A) 1 B
U (s)
"
# 1"
#
s
1
0
= [1 0 g B 2 + s
1
M L2
L
ML
= MoL2s2 + B1ps + MogLo
o

p
o o

o o

(2.12)

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


det(sI A) = Mo L2o s2 + Bp s + Mo gLo = 0
(2.13)
que resulta siendo el denominador de la fun ion 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 pendulo se en uentra en la posi ion 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 pendulo no lineal es:
(2.14)
U = Mo L2o  + Bp _ Mo gLo sen
Con el pro edimiento empleado para la situa ion mostrada en la gura
2.3(a), fa ilmente podemos determinar que:
"
#
0
1
A=
g
Lo

Bp
Mo L2o

y su e ua ion ara tersti a resulta:


det(sI A) = Mo L2o  + Bp _ Mo gLo sen
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 x1 =  y x2 = ._
Sin embargo, la forma general de linealiza ion requiere de la apli a ion de
las matri es ja obianas dadas en (2.4).

38

2.3

Sistemas Dis retos

Fundamentos de Sistemas Dis retos

2.3.1 Muestreo y Re onstru ion

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

u (t) = u(kT )(t
k=0

kT )

(2.15)

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:

t = kT
(t kT ) = 10 si
si t 6= kT
Empleando la ono ida identidad L[(t

kT ) = e

kT s

, la transformada de

2.3 Fundamentos de Sistemas Dis retos

39

rd

ALGORITMO
DE CONTROL

COMPUTADORA DIGITAL

ud

u*

D
A

ACTUADOR

yd

RETENCION

FILTRAJE
A

PROCESO

MEDICION

y* T

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


Lapla e de u resulta:
u (s)

1
X

= L[
=

k=0

1
X
k=0

u(kT )(t kT ) =

u(kT )e

kT s

1
X
k=0

u(kT )L[(t kT )

= u(esT )

(2.16)

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


2
! =
s

(2.17)

El tren de impulsos u (t) se puede representar alternativamente mediante


su serie de Fourier:
1
1 X
u (t) =
u(t)ej! t
(2.18)
T
s

k=

uya transformada de Lapla e ahora resulta (ver referen ias [4, [3):
u (s) =

1
X

T k= 1

u(s + i!s)

(2.19)

La se~nal u(s) posee dos propiedades importantes. La primera es su ara ter


periodi o, que puede demostrarse reemplazando en la e ua ion (2.16) la

40

Sistemas Dis retos

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


u (s + j!s )

1
X
 =0

u(kT )e

kT (s+j!s )

u (esT )

1
X
 =0

u(kT )e

kT s e kT j!s

=
(2.20)
donde hemos usado el he ho de que !sT = 2. La segunda propiedad
es omo sigue: si u(s) posee un polo en s = s1, enton es u(s) debe poseer
polos en s = s1 + j!s,  = 0; 1; 2; : : : Esta propiedad puede demostrarse
expandiendo la sumatoria en la e ua ion (2.19):
1
X
1
1

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

+    + u(s j!s) + u(s 2j!s) +   


Si u(s) posee un polo en s = s1, enton es ada termino 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 se~nales u(t) y
u (t), asumiendo que u(t) es de banda limitada. Del gra o de ju (ej! )j
podemos extraer la siguiente on lusion referente al teorema fundamental
del muestreo:
Para que la se~nal 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

 !

max

(2.21)

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


de la se~nal u empleando un dispositivo de reten ion de orden ero, el ual re onstruye la se~nal mediante aproxima iones re tangulares. Tener en uenta
que u es una se~nal 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 ion es alon
unitario que se de ne omo:

t  kT
(t kT ) = 10 si
si t < kT

2.3 Fundamentos de Sistemas Dis retos

41
u(j )

u(t)

max

u*(t)

max

u*(e

max

max

Figura 2.5: Respuesta en fre uen ia de las se~nales u(t) y u (t) para ilustrar
el teorema del muestreo.
El area total de la se~nal u a la salida de la reten ion es:
u(t) =

1
X
k=0

u(kT )[(t kT ) (kT )

Empleando la ono ida transforma ion L[(t kT ) = e s , la transformada de Lapla e de u(t) resulta:
1
X
1
1
u(s) = u(kT )e kT s [1 e T s = u (s) [1 e T s
s
s
kT s

k=0

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


viene a ser:
u(s)
1 e sT
=
G
(
s
)
=
(2.22)
r
0
u (s)
s
Este ultimo resultado sera usado posteriormente.
Dis retiza ion Dire ta

Es bastante util dis retizar dire tamente expresiones que ontengan integrales y derivadas. La aproxima ion re tangular al ula el area debajo de
una ierta urva e(t) mediante la suma de re tangulos de la forma T e(iT T )
(T es el tiempo de muestreo), tal omo se ilustra a ontinua ion. Por onsiguiente, terminos que ontengan integra ion pueden dis retizarse empleando

42

Sistemas Dis retos


_
u(s)
1 e- sT
T
s
DE ORDEN CERO
RETENCION
_
u*(t)
u (t)

2T

3T

4T

2T

u(3T)

u(0)

u (t)

u(2T)

u*(s)

u(T)

u(s)

3T 4T

Figura 2.6: Pro eso de muestreo y re onstru ion.


aproxima ion re tangular omo sigue:
u(t)

u(kT )

u(kT ) u(kT

k
X
i=0

e( )d
T e(iT

T );

u(kT

T)  T

k 1
X
i=0

e(iT

T)

= T 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. Terminos que ontengan
derivadas pueden dis retizarse empleando diferen ias por atraso:
de(t)
= e_(t)  e(kT ) = e(kT ) e(kT T )
dt
de_(t)
dt

T)

Z t

2
= e(t)   eT(2kT ) = e(kT ) T2e(kT T ) = e_(t) eT_(t T )
...
(2.24)
Si la dis retiza ion de la derivada se realiza por adelanto, enton es las diferen ias son de la forma:
x(kT + T ) x(kT );
x(k + 1) x(k)
Ejemplo 2.3

Dis retizar el modelo no lineal del pro eso pendulo des rito en el ejemplo 2.2
y gra ar diez segundos de su respuesta a un torque tipo es alon unitario.

2.3 Fundamentos de Sistemas Dis retos

43

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


N-m/rad/s, g = 9.81 m/s2 y T = 0.01 s.
Solu ion: Dis retizando por adelanto las e ua iones dadas en (2.8) y obviando la es ritura del tiempo de muestreo T en los argumentos, obtenemos:
X1 (k + 1) = X1 (k) + T X2 (k)


Bp
g
1
X2 (k + 1) = X2 (k) + T
senX1 (k)
x (k ) +
U (k)
Lo
Mo L2o 2
Mo L2o
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:




Z t
1
de(t)
u(t) = K e(t) +
e(t)dt + TD
(2.25)
TI 0
dt
donde K es la ganan ia propor ional, TI es el tiempo de integra ion y TD
es el tiempo derivativo. En un primer aso emplear integra ion re tangular
y luego usar integra ion trapezoidal.
Solu ion: Empleando las rela iones (2.23) y (2.24) en (2.25) se obtiene:
(

k
T X
u(k) = K e(k) +
e(i
TI i=0

1) + TTD [e(k) e(k

1)

44

Sistemas Dis retos


0.2
0.18
0.16

Posicin (rad)

0.14
0.12
0.1
0.08
0.06
0.04
0.02
0
0

100

200

300

400
500
600
Tiempo discreto k

700

800

900

1000

Figura 2.7: Respuesta del pendulo no lineal al es alon.


u(k

1) =

"

k
T X
K e(k 1) +
e(i
TI i=0

TD
[e(k 1) e(k 2)
T

1)

e(k

1)

+
Restando las expresiones anteriores y despejando u(k) obtenemos:
u(k) = u(k 1) + q0 e(k) + q1 e(k 1) + q2 e(k 2)
(2.26)
donde:
T
T
T
T
q0 = K (1 + D );
q1 = K (1 + 2 D
);
q2 = K D
T
T TI
T
Si la integra ion emplea el metodo trapezoidal (aproxima ion de segmentos de area mediante trapezoides), enton es:
(
)

k 
X
e(i 1) + e(i)
TD
1
u(k) = K e(k) +
T
+ T [e(k) e(k 1)
TI i=0
2
u(k

1) =

T
K e(k 1) +
2TI

" k
X

i=0

e(i

1)

e(k

1) +

k
X
i=0

e(i) e(k)

2.3 Fundamentos de Sistemas Dis retos

45

TD
[e(k
T

+
1) e(k 2)
Restando las expresiones anteriores y despejando u(k) obtenemos una expresion similar a (2.26), donde:
T
T
T
T
T
);
q1 = K (1 + 2 D
);
q2 = K D
q0 = K (1 + D +
T 2T
T 2T
T
I

2.3.2 La Transformada Z

Es util introdu ir la siguiente rela ion:


z = eT s = eT (+j!) = eT  [ os!T + jsen!T
(2.27)
Reemplazando en la e ua ion (2.16) la se~nal u por una variable generi a g,
llegamos a la siguiente de ni ion de la transformada Z :
1
X
g(z ) = Z [g(kT ) = g(kT )z k = g(0)+ g(T )z 1 + g(2T )z 2 +    (2.28)
k=0

La serie en (2.28) onverge si jg(kT )j se restringe a valores nitos y si jzj > 1.


Las sumatorias siguientes son bastante utiles para resolver problemas
rela ionados on la transformada Z :
NX1
1 aN ; jaj < 1
ak =
1 a
k=0

1
X
k=0

1
X

ak

kak

k=0
N2
X

k=N1

1
X

ak

= 11a;
= (1
=

aN1

N1

a)2

jaj < 1

aN2 1
a

jaj < 1

jaj < 1

= 1a a ; jaj < 1
(2.29)
k=N1
A manera de ejemplo, la transformada Z del impulso unitario (kT ), sabiendo que (0T ) = 1, resulta:
1
X
Z [(kT ) = (kT )z k = z 0 = 1
ak

k=0

46

Sistemas Dis retos

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


de las sumatorias dadas en (2.29) resulta:
1
X
1 = z
Z [(kT ) = z k =
1
z 1 z 1
k=0

la ual es valida para jz 1j < 1 (o jzj > 1), pues la serie debe ser onvergente. La tabla 2.1 ilustra la transformada Z de algunas se uen ias notables,
mientras que la tabla 2.2 presenta la rela ion existente entre la transformada
Z y la transformada de Lapla e.
A ontinua ion se formulan algunas propiedades de la transformada Z :
(1) Linealidad:
Z [ag1 (kT ) + bg2 (kT ) = aZ [g1 (kT ) + bZ [g2 (kT )
(2) Desplazamiento a la dere ha:
Z [g(kT dT ) = z d g(z ); d  0
(3) Desplazamiento a la izquierda:
Pd 1

Z [g(kT + dT ) = z d [g(z )
 =0 g (T )z ; d  0
(4) Amortiguamiento:
Z [g(kT )e akT = g(zeaT )
(5) Multipli a ion por una variable:
Z [kg(kT ) = z dgdz(z)
(6) Multipli a ion por una exponen ial:
Z [ak g(kT ) = g( az )
(7) Teorema del valor ini ial:
limk!0 x(kT ) = limz!1 x(z)
(8) Teorema del valor nal:
limk!1 g(kT ) = limz!1 z z 1 g(z) = limz!1(1 z 1 )g(z)
Por ejemplo, sabiendo que Z [ os!k es ono ido, la transformada Z de
ak os!k puede ser determinada empleando la propiedad de multipli a ion
por una exponen ial, omo sigue:


z (z os!)
z (z a os!)
k
Z [a os!k = 2
=
2
z 2z os! + 1 z=z=a z 2za os! + a2

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 +1
(4)
(k d)
z 1
z
(5)
k(k)
(z 1)2
z
(6)
ak (k)
z a
1
(7)
ak 1 (k 1)
z a
az
(8)
kak (k)
(z a)2
z sin!
(9)
(k)sen!k
z 2 2z os!+1
z (z os!)
(10)
(k) os!k
z 2 2z os!+1
za sen!
(11)
(k)ak sen!k
z 2 2za os!+a2
z (z a os!)
(12)
(k)ak os!k
z 2 2za os!+a2
(13) k(k 1)(d(k1)! m+2) ak d+1 (1z z +11)
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)
(2)
(3)
(4)
(5)
(6)
(7)
(8)
(9)
(10)
(11)
(12)

(t)

(k)

(t)

at

te

at

t2 e

at

at

s2

(k)

s+a

1
(s+a)2
2
(s+a)3
a
s(s+a)

at

bt

sen!t
os!t
e

at sen!t

at os!t

b a

(s+a)(s+b)
!
s2 +!2
s
s2 +!2
!
(s+a)2 +!2
s+a
(s+a)2 +!2

(e aT )k
kT (e aT )k
(kT )2 (e aT )k
1 (e aT )k
(e aT )k (e bT )k
sen!kT
os!kT

(e aT )k sen!kT
(e aT )k os!kT

z
z 1
Tz
(z 1)2
z
z e aT
T ze aT
(z e aT )2
T 2 ze aT (z +e aT )
(z e aT )3
z (1 e aT )
(z 1)(z e aT )
z (e aT e bT )
(z e aT )(z e bT )
zsen!T
z 2 2z os!T +1
z (z os!T )
z 2 2z os!T +1
ze aT sen!T
z 2 2ze aT os!T +e 2aT
z (z e aT os!T )
z 2 2ze aT os!T +e 2aT

2.3 Fundamentos de Sistemas Dis retos

49

La forma general para obtener Z [g(s) es mediante el metodo 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 ademas si
suponemos que todas las ra es de q(s) poseen parte real negativa, enton es
g(z ) se obtiene de:

P 
X
g(z ) =
(s ai) g(s)z
+

i=1
Q 
X

z eT s s=ai


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

(2.30)
(mj
donde P es el numero de polos ai no repetidos de G(s) y Q es el numero de
polos bj que se repiten on multipli idad mj .
j =1

Ejemplo 2.5

Determinar g(z) sabiendo que:

g(s) = 2
s (s + 1)

Para este aso P = 1, a1 = 1, Q = 1, b1 = 0, m1 = 2. Luego:




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

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

Solu ion:

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 uni a. En ontraste, la transforma ion
Z [g(t) = g(z ) posee una inversa Z 1 [g(z ) = g(t) que no es uni a debido a
que la se~nal dis reta no esta de nida entre muestras. En el dominio dis reto,
sin embargo, la transforma ion g(z) = Z [g(kT ) posee una uni 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 terminos resultantes. Un metodo
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 )

P
X

[(z

i=1
Q 
X

ai )g(z )z k 1 z=ai


dmj 1
m
k
1
j
+
(mj 1)! dzmj 1 [(z bj ) g(z)z z=bj (2.31)
j =1
donde P es el numero de polos ai no repetidos de G(z) y Q es el numero
de polos bj que se repiten on multipli idad mj . Por ejemplo, determinar
g(kT ) de:
z
g (z ) =
(z 2)(z 3)(z 4)(z 1)2 (z 5)3
Para este aso: P = 3, a1=2, a2 =3, a3 =4, Q=2, b1 =1, b2=5, m1=2 y m2=3.

Por onsiguiente:
g(kT ) = [(z a1 )g(z )z k 1 z=a1
+ [(z a2)g(z)zk 1 z=a2 + [(z a3)g(z)zk 1 z=a3
m1 1
+ (m 1 1)! dzd m1 1 [(z b1 )m1 g(z)zk 1
1
z =b1


m
1
2
+ (m2 1 1)! dzd m2 1 [(z b2 )m2 g(z)zk 1
Ejemplo 2.6
Determinar g(kT ) para:

z =b2

z
;
(
b) :
g(z ) =
(z 1)(z 2)
(z 1)2
Solu ion: Para el primer aso: P = 2, a1 = 1, a2 = 2, Q = 0. Por tanto:
 k 
 k 
z
z
g(k) =
+
= 1 + 2k
z 1 z=1 z 1 z=2
Para el segundo aso: P = 0, Q = 1, b1 = 1, m1 = 1. Luego:






1
d
z
d k
2
k
1
g(k) =
= dz (z ) = k
1! dz (z 1) (z 1)2 z

(a) :

g(z ) =

z =1

z =1

2.3 Fundamentos de Sistemas Dis retos

51

2.3.4 Fun ion 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)
1
= G(z) = Z [Gr0 G(s) = Z
G(s) = (1 z )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 ion 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 Ts
e ;
Tt = dT; d = 1; 2; 3; : : :
G(s) =
s+a
Solu ion: Empleando la rela ion (2.32) y la tabla 2.2 obtenemos:
t

G(z ) = Z [Gr0 G(s)


a1
Ejemplo 2.8

= (1

z 1 )Z

aT

K
(esT )
s(s + a)

= 1 +b1az z

K
b1 = (1 eaT )
a

z
1 1

Determinar la salida muestreada para los asos ilustrados en las guras


2.8(a)-(f).
Solu ion: En la gura (a) se tiene: y(s) = G2 (s)x (s) y x(s) = G1 (s)u(s),
donde x(s) es una se~nal 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)G1 (s)u (s).
Esta ultima rela ion es equivalente a:
y(z ) = G2 (z )G1 (z )u(z )

52

Sistemas Dis retos


T
u(s)

u*(s)

G 1 (s)

T
x(s)

x*(s)

G 2 (s)

y(s)

(a)
T
u(s)

u*(s)

u(s)

u*(s)

G 2 (s)
T
x(s)

1-e
s

D(z)

G 2 (s)

x*(s)
(c)

x(s)

T
x*(s)

G(s)

y(s)

y(s)

-Ts

G p (s)

(d)
u(s)

y(s)

(b)
G 1 (s)

T
u(s)

G 1 (s)

G(s)
u(s)

G(s)

y(s)

H(s)
(e)

y(s)

H(s)
(f)

y*(s)

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


En la gura (b) se tiene: y(s) = G2 (s)G1 (s)u (s). Muestreando y obtenemos:
y (s) = [G2 (s)G1 (s)u (s) = [G2 G1 (s) u (s)
Por onsiguiente:
y(z ) = [G2 G1 (s)(z )u(z )
En la gura ( ) se tiene: y(s) = G2(s)x (s) y x(s) = G1 (s)u(s). Pro ediendo omo en los asos anteriores se obtiene:
y(z ) = G2 (z )[G1 u(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 ) =
1 + [GH (z) U (z)
Para la gura (f) tenemos y(s) = G(s)u(s) G(s)H (s)y (s). Muestreando y despejando y (s) se obtiene:
[GH (z) u(z)
y(z ) =
1 + [GH (z)
2.3.5 El Espa io de Estado Dis reto

En la se ion 2.2 vimos que la dinami a linealizada de un pro eso (sin la


presen ia de disturbios) puede ser representada en el espa io de estado por
la e ua ion (2.3):
x_ = Ax + Bu;
y = Cx + Du
(2.33)
La solu ion de la e ua ion de estado anterior, dado un estado ini ial x(t0 ),
es:
x(t)

eA(t t0 ) x(t0) ) + eAt

= (t
donde:
(t t0 ) = L 1 [(sI

t0 )x(t0) +

Z t

t0

Z t

t0

( )d

A Bu

(t  )Bu( )d

(2.34)

X A (t t0 )
A) 1 = eA(t t0 ) =
!
 =0

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

54

Sistemas Dis retos

La representa ion 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) 1 x(t0 ) + (sI A) 1 Bu(s)
y(s) = Cx(s) + Du(s)
(2.35)

Ejemplo 2.9
Dado u = 3e

, 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: Segun la tabla 2.2: L[3e t = 3=(s + 1). Apli ando la e ua ion
(2.35) obtenemos:

7 1 ; B =  2 
A=
12 0
1




6
C= 3 4 ;
D = [ 2;
x(0) = 1

+ 7 1  1  6  +  s + 7 1  1  2  u(s)
x(s) = s 12
s
1
12 s   1 

 
3
6 + 2
= s2 + 71s + 12 s12 s +1 7
1
1 s+1
=
y(s)

"

6s2 +s 2
(s+1)(
s+3)(s+4)
s2 +77s 14
(s+1)(s+3)(s+4)

Cx(s) + Du(s) =

"

6s2 +s 2 #  3 
(s+1)(
s+3)(s+4)
2 s+1
s2 +77s 14
(s+1)(s+3)(s+4)
=6
767=2 + 918=3
= 297
+
s+1
s+3
s+4

4
s2 305s + 50
6
= (s +221)(
s + 3)(s + 4) s + 1
297 e t + 767 e 3t + 918 e 4t ; t  0
y(t) =
6
2
3

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 ) pra 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 ion de la E ua ion de Estado Dis reta

Dis retizando la e ua ion (2.33) para un tiempo dis reto k = t=T y asumiendo que entre muestras la se~nal de ontrol u es onstante, enton es para
la se~nal de entrada u(t) = u(kT ), kT  (k + 1)T y para un estado ini ial

56

Sistemas Dis retos


10

Salida

10

20

30

40

50
0

4
Tiempo

5
6
en segundos

10

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

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

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

Z t

t0

(t  )Bd

Si solo interesa la solu ion para t = (k + 1)T y empleando el ambio de


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

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


G = (T ) =

y(k) = Cx(k) + Du(k)


Z T

(2.36)

; H=
()d B
(2.37)
0
Notar que (2.36) es una e ua ion ve torial de diferen ias que puede ser
resuelta re ursivamente, omo sigue:
x(1)
x(2)

=
=

eAT

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

2.3 Fundamentos de Sistemas Dis retos

...
x(k) =

Gk x(0) +

k
X
 =1

G 1 Hu(k  )

57

(2.38)

donde Gk es la denominada matriz de transi ion dis reta. Una segunda alternativa de solu ion de (2.36) se da en el dominio de z. Apli ando la propiedad
de desplazamiento ha ia la izquierda, podemos formular que Z [x(k) = x(z)
y Z [x(k + 1) = z[x(z) x(0). Por tanto, de (2.36) se obtiene:
z [x(z ) x(0) = Gx(z ) + Hu(z )
Despejando:
x(z ) = (zI G) 1 zx(0) + (zI G) 1 Hu(z )
(2.39)
y empleando la e ua ion de salida resulta:
y(z ) = C (zI G) 1 zx(0) + [C (zI G) 1 H + Du(z )
(2.40)
Comparando las e ua iones (2.38) y (2.39) veri amos que:
Gk = Z 1 [(zI G) 1 z
(2.41)
La matriz de transferen ia de pulso se determina ha iendo x(0) = 0 en
(2.40):
y(z ) = Gp (z )u(z ) = [C (zI G) 1 H + Du(z )
(2.42)
mientras que la e ua ion ara tersti a del sistema se obtiene de:
det(zI G) = 0
(2.43)
la ual nos informa a er a de la estabilidad del sistema. Re ordar que un
sistema ontinuo es estable uando todos sus eigenvalores poseen parte real
negativa. Por onsiguiente, la zona de estabilidad para sistemas ontinuos
es el semiplano izquierdo del plano s. Desde que:
z = esT = e(+j!)T = eT ej!T = jz j\z
y omo jzj  1 uando   0 para ualquier \z, enton es la zona de estabilidad en el plano z resulta un r ulo de radio unidad:
Un sistema dis reto es estable si las ra es de su e ua ion ara tersti a,
los eigenvalores, se en uentran dentro del r ulo unitario (en el dominio de
z ). En otro aso, el sistema no es estable.

58

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 + b1 z 1 +    + bn z n b0 z n + b1 z n 1 +    + bn
Gp (z ) =
=
= zn + a zn 1 +    + a
u(z ) 1 + a1 z 1 +    + an z n
1
n
(2.44)
y su orrespondiente e ua ion de diferen ias toma la forma:
y(k +n)+a1 y(k +n

1)+  +any(k) = b0 u(k +n)+b1u(k +n 1)+  +bnu(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 anoni as mas notables, 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

x(k + 1) =

y (k ) =

6
6
6
6
6
4

0
0
..
.
0
an

bn

1
0
..
.
0
an 1




0
1
..
.
0
an 2

an b0 bn 1

0
0
..
.
1
a1





an 1 b0

32
76
76
76
76
76
54

b1

x1 (k )
x2 (k )
..
.
xn 1 (k )
xn (k )

a1 b0

7 6
7 6
7 6
7+6
7 6
5 4

0
0
..
.
0
1

3
7
7
7
7 u(k )
7
5

x(k ) + b0 u(k )

(2.46)
(2.47)

Segunda Forma Canoni a Controlable:


2

x(k + 1) =

6
6
6
6
6
4

0
0
..
.
0
an

1
0
..
.
0
an 1

y (k ) =

donde: 0 = b0, 1 = b1

0
1
..
.
0
an 2


1 0







0
0
..
.
1
a1

32
76
76
76
76
76
54

7 6
7 6
7 6
7+6
7 6
5 4

0 x(k ) + 0 u(k )

a1 b0 , 2 = b2 a1 b1

n = bn a1 b1n

x1 (k )
x2 (k )
..
.
xn 1 (k )
xn (k )

a2 0 , et .

   an 1 1 an 1 1

1
2
..
.
n 1
n

3
7
7
7
7 u(k )
7
5

(2.48)
(2.49)

Generalizando:

2.3 Fundamentos de Sistemas Dis retos

59

Ter era Forma Canoni a Controlable:


2

x(k + 1) =

a1
1
0
..
.
0

6
6
6
6
6
4

y (k ) =





a2
0
1
..
.
0

b1

an 1
0
0
..
.
1



a1 b0 b2

a2 b0

an
0
0
..
.
0



32
76
76
76
76
76
54

x1 (k )
x2 (k )
..
.
xn 1 (k )
xn (k )

7 6
7 6
7 6
7+6
7 6
5 4

1
0
..
.
0
0

3
7
7
7
7 u(k )
7
5

an b0 x(k ) + b0 u(k )

bn

(2.50)

(2.51)

Primera Forma Canoni a Observable:


2

x(k + 1) =

6
6
6
6
6
4

0
1
..
.
0
0




0
0
..
.
0
0

0
0
..
.
1
0




y (k ) =

0
0
..
.
0
1


an
an 1
..
.
a2
a1

32
76
76
76
76
76
54

7 6
7 6
7 6
7+6
7 6
5 4

bn

an b0
bn 1 an 1 b0
..
.
b2 a2 b0
b1 a1 b0



0 0

x1 (k )
x2 (k )
..
.
xn 1 (k )
xn (k )

0 1 x(k ) + b0 u(k )

3
7
7
7
7 u(k )
7
5

(2.52)
(2.53)

Segunda forma anoni a observable:


2

x(k + 1) =

6
6
6
6
6
4

a1
a2
..
.
an 1
an

1
0
..
.
0
0




0
1
..
.
0
0

y (k ) =



1 0

0
0
..
.
0
0

0
0
..
.
1
0

32
76
76
76
76
76
54

x1 (k )
x2 (k )
..
.
xn 1 (k )
xn (k )

7 6
7 6
7 6
7+6
7 6
5 4

b1
b2

a1 b0
a2 b0
..
.
bn 1 an 1 b0
bn an b0



0 0    x(k ) + b0 u(k )

3
7
7
7
7 u(k )
7
5

(2.54)
(2.55)

Forma Canoni a Diagonal (eigenvalores no repetidos)


2
6
6
6
6
6
4

x1 (k + 1)
x2 (k + 1)
..
.
xn 1 (k + 1)
xn (k + 1)

3
7
7
7
7
7
5

2
6

=6
6
4

y (k ) =

p1 0
0 p2
..
..
.
.
0 0


1 2






0
0
..
.
pn

32
76
76
76
54

x1 (k )
x2 (k )
..
.
xn (k )

7 6
7 6
7+6
5 4

x(k ) + b0 u(k )

1
1
..
.
1

3
7
7
7 u(k )
5

(2.56)

(2.57)

60

Sistemas Dis retos

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




n
X
y (z )
i
y(z )
=
b0 +
;
i = zlim
(
z
p
)
(2.58)
i
!p u(z )
u(z )
z
p
i
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 demas
elementos iguales a ero. Por itar un ejemplo, si A, de orden n = 8, ontiene
un eigenvalor p1 de multipli idad 3, otro eigenvalor p2 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:
3 2
32
2
03
x1 (k)
p1 0 0 0 0 0 0 0
6 0 p1 1 0 0 0 0 0 7 6 x2 (k ) 7 6 0 7
7
7 6
76
6
6 0 0 p1 0 0 0 0 0 7 6 x3 (k ) 7 6 1 7
7
7 6
76
6
6 0 0 0 p2 1 0 0 0 7 6 x4 (k ) 7 6 0 7
6
7
7
6
6
x(k + 1) = 6 0 0 0 0 p 0 0 0 7 6 x (k) 7 + 6 1 7
7 u(k )
2
7
7 6
76 5
6
6 0 0 0 0 0 p6 0 0 7 6 x6 (k ) 7 6 1 7
7
7 6
76
6
4 0 0 0 0 0 0 p
7 0 5 4 x7 (k) 5 4 1 5
1
0 0 0 0 0 0 0 p8 x8 (k)
(2.59)


y(k) = 1 2 3 4 5 6 7 8 9 x(k) + b0 u(k)
(2.60)
8
X
y(z )
1
2
3
4
5
i
=
b0 +
+
+
+
+
+
u(z )
(z p1)3 (z p1)2 z p1 (z p2)2 z p2 i=6 z pi
(2.61)
i

Ejemplo 2.10

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


P6
bi z i
y(z )
i
=0
=
u(z ) 1 + P6i=1 ai z i
donde b0 = 1, b1 = 2:8, b2 = 0:65, b3 = 6:8, b4 = 4:25, b5 = 1:3,
b6 = 1:2, a1 = 1:3, a2 = 1:69, a3 = 0:345, a4 = 0:49, a5 = 0:02 y
a6 = 0:04. Determinar la estabilidad del pro eso. Determinar la e ua ion

2.3 Fundamentos de Sistemas Dis retos

61

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

2.3 Fundamentos de Sistemas Dis retos

63

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 T s . Si Tt = dT , d = 1; 2; : : : y dado que eT 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 ion:
x(k + 1) = Ax(k dx ) + Bu(k du )
y(k + dy ) = Cx(k)
donde los tiempos muertos dk , du y dy toman valores enteros positivos.
Si la rela ion d = Tt =T no fuera un entero (o tambien si lo fuera), resulta
util emplear la aproxima ion de Pade para el tiempo muerto:
1
1 (sTt )3 +    = num(s)
e T s = 1 sTt + (sTt )2
!2
!3
den(s)
Con una aproxima ion de ter er orden, podemos a omodar retardos de fase
de hasta 200o (3.5 rad) [11, lo ual es su iente para apturar el efe to del
tiempo muerto en mu has apli a iones. Tal aproxima ion tiene la forma:
num(s) 1 Tt s=2 + (Tt s)2 =10 (Tt s)3 =120
e Ts 
=
den(s) 1 + Tt s=2 + (Tt s)2 =10 + (Tt s)3 =120
t

Ejemplo 2.12

Comparar la respuesta a un es alon del pro eso:


y(s)
10 e 5:8s
=
u(s) 2s + 1

64

Sistemas Dis retos

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


se aproxima por una rela ion de Pade 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 tambien determina la e ua ion 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

10
2s+1
Proceso parcial Tiempo
muerto

65

yd_

Mux

yd
yd

Graph
Mux

10
Tt^3/120s3+Tt^2/10.s 2Tt/2s+1
2s+1
Tt^3/120.s3+Tt^2/10.s 2+Tt/2.s+1
Proc. parcial Aproximacin del tiempo muerto

yda_

yda
yda

Figura 2.10: Compara ion de las respuestas a un es alon del pro eso y de
su modelo aproximado mediante una rela ion Pade de ter er orden (ejemplo
2.12).
12

10

Respuestas al escalon

2
0

6
Tiempo en segundos

10

12

Figura 2.11: Compara ion de las respuestas a un es alon del pro eso ( urva
solida) y de su modelo aproximado ( urva en trazos) mediante una rela ion
Pade de ter er orden (ejemplo 2.12).

66

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
donde det(M ) 6= 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:
rango(M ) = rango([H GH : : : GN 1 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 dinami o on salida y(k) se denomina observable si algun


estado x(k) puede ser obtenido a partir de un numero 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) = CG2 x(k) + CGHu(k) + CHu(k + 1)
...
y(k + n) = CGn 1 x(k) + [0; CH; CGH; : : : ; CGn 2 H Un (2.63)
donde (asumiendo que los ve tores de entrada son ompletamente ono idos)
Un = [u(k + n

1)

: : : u(k + 1) u(k)T

2.3 Fundamentos de Sistemas Dis retos

67

La e ua ion (2.63) toma la forma:


Yn = Nx(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 : : : (GT )n 1 C T
2
0 0 0 0
0 3
6 0
0 0 0 CH 77
S = 6
6 .. . .
... 75
4 .
.
0 CH CGH : : : CGn 2H
Despejando, el ve tor in ognita se obtiene de:
x(k) = N 1 [Yn SUn
(2.65)
siempre que det(N ) 6= 0. Luego, para que el pro eso dinami o sea observable, la matriz de observabilidad N debe umplir:
rango[N = n
(2.66)
La determina ion 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 pendulo des ritos en los ejemplos 2.1 y 2.2 son ompletamente ontrolables y observables.
Solu ion: El siguiente programa resuelve las preguntas planteadas.
% ejem2_13.m CONTROLABILIDAD Y OBSERVABILIDAD
lear all
% SISTEMA HIDRAULICO
Area = 9; gamma = 0.4; rho = 1.23; g = 9.81;
Q0e = 3;
% FLUJO DE ENTRADA EN EQUILIBRIO
H1e = Q0e^2/(gamma*rho*g); % NIVEL DE EQUILIBRIO
H2e = H1e;
a11 = -gamma*sqrt(rho*g)/(2*Area*sqrt(H1e)); a21=-a11; a22=a11;
A = [a11 0
a21 a22; % n = 2

68

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 aptulo presenta la deriva ion de modelos dinami os de pro esos ontinuos
on su orrespondiente linealiza ion y dis retiza ion. Tambien se explora la
respuesta de los pro esos a entradas tpi as y se determina las ara tersti as de
ontrolabilidad y observabilidad de los mismos, empleando omo herramienta de
al ulo la omputadora. Las tres primeras se iones se dedi an a los pro esos
uyos sistemas de ontrol avanzado van a ser implementados en tiempo real.
Tales pro esos son: el pendulo invertido, la grua-puente y el servomotor de
orriente ontinua sujeto a argas no lineales. En su se ion problemas resueltos
se presenta la modela ion de diversos pro esos, uyos sistemas de ontrol seran
dise~nados en los aptulos siguientes. La ultima se ion propone la deriva ion
de modelos dinami os de otros pro esos. Todos los ar hivos orrespondientes a
los ejer i ios y problemas desarrollados en este aptulo se pueden des argar del
sitio: http:// ee.uni.edu.pe/728681F.

3.1

Modelo del Pro eso Pendulo Invertido

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


que se desplaza en forma horizontal. Este arro esta impulsado por un
servomotor D.C. a traves de un sistema de poleas, tal omo se muestra en la
gura 3.1. Para mayor laridad, el pro eso pendulo invertido se ha separado
en dos subsistemas: el subsistema onformado por el arro y el pendulo, que
se trata en la subse ion 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
Servomotor
D.C.

Pendulo
F

Carro

Figura 3.1: Pro eso pendulo invertido.


3.1.1 Modelo del Subsistema Carro-Pendulo

El subsistema arro-pendulo se ilustra en la gura 3.2 y esta 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

11
00
00
11
00
11
00
11

l v /2

me g

mvg

lv

le

P
F

Figura 3.2: Subsistema arro-pendulo.


= z + lesen 
l
zv = z + v sen 
2
ze

(3.1)
(3.2)

3.1 Modelo del Pro eso Pendulo 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:
M
X
d2
mi 2 ~ri = F~j
dt
i=1
j =1

N
X

(3.3)

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

(3.5)

y desarrollando las derivadas resulta:

(m + me + mv )z (me le + mv l2v )(sen )+ _2(mele + mv l2v )( os ) = F (3.6)

Para ompletar el modelo, utilizamos la segunda ley de Newton apli ada al


movimiento rotatorio alrededor del punto P del arro. Esta ley estable e que
para un sistema de N part ulas en movimiento rota ional respe to a un sistema de referen ia iner ial, sometidas a M torques externos perpendi ulares
al plano de giro, se umple que:
M
X
d2
Ji 2 i = j
dt
i=1
j =1

N
X

(3.7)

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 angulo re orrido por la iesima 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 ion del sistema
de referen ia Z 0 Y 0 por una fuerza miz 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 ion (3.7) en la gura 3.2 obtenemos:
(Je +Jv ) = meg(sen)le +mv g(sen ) l2v mez( os )le mv z( os ) l2v (3.8)
y ordenando:
(mele + mv l2v )g(sen ) (mele + mv l2v )z ( os ) = (Je + Jv ) (3.9)
donde:
l2
Je = me le2 ;
Jv = mv v
(3.10)
3
3.1.2 Modelo del Subsistema Motor-Polea

El subsistema motor-polea esta representado en la gura 3.3. El modelo del


sistema ele tri o se en uentra apli ando la ley de voltajes de Kir hho a
la parte ele tri a de di ha gura. Ademas, debido a que la indu tan ia en
servomotores D.C. de magneto permanente es peque~na, podemos despre iar
su efe to en el modelo. As obtenemos:
Ra

Va

Vb

Jo

La

Jm
Bm

rp
F

Bo

Figura 3.3: Subsistema motor-polea.


Ra ia + Vb = KA u = Va

(3.11)

El voltaje ontraele tromotriz esta representado por:


Vb = Kb _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 Pendulo Invertido

73

donde:
Jeq = Jm + n2 (Jo + Jp )
Beq = Bm + n2 Bo

(3.14)
(3.15)
El torque produ ido en el eje del servomotor viene dado por la e ua ion:
Tm = Km ia
(3.16)
Sustituyendo la e ua ion (3.16) en (3.13) y despejando ia se obtiene:
J
B
nr
ia = eq m + eq _m + p F
(3.17)
Km

Km

Km

Luego, substituyendo las e ua iones (3.17) y (3.12) en (3.11) y despejando F obtenemos:


F

Km KA
u
Ra n rp

Jeq 

n rp m

Beq Km Kb _
+

n rp Ra n rp m

(3.18)

Para transformar el desplazamiento angular del servomotor en el desplazamiento horizontal del arro en fun ion del radio de la polea y del fa tor de
redu ion del servomotor, empleamos:
z
m =
(3.19)
nr
p

Substituyendo la ultima rela ion en (3.18), obtenemos la e ua ion general


del subsistema servomotor, omo sigue:
F

Km KA
u
Ra n rp

Jeq
z
n2 rp2

Beq
Km Kb
+
z_
2
2
n rp Ra n2 rp2

(3.20)

Las e ua iones (3.6), (3.9) y (3.20) representan el modelo matemati o del


pro eso pendulo 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:

M1 = m + me + mv ;

M2 = mele + mv

Km
;
Ra nrp

(3.24)

J
J2 = 2eq2
n rp

(3.25)

B
KK
Bx = 2eq2 + 2b 2 m
n rp n rp Ra

(3.26)

J1 = Je + Jv ;
Kx =

lv

3.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 = 
x2 = _
x3 = z
x4 = z_

(3.27)
(3.28)
(3.29)
(3.30)

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


2
6
6
4

x_ 1
x_ 2
x_ 3
x_ 4

3
7
7
5

6
6
6
6
4

x2
M2 (sin x1 )( os x1 )x22 Bx ( os x1 )x4 (M1 +J2 )g(sin x1 )+Kx ( os x1 )KA u
(M2 ( os2 x1 ) (M1 +J2 )J1 )=M2
x4
M22 g(sin x1 )( os x1 ) J1 M2 (sin x1 )x22 +J1 Bx x4 J1 Kx KA u
M22 ( os2 x1 ) (M1 +J2 )J1

3
7
7
7
7
5

(3.31)
y puesto que en nuestro sistema tenemos omo salidas disponibles el desplazamiento angular de la varilla y el desplazamiento del arro, la e ua ion de
salida toma la forma siguiente:
donde:

y = Cx

(3.32)


1
0
0
0
C= 0 0 1 0

(3.33)

3.1 Modelo del Pro eso Pendulo Invertido

75

3.1.4 Obten ion del Modelo Lineal

Para poder analizar la e ua ion matri ial (3.31) empleando te ni as de ontrol lineal, es ne esario obtener un modelo lineal del pro eso. Suponiendo
que las variables de estado se desvan levemente on respe to a una ondi ion de opera ion (un estado de equilibrio, por ejemplo), la aproxima ion
lineal se puede obtener mediante la expansion en series de Taylor, despre iando los terminos de orden superior. Consideremos que nuestro pro eso
sea representado por la siguiente expresion:
x_ = f(x; u)
(3.34)
=  x1 x2 x3 x4 T
=  f1 f2 f3 f4 T =  x_ 1 x_ 2 x_ 3 x_ 4 T
en donde u es la se~nal de ontrol, x_ es el ve tor de estados y f es una fun ion
ve torial de variable ve torial. La expansion en serie de Taylor alrededor del
punto de opera ion (x; u) resulta:


f (x; u)
f (x; u)
x_ = f (x; u) +
(
x x) +
(
u u) +
x
u
 2
1  f (x; u) (x x)2 + 2  2 f (x; u) (x x)(u u) +  2 f (x; u) (u u)2 +   
2! x2
xu
u2
(3.35)
Si la varia ion de las variable residuales (x x ) y (u u) es peque~na, enton es
se pueden despre iar los terminos de orden superior. En el aso que nos
o upa, el punto de opera ion (o estado de equilibrio) se ubi a alrededor del
origen: x = [0; 0; 0; 0T = 0 y u = 0, enton es la e ua ion (3.34) se puede
es ribir omo:
f (0; 0)
f (0; 0)
x_ = f (0; 0) +
x+
u
(3.36)
x_
f

x

u

Dado que f (x; u) es una fun ion de variable ve torial, su derivada par ial
on respe to a x y u viene a representar la opera ion ja obiana (ver ejemplos
2.1 y 2.2). Enton es, la e ua ion (3.35) se onvierte en:
2

x_ = f (0; 0) +

6
6
6
6
4

f1 (0;0)
x1
f2 (0;0)
x1
f3 (0;0)
x1
f4 (0;0)
x1

f1 (0;0)
x2
f2 (0;0)
x2
f3 (0;0)
x2
f4 (0;0)
x2

f1 (0;0)
x3
f2 (0;0)
x3
f3 (0;0)
x3
f4 (0;0)
x3

f1 (0;0)
x4
f2 (0;0)
x4
f3 (0;0)
x4
f4 (0;0)
x4

7
7
7x
7
5

2 f (0;0)
1
u
6 f2 (0;0)
6
6 f3u
(0;0)
4
u

f4 (0;0)
u

7
7
7u
5

(3.37)

76

Modelado de Pro esos

Luego, apli ando la ultima expresion a la e ua ion (3.31), obtenemos el


siguiente modelo lineal para el sistema de pendulo invertido:
x_ = Ax + Bu
(3.38)
donde:
2
3
0
1 0
0
6 (M1 +J2 )M2 g
7
B M
6 (M1 +J2 )J1 M 2 0 0 (M1 +J2 )J12 M 2 7
2
2
6
7
A=6
(3.39)
7
02
0 0
1
4
5
M2 g
J1 B
(M1 +J2 )J1 M22 0 0 (M1 +J2 )J1 M22
2
3
0
K M2 K
6
7
(M1 +J2 )J1 M22 7
(3.40)
B=6
7
6
0
4
5
x

J1 Kx KA
M22

(M1 +J2 )J1

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 ion 2.3.5. En resumen, las e ua iones de estado
en tiempo ontinuo del pro eso estan dadas por:
x_ (t) = Ax(t) + Bu(t)
(3.41)
y(t) = Cx(t) + Du(t)
(3.42)
La solu ion de tales e ua iones es:
Z t
x(t) = (t t0 )x(t0 ) + (t  )Bu( )d
(3.43)
donde t0 es el tiempo ini ial, y:
(t

t0

1 Ak (t t )k
X
0
t0 ) = eA(t t0 ) =
k
!
k=0

(3.44)

El modelo en tiempo dis reto esta 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


H=

Z T

77


()(d) B
(3.47)
La e ua ion de salida en tiempo dis reto viene a ser:
y(kT ) = Cx(kT ) + Du(kT )
(3.48)
en donde C y D son matri es onstantes que no dependen del perodo de
muestreo T ; por onsiguiente, son las mismas que para el aso ontinuo.
3.2

Modelo del Pro eso Gr


ua-Puente

El modelado del pro eso grua-puente es similar al aso del pendulo invertido. La uni a variante es que en este aso el pendulo debe apuntar ha ia
abajo, tal omo se muestra en la gura 3.4. Al igual que en el aso del
pendulo invertido, para mayor fa ilidad, se ha subdividido el pro eso en dos
subsistemas: arro-varilla y motor-polea.
+ Fuerza de
u
control
Servomotor
D.C.

Carro

puente
Grua

Figura 3.4: Pro eso grua-puente.


3.2.1 Modelo del Subsistema Carro-Varilla

El subsistema arro-varilla esta 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 le sen 
(3.49)

78

Modelado de Pro esos


y

y
z
z

P
0

F
lv

11
00
00
11
00 m v g
11

le
lv

me g

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


zv = z

lv

(3.50)
2 sen 
Apli ando la ley de Newton para el movimiento lineal dada por la e ua ion
(3.3) en la dire ion z, obtenemos:
d2
d2
d2
m 2 z + me 2 ze + mv 2 zv = F
dt
dt
dt
Luego, sustituyendo ze y zv en fun ion de z:
d2
d2
d2
l
m 2 z + me 2 (z le sen ) + mv 2 (z v sen ) = F
dt
dt
dt
2

(3.51)
(3.52)

y desarrollando las derivadas, tenemos:


(m +me+mv )z +(mele +mv l2v )(sen )_2 (mele +mv l2v )( os ) = F (3.53)
Ahora, apli ando en la gura 3.5 la segunda ley de Newton para el movimiento rotatorio dada por la e ua ion (3.7) alrededor del punto P:
(Je + Jv ) = mez( os )le + mv z( os ) l2v meg(sen)le mv g(sen ) l2v
(3.54)

3.2 Modelo del Pro eso Grua-Puente

79

y reordenando, obtenemos:
(mele + mv l2v )z( os ) (mele + mv l2v )g(sen ) = (Je + Jv )
donde:
l2
Je = me le2 ;
Jv = mv v
3

(3.55)

3.2.2 Modelo del Subsistema Motor-Polea

Este subsistema es el mismo que se desarrollo para el pendulo invertido en


la subse ion 3.1.2, e ua ion (3.20):


Km KA
Jeq
Beq
Km Kb
F=
u
z
+
z_
Ra n rp
n2 r 2
n2 r2 Ra n2 r2
p

Las e ua iones (3.53), (3.55) y (3.20) representan el modelo matemati o


del pro eso grua-puente ontrolado por la orriente de armadura. Tales
e ua iones pueden ser es ritas en forma ompa ta omo sigue:
M1 z + M2 (sen )_ 2 M2 ( os ) F = 0
(3.56)
M2 g(sen ) + M2 z( os ) J1  = 0
(3.57)
F = Kx KA u J2 z Bxz_
(3.58)
donde:
l
M1 = m + me + mv ;
M2 = me le + mv v
2
Jeq
J1 = Je + Jv ;
J2 = 2 2
nr
Kx =

Km
;
Ra nrp

B
Bx = 2eq2
n rp

+ nK2rbK2Rma
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 mediante la siguiente asigna ion 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:


2
6
6
4

x_ 1
x_ 2
x_ 3
x_ 4

3
7
7
5

6
6
6
6
4

x2
M2 (sin x1 )( os x1 )x22 Bx ( os x1 )x4 (M1 +J2 )g(sin x1 )+Kx ( os x1 )KA u
( M2 ( os2 x1 )+(M1 +J2 )J1 )=M2
x4
M22 g(sin x1 )( os x1 ) J1 M2 (sin x1 )x22 J1 Bx x4 +J1 Kx KA u
M22 ( os2 x1 )+(M1 +J2 )J1

3
7
7
7
7
5

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


C = 10 00 01 00
(3.65)
3.2.4 Obten ion del Modelo Lineal

Para obtener el modelo lineal del sistema grua-puente, empleamos la e ua ion


(3.36) desarrollada en la subse ion 3.1.4, omo sigue:
x_ = Ax + Bu
(3.66)
donde:
2
3
0
1 0
0
6
7
(M1 +J2 )M2 g
B M
6 (M1 +J2 )J1 M 2 0 0 (M1 +J2 )J12 M 2 7
2
2
6
7
A=6
(3.67)
7
02
0 0
1
4
5
M2 g
J1 B
(M1 +J2 )J1 M22 0 0 (M1 +J2 )J1 M22
y
2
3
0
K M2 K
6
7
(M1 +J2 )J1 M22 7
B=6
(3.68)
7
6
0
4
5
x

J1 Kx KA
M22

(M1 +J2 )J1

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 Parametros

La tabla 3.1 muestra las variables y parametros para los pro esos pendulo
invertido y grua-puente. Los valores de los parametros se obtuvieron de las
hojas de espe i a iones y por medi ion.
3.2.7 Identi a ion de la Zona Muerta del Servomotor

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

600

400

salida

200

200

400

600

800
2

1.5

0.5

0
entrada

0.5

1.5

Figura 3.6: Respuesta del servomotor sin ompensar (voltaje vs. velo idad
angular).
Observar en la gura 3.7 que la zona muerta de velo idad nula se presenta
para valores de voltaje entre  0.1 volt. Tal zona muerta es una no linealidad
que puede introdu ir efe tos no deseados en el ontrol, por lo que debe ser
ompensada mediante software, omo sigue (ver gura 3.8):

82

Modelado de Pro esos

Tabla 3.1: Variables y parametros valorados para los pro esos pendulo invertido y grua-puente.
Smbolo Des rip ion
Valor/Formula

posi ion angular de la varilla
F
fuerza apli ada al arro
m
posi ion angular del motor
z
posi ion del arro
lv
longitud de la varilla
0.767 m
le
distan ia entre P y la esfera
ze
omponente horizontal
zv
omponente horizontal
g
gravedad
9.8 N
me
masa de la esfera
no usado
mv
masa de la varilla
0.063095 kg
m
masa del arro
0.92 kg
mp
masa de la polea
0.2 kg
KA
ganan ia del ampli ador
14.9
Ra
resisten ia del motor
7.38 ohm
La
indu tan ia del motor
se despre io
Kb
onstante ontraele tromotriz
31.035210 3 V/rad
Km
onstante de torque del motor
31.07110 3 N-m/A
Jm
iner ia del eje primario del motor
1.959610 6 kg-m2
Bm
fri ion vis osa del eje primario 1.834210 3 N-m/rad/s
Jo
iner ia del eje se undario
se despre io
Bo
fri ion vis osa del eje se undario
se despre io
n
fa tor de redu ion de velo idad
1/19.741
rp
radio de la polea
0.0648 m
Jp
iner ia de la polea
mp rp2 =2
Jeq
momento de iner ia equivalente
Jm + n2 (Jo + Jp )
Beq
fri ion vis osa equivalente
Bm + n2 Bo
Je
momento de iner ia de la esfera
mele2
Jv
momento de iner ia de la varilla
mv lv2 =3

3.2 Modelo del Pro eso Grua-Puente

83

entrada vs salida
150

100

salida

50

50

100

150
0.4

0.3

0.2

0.1

0
entrada

0.1

0.2

0.3

0.4

Figura 3.7: Vista ampliada de la gura 3.6.


entrada vs salida
800

600

400

salida

200

200

400

600

800
2

1.5

0.5

0
entrada u

0.5

1.5

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 ele tri o y un
subsistema me ani o. El subsistema ele tri o esta ompuesto por un generador 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 esferi 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.
MO
RO

T
+
eb
-

+
u Kact
R

Jm

0000
1111
1111
TM 0000
0000 m
1111
bm
q
m

N 2 = n N1
N2

N1
11
00
00
11
00
11
00
11
00
11
00
11
00
11
TL
00
11
00
11
00
11
00
11
00
11
00
11
00
11
00
11
00
11
00
11
00
11
00
11

LO
m
q

JL

1111
0000
0000
1111
bL
0000
1111

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


3.3.1 El Subsistema Me ani o

La e ua ion 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: Parametros y variables del servomotor on arga no lineal.


Smbolo 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 = Ka t u
R
resisten ia de armadura
7.38 ohm
L
indu tan ia de armadura
4.6410 2 H
I
orriente de armadura
K
onstante del torque motor
31.07110 3 N-m/A
T
torque motor
T = KI
TM
torque de iner ia motori 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.906210 6 kg-m2
JL
iner ia de la arga
3.510 7 kg-m2
bm
oef. de fri ion del motor
1.833810 6 N-m/rad/s
bL
oef. de fri ion 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.035210 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
1
TL = (Mo L2o + Mo Ro2 + mL2o + JL )w_ + bL w
(3.71)
5
3
m
TE = gLo (Mo + )sen q
(3.72)
2
Reemplazando las e ua iones (3.70), (3.71) y (3.72) en la e ua ion (3.69) se
obtiene:
nTm = M w_ + Bw + Nsen q + TN
(3.73)
donde:
1
2
(3.74)
M = Jeff + ML2o + MRo2 + mL2o )
5
3
m
N = gLo (M + )
(3.75)
2
= n2Jm + JL
B = n2 bm + bL

Jeff

3.3.2 El Subsistema Ele tri o

(3.76)
(3.77)

La tension 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 = Ewm
(3.79)
y la tension de armadura Va es:
Va = uKa t
(3.80)

3.3 Modelo del Servomotor D.C. No Lineal

87

3.3.3 Conversion de Energa Ele tri a en Me ani a

La e ua ion de onversion en energa 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:
K
Enw R
I_ = a t u
I
(3.82)
L

Empleando las e ua iones (3.81) y (3.82) en (3.73) y despejando w_ obtenemos:


N
B
1 T + nKI
w_ =
senq
w
(3.83)
M
M
M N
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 TN + nK x3
x2
x_ 2 = ( )senx1
M
M
M
M
nE
R
Ka t
x
x +
u
(3.85)
x_ 3 =
L 2 L 3
L
donde la salida es la posi ion x1 . Por onsiguiente:
2

F (x)

4
2

G(x)

x2
N
B
( M )senx1 M x2
nE x
L 2

0
0

Ka t
L

3
5

M TN
Rx
L 3

H (x) = x1

5
+ nK
M x3

(3.86)

Las matri es dadas en (8.38) representan el modelo matemati o del pro eso
onsiderando arga no lineal. La gura 3.10 muestra el diagrama de simula ion del pro eso (ar hivo servsim.m) y la gura 3.11 muestra la respuesta

88

Modelado de Pro esos

del pro eso a un es alon para los asos on L 6= 0 y L = 0. Di has respuestas resultan muy similares debido a que la indu tan ia L es muy peque~na
y para nes pra ti os puede despre iarse, on lo ual el orden del pro eso
no lineal queda redu ido a uno de segundo. Para simular el pro eso usando
servsim.m se debe eje utar primero el ar hivo de datos servpar.m.
cc

Kact
gan5

n*K
R
sum1subsistema
elctrico
n*E

gan1 friccin de
Coulomb

w 1 q
1
+
Ms+B
s

sum2 subsistema Integrador


mecnico

gan2

N
gan3

grfico

MATLAB
Function
seno

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


1.4
q

Posicin q (rad); entrada u (voltios)

1.2

0.8

0.6
u
0.4

0.2

0
0

4
Tiempo

5
6
en segundos

10

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:


I=

y la e ua ion (8.38) pasa a ser:


F (x)
G(x)

=
=

Ka t
u
R

nE
w
R

"


N
M senx1

nKKa t u
RM

B
M

(3.87)
#

x2

2 KE
+ nMR

x2

M TN

H (x) = x1

(3.88)

3.3.4 Modelo y Compensa ion de no Linealidades

El torque TN se origina por la fri ion estati a TF y por la fri ion 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 ion de Coulomb TC oponiendose a di ho movimiento. Tales
torques pueden modelarse omo:
TF = CF sign(u); TC = CC sign(w)
(3.89)
donde la fun ion 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 TN de la
e ua ion (3.88). Para ello de nimos:
u=v+

R
T ;
nKKa t N

(3.90)

Reemplazando la e ua ion (3.90) en (3.88) obtenemos una e ua ion ompensada de la forma:


x_ 2 =

N
senx1
M

B
M

2 KE
nKKa t
+ nMR
x2 +
v
RM

(3.91)

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


el sistema ya esta en movimiento, el termino no lineal resulta:
RCC
sign(w) = 0:12sign(w)
nKKa t

(3.92)

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 se~nal de ontrol u en  0.12 volt. Experimentalmente, un valor de 0.2 ha generado buenos resultados.
Por otra parte, debido a que valores grandes de la se~nal de ontrol u
pueden saturar al servomotor, es que se requiere un limitador de la tension
de ontrol u. Este limitador puede tambien implementarse en el software
de ontrol. Se ha determinado experimentalmente que para no entrar en la
zona de satura ion del servomotor, la se~nal de ontrol ompensada no debe
sobrepasar el umbral de  1.4 voltios.
3.3.5 Linealiza ion y Dis retiza ion del Pro eso

Asumiendo que la se~nal de ontrol u esta debidamente ompensada de no


linealidades y despre iando la indu tan ia L del servomotor, enton es, para
desvia iones peque~nas alrededor del origen se umple que senx1  x1 . Apli ando tal aproxima ion en la e ua ion (3.88) obtenemos una e ua ion de
estado lineal de la forma x_ = A x + B u y una e ua ion de salida y = C x,
donde:


0
1
A =
B + Kn2 E )
N
(
M
M
MR


0
B =
; C =  1 0 
(3.93)
KnK
a t

MR

A tal resultado tambien se puede llegar si apli aramos la te ni a del ja obiano. La fun ion de transferen ia Gp(s) del pro eso puede determinarse
mediante la rela ion:
y(s)
= C [sI A 1B
(3.94)
Gp (s) =
u(s)

La fun ion de transferen ia de pulso Gp(z) se determina omo sigue:




y(z )
Gp (s)
1
Gp (z ) =
= (1 z )Z s
(3.95)
u(z )
donde Z [: es el operador transformada z. Di ha fun ion de transferen ia
depende del tiempo de muestreo T y posee la siguiente estru tura:
y(z )
b1 z + b2
b1 z 1 + b2 z 2
Gp (z ) =
=
=
(3.96)
u(z ) z 2 + a1 z + a2 1 + a1 z 1 + a2 z 2

3.4 Problemas Resueltos

91

Su orrespondiente e ua ion de diferen ias es:


y(k) = a1 y(k 1) a2 y(k 2) + b1 u(k 1) + b2 u(k 2)
(3.97)
Dado que un mismo pro eso puede tener multiples representa iones de estado, a partir de la e ua ion (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 tivamente, on dimensiones apropiadas. La representa ion anoni a ontrolable
del pro eso (primera forma, ver la subse ion 2.3.5), resulta:

1  ; H =  0  ; C =  b2 a2 b0 b1 a1b0  ; D = [0
G = 0a
1
2 a1
(3.100)
Tener en uenta que para nuestro pro eso b0 = 0. Si sele ionamos omo
variables de estado x1 = y(k), x2(k) = y(k + 1) b1 u(k), obtendremos la
segunda forma anoni a ontrolable (subse ion 2.3.5):

1  ; H =  b1  ; C =  1 0  ; D = [0
G = 0a
b2 a1 b1
2 a1
(3.101)
La fun ion de transferen ia de pulso del pro eso tambien se al ula de:
y (z )
b z 1 + b2 z 2
Gp (z ) =
=
C (zI G) 1 H = 1
(3.102)
u(z )
1 + a1z 1 + a2 z 2
3.4

Problemas Resueltos

Los pro esos pendulo invertido, grua-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 seran empleados
para validar los diferentes algoritmos de ontrol, los uales se tratan on
detalle en los aptulos siguientes. Para ada pro eso en estudio se pide:
 Determinar si el pro eso es ompletamente ontrolable y/o ompletamente 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 sera usado uando el pro eso
sea ontrolado digitalmente. Veremos que la ele ion del tiempo de
muestreo es a onvenien ia del algoritmo empleado.
 Gra ar las respuestas del pro eso ontinuo y del pro eso dis retizado
uando las se~nales de entrada son del tipo es alon.
La solu ion a ada problema se presenta en ar hivos m ( on extension m),
los uales pueden ser eje utados en el ambiente de trabajo de MATLAB.
Las respuestas al es alon se muestran en las guras orrespondientes.
Problema 3.1

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

3.4 Problemas Resueltos

93
Masa de 1/4
del bus

x1
k1
x2

m1

b1

Masa de la
suspension
k2

m2
b2

Figura 3.12: Sistema de suspension de la rueda de un bus.


Se puede demostrar que las e ua iones de estado y de salida del pro eso son:
3
2
3 2
0 1 0 0 2 x1 3 2 0 3 2 0 3
x_ 1
b1 7 6
1
6
7
6 a21 7
6 x
7 6 a21 0 a23
x_1 7
m1 7
m1
6
7
6
7 u+6
6 1 7 = 6
+
7
6
b2 7
b2 0 a
4
5
4
5
4
5w
4 y_ 1 5 4
0
33 1 5 y1
m2
m2
1
1
k2
k2
y2
y_2
0
m1 + m2
m2
m2 0 a43
2

y=

0 0 1 0  64

donde:

x1
x_1
y1
y2

3
7
7
5

+ 0 0 

u
w

y1 = x1 x2

 
k1 k1
k2
1
1
y2 =
+
y
(w x2 ) + m1 + m2 u dt
m1 m2 1 m 2


b1 b2
b1 b1
b1
b2
k1
a21 =
;
a23 =
+
+
m1 m2
m1 m1 m2 m2
m1




b1
b1
b2
k1 k1 k2
a33 =
+ +
; a43 = m1 + m2 + m2
m1 m2 m2
Z 

% 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

x 10

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

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

2.5
2
1.5
1
0.5

0
0

50
100
Tiempo en segundos

1.5
1
0.5
50
100
Tiempo en segundos

150

50
100
Tiempo en segundos

150

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

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

0
0

150

1
0.5
0
0.5
1
0

x 10

50
100
Tiempo en segundos

150

0.5
0
0.5
1
0

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

96

Modelado de Pro esos

Problema 3.2

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

Impulso

Arrastre
e
z
z

Peso

Figura 3.14: Avion omer ial en pleno vuelo.


Asumiendo que el avion esta en su velo idad de ru ero (altura y velo 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 avion
omer ial Boeing) son:
_ = 0:313 + 56:7q + 0:232e
q_ = 0:0139 0:426q + 0:0203e
_ = 56:7q
donde es el angulo de ataque, q es la rela ion de in lina ion,  es el angulo
de in lina ion y e es el angulo del de e tor de eleva ion. 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:


2
3 2
_
0:313 56:7 0 3 2 3 2 0:232 3
4 q_ 5 = 4 0:0139
0:426 0 5 4 q 5 + 4 0:0203 5 e
_
0
56:7 0 
0
=

0 0 1

2
4


q


3
5

El modelo des rito esta 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

y(t) continua

8
6
4
2
0
0

10

15
20
Tiempo en segundos

25

30

y(k) discreta

4
3
2
1
0
0

10
15
Tiempo en segundos

20

25

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

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


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

3.4 Problemas Resueltos

99

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


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

BARRA

ESFERA
LEVA

ENGRANAJE
d

Figura 3.16: Bola balan eandose sobre una barra.


La e ua ion dinami a que des ribe el pro eso es:
0=

J
+ M rMgsen Mr _ 2
R2

Cuando es peque~no, sen  . Luego:


0=

J
+ M rMg 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 ion de transferen ia del pro eso resulta:
r(s)
1
= L Mgd
J + M  s2
(s)
R2
y la e ua ion de estado del pro eso viene a ser:

 

 "
0 #
r_ = 0 1
r +
 Mgd  
r
0 0 r_
L 2 +M
J
R

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
salida para esta situa ion son:
2
3 2 0 1
0
0 32 r 3 2 0 3
r_
0 0 L Mgd+M  0 77 66 r_ 77 66 0 77
6 r 7 6
6
7=6
2
+
u
74
4 _ 5 6
4 0 0
5 5 4 0 5
0
1

1
0 0
0
0 _
J
R

y=

1 0 0 0  64

r
r_

_

3
7
7
5

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


% P3_3P5.m SOLUCION AL PROBLRMA 3.3
lear all
% MODELO DE LA BOLA SOBRE LA BARRA
M=0.11; R=0.015; d=0.03; g=9.8; L=1; J=9.99e-6;
A = [0 1 0
0
0 0 M*g/(L*J/R^2+L*M) 0
0 0 0
1
0 0 0
0;
B = [0;0;0;1;
C = [1 0 0 0; D = [0;
% CONTROLABILIDAD Y OBSERVABILIDAD DEL PROCESO
rAB = rank( trb(A,B)); % rAB = 4 => COMPLETAMENTE CONTROLABLE
rAC = rank(obsv(A,C)); % rAC = 4 => COMPLETAMENTE OBSERVABLE
eigA = eig(A);
% COMPUTA EIGENVALORES
% eigA(1) = 0; eigA(2) = 0; eigA(3) = 0; eigA(4) = 0;
% 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

0.1000
1.0000

0.0010
0.0209

0.0000
0.0010

3.4 Problemas Resueltos


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

0
0

101

1.0000
0

0.1000
1.0000

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

y(t) continua

0.8
0.6
0.4
0.2
0
0

0.5

1.5
2
Tiempo en segundos

2.5

0.5

1.5
2
Tiempo en segundos

2.5

y(k) discreta

0.8
0.6
0.4
0.2
0
0

Figura 3.17: Respuestas al es alon de la posi ion 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
 o
Q = ;
Qe = i
(i o ) = Q Qe;
dt
R
r
o
donde i es la temperatura interior en K o en C, o es la temperatura
exterior en K o en oC, Q es el ujo de alefa ion en J/s o watt, Qe es
el ujo de perdida en J/s o watt, es la apa idad termi a en J/K, r es la
resisten ia termi a en K/watt, R es la resisten ia ele tri a en ohm y V es el
voltaje de alefa ion. Notar que podemos usar K o o C, pues las opera iones
derivada o diferen ia eliminan el valor 273 de: K = 273 + oC.
+
Vc
_

1111111111111111111111
0000000000000000000000
Calor perdido
0000000000000000000000
1111111111111111111111
00
11
00
11
Calentador
electrico
00 10
11
00 Q o
11
00
11
00
11
0
1
00
11
00
11
000
111
Calor entregado
00 111
11
00
11
000
11111111
00000000
00
11
00
11
000
111
Temperatura
Qc
00
11
00
11
000
111
00 111
11
00 exterior
11
0001010
Temperatura
00
11
00
11
o
interior
i
00
11
00
11
0
1
00
11
00
11
00
11
00
11
0000000000000000000000
1111111111111111111111
0000000000000000000000
1111111111111111111111

Figura 3.18: Horno de laboratorio.


Si o se onsidera onstante, la dinami a del horno se des ribe omo:
di 1
1
1 V2
+

i = o +
dt r
r
R
y uando i al anza su estado esta ionario  i:
 i =  o + Rr V 2
La tabla 3.3 ontiene datos experimentales de la ada de temperatura uando 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 ada de temperatura.


Tiempo Temperatura (o C)
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 eno estado estable.
Tiempo Temperatura ( C)
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 uadrati a
obtenida on los datos de la tabla 3.4 permite obtener r=R = 5  10 2 . Por
onsiguiente, la dinami a del horno resulta:
1 i + 1 0 + 1 V 2 = f (i; o; V )
di
=
dt
3000
3000
60000
Para efe tos de linealiza ion podemos de nir las siguientes variables:
 i; o = o  o; v = V V
i = i 
Enton es, la e ua ion linealizada empleando el ja obiano para el punto de
opera ion  i = 50 oC ,  e = 30 oC , V = 20 volt, resulta:
di
dt

= fi
di
dt

 i

i +

f
f
 +
v
 o  o o V V

1 i + 1 o + 1 v
= 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 estan sujetos a fri iones B2 y B3 . Los arros
se a oplan uno al otro on dispositivos no rgidos (resortes) que poseen

3.4 Problemas Resueltos

105

y(t) continua

2
1.5
1
0.5
0
0

2000

4000

6000
8000
10000
Tiempo en segundos

12000

14000

16000

y(k) discreta

2
1.5
1
0.5
0
0

2000

4000
6000
8000
Tiempo en segundos

10000

12000

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


laboratorio.
onstantes K23 y K12 , y dispositivos amortiguadores de onstantes B23 y
Las oordenadas de posi ion se designan omo x1 , 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:
2
0
1
0
0
0
0 3
B1 +B12
K12
B12
6 K12
0
0 77
6
M1
M1
M1
M1
6
0
0
0
1
0
0 777
A=6
6 K12
B12
K12 +K23
B2 +B23 +B12
K23
B23
6 M2
7
M2
M2
M2
M2
M2
6
4
0
0
0
0
0
1 75
K23
B23
K23
B3 +B23
0
0
M3
M3
M3
M3
x = [x1 v1 x2 v2 x3 v3 T
B = [0 1 0 0 0 0T
B12 .

106

Modelado de Pro esos

1
0
x1
0
1
x2
0
1
x3
0
1
0
1
B 23
B 12
0
1
0
1
2do. CARRO
1er. CARRO
MAQUINA
0
1
0
1
M2
M3
M1
K 23 1111111
K 12 1111111
0
1
0000000
1111111
0000000
0000000
0
1
0000000
1111111
0000000
1111111
0000000
1111111
1
0
11111111111111111111111111111111111
000000000000000000000000000000000000
1
B3
B2
B1

Figura 3.20: Pro eso monorriel de dos arros mas un arro de maquinas.
Si ubi amos ta ometros en una rueda de ada arro, enton es la e ua ion
de salida toma la forma:
2
3 2
y1
0 0 0 0 03
4 y2 5 = 4 0 0 0 0 0 5 x
y3
0 0 0 0 0
yi = i vi ; i = 1; 2; 3
donde i es la onstante ta ometri a. Asumir los siguientes valores para
los parametros: M2 = M3 = 2M1 = 2600 kg, K23 = K23 = 100000 N/m,
B23 = B12 = 500 N-s/m y B2 = B3 = 2B1 = 10000 N-s/m.
% P3_5P7.m SOLUCION AL PROBLEMA 3.5
lear all
% MODELO DEL MONORRIEL
M2=2600; M3=M2; M1=1300; K23=100000; K12=K23; alfa=1;
B23=500; B12=B23; B2=10000; B3=B2; B1=5000;
A = [0
1
0
0 0 0
-K12/M1 -(B1+B12)/M1 K12/M1 B12/M1 0 0
0
0
0
1 0 0
K12/M2 B12/M2 -(K12+K23)/M2 -(B2+B23+B12)/M2 K23/M2 B23/M2
0
0
0
0 0 1
0
0
K23/M3
B23/M3 -K23/M3 -(B3+B23)/M3;
B = [0;1;0;0;0;0;
C = [0 alfa 0 0 0 0
0 0 0 alfa 0 0
0 0 0 0 0 alfa; D = [0;0;0;

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 resolver es posi ionar el as ensor ade uadamente. El voltaje de armadura v(t)
lo suministra un ampli ador de poten ia on satura ion ( gura 3.22(b)),

108

Modelado de Pro esos


continuas

0.08

Salidas

0.1

0.04

0.06

0.02
0
0

0.5

1.5
2
Tiempo en segundos

2.5

0.5

1.5
2
Tiempo en segundos

2.5

discretas
Salidas

0.1
0.08

0.04

0.06

0.02
0
0

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


el ual no debe ex eder los  200 volt. Esto signi a una velo idad x1 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 uentra en estado de satura ion, generando  200 volt, dependiendo de si el
as ensor esta subiendo o bajando. Cuando el as ensor se aproxima al piso
donde debe parar, la opera ion del ampli ador pasa a la zona lineal. En
esta situa ion debe a tuar un ontrolador para posi ionar suavemente al as ensor empleando las medi iones de velo idad y posi ion del as ensor. Tales
medi iones, as omo tambien la medi ion del voltaje de armadura en la zona
de satura ion, estan disponibles para ada piso. La gura 3.22(d) muestra el
sistema de ontrol digital del as ensor. Las e ua iones de estado y de salida
del as ensor son:
2
3 2
x_ 1
0:2 0 0 0 3 2 x1 3 2 10 3 3
6 x_ 2 7 6 1
0 0 0 77 66 x2 77 + 66 0 77
6
7 6
4 x_ 3 5 = 4 2
0 2 0 5 4 x3 5 4 0 5
x_ 4
5 0 0 5 x4
0

3.4 Problemas Resueltos


y=

109


0 1 0 0 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.1961
%
0.3227
%
0.6176

0
1.0000
0
0

% H = 1.0e-003 *
%
0.1961
%
0.0197
%
0.0347
%
0.0725
% RESPUESTAS AL ESCALON

0
0
0.6703
0

0
0
0
0.3679

110

Modelado de Pro esos

Voltaje de
entrada

Voltaje de
armadura

Velocidad del
ascensor

Posicion del
ascensor

0.001
u

s + 0.2

Amplificador
de potencia
con saturacion

x1

10

15

Motor actuador
mas tambor

2
x3
5
x4

Sensor de velocidad

s + 5
Sensor de posicion

v
200

s + 2

0.005

3000

(a)
x1

1
u

-200
(b)

(c)

x4

D/A con
memoria

Computador
digital

Posicion del
ascensor
Actuador
mas
sensores

x
x4

Amplificador
Voltaje de
armadura

x3

sensor de
velocidad

A/D
sensor de
(d)

Figura 3.22: Pro eso as ensor.

posicion

x3

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

Salidas continuas

0.15

0.1

0.05

0
0

10

15
20
Tiempo en segundos

15

20
25
30
Tiempo en segundos

25

30

Salidas discretas

0.2
0.15
0.1
0.05
0
0

10

35

40

45

Figura 3.23: Respuestas al es alon 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
se~nal de voltaje vr . El horno puede modelarse omo un pro eso de primer

112

Modelado de Pro esos

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

Controlador
Sensor

Horno

Referencia

d
v
Deposito

v
(b)
u

1
s+1
Horno

hs

e - d/v

hr

Tiempo muerto

10
s + 0.5
Sensor

vr

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


%
%
%
%

0.0872
0.0046
0.0002
0.0000

0.9865
0.0995
0.0050
0.0002

113

-0.0075
0.9997
0.1000
0.0050

-0.0022
-0.0001
1.0000
0.1000

-0.0003
0.0000
0.0000
1.0000

% H =
%
0.0872
%
0.0046
%
0.0002
%
0.0000
%
0.0000
% EIGENVALORES:
eigG = eig(G);
% eigG =
% 0.9048; 0.9633+0.0338i; 0.9633-0.0338i; 0.9512; 0.9546
% RESPUESTAS AL ESCALON
[Y,X,t = step(A,B,C,D);
[YY,XX = dstep(G,H,C,D);
tt = linspa e(0,size(YY,1)*T,size(YY,1));
subplot(211)
plot(t,Y); grid
xlabel('Tiempo en segundos')
ylabel('Humedad ontinua')
subplot(212)
plot(tt,YY); grid
xlabel('Tiempo en segundos')
ylabel('Humedad')
print -deps -f P3_7P10

Problema 3.8

Los parametros valorados del pro eso mostrado en la gura 3.26 son: momento de iner ia del rotor J = 0.01 kg-m2 =s2 , onstante ele tromotriz
Ke = Kt = 0.01 N-m/A, resisten ia R = 12 ohm, resisten ia de armadura
RA  R, ondensador C = 0.5 F, indu tan ia de armadura L = 0.5 H,
onstante torsional K! = 1.8 N-m/rad.
Las e ua iones que gobiernan la dinami a del pro eso ele trome ani o
mostrado en la gura 3.26 se des riben a ontinua ion. Subpro eso ele tri o:
1
v
dI
IR = (v v ); C C = I IM ; L M = v e
R

dt

dt

114

Modelado de Pro esos

Humedad

continua

20
15
10
5
0
5
0

8
10
12
Tiempo en segundos

14

16

18

20

Humedad discreta

20
15
10
5
0
5
0

10
15
Tiempo en segundos

20

25

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


Motor:

= KtIM ;
Resorte torsional mas la iner ia J :
T

dT
dt

= K! (!1

e = Ke !1
d!2
=T
dt
x1 = vC , x2 = IM

!2 );

Sele ionando omo variables de estado


y x3 = !2, y
omo salida y = x3, la representa ion de estado del pro eso resulta:
x_ = Ax + Bu;
y = Cx
2
1
1
0 3
RC
C
0 LK K+KK K 5
A = 4 LK K+K K
K
0
0
J
!

RC

!
t e

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

3.4 Problemas Resueltos

+
v
-

IR

115
IM

L
C

+
e
-

T
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 matemati o que des riba la dinami a del pro eso
(si no lo tuviera).
 Determinar si el pro eso es ompletamente ontrolable y/o ompletamente 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)

5
4
3
2
1
0
0

10

15

20
25
30
Tiempo en segundos

35

40

45

50

Voltaje en C (discreto)

5
4
3
2
1
0
0

10

20

30
40
Tiempo en segundos

50

60

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


sea ontrolado digitalmente. Veremos que la ele ion del tiempo de
muestreo es a onvenien ia del algoritmo empleado.
 Gra ar las respuestas del pro eso ontinuo y del pro eso dis retizado
uando las se~nales de entrada (se~nales de referen ia o se~nales disturbio)
son del tipo es alon.
Problema 3.9

Las e ua iones del modelo linealizado para ontrolar la posi ion angular del
a~non ubi ado en la la torreta de un tanque mediante un a tuador hidrauli o
son las siguientes (ver gura 3.28):
_ = !
!_ = p + d
Km
K
p_ =
m p
q + m ! + dp
J
J
q_ = Kv Lv q Kv Kp Jp + Kv u + dq ; Lv = 1
donde  es el angulo de la torreta, ! es la velo idad angular de la torreta, p
es la a elera ion angular produ ida por el a tuador hidrauli o, q es el desplazamiento de la servovalvula, Km = [8.46106 , 1.96106 (el primer valor

118

Modelado de Pro esos

orresponde al angulo de desplazamiento horizontal de la torreta, mientras


que el segundo valor, al angulo de eleva ion) 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, Kv = [94.3, 94.3 es la ganan ia de la
servo valvula, y Kp = [6.3310 6 , 3.8610 5 es el oe iente de presion
diferen ial. Las antidades d , dp y dq representan disturbios que tambien
in luyen los efe tos debido a las no linealidades que no fueron tomadas en
uenta en el modelo linealizado. Es util 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

elevacion

Azimut: angulo
de
posicionamiento horizontal

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


Problema 3.10

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

3.5 Problemas Propuestos

119

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


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

Agua
Mezcla de
agua e isopropanol

1
0
0 1
1

T1

S: flujo lateral
de vapor
z

Propanol

Glycol

T
1
0
0 2
1
u 1 : vapor de
calentamiento
Producto (glycol)

z2
Concentraciones

Temperaturas

Figura 3.29: Columna de destila ion on los per les de on entra ion y de
temperatura.
Las e ua iones de estado y de salida que gobiernan el pro eso en uestion
son las siguientes:
x = Ax + Bu + F d;
y = Cx
donde:
2
Q1 3






6 V1 7

u

x

T
1
F
A
1
1
7
x=6
u = S ;
d = F
; y = T2
4 z1 5 ;
A
z2
2
3
2
3
a11 0 0 0
b11 0
6 a21 a22 0 0 7
6 0
0 77
7;
6
A=6
B
=
4 0
5
4
a32 0 0
0 b32 5
0 a42 ) 0 0
0 b42 )
2
3
0 0


7
6 0
0
0

0
0
13
7
C= 0 0 0
F =6
4 f31 f32 5 ;
24
0 f42

120

Modelado de Pro esos

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

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

R
+

Va

eb

Jm
Bm

Mo
Ro

K
2

Lo
m

BL JL

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 ion 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
L1
m1
m

R
+

Va

eb

Jm
Bm

Lo
m

Ro

Union
no
flexible

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 pendulo doble no lineal. Las e ua iones
que des riben la dinami a del pro eso pendulo simple fueron dedu idas en la
se ion 3.1. Para dedu ir el modelo matemati o del pro eso pendulo doble
onviene emplear las e ua iones de Lagrange de la me ani a lasi a. El
a oplamiento entre los dos pendulos no es exible. Los dos pendulos poseen
la misma longitud y la masa esferi a es de 0.02 kg.
Problema 3.14

La gura 3.33 muestra el pro eso doble grua-puente no lineal. Las e ua iones
que des riben la dinami a del pro eso grua-puente fueron dedu idas en la
se ion 3.2. Para dedu ir el modelo matemati o del pro eso doble gruapuente onviene emplear las e ua iones de Lagrange de la me ani a lasi a.
El a oplamiento entre las dos se iones de la varilla no es exible. Las dos
varillas poseen la misma longitud y la masa esferi a adi ional es de 0.02 kg.

122

Modelado de Pro esos

+ Fuerza de
u
control
Servomotor
D.C.

Carro
z

Figura 3.32: Pro eso pendulo doble no lineal.

+ Fuerza de
u
control
Servomotor
D.C.

Carro

z
y

Doble
puente
grua

Figura 3.33: Pro eso doble grua-puente.

Cap
tulo 4


Control Optimo
Este aptulo desarrolla un pro edimiento para dise~nar sistemas de ontrol optimo
esta ionarios y no esta ionarios, usando una ley de ontrol optima uadrati a
que emplea las se~nales del pro eso medidas dire tamente o estimadas mediante
un observador optimo. Las on gura iones usadas para el dise~no son el regulador optimo propor ional y el regulador optimo propor ional integral. La ultima
on gura ion a~nade un integrador al ontrolador on el proposito de redu ir el
error en estado estable. El pro edimiento de dise~no desarrollado, puede ser
apli ado tanto a sistemas univariables omo a sistemas multivariables.
Dos apli a iones validan el pro edimiento de dise~no desarrollado: ontrol
optimo de los pro esos pendulo invertido y grua puente. La penultima se ion,
problemas resueltos, esta dedi ada al dise~no de sistemas de ontrol optimo
esta ionarios para diferentes pro esos. La ultima se ion propone problemas de
dise~no a resolver. Todos los ar hivos orrespondientes a los ejer i ios, problemas, dise~nos, simula iones y software desarrollados se pueden des argar del sitio
http:// ee.uni.edu.pe/728681F.

4.1

Introdu ion

El ontrol optimo trata de determinar el \mejor" sistema de ontrol empleando una te ni a optima de dise~no. Esta te ni a asume la formula ion de una
fun ion matemati a denominada la fun ion de osto, tambien ono ida omo
fun ion de rendimiento, ndi e de rendimiento o ndi e de fun ionamiento,
entre otras denomina iones. El pro edimiento de dise~no del sistema de ontrol optimo trata de en ontrar un extremo (un mnimo o un maximo, dado el
aso) de una fun ion de osto on el proposito de determinar los parametros


Control Optimo

124

optimos de una ley de ontrol; de all el termino optimo. En la mayora de


los asos, sin embargo, la busqueda de la fun ion de osto involu ra pro edimientos de error y orre ion; esto signi a que no siempre podemos estar
seguros a er a de la forma exa ta que debera poseer la fun ion de osto.
Para sistemas de ontrol dis retos, la fun ion de osto generalmente
posee la forma siguiente:
J

N
X
k=0

L(x(k); r(k); u(k))

(4.1)

donde k es el tiempo dis reto, N es el tiempo dis reto nal, x(k) es el ve tor
de estado, r(k) es el ve tor de referen ia (entrada al sistema de ontrol) y
u(k) es el ve tor de ontrol optimo. Esta ley de ontrol (denominada tambien
fuerza o se~nal de ontrol) onstituye la entrada al pro eso a ontrolar.
Para apli a iones pra ti as, el ve tor de ontrol u debe estar siempre
a otado. Por ejemplo,
jui (k)j Ui
(4.2)
donde ada elemento Ui es una onstante determinada (el subndi e denota
la omponente i del ve tor u). Para el aso de ontrol a otado on mnimo
gasto de energa, se puede formular:
u2i (k) Mi

(4.3)

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


ve tor de ontrol u debe satisfa er iertas restri iones para poder ser un
ve tor de ontrol admisible.
En este aptulo se desarrolla el pro edimiento de dise~no de un sistema
de ontrol optimo uadrati o dis reto, denominado as porque emplea una
fun ion de osto uadrati a de dominio dis reto. El resultado del dise~no
propor iona una matriz de ganan ia que multipli ada por el ve tor de estado (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 observador optimo.
Para demostrar la validez del pro edimiento de dise~no, se presentan dos
apli a iones: dise~no del sistema de ontrol optimo uadrati o para el pro eso
pendulo invertido y para el pro eso grua-puente.


4.2 Control Optimo
Cuadrati o No Esta ionario

4.2

125


Control Optimo
Cuadrati o No Esta ionario

El problema del ontrol optimo uadrati o dis reto no esta ionario onsiste
en en ontrar una ade uada ley de ontrol optima que sea apaz de trasladar
la dinami a del pro eso desde un estado ini ial x(0) ha ia un estado nal
deseado x(N ). La fuerza de ontrol optima u(k) se determina a partir de
la minimiza ion de una fun ion de osto uadrati a dis reta. Esta fuerza de
ontrol apli ada al pro eso a ontrolar, provo a que di ho pro eso responda
en forma optima (o lo mas er ano al optimo). El ontrol optimo uadrati o
dis reto se basa en la siguiente fun ion de osto:
1
1 NX1 xT (k)Qx(k) + uT (k)Ru(k)
J = xT (N )Sx(N ) +
(4.4)
2
2 k=0
donde x(k) es el ve tor de estado de dimension n y u(k) es el ve tor de
ontrol de dimension r. Mientras que la matriz hermitiana 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 se~nal
de ontrol u(k). La de ni ion de matri es se trato en la subse ion 1.2.4. La
ley del ontrol optima a usar emplea la realimenta ion del ve tor de estado
x(k) en su formula ion y posee la forma siguiente:
u(k) = K (k)x(k)
(4.5)
donde K (k) (de dimension rn) es la matriz de ganan ia del ontrolador, denominada tambien matriz de realimenta ion de estados. Cuando la dinami a
del sistema de ontrol es nita, K (k) es una matriz variante en el tiempo;
pero uando di ha dinami a al anza su estado esta ionario (es de ir, uando
N ! 1), enton es K (k) se onvierte en una matriz onstante K . En esta
ultima situa ion, estaremos frente al denominado ontrol optimo en estado
esta ionario, y es el que usaremos en nuestras apli a iones. Una ondi ion
ne esaria para poder apli ar el ontrol por realimenta ion de estados es que
el pro eso sea ompletamente ontrolable. Por onsiguiente, sera ne esario
veri ar di ha ondi ion en el pro eso antes de ini iar el pro edimiento de
dise~no.
La realimenta ion de estados requiere ademas que todos los estados sean
disponibles y medibles. Si en el sistema a ontrolar existieran estados que

126


Control Optimo

no pudieran ser medidos dire tamente, sera ne esario estimarlos. Esta estima ion puede ser realizada empleando la te ni a de observa ion de estados
que sera tratada en la se ion 4.6. El requerimiento en esta parte es que el
pro eso sea ompletamente observable.
La solu ion al problema de ontrol optimo uadrati o puede obtenerse
empleando varios enfoques, tales omo el metodo de minimiza ion usando
multipli adores de Lagrange o mediante el prin ipio de optimalidad [3,[4.
Asumamos que el pro eso puede ser modelado mediante la siguiente e ua ion
de estado dis reta:
x(k + 1) = Gx(k) + Hu(k);
x(0) =
(4.6)
donde G es la matriz de estado de dimension n  n, H es la matriz de ontrol
de dimension n  r y x(0) es una ondi ion ini ial del ve tor de estado.
El pro eso debe ser de estado ompletamente ontrolable; es de ir, que
en un tiempo nito, sus estados puedan ser transferidos desde un estado
ini ial arbitrario a ualquier otro estado deseado. La ondi ion ne esaria y
su iente para la ompleta ontrolabilidad del pro eso es que la matriz de
ontrolabilidad M dada por la siguiente expresion (subse ion 2.3.6):


M = H GH    Gn 1 H
(4.7)
posea rango ompleto; es de ir, el rango de M debe ser igual al orden n del
pro eso.
La solu ion al problema del ontrol optimo uadrati o no esta ionario
esta dada por la siguiente matriz de ganan ia del ontrolador:
K (k) = [R + H T P (k + 1)H 1 H T P (k + 1)G
(4.8)
donde P (k+1) es una matriz hermitiana de nida positiva de dimension nn.
Di ha matriz es solu ion de la siguiente e ua ion matri ial de Ri ati:
P (k) = Q + GT P (k +1)G GT P (k +1)H [R + H T P (k +1)H 1 H T P (k +1)G
(4.9)
La matriz P (K ) de la e ua ion (4.9) puede determinarse re ursivamente
partiendo de la siguiente ondi ion terminal para k = N :
P (N ) = S
(4.10)
hasta llegar a la ondi ion ini ial P (0) para k = 0. El pro edimiento es
omo sigue: reemplazando P (N ) en la e ua ion (4.8), podemos obtener


4.3 Control Optimo
Cuadrati o Esta ionario

127

K (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 mnimo
de la fun ion de osto se determina de:
1
Jmin = xT (0)P (0)x(0)
(4.11)
2
4.3


Control Optimo
Cuadrati o Esta ionario

En la se ion anterior vimos que uando la dinami a del sistema de ontrol


evolu iona en un tiempo N nito, la ganan ia de realimenta ion de estados
K (k) es una matriz variante en el tiempo. Sin embargo, uando la dinami 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 ion de estado esta ionario.
En este aso, la ganan ia K (k) se onvierte en una matriz onstante K .
Para N in nito, el termino xT (N )Sx(N ) de la e ua ion (4.4) desapare e
debido a que x(1) = 0. Por onsiguiente, la fun ion de osto para el estado
esta ionario toma la forma:
1 

1X
xT (k)Qx(k) + uT (k)Ru(k)
(4.12)
J=
2 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:
P = Q + GT P G GT P H [R + H T P H 1 H T P G
(4.13)
mientras que la matriz de ganan ia K resulta:
K = [R + H T P H 1 H T P G
(4.14)
u(k) = Kx(k)
(4.15)
y la fun ion de osto mnima viene a ser:
1
Jmin = xT (0)P x(0)
(4.16)
2


Control Optimo

128

Una forma de obtener la matriz P de la e ua ion matri ial (4.13), es empleando la e ua ion de Ri ati en estado no esta ionario dada en la e ua ion
(4.9), pero invirtiendo la dire ion del tiempo:
P (k + 1) = Q + GT P (k)G GT P (k)H [R + H T P (k)H 1 H T P (k)G (4.17)
La e ua ion (4.17) permite determinar una matriz P de magnitud onvergente usando al ulo re ursivo omo sigue. Asumiendo ini ialmente para
k = 0 que P (0) = 0, podemos obtener P (1); luego usar P (1) para obtener P (2), y asi su esivamente, hasta llegar a un tiempo dis reto k para el
ual P (k) = P (k + 1) = P (k + 2) =   . Con la matriz P as determinada,
podemos al ular ahora la ganan ia K usando la e ua ion (4.14), para luego
obtener la ley de ontrol dada por la e ua ion (4.15). El diagrama de bloques del ontrol optimo de estado esta ionario se representa en la gura 4.1,
en donde se asume que todos los estados se en uentran disponibles. Para
opera ion satisfa toria del sistema de lazo errado mostrada en di ha gura,
todas las ra es de su e ua ion ara tersti a:
det[zI G + HK = 0
(4.18)
deben posi ionarse dentro del r ulo unitario. Tales ra es se denominan
tambien valores propios, ra es ara tersti as, eigenvalores o modos de fun ionamiento.
x (k)

u (k)
H

I z -1

G
-K

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 ontrolada sigue a una se~nal de referen ia r(k) = (k) onstante, donde (k)


4.4 El Regulador Optimo
Propor ional

129

es la fun ion es alon. Restringiremos nuestro tratamiento a sistemas univariables. Previamente debemos re al ar que la naturaleza propor ional del
regulador en uestion, obliga a que se aplique on uidado a sistemas que
no poseen un omportamiento integral. Este es el punto en dis usion.
La gura 4.2 muestra el esquema de un regulador para la variable de
estado x2 del ve tor de estado x, empleando una ley de ontrol de realimenta ion de estados de la forma u = Kx.
x (k)
r(k)
k2

u(k)

x (k+1) = G x (k) + Hu(k)


-

- -

..
.

y(k) = x 2 (k)

k1
k3
..
.
kn

Figura 4.2: Esquema del regulador optimo propor ional.


Para una salida arbitraria, por ejemplo x2 :
u(k) = k1 x1 (k) k3 x3 (k)    kn xn (k) + k2 r(k) k2 x2 (k)
= Kx(k) + k2 r(k)
(4.19)
Reemplazando u(k) en la e ua ion de estado del pro eso:
x(k + 1) = Gx(k) + Hu(k) = (G HK )x(k) + Hk2 r(k)
(4.20)
Empleando la transformada Z en (4.20), la fun ion de transferen ia de pulso
on r(z) = R (z) resulta:
y(z ) = C (zI

G + HK ) 1 Hk2 R(z );

(4.21)
1
Apli ando la propiedad del valor nal (subse ion 2.3.2) a y(z) obtenemos:
lim y(k) = lim z 1 y(z) = C (I G + HK ) 1Hk2 R
(4.22)
k!1

z !1

(z ) =

130


Control Optimo

La ondi ion para que y = R es que C (I G + HK ) 1Hk1 = 1, que no


siempre se umple. Por ello, es ne esario afe tar a la se~nal de referen ia por
una ganan ia g de modo que:
gC (I G + HK ) 1 Hk2 R = 1
(4.23)
Este pro edimiento sera validado on los ejemplos 4.1 y 4.2.
4.5

Sele ion de las Matri es de Pondera i


on

La fun ion de osto para determinar la ganan ia K del ontrolador optimo


esta ionario esta dada en la e ua ion (4.12):
1 
X

1
J=
xT (k)Qx(k) + uT (k)Ru(k)
2 k=0

donde observamos que la matriz hermitiana R pondera la se~nal de ontrol u(k) mientras que la matriz hermitiana Q pondera el ve tor de estado
x(k). En la subse ion 1.1.2 vimos que una matriz es hermitiana uando
su onjugada transpuesta (o su transpuesta onjugada) resulta en la misma
matriz. Por tanto, es valido que (R)T = (RT ) = R y (Q)T = (QT ) = Q.
Cuando las matri es R y Q son reales, enton es ambas deben ser simetri as
y se veri a que RT = R y QT = Q. Asimismo, en la subse ion 1.2.4
se dijo que una matriz uadrada R es de nida positiva si las ra es de su
e ua ion ara tersti a jzI Rj = 0 son todas positivas, mientras que una
matriz uadrada Q es semide nida positiva si las ra es de su e ua ion ara tersti a jzI Qj = 0 son positivas o nulas (sin embargo, no todas las
ra es deben ser nulas).
La matriz R, por onvenien ia, puede tomar la forma de una matriz real
diagonal:
2
3
r1 0 : : : 0
6
... 77
6 0 r2
6
R=6 .
. . . 775
4 ..
0 :::
rp
donde los elementos r1, r2,. . .,rp deben ser todos positivos para que R sea
una matriz simetri a de nida positiva. Para sistemas on una sola se~nal 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 tambien una forma diagonal:


2
3
q1 0 : : : 0
6
... 77
6 0 q2
Q=6
6 ..
. . . 775
4 .
0 :::
qn
donde los elementos qi pueden ser positivos y algunos de ellos nulos para
que Q sea una matriz simetri a semide nida positiva.
Cada elemento qi o ada elemento ri dara un peso orrespondiente a ada
variable de estado xi o a ada se~nal de ontrol ui, respe tivamente. El riterio para es oger los pesos esta en rela ion on la importan ia que le demos
a ada variable o se~nal 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 mas rapida (regla pra ti a)
en ompara ion 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 despues 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 ion a tal variable, pero disminuye el
desempe~no de las demas. Es enton es ne esario balan ear en forma ade uada los pesos, de manera tal que obtengamos un desempe~no general del
sistema, que se a erque en lo posible al optimo y que evidentemente, umpla
las espe i a iones de dise~no.
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 onvertirse 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 parametros 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 armadura 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


Control Optimo

132
R

+
V
I

L
+
.
e=K
-

T
.
b

J
b

Figura 4.3: Pro eso motor D.C.


el aptulo 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 peque~na. Sin embargo, existen mu has ex ep iones.
Suponiendo que el rotor del motor y su eje son uerpos rgidos, 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 motori o y e = Ke_ es la
fuerza ontraele tromotriz. Dise~nar 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 ion de transferen ia del motor uando la salida es la posi ion, resulta:

K
=
V s[(Js + 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. Eligiendo x1 = _ y x2 = I , las e ua iones de estado y de salida resultan:

 
b
K  x   0 
x_ 1 =
1 +
J
J
1 V
K
R
x_ 2
x
2
L
L
L

4.5 Sele ion de las Matri es de Pondera ion


y = x1 =

1 0

x1
x2

+ DV ;

133

D = [0

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;


Control Optimo

134

yRpta (rad/s)

end
Kr = inv(R + H'*P*H)*H'*P*G;
% SE CUMPLE QUE K=Kr Y P=Pr
0.1

0.05
0
0

0.5

1.5

2.5

0.5

1.5

2.5

0.5

1.5
Tiempo

2.5

y (rad/s)

1.5
1
0.5
0
0

V (voltios)

40

20
0
0

(s)

Figura 4.4: Respuesta yRpta (a lazo abierto) del motor D.C. a un es alon
de 1 rad/s. La velo idad angular ontrolada es y; la se~nal de ontrol es V .
Ejemplo 4.2

Determine el ontrolador optimo uadrati o esta ionario que estabili e la


posi ion angular del eje del motor (des rito en el ejemplo 4.1) a 1 rad, on
las espe i a iones siguientes: tiempo de estabiliza ion menor que 2 s, error
en estado estable menor al 1 % y sobreimpulso a la salida menor al 5 %.
Solu ion: Eligiendo x1 = _, x2 = I y x3 = , las e ua iones de estado y de
salida resultan:
2
3 2
K 0 32 x 3 2 0 3
b
x_ 1
1
J
J
R 0 54 x 5 +4 1 5V
4 x_ 2 5 = 4 K
2
L
L
L
0
x_ 3
1 0 0 x3
y = x3 =

0 0 1

2
4

x1
x2
x3

3
5

+ DV ;

D = [0

4.5 Sele ion de las Matri es de Pondera ion

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


Control Optimo

136

y (rad)

1.5

0.5

0
0

0.5

1.5

0.5

1.5
Tiempo

2.5

2.5

V (voltios)

60
40
20
0
20
0

(s)

Figura 4.5: Salida ontrolada y (posi ion angular) y se~nal de ontrol V para
el motor D.C.
4.6


Dise~
no del Observador Optimo
Cuadrati o

En mu hos asos pra ti os, solo unas uantas variables del ve tor de estado
En tales
situa iones ne esitamos estimar di ho ve tor de estado; es de ir, requerimos
hallar un ve tor de estado estimado x^ (k). Esto puede lograrse mediante el
empleo de un observador dis reto de estados. El dise~no de di ho observador
impli a determinar su matriz de ganan ia Ke, que puede ser al ulada a
partir de la minimiza ion de una fun ion de osto uadrati a. El diagrama
de bloques del observador de estados se representa en la gura 4.6, donde
podemos notar que el observador emplea las medi iones de la salida y(k) y
de la se~nal de ontrol u(k).
De la gura 4.6 podemos formular:
x(k + 1) = Gx(k) + Hu(k)
(4.24)
y(k) = Cx(k)
(4.25)
mientras que la e ua ion del observador toma la forma:
x^ (k + 1) = Gx^ (k) + H fu(k) + Ke [y(k) C x^ (k)g
(4.26)

x(k) del pro eso son sus eptibles de ser medidas en forma dire ta.


4.6 Dise~no del Observador Optimo
Cuadrati o
u(k)
H

137

x (k)

y (k)
C

I z -1
+
G

Ke
+
+
+

I z -1

x^ (k)
C

+
G

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 dimension m, Ke es la matriz de ganan ia
de realimenta ion del observador on dimension n  m y C es la matriz de
salida de dimension 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 tersti 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 tambien que las
ra es de di ha e ua ion ara tersti a deben posi ionarse dentro del r ulo
unitario para opera ion 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 ion de los ve tores de salida y de ontrol, en un numero nito
de perodos de muestreo. Ya es ono ido que el riterio para observabilidad
ompleta requiere onstruir la siguiente matriz de observabilidad:
N = [ C T GT C T    (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, onvenientemente 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 transpuesta 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 KeT (4.30)
Comparando la e ua ion ara tersti 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 ! GT ;
H ! CT ;
K ! KeT
(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) = KeT (k)
(4.33)
Empleando las e ua iones (4.32) y (4.33) en la fun ion de osto siguiente:
1 

1X
J=
T (k)Qe (k) + T (k)Re (k)
(4.34)
2 k=0
enton es la orrespondiente e ua ion de Ri ati toma la forma:
Pe = Qe + GPe GT GPe C T [Re + CPe C T 1 CPeGT
y la matriz de ganan ia Ke viene dada por:
Ke = [Re + CPeC T 1 CPeGT

(4.35)
(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 ion re ursiva:
Pe (k + 1) = Qe + GPe (k)GT GPe (k)C T [Re + CPe (k)C T 1 CPe(k)GT
(4.37)
Ejemplo 4.3

Dise~nar un observador optimo para el pro eso motor D.C. del ejemplo 4.2
asumiendo que se requiere observar los estados x1, x2 y x3.
Solu ion: Ver programa ejem4 3.m. En la gura 4.3 se muestra la evolu ion de los valores de algunos elementos de Pe hasta al anzar el estado de
equilibrio.
% ejem4_3.m OBSERVADOR OPTIMO PARA EL MOTOR D.C.
lear all
J = 0.01; b = 0.1; K = 0.01; R = 1; L = 0.5;
A = [-b/J K/J 0
-K/L -R/L 0
1 0 0;
B = [0;1/L;0;
C = [0 0 1; D = [0;
T = 0.05;
% SELECCIONADO EN EL EJEMPLO 4.1
[G,H,C,D = 2dm(A,B,C ,D ,T,'zoh'); % CONVERSION A DISCRETO
Pe =zeros(3,3); % ondi ion ini ial
Qe = [1 0 0;0 1 0;0 0 1; Re = [1; % TODOS CON IGUAL PESO
for k=1:40
Pe = Qe + G*Pe*G' - G*Pe*C'*inv(Re + C*Pe*C')*C*Pe*G';
pe11(k) = Pe(1,1); pe21(k) = Pe(2,1); pe31(k) = Pe(3,1);
end
t = linspa e(0,length(pe11),length(pe11)); % EJE DE TIEMPOS
plot(t,pe11,t,pe21,'--',t,pe31,'-.');
xlabel('Muestras
k');
ylabel('Algunos elementos de Pe'); grid
print -deps -f ejem4_3
Ke = inv(Re + C*Pe*C')*C*Pe*G'; % GANANCIA DEL OBSERVADOR

4.7


El Regulador Optimo
Propor ional Integral

Generalmente es ne esario a~nadir a ion integral, al regulador propor ional


visto en la se ion anterior, debido a que errores de estado permanente


Control Optimo

140
1.8
1.6

Algunos elementos de Pe

1.4
1.2
1
0.8
0.6
0.4
0.2
0
0

10

15

20
Muestras

25

30

35

40

Figura 4.7: Algunos elementos de Pe: Pe(1; 1) ( urva solida), Pe(2; 1) ( urva
en trazos) y Pe(3; 1) ( urva on puntos y rayas).
pueden apare er si los parametros del pro eso o su estru tura (su e ua ion
de estado) no han sido estimados on su iente exa titud. Para pro esos
que no poseen propiedades integradoras, la in lusion de a ion integral en el
sistema de ontrol permite obtener un error esta ionario nulo. La gura 4.8
ilustra un regulador optimo (propuesto en [3) para sistemas univariables,
que in luye di ha a ion integral en el sistema de ontrol: un integrador on
se~nal de salida v(k) y una ganan ia integral KI aso iada. Siendo la se~nal de
r(k)

v(k)

u (k)
KI

+
-

+
-

I z-1

x (k)

y (k)
C

I z-1

G
K

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 Optimo
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 se~nal 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 ion 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 CHKI )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) + HKI 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
HKI
x(k) + 0 r(k + 1)
v(k + 1)
CG + CHK 1 CHKI
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)
toman valores esta ionarios x(1), u(1) y v(1). As la e ua ion (4.45) se
onvierte en:
 

 


x(1) + 0
x(1) =
G HK
HKI
(4.47)
v(1)
r
v(1)
CG + CHK 1 CHKI


Control Optimo

142

Si de nimos:

x(k) x(1) = xe (k)

(4.48)
v(k) v(1) = ve (k)
(4.49)
y restamos ahora la e ua ion (4.47) de (4.45), y luego usando las rela iones
(4.48) y (4.49) obtendremos:

 


xe (k + 1) =
G HK
HKI
xe (k)
ve (k + 1)
CG + CHK 1 CHKI
ve (k)


 




 xe (k )
G
0
x
(
k
)
H
e
= CG I ve(k) + CH
K KI
ve (k) (4.50)
La e ua ion (4.50) puede ser es rita omo:
~ (k) + Hw
~ (k)
 (k + 1) = G
~ (k )
w(k) = K
donde:


x
(
k
)
e
 (k) = v (k)
e


~G(k) = G 0
H~ (k) =

(4.53)

CG I

(4.54)

H
CH

(4.55)

K~ (k) = K


(4.51)
(4.52)




(4.56)
Observar que la in lusion de un integrador en el sistema de ontrol aumenta
en uno el orden del sistema; es de ir, si n es el orden del sistema original, el
nuevo orden del sistema on un integrador es (n + 1). En otras palabras, el
ve tor de estado x(k) del sistema original posee dimension n, mientras que
el ve tor de estado (k) del regulador propor ional integral posee dimension
(n + 1).
Teniendo en mente las rela iones anteriores, podemos de nir la siguiente
fun ion de osto:
1 h
i
X
1
~ (k) + w2 (k)R~
J=
 (k)T Q
(4.57)
2 k=0
KI


4.7 El Regulador Optimo
Propor ional Integral

143

Debemos enton es al ular una matriz K~ ade uada de forma tal que minimi e la fun ion de osto dada en la e ua ion (4.57). Empleando el mismo
pro edimiento usado en la se ion 4.3, es posible formular la e ua ion de
Ri ati y la e ua ion de ganan ia del ontrolador K~ para el regulador, omo
sigue:
P~ = Q~ + G~ T P~ G~ G~ T P~ H~ [R~ + H~ T P~ H~ 1 H~ T P~ G~
(4.58)
K~ = [R~ + H~ T P~ H~ 1 H~ T P~ G~
(4.59)
La sele ion del tiempo de muestreo se trata en la subse ion 4.9.6.
Ejemplo 4.4

Dise~nar el regulador propor ional integral optimo esta ionario que sea apaz
de estabilizar la velo idad angular del eje del motor (des rito en el ejemplo
4.1) a 1 rad/s, on las espe i a iones siguientes: tiempo de estabiliza ion
menor que 2 s, error en estado estable menor al 1 % y sobreimpulso de la
salida menor al 5 %.
Solu ion: El programa ejem4 4.m resuelve el problema y sus resultados se
muestran en la gura 4.9.
% ejem4_4.m SOLUCION DEL EJEMPLO 4.4
lear all
J = 0.01; b = 0.1; K = 0.01; R = 1; L = 0.5;
A = [-b/J K/J
-K/L -R/L; % orden n=3
B = [0;1/L;
C = [1 0; D = [0;
% VERIFICAR CONTROLABILIDAD Y OBSERVABILIDAD
M = [B A*B; N = [C ' A'*C '; % rank(M) = rank(N) = n = 2
% LUEGO EL SISTEMA ES COMPLETAMENTE CONTROLABLE Y OBSERVABLE
T = 0.05;
% SELECCIONADO EN EL EJEMPLO 4.1
[G,H,C,D = 2dm(A,B,C ,D ,T,'zoh'); % CONVERSION A DISCRETO
Gtilde = [G zeros(2,1)
-C*G eye(1,1);
% DEBE SER DE ORDEN n+1=4
Htilde = [H
-C*H;
Q = [1 0 0;0 0.1 0;0 0 2; R = [0.01; % MATRICES DE PONDERACION
[Ktil,Ptil,E = dlqr(Gtilde,Htilde,Q,R); % Ktil: GANANCIA OPTIMA
K = [Ktil(1) Ktil(2); KI = -Ktil(3);
x = [0;0; yi=0; v=0;
% CONDICIONES INICIALES
N = 60; r=1;
% RESPUESTA AL ESCALON r=1


Control Optimo

144

for k=1:N
v = v + r - yi;
V(k) = -K*x + KI*v;
x = G*x + H*V(k);
y(k) = x(1); yi = y(k);
end
% GRAFICOS
t = linspa e(0,T*N,N);
subplot(2,1,1)
plot(t,y); ylabel('y (rad/s)'); grid;
subplot(2,1,2)
plot(t,V); ylabel('V (voltios)'); grid;
xlabel('Tiempo
(s)')
print -deps -f ejem4_4
% CALCULO RECURSIVO DE LA MATRIZ Ptilde Y CALCULO DE Ktilde
T = 15; Ptilde = zeros(3,3);
for i=1:T
Ptilde = Q + Gtilde'*Ptilde*Gtilde - Gtilde'*Ptilde*Htilde*...
inv(R+Htilde'*Ptilde*Htilde)*Htilde'*Ptilde*Gtilde;
end
Ktilde = inv(R + Htilde'*Ptilde*Htilde)*Htilde'*Ptilde*Gtilde;
% SE CUMPLE QUE Ktil = Ktilde Y Ptil = Ptilde

y (rad/s)

1.5

0.5

0
0

0.5

1.5

0.5

1.5
Tiempo

2.5

2.5

V (voltios)

25
20
15
10
5
0

(s)

Figura 4.9: Salida ontrolada y y se~nal de ontrol V para el ejemplo 4.4.

4.8 Pro edimiento de Dise~no e Implementa ion

4.8

145

Pro edimiento de Dise~


no e Implementa ion

El pro edimiento de dise~no e implementa ion en tiempo real de un sistema


de ontrol optimo uadrati o omprende los pasos siguientes:
1) Formular el problema (determinar espe i a iones de dise~no).
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 ompletamente observable (se ion 2.3.6).
3) Cal ular la matriz de ganan ia optima K~ de ontrol (se ion 4.7).
4) Cal ular la matriz de ganan ia optima Ke 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 experimentales satisfa torios).
4.9


Control Optimo
Cuadrati o del Pendulo Invertido

En esta se ion nos o uparemos del dise~no del ontrol optimo uadrati o del
pro eso pendulo invertido empleando el pro edimiento de dise~no des rito en
la se ion 4.8.
4.9.1 Formula ion del Problema

Dado el pro eso pendulo invertido, onformado por una varilla montada en
un arro impulsado por un servomotor D.C. ontrolado por voltaje de armadura, se desea dise~nar un servo ontrolador que sea apaz de mantener
el pendulo invertido en posi ion verti al (tanto omo sea posible), y al mismo tiempo, mantener el arro en una posi ion referen ial. En el problema
planteado, el pendulo se mueve en el mismo plano que la traye toria del
arro. El sistema de ontrol sera dise~nado empleando la te ni a de ontrol

146


Control Optimo

optimo uadrati o y la on gura ion de un servosistema. La entrada al pro eso (la se~nal de ontrol) es el voltaje de armadura del servomotor D.C. y las
salidas del servosistema son la posi ion angular del pendulo y la traye toria
horizontal del arro. Se desea un tiempo de estabiliza ion de la posi ion del
arro de aproximadamente 6 segundos on el menor sobreimpulso posible.
Cabe anotar que para al anzar las espe i a iones de dise~no planteadas,
se requiere sele ionar ade uadamente las matri es de pondera ion, omo
veremos mas adelante.
4.9.2 El Modelo del Pro eso a Controlar

La determina ion del modelo matemati o del pro eso pendulo invertido fue
tratado on amplitud en la se ion 3.1. Para una fre uen ia de muestreo
de 200 Hz y asumiendo reten ion de memoria de orden ero, la e ua ion
de estado dis reta del pro eso y su e ua ion de salida se determinan omo
sigue:
% PARAMETROS DEL PROCESO
m = 0.92; me = 0; mv = 0.063095; mp = 0.2; g = 9.81;
lv = 0.767; le = 0; rp = 0.0648; n = 1/19.741;
Jm = 1.9596e-6;
Je = me*le^2; Jv = mv*lv^2/3; Jo = 0; Jp = mp*rp^2/2;
Jeq = Jm + n^2*(Jo + Jp);
Bm = 1.8342e-6; Bo =0; Beq = Bm + n^2*Bo;
Km = 31.071e-3; Kb = 31.053e-3; Ra = 7.38; KA = 14.9;
M1 = m + me + mv; M2 = me*le + mv*lv/2;
J1 = Je + Jv; J2 = Jeq/(n^2*rp^2);
Kx = Km/(Ra*n*rp);
Bx = Beq/(n^2*rp^2) + Kb*Km/(n^2*rp^2*Ra);
d = ((M1+J2)*J1-M2^2);
a21 = (M1+J2)*M2*g/d; a24 = Bx*M2/d;
a41 = -M2^2*g/d; a44 = -J1*Bx/d;
b21 = -Kx*M2*KA/d; b41 = J1*Kx*KA/d;
% MODELOS LINEALES CONTINUO Y DISCRETO
A = [0 1 0 0
a21 0 0 a24
0 0 0 1
a41 0 0 a44;
B = [0
b21
0
b41;
C = [0 0 1 0; % SALIDA: POSICION DEL CARRO


4.9 Control Optimo
Cuadrati o del Pendulo Invertido

147

Ts = 1/200;
% TIEMPO DE MUESTREO
[G,H = 2d(A,B,Ts);
2
6

G=6
4

1:0002
0:0995
0:0000
0:0019

0:0050
0
1:0002
0
0:0000 1:0000
0:0000
0

C=

0:0002
0:0963
0:0049
0:9508

0 0 1 0

3
7
7;
5

2
6

H=6
4

0:0004
0:1497
0:0002
0:0765

3
7
7
5

4.9.3 Cal 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


dise~no del ontrolador optimo se des ribe mediante las e ua iones (4.51) y
(4.52), a saber:
~ (k) + Hw
~ (k); w(k) = K
~ (k)
 (k + 1) = G
donde:




G
0
H
G~ (k) =
; H~ (k) =
; K~ (k) =  K KI 
CG I

CH

Adi ionalmente debemos averiguar si el pro eso es ompletamente ontrolable formando la matriz de ontrolabilidad M y averiguando su rango, que
debe ser 5. El al ulo se realiza omo sigue:
G1 = [G zeros(4,1)
-C *G 1;
H1 = [H;-C *H;
% MATRIZ DE CONTROLABILIDAD
M = [H1 G1*H1 G1^2*H1 G1^3*H1 G1^4*H1;
rM = rank(M); % rM = 5 => COMPLETAMENTE CONTROLABLE
2
6
6

G~ = 6
6
4

1:0002
0:0995
0:0000
0:0019
0:0000

0:0050
1:0002
0:0000
0:0000
0:0000

0
0
1:0000
0
1:0000

0:0002
0
0:0963
0
0:0049
0
0:9508
0
0:0049 1:0000

3
7
7
7;
7
5

2
6
6

~ =6
H
6
4

0:0004
0:1497
0:0002
0:0765
0:0002

3
7
7
7
7
5


Control Optimo

148

Para determinar la matriz de ganan ia K~ del ontrolador de realimenta ion


de a uerdo a lo estable ido en la se ion 4.7, sele ionamos antes las matri es
de pondera ion R~ y Q~ omo sigue:
2
200 0 0 0 0 3
6 0
0 0 0 0 77
6
R~ = [100;
Q~ = 6
0 100 0 0 77
6 0
4 0
0 0 0 0 5
0 0 0 0 0:01
En la matriz Q~ observamos que se esta dando mayor peso al angulo del
pendulo (200). La posi ion del arro re ibe un peso de 100 mientras que
al integrador se le asigna 0.01. Con el proposito de evitar la satura ion del
ampli ador, tenemos que redu ir la amplitud de la se~nal de entrada (o de
ontrol) a di ho ampli ador, pues de otro modo se originaran efe tos no
lineales indeseados en el sistema. Para tal proposito, R~ toma el valor de 100,
dando as mayor enfasis a la se~nal 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~ 1 H~ 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

donde G1  G~ , H21  H~ , P  P~ , Q  Q~ y R  R~ . As obtenemos:3


P~ = 105 

6
6
6
6
4

1:3774
0:3112
0:9019
0:5082
0:0035

0:3112
0:0727
0:2107
0:1197
0:0008

0:9019
0:2107
0:9352
0:3735
0:0041

0:5082
0:1197
0:3735
0:2000
0:0015

0:0035
0:0008
0:0041
0:0015
0:0000

7
7
7
7
5

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~ 1 H~ 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 Cal 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 ion (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 Ke del observador optimo (se ion 4.3),
debemos sele ionar previamente las matri es de pondera ion Re y Qe:
2
1 0 0 0 3


0 ; Qe = 66 0 1000 0 0 77
Re = 10 10
4 0
0 0:9 0 5
0 0 0 1000
Podemos observar que en la matriz Re se da un peso de 10 a la medi ion
de la posi ion del arro, pues es mas exa ta que la medi ion del angulo,
debido a que el sensor usado para medir di ho angulo posee un error de
uantiza ion mayor. En la matriz Qe se asigna un peso de 1000, el mayor en
Qe, tanto a la velo idad angular de la varilla omo a la velo idad del arro,
porque estas son las variables que no son posibles de medir dire tamente y
ne esitamos que tengan una mayor in uen ia en el pro eso de estima ion.
Notar tambien que la posi ion del arro posee un peso de 0.9, algo menor
omparado on el peso de 1 atribudo al angulo de la varilla, dado que el
sensor de posi ion del arro es mas exa to que el sensor de posi ion de la
varilla.
Para al ular la matriz de ganan ia del observador Ke al ulamos previamente la matriz Pe a partir de la e ua ion (4.37):
Pe (k + 1) = Qe + GPe (k)GT GPe (k)C T [Re + CPe (k)C T 1 CPe(k)GT
El programa siguiente (en odigo MATLAB) al ula el valor esta ionario de
la matriz solu ion Pe (el valor ini ial de Pe es arbitrario):
for i = 1:40
Pe = Qe + G*Pe*G'-G*Pe*C'*inv(Re+C*Pe*C^(T))*C*Pe*G'
end


Control Optimo

150

donde P e = Pe, Qe = Qe. De esta manera obtenemos:


2
6

Pe = 103  6
4

0:0021
0:0640
0:0003
0:0136

0:0640
9:7336
0:0397
2:2269

0:0003
0:0397
0:0047
0:0753

0:0136
2:2269
0:0753
6:3346

3
7
7
5

Luego, la matriz de ganan ia Ke se al ula on la e ua ion (4.36):


Ke = [Re + CPeC T 1 CPeGT
lo que resulta en:
2
3
6

Ke =  6
4

0:7802
20:9413
0:0752
3:7683

0:0185
2:8240
0:3450
4:7913

7
7
5


4.9.5 Simula ion del Sistema de Control Optimo

Con los datos determinados, podemos entrar ahora a la fase de simula ion
del sistema de ontrol optimo uadrati o, antes de ini iar su implementa ion
en tiempo real. El siguiente programa disopt2.m, ademas de efe tuar todos
los al ulos anteriores, realiza la simula ion del sistema ontrolado empleando una ley de ontrol optima y on observa ion optima de estados. Es
interesante anotar que el modelo del pro eso empleado en la simula ion es
el modelo no lineal (3.31) dis retizado dire tamente. Tambien hemos a~nadido senten ias para simular el efe to de satura ion del ampli ador. Como
se~nal de referen ia se emplea un es alon de valor 1.5 m. Los resultados de
la simula ion se pueden observar en las guras 4.10, 4.11 y 4.12.
% disopt2.m SISTEMA DE CONTROL OPTIMO DEL PENDULO INVERTIDO
lear all
% PARAMETROS DEL PROCESO
m = 0.92; me = 0; mv = 0.063095; mp = 0.2; g = 9.81;
lv = 0.767; le = 0; rp = 0.0648; n = 1/19.741;
Jm = 1.9596e-6;
Je = me*le^2; Jv = mv*lv^2/3; Jo = 0; Jp = mp*rp^2/2;
Jeq = Jm + n^2*(Jo + Jp);
Bm = 1.8342e-6; Bo =0; Beq = Bm + n^2*Bo;
Km = 31.071e-3; Kb = 31.053e-3; Ra = 7.38; KA = 14.9;
M1 = m + me + mv; M2 = me*le + mv*lv/2;
J1 = Je + Jv; J2 = Jeq/(n^2*rp^2);
Kx = Km/(Ra*n*rp);


4.9 Control Optimo
Cuadrati o del Pendulo Invertido
Bx = Beq/(n^2*rp^2) + Kb*Km/(n^2*rp^2*Ra);
d = ((M1+J2)*J1-M2^2);
a21 = (M1+J2)*M2*g/d; a24 = Bx*M2/d;
a41 = -M2^2*g/d; a44 = -J1*Bx/d;
b21 = -Kx*M2*KA/d; b41 = J1*Kx*KA/d;
% MODELOS LINEALES CONTINUO Y DISCRETO
A = [0 1 0 0
a21 0 0 a24
0 0 0 1
a41 0 0 a44;
B = [0
b21
0
b41;
C = [0 0 1 0; % POSICION DEL CARRO
Ts = 1/200;
% TIEMPO DE MUESTREO
[G,H = 2d(A,B,Ts);
G1 = [G zeros(4,1)
-C *G 1;
H1 = [H;-C *H;
M = [H1 G1*H1 G1^2*H1 G1^3*H1 G1^4*H1;
rM = rank(M); % rM=5 => COMPLETAMENTE CONTROLABLE
% CALCULO DE LA GANANCIA DEL CONTROLADOR
Q = [200 0 0 0 0
0 0 0 0 0
0 0 100 0 0
0 0 0 0 0
0 0 0 0 0.01; R = [100;
P = zeros(5,5);
for i=1:1000
P = Q + G1'*P*G1 -G1'*P*H1*inv(R+H1'*P*H1)*H1'*P*G1;
end
K1 = inv(R+H1'*P*H1)*H1'*P*G1;
[KK,PP = dlqr(G1,H1,Q,R); % K1=KK, P=PP
K = [KK(1) KK(2) KK(3) KK(4); KI = - KK(5);
% CALCULO DE LA GANANCIA DE UN OBSERVADOR
C = [1 0 0 0
0 0 1 0; % SE OBSERVAN POSICIONES ANGULAR Y LINEAL
Qe = [1 0
0 0
0 1000 0 0
0 0
0.9 0
0 0
0 1000; Re = [1 0;0 10;
Pe = zeros(4,4);

151

152

%
%


Control Optimo

for i=1:40
Pe = Qe + G*Pe*G' -G*Pe*C'*inv(Re+C*Pe*C')*C*Pe*G';
end
KeT = inv(Re+C*Pe*C')*C*Pe*G'; Ke=KeT';
[KKeT,PPe = dlqr(G',C',Qe,Re); KKe=KKeT';% Pe=PPe, Ke=KKe
SIMULACION DEL SISTEMA DE CONTROL OPTIMO
CONDICIONES INICIALES
x1=0; x2=0; x3=0; x4=0; x5=0;
xe = [0;0;0;0; r=1.5;
v=0; N = 4000;
% TIEMPO EN SEGUNDOS: Ts*N
for k=1:N
u = -K*xe + KI*v;
if(u > 1.4), u = 1.4; % PARA NO SATURAR EL SERVOMOTOR
elseif(u < -1.4), u = -1.4;
end
xe = G*xe + u*H + Ke*([x1;x3 - C*xe);
PROCESO NO LINEAL DISCRETIZADO DIRECTAMENTE
den = -M2^2* os(x1)^2+(M1+J2)*J1;
x1 = x1 + Ts*x2;
x2 = x2 + ...
Ts*(-M2^2*sin(x1)* os(x1)*x2^2+M2*Bx* os(x1)*x4 ...
+M2*(M1+J2)*g*sin(x1)-M2*Kx* os(x1)*KA*u)/den;
x3 = x3 + Ts*x4;
x4 = x4 + ...
Ts*(M2^2*g*sin(x1)* os(x1)+J1*M2*sin(x1)*(x2)^2 ...
-J1*Bx*x4+J1*Kx*KA*u)/den;
v = v + r - x3;
y1(k)=x1; y2(k)=x3; U(k) =u;
end
GRAFICOS
t = linspa e(0,Ts*N,N);
figure(1)
plot(t,y2(1:N)); grid
ylabel('Posi ion del arro')
xlabel('Tiempo
(s)')
print -deps -f spoz
figure(2)
plot(t,y1(1:N)); grid
ylabel('Posi ion angular del pendulo')
xlabel('Tiempo
(s)')
print -deps -f spoa
figure(3)
plot(t,U); grid


4.9 Control Optimo
Cuadrati o del Pendulo Invertido

153

ylabel('Se~nal de ontrol u')


xlabel('Tiempo
(s)')
print -deps -f spou
1.6
1.4
1.2

Posicin del carro

1
0.8
0.6
0.4
0.2
0
0.2
0

10
Tiempo

12

14

16

18

20

(s)

Figura 4.10: Simula ion del sistema pendulo invertido: posi ion del arro.
4.9.6 El Hardware del Sistema de Control

La gura 4.13 muestra los omponentes fsi os (el hardware) del sistema de
ontrol. Tales omponentes son: el pro eso a ontrolar (pendulo invertido
o grua-puente), los sensores de posi ion, el ampli ador de poten ia, la tarjeta de adquisi ion de datos Lab-PC+, y una omputadora personal on
mi ropro esador Pentium. El pro eso pendulo invertido (o grua-puente) se
muestra esquematizado en la gura 4.14 y omprende:
 Un servomotor D.C. Pittman de iman permanente de aproximadamente 350 rpm, que posee redu ion de velo idad interna y odi ador
opti o in orporado, uya opera ion expli aremos mas adelante.
 Dos poleas de radio igual a 6.48 m, una de las uales esta unida al
eje del motor y la otra, al otro extremo de un arril.
 Un arril de metal por donde se desliza el arro porta-pendulo.


Control Optimo

154
0.15

Posicin angular del pndulo

0.1

0.05

0.05

0.1
0

10
Tiempo

12

14

16

18

20

(s)

Figura 4.11: Simula ion del sistema pendulo invertido: posi ion angular del
pendulo.
0.7
0.6
0.5

Seal de control u

0.4
0.3
0.2
0.1
0
0.1
0.2
0

10
Tiempo

12

14

16

18

20

(s)

Figura 4.12: Simula ion del sistema pendulo invertido: se~nal de ontrol.


4.9 Control Optimo
Cuadrati o del Pendulo Invertido

155

COMPUTADORA
PERSONAL
TARJETA LAB-PC+
SALIDAS
ANALOGICAS

PA
COMPUERTAS
DIGITALES
DE ENTRADA
Y SALIDA

AMPLIFICADOR
PWM

DAC0
DAC1
PA0
..
.
PA7

16 bits

MUX
PB

PC

PB0
..
.
PB7

16 bits

PROCESO:

PENDULO
INVERTIDO /
GRUA PUENTE
SENSOR EN
EL MOTOR
SENSOR EN
LA VARILLA
SALIDAS

PC0
..
.
PC6
PC7
Fs

CONTADOR /
TEMPORIZADOR

OUTB0

Figura 4.13: Implementa ion del sistema de ontrol.


Control Optimo

156
SERVOMOTOR

PENDULO
POLEA

CARRO
CARRIL

Figura 4.14: Sistema pendulo invertido.


 Un arro de metal on uatro ruedas de bron e, el ual posee una junta

movil (para sujetar una varilla metali a por uno de sus extremos) y
un odi ador opti o in orporado (ver gura 4.15). El peso total del
arro es de 920 gr. El esquema del arro se muestra en la gura 4.16.
 Una varilla metali a de 70 m de largo y de 64 gr que ha e la fun ion
de pendulo.
Codificador optico

Polea
Alimentacion

Servomotor D.C

Reductor de
velocidad

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 ion, uno de los uales se en arga de medir la posi ion angular del motor y el otro se en arga de medir la


4.9 Control Optimo
Cuadrati o del Pendulo Invertido

157

Pendulo

Codificador

optico

Ruedas

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 numero determinado de
ranuras igualmente espa iadas y ubi adas en el permetro 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
o ptico
Eje del servomotor
Disco con
mascara

Figura 4.17: Codi ador opti o.


El pro eso de sensado es el siguiente. Al girar el dis o a la misma velo idad del servomotor (o a la misma velo idad de la varilla), las ranuras

158


Control Optimo

permiten el paso de luz a traves 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 numero 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
numeri 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 se~nales Clo k Up o Clo k Down, segun
sea positivo o negativo el sentido de giro del dis o (ver gura 5.14). Las
se~nales 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 uitera 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 se~nal proveniente de la omputadora personal (ver gura 4.13). En on lusion, 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 numero de pulsos
NP dados por los ontadores, podemos usar la siguiente rela ion:
 Para la varilla, posi ion angular de la varilla: (2=256)  NP .
 Para el motor, posi ion angular del eje del motor: (2=512)  NP
(antes de la redu ion).
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 esta 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. Tambien existe ir uitera adi ional para generar la tension de
disparo en ada onmutador Mosfet.


4.9 Control Optimo
Cuadrati o del Pendulo Invertido

4 bits
Puerto
digital
PA

Clock UP
74HC Clock Down
193

8 bits
4 bits

4 bits
Puerto
digital
PB

159

Canal A

74HC
193

74HC
193

LS7083

Canal B

8 bits
4 bits

74HC
193

Figura 4.18: Sensado de la posi ion.


La Tarjeta de Adquisi ion de Datos Lab-PC+

La tarjeta de adquisi ion de datos Lab-PC+ de National Instruments es la


interfaz empleada para el envo de la se~nal de ontrol y para la adquisi ion
de datos. La inter onexion de la tarjeta de adquisi ion 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 se~nal de reloj de la fre uen ia de muestreo Fs
generada por OUTB0.
{ bits 0,4,5 y 6: no usados.
 DAC0: enva la se~nal de ontrol.
 OUTB0: enva la se~nal 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 ion ade uada de la fre uen ia (o perodo) de muestreo. Tal
sele ion debe tomar en onsidera ion la respuesta deseada del sistema de
lazo errado y el tiempo que pueda tomar el programa para ha er todos
los al ulos ne esarios por ada lazo de ontrol (y para ada perodo de
muestreo). Los programas implementados tuvieron una dura ion promedio
por bu le de 430 s, lo que permite pro esar el sistema on fre uen ias de
muestreo de hasta 2,3 KHz.
Como regla pra ti a, podemos es oger un perodo de muestreo que sea
10 ve es menor que la dura ion de un i lo de os ila ion senoidal amortiguada de la se~nal de salida del sistema en lazo errado (para el aso de
respuesta subamortiguada). Para el aso de respuesta sobreamortiguada,
podemos es oger un perodo de muestreo 10 ve es menor que el tiempo de
levantamiento; es de ir, el tiempo trans urrido hasta que o urra el primer
ru e entre la se~nal de referen ia y la se~nal de respuesta del sistema. Si
asumimos ini ialmente que las respuestas a obtener deben poseer un tiempo
de levantamiento de un segundo, apli ando esta regla pra ti a, tendremos
que es oger un perodo de muestreo menor que 0,1 segundos; es de ir, una
fre uen ia mayor de 10 Hz. Tomando en uenta todas estas onsidera iones
se es ogio una fre uen ia de muestreo de Fs = 200 Hz, o lo que es lo mismo,
un perodo de muestreo de 5 ms.
4.9.7 Implementa ion del Software de Control

La implementa ion del algoritmo de ontrol se realiza en dos fases. En


la primera, se al ulan fuera de lnea (\o -line") la matriz de ganan ia de
realimenta ion de estados K y la matriz de ganan ia del observador Ke (empleando 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 librera de


4.9 Control Optimo
Cuadrati o del Pendulo Invertido

161

fun iones NI-DAQ [25, as omo tambien fun iones de le tura y es ritura
de puertos. El ar hivo FUNC PEN.H onsta de las siguientes fun iones:
 Con gurarHardware: ini ializa la tarjeta Lab-PC+, on gura los puertos y espe i a la fre uen ia del lo k de muestreo.
 EnviarVoltaje: restringe y enva voltajes al DAC0 del Lab-PC+.
 LeerSensor: adquiere datos de los puertos A y B de 8 bits ada uno
y olo a un 0 o un 1 en el segundo bit del puerto C, on el n de
sele ionar la le tura del sensor de la varilla o la del sensor del motor.
 NivelClo k: lee el bit 7 del puerto C y re ibe el lo k de muestreo de
OUTB0.
 ResetContadores: olo a un 1 o un 0 en el bit 3 del puerto C, on el
n de borrar el ontenido de los ontadores de los sensores.
El Programa de Control

El programa de ontrol se denomina PENDOI4.CPP. En el ambiente de trabajo de Borland C/C++, los ar hivos FUNC PEN.H, FUNC PEN.CPP y
PENDOI4.CPP forman en onjunto el proye to PENDOI4.PRJ. El programa PENDOI4.CPP omprende las partes siguientes:
1. Ini ializa ion
(a) Ini ializa ion de la tarjeta de adquisi ion de datos.
(b) Ini ializa ion de variables.
( ) Estable imiento de la posi ion ero del arro y de la varilla.
2. Bu le del algoritmo de ontrol
(a) Dete ion del an o de subida del lo k.
(b) Medi ion de las salidas.
( ) Observa ion de estados.
(d) Cal ulo y apli a ion de la se~nal de ontrol.
3. Alma enamiento de las respuestas.
El diagrama de ujo del programa se muestra en la gura 4.19. Los
programas implementados tuvieron una dura ion promedio por bu le de
430 s. A ontinua ion omentamos brevemente ada uno de los puntos
anteriores.


Control Optimo

162

INICIO
INMICIALIZA:
- TARJETA DE ADQUISICION DE DATOS
- VARIABLES

BORRA CONTADORES

ESTABLECIMIENTO DE LA POSICION
CERO DEL CARRO Y LA VARILLA

TIEMPO < TIEMPO LIMITE

NO

FIN

SI
DETECTA
FLANCO DE SUBIDA
DEL PULSO DE RELOJ

NO

SI
MIDE SALIDAS
ESTIMA ESTADOS
~
CALCULA SENAL DE CONTROL
~
COMPENSA SENAL DE CONTROL
~
ENVIA SENAL DE CONTROL
ACTUALIZA VARIABLES
ARCHIVA DATOS

Figura 4.19: Diagrama de ujo del programa de ontrol.


4.9 Control Optimo
Cuadrati o del Pendulo Invertido

163

Ini ializa ion de la Tarjeta de Adquisi ion de Datos

El hardware de la tarjeta Lab-PC+ se on gura on la fun ion para ini ializa ion Con gurarHardware(Fs), en donde se espe i a la fre uen ia de
muestreo Fs que debe generar.
Ini ializa ion 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 ion 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 ion verti al y ha ia arriba
(pendulo invertido) o ha ia abajo (grua-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 ion del Flan o de Subida del Clo k

Dete ta el an o de subida del lo k mediante la fun ion NivelClo k, lo que


nos indi a el omienzo de un nuevo perodo de muestreo.
Medi ion 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 ion angular de la varilla: (2=256)  NP .
 Para el motor, posi ion angular del eje del motor: (2=512)  NP
(antes de la redu ion).
Para la le tura de los sensores tenemos que tomar en uenta la satura ion
de los ontadores, los uales pueden guardar un valor maximo de 65535.
En el aso de la varilla, onsideraremos omo positivo los valores que
resulten de un re orrido horario, y negativo los que resulten de un re orrido
antihorario. Para este aso, los ontadores no llegano a saturarse, pues a
lo sumo la varilla podra tener un re orrido de 360 , lo que orresponde

164


Control Optimo

a un in remento de 256 puntos, valor bastante lejos del valor maximo del
ontador. El problema a resolver aqu es omo re ono er si nos en ontramos
ante un re orrido positivo o negativo justo uando el ontador omienza a
de rementar (partiendo de 0). Para resolver esta situa ion, onsideraremos
que estamos ante un valor negativo si el ontenido de los ontadores es
mayor que 32768 (la mitad del valor maximo que pueden ontener). Por
ejemplo, si obtenemos en el ontador un valor de 65534, y omo este es mayor
que 32768, enton es representa una posi ion negativa; su equivalente es:
(65536 65534) = 2. Luego, para obtener la posi ion angular ha emos:
2  2=256 rad. La rutina que realiza esta le tura esta dada por:
/*lee angulo Varilla*/
ontVa=LeerSensor(VARILLA);
ontVa=( ontVa>32768)?-1*(65536- ontVa): ontVa;
*y0= ontVa*(2.*PI/256.);

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 ion 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 rementos que se obtienen entre la le tura a tual y la le tura anterior de los
ontadores. Pero ademas, previamente debemos de dis ernir si el valor ledo
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 ion que debemos implementar para el observador de estados de


orden ompleto esta dada por la e ua ion (4.31):
x~ (k + 1) = Gx~ (k) + Hu(k) + Ke [y(k) C x~ (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 KeC ) en una sola variable que pueda ser al ulada fuera de
lnea (\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 ion 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;


Control Optimo

166
Cal ulo de la Se~nal de Control

Para el al ulo de la se~nal de ontrol utilizaremos las e ua iones (4.40) y


(4.42), a saber:
u(k) = Kx(k) + KI v(k)
v(k) = v(k 1) + r(k) y(k)
En el programa en odigo C utilizamos la siguiente nota ion:
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 esta dada por:
if(u <0)
if(u >0)
if(u==0)

v=-DeadZone;
v=+DeadZone;
v=0.;

Para apli ar la se~nal 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
#define
#define
#define
#define
#define

PI M_PI
IZQ 0
DER 1
VARILLA IZQ
MOTOR DER
A_RADIANES 2.*PI/512.

#define
#define
#define
#define
#define
#define
#define
#define

Nm 1/19.741
rp 0.0648
Fs 200.
Ts (1./Fs)
tsimul 60.
DeadZone 0.1
offset 2.29 //2.36
SP 1.5

float G_KeC[4[4,H[4;
float K[4,KI,Ke[4[2;
float r=0.;
float Xe[4={0,0,0,0},Xe_a[4={0,0,0,0};
float y0,y1;
float u=0.;
void ini ializaMatri es()
{

170


Control Optimo

har ruta[="C:\\user\\leonardo\\datos\\pendoi.dat";
int i,j;
FILE *pfi hero;
pfi hero=fopen(ruta,"rt");
if (pfi hero == NULL) printf("No se puede abrir\n");
for(i = 0;i <= 3;i++)
{
for(j = 0;j <= 3;j++)
fs anf(pfi hero,"%f",&G_KeC[i[j);
}
for(i = 0;i <= 3;i++)
fs anf(pfi hero,"%f",&H[i);
for(i = 0;i <= 3;i++)
fs anf(pfi hero,"%f",&K[i);
fs anf(pfi hero,"%f",&KI);
for(i = 0;i <= 3;i++)
{
for(j = 0;j <= 1;j++)
fs anf(pfi hero,"%f",&Ke[i[j);
}
f lose(pfi hero);
Xe[0 = 0.; Xe[1 = 0.; Xe[2 = 0.; Xe[3 = 0.;
lrs r();
for(i = 0;i <= 3;i++)
{
for(j = 0;j <= 3;j++)
printf("%f ",G_KeC[i[j);
printf("%f\n",G_KeC[i[3);
}
for(i = 0;i <= 3;i++)
printf("%f\n",H[i);
for(i = 0;i <= 3;i++)
printf("%f\t",K[i);
printf("\n%f",KI);
printf("\n");
for(i = 0;i <= 3;i++)
{
for(j = 0;j <= 1;j++)
printf("%f\t",Ke[i[j);


4.9 Control Optimo
Cuadrati o del Pendulo Invertido
printf("\n");
}
}
void MideSalidas(float *y0,float *y1)
{
stati float y1_ant = 0.;
stati unsigned ontC_ant = 0;
unsigned ontVa, ontC_a t;
int ontVa1;
/*lee angulo Varilla*/
ontVa = LeerSensor(VARILLA);
ontVa1 = ( ontVa>32768) ? -1*(65536- ontVa): ontVa;
*y0 = ontVa1*(2.*PI/256.); //angulo de la varilla en radianes
/*lee posi ion del arro*/
ontC_a t = LeerSensor(MOTOR);
if( ontC_a t < ontC_ant)
{
if(( ontC_ant- ontC_a t) > 32768)
*y1 = y1_ant+(65536- ontC_ant+ ontC_a t)*A_RADIANES*Nm*rp;
else
*y1 = y1_ant-( ontC_ant- ontC_a t)*A_RADIANES*Nm*rp;
}
else
{
if(( ontC_a t- ontC_ant) > 32768)
*y1 = y1_ant-(65536- ontC_a t+ ontC_ant)*A_RADIANES*Nm*rp;
else
*y1 = y1_ant+( ontC_a t- ontC_ant)*A_RADIANES*Nm*rp;
}
ontC_ant= ontC_a t;
y1_ant=*y1;
}
void EstimaEstados(float X0,float X2)
/*re ibe X0 y X2 y en uentra Xe[*/
{
/*X1~(k) = Xe_a t[0
X1~(k-1) = Xe_ant[0
X2~(k) = Xe_a t[1
X2~(k-1) = Xe_ant[1
X3~(k) = Xe_a t[2
X3~(k-1) = Xe_ant[2
X4~(k) = Xe_a t[3
X4~(k-1) = Xe_ant[3*/

171

172
stati float Yant[={0.,0.};
float G_KeCX[4, KeYant[4, S = 0.;
int i, j, p;
/* al ula G_KeC*X */
for(i = 0;i <= 3;i++)
{ S = 0.;
for(p = 0;p <= 3;p++)
S = G_KeC[i[p*Xe[p+S;
G_KeCX[i = S;
}
/* al ula KeYant*/
for(i = 0;i <= 3;i++)
{ S=0.;
for(p = 0;p <= 1;p++)
S = Ke[i[p*Yant[p+S;
KeYant[i = S;
}
/* al ula Xe(K+1)[i*/
for(i = 0;i <= 3;i++)
Xe[i = G_KeCX[i+H[i*u+KeYant[i;
Yant[0 = X0;
Yant[1 = X2;
}
/* ompensa fri ion estati a y de oulomb*/
onst float Wth = .1;
onst float V FE = .2,V FC = .15;
float CompensaFri ion(float u,float vel)
{
float volt = 0.;
if(fabs(vel) <= Wth)
{/* ompensa fri ion estati a*/
if(u < 0.) volt = -V FE;
if(u > 0.) volt = V FE;
}
else
{ /* ompensa fri ion de oulomb*/
if (u <0.) volt = -V FC;
if (u >0.) volt = V FC;


Control Optimo


4.9 Control Optimo
Cuadrati o del Pendulo Invertido
}
return (u+volt);
}
void main()
{
ini ializaMatri es();
float vel, yant, ya t;
har te la;
unsigned har k_ant, k_a t;
int n, k;
float t;
int ;
float V,V_ant = 0.;
float u_1 = 0., u_2 = 0., u_3 = 0., u_4 = 0., v = 0.;
n=(int) tsimul/Ts;
har tiempo[ =" :\\user\\leonardo\\datos\\pendnio.t" ;
har theta_[ =" :\\user\\leonardo\\datos\\pendnio.th";
har v_vara[ =" :\\user\\leonardo\\datos\\pendnio.vv";
har z_ arro[ =" :\\user\\leonardo\\datos\\pendnio.z" ;
har v_ arro[ =" :\\user\\leonardo\\datos\\pendnio.v ";
har sal_var[ =" :\\user\\leonardo\\datos\\pendnio.y0";
har sal_ ar[ =" :\\user\\leonardo\\datos\\pendnio.y1";
har
U_[ =" :\\user\\leonardo\\datos\\pendnio.u";
float *u_, *x1_, *x2_, *x3_, *x4_;/**/float *y_0_, *y_1_;
FILE *pfi hero;
assert(NULL! = (u_ =(float*) allo (n+1,sizeof(float))));
assert(NULL! = (x1_=(float*) allo (n+1,sizeof(float))));
assert(NULL! = (x2_=(float*) allo (n+1,sizeof(float))));
assert(NULL! = (x3_=(float*) allo (n+1,sizeof(float))));
assert(NULL! = (x4_=(float*) allo (n+1,sizeof(float))));
assert(NULL! = (y_0_=(float*) allo (n+1,sizeof(float))));
assert(NULL! = (y_1_=(float*) allo (n+1,sizeof(float))));
if((te la=get h()) == 27) goto FIN;
ConfigurarHardware(Fs);
EnviarVoltaje(offset);
lrs r();

173


Control Optimo

174

printf("1) Ubi ar el arro en el entro del arril\n4) Ubi ar la varilla en posi ion verti al y mantenerla asi hasta presionar F1\n");
while(((te la = get h()) != 59) && (te la != 27)) ;
if(te la == 27) goto FIN;
ResetContadores();
printf("\n\nColo ar la varilla en la posi ion ini ial deseada\n
Presionar F2 para omenzar el ontrol\n");
do
{
while(!kbhit())
{
MideSalidas(&y0,&y1);
gotoxy(5,10); printf("varilla en radianes: %f",y0);
gotoxy(5,11); printf("varilla en grados : %f",y0*180./PI);
}
}
while(((te la = get h()) != 60)&&(te la != 27));
if(te la == 27) goto FIN;
t = 0.; u =
for(k = 0;k
{
if(kbhit())
{
if((te la =
if(te la ==
}

0.; r = 0.;
<= n;)

get h()) == 27) break;


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
gotoxy(5,17);printf(" arro

175

en metros : %f",y1);

EstimaEstados(y0,y1);
/*En uentra Control*/ /*u(k+1)*/
V = V_ant+r-Xe[2; V_ant = V;//a ion integral
u = KI*V-K[0*Xe[0-K[1*Xe[1-K[2*Xe[2-K[3*Xe[3;
/*satura ion*/
if(u < -1.4) u = -1.4;
if(u > 1.4) u = 1.4;
vel = (ya t-yant)/Ts/rp;//Xe_a t[3/rp;
/*Compensa zona muerta*/
if(u < 0) v = -DeadZone;
if(u > 0) v = +DeadZone;
if(u == 0)v = 0.;
EnviarVoltaje(u+v+offset);
/*guarda datos en arrays*/
u_[k = u;
x1_[k = Xe[0;
x2_[k = Xe[1;
x3_[k = Xe[2;
x4_[k = Xe[3;
y_0_[k = y0;
y_1_[k = y1;
k++;t += Ts;
}
}
FIN:
EnviarVoltaje(offset);
/*guarda tiempo*/
pfi hero = fopen(tiempo,"wb");
if (pfi hero == NULL) printf("\nNo se puede abrir %s\n",tiempo);
else
{
for(k = 0;k<n+1;k++)
{
t = k*Ts;
= fwrite(&t,sizeof(float),1,pfi hero);
}
f lose(pfi hero);

176


Control Optimo

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 se~nal de referen ia


es alon de 1.5 m para la posi ion 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 se~nal de realimenta ion del servosistema, sigue a la se~nal de referen ia
en menos de 6 segundos y on sobreamortiguamiento mnimo, tal omo
estaba propuesto en las espe i a iones de dise~no del sistema de ontrol. La
posi ion angular del pendulo 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 pendulo, la presen ia de una os ila ion
esta ionaria ( i lo lmite) que podra redu irse usando sensores mas pre isos


Control Optimo

178
posicin del carro (medicin directa)
2

posicin (m)

1.5

0.5

0.5
0

10
12
tiempo (s)

14

16

18

20

Figura 4.20: Control optimo del pendulo invertido: posi ion del arro.
ngulo del pndulo (medicin directa)
0.5
0.4
0.3

ngulo (rad)

0.2
0.1
0
0.1
0.2
0.3
0.4
0.5
0

10
12
tiempo (s)

14

16

18

20

Figura 4.21: Control optimo del pendulo invertido: posi ion angular del
pendulo.


4.10 Control Optimo
Cuadrati o de la Grua-Puente

179

entrada
1.5

entrada (v)

0.5

0.5

1.5
0

10
12
tiempo (s)

14

16

18

20

Figura 4.22: Control optimo del pendulo invertido: se~nal de ontrol.


( on un tama~no 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 dise~nado responde en forma ade uada para desvia iones
de la posi ion de la varilla de hasta  20o , lo que esta bastante fuera de la
zona lineal impuesta por el modelo.
4.10


Control Optimo
Cuadrati o de la Gr
ua-Puente

En esta se ion nos o upamos del dise~no del ontrol optimo uadrati o del
pro eso grua-puente empleando el pro edimiento de dise~no presentado en la
se ion 4.8.
4.10.1 Formula ion del Problema

Dado el sistema grua-puente, onformado por una varilla que uelga libremente de un arro impulsado por un servomotor D.C. ontrolado por su
voltaje de armadura, se desea dise~nar un servo ontrolador que sea apaz
de trasladar al arro a una posi ion determinada, de forma tal que la os-

180


Control Optimo

ila ion en la varilla sea mnima. El problema en onsidera ion es de dos


dimensiones, dado que la varilla se balan ea en el mismo plano que la traye toria del arro. El dise~no del sistema de ontrol esta basado en la teora de
ontrol optimo uadrati o. La entrada al pro eso (la se~nal de ontrol) es
el voltaje de armadura del servomotor D.C. y las salidas del servosistema
son la posi ion angular del pendulo y la traye toria horizontal del arro. Se
desea un tiempo de estabiliza ion de la posi ion del arro de aproximadamente 6 segundos on el menor sobreimpulso posible. Cabe anotar que para
al anzar las espe i a iones de dise~no planteadas, se requiere sele ionar
ade uadamente las matri es de pondera ion.
4.10.2 Simula ion del Sistema Controlado

La determina ion del modelo matemati o del pro eso grua-puente se trato
on amplitud en la se ion 3.2. Para una fre uen ia de muestreo de 200 Hz
y asumiendo reten ion de memoria de orden ero, y siguiendo el pro edimiento desarrollado en las subse iones 4.9.2, 4.9.3, 4.9.4 y 4.9.5, el siguiente
programa disopt3.m determina el modelo lineal dis reto, al ula las matri es de ganan ia del ontrolador optimo y del observador optimo, y simula
el sistema de ontrol para la grua puente. Cabe re al ar que la simula ion
emplea el modelo no lineal de la planta. Los resultados se muestran a ontinua ion del programa y los resultados gra os se ilustran en las guras
4.23, 4.24 y 4.25.
% disopt3.m SISTEMA DE CONTROL OPTIMO PARA LA GRUA-PUENTE
lear all
% PARAMETROS DEL PROCESO
m = 0.92; me = 0; mv = 0.063095; mp = 0.2; g = 9.81;
lv = 0.767; le = 0; rp = 0.0648; n = 1/19.741;
Jm = 1.9596e-6;
Je = me*le^2; Jv = mv*lv^2/3; Jo = 0; Jp = mp*rp^2/2;
Jeq = Jm + n^2*(Jo + Jp);
Bm = 1.8342e-6; Bo =0; Beq = Bm + n^2*Bo;
Km = 31.071e-3; Kb = 31.053e-3; Ra = 7.38; KA = 14.9;
M1 = m + me + mv; M2 = me*le + mv*lv/2;
J1 = Je + Jv; J2 = Jeq/(n^2*rp^2);
Kx = Km/(Ra*n*rp);
Bx = Beq/(n^2*rp^2) + Kb*Km/(n^2*rp^2*Ra);
d = ((M1+J2)*J1-M2^2);
a21 = -(M1+J2)*M2*g/d; a24 = -Bx*M2/d;
a41 = -M2^2*g/d; a44 = -J1*Bx/d;
b21 = Kx*M2*KA/d; b41 = J1*Kx*KA/d;
% MODELOS LINEALES CONTINUO Y DISCRETO


4.10 Control Optimo
Cuadrati o de la Grua-Puente
A = [0 1 0 0
a21 0 0 a24
0 0 0 1
a41 0 0 a44;
B = [0
b21
0
b41;
C = [0 0 1 0; % POSICION DEL CARRO
Ts = 1/200;
% TIEMPO DE MUESTREO
[G,H = 2d(A,B,Ts);
G1 = [G zeros(4,1)
-C *G 1;
H1 = [H;-C *H;
M = [H1 G1*H1 G1^2*H1 G1^3*H1 G1^4*H1;
rM = rank(M); % rM=5 => COMPLETAMENTE CONTROLABLE
% CALCULO DE LA GANANCIA DEL CONTROLADOR
Q = [500 0 0 0 0
0 0 0 0 0
0 0 200 0 0
0 0 0 0 0
0 0 0 0 0.1; R = [1;
P = zeros(5,5);
for i=1:1000
P = Q + G1'*P*G1 -G1'*P*H1*inv(R+H1'*P*H1)*H1'*P*G1;
end
K1 = inv(R+H1'*P*H1)*H1'*P*G1;
[KK,PP = dlqr(G1,H1,Q,R); % K1=KK, P=PP
K = [KK(1) KK(2) KK(3) KK(4); KI = - KK(5);
% CALCULO DE LA GANANCIA DEL OBSERVADOR
C = [1 0 0 0
0 0 1 0; % SE OBSERVAN POSICIONES ANGULAR Y LINEAL
Qe = [1000 0
0 0
0
1500 0 0
0
0
100 0
0
0
0 1500; Re = [1 0;0 1;
Pe = zeros(4,4);
for i=1:200
Pe = Qe + G*Pe*G' -G*Pe*C'*inv(Re+C*Pe*C')*C*Pe*G';
end
KeT = inv(Re+C*Pe*C')*C*Pe*G'; Ke=KeT';
[KKeT,PPe = dlqr(G',C',Qe,Re); KKe=KKeT'; % Pe=PPe, Ke=KKe
% CONDICIONES INICIALES PARA LA SIMULACION

181

182


Control Optimo

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

0:9998
0:0972
0:0000
0:0019

G=6
4

0:0050
0
0:9998
0
0:0000 1:0000
0:0000
0

C=
2
6
6

G~ = 6
6
4

1:0002
0:0995
0:0000
0:0019
0:0000

0:0050
1:0002
0:0000
0:0000
0:0000
2
6
6

P~ = 104  6
6
4

K=

0
0
1:0000
0
1:0000

1:9636
0:2257
3:3116
0:4202
0:0300

8:2596

0:0002
0:0941
0:0049
0:9508

7
7;
5

H =6
4

0:0002
0
0:0963
0
0:0049
0
0:9508
0
0:0049 1:0000
3:3116
0:7068
8:5186
1:4030
0:0745

~ = K
K

KI

Ke = 6
4

3
7
7
7;
7
5

0:4202
0:2891
1:4030
0:5668
0:0061

3
7
7
5

6
6

~ =6
H
6
4

0:0004
0:1497
0:0002
0:0765
0:0002

0:0300
0:0030
0:0745
0:0061
0:0013

3
7
7
7
7
5

3
7
7
7
7
5

4:3465 37:9206 10:3665;


1:0102
2:1836
0:0005
0:0982

0:0004
0:1462
0:0002
0:0765

0 0 1 0

0:2257
0:1481
0:7068
0:2891
0:0030

183

0:0055
1:1280
0:9936
0:6519

KI = 0:2907

3
7
7
5

4.10.3 El Hardware y el Software del Sistema de Control

La implementa ion del hardware, as omo el dise~no del software del sistema
de ontrol, fueron tratadas en las subse iones 4.9.6 y 4.9.7, respe tivamente.
Cabe anotar que el hardware del sistema y la estru tura del software es
omun, tanto para el pendulo invertido omo para la grua-puente. Basta
ambiar de signo en algunas senten ias del ar hivo PENDOI4.CPP (des rito
en la subse ion 4.9.7) para rear el software de ontrol del pro eso gruapuente.


Control Optimo

184
1.8
1.6
1.4

Posicin del carro

1.2
1
0.8
0.6
0.4
0.2
0
0

10
Tiempo

12

14

16

18

20

(s)

Figura 4.23: Simula ion del sistema grua-puente: posi ion del arro.
0.5

Posicin angular de la gra puente

0.4
0.3
0.2
0.1
0
0.1
0.2
0.3
0.4
0

10
Tiempo

12

14

16

18

20

(s)

Figura 4.24: Simula ion del sistema grua-puente: posi ion angular de la
varilla.


4.10 Control Optimo
Cuadrati o de la Grua-Puente

185

1.4

1.2

Seal de control u

0.8

0.6

0.4

0.2

0.2
0

10
Tiempo

12

14

16

18

20

(s)

Figura 4.25: Simula ion del sistema grua-puente: se~nal de ontrol.


posicin del carro (medicin directa)
2

posicin (m)

1.5

0.5

0.5
0

10
12
tiempo (s)

14

16

18

20

Figura 4.26: Control optimo de la grua-puente: posi ion del arro.


Control Optimo

186
ngulo de la varilla (medicin directa)
0.6

0.4

ngulo (rad)

0.2

0.2

0.4

0.6
0

10
12
tiempo (s)

14

16

18

20

Figura 4.27: Control optimo de la grua-puente: posi ion angular del


pendulo.
entrada
1.5

entrada (v)

0.5

0.5

1.5
0

10
12
tiempo (s)

14

16

18

20

Figura 4.28: Control optimo de la grua-puente: se~nal de ontrol.

4.11 Problemas Resueltos

187

4.10.4 Resultados experimentales

Los resultados experimentales que se muestran a ontinua ion se obtuvieron


on una se~nal de referen ia es alon de 1.5 m para la posi ion del arro.
Los resultados del ontrol optimo uadrati o del sistema grua-puente on
observador de orden ompleto se muestran en las guras: 4.26, 4.27 y 4.28.
Como en el aso del pendulo invertido, en los resultados experimentales
se observa que la posi ion del arro, que es la se~nal de realimenta ion del
servosistema, sigue a la se~nal de referen ia en menos de 6 s y on sobreamortiguamiento moderado, tal omo estaba propuesto en las espe i a iones de
dise~no del sistema de ontrol. La posi ion angular del pendulo logra estabilizarse 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 variables no salgan de la zona lineal impuesta por el modelo lineal. Sin embargo, se omprobo que el sistema de ontrol dise~nado 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 aptulos 4 al 8, la solu ion a los


problemas se en uentra, segun el aso, en uno o mas ar hivos on extension
m es ritos en odigo MATLAB.
Problema 4.1

El problema 3.1 presenta las e ua iones que gobiernan la dinami a del sistema de suspension de un bus (ver gura 3.12). Dise~nar un sistema de
ontrol optimo uadrati o esta ionario para lograr el objetivo de ontrol siguiente: la salida del pro eso y = x2 x1 (referen ia nula) no debe presentar
sobreimpulsos mayores que el 5 %, y luego de alrededor de 20 segundos, las
os ila iones originadas por un disturbio es alon de 10 m (provo ada por
imperfe iones en la pista), pra ti amente deben desapare er. La sele ion
del tiempo de muestreo es a onvenien ia del dise~no.
% p3opt2.m SOLUCION DEL PROBLEMA 4.1
lear all
% PARAMETROS DEL PROCESO
m1 = 2500; k1 = 80000; b1 = 350;
m2 = 320; k2 = 500000; b2 = 15020;

188

%
%


Control Optimo

a23 = (b1/m1)*(b1/m1+b1/m2+b2/m2)-k1/m1;
a33 = -(b1/m1+b1/m2+b2/m2);
a43 = -(k1/m1+k1/m2+k2/m2);
MODELO LINEAL: dx/dt = A*x + B*u + E*d; y = C*x + D*u
A = [0
1 0
0
-b1*b2/(m1*m2) 0 a23 -b1/m1
b2/m2
0 a33 1
k2/m2
0 a43 0;
B = [0;1/m1;0;(1/m1+1/m2);
E = [0;b1*b2/(m1*m2);-b2/m2;-k2/m2;
C = [0 0 1 0; D = [0;
CONVERSION AL ESPACIO DE ESTADO DISCRETO
T=0.8; % TIEMPO DE MUESTREO
[G,H,C,D = 2dm(A,B,C,D,T,'zoh');
[G,F,C,D = 2dm(A,E,C,D,T,'zoh');
Contro Optimo del sistema
Q = [1 0 0 0
0 1 0 0
0 0 1 0
0 0 0 1;
R = [1;
ECUACION DE RICCATI
P = diag(0,3); % MATRIZ DE CEROS DE ORDEN 4
for i = 1:40
P = Q + G'*P*G - G'*P*H*inv(R+H'*P*H)*H'*P*G;
end
CALCULO DE LA MATRIZ DE GANANCIA K
K = inv(R+H'*P*H)*H'*P*G;
SIMULACION DEL SISTEMA CONTROLADO
N = 200; x=[0;0;0;0; w=0.01;
for k=1:N
U=-K*x;
x = G*x + H*U + F*w;
y(k)=x(3); u(k)=U;
end
GRAFICOS
t=linspa e(0,N*T,N);
subplot(2,1,1)
plot(t,y(1:N)), grid
ylabel('Posi ion y (m)')
xlabel('Tiempo en segundos')
subplot(2,1,2)
plot(t,u(1:N)), grid

4.11 Problemas Resueltos

189

xlabel('Tiempo en segundos')
ylabel('Control u (N)')
print -deps -f p3opt2
3

Posicin y (m)

x 10

10
0

20

40

60
80
100
Tiempo en segundos

120

140

160

20

40

60
80
100
Tiempo en segundos

120

140

160

Control u (N)

x 10

0.8
0.6
0.4
0.2
0
0

Figura 4.29: Salida ontrolada y = x1


dientes al problema 4.1.

x2 y fuerza de ontrol u orrespon-

Problema 4.2

El problema 3.2 presenta las e ua iones que gobiernan la dinami a longitudinal de un avion omer ial volando a velo idad de ru ero (altura y velo idad
onstantes). El ontrol del angulo de in lina ion  del avion (ver gura 3.14)
es un problema longitudinal a resolver. El objetivo de ontrol es dise~nar un
autopiloto que manipulando el angulo e del de e tor de eleva ion, ontrole
el angulo de in lina ion del avion.
Se pide dise~nar un sistema de ontrol optimo uadrati o esta ionario que
genere una fuerza de ontrol, de modo que la salida del pro eso (el angulo
de in lina ion ) presente un sobreimpulso menor al 10 % y un tiempo de

190


Control Optimo

estabiliza ion menor que 3 s, on error en estado estable nulo. La sele ion
del tiempo de muestreo es a onvenien ia del dise~no.
% p4opt2 SOLUCION DEL PROBLEMA 4.2
lear all
% ECUACION DE ESTADO DEL PROCESO
A=[-0.313 56.7 0;-0.0139 -0.426 0;0 56.7 0;
B=[0.232;0.0203;0;
C=[0 0 1; D=[0;
% PROCESO DISCRETO
T=0.1; % TIEMPO DE MUESTREO
[num1, den1=ss2tf(A,B,C,D);
[G,H= 2d(A,B,T);
[Bz,Az=ss2tf(G,H,C,D);
% CONTROL OPTIMO ESTACIONARIO CON ACCION INTEGRAL
G1 = [G zeros(3,1);-C*G 1;
H1 = [H;-C*H;
% INGRESO DE PESOS
Q = [1 0 0 0
0 1 0 0
0 0 1 0
0 0 0 1 ;
R = [1;
% EQUACION DE RICCATI
P = diag(0,3);
for i = 1:40
P = Q + G1'*P*G1 - G1'*P*H1*inv(R+H1'*P*H1)*H1'*P*G1;
end
% CALCULO DE LA GANACIA K DEL CONTROLADOR
KK = inv(R+H1'*P*H1)*H1'*P*G1;
K = [KK(1) KK(2) KK(3);
KI = -KK(4);
% SIMULACION
N = 100; x=[0;0;0; v=0; Y=0;
for k=1:N
r(k)=0.1; Ref=r(k);
v = v + Ref - Y;
U = - K*x + KI*v;
x = G*x + H*U;

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

Inclinacin (rad)

0.15

0.1

0.05

Angulo del deflector (rad)

0
0

4
5
6
Tiempo en segundos

10

4
5
6
Tiempo en segundos

10

0.2
0.15
0.1
0.05
0
0.05
0

Figura 4.30: A ngulo de in lina ion  ontrolada y angulo del de e tor (se~nal
de ontrol) orrespondientes al problema 4.2.

192


Control Optimo

Problema 4.3

En el problema 3.3 se des ribe el pro eso de la bola rodando a lo largo


de una barra, on un grado de libertad, tal omo se muestra en la gura
3.16. Una leva one ta la barra on un engranaje que esta a ionado por
un servomotor. Se desea dise~nar un sistema de ontrol optimo que pueda
posi ionar la bola en menos de 5 s a 0.5 m de un extremo de la barra que
mide 1 m de longitud. Las os ila iones de la bola deben estar restringidas
sobre la barra y el voltaje de ontrol no debe sobrepasar los  40 volt. La
sele ion del tiempo de muestreo es a onvenien ia del dise~no.
% p5opt2.m SOLUCION DEL PROBLEMA 4.3
lose all
% DETERMINACION DE LA ECUACION DE ESTADO
M=0.11; R=0.015; g=9.8; L=1; J=9.99*1e-6; d=0.03;
A=[0 1 0
0
0 0 (M*g*d)/(L*(J/R^2 + M)) 0
0 0 0
1
0 0 0
0;
B=[0;0;0;1;
C=[1 0 0 0; D=[0;
% PROCESO DISCRETO
T=0.1; % Tiempo de muestreo
[num1, den1=ss2tf(A,B,C,D);
[G,H= 2d(A,B,T);
% DETERMINAR SI EL PROCESO TIENE INTEGRADORES,
% ES DECIR, SI TIENE EIGENVALORES EN z=0:
% eigG = eig(G); % NO TIENE EIGENVALORES EN z=0;
% ADICIONANDO ACCION INTEGRAL
G1 = [G zeros(4,1);-C*G 1;
H1 = [H;-C*H;
% ANALIZAMOS SI LA PLANTA ES CONTROLABLE
M=[H1 G1*H1 G1^2*H1 G1^3*H1 G1^4*H1;
rM=rank(M); % rM=4 SISTEMA ES CONTROLABLE
% CALCULO DE LA GANANCIA DEL CONTROLADOR
Q = [1
0
0 0
0
0
1
0 0
0
0
0
1 0
0
0
0
0 1
0
0
0
0 0
1e5;
R = [10;%100
% OBTENEMOS LA GANANCIA DEL CONTROLADOR APLICANDO dlqr
[KK,P=dlqr(G1,H1,Q,R);
K = [KK(1) KK(2) KK(3) KK(4);

4.11 Problemas Resueltos

193

KI = -KK(5);
% SIMULACION
N = 100; x=[0;0;0;0; v=0; Y=0;
for k=1:N
r(k)=0.5; Ref=r(k);
v = v + Ref - Y;
U = - K*x + KI*v;
x = G*x + H*U;
Y = C*x;
y(k) = Y; u(k) = U;
end
% GRAFICOS
t=linspa e(0,N*T,N);
subplot(2,1,1)
plot(t,y(1:N)), grid
ylabel('Posi ion (m)')
xlabel('Tiempo en segundos')
subplot(2,1,2)
plot(t,u(1:N)), grid
xlabel('Tiempo en segundos')
ylabel('Voltaje de ontrol')
print -deps -f p5opt2

Problema 4.4

La gura 3.20 muestra un monorriel de dos arros des rito en el problema


3.5. El problema a resolver es el ontrol de velo idad del arro de maquinas
mediante un sistema de ontrol optimo uadrati o. Para garantizar a los
pasajeros un viaje onfortable, los ambios de velo idad deben realizarse
on un tiempo de estabiliza ion menor que 10 segundos y on mnimo sobreimpulso. El error en estado estable debe ser nulo. Simule una se~nal
de referen ia que ambie la velo idad de 30 a 10 m/s y demuestre que se
umplen las espe i a iones de dise~no. La sele ion del tiempo de muestreo
es a onvenien ia del dise~no.
% p7opt2 SOLUCION DEL PROBLEMA 4.4
lose all
% PARAMETROS DEL PROCESO:
M1=1300; M2=2600; M3=2600; K12=100000; K23=100000;
B12=500; B23=500; B1=5000; B2=10000; B3=10000;
% MODELO DEL PROCESO
A=[0
1
0
0
0
0
-K12/M1 -(B1+B12)/M1 K12/M1 B12/M1 0
0


Control Optimo

194

Posicin (m)

0.6

0.4

0.2

0
0

4
5
6
Tiempo en segundos

10

4
5
6
Tiempo en segundos

10

Voltaje de control

40
20
0
20
40
0

Figura 4.31: Posi ion de la bola y el voltaje de ontrol para el problema 4.3.
0
0
0
1
0
0
K12/M2 B12/M2 -(K12+K23)/M2 -(B2+B23+B12)/M2 K23/M2 B23/M2
0
0
0
0
0
1
0
0 K23/M3 B23/M3 -K23/M3 -(B3+B23)/M3;
B=[0 1 0 0 0 0';
alfa = 1; % CONSTANTE TACOMETRICA
C=[ 0 alfa
0 0 0 0
0
0
0 alfa 0 0
0
0
0
0 0 alfa;
D=[0;0;0;
[num ,den =ss2tf(A,B,C,D);
% MODELO LINEAL DISCRETO
T = 0.2; % perodo de muestreo
[G,H,C,D= 2dm(A,B,C,D,T,'zoh');
% ADICIONANDO ACCION INTEGRAL
G1 = [G zeros(6,1);-C(1,:)*G 1;
H1 = [H;-C(1,:)*H;
% CALCULO DE LA GANANCIA DEL CONTROLADOR
Q = [1
0
0
0
0 0
0
0
1
0
0
0 0
0
0
0
1
0
0 0
0

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 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 (el
ampli ador de poten ia), la se~nal de ontrol debe estar dentro del rango de
 200 volt. Dise~nar un sistema de ontrol optimo uadrati o esta ionario
de posi ion que umpla las espe i a iones pedidas. La sele ion del tiempo
de muestreo es a onvenien ia del dise~no.


Control Optimo

196

Velocidad (m/s)

30
25
20
15
10
5
0

10

20

30

40
50
60
Tiempo en segundos

70

80

90

100

10

20

30

40
50
60
Tiempo en segundos

70

80

90

100

Fuerza de control (N)

600

400

200

0
0

Figura 4.32: Velo idad del arro de maquinas y la fuerza de ontrol para el
problema 4.4.
% p8opt2.m SOLUCION DEL PROBLEMA 4.5
lear all
% MODELO CONTINUO DE LA PLANTA
A=[-0.2 0 0 0
1 0 0 0
2 0 -2 0
5 0 0 -5;
B=[10e-3; 0; 0; 0; C=[0 1 0 0 ; D=[0;
% MODELO LINEAL DISCRETO
T = 0.2; % PERIODO DE MUESTREO
[G,H,C,D= 2dm(A,B,C,D,T,'zoh');
G1 = [G zeros(4,1);-C*G 1;
H1 = [H;-C*H;
% INGRESO DE PESOS
Q = [1 0 0 0 0
0 100 0 0 0
0 0 1 0 0
0 0 0 1 0
0 0 0 0 3;
R = [0.01;
% ECUACION DE RICCATI

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 identi os olo ados en as ada. La se ion
horizontal A=9 m2 de ada tanque es onstante. El objetivo de ontrol es


Control Optimo

198

Posicin (m)

4
2
0
2
4
0

10

15
20
25
Tiempo en segundos

30

35

40

10

15
20
25
Tiempo en segundos

30

35

40

Voltaje de control

100

100

200
0

Figura 4.33: Posi ion 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 derivo en el ejemplo 2.1. Dise~nar 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 3estable. El ujo de entrada (la se~nal de ontrol) no debe sobrepasar
los 3 m /s. La sele ion del tiempo de muestreo es a onvenien ia del dise~no.
% 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 problema 3.8. Dise~nar un sistema de ontrol optimo uadrati o esta ionario


Control Optimo

200
4

Nivel (m)

3
2
1
0
0

10

15
20
25
Tiempo en segundos

30

35

40

10

15
20
25
Tiempo en segundos

30

35

40

Flujo de control (m^3/s)

1.5

0.5

0
0

Figura 4.34: Nivel ontrolado H2 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


[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

201


Control Optimo

202
ylabel('Velo idad (rad/s)')
xlabel('Tiempo en segundos')
subplot(2,1,2)
plot(t,u(1:N)), grid
xlabel('Tiempo en segundos')
ylabel('Voltaje de ontrol')
print -deps -f p11opt2

Velocidad (rad/s)

10
5
0
5
10
0

10

15
20
Tiempo en segundos

25

30

10

15
20
Tiempo en segundos

25

30

Voltaje de control

40
20
0
20
40
60
0

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 mnimo de la fun ion de osto des rita en la e ua ion
4.11):
NX1 

1
1
T
J = x (N )Sx(N ) +
xT (k)Qx(k) + uT (k)Ru(k)
2
2 k=0

4.12 Problemas Propuestos

203

esta dada por la expresion:

1
2
donde los argumentos nulos representan el tiempo dis reto nulo ini ial.
Jmin = xT (0)P (0)x(0)

Problema 4.9

Las e ua iones del modelo linealizado para ontrolar la posi ion del a~non
montado en la torreta de un tanque (ver gura 3.28) empleando un a tuador
hidrauli o se detallan en el problema 3.9.
(a) Dise~nar un sistema de ontrol optimo esta ionario para ontrolar el
angulo de eleva ion  on las espe i a iones siguientes: tiempo de
estabiliza ion menor de 2 s, sobreimpulso y error en estado esta ionario
nulos. Los disturbios tipo es alon pueden a tuar simultaneamente o
no y pueden ser positivos o negativos. Para ada aso, el sistema de
ontrol optimo debe ser apaz de minimizar sus efe tos. La sele ion
del tiempo de muestreo es a onvenien ia del dise~no.
(b) Lo mismo que (a), pero en este aso para ontrolar el angulo azimutal.
Problema 4.10

El pro eso olumna de destila ion se des ribe en el problema 3.10 y se muestra en la gura 3.29. Dise~nar un sistema de ontrol optimo multivariable esta ionario para ontrolar las temperaturas residuales T1 = 13 z1
y T2 = 24 z2 on las espe i a iones siguientes: error en estado esta ionario nulo, sobreimpulso menor al 5 % y tiempo de estabiliza ion menor
que 0.1 horas. Considerar disturbios unitarios a tuando sobre el pro eso
multivariable. La sele ion del tiempo de muestreo es a onvenien ia del
dise~no.
Problema 4.11

La gura 3.31 muestra el pro eso servomotor on arga no lineal des rito
en la se ion 3.3, en donde la arga no lineal posee ahora dos grados de
libertad on Lo = 2L1=3 y Mo=0.02 kg. La union de la arga on el eje
del servomotor no es exible. Las e ua iones que des riben la dinami a
del sistema son materia del problema 3.12. Dise~nar un sistema de ontrol
optimo esta ionario para ontrolar simultaneamente las posi iones  y  on
mnimo tiempo de estabiliza ion y mnimo sobreimpulso.

204


Control Optimo

Problema 4.12

La gura 3.32 muestra el pro eso pendulo doble no lineal, el ual es una
extension del pendulo simple des rito en la se ion 3.1. El a oplamiento entre los dos pendulos de igual longitud no es exible. Las e ua iones
que des riben la dinami a del sistema son materia del problema propuesto
3.13. Dise~nar un sistema de ontrol optimo no esta ionario para ontrolar
simultaneamente las posi iones  y  on mnimo tiempo de estabiliza ion
y mnimo sobreimpulso, de modo tal que el pendulo doble permanez a en
posi ion verti al.
Problema 4.13

La gura 3.33 muestra el pro eso doble grua-puente no lineal, el ual es una
extension del pro eso grua-puente es rito en la se ion 3.2. El a oplamiento
entre las dos se iones iguales de la varilla no es exible. Las e ua iones que
des riben la dinami a del sistema son materia del problema propuesto 3.14.
Considerar que la arga esferi a es de 0.02 kg. Dise~nar un sistema de ontrol
optimo esta ionario para ontrolar simultaneamente las posi iones  y  on
mnimo tiempo de estabiliza ion y mnimo sobreimpulso, de modo tal que
la grua-puente doble permanez a en posi ion verti al uando el arro realiza
un re orrido predeterminado..
Problema 4.14

En la se ion anterior se dise~naron sistemas de ontrol optimo esta ionario


para varios pro esos. Ahora abordaremos el dise~no de sistemas de ontrol
optimo no esta ionarios.
Dise~nar un sistema de ontrol optimo no esta ionario; es de ir, determinar la ley de ontrol u(k) que minimi e la siguiente fun ion de osto:
1
1 NX1[xT (k)Qx + uT (N )Ru
J = [xT (N )Sx +
2
2 k=0
para una ondi ion ini ial x(0) = arbitraria y para un valor de N para
el ual la o las salidas ontroladas umplan las espe i a iones de dise~no.
Sele ionar apropiadamente el tiempo de muestreo y las matri es de pondera ion. Gra ar la o las salidas ontroladas y las orrespondientes se~nales
de ontrol. Cal ular tambien el valor mnimo de la fun ion de osto. Realizar 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 aptulo se desarrolla un pro edimiento para dise~nar un sistema de ontrol adaptivo on autosintoniza ion, on la apa idad de ontrolar pro esos no
lineales univariables (de una entrada y una salida) operando en la presen ia
de argas no lineales. Tales pro esos pueden ser representados por e ua iones
diferen iales no lineales, donde pre isamente los terminos no lineales ompli an
los aspe tos analti os de modelado del pro eso y de dise~no del ontrolador.
Sin embargo, basado en el orrespondiente modelo lineal del pro eso, podemos
estru turar un sistema de ontrol adaptivo on autosintoniza ion ombinando algoritmos lineales de ontrol on pro edimiento para estimar en linea los
parametros y los estados del pro eso.
En la antepenultima se ion de este aptulo se presenta una apli a ion
para demostrar la validez del pro edimiento de dise~no: ontrol de posi ion de
un servomotor D.C. expuesto a argas no lineales. La penultima se ion, problemas resueltos, esta dedi ada al dise~no de sistemas de ontrol adaptivo on
autosintoniza ion para diferentes pro esos. La ultima se ion propone problemas de dise~no. Todos los ar hivos orrespondientes a los ejer i ios, problemas,
dise~nos, simula iones y software desarrollados se pueden des argar del sitio:
http:/ ee.uni.edu.pe/728681F.

5.1

Introdu ion

Los sistemas de ontrol adaptivo ajustan su omportamiento a las ambiantes propiedades del pro eso ontrolado y de las se~nales que intera tuan
sobre di ho pro eso. Por el ontrario, los sistemas de ontrol jos se ara terizan por la presen ia de una ley de ontrol invariable on el tiempo.

206

Control Adaptivo

La investiga ion sobre ontroladores adaptivos se ha entrado en dos grupos


prin ipales: ontroladores adaptivos on un modelo referen ial y ontroladores on autosintoniza ion. En este aptulo se emplea la on gura ion
de un sistema de ontrol adaptivo on autosintoniza ion mostrado en la gura 5.1. Tal sistema ombina en su dise~no un metodo de estima ion de
parametros (el de los mnimos uadrados re ursivo mejorado), una te ni a
de estima ion de estados (el ltro de Kalman), una representa ion lineal
del modelo del pro eso, y una ley de ontrol (el ontrolador propor ionalintegral 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 se~nal de referen ia.
^x

ESTIMADOR
DE ESTADOS

ESTIMADOR DE
PARAMETROS

ESTIMACION
DE U

MODELO
LINEAL
+

CONTROLADOR CON
AUTOSINTONIZACION

+
u

PROCESO
NO LINEAL

DISTURBIOS

Figura 5.1: Con gura ion del sistema de ontrol on autosintoniza ion.
El sistema de ontrol on autosintoniza ion mostrado en la gura 5.1
opera omo sigue: luego de ada tiempo de muestreo, el ve tor estimado
de parametros ^ se a tualiza empleando los datos propor ionados por la
entrada U del pro eso y por la salida Y del mismo. Luego, los elementos
de ^ se usan para re uperar el modelo lineal del pro eso, lo ual permite
estimar el ve tor de estado del modelo del pro eso x^ (empleando un ltro
de Kalman) y el valor de equilibrio U de la ley de ontrol a tual U . Tales
resultados se usan luego para omputar la ley de ontrol residual u y para
a tualizar la ley de ontrol a tual U a partir de la rela ion U = U + u.
Este aptulo esta organizado omo sigue. La se ion 5.2 trata on el
problema de modelar pro esos no lineales usando modelos lineales. Pro edimientos para estimar en lnea (\on-line") los parametros y estados del

5.2 Modelando Pro esos No Lineales

207

modelo del pro eso se desarrollan en la se ion 5.3, mientras que el algoritmo del ontrolador on autosintoniza ion se deriva en la se ion 5.4. La
se ion 5.5 presenta el pro edimiento para dise~nar un sistema de ontrol on
autosintoniza ion. Una apli a ion se propor iona en la se ion 5.6: ontrol
de posi ion de un servomotor sujeto a argas no lineales.
5.2

Modelando Pro esos No Lineales

Consideremos el siguiente pro eso dinami o ontinuo:


X_ = f (X; U (t); v(X; t); t)
(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 tambien
ontener disturbios v(:) en los estados. De la e ua ion (5.1), es posible
obtener el modelo lineal siguiente:
X_ (t) = [A + AX(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 dimension n  n, B es la matriz de ontrol
de dimension n  1, C es la matriz de salida de dimension 1  n, y A, B
y C son las orrespondientes in ertidumbres a otadas on dimensiones
apropiadas. Ademas, v(X; t) es un ve tor no lineal de disturbios de orden
n a tuando sobre los estados, w(X; t) es un disturbio no lineal de orden
uno a tuando en la salida, e Y (t) es la salida del pro eso de orden uno.
El pro eso nominal no perturbado (o pro eso on ertidumbre) se obtiene
jando en ero todas las in ertidumbres y todos los disturbios en la e ua ion
(5.1). Muestreando di ho modelo nominal, podemos obtener la siguiente
representa ion:
X(k + 1) = GX(k) + HU (k);
Y (k) = CX(k)
(5.3)
donde k es el tiempo dis reto y las matri es G y H poseen las mismas
dimensiones que las matri es A y B , respe tivamente. La orrespondiente
e ua ion polinomial residual toma la forma:
A(z 1)y(z) = B(z 1)u(z)
(5.4)

208

Control Adaptivo

donde z es el operador de desplazamiento, on:


A(z 1) = 1 + a1z 1 + : : : + anz n
B(z 1) = b1 z 1 + : : : + bnz n
Empleando ahora las rela iones residuales: y = Y Y , x =
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)
A(z 1 )Y (k) = B(z 1)U (k) + C
donde la onstante C se determina de:
C = (1 + a1 + : : : + an)Y (b1 + : : : + bn)U
5.3

(5.5)
X y
(5.6)
(5.7)
(5.8)

Pro edimientos de Estima ion

Esta se ion presenta los pro edimientos para estimar (o identi ar) en lnea
los parametros y los estados del modelo del pro eso.
5.3.1 El Metodo de los Mnimos Cuadrados Re ursivo

Para estimar los parametros del modelo del pro eso usaremos las se~nales
a tuales U (k) e Y (k) en lugar de sus desvia iones u(k) e y(k). Para ello, la
des rip ion en el espa io de estado dada por la e ua ion (5.7) tiene que ser
reordenada para tomar la forma siguiente:
Y (k) = T (k)^(k)
(5.9)
donde el ve tor de informa ion (o de medi ion) ontiene los valores presentes y pasados de la entrada U y de la salida Y omo sigue:
T (k ) = [Y (k 1) : : : Y (k n) U (k 1) : : : U (k n) 1
(5.10)
y el ve tor ^ ontiene los parametros a ser estimados, a saber:
^(k) = [ a^1 (k) : : : a^n (k) ^b1 (k) : : : ^bn (k) C^T
(5.11)
Notar que en la e ua ion (5.9), el orden del ve tor de informa ion y el orden
del ve tor de parametros es 2n+1; es de ir, di hos ve tores han in rementado

5.3 Pro edimientos de Estima ion

209

su orden en uno. La e ua ion (5.7) on z = 1 (propiedad del valor nal)


representa la ondi ion de estado estable, es de ir:
A(1)Y = B(1)U + C
(5.12)
El algoritmo basi o de los mnimos uadrados re ursivo puede implementarse
en la forma siguiente:
1) Obtener el ve tor de parametros ini ial ^(0) usando los valores de los
parametros del modelo del pro eso (e ua ion (5.5)).
2) Obtener el valor ini ial del parametro C (0) empleando la e ua ion
(5.8), onsiderando U = 0 e Y igual a la se~nal de referen ia.
3) La matriz de ovarianza ini ial P puede tener la forma P = I , donde
I es la matriz identidad y  1.
4) Tomar nuevas medi iones de Y (k) y de U (K ) en el pro eso, para
obtener una nueva e ua ion de la forma dada en (5.9).
5) Computar 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:
j (k) = T (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 parametros del pro eso servomotor D.C. on arga no lineal
des rito en la se ion 3.3, empleando el metodo de los mnimos uadrados
re ursivo. Emplee el modelo lineal de segundo orden del pro eso y omo
se~nal ex itadora use un es alon de magnitud 0.4. Gra que la respuesta del
pro eso.
Solu ion: El programa ejem5 1.m estima los parametros para el pro eso
pedido. La gura 5.2 gra a la respuesta Y del pro eso a un es alon U = 0.4.
Las guras 5.3 y 5.4 muestran los parametros estimados. Podemos observar
que ada parametro estimado onverge a un valor que es aproximadamente
el valor del orrespondiente parametro del modelo dis reto.

210

Control Adaptivo

% 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 Mnimos Cuadrados Re ursivo Mejorado

El algoritmo basi o de los mnimos uadrados re ursivo se en uentra bastante difundido. Sin embargo, di ho algoritmo puede presentar problemas
poten iales de ara ter numeri o que podran afe tar el dise~no nal del ontrolador on autosintoniza ion. Por tal motivo, en este aptulo se emplea
el metodo de los mnimos uadrados re ursivo mejorado propuesto en [5, el
ual puede implementarse en la forma siguiente:

212

Control Adaptivo
SEAL EXCITATRIZ U

0.4
0.3
0.2
0.1

RESPUESTA Y DEL PROCESO

0
0

100

200

300
400
500
600
700
MUESTRAS DISCRETAS k = 0.01 s

800

100

200
300
400
500
600
700
800
MUESTRAS (CADA MUESTRA EQUIVALE A 0.01 s)

900

1000

900

1000

2.5
2
1.5
1
0.5
0
0

Figura 5.2: Respuesta del modelo lineal del pro eso a un es alon de magnitud
U = 0.4.
1

PARAMETROS ESTIMADOS

0.5

0.5

1.5

2
0

100

200
300
400
500
600
700
800
MUESTRAS (CADA MUESTRA EQUIVALE A 0.01 s)

900

1000

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
MUESTRAS (CADA MUESTRA EQUIVALE A 0.01 s)

900

1000

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
parametros del modelo del pro eso dadas en la e ua ion (5.4).
2) Obtener el valor ini ial del parametro C (0) empleando la e ua ion
(5.8), onsiderando U = 0 e Y igual a la se~nal de referen ia.
3) La matriz de ovarianza ini ial P puede tener la forma P = I , donde
I es la matriz identidad y  1.
4) Tomar nuevas medi iones de Y (k) y de U (K ) en el pro eso, para
obtener una nueva e ua ion de la forma dada en (5.9).
5) Computar: (k) = max(1; k (k)k); n = =(k)
6) Determinar la matriz N (k) apli ando fa toriza ion Cholesky en:
N (k)N (k)T = P (k)
7) Determinar la matriz diagonal de es alamiento S (k) on elementos sjj .
Tal matriz minimiza el numero 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 n
nS = [S (k )
T (k )P (k 1)
r(k) = 1 + nS
S
nS (k )
s

"

1 r(k) r2(k) 4kPS (k 1) nS (k)k2


(k) = 1
2
tr PS (k 1)
en (k) = Y (k)=(k) nT (k) ^(k 1)
T (k + 1)P (k )
j (k) = [ nS
S
nS (k + 1) + (k )
^(k + 1) = ^(k) + S 1 (k)PS (k) nS (k)en (k + 1)=j (k)
T (k +1)P (k )
HnS (k +1) = PS (k) nS (k +1)  [ nS
S
nS (k +1)+ (k )
T (k + 1)P (k )=(k )
PS (k + 1) = [I HnS (k + 1) nS
S


max eig(PS )
tt = abs
min eig(P )

9) Implementar el riterio para parar la estima ion y para en ontrar la


nueva matriz de es alamiento Nnew omo sigue: sabiendo que tt es
el numero ondi ionante de PS , si tt   ( ota inferior), parar la
estima ion; en otro aso, si tt   ( ota superior), determinar Nnew (k)
T ), al ular los elementos n
(a partir de la rela ion PS = Nnew Nnew
new
(valor absoluto de la suma de los elementos de las las de Nnew (k)),
determinar la matriz diagonal Snew on elementos snew = 1=nnew ,
y al ular la matriz Pnew = Snew PS Snew . Finalmente, a tualizar:
P = Pnew .
jj

jj

jj

Ejemplo 5.2

Estimar los parametros del pro eso servomotor D.C. on arga no lineal
des rito en la se ion 3.3, empleando el metodo de los mnimos uadrados
re ursivo mejorado. Emplee el modelo no lineal de segundo orden del pro eso y omo se~nal ex itadora use un es alon de magnitud 0.4. 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 parametros estimados. Podemos
observar que ada parametro estimado onverge a un valor onstante.

5.3 Pro edimientos de Estima ion


% 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;

215

216

Control Adaptivo

% PROCEDIMIENTO DE IDENTIFICACION
psi_p = [Y(k-1) Y(k-2) U(k-1) U(k-2)';
psi = [Y(k-1) Y(k-2) U(k-1) U(k-2) 1';
nor = max(1,norm(psi));
psin = psi/nor;
Q = hol(Pi');
S = inv(diag(Q*ones(N,1),0));
Ps = S*Pi*S;
psins = inv(S)*psin;
rt = 1 + psins'*Ps*psins;
LF = 1 - (rt-sqrt(rt^2-4*norm(Ps*psins)^2/tra e(Ps)))/2;
e = Y(k)/nor - thetai'*psin;
div = psins'*Ps*psins + LF;
theta = thetai + e*inv(S)*Ps*psins/div;
ae1(r) = -theta(1);
% PARAMETRO a1 ESTIMADO
ae2(r) = -theta(2);
% PARAMETRO a2 ESTIMADO
be1(r) = theta(3);
% PARAMETRO b1 ESTIMADO
be2(r) = theta(4);
% PARAMETRO b2 ESTIMADO
Hns = Ps*psins/div;
Ps = Ps/LF - Hns*psins'*Ps/LF;
tt = abs(max(eig(Ps))/min(eig(Ps)) );
max = 100; min = 15;
if tt <= min,
thetai = theta; Pi = Ps;
elseif tt >= max,
Qnew = hol(Ps');
Snew = inv(diag(Qnew*ones(N,1),0));
Psnew = Snew*Ps*Snew;
Pi = Psnew; thetai = theta;
end
end
% GRAFICOS
q=0:Mm-1;
figure(1)
subplot(2,1,1)
plot(q,U(1:Mm))
ylabel('SE~NAL EXCITATRIZ U')
grid
subplot(2,1,2)
plot(q,Y(1:Mm))
ylabel('RESPUESTA Y DEL PROCESO')
xlabel('MUESTRAS (CADA MUESTRA EQUIVALE A 0.01 s)')
grid

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

SEAL EXCITATRIZ U

0.4
0.3
0.2
0.1

RESPUESTA Y DEL PROCESO

0
0

100

200

300

400

500

600

700

800

900

1000

100

200
300
400
500
600
700
800
MUESTRAS (CADA MUESTRA EQUIVALE A 0.01 s)

900

1000

0.15

0.1

0.05

0
0

Figura 5.5: Respuesta del pro eso no lineal a un es alon de valor U = 0.4.

218

Control Adaptivo
0.6
a2

PARAMETROS

ESTIMADOS

0.4

0.2

0.2

0.4

0.6
a1
0.8
0

100

200
300
400
500
600
700
800
MUESTRAS (CADA MUESTRA EQUIVALE A 0.01 s)

900

1000

Figura 5.6: parametros estimados a^1 (k) y a^2 (k).

14

x 10

12

PARAMETROS

ESTIMADOS

10
8
6
4
b1

2
0
2

b2
4
6
0

100

200
300
400
500
600
700
800
MUESTRAS (CADA MUESTRA EQUIVALE A 0.01 s)

900

1000

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 ion (5.6) podemos obtener el siguiente modelo nominal perturbado del pro eso:
x(k + 1) = Gx(k) + Hu(k) + v(k)
Y (k) = Cx(k) + w(k)
(5.13)
El pro edimiento de estima ion des rito en la subse ion anterior nos propor iona el ve tor de parametros estimado del pro eso ^(k). Usando los
elementos de di ho ve tor de parametros, podemos re onstruir las matri es
estimadas G^ (k), H^ (k) y C^ (k). El ve tor de estado estimado x^(k) puede ser
obtenido empleando un ltro de Kalman [6, on e ua ion de observa ion:
x^(k) = x(k) + Ko (k)[y(k) C^ (k)x(k)
(5.14)
y e ua ion de a tualiza ion de estados:
x(k + 1) = G^ (k)x^(k) + H^ (k)u(k)
(5.15)
En la e ua ion (5.14), la matriz de ganan ia Ko(k) se al ula de:
Ko (k) = Po (k)C T (k)[C^ (k)Po (k)C^ T (k) + Ro 1
(5.16)
donde Po (k) es la matriz de nida positiva, solu ion uni a de la siguiente
e ua ion matri ial dis reta aso iada de Ri ati:
Po (k + 1) = Qo + G^ ( T )(k)Po (k)G^ (k) G^ T (k)Ko (k)C^ (k)Po (k)G^ (k) (5.17)
donde Qo y Ro son matri es de ovarianza de nidas positivas orrespondiente 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 uadrati 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 ion de osto:
I=

1
X
k=0

[xT (k)Qx(k) + u2(k)R

(5.18)

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 ion de la siguiente e ua ion
matri ial dis reta aso iada de Ri ati:
0 = S GT SG + GT SHKx
(5.20)
Para mejorar el rendimiento del ontrolador propor ional, es posible adi ionar a ion integral a di ho ontrolador. De niendo la variable z(k) omo
la integral (sumatoria) del error [Y (k) Y (k):
z (k) =

enton es:

k 1
X
i=0

[Y (i)

Y (i) =

k 1
X
i=0

[ y(i);

z (k + 1) =

k
X
i=0

[ y(i)

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) = Ga xa (k) + H a u(k)
(5.22)
a
a
y(k) = C x (k)
(5.23)
donde el superndi e a signi a aumentado. El ve tor xa y las matri es Aa ,
B a y C a poseen la forma:




x
(
k
)
G
0
a
a
x (k) = z (k) ; G (k) =
C I


H a = H0

; C a = [C 0
(5.24)
Por onsiguiente, el problema es determinar la matriz de ganan ia K a omo
resultado de la minimiza ion de la siguiente fun ion de osto:
Ia

1
X
k=0

[xa )T (k)Qa xa (k) + u2(k)R

(5.25)

5.5 Pro edimiento de Dise~no

221

donde la matriz Qa = [Qa T es semide nida positiva. La ganan ia K a se


obtiene de:
K a = fR + [H a T P a H a g 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 propor ional integral viene a ser:
u(k) = Ka xa (k)
(5.28)
y los parametros de pondera ion de rendimiento son R y Qa .
5.5

Pro edimiento de Dise~


no

El pro edimiento para dise~nar 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 dise~no).
2) Usando toda la informa ion disponible a er a del pro eso no lineal,
determinar sus modelos lineal y no lineal (se ion 5.2).
3) Implementar el metodo de los mnimos 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 ion 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 ion (5.28), omputar U (k) usando la e ua ion (5.8), y a tualizar
la ley de ontrol a tual empleando la rela ion U (k) = u(k) + U (k).
6) Simular el sistema de ontrol adaptivo variando las matri es de pondera ion 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 ion del Problema

El servomotor D.C. on arga no lineal (dis utido ampliamente en la se ion


3.3) es un pro eso de una entrada y una salida que puede ser ontrolado por
el voltaje de armadura. La arga no lineal es una varilla metali a a oplada al
eje del servomotor, a manera de un brazo roboti o de un grado de libertad.
En el extremo de la varilla se pueden a oplar argas adi ionales. El objetivo
del ontrol es dise~nar e implementar un sistema de ontrol adaptivo on
autosintoniza ion, de modo tal que la varilla se posi ione en una referen ia
predeterminada on mnimo 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 ion 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 = KnK
;
C = 1 0
2E
N
B
Kn
( M + MR )
MR
M
(5.29)
La fun ion de transferen ia de pulso Gp(z), para un tiempo de muestreo de
0.01 s (o lo que es lo mismo, una fre uen ia de muestreo de Fs = 100 Hz),
tiene la forma:
b1 z + b2
b1 z 1 + b2 z 2
y(z )
Gp (z ) =
=
=
(5.30)
u(z ) z 2 + a1 z + a2 1 + a1 z 1 + a2 z 2
y su orrespondiente e ua ion de diferen ias es:
y(k) = a1 y(k 1) a2 y(k 2) + b1 u(k 1) + b2 u(k 2)
(5.31)
a t

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 ion (5.30), un mismo pro eso puede adoptar multiples
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 tivamente, on dimensiones apropiadas. La representa ion anoni a ontrolable
del pro eso (primera forma, e ua ion (3.100) on b0 = 0) tiene la forma:




0
1
0
G =
H= 1
a2 a1 ;


C = b2 a2 b0 b1 a1 b0 ;
D = [0
(5.32)
5.6.3 Estima ion de Parametros

Para estimar (o identi ar) los parametros del modelo del pro eso, empleamos el metodo de los mnimos uadrados re ursivo mejorado desarrollado en la subse ion 5.3.2. Como primer paso al ulamos el ve tor ini ial de
parametros (e ua ion (5.5):


(0) =
a1 a2 b1 b2 C (0) T
donde el valor ini ial de C (0) (e ua ion (5.8) on U = 0 e Y igual a la se~nal
de referen ia) es:
C = (1 + a1 + a2)Y
En el ter er paso jamos la matriz de ovarianza ini ial P de orden 5:
2
3
0 0 0 0
6 0 0 0 0 7
6
7
7
P =6
= 1000
(5.33)
6 0 0 0 0 7;
4 0 0 0 0 5
0 0 0 0
Como uarto paso obtenemos nuevas medi iones de Y (k) y de U (K ) (ver
e ua ion (5.9)) y formulamos:
Y (k) = T (k)^(k)
T (k ) = [Y (k 1) Y (k 2) U (k 1) U (k 2) 1
^(k) = [ a^1 (k) a^2 (k) ^b1 (k) ^b2 (k) C^(k)T
Con los datos determinados hasta aqu, ahora podemos implementar los
otros pasos (ver ejemplo 5.2) on Cmin = 15 y Cmax = 100.

224

Control Adaptivo

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 ion (subse ion anterior) nos propor iona
el ve tor de parametros estimado del pro eso, a saber:
^(k) = [ a^1 (k) a^2 (k) ^b1 (k) ^b2 (k) C^(k)T
Usando los elementos de di ho ve tor de parametros, podemos re onstruir las
matri es estimadas G^ (k), H^ (k) y C^ (k) orrespondientes a la representa ion
anoni a ontrolable (e ua ion (5.32)):

0
1  ; H^ (k) =  0 
^G(k) =
a^2 (k) a^1 (k)
1


C^ (k) = ^b2 (k) ^b1 (k) ; D^ (k) = [0
Las e ua iones del ltro de Kalman para estimar el ve tor de estado x^ son
(ver e ua iones (5.14), (5.15) y (5.16)):
x^(k) = x(k) + Ko (k)[y(k) C^ (k)x(k)
(5.34)
x(k + 1) = G^ (k)x^(k) + H^ (k)u(k)
(5.35)
Ko (k) = Po (k)C T (k)[C^ (k)Po (k)C^ T (k) + Re 1
(5.36)
Para ada muestra dis reta, el programa de simula ion disadap.m (se ion
5.6.7) al ula las matri es Po (k) y Ko (k) empleando las matri es de ovarianza de los disturbios v y w, a saber, Qo = 0.01 y Ro = 0.04.
5.6.5 La Ley de Control

Para determinar el ontrolador propor ional- integral optimo uadrati o on


realimenta ion de estados (se ion 5.4), la representa ion en el espa io de
estado aumentado toma la forma siguiente (e ua ion (5.23)):
xa (k + 1) = Ga (k)xa (k) + H a (k)u(k); y(k) = C a (k)xa (k)
donde:




x
(
k
)
G
0
a
a
x (k) = z (k) ; G (k) =
C I
Ha

= 0 ;

C a = [C

5.6 Control Adaptivo de un Servomotor No Lineal

225

La matriz de ontrol K a se obtiene de:


K a (k) = fR + [H a (k)T P a (k)H a (k)g 1 [H a (k)T P a (k)(k)Ga (k)
El programa disadap.m al ula las matri es K a(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
perodo de muestro. Los valores de R y Qa para la simula ion son:
2
3
0
:05 0
0
R = 0:45;
Qa = 4 0 0:01 0 5 ;
(5.37)
0 0 0:01
5.6.6 La Ley de Control Residual

Para el sistema de ontrol a lazo errado podemos tomar la se~nal Y (k) igual
a la referen ia para todo k. As, podemos al ular la ley de ontrol residual
empleando la rela ion u(k) = U (k) U (k) (se ion 5.4), donde U (k) se halla
en lnea a partir de la e ua ion (5.8), omo sigue:
U (k) = [^b1 (k) + ^b2 (k) 1 [1 + a^1 (k) + a^2 (k)Y (k) C^(k)
Finalmente, a tualizamos la ley de ontrol a tual: U (k) = u(k) + U (k).
5.6.7 Simula ion del Sistema de Control Adaptivo

El siguiente programa disadap.m resume todos los pasos des ritos anteriormente para simular el sistema de ontrol adaptivo. Es importante re al ar
que los algoritmos de ontrol lineal estan siendo apli ados al modelo no
lineal del pro eso, on el n de darle mayor realismo al pro eso de simula ion. La simula ion in luye la estrategia para no saturar el ampli ador,
pero no in luye la ompensa ion de la no linealidad provo ada por la fri ion
de Coulomb debido a que no es ne esario ( onforme a los resultados de la
simula ion). El programa disadap.m es autoexpli ativo.
% disadap.m SIMULACION DEL SISTEMA DE CONTROL DE POSICION
%
ADAPTIVO CON AUTOSINTONIZACION
lear all
% PARAMETROS DEL PROCESO NO LINEAL (TABLA 3.3)
JL = 3.5e-7;
bL = 1e-5;
Ro = 0.01;
Jm = 1.9062e-6; bm = 1.8338e-6; g = 9.81;
E = 31.035e-3;
Ra = 7.38;
m = 0.06377;
Ka t = 14.9;
= 0.25; Mo = 0.02; % 0.00, 0.01, 0.045;

226
K = 31.071e-3;

Control Adaptivo
n = 19.741;

L = 4.64e-3;
Lo = 0.776;

B = n^2*bm +bL;
Jeff = n^2*Jm +JL;
M = Jeff + (1/3)*m*Lo^2 + Mo*Lo^2 + (2/5)*Mo*Ro^2;
N = g*Lo*(Mo+m/2);
% MODELO LINEAL DEL PROCESO CONTINUO DE SEGUNDO ORDEN
A = [0 1;-N/M -(B + n^2*K*E/Ra)/M; % ( : CONTINUO)
B = [0;n*K*Ka t/(Ra*M);
C = [1 0; D = [0;
% MODELO LINEAL DISCRETO DEL PROCESO DE SEGUNDO ORDEN
T = 0.01; % PERIODO DE MUESTREO
[G,H,C,D= 2dm(A ,B ,C ,D ,T,'zoh');
[num,den=ss2tf(G,H,C,D);
a1 = den(2); a2 = den(3);
b1 = num(2); b2 = num(3);
% G ,H , C , D : REPRESENTACION CANONICA CONTROLABLE
a11 = 0; a12 =1; a21 = -a2; a22 = -a1;
b11 = b1; b21 =b2-a1*b1; 11 =1; 12 = 0;
G = [a11 a12;a21 a22; H = [b11;b21;
C =[ 11 12; D = [0;
% REPRESENTACION POLINOMIAL
% A(z^(-1)) = 1 + a1*z^(-1) + a2*z^(-1);
% B(z^(-1)) =
b1*z^(-1) + b2*z^(-1);
% A(z^(-1))*Y(k) = B(z^(-1))*U(k) + Ce; % CASO AUMENTADO
% en el estado esta ionario: z = 1:
% (1 + a1 + a2)*Yo = (b1 + b2)*Uo + Ce
% CONDICIONES INICIALES
Y(1) = 0; Y(2) = 0; Y(3) = 0; % SALIDA ACTUAL
y(1) = 0; y(2) = 0;
% SALIDA RESIDUAL
U(1) = 0; U(2) = 0; U(3) = 0; % SE~NAL DE CONTROL ACTUAL
u(1) = 0; u(2) = 0;
% SE~NAL DE CONTROL RESIDUAL
xmenos = zeros(2,1);
% VECTOR DE OBSERVACION INICIAL
z=0;
% ACCION INTEGRAL INICIAL
X1 = 0; X2 = 0;
% ESTADOS ACTUALES
% CONDICIONES INICIALES DE LOS PARAMETROS
Ref = 1;
% MAGNITUD DE LA SE~NAL DE REFERENCIA
fre = 0.007; % FRECUENCIA DE LA SE~NAL DE REFERENCIA
Ce = (1 + a1 + a2)*Ref;
% VALOR INICIAL DE Ce
thi = [-a1 -a2 b1 b2 Ce';
% VECTOR INICIAL DE PARAMETROS
alfa=1000; Pi = alfa*eye(5); % MATRIZ DE COVARIANZA INICIAL
lamb=0.98; lamb0 = 0.99;
% FACTOR DE MEMORIA
max = 100; min = 10;
% UMBRALES DE ESTIMACION

5.6 Control Adaptivo de un Servomotor No Lineal


% 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);

227

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

Posicin Y (rad)

2
1
0
1

Seal de control U (voltios)

2
0

10

12

14

16

18

20

14

16

18

20

2
1
0
1
2
0

8
10
12
Tiempo en segundos

Figura 5.8: Resultado de la simula ion del sistema de ontrol adaptivo para
ontrolar la posi ion angular del servomotor D.C. sujeto a argas no lineales.
5.6.8 Implementa ion del Hardware

El sistema de ontrol de posi ion onsta de un servomotor D.C. on me anismo de redu ion, una varilla a oplada al eje del servomotor (la arga no
lineal) perpendi ular al eje de giro del servomotor, una etapa de poten ia (el
ampli ador PWM) y un sensor de posi ion onformado por un odi ador
opti o (a oplado al eje del motor), un de odi ador de uadratura y un ontador de 16 bits. El hardware tambien in luye una PC Pentium y una tarjeta
de adquisi ion de datos Lab-PC+. A la arga no lineal (la varilla metali a)
se le pueden a oplar argas adi ionales. El esquema de implementa ion se
ilustra en la gura 5.9 mientras que el pro eso (el servomotor on arga no
lineal) se ilustra en la gura 5.10.
El A tuador

El a tuador esta onformado por el servomotor D.C. (de ampo magneti 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 tension
de entrada; es de ir, le toma un peque~no tiempo para llegar a la maxima

230

Control Adaptivo

COMPUTADORA
PERSONAL
ETAPA DE POTENCIA

TARJETA LAB-PC+
SALIDAS
ANALOGICAS

DAC0
DAC1

PA
COMPUERTAS
DIGITALES
DE ENTRADA
Y SALIDA

Generador
PWM

Amplificador
de potencia

Sensor (encoder)

PA0
..
.
PA7

MUX
PB

PC

PB0
..
.
PB7
PC1
..
.
PC7
PC0

16 bits
Decodificador
de cuadratura
y contador
UP / DOWN

Varilla
Fs

CONTADOR /
OUTB0
TEMPORIZADOR

SERVOMOTOR
DC

Carga
Adicional

Figura 5.9: Esquema de implementa ion del sistema de ontrol de posi ion.

5.6 Control Adaptivo de un Servomotor No Lineal

231

Codificador optico

Reductor de
velocidad
Alimentacion

1
0
0
1
0
1
0
1
0
1
0
1
0
1

Servomotor DC

Eje de salida
Varilla
Adaptador de carga

Carga
adicional

1
0
0
1
0
1

Figura 5.10: Pro eso servomotor D.C. on arga no lineal y odi ador
opti o in orporado.
velo idad, es ne esario usar un sistema que nos permita variar la velo idad
del servomotor (entre un m'inimo y un maximo) as omo tambien el sentido
de su rota ion. Di ho sistema omprende un generador PWM LM3524 y un
ir uito de poten ia (ver gura 5.11). Tal sistema nos permite variar la
velo idad de a uerdo al an ho de pulso de la se~nal PWM. El ir uito PWM
LM3524 genera se~nales moduladas por an ho de pulso de 15.4 KHz, las
uales son luego ampli adas por el ir uito de poten ia, generandose una
tension de alimenta ion uyos lmites son  25 volt. El ir uito de poten ia
esta onformado por un sistema de disparo y dos pares de onmutadores A
y B, tal omo se muestra en la gura 5.12.
El sistema de disparo permite la onmuta ion de ada par onmutador
(A o B), de forma tal que no se produz an orto ir uitos durante la onmuta ion. Cuando el sistema de disparo ierra el onmutador A y abre el B,
el sentido de la orriente sigue la lnea punteada, indu iendo de esta forma
una tension +V en el servomotor. Ahora, si el sistema de disparo abre el

232

Control Adaptivo
Ca

Viene de la
salida A0
de la LAB-PC+

Amplificador
de potencia

Ra

Rc

Salida A

PWM

Salida B

Al servomotor DC

Generador
PWM
Cp

Rp

Figura 5.11: Etapa de poten ia.

Vcc

~
SENAL PWM

SISTEMA

A1

B1
SERVOMOTOR

DE

DC

DISPARO
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 lnea segmentada, indu iendo as una tension -V en el servomotor. Esto signi a que el
motor re ibe en sus bornes una tension de onda uadrada, uyo valor vara
entre  V , on un onsumo de orriente que depende de los onmutadores
onformados por transistores MOSFET.

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 (interno al motor), un de odi ador de uadratura y un ontador UP/DOWN.
El odi ador opti o rotatorio onsiste en:
 Una fuente de luz que puede ser un LED infrarrojo o laser.
 Un dis o opa o ranurado a oplado al eje del motor, que se mueve entre
una fuente de luz permanente habilitada y un dete tor. A medida que
gira el rotor, el paso de luz ha ia el dete tor es habilitado o inhabilitado
por un patr'on de areas os uras y transparentes impreso en el dis o,
produ iendo una se~nal digital que puede ser fa ilmente interpretada
por el ontrolador de movimiento del sistema.
 Un sensor de luz; usualmente es un fototransistor o un fotodiodo.
 Un onformador de pulsos que onvierte la se~nal sinusoidal proveniente
de la salida del fotodete tor en se~nal de onda uadrada.
El esquema basi o del odi ador opti o se muestra en la gura 5.13. El
Canal A
Canal B
Fuente de luz
Transistor
optico
Eje del servomotor
Disco con
mascara

Figura 5.13: Estru tura de un odi ador opti o rotatorio.


odi ador usado en esta implementa ion, omo en la mayora de los asos,
in luye dos pistas de mar as o ranuras en uadratura ( anales A y B), ada
una aso iada a una fuente de luz y un fotodede tor independientes. Los
anales A y B produ en dos ondas uadradas desfasadas 900 entre s que
se utilizan para determinar la dire ion del movimiento. Por ejemplo, si
el anal B adelanta al anal A, el eje esta girando en sentido antihorario,

234

Control Adaptivo

y vi eversa. Si no se utiliza dete ion de uadratura, la vibra ion puede


ausar el envo de pulsos errati os al ontador, in luso si la maquina esta
detenida. El odi ador usado tiene una resolu ion 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 analoga otro grupo igual
de bits onforman el bus B (ver gura 5.14).
4 bits
Puerto
digital
PA

8 bits
4 bits

4 bits
Puerto
digital
PB

Clock UP
74HC Clock Down
193
Canal A

74HC
193

74HC
193

LS7083

Canal B

8 bits
4 bits

74HC
193

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 ion de datos Lab-PC+. Los terminales usados para el
ontrol son:
1. Una salida analogi a (DAC0). La se~nal de ontrol se enva usando el
terminal DAC0 al CI LM3524 (generador PWM) on una resolu ion
de 12 bits para generar la se~nal analogi a.

5.6 Control Adaptivo de un Servomotor No Lineal

235

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 se~nal 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 se~nal de reloj Fs proveniente de OUTB0.
La se~nal 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 tiempo real, in luyendo la solu ion de las e ua iones de Ri ati para al ular
las ganan ias del ontrolador y del observador. Ya que la simula ion del
sistema no in luye estos tipos de al ulo, es ne esario expli ar su intamente
las e ua iones involu radas en el sistema de ontrol adaptivo a ser implementado en tiempo real. El modelo lineal ontinuo del pro eso se obtiene
de la e ua ion (5.29):
nK K
nK K
M  + (B + a t )_ + N = a t 
R
R
 + 3:626 + _ + 17:4604 = 89:09

La e ua ion de diferen ias del pro eso es (ver e ua ion (5.31)):


k + a1 k 1 + a2 k 2 = b1 vk 1 + b2 vk 2
donde (k) = y(k) y v(k) = u(k) (v es la se~nal 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 + Huk 1 ;
yk = CXk
on x = Xk y u(k) = uk .
La ley de ontrol es: uk = K aXka on (ver e ua ion (5.26)):
K a = (R + (H a )T P a H a ) 1 (H a )T P a Ga

236

Control Adaptivo

donde la matriz P a (k) = Pka se obtiene de (ver e ua ion (5.27)):


Pka+1 = Q + (Ga )T Pka Ga + (Ga )T Pka H a (R + (H a )T Pka H a ) 1 (H a )T Pka G
Para un perodo de muestreo, empezando on Pka igual a la matriz nula,
iteramos 20 ve es la e ua ion anterior, lo que da omo resultado una nueva
matriz Pka. En el siguiente perodo de muestreo, la matvariz resultante Pka
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 Pka+1. Se ha observado que
P a al anza un valor esta ionario luego de 4 o 5 perodos de muestreo (lo
ual es equivalente a 80 o 100 itera iones). Esta forma de al ulo ahorra
tiempo de omputa ion. Los parametros de optimiza ion empleados para
el ontrolador optimo son R = 0.05 y Qa = 0:1 I3 , donde I3 es la matriz
identidad de orden 3.
La matriz de ganan ia Ko del ltro de Kalman se puede obtener apli ando dualidad al problema de ontrol. Es de ir, ha iendo los reemplazos
siguientes:

Ga ! GT ; H a ! C T ; Qa ! Qo ; R ! Ro ; P a ! Po
en las formulas de K a y Pka+1 del ontrolador optimo. De esta forma resolvemos la e ua ion de Ri ati para Po ( omo en el aso del ontrolador)
para luego poder al ular Ko . Los parametros de optimiza ion usados para
el observador optimo ( ltro de Kalman) son: Qo =0.01 y Ro=0.04, mientras
que para el algoritmo de estima ion son: P = 1000I5 (matriz de ovarianza
ini ial, e ua ion (5.33)), Cmin = 15, y Cmax = 100.

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
metodo de Ja obi (ver referen ia [16, pagina 365), se deben al ular todos
los valores propios y ordenarlos en una matriz simetri 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.
Ademas de la ompensa ion de la no linealidad produ ida por la fri ion
de Coulomb (a~nadiendo  0.2 voltios a la se~nal de ontrol, dependiendo si
la velo idad angular es positiva o negativa), se onsidera tambien el efe to
de satura ion del servomotor uando la se~nal 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 ion en tiempo real del sistema
de ontrol adaptivo dise~nado se estru turan en tres ar hivos de odigo fuente,
los uales son:
1. Ar hivo R1LLIB.H, que es un ar hivo de de lara iones de fun iones
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 tambien 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 librera de
fun iones NI-DAQ [25 y llama a la fun ion 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.
2.
3.
4.
5.

Ini ializa_Sistema();
Mide_Variables(&y,&r,&vel,t);
Estima_Parametros(Th,y,u);
En uentra_Control(r,&u);
u=Apli a_Control(u,vel);

La ompila ion de ar hivos para ha erlos eje utables se realiza en Borland C/CPP mediante un proye to que involu re todos los ar hivos, en nuestro aso, los ar hivos R1LLIB.H, R1LLIB.CPP y CON122.CPP.
Una pre au ion a onsiderar es la de espe i ar que la ompila ion se
eje ute on el modelo de memoria \Large". Otra pre au ion es asegurarse
que al ini io y al nal de la eje u ion de los programas, el servomotor debe
estar parado, lo que se logra enviando la se~nal 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


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>

239

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


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 */

243

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


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)

249

250
{
int i, j, k, n=3, niter;
double delta;
delta= TOL+1.;
niter= 0;
while(delta>TOL && 20>niter++)
{
/*P(k).H y H'P(k) */
for(i=0; i<n; i++)
for(Vaux1[i=Vaux2[i=0.,j=0; j<n; j++){
Vaux1[i += P[i[j*He[j;
Vaux2[i += He[j*P[j[i;
}
/*Raux1= R + H'P(k).H */
for(Raux1= R, i=0; i<n; i++)
Raux1 += He[i*Vaux1[i;
/*G'P(k).H y H'P(k).G */
for(i=0; i<n; i++){
Vaux3[i= Vaux4[i= 0.;
for(j=0; j<n; j++){
Vaux3[i += Ge[j[i*Vaux1[j;
Vaux4[i += Vaux2[j*Ge[j[i;
}
/*3er. Termino */
for(i=0; i<n; i++)
for(j=0; j<n; j++)
Maux1[i[j= Vaux3[i*Vaux4[j/Raux1;
/*G'P(k) */
for(i=0; i<n; i++)
for(j=0; j<n; j++){
Maux2[i[j= 0.;
for(k=0; k<n; k++)
Maux2[i[j += Ge[k[i*P[k[j;
}
/*2o. Termino> G'P(k).G */
for(i=0; i<n; i++)
for(j=0; j<n; j++){
Maux3[i[j= 0.;
for(k=0; k<n; k++)
Maux3[i[j += Maux2[i[k*Ge[k[j;
}
/*Y Total */

Control Adaptivo

5.6 Control Adaptivo de un Servomotor No Lineal


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))));

251

252

Control Adaptivo

t= u= vel= y= 0.;
for(k=0; k<n;)
{
a t=NivelClo k();
if ((ant==0)&&(a t==1))
{
Mide_Variables(&y, &r, &vel, t);
Estima_Parametros(Th, y, u);
En uentra_Control(r, &u);
u= Apli a_Control(u, vel);
if(!(k%5))
{
yv[k/5= y;
rv[k/5= r;
uv[k/5= u;
}
k++;
t += Td; gotoxy(5,5); printf("%f",t);
if(kbhit()) if(get h()==27) break;
}
ant=a t;
}
EnviarVoltage(Ofst);
out=fopen(" 2.out","wt");
for (int i=0; i<n/5; i++)
fprintf(out,"%10f %10f %10f %10f %10f\n",
i*5*Td, rv[i, yv[i, uv[i, rv[i-yv[i);
f lose(out);
}

5.6.10 Resultados Experimentales

Los resultados experimentales mostrados en las guras 5.15 y 5.16 demuestran la validez del pro edimiento de dise~no sugerido. Di hos resultados se
obtuvieron para una se~nal de referen ia es alon ambiante de =3 a =2.
Dos asos extremos fueron tomados en onsidera ion: el ontrol on ausen ia de arga ( gura 5.15) y el ontrol on arga no lineal ( gura 5.16). En
ambos asos, el ontrolador adaptivo es apaz de ontrolar la posi ion del
eje del servomotor a pesar de la presen ia simultanea de la arga no lineal
y de las no linealidades inherentes (las fri iones estati a y de Coulomb, y
la satura ion del servomotor).
Los experimentos se realizaron on los siguientes parametros de optimiza ion. Para el estimador de estado se sele iono Qo = 0:01 y Ro = 0:04
(e ua iones (5.16) y (5.17)) y para la ley de ontrol optima se eligio R = 0:05

5.7 Problemas Resueltos

253

y Qa = 0:1I3 (e ua ion (5.27)), donde I3 es la matriz identidad de dimension tres. El tiempo de muestreo, su ientemente grande omo para poder
efe tuar todo el omputo requerido por muestra, fue de Ts=0.01 s.
Posicin (radianes)

2
1.5
1
0.5
0
0

10

20

30

40
50
60
Tiempo en segundos

70

80

90

100

10

20

30

40
50
60
Tiempo en segundos

70

80

90

100

Seal de control (voltios)

1.5
1
0.5
0
0.5
1
0

Figura 5.15: Control adaptivo de la posi ion del servomotor. Primer aso:
servomotor no a iona arga alguna.
5.7

Problemas Resueltos

En la se ion problemas resueltos de los aptulos 4 al 8, la solu ion a los


problemas se en uentra, segun el aso, en uno o mas ar hivos on extension
m es ritos en odigo MATLAB. En ada problema, la sele ion del tiempo
de muestreo es a onvenien ia del dise~no.
Problema 5.1

El problema 3.1 presenta las e ua iones que gobiernan la dinami a del sistema de suspension de un bus (ver gura 3.12). Dise~nar un sistema de
ontrol adaptivo on autosintoniza ion para lograr el objetivo de ontrol siguiente: la salida del pro eso y = x2 x1 (referen ia nula) no debe presentar
sobreimpulsos mayores que el 5 %, y luego de 20 segundos, las os ila iones

254

Control Adaptivo

Posicin (radianes)

2.5
2
1.5
1
0.5
0
0

10

20

30

40
50
60
Tiempo en segundos

70

80

90

100

10

20

30

40
50
60
Tiempo en segundos

70

80

90

100

Seal de control (voltios)

1.5
1
0.5
0
0.5
1
0

Figura 5.16: Control adaptivo de la posi ion del servomotor. Segundo aso:
servomotor a iona la arga no lineal.
originadas por un disturbio es alon de 10 m (provo adas por imperfe iones
en la pista), pra ti amente deben desapare er.
Solu ion: Ver programa p3adap1.m. Este es un problema de re hazo a
los disturbios. Es interesante anotar que el ara ter adaptivo del sistema de
ontrol dise~nado, permite que las espe i a iones de re hazo del disturbio se
mantengan a pesar de que vare la masa del bus. Supongamos que la masa
del bus sin pasajeros es m1 = 2500 kg y lleno ambia a 3500 kg. Eje ute el
programa p3adap1.m on este nuevo dato y vera que el objetivo de ontrol
pra ti amente se sigue umpliendo.
% p3adap1.m SOLUCION DEL PROBLEMA 5.1
lear all
% PARAMETROS DEL PROCESO
m1 = 2500; k1 = 80000; b1 = 350;
m2 = 320; k2 = 500000; b2 = 15020;
a23 = (b1/m1)*(b1/m1+b1/m2+b2/m2)-k1/m1;
a33 = -(b1/m1+b1/m2+b2/m2);
a43 = -(k1/m1+k1/m2+k2/m2);
% MODELO LINEAL
A = [0
1 0
0
-b1*b2/(m1*m2) 0 a23 -b1/m1

5.7 Problemas Resueltos

%
%

%
%
%
%
%

%
%
%
%

b2/m2
0 a33 1
k2/m2
0 a43 0;
B = [0 0;1/m1 b1*b2/(m1*m2);0 -b2/m2;(1/m1+1/m2) -k2/m2;
C = [0 0 1 0; D = [0 0;
CONVERSION AL ESPACIO DISCRETO
T=0.5; % TIEMPO DE MUESTREO
[G,H,C,D = 2dm(A,B,C,D,T,'zoh'); % ESPACIO DE ESTADO
FT CUANDO ACTUA LA SE~NAL CONTROL u Y EL DISTURBIO w ES NULO
[num,den=ss2tf(G,H,C,D,1);
a1 = den(2); a2 = den(3); a3 = den(4); a4 = den(5);
b1 = num(2); b2 = num(3); b3 = num(4); b4 = num(5);
F.T. uando a t'ua disturbio w y ontrol u es nulo
[numd,dend=ss2tf(G,H,C,D,2); % dend = den
j1=numd(2); j2=numd(3); j3=numd(4); j4=numd(5);
F.T. del pro eso: y = (num/den)*u + (numd/den)*w
PARAMETROS PARA OPTIMIZAR LA GANANCIA F DEL FILTRO DE KALMAN
Xi = 1; Sigma = 1;
PARAMETROS DE OPTIMIZACION DEL CONTROLADOR Ke
R = 1;
Qa = 1*[1 0 0 0 0;0 1 0 0 0;0 0 1 0 0;0 0 0 1 0;0 0 0 0 1;
CONDICIONES INICIALES
Ref = 1; % MAGNITUD DE LA SE~NAL DE REFERENCIA
nn = 4; r=1; % nn: ORDEN DEL PROCESO; r: NUMERO DE SALIDAS
NN=13; % NUMERO DE PARAMETROS A ESTIMAR
Ce = (1 + a1 + a2+ a3+a4)*Ref;
thi =[-a1 -a2 -a3 -a4 b1 b2 b3 b4 j1 j2 j3 j4 Ce';
alfa=1000; Pi = alfa*eye(NN); % MATRIZ P INICIAL
lamb=0.98; % FACTOR DE MEMORIA
Y(1) = 0; Y(2) = 0; Y(3) = 0; Y(4)=0; Y(5) =0; % SALIDA
U(1)= 0; U(2) = 0; U(3) = 0; U(4)=0; U(5)=0; % CONTROL
w(1)= 0; w(2) = 0; w(3) = 0; w(4)=0; w(5)=0;
xmenos = zeros(nn,1); % VECTOR DE OBSERVACION INICIAL
z=0; % ACCION INTEGRAL INICIAL
MM = 200;
LAZO DEL SISTEMA DE CONTROL ADAPTIVO ********************
for t=1:MM;
t1=t+1;
SE~NAL DEL DISTURBIO
w(t1+4) = 0.01;%*sign(sin(0.03*t1));
SE~NAL DE REFERENCIA
W(t1+4) = 0;
MODELO LINEAL DEL PROCESO CON DISTURBIO
Y(t1+4)=[Y(t1+3) Y(t1+2) Y(t1+1) Y(t1) ...

255

256

Control Adaptivo

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 longitudinal de un avion omer ial volando a velo idad de ru ero (altura y velo idad
onstantes). El ontrol del angulo de in lina ion  del avion (ver gura 3.14)
es un problema longitudinal a resolver. El objetivo de ontrol enton es es
dise~nar un autopiloto que manipulando el angulo e del de e tor de eleva ion, ontrole el angulo de in lina ion del avion.
Se pide dise~nar un sistema de ontrol adaptivo que genere una fuerza
de ontrol, de modo que la salida del pro eso (el angulo de in lina ion )
presente un sobreimpulso menor al 10 % y un tiempo de estabiliza ion menor
que 10 s, on un error en estado estable nulo. Por ejemplo, si la entrada de

258

Control Adaptivo
Salida y = x1x2 (m)

0.01
0.005
0
0.005
0.01
0

10

20

30

40
50
60
Tiempo en segundos

70

80

90

100

10

20

30

40
50
60
Tiempo en segundos

70

80

90

100

Fuerza de control (N)

20

40

60

80
0

Figura 5.17: Salida y = x1


dientes al problema 5.1.

x2

y la fuerza de ontrol dise~nada, orrespon-

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


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;

259

260

%
%
%
%

Control Adaptivo

tt = abs(max(eig(Ps))/min(eig(Ps)) );
max = 100; min = 15;
if tt <= min,
Pi = Ps; thi = th;
elseif tt >= max,
Nnew = hol(Ps'); % Nnew*Nnew' = Ps'
Snew = inv(diag(Nnew*ones(NN,1),0));
Psnew = Snew*Ps*Snew;
Pi = Psnew; thi = th;
end
RECUPERACION DE LA ECUACION CANONICA CONTROLABLE
ae1 = -th(1); ae2 = -th(2); ae3 = -th(3);
be1 = th(4); be2 = th(5); be3 = th(6); Ce = th(7);
nume = [0 be1 be2 be3;
dene = [1 ae1 ae2 ae3;
[GE,HE,CE,DE = tf2ss(nume,dene);
CALCULO DE LA GANANCIA F DEL ESTIMADOR DE KALMAN
F = dlqe(GE,HE,CE,Sigma,Xi);
xmas = xmenos + F*(y(t+3) - CE*xmenos); % OBSERVACION
z = z -CE*xmas;
% ACCION INTEGRAL
CALCULO DE LA GANANCIA Ka DEL CONTROLADOR
Ga = [GE zeros(nn,r);-CE eye(r,r);
Ha = [HE;zeros(r,r);
Ca = [CE zeros(r,r);
Ka = dlqr(Ga,Ha,Qa,R);
CALCULO DE LA LEY DE CONTROL RESIDUAL
u(t+3) = - Ka*[xmas;z; % e . (27)
ACTUALIZANDO ESTADOS
xmenos = GE*xmas + HE*u(t+3); %
CALCULO DEL VALOR DE EQUILIBRIO U
AE = 1 + ae1 + ae2 + ae3; BE = be1 + be2 + be3;
Uin = inv(BE)*(AE*v1(t+3) - Ce);
CALCULO DE LA SE~NAL ACTUAL DE CONTROL U(K)
U(t+3) = u(t+3) + Uin;
end % *********************************

% GRAFICOS
ejex = linspa e(0,MM*T,MM);
subplot(2,1,1)
plot(ejex,v1(3:MM+2),ejex,Y(3:MM+2)), grid
ylabel('In lina ion (rad)')
subplot(2,1,2)
plot(ejex,U(3:MM+2)), grid

5.7 Problemas Resueltos

261

xlabel('Tiempo en seg')
ylabel('Angulo del defle tor (rad)')
print -deps -f p4adap1

Inclinacin (rad)

0.4
0.2
0
0.2

Angulo del deflector (rad)

0.4
0

20

40

60

80

100

120

140

160

180

200

20

40

60

80
100
120
Tiempo en seg

140

160

180

200

1
0.5
0
0.5
1
0

Figura 5.18: A ngulo de in lina ion  y se~nal de ontrol (angulo del de e tor)
orrespondientes al problema 5.2.
Problema 5.3

La gura 3.20 muestra un monorriel de dos arros des rito en el problema 3.5. El problema a resolver es el ontrol de velo idad del arro de
maquinas mediante un sistema de ontrol adaptivo on autosintoniza ion.
Para garantizar a los pasajeros un viaje onfortable, los ambios de velo idad deben realizarse on un tiempo de estabiliza ion menor que 15 s y on
mnimo sobreimpulso. El error en estado estable debe ser nulo. Simule una
se~nal de referen ia que ambie la velo idad de 30 a 20 m/s y demuestre
que se umplen las espe i a iones de dise~no. Luego enfrente el problema
de seguimiento. Mostrar que la velo idad de la maquina puede seguir una
traye toria predeterminada de velo idades. El programa p7adap1b.m trata
el aso de referen ia arbitraria. Revise tal programa si desea ver detalles al
respe to.

262

Control Adaptivo

% 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

%
%
%

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);

263

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
ae21
ae31
ae41
ae51
ae61

%
%

%
%

ae12
ae22
ae32
ae42
ae52
ae62

ae13
ae23
ae33
ae43
ae53
ae63

ae14
ae24
ae34
ae44
ae54
ae64

ae15
ae25
ae35
ae45
ae55
ae65

ae16
ae26
ae36
ae46
ae56
ae66;

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

Y1: Velocidad (m/s)

40
30
20
10
0
0

50

100

150
200
Tiempo en segundos

250

300

50

100

150
200
Tiempo en segundos

250

300

Voltaje de control u

30
20
10
0
10
0

Figura 5.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 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 (el
ampli ador de poten ia), la se~nal de ontrol debe estar dentro del rango
de  200 voltios. Dise~nar un sistema de ontrol de posi ion adaptivo on
autosintoniza ion que umpla las espe i a iones pedidas.
% p8adap1.m SOLUCION DEL PROBLEMA 5.4

266

Control Adaptivo
Y1: Velocidad (m/s)

40
30
20
10
0
0

50

100

150
200
Tiempo en segundos

250

300

50

100

150
200
Tiempo en segundos

250

300

Voltaje de control u

30
20
10
0
10
0

Figura 5.20: Velo idad del arro de maquinas y la fuerza de ontrol para el
problema 5.3. La referen ia es arbitraria.
lear all
% PARAMETROS GENERALES
nn = 4; r=1; % nn: orden del pro eso; r: NUMERO DE SALIDAS
NN = 9; % ORDEN DEL VECTOR ESATIMADO DE PARAMETROS
% max = 100; min = 15; % PARA EL ESTIMADOR DE PARAMETROS
% PARAMETROS PARA OPTIMIZAR GANANCIA DEL FILTRO DE KALMAN
Xi = 0.001; Sigma = 400;
% PARAMETROS DE OPTIMIZACION DEL CONTROLADOR Ke
R = 1; Qa = 1*eye(r+nn,r+nn);
% MODELO LINEAL DEL PROCESO EN TIEMPO CONTINUO
A = [-0.2 0 0 0;1 0 0 0;2 0 -2 0;5 0 0 -5;
B = [0.001;0;0;0;
C = [0 1 0 0; D = [0;
T = 0.8; % PERIODO DE MUESTREO
% MODELO LINEAL DISCRETO
[G,H,C,D= 2dm(A ,B ,C ,D ,T,'zoh');
[num,den=ss2tf(G,H,C,D);
a1 = den(2); a2 = den(3); a3=den(4); a4=den(5);
b1 = num(2); b2 = num(3); b3=num(4); b4=num(5);
% CONDICIONES INICIALES
Ref = 1; % MAGNITUD DE LA SE~NAL DE REFERENCIA: Yo = Ref

5.7 Problemas Resueltos

%
%
%

Ce = (1 + a1 + a2 + a3 + a4)*Ref; % Uo = 0 (arbitrario)
thi = [-a1 -a2 -a3 -a4 b1 b2 b3 b4 Ce';
alfa=1000; Pi = alfa*eye(NN); % MATRIZ P INICIAL
lamb=0.98; lamb0 = 0.99;
% FACTOR DE MEMORIA
Y(1)=0;Y(2)=0;Y(3)=0;Y(4)=0; y(1)=0;y(2)=0;y(3)=0;y(4)=0;
U(1)=0;U(2)=0;U(3)=0;U(4)=0; u(1)=0;u(2)=0;u(3)=0;u(4)=0;
xmenos = zeros(nn,1); % VECTOR DE OBSERVACION INICIAL
z=0; % ACCION INTEGRAL INICIAL
INCIO DEL LAZO DE CONTROL **********************************
MM = 1000;
for t = 1:MM
SE~NAL DE REFERENCIA
g(t+4)=6 + 4*sign(sin(0.01*t));
MODELO LINEAL DEL PROCESO
Y(t+4)=[Y(t+3) Y(t+2) Y(t+1) Y(t) ...
U(t+3) U(t+2) U(t+1) U(t)*[-a1 -a2 -a3 -a4 b1 b2 b3 b4';
y(t+4) = Y(t+4) - g(t+4); % salida residual (desvia ion)
ESTIMACION DE PARAMETROS (METODO MCRM)%
psi = [Y(t+3) Y(t+2) Y(t+1) Y(t) ...
U(t+3) U(t+2) U(t+1) U(t) 1';
rho = max(1,norm(psi));
psin = psi/rho;
Nn = hol(Pi'); % Nn'*Nn = Pi => Nn*N' = Pi'
S = inv(diag(Nn*ones(NN,1),0));
Ps = S*Pi*S;
psins = inv(S)*psin;
rt = 1 + psins'*Ps*psins;
lamb = 1 - (rt-sqrt(rt^2-4*norm(Ps*psins)^2/tra e(Ps)))/2;
e = Y(t+4)/rho - psin'*thi;
j = psins'*Ps*psins + lamb;
th = thi + e*inv(S)*Ps*psins/j;
Hns = Ps*psins/j;
Ps = (Ps - Hns*psins'*Ps)/lamb;
tt = abs(max(eig(Ps))/min(eig(Ps)) );
max = 100; min = 15;
if tt <= min,
Pi = Ps; thi = th;
elseif tt >= max,
Nnew = hol(Ps'); % Nnew*Nnew' = Ps'
Snew = inv(diag(Nnew*ones(NN,1),0));
Psnew = Snew*Ps*Snew;
Pi = Psnew; thi = th;
end

267

268

Control Adaptivo

% 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

Posicin (m)

8
6
4
2
0
0

100

200

300
400
500
Tiempo en segundos

600

700

800

100

200

300
400
500
Tiempo en segundos

600

700

800

Voltaje de control

200
100
0
100
200
0

Figura 5.21: Posi ion del as ensor y la fuerza de ontrol (problema 5.4).
Problema 5.5

La gura 2.2 muestra dos tanques identi os olo ados en as ada. La se ion
horizontal A=9 m2 de ada tanque es onstante. El objetivo de ontrol es
ontrolar la altura H2 empleando el ujo Qo. La dedu ion del modelo
linealizado del pro eso se des ribe en el ejemplo 2.1. Dise~nar un ontrolador
adaptivo on autosintoniza ion que umpla los siguientes requerimientos:
tiempo de estabiliza ion menor que 15 s, sobreimpulso menor al 5 % y
error en estado estable nulo. Estas ondi iones de dise~no deben mantenerse
uando se ambie la referen ia (por ejemplo de 3 a 1 m). Adem
as, el ujo
de entrada (la se~nal de ontrol) no debe sobrepasar los 3 m3/s.
% p9adap1.m SOLUCION DEL PROBLEMA 5.5
lear all
% PARAMETROS GENERALES

270

%
%
%
%

%
%
%

Control Adaptivo

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

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

271

272

Control Adaptivo

u(t+2) = - Ka*[xmas;z;
% ACTUALIZANDO ESTADOS
xmenos = GE*xmas + HE*u(t+2);
% CALCULO DE Uo (VALOR D.C. DE U)
% AE(z^(-1)) = 1 + ae1*z^(-1) + ae2*z^(-1);
% BE(z^(-1)) =
be1*z^(-1) + be2*z^(-1);
% AE(z^(-1))*Y(k) = BE(z^(-1))*U(k) + Ce; Ce = th(N), N=5
% En estado esta ionario: z=1, Y(k) = Yo(k) (Referen ia)
% enton es: U(z=1) = inv(B(z=1)*[A(z=1)*Ref - e
AE = 1 + ae1 + ae2; BE = be1 + be2;
Uin = inv(BE)*(AE*g(t+2) - Ce);
% CALCULO DE LA SE~NAL DE CONTROL U(t)
U(t+2) = u(t+2) + Uin;
% LIMITANDO LA SE~NAL U(t)
if(U(t+2) > 3)
U(t+2) = 3;
elseif(U(t+2) <-3)
U(t+2) = -3;
end
end % FIN DEL LAZO DE CONTROL **********************
% GRAFICOS
ejex = linspa e(0,MM*T,MM);
subplot(2,1,1)
plot(ejex,g(3:MM+2),ejex,Y(3:MM+2)), grid
ylabel('Nivel en metros')
xlabel('Tiempo en segundos')
subplot(2,1,2)
plot(ejex,U(3:MM+2)), grid
xlabel('Tiempo en segundos')
ylabel('Flujo de ontrol (m/s)')
print -deps -f p9adap1

Problema 5.6

El pro eso ele trome ani o mostrado en la gura 3.26 se des ribe en el problema 3.8. Dise~nar un sistema de ontrol adaptivo on autosintoniza ion
para ontrolar la velo idad angular del eje del motor mediante el voltaje
de entrada que puede variar entre  100 voltios. La se~nal de referen ia es
arbitraria (problema de seguimiento).
% p11adap1.m SOLUCION DEL PROBLEMA 5.6
lear all
% PARAMETROS GENERALES

5.7 Problemas Resueltos

273

Nivel en metros

3
2.5
2
1.5
1
0

20

40

60
80
100
Tiempo en segundos

120

140

160

20

40

60
80
100
Tiempo en segundos

120

140

160

Flujo de control (m/s)

4
2
0
2
4
0

Figura 5.22: Nivel ontrolado H2 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

%
%

%
%

Ps = (Ps - Hns*psins'*Ps)/lamb;
tt = abs(max(eig(Ps))/min(eig(Ps)) );
max = 100; min = 15;
if tt <= min,
Pi = Ps; thi = th;
elseif tt >= max,
Nnew = hol(Ps'); % Nnew*Nnew' = Ps'
Snew = inv(diag(Nnew*ones(NN,1),0));
Psnew = Snew*Ps*Snew;
Pi = Psnew; thi = th;
end
RECUPERACION DE LA ECUACION CANONICA CONTROLABLE
ae1 = -th(1); ae2 = -th(2); ae3 = -th(3);
be1 = th(4); be2 = th(5); be3 = th(6); Ce = th(7);
ae11 = 0; ae12 =1; ae13 = 0; ae21 = 0; ae22 = 0;
ae23 = 1; ae31 =-ae3; ae32 = -ae2; ae33 = -ae1;
GE = [ae11 ae12 ae13;ae21 ae22 ae23;ae31 ae32 ae33;
be11 = 0; be21 = 0; be31 = 1; HE = [be11;be21;be31;
e11 =be3; e12 = be2; e13 = be1;
CE = [ e11 e12 e13; DE = [0;
CALCULO DE LA GANANCIA F DEL ESTIMADOR DE KALMAN
F = dlqe(GE,HE,CE,Sigma,Xi);
xmas = xmenos + F*(y(t+3) - CE*xmenos);
z = z -CE*xmas;
CALCULO DE LA GANANCIA Ka DEL CONTROLADOR
Ga = [GE zeros(nn,r);-CE eye(r,r);
Ha = [HE;zeros(r,r);
Ca = [CE zeros(r,r);
Ka = dlqr(Ga,Ha,Qa,R);
CALCULO DE LA LEY DE CONTROL RESIDUAL
u(t+3) = - Ka*[xmas;z;
ACTUALIZANDO ESTADOS
xmenos = GE*xmas + HE*u(t+3);
AE = 1 + ae1 + ae2 + ae3; BE = be1 + be2 + be3;
Uin = inv(BE)*(AE*Yo(t+3) - Ce);
CALCULO DE LA SE~NAL DE CONTROL U(t)
U(t+3) = u(t+3) + Uin;
LIMITANDO LA SE~NAL U(t)
if(U(t+3) > 100)
U(t+3) = 100;
elseif(U(t+3) <-100)
U(t+3) = -100;
end

275

276

Control Adaptivo

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

Velocidad (rad/s)

8
6
4
2
0
2
0

10

20

30

10

20

30

40

50

60

70

80

40
50
Tiempo en seg

60

70

80

Voltaje de control

40
20
0
20
40
0

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 dise~nar 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


% 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;

277

278

Control Adaptivo

for t = 1:MM
% SE~NAL DE REFERENCIA
Yo(t+4)= 0.5;%sign(sin(0.005*t));
% MODELO LINEAL DEL PROCESO
Y(t+4) = [Y(t+3) Y(t+2) Y(t+1) Y(t)...
U(t+3) U(t+2) U(t+1) U(t)*...
[-a1 -a2 -a3 -a4 b1 b2 b3 b4';
y(t+4) = Y(t+4) - Yo(t+4); % salida residual
% ESTIMACION DE PARAMETROS (METODO MCRM)
psi = [Y(t+3) Y(t+2) Y(t+1) Y(t)...
U(t+3) U(t+2) U(t+1) U(t) 1';
rho = max(1,norm(psi));
psin = psi/rho;
Nn = hol(Pi'); % Nn'*Nn = Pi => Nn*N' = Pi'
S = inv(diag(Nn*ones(NN,1),0));
Ps = S*Pi*S;
psins = inv(S)*psin;
rt = 1 + psins'*Ps*psins;
lamb = 1 - (rt-sqrt(rt^2-4*norm(Ps*psins)^2/tra e(Ps)))/2;
e = Y(t+4)/rho - psin'*thi;
j = psins'*Ps*psins + lamb;
th = thi + e*inv(S)*Ps*psins/j;
Hns = Ps*psins/j;
Ps = (Ps - Hns*psins'*Ps)/lamb;
tt = abs(max(eig(Ps))/min(eig(Ps)) );
max = 100; min = 15;
if tt <= min,
Pi = Ps; thi = th;
elseif tt >= max,
Nnew = hol(Ps'); % Nnew*Nnew' = Ps'
Snew = inv(diag(Nnew*ones(NN,1),0));
Psnew = Snew*Ps*Snew;
Pi = Psnew; thi = th;
end
% RECUPERACION DE LA ECUACION CANONICA CONTROLABLE
ae1 = -th(1); ae2 = -th(2); ae3 = -th(3); ae4 = -th(4);
be1 = th(5); be2 = th(6); be3 = th(7); be4 = th(8); Ce = th(9);
dene = [1 ae1 ae2 ae3 ae4;
nume = [0 be1 be2 be3 be4;
[GE,HE,CE,DE = tf2ss(nume,dene);
% CALCULO DE LA GANANCIA F DEL ESTIMADOR DE KALMAN
F = dlqe(GE,HE,CE,Sigma,Xi);
xmas = xmenos + F*(y(t+4) - CE*xmenos); % OBSERVACION

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 se~nal 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. Dise~nar un sistema de ontrol adaptivo on autosintoniza ion on el
proposito de estabilizar la humedad del material en la banda transportadora,
a pesar de que el tiempo muerto T = v=d vara entre 9 y 11 s. Para propositos

280

Control Adaptivo
1

Posicin (m)

0.8
0.6
0.4
0.2
0
0

50

100

150

200

250

50

100
150
Tiempo en seg

200

250

Voltaje de control

10
5
0
5
10
15
0

Figura 5.24: Posi ion de la bola y el voltaje de ontrol para el problema 5.7.
del modelado del pro eso, el tiempo muerto puede ser des rito mediante la
aproxima ion de Pade de ter er orden (ver ejemplo ??):
num(s) 1 Tt s=2 + (Tt s)2 =10 (Tt s)3 =120
e Ts 
=
den(s) 1 + Tt s=2 + (Tt s)2 =10 + (Tt s)3 =120
Espe i a iones de dise~no: tiempo de estabiliza ion menor que 40 s, error
en estado esta ionario nulo y por entaje de sobreimpulso menor al 5 %.
Problema 5.9

Las e ua iones del modelo linealizado para ontrolar la posi ion del a~non
montado en la torreta de un tanque ( gura 3.28), empleando un a tuador
hidrauli o se detallan en el problema 3.9.
(a) Dise~nar un sistema de ontrol adaptivo on autosintoniza ion para
ontrolar el angulo de eleva ion  on las espe i a iones siguientes:
tiempo de estabiliza ion menor que 5 s, mnimo sobreimpulso en la
respuesta y error de estado esta ionario nulo. Los disturbios tipo es alon pueden a tuar simultaneamente o no, y pueden ser positivos o
negativos. Para ada aso, el sistema de ontrol dise~nado debe ser
apaz de minimizar sus efe tos.

5.8 Problemas Propuestos

281

(b) Lo mismo que (a), pero en este aso para ontrolar el angulo azimutal.
Problema 5.10

La gura 3.31 muestra el pro eso servomotor on arga no lineal des rito en
la se ion 3.3, en donde la arga no lineal posee ahora dos grados de libertad
on Lo = 2L1=3 y Mo =0.02 kg. La union de la arga on el eje del servomotor
no es exible. Las e ua iones que des riben la dinami a del sistema son
materia del problema 3.12. Dise~nar un sistema de ontrol adaptivo on
autosintoniza ion para ontrolar simultaneamente las posi iones  y  on
mnimo tiempo de estabiliza ion y mnimo sobreimpulso en la respuesta.
Problema 5.11

La gura 3.32 muestra el pro eso pendulo doble no lineal que es una extension del pendulo simple des rito en la se ion 3.1. El a oplamiento entre los
dos pendulos de igual longitud no es exible. Las e ua iones que des riben la
dinami a del sistema son materia del problema propuesto 3.13. Considerar
que la arga esferi a es de 0.02 kg. Dise~nar un sistema de ontrol adaptivo
on autosintoniza ion para ontrolar simultaneamente las posi iones  y 
on mnimo tiempo de estabiliza ion y mnimo sobreimpulso en la salida, de
modo tal que el pendulo doble permanez a en posi ion verti al.
Problema 5.12

La gura 3.33 muestra el pro eso doble grua puente no lineal que es una extension del pro eso grua-puente des rito en la se ion 3.2. El a oplamiento
entre las dos se iones iguales de la varilla no es exible. Para poder determinar un modelo no lineal dinami o para este pro eso, onviene emplear las
e ua iones de Lagrange de la me ani a lasi a (ver problema 3.14). Considerar que la arga esferi a es de 0.02 kg. Dise~nar un sistema de ontrol adaptivo
on autosintoniza ion para ontrolar simultaneamente las posi iones  y 
on mnimo tiempo de estabiliza ion y mnimo sobreimpulso, de modo tal
que la doble grua-puente permanez a en posi ion verti al uando el arro
realiza un re orrido predeterminado.
Problema 5.13

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


velo idad v gra ias a la a ion de la fuerza u produ ida por su motor. Si

282

Control Adaptivo

se despre ia la iner ia de las ruedas y se asume que la fuerza de fri ion bv,
donde b= 50 N-s/m es el oe iente de fri ion, es lo uni o que se opone
al movimiento del arro, enton es la dinami a del pro eso puede modelarse
omo (ver ejemplo 1.16):
mv_ (t) + bv(t) = u(t);

v_ =

dv
dt

Dise~nar un sistema de ontrol adaptivo on autosintoniza ion para ontrolar la velo idad del movil on mnimo tiempo de estabiliza ion y mnimo
sobreimpulso en la salida. La se~nal de referen ia puede ser arbitraria (problema de seguimiento).
Problema 5.14

El motor D.C. es un a tuador muy popular en los sistemas de ontrol, ya


que su movimiento rotatorio, mediante a oples ade uados en su eje, puede
onvertirse fa ilmente en movimiento de trasla ion omo por ejemplo, en
fajas transportadoras y en brazos manipuladores. La gura 4.3 muestra el
ir uito de armadura del motor y el diagrama de uerpo libre de su rotor.
Las e ua iones que gobiernan el omportamiento dinami o del motor fueron
derivadas en el ejemplo 4.1. Dise~nar dos sistemas de ontrol adaptivo on
autosintoniza ion. El primero para estabilizar la velo idad angular del eje
del motor on las espe i a iones siguientes: tiempo de estabiliza ion menor
que 4 s, error en estado estable menor al 1 % y sobreimpulso en la salida
menor al 5 %. El segundo sistema de ontrol adaptivo a dise~nar debe estabilizar la posi ion del eje del motor on las mismas espe i a iones de
dise~no.

Cap
tulo 6

Control Predi tivo


En este aptulo se desarrolla un pro edimiento para dise~nar un sistema de ontrol predi tivo basado en modelos. El algoritmo de ontrol predi tivo empleado
es el denominado ontrol matri ial dinami o, el ual puede ser tambien del tipo
es alar. Para validar el pro edimiento de dise~no propuesto, se presenta una
apli a ion: ontrol predi tivo de la posi ion angular de un servomotor sujeto a
argas no lineales variables.
La penultima se ion, problemas resueltos, trata el dise~no 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,
dise~nos, 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 metodologa de ontrol que usa el modelo del pro eso para al ular y optimizar las predi iones
de las a iones de ontrol y de la salida ontrolada. Esta metodologa se ha
desarrollado alrededor de iertos prin ipios, dos de los uales son:
 Empleo de un modelo del pro eso para pronosti ar su salida a ontrolar
en instantes de tiempo futuro.
 Cal ulo de una a ion de ontrol optima basada en la minimiza ion
de fun iones de osto, posiblemente in luyendo restri iones en las
variables del pro eso.

284

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 aptulo, 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
dise~no 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 ademi o omo tambien 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
interes en esta metodologa, si bien el trabajo pionero se ini io alrededor de
ha e dos de 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 tambien del es enario del ontrol
futuro. La obten ion del modelo que re eje lo mas elmente posible la
evolu ion dinami 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 se~nal 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 ion 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

Salida pasada
del proceso
Pasado

Tiempo
Muerto

1 2
Momento presente t

Futuro

N2

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 omo y(t + k=t) y a N2 se le denomina el horizonte de predi ion. La
predi ion se realiza mediante el modelo del pro eso, el ual se asume
que esta disponible. El pronosti o en uestion depende de las entradas y salidas pasadas, pero tambien del es enario del ontrol futuro
u(t + k=t), k = 0; : : : ; N2 1; es de ir, de las a iones de ontrol que
se intentan apli ar a partir del tiempo t.

286

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; : : : ; N2 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; : : : ; N2 .

 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; : : : ; N2 1, mientras que se dejan


de lado los demas elementos de di ho ve tor. En el proximo 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 ion
a traves de un modelo del pro eso, la espe i a ion de una traye toria de
referen ia, la estru tura ion de la futura ley de ontrol, la 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
pasadas

+ Trayectoria de
Salidas
referencia
predecidas
MODELO

Entradas
futuras
OPTIMIZADOR
Funcion
de costo

restricciones

Figura 6.2: Estrategia del Control Predi tivo Basado en Modelos

6.3 El Modelo del Pro eso

6.3

287

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 se~nal de ontrol), x(t) es la salida
del modelo y n(t) es el disturbio en el pro eso.
n
u

MODELO

Figura 6.3: Modelo del pro eso bajo perturba iones.


El Disturbio n(t)

La se~nal de disturbio n(t) in luye todos los efe tos no deseados en la salida
y(t). Esta se~nal representa el efe to onjunto de todos los disturbios sobre el
pro eso, otras entradas no medibles, ruido de medi ion, errores de modelado,
in ertidumbres, et . El disturbio n(t), que es de ara ter esto asti o, puede
ser modelado mediante un ltro oloreado de la forma:
n(t) C (z 1 )
=
(6.2)
e(t) D(z 1 )
donde z 1 es el operador de desplazamiento, e(t) es un ruido blan o no
orrela ionado on media ero, y los polinomios son de la forma:
C (z 1 ) = 1 + 1 z 1 +    + n z n
(6.3)
1
1
n
D(z ) = 1 + d1 z +    + dn z
(6.4)
El ltro de disturbio debe dise~narse: para eliminar disturbios en el estado
estable ( uando z = 1), omo ltro sele tivo (para eliminar una determinada
fre uen ia) y para in rementar la robustez del sistema en la presen ia de
errores de medi ion. Estru turas tpi as de los polinomios del ltro pueden
ser:
C (z 1 ) = 1 + z 1 ;
D(z 1 ) = (1 + dz 1 )(1 z 1 )

288

Control Predi tivo

La Salida x(t) del Modelo

La se~nal x(t) representa el efe to del pro eso en la salida y(t) debido a la
entrada u(t). De nuevo, x(t) no es una se~nal medible. En general, la rela ion
entre u(t) y x(t) puede representarse mediante un modelo dinami o generi o
de la forma:
x(t) = f (x(t 1); x(t 2); : : : ; u(t 1); u(t 2); : : :)
(6.5)
donde f (:) es una fun ion que puede estru turarse de diversas formas. Es
de ir, f (:) puede ser una e ua ion de diferen ias, una red neuronal o una
aja negra on parametros a ser estimados.
El Modelo CARIMA

El modelo CARIMA, del ingles \Controlled Autoregressive Integrated Moving Average", es un modelo lineal basi o y bastante extendido en su apli a ion y es pre isamente el que emplearemos. El modelo CARIMA del
pro eso puede ser representado por:
C (z 1 )
A(z 1 )y(t) = B (z 1 )u(t) +
e(t)
(6.6)
D(z 1 )
donde:
A(z 1 ) = 1 + a1 z 1 + ::: + an z n
(6.7)
B (z 1 ) = b1 z 1 + ::: + bn z n
(6.8)
El origen del termino CARIMA se debe a que la e ua ion de diferen ias
del modelo del pro eso presenta tres omponentes, a saber, la omponente
salida autoregresiva:
y(k) = a1 y(k 1) a2 y(k 2) ::: an y(k na )
el omponente promedio temporal de ontrol:
+ b0u(k 1) + b1u(k 2) + ::: + bn u(k nb 1)
y el omponente promedio temporal integrado del error e(t):
+ e(k) + 1 e(k 1) + 21e(kz 12) + ::: + n e(k n )
a

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 ion CARIMA toma la forma:
B (z 1 )
b1 z 1 + b2 z 2
y(t) = x(t) =
u
(
t
)
=
(6.9)
A(z 1 )
1 + a1 z 1 + a2 z 2 u(t)
la ual ondu e a la e ua ion de diferen ias:
y(t) = a1 y(t 1) a2 y(t 2) + b1 u(t 1) + b2 u(t 2)
(6.10)
El modelo lineal CARIMA mas generalizado es de la forma:
B (z 1 )
C (z 1 )
A(z 1 )y(t) =
u
(
t
)
+
e(t)
(6.11)
F (z 1 )
D(z 1 )
Notar en (6.11) que la salida y(t) del modelo tambien umple que (ver
e ua ion (6.1):
y(t) = x(t) + n(t)
C . La representa i
donde: uy = AFB y ne = AD
on predi tiva de la ultima
expresion es:
y(t + k=t) = x(t + k=t) + n(t + k=t)
(6.12)
Ejemplo 6.1

El modelo lineal de orden 2 del servomotor D.C. sujeto a argas no lineales


des rito en la se ion 3.3 es:
q_ = w


B n2 KE
nK K
N
w_ =
q
+
w + a t u
M
M
MR
RM
Asumiendo que el ruido de medi ion n(t) en la posi ion del eje del servomotor
(la salida del pro eso) es oloreado:
1
n(t) =
1 z 1 e(t)
determine su modelo CARIMA.
Solu ion: La fun ion de transferen ia de pulso del pro eso posee la forma:
q (z )
b1 z + b2
b1 z 1 + b2 z 2
B (z 1 )
=
=
=
u(z ) z 2 + a1 z + a2 1 + a1 z 1 + a2 z 2 A(z 1 )

290

Control Predi tivo

y a~nadiendo el ruido de medi ion obtenemos:


B (z 1 )
B (z 1 )
1 e(t)
q (z ) =
u
(
z
)
+
n
(
t
)
=
u(z ) +
1
1
A(z )
A(z )
1 z1
donde e(t) es ruido blan o gaussiano on media nula. La e ua ion de diferen ias del pro eso ruidoso viene a ser:
q(t) = (1 a1 )q(t 1) + (a1 a2 )q(t 2) + a2 q(t 3)+
b1 u(t 1) + (b2 b1 )u(t 2) b2 u(t 3) + e(t) + a1 e(t 1) + a2 e(t 2)
En el siguiente ejemplo analizaremos la se~nal n(t) resultante.
6.4

El Modelo del Predi tor

El predi tor y(t + k=t) de la se~nal de salida y el predi tor n(t + k=t) de
la se~nal de perturba ion pueden ser modelados empleando representa iones
serie y serie/paralelo omo se detalla a ontinua ion.
6.4.1 Predi ion de y (t + k=t)

Para prede ir y(t + k=t) existen dos posibles esquemas de implementa ion,
los uales se muestran en la gura 6.4 para un modelo de segundo orden.
x(t+k-1/t)

y(t+k-1/t)

x(t+k-2/t)
u(t+k-1/t)
u(t+k-2/t)

y(t+k-2/t)
MODELO
PARALELO

x(t+k/t)
u(t+k-1/t)
u(t+k-2/t)

MODELO
SERIE /
x(t+k/t)
PARALELO

Figura 6.4: Representa ion 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 expresion es:


B (z 1 )
1 e(t) = x(t) + n(t)
y(t) =
u(t) +
(6.13)
1
A(z )
1 z1
la ual se obtiene de la e ua ion1 (6.6)) on C (z 1 ) = 1, D(z 1) = (1 z 1 ),
n(t) = 1 1z 1 e(t), e y(t) = BA((zz 1 )) u(t). Por onsiguiente, para ualquier t:
x(t) = (1 A(z 1 ))x(t) + B (z 1 )u(t)
= a1x(t 1)    an x(t na)
+b1u(t 1) +    + bn u(t nb)
(6.14)
siendo su expresion generi a predi tiva:
x(t + k=t) = a1 x(t + k 1=t)    an y(t + k na =t)
+b1 u(t + k 1=t) +    + bn u(t + k nb=t) (6.15)
a

El Modelo Serie/Paralelo

El modelo serie/paralelo puede ser empleado para pro esos 1estables o inestables. En este aso, el modelo del disturbio n(t) = DC ((qq 1)) e(t) se es oge
diferente al del modelo paralelo. El modelo serie/paralelo se obtiene rees ribiendo el modelo paralelo omo sigue:
A(z 1 )
A(z 1 )y(t) = B (z 1 )u(t) +
(6.16)
1 z 1 e(t)
que es la e ua ion (6.6) uando C (z 1) = A(z 1 ) y D(z 1) = 1 z 1. La
salida y(t) toma enton es la forma:
A(z 1 )
y(t) = (1 A(z 1 ))y(t) + B (z 1 )u(t) +
1 z 1 e(t) = y(t) + n(t) (6.17)
donde y(t) se obtiene de la rela ion:
y(t) = (1 A(z 1 ))y(t) + B (z 1 )u(t)
y(t) = a1 y(t 1)    an y(t na )
+b1u(t 1) +    + bn u(t nb)
(6.18)
Por onsiguiente, la expresion predi tiva del modelo serie/paralelo es:
y(t + k=t) = a1 y(t + k 1=t)    an y(t + k na =t)
+b1 u(t + k 1=t) +    + bn u(t + k nb=t) (6.19)
a

292

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

PROCESO

PROCESO

+
x
u

MODELO
PARALELO

y
u

MODELO
SERIE /
PARALELO

Figura 6.5: Implementa ion 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 ion:
n(t) = x(t) y(t)
(6.20)
Como ya se tienen disponibles los valores previos n(t 1); n(t 2); : : :, ello
nos permite omputar:
D(z 1 )
e(t) =
n(t)
C (z 1 )
e(t) = 1 e(t 1) 2 e(t 2)    + n(t)+ d1 n(t 1)+ d2 n(t 2)+    (6.21)
donde e(t) es un ruido blan o no orrela ionado on media nula. Esto signi a que la mejor predi ion de e(t) es:
e(t + k=t) = 0; k = 1; : : : ; N2
(6.22)
Por extension, la mejor predi ion del disturbio se obtiene de:
C (z 1 )
n(t + k=t) =
e(t + k=t); k = 1; : : : ; N2
D(z 1 )
= d1n(t + k 1=t) d2n(t + k 2=t) + e(t + k=t)   
+ 1e(t + k 1=t) + 2 e(t + k 2=t) +   
(6.23)

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) = d1 n(t=t) d2 n(t 1=t)   
k = 2; n(t + 2=t) = d1 n(t + 1=t) d2 n(t=t)   
...
k = N2 ; n(t + N2 =t) = d1 n(t + N2 1=t) d2 n(t + N2 2=t)   
Ejemplo 6.2

Comparar las respuestas a una sinusoide del pro eso servomotor D.C. no
lineal del ejemplo 6.1, uando la salida y no es ruidosa y uando lo es. El
tiempo de muestreo es T = 0.01 s. Considerar ruido blan o gaussiano.
Solu ion: Empleando el resultado del ejemplo 6.1, la solu ion a este problema se detalla en el programa ejem6 2.m. Los resultados se muestran en
las guras 6.6, 6.7 y 6.8. Observar en la ultima gura que el ruido e(t)
empleado posee media ero y una fun ion de distribu ion gaussiana.
% ejem6_2.m SOLUCION EJEMPLO 6.2
lear all
% PARAMETROS DEL PROCESO NO LINEAL (TABLA 3.3)
JL = 3.5e-7;
bL = 1e-5;
Ro = 0.01; Lo = 0.776;
Jm = 1.9062e-6; bm = 1.8338e-6; g = 9.81;
E = 31.035e-3;
R = 7.38;
m = 0.06377;
Ka t = 14.9;
= 0.25; Mo = 0.045; % 0, 0.01, 0.02
K = 31.071e-3;
n = 19.741;
L = 4.64e-2;
B = n^2*bm + bL;
Jeff = n^2*Jm +JL;
M = Jeff + (1/3)*m*Lo^2 + Mo*Lo^2 + (2/5)*Mo*Ro^2;
N = g*Lo*(Mo+m/2);
% MODELO NO LINEAL DEL PROCESO CONTINUO DE SEGUNDO ORDEN
A = [0 1;-N/M -(B + n^2*K*E/R)/M;
B = [0;n*K*Ka t/(R*M); C = [1 0; D = [0;
% MODELO LINEAL DISCRETO DEL PROCESO DE SEGUNDO ORDEN
T = 0.01;
% PERIODO DE MUESTREO
[G,H,C,D= 2dm(A ,B ,C ,D ,T,'zoh');
[num,den=ss2tf(G,H,C,D);
a1 = den(2); a2 = den(3); b1 = num(2); b2 = num(3);
% CONDICIONES INICIALES NULAS
q(1)=0; q(2)=0; q(3)=0; u(1)=0; u(2)=0; u(3)=0;
y(1)=0; y(2)=0; y(3)=0; e(1)=0; e(2)=0; e(3)=0;
% RESPUESTAS DEL PROCESO

294

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

Posicin en rad

4
2
0
2
4
0

4
5
6
Tiempo en segundos

10

4
5
6
Tiempo en segundos

10

Entrada (voltios)

1
0.5
0
0.5
1
0

Figura 6.6: Respuesta no ruidosa del pro eso a una sinusoide.

Posicin ruidosa (rad)

4
2
0
2
4
6
0

4
5
6
Tiempo en segundos

10

4
5
6
Tiempo en segundos

10

Entrada (voltios)

1
0.5
0
0.5
1
0

Figura 6.7: Respuesta ruidosa del pro eso a una sinusoide.

Control Predi tivo


Ruido gausiano e(t) (rad)

296
0.4
0.2
0
0.2
0.4
0

4
5
6
Tiempo en segundos

10

Distribucin de e(t)

300

200

100

0
0.4

0.3

0.2

0.1
0
0.1
< e(t) >

0.2

0.3

0.4

Figura 6.8: Ruido blan o e(t) on media ero y distribu ion gaussiana.
6.5

El Controlador Predi tivo

6.5.1 Objetivo del Controlador

El objetivo del ontrolador predi tivo es determinar el ve tor de ontrol


1, que minimi e la siguiente fun ion de osto:

u(t + k=t); k = 0; : : : ; N2
J=

donde :

N2
X
k=N1

[r(t + k=t)

y(t + k=t)2 + 

NX
u 1
k=0

[u(t + k=t)2

(6.24)

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 esta representada por la e ua ion:
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 dise~no son:
 N1: horizonte de predi ion mnimo.

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).
 : parametro de pondera ion; por defe to onsiderar ero.
 : parametro de ltraje; por defe to onsiderar ero.
Si la traye toria deseada w(t) se programa previamente, enton es los valores
futuros w(t + k) se pueden emplear para determinar w(t + k=t). Es de ir,
w(t + k=t) = w(t + k) para k = 1; : : : ; N2 . Si no deseamos una estrategia
de ontrol predi tivo en avan e, el valor a tual w(t) se puede usar omo un
valor de predi ion w(t + k=t) = w(t) para k = 1; : : : ; N2 .
Es importante observar ademas que:
1. La traye toria de referen ia dada en (6.26) onstituye un ltro de
primer orden para w(t). Este ltro se puede representar mediante
la siguiente fun ion de transferen ia:
r(z )
1 = z(1 )
=
(6.27)
w(z ) 1 z 1
z
2. El ltro para w(t) se puede implementar fuera del lazo de ontrol, no
afe tando de esta manera a la estabilidad del sistema, pero s ontribuyendo al re hazo del ruido.
La gura 6.9 ilustra el objetivo del ontrol predi tivo basado en modelos.
6.5.2 Respuesta Libre y Respuesta Forzada

Con eptualmente, la respuesta futura y(t + k=t) puede ser onsiderada omo
el resultado a umulativo de dos efe tos:
y(t + k=t) = ylibre(t + k=t) + yforz (t + k=t)
(6.28)
donde el subndi e forz indi a forzada. La respuesta libre ylibre(t + k=t)
apare e omo onse uen ia de los fa tores siguientes:
 El efe to debido a las se~nales de ontrol pasadas u(t 1); u(t 2); : : :

298

Control Predi tivo

1
0
0
1

1
0
0
1

0
1
01
1
1
0
0
0
1
0
0 1
1
0
1
00
11
00
11
00
11
00
11

1
0
0
1

N u =4

0
1
0
0
0
00
11
0
01
01
1
01
1
0
1
00 1
11
0
1
11
0
0
1
y(t+k/t)
u(t+k/t)

o o
o o
o
o
o
o
o o o o o o o o o o o o o o o o
o
o o o o
o o o

r=w

PASADO

N 1=2

N 2 =8

Tiempo actual t

FUTURO

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
es, u(t=t) = u(t + 1=t) = : : : = u(t + Nu 1=t) = 0

1); : : :; esto

 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 ion del ontrol futuro; es de ir, ausado por las se~nales 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 alon on amplitud u(t=t) apli ado al pro eso en el tiempo
t, resulta en una ontribu ion gk u(t=t) en la salida del pro eso en
el tiempo t + k. Es de ir, k tiempos de muestreo mas tarde ( gura
6.10(a)).
 Un es alon on amplitud u(t +1=t) apli ado al pro eso en el tiempo
t + 1, resulta en una ontribu ion gk u(t + 1=t) para la salida del
pro eso en el tiempo t + k 1. Es de ir, k 1 tiempos de muestreo
mas tarde ( gura 6.10(b)).
 et .

6.5 El Controlador Predi tivo

299

Entrada escalon

u(t/t)

g u(t/t)
k
Respuesta

al escalon
k Muestras
t

Tiempo
t+k
(a)

Entrada escalon

u(t+1/t)

g u(t+1/t)
k
Respuesta

al escalon
Tiempo

(k-1) Muestras

t+k
(b)

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

u(t + Nu 1=t)
(6.29)
donde los parametros g1; : : : ; gN2 son los oe ientes de la respuesta del
sistema al es alon unitario. Es de ir, la respuesta de la salida del sistema a
los ambios tipo es alon unitario en la entrada.
Para un sistema lineal, la respuesta al es alon unitario no depende del
punto de opera ion. Este punto es jo y puede ser al ulado fuera de lnea
(\o -line") usando el modelo del sistema.
Para un sistema no lineal, omo en el aso de una red neuronal, la
respuesta al es alon unitario es diferente para ada punto de opera ion.
Esta respuesta tiene que ser al ulada en ada tiempo de muestreo (\online"), apli ando en ada instante de muestreo un ambio es alon ( ti io) a
la entrada a tual del pro eso y al ulando su efe to en la salida respe tiva.
Nu +1

300

Control Predi tivo

De la e ua ion (6.29) se puede obtener la siguiente expresion para la


omponente forzada:
Yforz = GU
(6.30)
donde:


Yforz = yforz (t + N1 =t) yforz (t + N1 + 1=t)    yforz (t + N2 =t) T
2

U=

gN1 gN1 1
6 gN +1
gN1
1
G=6
4 :::
:::
gN2 gN2 1
u(t=t) u(t + 1=t)

:::
:::
7
:::
:::
7
5
:::
:::
: : : gN2 Nu +1
   u(t + Nu 1=t)

T

y empleando la e ua ion (6.28), podemos es ribir:


 + GU
Y=Y
(6.31)
donde:
Y = [y(t + N1 =t) : : : y(t + N2 =t)T ; U = [u(t=t) : : : u(t + Nu 1=t)T
 = [ylibre (t + N1 =t) : : : ylibre(t + N2 =t)T ; R = [r(t + N1 =t) : : : r(t + N2 =t)T
Y
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) = a1 y(k 1) a2 y(k 2) + b1 u(k 1) + b2 u(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) = a1 g(k 1) a2 g(k 2) + b1 u(k 1) + b2 u(k 2)
As podemos obtener que g(0) = 0, g(1) = b1 , g(2) = a1b1 + b1 + b2 , y:
g(k) = a1 g(k 1) a2 g(k 2) + b1 + b2 ;
k3
La ondi ion para respuesta libre es que:
u(t=t) = u(t + 1=t) =    = u(t + N2 =t) = u(t 1)
Apli ando tal ondi ion en la e ua ion de diferen ias del pro eso, determinamos la respuesta libre ylibre omo sigue:
ylibre(t + 1) = a1 ylibre(t) a2 ylibre (t 1) + (b1 + b2 )u(t 1)

6.5 El Controlador Predi tivo

301

6.5.3 La Ley de Control

Con la nota ion anterior, la fun ion de osto (e ua ion (6.24)) resulta:
(R Y)T (R Y)+UT U = [(R Y ) GUT [(R Y ) GU+UT U (6.32)
la ual es una forma uadrati a en U, uya minimiza ion por diferen ia ion
resulta en la siguiente solu ion optima:
U = (GT G + I ) 1 GT (R Y)
(6.33)
Es importante indi ar que:
 Solamente el primer elemento u(t=t) de U es ne esario para omputar la entrada de ontrol a tual u(t) = u(t 1)+u(t=t). El mismo
pro edimiento se repite para la nueva medi ion y(t + 1) en el proximo
instante de tiempo t + 1. Este pro edimiento se denomina el prin ipio
del \horizonte retroa tivo".
 La matriz [GT G + I a ser invertida tiene dimension Nu  Nu. Para el
aso por defe to, es de ir, para Nu = 1, se obtiene una ley de ontrol
es alar ( on muy buenos resultados en mu hos asos pra ti os) de la
forma:
PN2
(t + k=t) ylibre(t + k=t)
u(t) = k=N1 gk [rP
(6.34)
N2 g 2 + 
k=N1 k
 Otra aproxima ion para la estru tura ion del es enario de ontrol onsiste en el empleo de fun iones base de la forma:
X
u(t + k=t) = i Bi
(6.35)
i

La optimiza ion de la se~nal de ontrol u(t + k=t) es ahora on respe to


a los parametros i.
El ontrol predi tivo muestra diferentes propiedades dependiendo de la
sele ion de N1 , N2 y Nu. Por ejemplo:
 Si N1 = n, N2 = 2n 1, Nu = n y  = 0, la salida enton es al anza la
referen ia despues de n muestras y se mantiene en este estado, propor ionando una vigorosa a ion de ontrol. Este aso es muy apropiada
para apli a iones que requieran alto rendimiento, omo en la roboti a.

302

Control Predi tivo

 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 rapido 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 ion anterior fue formulado


bajo ondi iones de ontrol sin restri iones; es de ir, onsiderando que todas
las se~nales 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 se~nal de ontrol u(t) es demasiado
grande, enton es el ampli ador del voltaje de armadura se puede saturar
produ iendose su deterioro.
En presen ia de restri iones no es posible la solu ion analti a del problema 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 te ni as numeri as, tales omo la programa ion 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: N1 = 7, N2 = 12, Nu = 6.
% ejem6_4.m SOLUCION DEL EJEMPLO 6.4
lear all
% PARAMETROS DEL PROCESO NO LINEAL (TABLA 3.3)
Lo = 0.776;
JL = 3.5e-7;
bL = 1e-5;
Ro = 0.01;
Jm = 1.9062e-6; bm = 1.8338e-6; g = 9.81;
E = 31.035e-3;
RR = 7.38;
m = 0.06377;
Ka t = 14.9;
= 0.25; Mo = 0.045; % tambi'en 0,.01,.02
K = 31.071e-3;
n = 19.741;
L = 4.64e-3;
B = n^2*bm + bL;
Jeff = n^2*Jm +JL;
M = Jeff + (1/3)*m*Lo^2 + Mo*Lo^2 + (2/5)*Mo*Ro^2;
N = g*Lo*(Mo+m/2);
% MODELO NO LINEAL DEL PROCESO CONTINUO DE TERCER ORDEN

6.6 Pro edimiento de Dise~no


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)
g(N1+1) g(N1) g(N1-1) g(N1-2) g(N1-3) g(N1-4)
g(N1+2) g(N1+1) g(N1) g(N1-1) g(N1-2) g(N1-3)
g(N1+3) g(N1+2) g(N1+1) g(N1) g(N1-1) g(N1-2)
g(N1+4) g(N1+3) g(N1+2) g(N1+1) g(N1) g(N1-1)
g(N1+5) g(N1+4) g(N1+3) g(N1+2) g(N1+1) g(N1)
g(N2) g(N2-1) g(N2-2) g(N2-3) g(N2-4) g(N2-5)

303

%
%
%
%

6.6

0
g(N1-5)
g(N1-4)
g(N1-3)
g(N1-2)
g(N1-1)
g(N2-Nu+1);

Pro edimiento de Dise~


no

El pro edimiento para dise~nar 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 dise~no).
2) Determinar el modelo CARIMA del pro eso (subse ion 6.3).
3) Cal ular la respuesta libre del pro eso (subse ion 6.5.2).
4) Cal ular la respuesta del pro eso al es alon (subse ion 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 ion del Problema

El servomotor D.C. on arga no lineal (dis utido ampliamente en la se ion


3.3) es un pro eso de una entrada y una salida que puede ser ontrolado por
el voltaje de armadura. La arga no lineal es una varilla metali a a oplada al
eje del servomotor, a manera de un brazo roboti o de un grado de libertad.
En el extremo de la varilla se pueden a oplar argas adi ionales. El objetivo
de ontrol es dise~nar e implementar un sistema de ontrol predi tivo basado
en modelos, empleando una ley de ontrol es alar dinami a, de modo tal que
la varilla se posi ione en una referen ia predeterminada. El sobreimpulso
de la respuesta debe ser mnimo, no obstante la presen ia de la arga no
lineal y de las no linealidades del pro eso omo son las fri iones estati a y
de Coulomb, y la satura ion en el ampli ador del servomotor.
Modelo del Pro eso

La gura 3.9 presenta la estru tura del pro eso no lineal a ontrolar. La tabla
3.2 des ribe las variables y los valores de sus parametros. Asumiendo que la
se~nal de ontrol u esta ompensada por las no linealidades y despre iando
la indu tan ia L del servomotor, el pro eso no lineal puede ser des rito
mediante el siguiente modelo lineal (subse ion 3.3.5):
x_ = A x + B u;
y = C x






0
1
0
A =
;
C = 1 0
;
B = KnK
2E
N
B
Kn
( M + MR )
MR
M
2
1
m
M = Jeff + ML2o + MRo2 + mL2o );
N = gLo (M + )
5
3
2
2
2
Jeff = n Jm + JL ;
B = n bm + bL
La fun ion de transferen ia Gp(s) del pro eso puede determinarse de:
y(s)
Gp (s) =
= C [sI A 1B
u(s)
a t

6.7 Control de Posi ion de un Servomotor

305

mientras que la fun ion de transferen ia de pulso Gp(z) se determina de:




Gp (s)
y(z )
1
Gp (z ) =
= (1 z )Z s
u(z )
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:
b1 z + b2
b1 z 1 + b2 z 2
B (z 1 )
y(z )
=
=
=
Gp (z ) =
u(z ) z 2 + a1 z + a2 1 + a1 z 1 + a2 z 2 A(z 1 )
que onstituye el modelo CARIMA del pro eso, on
A(z 1 ) = 1 + a1 z 1 + a2 z 2 ;
B (z 1 ) = b1 z 1 + b2 z 2
Su orrespondiente e ua ion de diferen ias es:
y(k) = a1 y(k 1) a2 y(k 2) + b1 u(k 1) + b2 u(k 2)
Con Mo = 0 (varilla sin arga adi ional), los parametros 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 determino en el ejemplo 6.3. El siguiente programa determina re ursivamente
la traye toria deseada W (t), la traye toria de referen ia r(t) y la respuesta
libre ylibre. Por simpli idad, emplearemos la nota ion: yf = ylibre.
% CONDICIONES Y PARAMETROS INICIALES
yf(1)=0; yf(2)=0; yf(3)=0; % yf: RESPUESTA LIBRE
r(1) =0; r(2) =0; r(3)=0; % r : REFERENCIA
alf = 0.01; fre = 0.0063; GW = 1;
MM = 1000; n1=1; n2=20;
% REFERENCIA, SALIDA LIBRE Y RESPUESTAS AL ESCALON
for t = 3:MM+2
for k = n1:n2
W(t+k) = GW*sign(sin(fre *(t))); % TRAYECTORIA DESEADA
r(t+k) = alf*r(t+k-1) + (1-alf)*W(t+k);
yf(t+k) = - a1*yf(t+k-1)-a2*yf(t+k-2)+(b1 + b2)*u(t-1);
end
end

306

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 alon del


pro eso en uestion, se determino 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 (Nu = 1) on N1 = 1 y


La forma de la ley de ontrol es:
PN2
u = k=N1 g(k)[Pr(Nt2+ k=t2 ) ylibre(t + k=t)
k=N1 g (k ) + 

N2 = 12.

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 ion 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 ion 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 ion de un Servomotor


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

307

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

Posicin q(t) (rad)

2
1
0
1
2
0

8
Tiempo

10
12
en segundos

14

16

18

20

14

16

18

20

Control u(t) (voltios)

2
1
0
1
2
0

8
10
12
Tiempo en segundos

Figura 6.11: Primera simula ion del sistema de ontrol predi tivo. La arga
no lineal es maxima.

6.7 Control de Posi ion de un Servomotor


Segunda Simula ion

309

El programa dispred3.m tambien 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
maxima. En esta simula ion se emplea restri ion en la fuerza de ontrol
dise~nada para no saturar el ampli ador de poten ia. Tambien se emplea
ompensa ion para minimizar el efe to de la fuerza de fri ion de Coulomb
en la se~nal 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 ion 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 ion 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

Posicin q(t) (rad)

1
0.5
0
0.5
1
0

8
Tiempo

10
12
en segundos

14

16

18

20

14

16

18

20

Control u(t) (voltios)

2
1
0
1
2
0

8
10
12
Tiempo en segundos

Figura 6.12: Segunda simula ion del sistema de ontrol predi tivo. La arga
no lineal es maxima.
6.7.6 Implementa ion del Hardware

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 programas ne esarios para el ontrol se estru turan en tres ar hivos es ritos en C:
R1LLIB.H, R1LLIB.CPP y PREDI4.CPP. El ar hivo PREDI4.CPP es el
que ontiene el algoritmo de ontrol.
La realiza ion de ar hivos eje utables a partir de los programas fuente, se
elabora en el ambiente de trabajo del Borland C/C++ mediante la rea ion
de un proye to denominado PREDI4.PRJ, en el ual intervienen los ar hivos
men ionados en el parrafo anterior.
Diagrama de Flujo del Software de Control

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 ion 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 ion (posi ion ini ial) para ini iar el algoritmo de ontrol.
3. Comprobar que la variable k sea menor que el numero 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 perodo
de adquisi ion de datos y de ontrol. Leer la posi ion y y apli ar las
restri iones; luego estimar la velo idad a partir de la posi ion.
5. Cal ular la se~nal de ontrol u, ompensar las fri iones estati a y de
Coulomb (se~nal v), apli ar restri iones a la se~nal de ontrol, y luego
enviar la se~nal 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 ion de un Servomotor

313

INICIO
INICIALIZACION DE VARIABLES
INICIALIZACION DE LA TARJETA LabPC+

DETECTAR FLANCO
DE SUBIDA

LEER POSICION INICIAL P0


NO
FIN

k MENOR QUE n
SI
DETECTAR FLANCO
DE SUBIDA

NO

SI
LEER POSICION Pk
CALCULAR POSICION Y VELOCIDAD
APLICAR RESTRICCIONES EN Pk

~ DE CONTROL
GENERAR SENAL
GENERAR SALIDA COMPENSADA
~
RESTRINGIR LA SENAL
DE CONTROL
~
ENVIAR LA SENAL COMPENSADA
ACTUALIZAR VARIABLES

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 ion de los ar hivos de abe era: r1llib.h (librera de fun iones),
stdio.h (E/S estandar), math.h (manejo de fun iones matemati as),
asserth.h (de lara ion de ma ros de depura ion), allo .h (asigna ion
dinami a de memoria) y onio.h (fun iones de onsola y puertos E/S)
2. De lara ion de las onstantes globales.
3. De ni ion de las fun iones propias del programa: Ini ializa Sistema,
Mide V ariables y Apli a Control
4. De lara ion 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 ion se des riben las fun iones propias del software de ontrol.
 Ini ializa Sistema: permite la ini ializa ion de los parametros y variables globales. Luego, ini ializa la tarjeta de adquisi ion de datos
Lab-PC+ por medio de la fun ion ConfigurarHardware. Enseguida
enva la tension de o set al puerto de salida analogi a por medio de la
fun ion EnviarV oltage (si ), para asegurar la posi ion ini ial de reposo del motor (posi ion verti al) y nalmente, lee la posi ion ini ial
p0 del motor.
 Mide V ariables: espe i a la se~nal de referen ia onsiderada. Luego
mide la posi ion a tual del motor (posi ion de la varilla) y la velo idad
(en fun ion de la posi ion), a tualiza los estados de las variables y, w,
r y e, y apli a restri iones a la salida.
 Apli a Control: ompensa las fri iones estati a y de Coulomb y apli a restri iones a la se~nal de entrada u. Luego, enva un voltaje equivalente a la suma de la se~nal de ontrol u ( on restri ion), mas la
se~nal de ompensa ion v, mas la se~nal del o set (2.3 volt).
La fun ion prin ipal main posee una estru tura ade uada para:

6.7 Control de Posi ion de un Servomotor

315

La de lara ion 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 dinami 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 maximo numero de muestras usado
en la eje u ion del proye to. Dentro del lazo de ontrol se de ne la
eje u ion de la fun ion Mide V ariables en ada an o de subida del
pulso de reloj. Luego se genera la se~nal de ontrol u y se enva a la
salida del DAC0 la tension 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 ion 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 ion, 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 ion 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 ion 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 ion 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 lneas 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
JT = JL + mL2o + Mo L2o + Mo Ro2 = J + Mo Ro2
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 JT = 1:84J y JT = 2:98J ,
respe tivamente. En todos los asos se umplen las espe i a iones de dise~no
(ver la subse ion 6.7.1).

322

Control Predi tivo


Rpta. a escalones variantes para una carga J
70

60

Posicin (grados)

:y
:w

50

40

30

20

10

0
0

10

20

30

40

50
t(seg)

60

70

80

90

100

Figura 6.14: Salida ontrolada y ( urva en trazos) para una arga iner ial
de JT = J kg-m2 .
Rpta. a escalones variantes para 1.42J
70

60

Posicin (grados)

:y
:w

50

40

30

20

10

0
0

10

20

30

40

50
t(seg)

60

70

80

90

100

Figura 6.15: Salida ontrolada y ( urva en trazos) para una arga iner ial
de JT = 1:42J kg-m2.

6.7 Control de Posi ion de un Servomotor

323

Rpta. a escalones variantes para 1.84J


70

60

Posicin (grados)

:y
:w

50

40

30

20

10

0
0

10

20

30

40

50
t(seg)

60

70

80

90

100

Figura 6.16: Salida ontrolada y ( urva en trazos) para una arga iner ial
de JT = 1:84J kg-m2 .
Rpta. a escalones variantes para 2.98J
70

60
:y
:w

u(t):voltios

50

40

30

20

10

0
0

10

20

30

40

50
t(seg)

60

70

80

90

100

Figura 6.17: Salida ontrolada y ( urva en trazos) para una arga iner ial
de JT = 2:98J kg-m2 .

324

6.8

Control Predi tivo

Problemas Resueltos

En la se ion problemas resueltos de los aptulos 4 al 8, la solu ion a los


problemas se en uentra, segun el aso, en uno o mas ar hivos on extension
m es ritos en odigo MATLAB. La sele ion del tiempo de muestreo para
ada problema es a onvenien ia del dise~no.
Problema 6.1

El problema 3.2 presenta las e ua iones que gobiernan la dinami a longitudinal de un avion omer ial volando a velo idad de ru ero (altura y velo idad
onstantes). El ontrol del angulo de in lina ion  del avion (ver gura 3.14)
es un problema longitudinal a resolver. El objetivo de ontrol es enton es
dise~nar un autopiloto que manipulando el angulo e del de e tor de eleva ion, ontrole el angulo de in lina ion del avion. Dise~nar un sistema de
ontrol predi tivo que genere una fuerza de ontrol es alar, de modo que
la salida del pro eso (el angulo de in lina ion ) presente un sobreimpulso
menor al 5 %, un tiempo de estabiliza ion menor que 10 s y error en estado
estable nulo. Asumir 1 rad de entrada de referen ia.
Solu ion: Ver el programa p4pred1.m.
% p4pred1.m SOLUCION DEL PROBLEMA 6.1: CONTROL DE LA INCLINACION
% DE UN AVION USANDO CONTROL PREDICTIVO CON CONTROL ESCALAR
lear all
% FUNCION DE TRANSFERENCIA DE LA PLANTA EN TIEMPO CONTINUO
num =[0 1.151 0.1774;
den =[1 0.739 0.921 0;
A=[-0.313 56.7 0; -0.0139 -0.426 0; 0 56.7 0;
B=[0.232; 0.0203; 0; C=[0 0 1; D=[0;
% FUNCION DE TRANSFERENCIA DE LA PLANTA EN TIEMPO DISCRETO
tm=1.25; % TIEMPO DE MUESTREO
[numd,dend= 2dm(num ,den ,tm,'zoh');
[G,H= 2d(A,B,tm);
a1=dend(2); a2=dend(3); a3=dend(4);
b1=numd(2); b2=numd(3); b3=numd(4);
% HORIZONTES DE CONTROL
N1 =1; N2 =10; Nu =1;
% RESPUESTA AL ESCALON
g(1) = b1; g(2) = -a1*b1 + b1 + b2;
g(3) = - a1*g(2) - a2*g(1) + b1 +b2+b3;
for k=4:N2
g(k) = -a1*g(k-1) -a2*g(k-2) -a3*g(k-2) + b1 + b2 + b3;

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, dise~nar un sistema de ontrol predi tivo
que genere una matriz dinami a de ontrol, de modo tal que el angulo de
in lina ion del avion siga una traye toria arbitraria, pero predeterminada.

326

Control Predi tivo

y: Inclinacin (rad)

2
1
0
1

u: Angulo del deflector (rad)

2
0

100

200

300

400

500

600

700

100

200

300
400
TIEMPO : SEG

500

600

700

2
1
0
1
2
0

Figura 6.18: A ngulo de in lina ion  y se~nal de ontrol (angulo del de e tor)
orrespondientes al problema 6.1.
Solu ion:

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

y: Inclinacin (rad)

4
3
2
1
0

u: Angulo del deflector (rad)

1
0

200

400

600

800

1000

1200

200

400

600
TIEMPO : SEG

800

1000

1200

0.3
0.2
0.1
0
0.1
0.2
0

Figura 6.19: A ngulo de in lina ion  y se~nal de ontrol (angulo del de e tor)
orrespondientes al problema 6.2.
Problema 6.3

La gura 3.20 muestra el pro eso monorriel de dos arros des rito en el
problema 3.5. El problema a resolver es el ontrol de velo idad del arro de

6.8 Problemas Resueltos

329

maquinas 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 mnimo sobreimpulso. El error en estado estable debe ser nulo. Simule
una se~nal de referen ia que ambie la velo idad de 30 a 20 m/s y demuestre
que se umplen las espe i a iones de dise~no. Luego enfrente el problema
de seguimiento. Mostrar que la velo idad de la maquina puede seguir una
determinada traye toria predeterminada de velo idades.
Solu ion: 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

Y1: Velocidad (m/s)

40
30
20
10
0
0

50

100

150

100

150

Control u (volt)

150
100
50
0
50
0

50
Tiempo (segundos)

Figura 6.20: Velo idad del arro de maquinas y la fuerza de ontrol para el
problema 6.3.
Problema 6.4

Resuelva nuevamente el problema 6.3, pero esta vez usando un sistema de


ontrol predi tivo on fuerza de ontrol matri ial.
Solu ion: El programa p7pred2a.m resuelve el problema planteado y su
resultado se muestra en la gura 6.22. El programa p7pred2b.m trata el
aso de referen ia arbitraria y su resultado se ilustra en la gura 6.23.

332

Control Predi tivo

Velocidad (m/s)

20
15
10
5
0
0

50

100

50

100

150

200

250

300

150
200
(Segundos)

250

300

Control u (volt)

60
40
20
0
20
0

Tiempo

Figura 6.21: Velo idad del arro de maquinas y la fuerza de ontrol para el
problema 6.3. La referen ia es arbitraria.
Problema 6.5

La gura 3.22 muestra el pro eso as ensor que fue tratado en el problema
3.6. El problema a resolver es posi ionar suavemente el as ensor en un piso
determinado, lo que signi a sobreimpulso nulo (para que no se pase de piso)
y tiempo de estabiliza ion menor que 10 s. Para no saturar al a tuador (un
ampli ador de poten ia), la se~nal de ontrol debe estar dentro del rango
de  200 volt. Dise~nar un sistema de ontrol de posi ion predi tivo on
fuerza de ontrol es alar que umpla las espe i a iones pedidas. Con el
objeto de umplir tales espe i a iones, tambien se puede usar restri ion
a la salida; es de ir, para ada tiempo de muestreo, ha er que la posi ion
ontrolada iguale la se~nal de referen ia. Es interesante anotar, que di ha
restri ion origina en la simula ion una respuesta que sigue perfe tamente a
la referen ia. Logi amente, los resultados de la implementa ion en tiempo
real on tal restri ion, no son tan perfe tos omo lo son en la simula ion,
tal omo su ede en el aso del ontrol predi tivo del servomotor on arga
no lineal (subse ion 6.7.8).
% p8pred1.m SOLUCION DEL PROBLEMA 6_5: CONTROL DE POSICION
% DE UN ASCENSOR USANDO CONTROL PREDICTIVO CON FUERZA
% DE CONTROL ESCALAR Y CON RESTRICCION EN LA SALIDA
lear all

6.8 Problemas Resueltos

333

Y1: Velocidad (m/s)

40
30
20
10
0
0

50

100

150

100

150

u: control

100

50

50
0

50
Tiempo (segundos)

Figura 6.22: Velo idad del arro de maquinas y la fuerza de ontrol para el
problema 6.4.
% ECUACION DE ESTADO
A=[-0.2
0
0
0
1
0
0
0
2
0
-2
0
5
0
0
-5;
B=[0.001;0;0;0; C=[0 1 0 0; D=[0;
% PROCESO EN TIEMPO DISCRETO
tm=1;
[G,H= 2d(A,B,tm);
[numd,dend=ss2tf(G,H,C,D);
a1=dend(2); a2=dend(3); a3=dend(4); a4=dend(5);
b1=numd(2); b2=numd(3); b3=numd(4); b4=numd(5);
% HORIZONTES DE CONTROL
N1 =1; N2 =10; Nu =1;
% RESPUESTA AL ESCALON
g(1) = b1; g(2) = -a1*b1 + b1 + b2;
g(3) = - a1*g(2) - a2*g(1) + b1 +b2+b3;
g(4) = - a1*g(3) - a2*g(2)-a3*g(1) + b1+b2+b3+b4;
for k=5:N2
g(k) = -a1*g(k-1)-a2*g(k-2)-a3*g(k-3)-a4*g(k-4)+b1+b2+b3+b4;
end

334

Control Predi tivo


Velocidad v1 (m/s)

20
15
10
5
0
0

100

200

300

100

200

300

400

500

600

700

800

900

1000

700

800

900

1000

u: Fuerza de control

15
10
5
0
5
0

400
500
600
Tiempo
(Segundos)

Figura 6.23: Velo idad del arro de maquinas y la fuerza de ontrol para el
problema 6.4. La referen ia es arbitraria.
% CONDICIONES INICIALES
for k=1:5
yf(k)=0; y(k)=0; r(k)=0; u(k)=0;
end
alf =0.1; lambda = 0.00;
MM=300;
% LAZO DE CONTROL
for t =5:MM+4;
% TRAYECTORIA DESEADA, REFERENCIA r Y RESPUESTA LIBRE yf
for k=1:N2
W(t+k)=-3*sign(sin(0.02*t));
r(t+k) = alf*r(t+k-1) + (1-alf)*W(t+k);
yf(t+k)= -a1*yf(t+k-1)-a2*yf(t+k-2)-a3*yf(t+k-3)-a4*yf(t+k-4)...
+ (b1 + b2 + b3 + b4)*u(t-1);
end
% RESTRICCION A LA SALIDA
y(t) = W(t);
% LEY DE CONTROL
du(t)=(g(1)*(r(t+1)-yf(t+1))+g(6)*(r(t+6)-yf(t+6))+ ...
g(2)*(r(t+2) - yf(t+2)) + g(7)*(r(t+7) - yf(t+7)) + ...
g(3)*(r(t+3) - yf(t+3)) + g(8)*(r(t+8) - yf(t+8)) + ...

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 ion: El programa p8pred2a.m resuelve el problema planteado y su
resultado se muestra en la gura 6.25.
Problema 6.7

La gura 2.2 muestra dos tanques identi os olo ados en as ada. La se ion horizontal A=9 m2 de ada tanque es onstante. El objetivo de ontrol
es ontrolar la altura H2 empleando el ujo Qo. La dedu ion del modelo
linealizado del pro eso se derivo en el ejemplo 2.1. Dise~nar un ontrolador
predi tivo del tipo es alar on los requerimientos siguientes: tiempo de estabiliza ion menor que 15 s, sobreimpulso menor al 10 % y error en estado

336

Control Predi tivo

POSICION (m)

4
2
0
2

VOLTAJE DE CONTROL

4
0

50

100
150
200
TIEMPO EN SEGUNDOS

250

300

50

100
150
200
TIEMPO EN SEGUNDOS

250

300

200
100
0
100
200
0

Figura 6.24: Posi ion del as ensor y la fuerza de ontrol (problema 6.5).
POSICION (m)

4
2
0
2

VOLTAJE DE CONTROL

4
0

100

200

300

400

500

600

100

200
300
400
TIEMPO EN SEGUNDOS

500

600

200

100

100
0

Figura 6.25: Posi ion del as ensor y la fuerza de ontrol orrespondientes al


problema 6.6.

6.8 Problemas Resueltos

337

estable nulo. Estas ondi iones de dise~no deben mantenerse uando se ambie la referen ia (por ejemplo de 3 a 2 m). Ademas, el ujo de entrada (la
se~nal de ontrol) no debe sobrepasar los 3 m3 /s.
% p9pred1.m SOLUCION DEL PROBLEMA 6.7 CONTROL DE NIVEL
% USANDO CONTROL PREDICTIVO CON CONTROL du ESCALAR
lear all
% PARAMETROS DEL SISTEMA
A = 9; gamma = 0.4; rho = 1.23; g = 9.81; Q = 3;
H =Q^2/(gamma^2*rho*g);
Z=(gamma*sqrt(rho*g))/(2*A*sqrt(H));
% ESPACIO DE ESTADO DE LA PLANTA EN TIEMPO CONTINUO
A = [-Z 0;Z -Z; B =[1 ; 0;
C =[0 1; D =[0;
T = 0.9; % TIEMPO DE MUESTREO
% MODELO LINEAL DISCRETO
[G,H,C,D= 2dm(A ,B ,C ,D ,T,'zoh');
[numd,dend=ss2tf(G,H,C,D);
a1 = dend(2); a2 = dend(3);
b1 = numd(2); b2 = numd(3);
% RESPUESTA AL ESCALON
g1 = b1;
g2 = -a1* b1 + b1 + b2;
g3 = -a1*g2-a2*g1+b1+b2; g4 = -a1*g3-a2*g2+b1+b2;
g5 = -a1*g4-a2*g3+b1+b2; g6 = -a1*g5-a2*g4+b1+b2;
g7 = -a1*g6-a2*g5+b1+b2; g8 = -a1*g7-a2*g6+b1+b2;
g9 = -a1*g8-a2*g7+b1+b2; g10 = -a1*g9-a2*g8+b1+b2;
% HORIZONTES DE CONTROL
N1 = 1; N2 =10; Nu =1; % ontrol es alar
% CONDICIONES INICIALES
for k=1:3
yf(k)=0; y(k)=0; r(k)=0; u(k)=0;
end
alf = 0.1; lambda = 0; MM = 500;
% LAZO DE CONTROL
for t =3:MM+2
% TRAYECTORIA DESEADA, REFERENCIA r Y RESPUESTA LIBRE yf
for k=1:N2
W(t+k) = 1.5 + 0.5*sign(sin(0.02*t));
r(t+k) = alf*r(t+k-1) + (1-alf)*W(t+k);
yf(t+k) = -a1*yf(t+k-1) - a2*yf(t+k-2) + (b1 + b2)*u(t-1);
end
% LEY DE CONTROL
du(t)=(g1*(r(t+1)-yf(t+1))+g6*(r(t+6)-yf(t+6))+ ...

338
g2*(r(t+2)
g3*(r(t+3)
g4*(r(t+4)
g5*(r(t+5)
(g1^2

%
%
%

Control Predi tivo


+

yf(t+2)) + g7*(r(t+7) - yf(t+7)) + ...


yf(t+3)) + g8*(r(t+8) - yf(t+8)) + ...
yf(t+4)) + g9*(r(t+9) - yf(t+9)) + ...
yf(t+5)) + g10*(r(t+10)-yf(t+10)))/...
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.
El programa p9pred2.m resuelve el problema planteado y su
resultado se muestra en la gura 6.27.
Solu ion:

Problema 6.9

El pro eso ele trome ani o mostrado en la gura 3.26 se des ribe en el problema 3.8. Se pide dise~nar un sistema de ontrol predi tivo on fuerza de

6.8 Problemas Resueltos

339

NIvel H2 (m)

2.5
2
1.5
1
0.5

Flujo de control (m^3/s)

0
0

50

100

150

200
250
300
Tiempo en segundos

350

400

450

50

100

150

200
250
300
Tiempo en segundos

350

400

450

3
2
1
0
1
2
0

Figura 6.26: Nivel ontrolado H2 y el ujo de ontrol para el problema 6.7.

NIvel H2 (m)

2.5
2
1.5
1
0.5

Flujo de control (m^3/s)

0
0

50

100

150

200
250
300
Tiempo en segundos

350

400

450

50

100

150

200
250
300
Tiempo en segundos

350

400

450

1
0

Figura 6.27: Nivel ontrolado H2 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 mediante el voltaje de entrada que puede variar entre  100 volt. El tiempo de
estabiliza ion de la se~nal ontrolada (la velo idad) debe ser menor que 6 s
y di ha respuesta debe presentar un sobrepi o maximo de 5 %, on error en
estado estable nulo.
% p11pred1.m SOLUCION DEL PROBLEMA 6_9
% CONTROL DE VELOCIDAD DEL SISTEMA ELECTROMECANICO
% USANDO CONTROL PREDICTIVO CON CONTROL du ESCALAR
lear all
% PARAMETROS DEL SISTEMA
J = 0.01; Ke = 0.01; Kt = 0.01;
R = 12; C = 0.5; L = 0.5; Kw = 1.8;
% MODELO DEL PROCESO EN TIEMPO CONTINUO
A = [-1/(R*C) -1/C 0
Kw/(L*Kw + Kt*Ke) 0 -Ke*Kw/(L*Kw + Kt*Ke)
0 Kt/J 0;
B = [1/(R*C);0;0;
C = [0 0 1; D = [0;
T = 0.1; % TIEMPO DE MUESTREO
% MODELO LINEAL DISCRETO
[G,H,C,D= 2dm(A ,B ,C ,D ,T,'zoh');
[numd,dend=ss2tf(G,H,C,D);
a1 = dend(2); a2 = dend(3); a3=dend(4);
b1 = numd(2); b2 = numd(3); b3=numd(4);
% RESPUESTA AL ESCALON
g1 = b1;
g2 =-a1*b1+b1+b2;
g3=-a1*g2-a2*g1+b1+b2+b3;
g4 =-a1*g3- a2*g2-a3*g1+b1+b2+b3;
g5=-a1*g4-a2*g3-a3*g2+b1+b2+b3;
g6 =-a1*g5-a2*g4-a3*g3+b1+b2+b3;
g7=-a1*g6-a2*g5-a3*g4+b1+b2+b3;
g8 =-a1*g7-a2*g6-a3*g5+b1+b2+b3;
g9=-a1*g8-a2*g7-a3*g6+b1+b2+b3;
g10=-a1*g9-a2*g8-a3*g7+b1+b2+b3;
% HORIZONTES DE CONTROL
N1 = 1; N2 = 10; Nu = 1;
% CONDICIONES INICIALES
for k = 1:4
yf(k) = 0; y(k) = 0; r(k) = 0; u(k) = 0;
end
du(1) = 0;
alf = 0.85; lambda = 0;
% LAZO DE CONTROL

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)

5
0

10

20

30

40
Tiempo

50
60
en segundos

70

80

90

100

10

20

30

40
Tiempo

50
60
en segundos

70

80

90

100

Voltaje de control

100
50
0
50
100
0

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 hr a una distan ia
d = 10 m del horno y propor iona la se~nal de voltaje vr . El horno puede
modelarse omo un pro eso de primer orden. La gura 3.24(b) muestra
la F.T del pro eso. Dise~nar 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 ion 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 Pade de

6.9 Problemas Propuestos

343

Velocidad (rad/s)

15
10
5
0
5
0

20

40

60

80
Tiempo

100
120
140
en segundos

160

180

200

20

40

60

80
Tiempo

100
120
140
en segundos

160

180

200

Voltaje de control

3
2
1
0
1
2
0

Figura 6.29: Velo idad angular ontrolada y el voltaje de ontrol para el


problema 6.10.
ter er orden (ver ejemplo 2.12):
num(s) 1 Tt s=2 + (Tt s)2 =10 (Tt s)3 =120
e Ts 
=
den(s) 1 + Tt s=2 + (Tt s)2 =10 + (Tt s)3 =120
Las espe i a iones de dise~no para ambos sistemas de ontrol son: tiempo de
estabiliza ion menor que 40 s, error en estado esta ionario nulo y por entaje
de sobreimpulso menor al 5 %. La sele ion del tiempo de muestreo y de los
horizontes de ontrol es a onvenien ia del dise~no.
Problema 6.12

Las e ua iones del modelo linealizado para ontrolar la posi ion del a~non
montado en la torreta de un tanque (ver gura 3.28) empleando un a tuador
hidrauli o se detallan en el problema 3.9.
(a) Dise~nar un sistema de ontrol predi tivo basado en modelos para ontrolar el angulo de eleva ion  on las espe i a iones siguientes: tiempo de estabiliza ion menor que 5 s, mnimo sobreimpulso y error en
estado esta ionario nulo, empleando fuerza de ontrol es alar. Los

344

Control Predi tivo

disturbios tipo es alon pueden a tuar simultaneamente y pueden ser


positivos o negativos. El sistema de ontrol dise~nado debe ser apaz
de minimizar sus efe tos.
(b) Lo mismo que (a) pero empleando fuerza de ontrol matri ial. La
sele ion 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 ion del tiempo de muestreo y los horizontes de
ontrol es a onvenien ia del dise~no.
Problema 6.13

La gura 3.31 muestra el pro eso servomotor on arga no lineal des rito
en la se ion 3.3, en donde la arga no lineal posee ahora dos grados de
libertad on Lo = 2L1=3 y Mo=0.02 kg. La union de la arga on el eje
del servomotor no es exible. Las e ua iones que des riben la dinami a del
sistema son materia del problema 3.12.
(a) Dise~nar un sistema de ontrol predi tivo basado en modelos para ontrolar simultaneamente las posi iones  y  on mnimo tiempo de
estabiliza ion y mnimo sobreimpulso, empleando una fuerza de ontrol es alar.
(b) Lo mismo que (a) pero empleando una fuerza de ontrol matri ial. La
sele ion de los horizontes de ontrol y del tiempo de muestreo es a
onvenien ia del problema planteado.
Problema 6.14

La gura 3.32 muestra el pro eso pendulo doble no lineal, el ual es una
extension del pendulo simple des rito en la se ion 3.1. El a oplamiento
entre los dos pendulos de igual longitud no es exible. Las e ua iones que
des riben la dinami a del sistema son materia del problema propuesto 3.13.
(a) Dise~nar un sistema de ontrol predi tivo basado en modelos para ontrolar simultaneamente las posi iones  y  on mnimo tiempo de
estabiliza ion y mnimo sobreimpulso, empleando para ello una fuerza
de ontrol es alar, de modo tal que el pendulo doble permanez a en
posi ion verti al. Considerar que la arga esferi a es de 0.02 kg.

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 grua puente no lineal, el ual es una
extension del pro eso grua puente es rito en la se ion 3.2. El a oplamiento
entre las dos se iones iguales de la varilla no es exible. Las e ua iones que
des riben la dinami a del sistema son materia del problema propuesto 3.14.
Considerar que la arga esferi a es de 0.02 kg.
(a) Dise~nar un sistema de ontrol predi tivo basado en modelos para ontrolar simultaneamente las posi iones  y  on mnimo tiempo de
estabiliza ion y mnimo sobreimpulso empleando para ello una fuerza
de ontrol es alar, de modo tal que la grua-puente doble permanez a
en posi ion verti al.
(b) Lo mismo que (a) pero empleando para ello una fuerza de ontrol
matri ial. La sele ion de los horizontes de ontrol y del tiempo de
muestreo es a onvenien ia del problema planteado.
Problema 6.16

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


velo idad v gra ias a la a ion de la fuerza u produ ida por su motor. Si
se despre ia la iner ia de las ruedas y se asume que la fuerza de fri ion bv,
donde b= 50 N-s/m es el oe iente de fri ion, es lo uni o que se opone
al movimiento del arro, enton es la dinami a del pro eso puede modelarse
omo (ver ejemplo 1.16):
dv
mv_ (t) + bv(t) = u(t);
v_ =
dt
(a) Dise~nar un sistema de ontrol predi tivo basado en modelos para ontrolar la velo idad del movil on mnimo tiempo de estabiliza ion y
mnimo sobreimpulso. La se~nal de referen ia puede ser arbitraria (problema de seguimiento) y la fuerza de ontrol a dise~nar es es alar.
(b) Lo mismo que (a), pero empleando fuerza de ontrol matri ial. La
sele ion los valores de los horizontes y el tiempo de muestreo son a
onvenien ia del problema planteado.

346

Control Predi tivo

Problema 6.17

El motor D.C. es un a tuador muy popular en los sistemas de ontrol porque


su movimiento rotatorio, mediante a oples ade uados en su eje, puede onvertirse fa ilmente en movimiento de trasla ion. Eso se apre ia en fajas
transportadoras o en brazos manipuladores. La gura 4.3 muestra el ir uito de armadura del motor y el diagrama de uerpo libre de su rotor.
Las e ua iones que gobiernan el omportamiento dinami o del motor fueron
derivadas en el ejemplo 4.1.
(a) Dise~nar dos sistemas de ontrol predi tivo basado en modelos. El
primero, para estabilizar la velo idad angular del eje del motor on
las espe i a iones siguientes: tiempo de estabiliza ion menor que 4 s,
error en estado estable menor al 1 % y sobreimpulso a la salida menor
al 5 %, y el segundo para estabilizar la posi ion del eje del motor on
las mismas espe i a iones de dise~no.
(b) Repetir (a) pero en este aso empleando una fuerza de ontrol matri ial. La sele ion de los horizontes de ontrol y del tiempo de muestreo
es a onvenien ia del problema planteado.

Cap
tulo 7

Control Robusto
En este aptulo se desarrollan dos pro edimientos para dise~nar sistemas de
ontrol robusto. El primero emplea la estru tura de un sistema de ontrol on
modelo interno y se apli a a pro esos univariables que presentan omportamiento estable. El segundo pro edimiento usa la estru tura lasi a de un sistema
de ontrol realimentado, pero su ontrolador se dise~na mediante el prin ipio de
ontrol on modelo interno y se apli a a pro esos univariables inestables.
El sistema de ontrol robusto debe ser apaz de minimizar asintoti amente
el error entre la salida y una traye toria de referen ia, no obstante la presen ia
de disturbios y de in ertidumbres en el modelado. Para tal efe to, el sistema de
ontrol debe satisfa er los requerimientos de estabilidad y rendimiento robustos.
En la antepenultima se ion de este aptulo se presenta la apli a ion: ontrol
de la posi ion de un servomotor D.C. sujeto a argas no lineales. La penultima
se ion, problemas resueltos, esta dedi ada al dise~no de sistemas de ontrol
robusto para diferentes pro esos. Todos los ar hivos orrespondientes a los
ejer i ios, problemas, dise~nos, simula iones y software desarrollados se pueden
des argar del sitio: http:// ee.uni.edu.pe/728681F.

7.1

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 ion (o memoria) de orden ero, el bloque p(s) es el pro eso a ontrolar,
el bloque (s) es un ltro pasa bajo, y r, u, d, y e y son las se~nales de
referen ia, de ontrol (la variable manipulada), de disturbio, de salida del
pro eso (la variable ontrolada), y de salida ltrada, respe tivamente. La

348

r

Control Robusto

m
6

(z )

y 



hr0 (s)
(s)

m
d

p(s)

-?

-y

Figura 7.1: Sistema de ontrol dis reto onven ional.


nota ion empleada responde a los fundamentos tratados en el aptulo 2.
Por ejemplo, si la se~nal ontinua y (t) pasa por un muestreador on perodo
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:
1
X

y (t) = y (kT )(t

k=0

kT )

(7.1)

La transformada de Lapla e de y (t) es enton es:

1
X


sT
L[y (t) = y (e ) = y (kT )e skT

k=0

(7.2)

Si alternativamente representamos la se~nal y (t) por su serie de Fourier:


1
1 X
y (t) =
y (kT )eik! t
(7.3)

T k= 1

donde !s = 2=T es la fre uen ia de muestreo, enton es:


1
1 X
y (s + ik!s )
L[y (t) = y (esT ) =

T k= 1

(7.4)

Notar que hemos usado la rela ion basi a z = esT . Tambien es util re ordar
que la transformada Z de y (t) se puede expresar omo:
Z [y (kT ) = y (z )
(7.5)

7.1 Estru tura del Control on Modelo Interno

349

Una fun ion ra ional y periodi a posee la propiedad de que sus valores para
fre uen ias mayores que =T se pueden determinar a partir de aquellos valores orrespondiente al intervalo 0  w  =T . Ademas, si y (z) es
periodi a, tambien es hermitiana; es de ir:
y (ei!T )H = y (e i!T ) = y (ei(! !)T )H ; =T < w < 2=T (7.6)
Considere ahora el diagrama de bloques mostrado en la gura 7.2 orrespondiente a la estru tura de un sistema CMI (Control on Modelo Interno),
la que omparada on la estru tura onven ional, presenta grandes ventajas que vamos a dis utir mas adelante. Las rela iones entre el ontrolador
lasi o (z) y el ontrolador q(z) (el ontrolador CMI) se obtienen de la
gura 7.2B o de su forma alternativa la gura 7.2C. Estas rela iones son:
q
=
(7.7)
1 p~ q

(7.8)
q =
1 + p~
s

donde p es el bloque pro eso y p~ es el bloque modelo del pro eso. Observar
en la gura 7.2B que el ontrolador tiene omo entradas la referen ia r y
la se~nal medible y, y omo salida la se~nal de ontrol u.
La gura 7.3 muestra la estru tura dis reta CMI, en donde el sistema
de ontrol in luye q(z), p~(s) y (s). Observar en di ha gura que el amino
paralelo que forma el modelo del pro eso es para sustraer el efe to de la
variable manipulada u de la salida del pro eso y. Si asumimos que el modelo
es una representa ion perfe ta del pro eso, enton es la se~nal realimentada
es igual a la in uen ia de los disturbios y no es afe tada por la a ion de
la variable manipulada. En esta situa ion, el sistema se omporta omo
uno de lazo abierto y los problemas usuales de estabilidad aso iados on la
realimenta ion desapare en.
Sin demostra ion se presenta el on epto de estabilidad interna para el
sistema CMI de la gura 7.3A.
Estabilidad Interna: Asumiendo que el modelo es perfe to, es de ir que
p(s) = p~(s), enton es el sistema CMI de la gura 7.3A es internamente estable s y solo si la planta p(s) y el ontrolador q(z ) son estables.

El ontrolador CMI juega el rol de un ontrolador anti ipativo y puede


ser dise~nado omo tal, pero on la apa idad adi ional de poder an elar

350

Control Robusto

m
6

p~

d
-?

-?

m m

p~

-?

-?

p~


B

m m
q


p~

m
d

-y

-?

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 se~nal de realimenta ion lleva onsigo la in uen ia de los disturbios.
Cuando la se~nal realimentada de la estru tura CMI se ompara on la se~nal
de referen ia, se genera una se~nal 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 se~nal de realimenta ion se ve in uida, tanto por los disturbios no medibles, 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 podran ondu ir al sistema a probables problemas de estabilidad. Este he ho es el que fuerza al dise~nador 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
dise~nan basados en la informa ion del omportamiento dinami o del pro eso y de los disturbios que a tuan sobre el mismo. La exa titud de di ha
informa ion vara, pero no llega a ser perfe ta. Por ello es deseable que el
ontrolador sea insensible a esta lase de errores de modela ion (in ertidumbres en el modelo); es de ir, que el ontrolador sea \robusto".
Del aptulo 2 sabemos que el bloque de reten ion (o de memoria) de
orden ero tiene la forma:
1 e sT = 1 z 1 ; z = esT
hr0 (s) =
(7.9)
s

Por otra parte, el bloque (s) representa un ltro que sirve para ortar las
omponentes de alta fre uen ia de las se~nales ontinuas antes del muestreo,
uando sea ne esario. Su fun ion de transferen ia debe ser estable; es de ir,
las ra es de su e ua ion ara tersti a deben poseer parte real negativa. Las
rela iones siguientes son validas para la estru tura CMI:
r(z ) = Z [r(s)
(7.10)
d(z ) = Z [d(s)
(7.11)
d (z ) = Z [ (s)d(s)
(7.12)
y(z ) = Z [y(s)
(7.13)
e(z ) = Z [y(s) r(s)
(7.14)
y (z ) = Z [ (s)y(s)
(7.15)
p~ (z ) = Z [hr0 (s)~p(s) (s)
(7.16)
p (z ) = Z [hr0 (s)p(s) (s)
(7.17)

352

r

Control Robusto

m
6

q (z )

- hr0(s)
-

r

m
6

q (z )

m
6

p(s)

- 

q (z )

- hr0(s)

(s)



m
d

p(s)

p~(s)

-?

p(s)
p~(s)

-?

(s)


r

p~ (z )

d
?
-

-?
y~

-?

Figura 7.3: Estru tura CMI. A: Estru tura muestreada. B: Estru tura equivalente a A pero no implementable. C: Estru tura dis reta.

7.2 Formula ion del Problema CMI

353

p~(z )
p(z )

= Z [hr0(s)~p(s)
(7.18)
= Z [hr0(s)p(s)
(7.19)
Notar que la estru tura de la gura 7.3B presenta una on gura ion equivalente a la estru tura mostrada en la 7.3A. La gura 7.3C ilustra el sistema
CMI ompletamente dis reto.
7.2

Formula i
on del Problema CMI

Para dise~nar el ontrolador dis reto q(z) debemos tener disponibles el modelo del pro eso (que puede ser ontinuo o dis reto), los rangos de in ertidumbre del modelo, los tipos de entradas y los objetivos de rendimiento.
7.2.1 El Modelo del Pro eso

Los metodos de identi a ion mas populares generan modelos de fun iones
de transferen ia de pulso. Tales fun iones son su ientes para dise~nar el
sistema de ontrol, pero no permiten el analisis del omportamiento del sistema entre puntos de muestreo, lo que puede ser signi ativamente peor que
el omportamiento en los mismos puntos. Como las in ertidumbres del modelo se des riben en forma natural en el tiempo ontinuo, resulta enton es
onveniente tener el modelo ontinuo del pro eso que puede asumirse lineal e
invariante on el tiempo y on presen ia de tiempos muertos. Es importante
en esta parte men ionar la ara tersti a ausal de los sistemas.
Sistema Causal y Estri tamente Causal: Un sistema g(z ) es propio o
ausal si limz!1g(z ) es nito. Un sistema propio es estri tamente propio
si limz!1g(z ) = 0, y es semipropio si limz!1g(z ) > 0. Todos los sistemas

que no son propios se denominan impropios o no ausales.

7.2.2 Des rip ion de In ertidumbres del Modelo

Hagamos que p(s) = p(j!) pertenez a a una familia de pro esos II de nida
por:
II = fp : jp(j!) p~(j!)j  `a (!)g
(7.20)
en donde `a (!) es la in ertidumbre aditiva del pro eso; es de ir, que la
in ertidumbre o error de modela ion del pro eso a tual p(j!) se ubique en

354

Control Robusto

una region ir ular a otada de radio ono ido `a(!), o de modo equivalente:
p(j!) = p~(j!) + `a (j!)
(7.21)
j`a (j!)j  `a (!); 8 p  II
(7.22)
La ota de la in ertidumbre multipli ativa `m(!) del pro eso se de ne omo:
`m (!) = `a (!)=jp~(j!)j
(7.23)
De las guras 7.3A o 7.3B podemos obtener on p = p~:
y(s) r(s) = e(s) = hr0 (s)~p(s)q(esT )r (esT ) r(s);
r(s) = hr0 (s)r (esT )
(7.24)
y luego:
y(s)
e(s)
=
p~(s)q(esT ) , ~r (s) = 1 ~r (s);
r (s) =
~
(7.25)

sT
hr0 (s)r (e )
r(s)
donde ~r es la fun ion de sensitividad y ~r es la fun ion de sensitividad
omplementaria.
Ejemplo 7.1

Determinar las expresiones de p(s) y p~(s) para el pro eso servomotor D.C.
on arga no lineal variable des rito en la se ion 3.3 e ilustrado en la gura
3.9. La uni a in ertidumbre del pro eso a tener en uenta es la arga adi ional one tada a un extremo de la varilla (una esfera de radio Ro y masa
Mo ), la ual puede variar entre 0 y 0.045 kg. En base a la respuesta al
es alon, ya sea del pro eso o de su modelo nominal, sele ione un tiempo
de muestreo ade uado y determine la fun ion de transferen ia de pulso p~(z)
del modelo nominal del pro eso.
Solu ion: El programa ejem7 1.m determina p(s) y p~(s) para el pro eso en
estudio. El resultado es el siguiente:
Kp
30:4696
=
p(s) = 2
s + ap s + bp s2 + 1:2707s + 14:4007
Kn
91:4375
p~(s) = 2
=
2
s + an s + bn s + 3:8133s + 17:9220
Observando las respuestas al es alon en la gura 7.4, podemos on luir que
un tiempo de muestreo de T = 0.05 s es su iente para poder apturar la

7.2 Formula ion del Problema CMI

355

urva de transi ion produ ida por la respuesta del pro eso al es alon. La
fun ion de transferen ia de pulso del modelo nominal del pro eso resulta:
b z + b2
p~(z ) = 2 1
= 0:1070z + 0:1004
z + a1 z + a2 z 2 1:7858z + 0:8264
% ejem7_1.m CALCULO DE p(s) Y DE SUS MODELOS NOMINALES pn(s) Y pn(z)
lear all
% PARAMETROS DEL PROCESO NO LINEAL
Lo = 0.776;
JL = 3.5e-7;
bL = 1e-5;
Ro = 0.01;
Jm = 1.9062e-6; bm = 1.8338e-6; g = 9.81;
E = 31.0352e-3; R = 7.38;
m = 0.06377;
Ka t = 14.9;
= 0.25; % Mo = 0,0.01,0.02,0.045;
K = 31.071e-3;
n = 19.741;
L = 4.64e-3;
B = n^2*bm +bL; Jeff = n^2*Jm +JL;
% PROCESO p(s) (EL SUBINDICE p SIGNIFICA PROCESO)
Mo = 0.045;
M = Jeff + (1/3)*m*Lo^2 + Mo*Lo^2 + (2/5)*Mo*Ro^2;
N = g*Lo*(Mo+m/2);
Ap = [0 1;-N/M -(B + n^2*K*E/R)/M;
Bp = [0;n*K*Ka t/(R*M);
Cp = [1 0; Dp = [0;
[nump,denp=ss2tf(Ap,Bp,Cp,Dp);
% nump(s)/denp(s) = p(s) = Kp/(s^2 + ap*s + bp)
Kp = nump(3); ap = denp(2); bp = denp(3);
% MODELO NOMINAL pn(s) (EL SUBINDICE n SIGNIFICA NOMINAL)
Mo=0.0;
M = Jeff + (1/3)*m*Lo^2 + Mo*Lo^2 + (2/5)*Mo*Ro^2;
N = g*Lo*(Mo+m/2);
An = [0 1;-N/M -(B + n^2*K*E/R)/M;
Bn = [0;n*K*Ka t/(R*M);
Cn = [1 0; Dn = [0;
[numn,denn = ss2tf(An,Bn,Cn,Dn);
% numn(s)/denn(s) = pn(s) = Kn/(s^2 + an*s + bn)
Kn = numn(3); an = denn(2); bn = denn(3);
% [Kp ap bp = [30.4696 1.2707 14.4007
% [Kn an bn = [91.4375 3.8133 17.9220
% MODELO NOMINAL DISCRETO pnz(z)
T = 0.05;
[numd,dend = 2dm(numn,denn,T,'zoh');
% numd(s)/dend(s) = pnz(z) = (b1*z + b2)/(z^2 + a1*z + a2)
a1 = dend(2); a2 = dend(3);
b1 = numd(2); b2 = numd(3);

356

Control Robusto

% [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

Respuesta del proceso

4
3
2
1
0
0

4
5
6
Tiempo en segundos

10

Respuesta del modelo

8
6
4
2
0
0

0.5

1.5
2
Tiempo en segundos

2.5

Figura 7.4: Respuestas a la se~nal es alon del pro eso y de su modelo nominal.
7.3

Control Robusto para Pro esos Estables

El pro edimiento de dise~no que se des ribe a ontinua ion es el mismo desarrollado en [9 y se puede apli ar a pro esos estables de una entrada y
una salida. El sistema de ontrol robusto ilustrado en la gura 7.3 debe ser
internamente estable. Esto se logra si la planta p(s) y el ontrolador q(z)
son estables, asumiendo que el modelo del pro eso es perfe to (~p(s) = p(s)).

7.3 Control Robusto para Pro esos Estables

357

El pro edimiento de dise~no onsta de dos pasos. En el primero, denominado rendimiento nominal, se sele iona un ontrolador q~(z) que permita
obtener respuestas satisfa torias del sistema a entradas de interes, sin tener
en onsidera ion restri iones e in ertidumbres en el modelo. En el segundo paso, denominado estabilidad y rendimiento robustos, se sele iona un
ontrolador de la forma q(z) = q~(z)f (z), donde f (z) es un ltro pasa bajo
introdu ido para lograr estabilidad y rendimiento robustos.
7.3.1 Rendimiento Nominal
Sistemas del Tipo m

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

d
lim
(1 p~(z)q(z)) = 0;
z !1 dz n
n

d
lim
(1
s!0 dsn
Dise~no del Pre ltro (s)

(s)) = 0;

0n<m
0n<m

(7.26)
(7.27)

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 ion. Es ribamos:
(s) = 1 (s) m (s)
(7.28)
on:
sm 1 +    + 1 s + 1
(7.29)
m (s) = m 1
(s + 1)m 1
en donde 1(s) es un 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:
!02
1 (s) = 2
s + 2!0 s + !02

La solu ion de la e ua ion (7.27) determina que 1 =  + 2=!0 . Para un


valor de  su ientemente grande, el pre ltro m(s) no afe ta signi ativamente 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 dise~na resolviendo
siguiente problema de minimiza ion de norma uadrati a H2 :

min k e(z) k2 = q~min


k (1 p~(z)~qH (z))v(z) k2
(z)

q~H (z )

el

(7.30)

sujeto a la restri ion que q~H (z) sea estable y ausal. La minimiza ion de
la norma anterior resulta en el siguiente ontrolador:
q~H (z ) = z (pM (z )vM (z )) 1 fz 1 pA1 (z )vM (z )g
(7.31)
donde el operador f:g denota que luego de una expansion en fra iones
par iales del operando, solo seran retenidos los terminos que sean estri tamente propios y estables; es de ir, aquellos terminos que posean polos que
se ubiquen dentro del r ulo unitario (in luso en z = 1). Notar tambien
que el pro eso estable p~(z) ha sido fa torizado en una parte pasa todo p~A(z)
y otra parte de mnima fase p~M (z), omo sigue:
p~(z ) = p~A (z )~pM (z )
(7.32)
donde:
(1 (jH ) 1 )(z j )
p~A(z ) = z N hj=1
(7.33)
(1 j )(z (jH ) 1 )
y j ; j = 1; : : : ; h son los eros de p~(z) que estan fuera del r ulo unitario.
El entero positivo N se sele iona de modo tal que p~M (z) sea semipropio; es
de ir, que el numerador y el denominador de p~M (z) posean el mismo grado,
lo que es equivalente a de ir que zN p~(z) sea semipropio.

7.3 Control Robusto para Pro esos Estables

359

La entrada v(z) tambien se fa toriza en forma similar:


v(z ) = vA (z )vM (z )
(7.34)
on:
(1 (vjH ) 1)(z vj )
vA (z ) = z N hj =1
(7.35)
(1 vj )(z (vjH ) 1 )
donde vj ; j = 1; : : : ; hv son los eros de v(z) que estan fuera del r ulo
unitario y el entero positivo Nv se sele iona de modo tal que zN 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 omportamiento en las intermuestras (entre puntos de muestreo) ausadas por
los polos de q~H (z) er anos al punto ( 1; 0). Por onsiguiente, es ne esario
realizar una modi a ion del ontrolador q~H (z).
La tabla 7.1 muestra la expresion del ontrolador q~H (z) para algunas
entradas tpi as.
v

Tabla 7.1: Controlador q~H (z) para algunas entradas tpi as.
v(s)

1
s

v (z )
z

z=
z e T =

z (1 eT = )
(z 1)(z e T = )

s2

Tz

(z 1)2

(~pM (z))

s+1
s(s+1)

Controlador q~H (z)

(~pM (z)) 1 (~pA(e


(~pM (z))

1 (1 p~A1 (e

T =

)e

T =

(1

T=

))

)z+(~pA1 (e
e T = )z

T =

) 1)e

(~pM (z)) 1 (N +
+1)z z N

donde:
, dzd (~pA1(z)z N )jz=1
1
= Phj=1 (1 ( )(1) (  ) 1 )
H
j

j
H
j

T =

360

Control Robusto

Ejemplo 7.2

Determinar el ontrolador optimo uadrati o q~H (z) para el pro eso p(z) del
ejemplo 7.1, asumiendo que la entrada v(s) es un es alon.
Solu ion: Del ejemplo 7.1 ono emos p~(z ) para T = 0.05 s:
b z + b2
p~(z ) = 2 1
z + a1 z + a2
Ademas, se debe umplir que p~(z) = p~A(z)~pM (z), de modo tal que zN p~(z)
sea semipropio y por onsiguiente, N = 1. El ero b2 =b1 = -0.9874 de p~(z)
se ubi a dentro del r ulo unitario; enton es j = 0 y:
z (b1 z + b2 )
p~(z )
p~A(z ) = z 1 ;
p~M (z ) =
=
2
p~A (z ) z + a1 z + a2
Empleando ahora la tabla 7.1 para v(z) = z z 1 obtenemos:
z 2 + a1 z + a2
q~H (z ) = (~pM (z )) 1 =
z (b1 z + b2 )
Dise~no del Controlador CMI q~(z )
Deseamos obtener el ontrolador CMI q~(z) postulando:
q~(z ) = q~H (z )~q (z )B (z )
(7.36)
donde q~ (z) an ela todos los polos de q~H (z) que posean parte real negativa
y los sustituye on polos en el origen on el proposito de que el sistema tienda
a ontrolarse on mnimo tiempo de estabiliza ion. B (z) se sele iona para
preservar el tipo m del sistema.
Sean i ; i = 1; : : : ; , los polos de q~H (z) on parte real negativa. Enton es
podemos es ribir:
z i
(7.37)
q~ (z ) = z  i=1
1 ki
B (z ) =

m
X1
i=0

bi z

(7.38)

donde m es el tipo del sistema y los oe ientes bi; i = 0; : : : ; m 1, se sele ionan de modo tal que q~(z) satisfaga la e ua ion (7.26). Por onstru ion,

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 ion (7.26) s y solo si:
n

d
lim
(1 q~ (z)B (z)) = 0;
z !1 dz n

n = 0; 1; : : : ; m

Para los asos espe iales m = 1 y m = 2 se puede obtener:


B (z ) = 1;
m=1
B (z ) =

m
X1
i=0

bi z

= b0 + b1z

b0 = 1 b1 ;

b1 =


X
i=1

1; m = 2

i

(7.39)
(7.40)
(7.41)
(7.42)

i

Ejemplo 7.3

Determinar el ontrolador CMI q~(z) sabiendo que el pro eso p(z) del ejemplo
7.1 es del tipo m = 1. Tener en uenta que la entrada v(s) es un es alon.
Solu ion: Sabemos que q~(z ) = q~H (z )~q (z ). Para m = 1, B (z ) = 1. Los
polos de q~H (z) son z = 0 y z = b2=b1 = -0.9874. Enton es,  = 1 (un polo
on parte real negativa que hay que sustituir on un polo en el origen), i =1
y i = 1 = b2=b1 , de modo que:
q~ (z ) = z

Luego:

  z
j =1

j
kj

 1

q~(z ) = q~H (z )~q

= z 1 z1

1
k1

2
(z) = z (b+ +a1bz +)z2a2
1

7.3.2 El Filtro Dis reto CMI

El ontrolador dise~nado 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 parametros
del ltro se determinan para que se al an e un ompromiso optimo entre
rendimiento y robustez. La forma mas simple de f (z) es:
(1 )z
f (z ) =
(7.43)
z

362

Control Robusto

El ltro f (z) debe preservar las propiedades asintoti as del sistema de lazo
errado; es de ir, la e ua ion (7.26). Por onsiguiente, para que el sistema
sea del tipo m, el ltro f (z) debe satisfa er:


dn
(1
f (z )) = 0;
n
dz
z =1

0n<m

(7.44)

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 =
(7.46)
(1 )(w + 1)(2w + 1) ; k = 1; : : : ; w
7.3.3 Estabilidad Robusta
Dise~no del Filtro

La ondi ion de estabilidad robusta se estable e en terminos del ontrolador


CMI q(z) = q~(z)f (z). Asumiendo que todos los pro esos p(s) en la familia
II son estables, que q(z ) es estable y que (z ) esta rela ionado on q(z )
por la e ua ion (7.7), enton es los sistemas en las guras 7.2A y 7.3A son
robustamente estables, si y solo si:
jf (ej!T )j < jp~(ej!T )~q(ej!T )`m (!)j 1 ; 0  !  T :
(7.47)
donde `m(!) representa la ota de la in ertidumbre multipli ativa. Para un
buen rendimiento del sistema, las in ertidumbres tienen que ser a otadas.
Una simple espe i a ion de rendimiento requiere que el sistema de lazo
errado sea del tipo m = 1; es de ir, que f (1) = p~(1)~q(1) = (0) = 1.
Como orolario de la e ua ion (7.47), podemos a rmar que si la in ertidumbre multipli ativa `(!) es ontinua, enton es existe un ltro f (z) para
el ual el sistema a bu le errado sea del tipo m = 1, as omo tambien robustamente estable para la familia de pro esos II . Esto, siempre que `m(0) < 1,
donde `m (0) es el error multipli ativo en estado estable del sistema ontinuo.
Una forma simple de dise~nar el ltro CMI es emplear un ltro f (z) on
la estru tura dada en la e ua ion (7.45) y luego variar el parametro de

7.3 Control Robusto para Pro esos Estables

363

modo tal que se satisfaga la e ua ion (7.47). Esta e ua ion pone una ota
inferior  a . Di ha ota tambien se puede obtener del gra o de Bode
de:
(jp~(ej!T q~(eiwT )j`m (!)) 1
(7.48)
Si esta antidad nun a es menor que 1, enton es  = 0. Si se obtuvieran
valores menores que 1,  puede ser determinada a partir del gra o de
Bode de f (z). Este gra o resulta pra ti amente similar al obtenido on el
ltro de primer orden dado en la e ua ion (7.43), siempre que el numero de
oe ientes w en la e ua ion (7.45) sea su ientemente grande. Por ejemplo,
si (jp~(ej!T q~(eiwT )j`m (!)) 1 de re e en la forma que lo ha e un sistema de
primer orden, hasta al anzar un valor de 0:7 en ! = !`, enton es:
 = e T w
(7.49)
`

Efe to del Muestreo

Un in remento de la onstante de tiempo del ltro redu e el an ho de


banda del sistema nominal. Grandes valores del tiempo de muestreo T
tambien redu en el an ho de banda debido a que si es ribimos la e ua ion
(7.47) omo:
jp~(j!)~q(ej!T )f (ej!T )j < jp(j!)j`a (!)
(7.50)
podemos observar que el an ho de banda del termino de la izquierda puede
ser redu ido in rementando en f (z) o dejando f (z) = 1 y aumentando T .
7.3.4 Rendimiento Robusto

Para rendimiento robusto, el ontrolador tiene que ser dise~nado para que:
M (w) , jq^(j!)j`a (!) + j1 p~(j!)^q (j!)jW (!) < 1; 0  !  =T (7.51)
q^(j!) = q~(ej!T )f (ej!T )Z [hr0 (s) (s)

donde se ha introdu ido una fun ion de peso W (!) sobre la ual se dis ute
a ontinua ion. La sele ion de W (w) depende de los requerimientos de
rendimiento impuestos por el dise~nador. Es razonable usar la fun ion de
sensitividad ideal (s) = p~(s)~q(s) omo una gua para la busqueda de W (!):
W (!) 1  j1 p~(j!)~q (j!)j
(7.52)

364

Control Robusto

Para que la ondi ion anterior resulte una fun ion propia (requerimiento que
tambien es ne esario para ualquier W (w)), se deben umplir las ondi iones
siguientes para m  1:
W (1) 1  1;
W (0) 1  0
(7.53)
Ejemplo 7.4

Determinar una fun ion de peso ade uada para el pro eso servomotor D.C.
sujeto a argas no lineales (ver ejemplos 7.1, 7.2 y 7.3).
Solu ion: Podemos sele ionar la siguiente fun ion de peso:
0:5s + 1 ; s = j!
W (s) 1 = 0:4
0:1s + 1
que umple las ondi iones estable idas en la e ua ion (7.53). Sin embargo,
se re omienda emplear la forma general dada en la e ua ion (7.52), debido a
que nos permite ambiar la magnitud de la fun ion de peso usando un fa tor
multipli ativo, siempre que no se sobrepase la ondi ion dada en (7.52).
Esta forma de variar la fun ion de peso propor iona mayor exibilidad en
el pro eso de veri a ion del rendimiento robusto, tal omo veremos mas
adelante.
Dise~no del Filtro

La forma mas simple de dise~nar el ltro f (z) es espe i ar su estru tura dada
en la e ua ion (7.45) y luego tratar de satisfa er la e ua ion (7.51) variando el parametro . In rementando , el primer termino de M (w) de re e
mientras que el segundo termino re e. Por onsiguiente, dependiendo de `a
y W , podra no existir un valor de para que la e ua ion (7.45) sea satisfe ha. Asumiendo que q~(z) y f (z) se sele ionan de modo tal que el sistema
resulte del tipo m = 1 (para el ual se umple que p~(z)~q(z)f (z)jz=1 = 1) o
mayor, y que `m (0) < 1, enton es, siempre es posible onseguir rendimiento
robusto para ! = 0 y para ualquier peso W (!).
El parametro debe ser sintonizado para que se satisfagan las ondi iones dadas en las e ua iones (7.47) y (7.51). Desde que es posible imponer
la ota inferior  de , enton es, para determinar di ho parametro, debemos resolver el siguiente problema de optimiza ion:
min max M (!) , (T )
(7.54)
  1 0!=T

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

Dise~nar el ltro f (z) para el pro eso servomotor D.C. usando los resultados
de los ejemplos 7.1 al 7.4. Veri ar que se umplan las ondi iones de estabilidad y rendimiento robustos. Asumir: `m(!)  j`m (ei! )j y `a (!)  j`a (!)j.
Solu ion: Como el sistema es del tipo m = 1, enton es: f (z ) = (1z )z .
Para determinar la estabilidad robusta del pro eso, empleamos la e ua ion
(7.51) on diferentes valores de , tal omo lo al ula el programa ejem7 5.m.
Podemos omprobar que la estabilidad robusta para el aso que nos o upa,
se preserva para ualquier valor de entre 0 y 1. El mismo programa determina el rendimiento robusto del pro eso. En el gra o de magnitudes de la
gura 7.5, podemos observar que para = 0.9 se umplen las ondi iones
de estabilidad y rendimiento robustos. Este valor de es la solu ion al
problema de optimiza ion planteado en la e ua ion (7.54). Notar que en la
veri a ion del rendimiento robusto estamos empleando un fa tor de 0.5 en
la fun ion de peso W (s).
% ejem7_5.m ESTABILIDAD ROBUSTA Y RENDIMIENTO ROBUSTO
lear all
% PARAMETROS DEL PROCESO NO LINEAL
Lo = 0.776;
JL = 3.5e-7;
bL = 1e-5;
Ro = 0.01;
Jm = 1.9062e-6; bm = 1.8338e-6; g = 9.81;
E = 31.0352e-3; R = 7.38;
m = 0.06377;
Ka t = 14.9;
= 0.25; % Mo=0,0.01,0.02,0.045;
K = 31.071e-3;
n = 19.741;
L = 4.64e-3;
B = n^2*bm +bL; Jeff = n^2*Jm +JL;
% PROCESO p(s)
Mo = 0.045;
M = Jeff + (1/3)*m*Lo^2 + Mo*Lo^2 + (2/5)*Mo*Ro^2;
N = g*Lo*(Mo+m/2);
Ap = [0 1;-N/M -(B + n^2*K*E/R)/M;
Bp = [0;n*K*Ka t/(R*M);
Cp = [1 0; Dp = [0;
[nump,denp=ss2tf(Ap,Bp,Cp,Dp);
% nump(s)/denp(s) = p(s) = Kp/(s^2 + ap*s + bp)
Kp = nump(3); ap = denp(2); bp = denp(3);
% PROCESO DISCRETO pz(z)
T = 0.05;
[numdp,dendp = 2dm(nump,denp,T,'zoh');

366

Control Robusto

% 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

30

0
2

Magnitud de M en dB

Magnitudes en dB

20

10

10

20

6
8
10
12

30

40 0
10

14

10
Frecuencia angular

10
(rad/s)

16 0
10

10
Frecuencia angular

10
(rad/s)

Figura 7.5: (a) Magnitudes de jp~q~`j 1 y jf (z)j (en trazos) para veri ar la
estabilidad. (b) Magnitud de M para veri ar el rendimiento robusto.

368

Control Robusto

Sele ion del Tiempo de Muestreo

Cuando el tiempo de muestreo es su ientemente peque~no, enton es el sistema dis reto tiende a omportarse omo uno ontinuo, in rementandose de
esta manera el rendimiento nominal del sistema. Sin embargo, el osto omputa ional es mayor y la apari ion de una alta fre uen ia de muestreo del
orden de 1=T puede ha er que disminuya el rendimiento robusto. Por onsiguiente, tiempos de muestreo su ientemente grandes pueden ser a eptables
para onseguir estabilidad robusta y rendimiento robusto. Sin embargo, si
el tiempo de muestreo fuera muy grande, podra ser imposible satisfa er los
requerimientos para lograr un rendimiento robusto.
Como regla, =T se puede sele ionar mas grande que el an ho de banda
sobre el ual se desea un buen rendimiento. Otra forma de sele ionar
T es deteminar la respuesta al es alon del pro eso para poder sele ionar
un tiempo T su ientemente peque~no, que nos permita muestrear y luego
re uperar sin di ultad la urva de respuesta resultante.
Si para un ierto tiempo de muestreo T  se en uentra que (T  ) < 1,
enton es podemos seguir in rementando el tiempo de muestreo. Por otra
parte, si para un determinado T  resulta que (T  ) > 1, signi a enton es
que las in ertidumbres asumidas en el modelo del pro eso y en la estru tura
del ontrolador deben ser reajustadas.
Ejemplo 7.6

Simular el sistema de ontrol robusto dise~nado en los ejemplos 7.1 al 7.5.


Solu ion: Ver el diagrama de dise~no en la gura 7.6 (ar hivo ejem7 6a.m)
y los resultados de la simula ion en la gura 7.7. Los gra 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 lasi 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

Sum1

z2+a1.z+a2
(b1+b2)z2
Controlador q~(z)

(1alfa)z
zalfa
Filtro
u_ej7_6

Mux

Kp
s2+ap.s+bp
Proceso p(s)

Mux

Grfico

q_ej7_6
Kn
s2+an.s+bn

control
referencia
.

369

posicin

Modelo nominal pn(s) + Sum2

Figura 7.6: Diagrama de bloques para la simula ion del sistema de ontrol
robusto dise~nado.
Posicin en rad

1
0.8
0.6
0.4
0.2

Control en voltios

0
0

4
5
6
Tiempo en segundos

10

4
5
6
Tiempo en segundos

10

0.3

0.2

0.1
0

Figura 7.7: Resultado de la simula ion del sistema de ontrol robusto


dise~nado en los ejemplos 7.1 al 7.5.

370

Control Robusto

7.4.1 Rendimiento Nominal

El pro edimiento de dise~no del ontrolador robusto para pro esos inestables,
es el mismo que para pro esos estables. Primero se dise~na el ontrolador q~H y
luego se le modi a de modo tal que permita evitar el problema debido a las
os ila iones que se pueden originar entre muestras. En esta forma obtenemos
el ontrolador q~ = q~H q~ B (z). Este ultimo ontrolador se modi a on un
ltro f (z) para poder garantizar estabilidad y rendimiento robustos. El
ontrolador resultante posee la forma: q(z) = q~(z)f (z).

El Controlador Optimo
H2
Asumamos que p(z) = p~(z) posee  polos 1; : : : ; k ubi ados fuera del CU
( r ulo unitario) y un polo de multi ipli idad `. De namos:
(1 (jH ) 1 )(z j )
bp(z ) = j=1
(7.55)
(1 j )(z (jH ) 1 )

y fa tori emos la planta en una por ion pasa todo pA(z) y otra por ion
semipropia de mnima fase pM (z) (ver la subse ion 7.3.1):
p~(z ) = p~A (z )~pM (z )
(7.56)
De manera analoga fa tori emos la entrada v(z):
v(z ) = vA (z )vM (z )
(7.57)
Asumamos ahora sin perdida de generalidad, que los polos inestables de v(z)
ubi ados fuera del CU son los primeros 1 polos j del pro eso, y de namos:
(1
(
jH ) 1 )(z j )

1
bv (z ) = j =1
(7.58)
(1 j )(z (jH ) 1 )
Asumamos ademas que v(z) posee al menos ` polos en z=1. Enton es el
ontrolador optimo H2 (z) viene dado por:
q~H (z ) = zbp (z )(pM (z )bv (z )vM (z )) 1 f(zbp (z )pA (z )) 1 bv (z )vM (z )g (7.59)
donde el operador f:g denota que luego de una expansion en fra iones par iales del operando, solo seran retenidos los terminos que sean estri tamente
propios, ex eptuando aquellos orrespondiente a los polos de pA(z) 1 .
Notar que para pro esos estables: bp = bv = 1. Si todos los polos
inestables del pro eso p(s) se ubi an en el origen, se puede usar la tabla 7.1.

7.4 Control Robusto para Pro esos Inestables

371

Dise~no 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 mnimo tiempo de estabiliza ion. El
ontrolador q~ (z) se formula omo:
  z
i=1

 1 ki
(7.61)
i
Sean i, i = 1; : : : ; , las ra es inestables (in luyendo z=1) on multipli idad mi orrespondientes al mnimo denominador omun de p(z) y v(z)
Tener en uenta que v(z) y p(z) poseen la misma antidad de polos en z = 1.
Los requerimientos para garantizar el tipo del sistema y la estabilidad interna pueden ser uni ados mediante la rela ion siguiente:
q~ (z ) = z

 k
d

(1 q~ (z)B (z))
dz k

= 0;

z =i

k = 0; : : : ; mi

1;

i = 1; : : : ; 

(7.62)

Se puede formular ademas:


B (z ) =
M

M
X1
j =0

X
i=1

bj z

(7.63)

(7.64)

mi

y omputar los oe ientes bj , j = 0; : : : ; M 1 de (7.63). Notar que (7.62)


da lugar a M e ua iones lineales on M in ognitas b0; b1 ; : : : ; bM 1 ; di ha
e ua ion es equivalente a:
 k
d

dk

(1

q~ ( 1 )B ( 1 ))

=i 1

= 0;

k = 0; : : : ; mi

1;

i = 1; : : : ; :

(7.65)

372

Control Robusto

7.4.2 El Filtro Dis reto CMI

La estru tura mas simple del ltro es:


(1
f1 (z ) =

)z
z

(7.66)

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, enton es:
 k
d

dz k

(1

f (z ))

z =i

= 0;

k = 0; : : : ; mi

1;

i = 1; : : : ; 

(7.67)

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:
!
X
(z ) = j z j
(7.69)
j =0

Los oe ientes 0 ; : : : ; ! se sele ionan de modo tal que para un determinado , se umpla la e ua ion (7.67), generandose M e ua iones lineales on
M in ognitas. Observar que para  = 1, se tiene 1 = 1, m1 = 1 y (z ) = 1.
Si M = 2, onviene sele ionar !  2 para evitar la solu ion trivial.
7.4.3 Estabilidad y Rendimiento Robustos

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 (ej!T )j < jp~(ej!T )~q(ej!T )`m (!)j 1 ; 0  !  T :
(7.70)

7.5 Pro edimiento de Dise~no

Para garantizar rendimiento robusto se tiene que umplir:


jq^j`a + j1 p~q^jW  1; 0  !  =T
donde:
q^(s) = q~(esT )f (esT )Z [hr0 (s)
El dise~no del pre ltro (s) se trato en la subse ion 7.3.1
7.5

373

(7.71)
(7.72)

Pro edimiento de Dise~


no

El pro edimiento para dise~nar 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 dise~no).
2) Usando toda la informa ion 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) Dise~nar el ontrolador optimo uadrati o q~H (z). Para pro esos estables ver la subse ion 7.3.1 (en esta subse ion tambien se en uentra el
pro edimiento para dise~nar el pre ltro (s)). Para pro esos inestables
ver la subse ion 7.4.1.
5) Dise~nar el ontrolador CMI: q~(z). Para pro esos estables ver la subse ion 7.3.1. Para pro esos inestables ver la subse ion 7.4.1.
6) Dise~nar la fun ion de peso W (subse ion 7.3.4, para ambos asos).
7) Dise~nar el ltro dis reto CMI . 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 ion presenta el dise~no de un


sistema de ontrol robusto para ontrolar la posi ion de un servomotor D.C.,
sujeto a argas no lineales.
7.6.1 Formula ion 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 metali 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 dise~nar 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 mnimo no obstante la presen ia
de la arga no lineal variable 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.
7.6.2 Dise~no del Sistema de Control Robusto

Los pasos (2) al (7) del pro edimiento de dise~no fueron ubiertos en los
ejemplos 7.1 al 7.5.
7.6.3 Simula ion del Sistema de Control Robusto

La simula ion realizada en el ejemplo 7.6 onsidero una planta p(s) lineal.
En la siguiente simula ion, la planta a onsiderar es su modelo no lineal, on
el a~nadido de dos bloques de satura ion (para evitar saturar el ampli ador
de poten ia) mas una se~nal de realimenta ion que es propor ional al torque
no lineal produ ido por la arga no lineal. No se esta onsiderando el efe to

7.6 Control Robusto de un Servomotor No Lineal

375

de la fri ion de Coulomb, que tambien es un omponente no lineal, debido


a que tal efe to sera 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 ion se puede ver en la
gura 7.9. Para efe tuar la simula ion on el programa disrob1.m, se debe
eje utar previamente el programa disrob2.m.
+

S1

z2+a1.z+a2
(b1+b2)z2

(1alfa)z
zalfa

Controlador q~(z)

Filtro

Referencia

u_disrob

u
Saturacin 1

gan5

Saturacin 2

n*K
R
S3 Subsistema
elctrico
n*E
gan2

Graph
Mux

Control
Kact

Mux

S4

Kn
s2+an.s+bn
Modelo nominal pn(s) + S2

1
1
w
s
Ms+B
Subsistema Integrador
mecnico
q_disrob

N
gan3

MATLAB
Function

Salida

Seno

Figura 7.8: Diagrama de bloques para la simula ion del sistema de ontrol
robusto dise~nado, onsiderando el modelo no lineal del pro eso.

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

Posicin en rad

0.5

0
0

8
10
12
Tiempo en segundos

14

16

18

20

8
10
12
Tiempo en segundos

14

16

18

20

Control en voltios

0.25
0.2
0.15
0.1
0.05
0
0

Figura 7.9: Resultado de la simula ion del sistema de ontrol robusto empleando el modelo no lineal del pro eso.
7.6.5 Implementa ion del Software

El software de ontrol empleado en la implementa ion 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 ion del algoritmo de ontrol de
posi ion emplea el lenguaje C y se eje uta en una PC Pentium. Los programas ne esarios para el ontrol se estru turan en tres ar hivos: R1LLIB.H,
R1LLIB.CPP y ROB.CPP. El ar hivo ROB.CPP es el que ontiene el algoritmo de ontrol.
La realiza ion de ar hivos eje utables a partir de los programas fuente, se
elabora en el ambiente de trabajo del Borland C/C++ mediante la rea ion
de un proye to denominado ROB.PRJ, en donde intervienen los ar hivos
men ionados en el parrafo anterior. A ontinua ion 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


/* 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()
{

377

378

Control Robusto

/* Con Varilla*/
a1=-1.7858;
a2= .8264;
b1= .1070;
b2= .1004;
/* ATENCION: LOS VALORES DE a1, a2, b1, b2 DEPENDEN DE LA Fs */
V FC= .15;
Ofst= 2.3;
Fs= 20.;
T= 1./Fs;
tsimul= 100.;
alfa=0.955;
/* Ini ializa ion de variables */
x1p=0.;
xn1p=0.;
xn1pp=0.;
ep=0.;
epp=0.;
up=0.;
upp=0.;
ConfigurarHardware(0x272, 0x270, 0x271, 0x264, Fs);
EnviarVoltage(Ofst);
p0 = LeerPosi ion();
} void Mide_Variables(
float *x1, float *xn1, float *r, float *vel, float t)
{
/* referen ia: r= r(t)*/
*r = M_PI/4;
/* Ahora leo la posi ion */
pk = LeerPosi ion();
*x1 = x1p + ((float)(abs(pk-p0)>8000?0:pk-p0))*ESCALA;
p0 = pk;
/* Modelo nominal */
*xn1 = - a1*xn1p - a2*xn1pp + b1*up + b2*upp;
/* A tualizamos los estados */
x1p=*x1;
xn1p=*xn1; xn1pp=xn1p;
epp=ep;
ep=e;
/* error */
e = *r - (*x1-*xn1);
w =(e+a1*ep+a2*epp)/(b1+b2);
/* velo idad angular */
*vel= (5.*(*x1-x1p)+ *vel)/(1.+5.*T);
}

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 maximo de
2.98J ( orrespondiente a la varilla on una arga esferi 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 ion
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 45o en presen ia de arga maxima.
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 ion problemas resueltos de los aptulos 4 al 8, la solu ion a los


problemas se en uentra, segun el aso, en uno o mas 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 dinami a longitudinal de un avion omer ial volando a velo idad de ru ero (altura y velo idad onstantes). El ontrol del angulo de in lina ion  del avion (ver

7.7 Problemas Resueltos

381

(grados)

40

Posicin

50

20

30

10
0
0

10

15

20
25
30
Tiempo en segundos

35

40

45

50

10

15

20
25
30
Tiempo en segundos

35

40

45

50

Seal de control (voltios)

0.2
0.15
0.1
0.05
0
0

Figura 7.10: Resultado experimental del sistema de ontrol de posi ion robusto del servomotor D.C. sujeto a una arga no lineal maxima.
gura 3.14) es un problema longitudinal a resolver. El objetivo de ontrol es
enton es dise~nar un autopiloto que manipulando el angulo e del de e tor
de eleva ion, ontrole el angulo de in lina ion del avion. Se pide dise~nar
un sistema de ontrol robusto on modelo interno que genere una fuerza de
ontrol tal que la salida del pro eso (el angulo de in lina ion ) presente un
sobreimpulso menor al 10 % y un tiempo de estabiliza ion menor que 4 s, on
un error en estado estable nulo. Tomar 0.2 rad omo entrada de referen ia.
Realizar el al ulo del ontrolador para una entrada v es alon. El sistema
dise~nado debe ser del tipo m = 1. La sele ion del tiempo de muestreo es a
onvenien ia del dise~no. Asumir: `m (!)  j`m(ei! )j y `a(!)  j`a (ei! )j.
Solu ion: Los rangos de varia ion de los parametros se muestran en el
programa p4rob1.m, al igual que el pro edimiento en detalle para dise~nar
el ontrolador robusto uando la entrada v es un es alon. La gura 7.12
(ar hivo p4rob1s.m) es el diagrama de bloques empleado en la simula ion
del sistema dise~nado y requiere que previamente se eje ute el programa
p4rob1.m. Los resultados de la simula ion se muestran en la gura 7.13
(obtenida on el ar hivo p4rob1r.m). El sistema dise~nado umple los requerimientos de estabilidad y rendimiento robustos, tal omo se apre ia en la
gura 7.11.

382

Control Robusto

% 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


grid
subplot(122)
semilogx(ejew,M_dB(1:pi/T))
ylabel('Magnitud de M en dB')
title('
(b)')
xlabel('Fre uen ia angular
grid
print -f -deps p4rob1f
print -s -deps p4rob1s

(rad/s)')

(rad/s)')

(b)
5

30

Magnitud de M en dB

Magnitudes en dB

(a)
40

20

10

10 0
10

10

15

10
Frecuencia angular

10
(rad/s)

20 0
10

10
Frecuencia angular

10
(rad/s)

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 hr a una distan ia d = 10 m del
horno y propor iona la se~nal de voltaje vr . El horno puede modelarse omo

7.7 Problemas Resueltos

385

S1

(1alfa)z
zalfa

Filtro

ap.s+bp
s3+cp.s2+dp.s

Mux
Graph

Proceso p(s)

Mux

Referencia
2+(a3a2*k1)za3*k1
z4+(a1k1)z 3+(a2a1*k1)z
.
(1k1)*b1z4+(1k1)*b2z3+(1k1)*b3z2
Controlador q~

an.s+bn
s3+cn.s 2+dn.s
Modelo nominal pn(s)

u_p4rob1

y_p4rob1

Control u

Salida y

+ S2

Figura 7.12: Diagrama de bloques para simular el sistema de ontrol robusto


on modelo interno (problema 7.1).

Inclinacin (rad)

0.25
0.2
0.15
0.1
0.05
0
0

4
5
6
Tiempo en segundos

10

4
5
6
Tiempo en segundos

10

Deflector (rad)

1.5
1
0.5
0
0.5
0

Figura 7.13: A ngulo de in lina ion (salida ontrolada) y angulo del de e tor
de eleva ion (se~nal de ontrol) para el problema 7.1.

386

Control Robusto

un pro eso de primer orden. La gura 3.24(b) muestra la F.T del pro eso.
Dise~nar un sistema de ontrol robusto on modelo interno para ontrolar
la humedad del material en la banda transportadora. El uni o parametro
in ierto a onsiderar es el tiempo muerto v=d. Asuma omo valor nominal
Tn = 9 s y omo tiempo muerto del pro eso Tp = 11 s. Las espe i a iones
de dise~no son: tiempo de estabiliza ion menor que 40 s, error en estado
esta ionario nulo y por entaje de sobreimpulso menor al 5 %. Realizar el
al ulo del ontrolador para una entrada v es alon. El sistema dise~nado debe
ser del tipo m = 1. La sele ion del tiempo de muestreo es a onvenien ia
del dise~no. Asumir: `m (!)  j`m(ei! )j y `a(!)  j`a (!)j.
Solu ion: El programa p10rob1.m detalla el pro edimiento para dise~nar el
ontrolador robusto uando la entrada v es un es alon. La gura 7.15 (ar hivo p10rob1s.m) es el diagrama de bloques empleado en la simula ion del sistema dise~nado y requiere previamente que se eje ute el programa p10rob1.m.
El resultado de la simula ion se muestra en la gura 7.16 (obtenida on el
ar hivo p10rob1r.m). El sistema dise~nado umple los requerimientos de estabilidad y rendimiento robustos, tal omo se apre ia en la gura 7.16.
% p10rob1.m SOLUCION AL PROBLEMA 7.2
lear all
% FT (FUNCION DE TRANSFERENCIA) DEL PROCESO
% vr(s)/u(s) = K*exp(-d*s/v)/(s^2 + a*s + b): ESTRUCTURA DE LA FT
K=10; a=1.5; b=0.5;
% DESEAMOS ROBUSTEZ EN EL TIEMPO MUERTO CON RANGO:
Tn=9; Tp=11; % (n: NOMINAL, p: PROCESO)
numn=[0 0 K; denn=[1 a b;
% pn=K*exp(-Tn*s)/(s^2+a*s+b)
nump=[0 0 K; denp=[1 a b;
% p=K*exp(-Tp*s)/(s^2+a*s+b)
% MODELO NOMINAL DISCRETO pnz(z)
T = 0.5; % z = exp(T*s) => exp(Tn*s)=z^(Tn/T)=z^18
[numd,dend = 2dm(numn,denn,T,'zoh');
% numd(z)/dend(z)=(b1*z+b2)/(z^2+a1*z+a2)
a1=dend(2); a2=dend(3);
b1=numd(2); b2=numd(3);
% numD(z)/denD(z)=pnz(z)=z^(-Tn/T)*numd(z)/dend(z)
% pnz(z) = z^(-Tn/T)*(b1*z+b2)/(z^2+a1*z+a2)
%
= (b1*z+b2)/(z^20+a1*z^19+a2*z^18)
% PROCESO DISCRETO pz(z)
% T = 0.5; z = exp(T*s) => exp(Tp*s)=z^(Tp/T)=z^22
[numdp,dendp = 2dm(nump,denp,T,'zoh');
% numdp(z)/dendp(z)=(bp1*z+bp2)/(z^2+ap1*z+ap2)

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 ion menor que 6 segundos y

7.7 Problemas Resueltos

389

(a)

(b)

15

10
0
5
2
Magnitud de M en dB

Magnitudes en dB

0
5
10
15
20

25
10
30
35 0
10

12 0
10

10
Frecuencia angular

(rad/s)

10
Frecuencia angular

(rad/s)

Figura 7.14: Condi ion de estabilidad robusta (gra o de la izquierda) y


rendimiento robusto (gra o de la dere ha) para el problema 7.2.

S1

(1alfa)z
zalfa
Filtro

K
s2+as+b
Proceso p(s)

Mux
Tp

Graph
Mux

Referencia
z20
+a1.z 19
+a2.z 18.
b1.z 20
+b2.z 19
Controlador q~H

zk1
(1k1)z
Controllador q~_

K
s2+as+b
Modelo nominal pn(s) Tn

y_p10rob
Salida y
+ S2

u_p10rob
Control u

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
Tiempo en segundos

70

80

90

100

10

20

30

40
50
60
Tiempo en segundos

70

80

90

100

Flujo calorfico

0.06
0.04
0.02
0
0.02
0

Figura 7.16: Flujo alor o (se~nal de ontrol) y humedad sensada (salida


ontrolada) para el problema 7.2.
on mnimo 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 dise~nado debe ser del
tipo m = 1. La sele ion del tiempo de muestreo es a onvenien ia del
dise~no. Asumir: `m(!)  j`m (ei! )j y `a (!)  j`a(!)j.
Solu ion: El programa p7rob1.m muestra el rango de varia ion de tales
masas y detalla el pro edimiento para dise~nar el ontrolador robusto uando la entrada v es un es alon. La gura 7.18 (ar hivo p7rob1s.m) es el
diagrama de bloques empleado en la simula ion del sistema dise~nado y requiere previamente que se eje ute el programa p7rob1.m. El resultado de la
simula ion se muestra en la gura 7.19 (obtenida on el ar hivo p7rob1r.m).
El sistema dise~nado 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

%
%
%

%
%
%

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);

391

392

Control Robusto

% pn=(bn1*s^5+bn2*s^4+bn3*s^3+bn4*s^2+bn5*s+bn6)/...
%
(s^6+an1*s^5+an2*s^4+an3*s^3+an4*s^2+an5*s+an6);
% MODELO NOMINAL DISCRETO
T = 0.2; % PERIODO DE MUESTREO
[G,H,C,D= 2dm(A,B,C,D,T,'zoh');
[num,den=ss2tf(G,H,C,D);
a1 = den(2); a2 = den(3); a3 = den(4);
a4 = den(5); a5 = den(6); a6 = den(7);
b1 = num(2); b2 = num(3); b3 = num(4);
b4 = num(5); b5 = num(6); b6 = num(7);
% num/den=pnz=(b1*z^5+b2*z^4+b3*z^3+b4*z^2*b5*z+b6)/...
%
(z^6+a1*z^5+a2*z^4+a3*z^3+a4*z^2+a5*z+a6);
% DETERMINAION DE bp(z)
% roots(den): pn(z) POSEE 1 POLO EN z=1 Y NINGUNO FUERA DEL
% CU (CIRCULO UNITARIO) => bp(z)=1
% CALCULO DE pnz(z)=pA(z)*pM(z):
% z^N*pnz DEBE SE SEMIPROPIO, ENTONCES N=1 Y pA=z^(-1); LUEGO:
% pM=pnz/pA=z*(b1*z^5+b2*z^4+b3*z^3+b4*z^2*b5*z+b6)/...
%
(z^6+a1*z^5+a2*z^4+a3*z^3+a4*z^2+a5*z+a6);
% DETERMINACION DE v(z)=vA(z)*vM(z)=z/(z-1) PARA ENTRADA ESCALON:
% SE SABE POR EJEMPLOS ANTERIORES QUE: vA=1; vM=z/(z-1)
% DETERMINACION DE bv(z)
% COMO v(z) NO POSEE POLOS FUERA DEL CU, ENTONCES bv(z)=1
% CALCULO DE qtilde_H=z*bp*(pM*bv*vM)^(-1){(z*bp*pA)^(-1)*vM}*:
% NOTAR QUE pnz(z) Y v(z) POSEEN 1 POLO EN z=1. COMO bp=bv=1,
% qtilde_H=pM^(-1)=(z^6+a1*z^5+a2*z^4+a3*z^3+a4*z^2+a5*z+a6)/...
%
(z*(b1*z^5+b2*z^4+b3*z^3+b4*z^2*b5*z+b6));
%
%
%
%
%

CALCULO DE qtilde_= 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
Magnitud de M en dB

Magnitudes en dB

20

10

4
5
6
7
8

10
9
20 0
10

10
Frecuencia angular

10
(rad/s)

10 0
10

10
Frecuencia angular

10
(rad/s)

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

+
r

395

numc(z)
denc(z)

S1

Controlador c(z)
u_p7rob1

nump(s)
denp(s)

y
Mux
Graph

Proceso
p(s)

Mux
y_p7rob1

Control u

Salida y

Figura 7.18: Diagrama de bloques para simular el sistema de ontrol robusto


on modelo interno del problema 7.3.

Velocidad (m/s)

15

10

0
0

4
5
6
Tiempo en segundos

10

4
5
6
Tiempo en segundos

10

300

Fuerza (N)

250
200
150
100
50
0
0

Figura 7.19: Velo idad del arro de maquinas y fuerza de ontrol para el
problema 7.3.

396

Control Robusto

Problema 7.4

La gura 3.22 muestra el pro eso as ensor tratado en el problema 3.6. Sin
embargo, para este problema onsidere que el a tuador posee la siguiente
fun ion de transferen ia:
x1 (s)
= Ka ; 0:008  Ka  0:012
v(s) s + 0:2
El problema a resolver es posi ionar suavemente el as ensor en un piso determinado, lo que signi a sobreimpulso nulo (para que no se pase de piso)
y tiempo de estabiliza ion menor que 8 s. Para no saturar al a tuador (un
ampli ador de poten ia), la se~nal de ontrol debe estar dentro del rango
de  200 volt. Dise~nar un sistema de ontrol robusto que umpla las espe i a iones pedidas. Realizar el al ulo del ontrolador para una entrada
v es alon. El sistema dise~nado debe ser del tipo m = 1. La sele ion del
tiempo de muestreo es a onvenien ia del dise~no. Asumir: `m(!)  j`m (ei! )j
y `a(!)  j`a (!)j.
Solu ion: El programa p8rob1.m detalla el pro edimiento para dise~nar
el ontrolador robusto uando la entrada v es un es alon. La gura 7.21
(ar hivo p8rob1s.m) es el diagrama de bloques empleado en la simula ion
del sistema dise~nado y requiere pque reviamente se eje ute el programa de
p8rob1.m. El resultado de la simula ion se muestra en la gura 7.22 (obtenida on el ar hivo p8rob1r.m). El sistema dise~nado umple los requerimientos
de estabilidad y rendimiento robustos, tal omo se apre ia en la gura 7.20.
% p8rob1.m SOLUCION AL PROBLEMA 7.4
lear all
% PROCESO
A = [-0.2 0 0 0;1 0 0 0;2 0 -2 0;5 0 0 -5;
B = [0.012;0;0;0;
C = [0 1 0 0; D = [0;
[nump,denp=ss2tf(A ,B ,C ,D );
bp2=nump(3); bp3=nump(4); bp4=nump(5);
ap1=denp(2); ap2=denp(3); ap3=denp(4); ap4=denp(5);
% p=(bp2*s^2+bp3*s+bp4)/(s^4+ap1*s^3+ap2*s^2+ap3*s);
% PROCESO DISCRETO
T = 0.8; % TIEMPO DE MUESTREO
[G,H,C,D= 2dm(A ,B ,C ,D ,T,'zoh');
[numz,denz=ss2tf(G,H,C,D);
az1 = denz(2); az2 = denz(3); az3=denz(4); az4=denz(5);
bz1 = numz(2); bz2 = numz(3); bz3=numz(4); bz4=numz(5);

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
Magnitud de M en dB

Magnitudes en dB

1.5
2
2.5
3
3.5

10
4
15 0
10

10
Frecuencia angular

4.5 0
10

(rad/s)

10
Frecuencia angular

(rad/s)

Figura 7.20: Condi ion de estabilidad robusta (gra 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 dinami a
del sistema de suspension de un bus (ver gura 3.12). Dise~nar un sistema de
ontrol robusto on modelo interno para lograr el objetivo de ontrol que se
formula a ontinua ion. La salida del pro eso y = x2 x1 (referen ia nula) no

400

Control Robusto

+
r

numc(z)
denc(z)

S1

Controlador c(z)
u_p8rob1

nump(s)
denp(s)

Mux
Graph

Proceso
p(s)

Mux
y_p8rob1

Control u

Salida y

Figura 7.21: Diagrama de bloques para simular el sistema de ontrol robusto


on modelo interno del problema 7.4.
3
Posicin (m)

2.5
2
1.5
1
0.5
0
0

4
5
6
Tiempo en segundos

10

4
5
6
Tiempo en segundos

10

Voltaje de control

200
150
100
50
0
50
0

Figura 7.22: Posi ion del as ensor y fuerza de ontrol (problema 7.4).
debe presentar sobreimpulsos mayores que 5 %. Luego de aproximadamente
20 segundos, las os ila iones originadas por un disturbio es alon de 10 m
provo ada por imperfe iones en la pista, pra ti amente deben desapare er.
El parametro in ierto del pro eso es la masa del bus, la que sin pasajeros es
de m1 = 2500 kg y lleno de pasajeros ambia a 3500 kg. Realizar el al ulo
del ontrolador para una entrada v es alon. El sistema dise~nado debe ser
del tipo m=1. Sele ionar un tiempo de muestreo onveniente.

7.8 Problemas Propuestos

401

Problema 7.6

La gura 2.2 muestra dos tanques identi os olo ados en as ada. La se ion
horizontal A=9 m2 de ada tanque es onstante. El objetivo de ontrol es
ontrolar la altura H2 empleando el ujo Qo. La dedu ion del modelo
linealizado del pro eso se des ribe en el ejemplo 2.1. Las espe i a iones de
dise~no son: tiempo de estabiliza ion menor que 15 s, sobreimpulso menor al
5 % y error nulo en estado estable. El ujo de entrada (la se~nal de ontrol)
no debe sobrepasar los 3 m3/s. Dise~nar un ontrolador robusto on modelo
interno que logre umplir los requerimientos anteriores. Realizar el al ulo
del ontrolador para una entrada v es alon. El sistema dise~nado debe ser
del tipo m = 1. La sele ion del tiempo de muestreo es a onvenien ia del
dise~no.
Problema 7.7

El pro eso ele trome ani o mostrado en la gura 3.26 se des ribe en el problema 3.8. Dise~nar un sistema de ontrol robusto on modelo interno para
ontrolar la velo idad angular del eje del motor mediante el voltaje de entrada que puede variar entre  100 volt. Realizar el al ulo del ontrolador
para una entrada v es alon. El sistema dise~nado debe ser del tipo m=1 y la
sele ion del tiempo de muestreo es a onvenien ia del dise~no. La salida ontrolada no debe presentar sobreimpulso ni error esta ionario. El parametro
in ierto es la iner ia J de la arga que puede variar en  12 %.
Problema 7.8

El problema 3.3 des ribe el pro eso de la bola rodando a lo largo de una barra
on un grado de libertad, tal omo se muestra en la gura 3.16. Una leva
one ta la barra on un engranaje que esta a ionado por un servomotor.
Dise~nar un sistema de ontrol robusto que pueda posi ionar la bola a 0.5 m
de un extremo de la barra de 1 m de longitud. Evidentemente, la os ila ion
de la bola debe estar restringida sobre la barra. El voltaje de ontrol no debe
sobrepasar los  40 voltios y la masa de la bola puede variar en  15 %.
Realizar el al ulo del ontrolador para una entrada v es alon. El sistema
dise~nado debe ser del tipo m = 1 y la sele ion del tiempo de muestreo es a
onvenien ia del dise~no.

402

Control Robusto

Problema 7.9

Las e ua iones del modelo linealizado para ontrolar la posi ion del a~non
montado en la torreta de un tanque (ver gura 3.28) empleando un a tuador
hidrauli o se detallan en el problema 3.9.
(a) Dise~nar un sistema de ontrol robusto on modelo interno para ontrolar el angulo de eleva ion  on las espe i a iones siguientes: tiempo de estabiliza ion menor que 8 s, mnimo sobreimpulso y error en
estado esta ionario nulo. Los disturbios tipo es alon pueden a tuar
simultaneamente o no y pueden ser positivos o negativos. Para ada
aso, el sistema de ontrol dise~nado debe ser apaz de minimizar sus
efe tos. Realizar el al ulo del ontrolador para una entrada v es alon.
El sistema dise~nado debe ser del tipo m = 1 y la sele ion del tiempo
de muestreo es a onvenien ia del dise~no. Considerar que todos los
parametros poseen in ertidumbre de  5 %.
(b) Lo mismo que (a), pero en este aso para ontrolar el angulo azimutal.
Problema 7.10

La gura 3.31 muestra el pro eso servomotor on arga no lineal des rito
en la se ion 3.3, en donde la arga no lineal posee ahora dos grados de
libertad on Lo = 2L1 =3. La union de la arga on el eje del servomotor
no es exible. Las e ua iones que des riben la dinami a del sistema fueron
requeridas en el problema 3.12. Dise~nar un sistema de ontrol robusto on
modelo interno para ontrolar simultaneamente las posi iones  y  on
mnimo tiempo de estabiliza ion y mnimo sobreimpulso. Considerar (a
su riterio) varia iones en la arga adi ional Mo . Realizar el al ulo del
ontrolador para una entrada v es alon. El sistema dise~nado debe ser del
tipo m = 1 y la sele ion del tiempo de muestreo es a onvenien ia del
dise~no. Considerar dos asos: (a) uando la indu tan ia de armadura es
despre iable, y (b) uando no lo es.
Problema 7.11

La gura 3.32 muestra el pro eso pendulo doble no lineal que es una extension del pendulo simple des rito en la se ion 3.1. El a oplamiento entre
los dos pendulos de igual longitud no es exible. Las e ua iones que des riben la dinami a del sistema son materia del problema propuesto 3.13.

7.8 Problemas Propuestos

403

Dise~nar un sistema de ontrol robusto on modelo interno para ontrolar


simultaneamente las posi iones  y  on mnimo tiempo de estabiliza ion
y mnimo sobreimpulso, de modo tal que el pendulo doble permanez a en
posi ion verti al. Considerar que la arga adi ional esferi a de 0.02 kg vara
en  6 %. Realizar el al ulo del ontrolador para una entrada v es alon.
El sistema dise~nado debe ser del tipo m = 1 y la sele ion del tiempo de
muestreo es a onvenien ia del dise~no.
Problema 7.12

La gura 3.33 muestra el pro eso doble grua-puente no lineal que es una extension del pro eso grua-puente des rito en la se ion 3.2. El a oplamiento
entre los dos pendulos de igual longitud no es exible. Las e ua iones que
des riben la dinami a del sistema son materia del problema propuesto 3.14.
Dise~nar un sistema de ontrol robusto on modelo interno para ontrolar
simultaneamente las posi iones  y  on mnimo tiempo de estabiliza ion y
mnimo sobreimpulso, de modo tal que la doble grua puente permanez a en
posi ion verti al uando el arro realiza un re orrido predeterminado. Considerar que la arga adi ional esferi a de 0.02 kg vara en  6 %. Realizar el
al ulo del ontrolador para una entrada v es alon. El sistema dise~nado debe
ser del tipo m = 1 y la sele ion del tiempo de muestreo es a onvenien ia
del dise~no.
Problema 7.13

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


velo idad v gra ias a la a ion de la fuerza u produ ida por su motor. Si
se despre ia la iner ia de las ruedas y se asume que la fuerza de fri ion bv,
donde b= 50 N-s/m es el oe iente de fri ion, es lo uni o que se opone
al movimiento del arro, enton es la dinami a del pro eso puede modelarse
omo (ver ejemplo 1.16):
mv_ (t) + bv(t) = u(t);

v_ =

dv
dt

Dise~nar un sistema de ontrol robusto on modelo interno para ontrolar la


velo idad del movil on mnimo tiempo de estabiliza ion y mnimo sobreimpulso. Considerar una in ertidumbre de  5 % en todos los parametros.
Realizar el al ulo del ontrolador para una entrada v es alon. El sistema
dise~nado debe ser del tipo m = 1 y la sele ion del tiempo de muestreo es a
onvenien ia del dise~no.

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 onvertirse fa ilmente en movimiento de trasla ion. Eso se apre ia en fajas
transportadoras o en brazos manipuladores. La gura 4.3 muestra el ir uito de armadura del motor y el diagrama de uerpo libre de su rotor.
Las e ua iones que gobiernan el omportamiento dinami o del motor fueron
derivadas en el ejemplo 4.1.
(a) Dise~nar un sistema de ontrol robusto on modelo interno para 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 de la salida menor al 5 %. Considere
varia iones de  7 % en los parametros b y J . Realizar el al ulo del
ontrolador para una entrada v es alon. El sistema dise~nado debe ser
del tipo m = 1 y la sele ion del tiempo de muestreo es a onvenien ia
del dise~no.
(b) Dise~nar un sistema de ontrol robusto on las espe i a iones anteriores, 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 ; v(z) = z= ;  = 100T
v(s) =
s + 1
z e T==tau
donde T es el tiempo de muestreo.
Problema 7.16

Repetir los problemas 7.1 al 7.14 uando la entrada v toma las formas:
1
Tz
v(s) = 2 ;
v(z ) =
s
(z 1)2
y el tipo del sistema es m=2. Tomar omo se~nal de referen ia una rampa
de pendiente unitaria.

Cap
tulo 8

Control No Lineal
Luego de formulado el problema de ontrol a resolver, el siguiente paso es
en ontrar un modelo que sea apaz de apturar la dinami a del pro eso en el
rango de opera ion. En realidad todos los pro esos son no lineales y mu has
ve es resulta mas onveniente trabajar dire tamente on el modelo no lineal. As
podemos dise~nar sistemas de ontrol no lineal empleando diversas te ni as tales
omo [13: el metodo dire to de Liapunov, ontrol deslizante, ontrol adaptivo
( aptulo 5) y linealiza ion de la realimenta ion (materia de este aptulo).
La idea fundamental del ontrol de pro esos no lineales empleando la te ni a
de linealiza ion por realimenta ion, es linealizar (hallar un modelo lineal equivalente) el pro eso (par ial o totalmente, si fuera posible) mediante un ambio
ade uado de oordenadas y una realimenta ion del ve tor de estado de di ho
pro eso, de modo tal que el pro eso resultante (su forma normal) nos permita
apli ar te ni as de ontrol lineal (en el aso de linealiza ion ompleta del pro eso), o bien, ata ar los problemas de ontrol on un grado de di ultad menor
(en el aso de linealiza ion par ial).
El pro edimiento de dise~no sugerido se apli a al ontrol no lineal de posi ion
de un servomotor D.C., sujeto a la a ion de una arga no lineal y al efe to que
produ en algunas no linealidades inherentes al pro eso, tales omo satura ion
del ampli ador y fri ion de Coulomb.
La penultima se ion, problemas resueltos, esta dedi ada al dise~no de sistemas de ontrol no lineal para diferentes pro esos. En la ultima se ion se proponen proplemas de dise~no. Todos los ar hivos orrespondientes a los ejer i ios,
problemas, dise~nos, simula iones y software desarrollados se pueden des argar
del sitio: http:// ee.uni.edu.pe/728681F.

406

8.1

Control No Lineal

Herramientas Matemati as

Las herramientas matemati as a dis utir orresponden a la geometra diferen ial y a la topologa. Solo se tratan los puntos dire tamente involu rados
on la te ni a de linealiza ion por realimenta ion. Por esta razon es que
esas matemati as no se in luyeron omo parte del aptulo 1.
La nota ion:
f : Rn ! Rn
(8.1)
indi a que a ada fun ion ve torial f le orresponde un ampo ve torial en el
espa io n-dimensional Rn. Los ampos ve toriales de interes para nosotros
son los denominados suaves. Un ampo ve torial f (x) es suave uando tal
fun ion ve torial posee in nitas derivadas par iales ontinuas.
Si h(x) es una fun ion es alar de variable ve torial suave, donde x es el
ve tor de estado, enton es su gradiente es:
2 h 3

h 6 x.. 1
rh = x
=4 .

h
xn

El ja obiano de f (x) tiene la forma:

2 f1

(8.2)

7
5

x1



f1 3
xn

fn
x1



fn
xn

f 6 ..
rf = x
=4 .

...

7
5

(8.3)

8.1.1 Derivadas y Cor hetes de Lie

De ni ion 8.1 Dada una fun ion es alar suave h(x) : Rn ! R y un ampo ve torial suave f (x) : Rn ! Rn, nosotros podemos de nir una nueva
fun ion es alar Lf h = rh f denominada la derivada de Lie, o simplemente
la derivada dire ional de h a lo largo de la dire ion del ve tor f .

Su esivas derivadas de Lie pueden ser de nidas re ursivamente:


L0f h = rh f 0 = h
Lif h = Lf (Lf 1 h) = r(Lif 1 h) f;
i = 1; 2; : : :
(8.4)
Del mismo modo, si g es otro ampo ve torial, la fun ion es alar LgLf h(x)
es:
Lg Lf h(x) = r(Lf h) g
(8.5)
i

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 ion: Las derivadas de la salida son:
h
y_ = x_ = Lx_ h = Lf h
x
y =

 [Lf h
x_ = L2f h
x

De ni ion 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 = adf g
Observar que al or hete de Lie se le denota tambien omo adf g, donde
ad signi a adjunta. Su esivos or hetes de Lie se pueden de nir re ursivamente:
adf 0 g = g
adf g = [f; adf 1 g; i = 1; 2; : : :
i

Ejemplo 8.2

Determinar [f; g para el pro eso no lineal x_ = f (x) + gu, donde:






2
x
+
ax
+
senx
0
1
2
1
f=
; g = os(2x1 )
x2 osx1
Solu ion:



0
0
2
x
+
ax
+
senx
1
2
1
[f; g =
2sin(2x1 ) 0
x2 osx1


2 + osx1 a
0 
x2 sinx1
osx1
os(2x1 )


a os
(2
x
)
1
= osx1 os(2x1 ) 2sen(2x1 )( 2x1 + ax2 + senx1)

408

Control No Lineal

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 Lg Lf h
f

donde f; f1 ; f2; g; g1 y g2 son ampos ve toriales,


es alares y h(x) es una fun ion diferen iable.

y 2 son onstantes

8.1.2 Difeomor smo y Transforma ion de Estados

El on epto de difeomor smo, que puede ser visto omo una generaliza ion
del on epto familiar de transforma ion de oordenadas, es el siguiente:
De ni ion 8.3 Una fun ion : Rn ! 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 region de
.
Ejemplo 8.3

Determinar el difeomor smo lo al alrededor del origen para el sistema siguiente:






z1 = (x) = 2x1 + 5x1 x22
3senx2
z2

8.1 Herramientas Matemati as

409

El ja obiano de  para x = (0; 0) es:





2 + 5x22 10x1 x2 
2 0
=
=
0 3 osx2 x=(0;0) 0 3
x
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.

Solu ion:

8.1.3 Transforma ion no Lineal de Estados

Un difeomor smo puede ser usado para transformar una representa ion no
lineal en otra, en terminos de un nuevo ve tor de estado. Consideremos que
el pro eso no lineal sea des rito por la siguiente representa ion en el espa io
de estado:
m
X
x_ = f (x(t)) + gj (x(t))uj (t);
y(t) = h(x(t))
(8.6)
j =1

donde u(t) = [u1 (t); : : : ; um (t)T es el ve tor de ontrol (la variable manipulada) del pro eso de orden m, x(t) = [x1 (t); : : : ; xn (t)T es el ve tor de estado
del pro eso de orden n, y(t) = [y1(t); : : : ; yp(t)T es el ve tor de salida del
pro eso (la variable ontrolada) de orden p y las fun iones f = [f1; : : : ; fnT ,
g = [g1 ; : : : ; gm T y h = [h1 ; : : : ; hp T orresponden a ampos ve toriales in nitamente diferen iables.
Asumamos la siguiente transforma i
on no lineal 3de estados:
2
1 (x1 ; : : : ; xn )
6
7
...
z = (x) = 4
(8.7)
5
n (x1 ; : : : ; xn )
donde la fun ion de transforma ion  es invertible y tanto  omo su inversa
 1 son in nitamente diferen iables. Notar que la transforma ion dada en la
e ua ion (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 ion garantiza que la des rip ion del pro eso on las nuevas oordenadas
sea tambien in nitamente diferen iable, tal omo lo es el pro eso original.
Empleando la transforma ion z = (x) en la e ua ion (8.6) obtenemos:



x_ (t)
z_ =
x
=

x
(t)


m
X


f (x(t)) +
g (x(t))uj (t)
x x(t)
x x(t) j =1 j

(8.8)

410

Control No Lineal

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 ion no lineal para el ve tor de estado z, omo sigue:
m
X
~
z_ = f (z(t)) + g~j (z(t))uj (t);
y(t) = h~(z(t))
(8.9)
~f (z) =
g~j (z)

j =1


f ( 1 (z))
x



g ( 1 (z))
x j
h( 1 (z))

=
h~(z) =
Observar que (8.9) onstituye un nuevo sistema no lineal on un ve tor de
estado z.
8.1.4 El Teorema de Frobenius

El teorema de Frobenius es una herramienta importante para el tratamiento


formal de la linealiza ion 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 ampos ve toriales [f1 ; : : : ; fm en Rn es ompletamente integrable, si y solo si
existen (n m) fun iones es alares h1 (x); h2 (x); : : : ; hn m (x) que satisfa en
el siguiente sistema de e ua iones diferen iales par iales:

rhi fj = 0
donde 1  i  n m, 1  j  m. En adi ion,
tambien linealmente independientes.

La de ni ion anterior impli a la existen ia de n(m


iales par iales de la forma rhifj = 0.

los gradientes

rhi

son

n) e ua iones diferen-

De ni ion 8.5 Se di e que un onjunto linealmente independiente de ampos ve toriales [f1 ; : : : ; fm en Rn es involutivo, si y solo si existen fun iones
es alares ijk : Rn ! Rn tales que:

[rg f rf g(x) = [f; g(x) =

m
X
k=1

ijk (x)fk (x);

8 i; j

8.1 Herramientas Matemati as

411

Ya vimos que la nota ion [f; g es ono ida omo el or hete de Lie. Partiendo 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 =

m
X
k=1

ijk (x)fk (x);

8 x; i; j

2. Un onjunto ompuesto por un solo ampo ve torial f es involutivo


porque [f; f = 0.
3. Si un onjunto de ampos ve toriales [f1; : : : ; fm es involutivo, impli a
que para todo i; j :
rango [f1 (x); : : : ; fm (x) = rango [f1 (x); : : : ; fm (x); [fi ; fj
Ahora s podemos formular el teorema de Frobenius:
Teorema 8.1 (Frobenius) Sea [f1 ; f2 ; : : : ; fm un onjunto de ampos ve toriales linealmente independientes. Se di e que tal onjunto es integrable si
y solo si es involutivo.

Ejemplo 8.4

Considere el onjunto de e ua iones diferen iales par iales:


h h
4x3 x
=0
1 x2

h
h
+ (x23 3x2 ) x
+
2
x3
=0
x3
2
donde sus ampos ve toriales aso iados poseen la forma:
f1 = [4x3
1 0T ; f2 = [ x1 (x23 3x2 ) 2x3 T
Determine si tal onjunto de e ua iones diferen iales par iales es solu ionable
(o en otras palabras, si [f1 ; f2 es ompletamente integrable).
Solu ion: Operando, en ontramos que:
[f1 ; f2 = [ 12x3 3 0T
Dado que [f1 ; f2 = 3f1 + 0f2 , este onjunto de ampos ve toriales es involutivo. Por onsiguiente, las e ua iones diferen iales par iales dadas son
solu ionables.
x1

h
x1

412

8.2

Control No Lineal

Grado Relativo

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 ion dire ta entre la entrada u y la salida y. Para
ello derivamos la salida omo sigue:
h(x)
h(x)
h(x)
y_ =
x_ =
f (x) +
g(x)u
x
x
x
= Lf h(x) + Lgh(x)u
Si Lg h(x) 6= 0, enton es se obtiene la rela ion deseada entre y y u; en aso
ontrario, debemos seguir derivando la salida remanente y_ = Lf h(x) omo
se muestra a ontinua ion:
y

=
=
=


L h(x)x_
x f


Lf h(x)f (x) + Lf h(x)g(x)u
x
x
L2f h(x) + Lg Lf h(x)u

Nuevamente, si Lg Lf h(x) 6= 0, enton es se tiene la rela ion 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 = Lrf h(x) + Lg Lrf 1 h(x)u;

Lg Lrf 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 numero de ve es r que hay que derivar la salida
hasta obtener:

Lg Lif h(x) = 0;

i = 1; 2; : : : ; r

Lg Lrf 1 h(x) 6= 0
para todo x que pertenez a a una region

de Rn.

(8.11)
(8.12)

8.3 Forma Normal de Pro esos No lineales

8.3

413

Forma Normal de Pro esos No lineales

La te ni a de linealiza ion por realimenta ion requiere de una representa ion
no lineal bastante util del pro eso a ontrolar: la forma normal. La transforma ion no lineal de oordenadas que permite llevar un pro eso no lineal de
una entrada y una salida (e ua i
on (8.10)) a su forma normal, involu ra los
r
1
terminos h(x); Lf h(x); : : : ; Lf h(x), tal omo veremos mas adelante. Por
onsiguiente, tal transforma ion depende del grado relativo r del pro eso.
Empezaremos por el aso mas simple: r = n, donde n es el orden del pro eso.
La siguiente transforma ion de oordenadas:
3
2
3 2
h(x)
1 (x)
6 2 (x) 7 6 Lf h(x) 7
7
7 6
; y = h(x)
(8.13)
z = (x) = 6
6
7=6
.
.
.
.
4
. 5 4 n 1. 75
n (x)
Lf h(x)
on x = [x1 ; x2;    ; xnT , umple on las ondi iones de una transforma ion
no lineal; es de ir, es un difeomor smo basado en la hipotesis de que el orden
del sistema es r = n. Por onsiguiente, di ha transforma ion puede llevar al
pro eso des rito en la e ua ion (8.10) a la forma siguiente:
1 (x)
z_1 =
x_
x
1 (x) [f (x) + g(x)u
= x
= Lf h(x) + Lg h(x)u = Lf h(x) = 2(x)
= z2
...
n 1 (x)
z_n 1 =
x_
x
n 2
= Lf h(x) [f (x) + g(x)u
=
=
z_n =
=
y

x
Lnf 1 h(x) + Lg Lnf 2 h(x)u = Lnf 1 h(x) = n (x)
zn
Lnf h(x) + Lg Lnf 1 h(x)u
Lnf h( 1 (z)) + Lg Lnf 1 h( 1 (z))u = b(z) + a(z)u

z1

(8.14)

414

Control No Lineal

Notar que en la e ua ion anterior, a(z) 6= 0 por de ni ion, ya que en este


aso r = n.
Cuando el pro eso no lineal posee rango r < n, enton es el ambio de oordenadas desarrollado anteriormente ondu e a una transforma ion 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 difeomor smo. Con ello, la forma normal del pro eso (8.10) resulta en la siguiente
representa ion en el espa io de estado:
z_1
z_2

= z2
= z3
...
z_r 1 = zr
z_r = Lrf h( 1 (z)) + Lg Lrf 1 h( 1 (z))u = b(z) + a(z)u
z_r+1 = w1 (z)
...
z_n = wn r (z)
y = z1
(8.15)
donde w1 ; w2 ; : : : ; wn r son fun iones suaves que dependen del nuevo estado
z y no de la entrada manipulada u.
8.4

Linealiza ion 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 ion
no lineal que onduz a a una linealiza ion exa ta del pro eso original. El
pro eso puede ser univariable ( on una entrada y una salida) o multivariable
( on multiples entradas y multiples 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 ion
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 ion:


z_1 = z2
z_2 = z3
...
z_n 1 = zn
z_n = Lnf h( 1 (z)) + Lg Lnf 1 h( 1 (z))u = b(z) + a(z)u
y = z1
(8.16)
Si se de ne una se~nal de realimenta ion u (la ley de ontrol no lineal) de la
forma:
1 [ b(z) + v
u=
(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 ion lineal en el
espa io de estado:
z_ = Ax + Bv;
y = Cx
(8.19)
donde:
2
2
03
0 1 0 ::: 0 3
6 0 0 1 ::: 0 7
6 0 7
6
7
6
7


6 .. .. ..
7
6 .. 7
.
.
.
.
A = 6 . . . . . 7 ; B = 6 . 7 ; C = 1 0 : : : 0 0 (8.20)
6
7
6
7
4 0 0 0 ::: 1 5
4 0 5
1
0 0 0 ::: 0
Observar que la nueva entrada del pro eso lineal es v. La gura 8.1 muestra el pro eso de linealiza ion des rito hasta ahora. El pro eso lineal de la
e ua ion (8.19) es ompletamente ontrolable y ompletamente observable,

416

Control No Lineal

ya que sus matri es de ontrolabilidad [B AB : : : An 1B y de observabilidad [C T AT C T : : : (AT )n 1 C T poseen rango n (rango ompleto). Por
otra parte, el pro eso resultante es un integrador de orden n debido a que
su fun ion de transferen ia resulta:
y(s)
1
=
C [sI A 1 B = n
(8.21)
v(s)
s
v

 
 

- 
6

b(z)
a(z)

1
a(z)

x_ = f (x) + g(x)u

?-

z = (x)
C


-

Figura 8.1: Linealiza ion por realimenta ion.


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, ompletamente 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 dise~nando 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 medibles. De lo ontrario, estamos obligados a estimarlos empleando un
observador no lineal, omo veremos mas adelante.
Condi iones para Linealiza ion 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 ion x, satisfa e:
Lg h(x) = Lg Lf h(x) =    = Lg Lnf 2 h(x) = 0
Lg Lnf 1 h(x) 6= 0
(8.22)
Las ondi iones para linealiza ion 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 solo si
existe una region
en donde se umplen las ondi iones siguientes:
1. Los ampos ve toriales:

[g;

adf g; : : : ; adnf 1 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:
es involutivo en
.

[g;

adf g; : : : ; adnf 2 g

La primera ondi ion puede ser interpretada omo una ondi i


on de onn
1
trolabilidad dado que los ampos ve toriales [g; adf g; : : : ; adf g apli ados a pro esos lineales se onvierten en la ono ida matriz de ontrolabilidad
[B; AB; : : : ; An 1B . El rango de esta matriz debe ser n para que el pro eso
lineal (entendiendose 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 ion puede onsiderarse omo una generaliza ion de la
ondi ion de ontrolabilidad.
La ondi ion involutiva es menos intuitiva. Para sistemas lineales, tal
ondi ion se satisfa e trivialmente ya que los ampos ve toriales son onstantes. Pero, en general, no se puede de ir lo mismo uando se trata on
pro esos no lineales.

418

8.5

Control No Lineal

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
3
O=

6
6
6
4

C
CA

...

CAn 1

7
7
7
5

(8.23)

El aso no lineal y no forzado que nos o upa posee la des rip ion:
x_ = f (x);
y(t) = h(x)
(8.24)
uya orrespondiente matriz de observabilidad generalizada es:
2
3
h(x)
 6 Lf h(x) 7
7
O (x) , 6
(8.25)
6
.
.
x 4
. 75
Lnf 1 h(x)
Es fa il demostrar que si f (x) = Ax y h(x) = Cx, las matri es de
observabilidad de las e ua iones (8.23) y (8.25) se igualan. Supongamos que
la matriz O(x) posea inversa para todo x. En tal aso, la transforma ion
de nida por:
2
3
h(x)
 6 Lf h(x) 7
z = (x) = 6
(8.26)
... 775
x 6
4
Lnf 1 h(x)
representa un ambio de oordenadas. Empleando los resultados anteriores
y en analoga on la e ua ion (8.16); la des rip ion en el espa io de estado
para las nuevas oordenadas (notar que g = 0) es:
2
3 2
3
z_1
z2
6 z_2 7 6
7
z3
7
6
7 6
6 .. 7 6
7
...
y = z1
(8.27)
7;
6 . 7=6
7
6
7 6
4 z_n 1 5 4
5
zn
z_n
Lnf h[ 1 (z)

8.5 Observadores No Lineales

419

que posee la forma matri ial siguiente:


z_ = Az + BLnf h( 1 (z));
y = Cz
(8.28)
donde:2
2
03
0 1 0 ::: 0 3
6 0 7
6 0 0 1 ::: 0 7
7
6
6


6 .. .. ..
7
. 77
(8.29)
A = 6 . . . ... ... 7 ; B = 6
6 .. 7 ; C = 1 0 : : : 0 0
7
6
7
6
4 0 0 0 ::: 1 5
4 0 5
1
0 0 0 ::: 0
Se puede demostrar que la matriz de observabilidad del pro eso des rito
en la e ua ion (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 + BLnf h( 1 (z))
y = Cz
(8.30)
El observador a dise~nar 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 extension de los bien ono idos observadores
lineales (subse ion 2.3.6), para el observador no lineal podemos onsiderar
la dinami a siguiente :
d^z
= A^z + BLnf h( 1 (z)) + L[y C^z; y^ = C^x
(8.31)
dt
donde observamos que el termino 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 d^x=dt omo sigue:
d^x
d^z
=
O 1 (x^)
dt
dt
y usando la rela ion (8.31) obtenemos:
d^x
= O 1(x^)fA^z + BLnf h( 1 (z)) + L[y C^zg
dt
= O 1(x^)fO(x^)f (x^) + L[y C^zg
= f (x^) + O 1 (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


x_ = f (x), y = h(x), on ondi ion ini ial x^(0), siempre que O 1 (x) exista.
Notar que tambien hemos usado el he ho de que:
y^ = h(x^) = h( 1 (^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:
z_ = Az + B [Lnf h( 1 (z)) + Lg Lnf 1 h( 1 (z))u
(8.33)
Luego, por extension (ver e ua ion (8.31)), la dinami a del observador para
el sistema forzado:
x_ = f (x) + g(x)u;
y = h(x)
tiene la forma:
d^z
= A^z + BLnf h( 1 (^z)) + Lg Lnf 1h( 1 (^z))u + L[y C^z (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 ion del observador para el
sistema original toma la forma siguiente:
d^x
= f (x^) + g(x^)u + O 1L[y(t) h(x^)
(8.35)
dt
para una ondi ion ini ial x^(0).
Cal 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

L = (W N T ) 1 6
4

n an

...

1 a1

donde n es el orden del pro eso, y:



N = C T AT C T    (AT )n

(8.36)

7
5

1C T

8.6 Pro edimiento de Dise~no


2
6
6
6
6
6
4

an 1
an 2

421
an 2
an 3

   a1 1 3
   1 0 77

...
...
... ... 77
7
a1
1  0 0 5
1
0  0 0
Los parametros ai, i = 1; : : : ; n, se obtienen de la e ua ion:
jsI Aj = sn + a1sn 1 +    + an 1s + an
mientras que los parametros i, i = 1; : : : ; n, se determinan a partir de las
ra es deseadas del observador i, i = 1; : : : ; n. Estas ra es onforman la
e ua ion ara tersti a del observador:
(s 1 )    (s 1 ) = sn + 1 sn 1 +    + n 1s + n
y deben tener parte real negativa para garantizar la estabilidad del observador no lineal.
W

8.6

Pro edimiento de Dise~


no

El pro edimiento para dise~nar el sistema de ontrol no lineal basado en la


te ni a de linealiza ion por realimenta ion es omo sigue:
1) Formular el problema (de nir espe i a iones de dise~no).
2) Determinar el modelo no lineal ontinuo del pro eso.
3) Determinar el grado relativo del modelo no lineal ontinuo del pro eso
(subse ion 8.2).
4) Comprobar que se umplen las ondi iones de linealiza ion exa ta del
modelo no lineal ontinuo del pro eso (subse ion 8.4).
5) Determinar la forma normal del pro eso no lineal (subse ion 8.3).
6) Implementar la linealiza ion por realimenta ion de estado y la ley de
ontrol no lineal (subse ion 8.4).
7) Dise~nar 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 ion 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 metali 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 dise~nar e implementar un sistema de ontrol
no lineal basado en la te ni a de linealiza ion por realimenta ion, 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 mnimo no obstante la presen ia de la arga no lineal y de las no
linealidades del pro eso, omo las fri iones estati 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 se~nal 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 ion estati a y fri ion de Coulomb, enton es el pro eso no lineal puede
ser des rito mediante la siguiente representa ion en el espa io de estado:
x_ = f (x) + g(x)Ka t u;
y = h(x)
(8.37)
donde:
2

f (x)

4
2

g(x)

x2
N
B
( M )senx1 M x2 M1 TN + nK
M x3
nE x
R x + Ka t u
L 2 L 3
L

03
0 5;

3
5

h(x) = x1

(8.38)

Los elementos del ve tor de estado [x1 x2 x3T son la posi ion angular, la
velo idad angular y la orriente de armadura, respe tivamente, y Ka t u es la
tension de armadura. Notar que el modelo del pro eso no lineal es ontinuo
y diferen iable.
El termino no lineal TN debido a las fri iones estati a y de Coulomb,
puede no onsiderarse, dado que sus efe tos van a ser ompensados por
software uando el sistema de ontrol no lineal se implemente en tiempo
real.
Modelo No Lineal de Segundo Orden (L = 0)

El modelo no lineal de segundo orden del pro eso es (subse ion 3.3):


=
BR+n2 KE x
2
MR
y = h(x) = x1
donde:
x_

f (x) =

BR+n2 KE x
2
MR

TN
M

x2

x2

N
M senx1

+ nKMRK u = f (x) + g(x)u


(8.39)
a t

TN
M

N
M senx1

g(x) =

nKa t K
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 ion 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) = x2
(8.40)
Lg Lf h(x) = r(Lf h(x))g(x) = 0
(8.41)
N
B
nK
L2f h(x) = r(Lf h(x))f (x) =
senx1
x2 +
x (8.42)
M
M
M 3
nK
6= 0
(8.43)
Lg L2f h(x) = r(L2f h(x))g(x) =
ML

por onsiguiente, el rango del pro eso respe to a la salida y es r = 3. Ello


impli a que el pro eso en uestion es ompletamente linealizable.
Grado Relativo del Pro eso No Lineal de Segundo Orden

De a uerdo a lo estable ido en la subse ion 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) = x2
(8.44)
nK K
(8.45)
Lg Lf h(x) = r(Lf h(x))g(x) = a t 6= 0
MR

Por onsiguiente, el rango del pro eso respe to a la salida y es r = 2. Ello


impli a que el pro eso en uestion es ompletamente linealizable.
8.7.4 Comprobar Linealiza ion Exa ta
Linealiza ion Exa ta del Modelo Lineal de Ter er Orden

Para apli ar las ondi iones de linealiza ion estable idas en el teorema 8.2,
debemos al ular:
adf g = [f; g = rg f rf g
2
0
1 0 32 0 3 2 0 3
nK 5
54 0 5 = 4
= 4 MN osx1 MB nK
M
ML
1
R
R
nE
0 L
L
L
L2
ad2f g = [f; adf g = r(adf g) f rf adf g

8.7 Control No Lineal de un Servosistema


2

=4

N
M osx1
nE
L

B
M
R
L

nK 5 4
M
2

[g adf g ad2f g = 4
Dado que:

32

0
0
1

425

nK 5
ML
R
L2

=4

nK
ML
R
L2

det[g adf g ad2f g =

3
nK
ML
nKB nKR 5
M22 L
ML2
n KE R2
2
ML
L3

nK
ML
nKB nKR 5
M22 L
ML2
n KE R2
2
ML
L3

n2 K 2
M 3 L3

enton es tal onjunto esta onformado por ampos ve toriales linealmente


independientes. Por otra parte, el onjunto:
[g adf g
es involutivo porque es onstante.
Linealiza ion Exa ta del Modelo Lineal de Segundo Orden

Como en el aso anterior, para apli ar las ondi iones de linealiza ion estable idas en el teorema 8.2, debemos al ular:
adf g = [f; g = rg f rf g
Es fa il demostrar que:


nKa t K 2
det[g adf g =
MR
lo que signi a que tal onjunto esta onformado por ampos ve toriales
linealmente independientes.
Por otra parte, el onjunto [g adf g es involutivo porque es onstante.
8.7.5 La Forma Normal
Forma Normal del Modelo No Lineal de Ter er Orden

La forma normal del pro eso en estudio puede ser obtenida mediante la
transforma ion no lineal z = (x) del estado x, omo sigue:
2
3
2
3 2
3
x1
z1
h(x)
5
x2
z = 4 z2 5 = (x) = 4 Lf h(x) 5 = 4
N
B
nK
2
z3
Lf h(x)
M sinx1 M x2
M x3
(8.46)

426

Control No Lineal

Notar en la ultima e ua ion que el nuevo estado z posee signi ado fsi o,
puesto que z1 es la posi ion del eje del servomotor, z2 es su velo idad angular
y z3 su a elera ion. El estado original x expresado en fun ion del nuevo
estado z esta dado por:
2

x=4

x1
x2
x3

=  1 (z) = 4

z1
z2

3
5

+
+
De a uerdo a la subse ion 8.3, las nuevas oordenadas resultan:
z_1 = z2
z_2 = z3
z_3 = L3f h( 1 (z)) + Lg L2f h( 1 (z))
donde:
N
B
osx1 x2
M
M

N
nK senz1

B
nK z2

(8.47)
(8.48)

L3f h(x) = r(L3f h(x)) f (x)




N
B
nK
nK
nE
senx1
x2 +
x3 +
x
M
M
M
M
L 2
nK K
Lg L2f h(x) = a t
ML

Luego, la forma normal del pro eso resulta:


z_1 = z2
z_2 = z3
 2

NR
n KE BR
N
osz1 z2
senz1
+ ML z2
z_3 =
M
ML
ML
y

M
nK z3

a t K
+ nKML
u

B
M

R
x
L 3

+ RL z3
(8.49)

z1

Forma Normal del Modelo No Lineal de Segundo Orden

El modelo no lineal de segundo orden del pro eso, sin onsiderar el termino
no lineal TN es (ver e ua ion 8.39):
h
i
n2 KE x
N senx + nK K u = f (x) + g(x)u
x_ = x2 BR+MR
2 M
1
MR
y = h(x) = x1
(8.50)
que de he ho ya se en uentra en su forma normal.
a t

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 esta dada en la
e ua ion (8.49). Reemplazamos en di ha e ua ion la siguiente ley de ontrol:
1
u =
[v L2f h( 1 (z))
L L2 h( 1 (z))
=

g f


ML
N
NR
v + osz1 z2 +
senz1
nK
M
ML
 2


 
B R
n KE BR
+ ML z2 + M + L z3
ML

+
(8.51)
donde v es una entrada equivalente, obtenemos:
z_1 = z2
z_2 = z3
z_3 = v
y = z1
(8.52)
o lo que es equivalente:
z_ = Az + Bv;
y = Cz
donde:
2
2
0 1 03
03


A = 4 0 0 1 5;
B = 4 0 5;C = 1 0 0
0 0 0
1
La fun ion de transferen ia del pro eso lineal equivalente se obtiene de:
y(s)
1
=
C (sI A) 1 B = 3
v(s)
s
O lo que es lo mismo:
d3 y(t)
=v
(8.53)
dt
El pro eso de linealiza ion desarrollado se ilustra en la gura 8.2.
Ahora se debe dise~nar v de modo tal que y = z1 siga una traye toria
deseada r(t). El siguiente ontrol logra tal objetivo:
d3 r
d2 (r y)
d(r y)
v=
K1
K2
K3 (r y)
(8.54)
dt3

dt2

dt

428

Control No Lineal

Realimentacion
no lineal
u = u(z,v)
z

Proceso
no
lineal
z = (x )

s3

Proceso lineal
equivalente

Figura 8.2: Linealiza ion del pro eso no lineal y su pro eso lineal equivalente.
Reemplazando (8.54) en (8.53) obtenemos la e ua ion del sistema de lazo
errado:
d2 (r y )
d(r y)
d3 (r y)
K1
K2
K3 (r y) = 0
dt3

dt2
dt
donde los parametros K1, K2 y K3 determinan la dinami a del error r y. Si
se desea que y ! r uando t ! 1, enton es los eigenvalores de la e ua ion

anterior deben poseer parte real negativa. Por ejemplo, si deseamos que los
eigenvalores sean s1 = s2 = s3 = 4, enton es la e ua ion del sistema de
lazo errado resulta s3 + 12s2 + 48s + 64, de donde se obtiene: K1 = 12,
K2 = 48 y K3 = 64. La expresion de v en fun ion de la traye toria de
referen ia resulta:
v=

donde:

d3 r
d2 r
dr
+
K
+
K2 + K3 r Kz
1
3
2
dt
dt
dt

K = K1 K2 K3

z=4

y
y_
y

(8.55)
3
5

Finalmente, la se~nal de ontrol u puede ser obtenida reemplazando (8.55)


en (8.51), lo que resulta en:
u

ML
nK



d3 r
d2 r
dr
N
+
K
+
K2 + K3 r Kz + osz1 z2
1
3
2
dt
dt
dt
M

8.7 Control No Lineal de un Servosistema

NR
n2 KE
senz1 +
ML
ML

BR
+ ML

z2 +

429
B
M

+ RL

z3

(8.56)

Ley de Control No Lineal para el Modelo de Segundo Orden

La siguiente ley de ontrol:


u=



MR
BR + n2 KE
N
v+
x2 + senx1
nKa tK
MR
M

(8.57)

linealiza ompletamente el modelo del pro eso dado en (8.50), donde v es


una nueva entrada por dise~narse. Al apli ar la se~nal 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:
d2 y
dt2

=v
La se~nal v debe dise~narse de modo tal que y = x1 siga una traye toria de
referen ia r(t). La siguiente se~nal v:
d2 r
d(r y)
v=
K1
K2 (r y)
dt2

dt

logra que el sistema de lazo errado tenga la forma:


d2 (r y)
+ K1 d(r y) + K2 (r y) = 0
dt2

dt

donde K1 y K2 determinan la dinami a del error (r y). Si se desea que


y ! r uando t ! 1, enton es los eigenvalores de la e ua ion anterior deben
poseer parte real negativa. Por ejemplo, si deseamos que los eigenvalores
sean s1 = s2 = 4, enton es la e ua ion del sistema de lazo errado resulta
s2 + 8s + 16, de donde se obtiene: K1 = 8 y K2 = 16 y K3 = 64. La
expresion de v en fun ion de la traye toria de referen ia resulta enton es:
v=

d2 r
+ K1 dr
+ K2 r Kx
dt2
dt

(8.59)

430

Control No Lineal

donde:

K = K1 K2

z=4

y
y_
y

3
5

Finalmente, la se~nal de ontrol u puede obtenerse reemplazando (8.59) en


(8.57), lo que resulta en:

MR d2 r
u =
+ K1 dr
+ K2r Kx
nKa t K dt2
dt

N
BR + n2 KE
x2 + senx1
+
(8.60)
MR

8.7.7 Dise~no del Observador No Lineal de Estados


Observador No Lineal para el Modelo de Ter er Orden

Dado el modelo no lineal del pro eso de ter er orden:


x_ = f (x) + g(x)u;
y = h(x)
su orrespondiente matriz de observabilidad puede obtenerse apli ando la
e ua ion (8.25) omo sigue:
2
3
2
3
x
h
(
x
)
1
 4

5
x2
O(x) =
L h(x) 5 = 4
x Lx2 h(x)
x
N senx
B x + nK x
1 M 2 M 3
x
M
2
3
1
0 0
4
0
1 0 5
=
(8.61)
N
M senx1

Claramente vemos que:

B
M

nK
M

det[O(x) =

nK
M

6= 0

lo que signi a que O(x) posee inversa. Esta inversa es:


2
3
1
0
0
0
1 0 5
O 1 (x) = 4
N
nK osx1

B
nK

Por onsiguiente, la e ua ion del observador es:


d^x
= f (x^) + g(x^)u + O 1L[y(t)
dt
y^ = h(x^)

M
nK

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 ion (8.25) omo sigue:





 x1
h
(
x
)
O(x) =
= x x2
x Lx h(x)


1
0
= 0 1 B nK
(8.63)
M

La dinami a del observador queda des rita enton es por:


d^x
dt
y^

= f (x^) + g(x^)u + O 1L[y(t) h(x^)


= h(x^)
(8.64)
Cabe anotar que en este aso el observador es util para estimar la velo idad angular x2. Sin embargo, por software podemos tambien estimar x2,
sabiendo que es la derivada de x1 .
8.7.8 Simula ion 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 tersti o toma la forma:
(s s1)(s s2)(s s3) = s3 + K1s2 + K2 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
lineal
v = v(r, z )
z

Realimentacion
no lineal
u = u( z ,v)

Proceso
no
lineal

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 ion del sistema. En el ambiente de trabajo de MATLAB, ada subsistema de la gura 8.4 puede ser visualizado a voluntad. En el subsistema
Pro eso no lineal se ha olo ado la ondi ion ini ial x1 (0) = 1 rad. Los
resultados de la simula ion se muestran en la gura 8.5, donde podemos
observar que la se~nal ontrolada sigue exa tamente a la traye toria de referen ia (una se~nal sinusoidal), en tanto que la magnitud de la se~nal de ontrol
u no sobrepasa el lmite previamente estable ido de u < j1:4j 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

x
Mux

Seal v

Referencia
r

Seal de Proceso
control u no lineal

Conversin
de x a z

Mux

grfico

disnl1_r
referencia r

Figura 8.4: Simula ion 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 tersti o toma la forma:
(s s1)(s s2)(s s3) = s3 + K1s2 + K2 s + K3

434

Control No Lineal
Posicin (radianes)

1.5
1
0.5
0
0.5

Seal de control (voltios)

1
0

8
10
12
Tiempo en segundos

14

16

18

20

8
10
12
Tiempo en segundos

14

16

18

20

1.5
1
0.5
0
0.5
1
1.5
0

Figura 8.5: Resultado de la simula ion del sistema de ontrol no lineal empleando un modelo no lineal de ter er orden.
Sistema lineal equivalente
r

Realimentacion
lineal
v = v(r, z )
z

Realimentacion
no lineal
u = u( z ,v)

z = (x)

Proceso
no
lineal

Observador
no lineal
z

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 ion. En el ambiente de trabajo de MATLAB, ada susbsistema de la
gura 8.7 puede ser visualizado a voluntad. Los resultados de la simula ion

8.7 Control No Lineal de un Servosistema

435

se muestran en la gura 8.8, donde podemos observar que la se~nal ontrolada sigue exa tamente a la traye toria de referen ia (una se~nal sinusoidal).
Para ini iar la simula ion empleando la gura 8.7, previamente se requiere
eje utar el programa de datos disnl2p.m, pues en este programa se en uentran los valores de los parametros del sistema, as omo tambien el al ulo
de la matriz de ganan ia L.
disnl2_u
u
Mux
Seal u
Seal v

Proceso
no lineal

grfico

Mux

disnl2_x1
x1

Referencia
r

disnl2_r
Conversin Observador
de x a z
no lineal

Figura 8.7: Simula ion del sistema de ontrol no lineal de ter er orden on
observador.
% disnl2p.m PARAMETROS PARA SIMULAR EL SISTEMA DE CONTROL
%
NO LINEAL DE TERCER ORDEN CON OBSERVADOR
lear all
% PARAMETROS DEL PROCESO NO LINEAL (TABLA 3.3)
Lo = 0.776;
JL = 3.5e-7;
bL = 1e-5;
Ro = 0.01;
Jm = 1.9062e-6; bm = 1.8338e-6; g = 9.81;
E = 31.035e-3;
R = 7.38;
m = 0.06377;
Ka t = 14.9;
= 0.25;
Mo = 0.0;
K = 31.071e-3;
n = 19.741;
L = 4.64e-3;
B = n^2*bm + bL;
Jeff = n^2*Jm +JL;
M = Jeff + (1/3)*m*Lo^2 + Mo*Lo^2 + (2/5)*Mo*Ro^2;
N = g*Lo*(Mo+m/2);
% MODELO LINEAL EQUIVALENTE DE TERCER ORDEN

436

%
%
%

Control No Lineal

A = [0 1 0;0 0 1;0 0 0;
B = [0;0;1;
C = [1 0 0; D = [0;
NN = [C ' A '*C ' (A ')^2*C ';
rangoNN = rank(NN); % es n=3 => EL PROCESO ES C.C.
CALCULO DE LAS GANANCIAS L1, L2 y L3
p = poly(A );
a1=p(2); a2=p(3); a3=p(4);
J = [-15+10j 0 0
0 -19 0
0 0 -15-10j; % RAICES DESEADAS
JJ = poly(J);
aa1=JJ(2); aa2=JJ(3); aa3=JJ(4);
W = [a2 a1 1;a1 1 0;1 0 0;
GANANCIA DEL OBSERVADOR NO LINEAL
LL = inv(W*N')*[aa3-a3;aa2-a2;aa1-a1;
L1=LL(1); L2=LL(2); L3=LL(3);
GANANCIA DEL SISTEMA LINEALIZADO
K1=40+20*sqrt(2); K2=300+800*sqrt(2); K3=12000;
GRAFICOS
load disnl2_x1; load disnl2_r; load disnl2_u;
lg = size(disnl2_x1,1); % LONGITUD DE LAS MUESTRAS
ejex = linspa e(0,20,lg);
subplot(2,1,1)
plot(ejex,disnl2_r,'-',ejex,disnl2_x1)
ylabel('Posi ion (radianes)')
xlabel('Tiempo en segundos')
grid
subplot(2,1,2)
plot(ejex,disnl2_u)
ylabel('Se~nal de ontrol (voltios)')
xlabel('Tiempo en segundos')
grid
print -f -deps disnl2r % CREA ARCHIVO disnl2r.eps

Simula ion 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 tersti o toma la
forma:
(s s1)(s s2) = s2 + K1 s + K2

8.7 Control No Lineal de un Servosistema

437

Posicin (radianes)

1
0.5
0
0.5

Seal de control (voltios)

1
0

8
10
12
Tiempo en segundos

14

16

18

20

8
10
12
Tiempo en segundos

14

16

18

20

3
2
1
0
1
0

Figura 8.8: Resultado de la simula ion 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 ion 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 programa disnl3.m realiza la simula ion del sistema y los resultados se pueden
ver en la gura 8.9. Es importante anotar que en el programa de simula ion
disnl3.m se ha in luido la ompensa ion de la fri ion no lineal de Coulomb
y la limita ion de la se~nal de ontrol para evitar saturar el ampli ador.
Con el proposito de suavizar los efe tos de las derivadas presentes en
la se~nal 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
= [
+ 0:5T + 0:5T + 1:5T
dt 4 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 real 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 ion 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

Posicin (radianes)

2
1
0
1
2
0

10

15

20
25
30
Tiempo en segundos

35

40

45

50

10

15

20
25
30
Tiempo en segundos

35

40

45

50

Seal de control (voltios)

0.4
0.2
0
0.2
0.4
0

Figura 8.9: Resultado de la simula ion del sistema de ontrol no lineal empleando un modelo no lineal de segundo orden.
El software usado para la implementa ion del algoritmo de ontrol de
posi ion emplea el lenguaje C y se eje uta en una PC Pentium. Los programas ne esarios para el ontrol se estru turan en tres ar hivos: R1LLIB.H,
R1LLIB.CPP y DISNL.CPP. El ar hivo DISNL.CPP es el que ontiene el
algoritmo de ontrol.
La realiza ion de ar hivos eje utables a partir de los programas fuente, se
elabora en el ambiente de trabajo del Borland C/C++ mediante la rea ion
de un proye to denominado DISNL.PRJ, en donde intervienen los ar hivos
men ionados en el parrafo anterior. A ontinua ion se presenta el listado del programa DISNL.CPP. El listado de los programas R1LLIB.H y
R1LLIB.CPP fueron presentados en la subse ion 6.7.7.
/* DISNL.CPP Programa del sistema de ontrol no lineal de posi ion.
Ver espe ifi a iones de dise~no en la subse ion resultados
experimentales. */
#in lude "r1llib.h"
#in lude <stdio.h>
#in lude <math.h>
#in lude <assert.h>
#in lude <allo .h>
#in lude < onio.h>

8.7 Control No Lineal de un Servosistema


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;

441

442

Control No Lineal

N = g*Lo*(Mo + m/2);
/* Ini ializa ion de variables */
yp =0.;
x2p = 0.;
rp =0.;
rpp = 0.;
rppp = 0.;
drp =0.;
drpp = 0.;
drppp = 0.;
up =0.;
ConfigurarHardware(0x272, 0x270, 0x271, 0x264, Fs);
EnviarVoltage(Ofst);
p0= LeerPosi ion();
}
void Mide_Variables(float *y, float *x2, float *r, float t )
{
/* En primer lugar, la referen ia: r = r(t)*/
*r = - 2*exp(-2*k*T) - 2* os(2*k*T)+2;
/* Ahora leo la posi ion */
pk = LeerPosi ion();
*y = yp + ((float)(abs(pk-p0)>8000?0:pk-p0))*ESCALA;
p0 = pk;
/* A tualizamos los estados */
yp =* y;
x2p =* x2;
}
void main()
{
int ant=0, a t=0, k, nd;
FILE *out;
float *yb, x2, y;
float *ub, *rb, u, r;
float yp, x2p;
float ddr, dr;
Ini ializa_Sistema();
lrs r();
assert(tsimul<120);
nd = (int)tsimul/T;
t = 0.;
assert(NULL!=(ub= (float *) allo (n/5,sizeof(float))));
assert(NULL!=(yb= (float *) allo (n/5,sizeof(float))));
assert(NULL!=(rb= (float *) allo (n/5,sizeof(float))));
for(k=0; k<nd;)
{
a t = NivelClo k();

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

Los polospdel sistema lineal equivalente se ubi aron en p1 = 10p2 10i y


p2 = 10 2 + 10i. La e ua ion ara tersti a orrespondiente a tales polos
es:
s2 + 28:2843s + 300 = 0
de donde obtenemos: K1 = 28:2843 y K2 = 300. Podemos observar en la
gura 8.10 que la respuesta presenta sobreimpulso nulo, tiempo de estabiliza ion menor que 0.4 s y error en estado estable nulo.
Posicin (grados)

300
200
100
0
100
0

0.5

1.5

2
2.5
3
Tiempo en segundos

3.5

4.5

0.5

1.5

2
2.5
3
Tiempo en segundos

3.5

4.5

Seal de control (voltios)

1.5
1
0.5
0
0.5
1
0

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 ion problemas resueltos de los aptulos 4 al 8, la solu ion a los


problemas se en uentra, segun el aso, en uno o mas ar hivos on extension
m es ritos en odigo MATLAB.
Problema 8.1

El pro eso pendulo no lineal mostrado en la gura 2.3, uyo modelo se des ribe en el ejemplo 2.2, puede rotar libremente alrededor del pivote gra ias a

8.8 Problemas Resueltos

445

la a ion de un torque externo U . En di ha gura Bp=1.3366 N-m/rad/s es


la fri ion vis osa rota ional en el punto pivote, Lo=1.6350 m es la longitud
de la varilla de peso despre iable, Mo=0.5 kg es la masa de la esfera y g=9.81
m/s2 es la a elera ion de la gravedad. La salida de interes es la posi ion angular  del pendulo. Para la situa ion mostrada en la gura 2.3(a), dise~nar
un sistema de ontrol no lineal empleando el metodo de linealiza ion por
realimenta ion. Los eigenvalores del sistema lineal equivalente realimentado
deben estar ubi ados en 8  8i.
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. En la
gura 2.3(a) el torque resultante alrededor del pivote es:
 + Bp_ + MogLo sen
U = Mo L2o 
(8.65)
que es una e ua ion no lineal debido al termino sen. Sele ionando omo
variables de estado X1 = , X2 = _ y omo salida Y = X1 , se obtiene:
X_ 1 = X2
g
Bp
1 U
X_ 2 =
senX1
X +
Lo
Mo L2o 2 Mo L2o
Y = X1 = h
uya representa ion ompa ta resulta: X_ = f, donde:
X=

X1
X2

f=

f1
f2

"

X2

+ M 1L2 U
La e ua ion anterior posee una forma normal. Por onsiguiente, empleando
la siguiente ley de ontrol:
U = BX2 + MLgsenX1 + ML2 V
obtenemos X_ 2 = V . De niendo e = r X1 , donde r es una traye toria de
referen ia y sele ionando la se~nal V omo:
V = r + K1 e_ + K2 e = X_ 2
enton es la e ua ion del sistema lineal equivalente realimentado resulta:
e + K1 e_ + K2 e = 0;
(s2 + K1s + K2 )e(s) = 0
g
Lo senX1

Bp
Mo L2o x2

o o

446

Control No Lineal

Si las ra es del sistema realimentado son s1;2 = 8  8i, enton es:
(s + 8 + 8i)(s + 8 8i) = s2 + 16s + 128; K1 = 16; K2 = 128
La se~nal V viene a ser:
V = r + K1 r_ + K2 r K1 X1 K2 X2 ; Y = X1 = 
La ley de ontrol toma la forma siguiente:
u = BX2 + MLgsenX1 + ML2 (r + K1 r_ + K2 r) ML2 (K2 X1 + K2 X2 )
El programa p8 1.m simula el sistema de ontrol no lineal y los resultados
se muestran en la gura 8.11.
% p8_1.m SOLUCION DEL PROBLEMA 8.1 (PENDULO NO LINEAL)
lear all
% PARAMETROS DEL PROCESO
Bp=1.3366; Lo=1.6350; Mo=0.5; g=9.81;
% POLOS DEL SISTEMA REALIMENTADO LINEALIZADO: -5 y -5
pol = onv([1 8+8i,[1 8-8i); % POLINOMIO CARACTERISTICO
K1 = pol(2); K2 = pol(3);
% CONDICIONES INICIALES:
r(1) =0; r(2)=0; r(3)=0; r(4)=0;
dr(1) =0; dr(2)=0; dr(3)=0; dr(4)=0;
ddr(1)=0; ddr(2)=0; ddr(3)=0; ddr(4)=0;
X1(1) =0; X1(2)=0; X1(3)=0; X1(4)=0;
X2(1) =0; X2(2)=0; X2(3)=0; X2(4)=0;
MM=1000; T = 0.01;
% LAZO DE CONTROL
for k=4:MM
r(k) = 2*sin(0.8*k*T); % traye toria de referen ia
% APROXIMACION DE LAS DERIVADAS
dr(k) = (r(k) + 3*r(k-1) - 3*r(k-2) - r(k-3))/(6*T);
ddr(k) = (dr(k) + 3*dr(k-1) - 3*dr(k-2) - dr(k-3))/(6*T);
U(k) = Bp*X2(k)+Mo*Lo*g*sin(X1(k))+Mo*Lo^2*(ddr(k)+K1*dr(k)...
+K2*r(k)-K2*X1(k)-K1*X2(k));
% PROCESO NO LINEAL DE ORDEN 2 DICRETIZADO
X1(k+1) = X1(k) + T*X2(k);
X2(k+1) = X2(k) + T*(-(Bp/Mo*Lo^2)*X2(k)-(g/Lo)*sin(X1(k))...
+(1/Mo*Lo^2)*U(k));
end
% fin del lazo de ontrol
% GRAFICOS
ejex = linspa e(0,MM*T,MM-3);

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

Posicin (radianes)

4
2
0
2
4
0

4
5
6
Tiempo en segundos

10

4
5
6
Tiempo en segundos

10

Seal de control (N)

400
200
0
200
400
600
0

Figura 8.11: Traye toria de posi ion del pendulo (problema de seguimiento)
y se~nal de ontrol orrespondiente al problema 8.1
Problema 8.2

La gura 2.2 muestra dos tanques identi os olo ados en as ada. La se ion
horizontal A=9 m2 de ada tanque es onstante. El objetivo de ontrol es
ontrolar la altura H2 empleando el ujo Qo omo se~nal de ontrol. Dise~nar
el sistema de ontrol no lineal empleando el metodo de linealiza ion por
realimenta ion. El ujo de ontrol no debe sobrepasar los 5 m3=s y el tiempo
de estabiliza ion de la salida debe ser menor que 20 s on error en estado
estable pra ti amente nulo. Sele ionar apropiados tiempo de muestreo y
eigenvalores del sistema realimentado.

448

Control No Lineal

Solu ion: En el ejemplo 2.1 se derivo el modelo no lineal del pro eso on
=0.4 (una onstante que depende de la geometra del ori io), =1.23
(la densidad del lquido) y g=9.81 m/s2 (la a elera ion de la gravedad),

resultando:

H_ = f + gU ;

= h(H) = H2;
donde: f = [f1 f2T , g = [g1 g2 T , siendo:
Y

pg p
pg p
f1 =
H1 ;
f2 =
[ H1
A
A
Operando on = pg=A obtenemos:

H2 ;

= Qo
g1 =

1;

g2 = 0

h(H) = H2 ;

Lf h(H) = r(H)f = f2

Lg Lf h(H) = r(f2 ) g = p 6= 0
2A H1

Luego, el sistema es ompletamente linealizable dado que su grado relativo


es dos. Seguimos operando:
p
2
= 2 pHH1
2
2 p
Lg L2f h(H) = r(L2f h(H)) g = 4A H1 H2

L2 h(H) = r(Lf h(H)) f = rf2 f


f

1
El nuevo onjunto de variables de estado resulta:
p
p
z1 = 1 (H) = h(H) = H2 ;
z2 = 2 (H) = Lf h(H) = H1 H2
Los estados originales en fun ion de los nuevos estados vienen a ser:
z p
H2 = 1 1 (z) = z1 ;
H1 = 2 1 (z) = ( 2 + z1 )2

y la e ua ion de estado del nuevo sistema resulta:
z_1 = z2
z_2 = L2f h( 1 (z)) + Lg L2f h( 1 (z)) = b( 1 (z)) + a( 1 (z))U
donde:


2 z2
2
1
b( (z)) =
1
;
a( 1 (z)) = p
p
2 z
4A z (z = + pz )
1

1 2

8.8 Problemas Resueltos

449

De niendo una se~nal equivalente V on Y = H2:


V = Y = r + K1 e_ + K2 e;
e=r Y
se da lugar a la siguiente e ua ion ara tersti a del sistema linealizado realimentado:
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
La se~nal V , on Y = H2 = z1 e Y_ = z_1 = z2, toma la forma nal:
V = r + K1 r_ + K2 r K2 z1 K1 z2
y la ley de ontrol resulta: U = a1 (V 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 pendulo
invertido no lineal y grua-puente des ritos en las se iones 3.1 y 3.2 respe tivamente. Se sabe que la salida es la posi ion x3.
Solu ion: La e ua ion de estado que des ribe al pendulo no lineal es:
2
6
6
4

x_ 1
x_ 2
x_ 3
x_ 4

3
7
7
5

6
6
6
6
4

x2
M2 (sin x1 )( os x1 )x22 Bx ( os x1 )x4 (M1 +J2 )g(sin x1 )+Kx ( os x1 )KA u
(M2 ( os2 x1 ) (M1 +J2 )J1 )=M2
x4
M22 g(sin x1 )( os x1 ) J1 M2 (sin x1 )x22 +J1 Bx x4 J1 Kx KA u
M22 ( os2 x1 ) (M1 +J2 )J1

3
7
7
7
7
5

De la e ua ion anterior de orden n=4 es fa 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

Nivel (m)

3.5

2.5

2
0

10

15

20
25
30
Tiempo en segundos

35

40

45

50

10

15

20
25
30
Tiempo en segundos

35

40

45

50

Flujo de control (m^3/s)

5
0

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 pendulo obtenemos:
h(x) = x4
Lf h(x) = rh(x) f = f4 (x)
Lg Lf h(x) = rf4 (x) g(x) 6= 0
Luego, el grado relativo resulta r = 2, que es menor que el orden del pro eso:
n = 4. Por onsiguiente, el pro eso pendulo 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 esta
sujeto a la arga no lineal mediante una junta exible que puede ser modelada omo un resorte rota ional de onstante K! =0.5 N/m/s. Dise~nar un

452

Control No Lineal

sistema de ontrol no lineal que emplee el metodo de linealiza ion por realimenta ion para ontrolar la posi ion angular de la arga no lineal. Las
espe i a iones de dise~no son: error en estado esta ionario nulo y tiempo de
estable imiento menor que 1 s para una se~nal de referen ia arbitraria. Sele ionar el tiempo de muestreo y los eigenvalores apropiados del sistema lineal
equivalente realimentado. Considere dos asos: (a) uando la indu tan ia
de armadura es despre iable, y (b) uando no lo es
Problema 8.5

Demostrar las propiedades de bilinealidad, anti onmutatividad y de Ja obi


estable idas en el lema 8.1 y luego demostrar el teorema 8.2.
Problema 8.6

La gura 3.31 muestra el pro eso servomotor on arga no lineal des rito
en la se ion 3.3, en donde la arga no lineal posee ahora dos grados de
libertad on Lo = 2L1=3 y Mo=0.02 kg. La union de la arga on el eje
del servomotor no es exible. Las e ua iones que des riben la dinami a del
sistema son materia del problema 3.12. Determinar si el pro eso des rito
es ompletamente linealizable. Si lo es, dise~nar un sistema de ontrol no
lineal on linealiza ion de la realimenta ion para ontrolar simultaneamente
las posi iones  y  on mnimo tiempo de estabiliza ion y mnimo sobreimpulso. 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-Calderon, Control No Lineal de Servosistemas.


Apli a ion: Manipulador de Robot de un Grado de Libertad. Tesis
para optar el Ttulo de Ingeniero Ele troni o, Fa ultad de Ingeniera
Ele tri a y Ele troni a de la Universidad Na ional de Ingeniera, Peru,
1995-I, Captulo III.
[2 Alexander L. Pon e-Dioses , Control de Servo Sistemas No Lineales
Usando Redes Neuronales. Tesis para optar el Ttulo de Ingeniero Ele troni o, Fa ultad de Ingeniera Ele tri a y Ele troni a de la Universidad
Na ional de Ingeniera, Peru, 1996-II, Captulo VI.
[3 Katsuhiko Ogata, Sistemas de Control en Tiempo Dis reto. Prenti e
Hall Hispanoameri ana S.A., Mexi o, segunda edi ion, 1996
[4 Charles L. Phillips y H. Troy Nagle, Digital Control System Analysis 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 Systems. MA, London, UK: The MIT Press Cambridge, 1980.
[7 R. De Keyser, \A Gentle Introdu tion to Model Based Predi tive Control". In PADI2 International Conferen e on Control Engineering and
Signal Pro essing, Piura, Peru, 1998.
[8 Eduardo F. Cama ho y Carlos Bordons, Model Predi tive Control.
Springer-Verlag London Limited 1999.

454

BIBLIOGRAFIA

[9 Manfred Morari y Evanghelos 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 Having Multiple Unknown Time-varying Delays, Ph.D. Thesis, Utah State
University, Logan, UT, 1995.
[12 Rolf Isermann, Digital Control Systems, Volume 1, Springer-Verlag,
segunda edi ion, Germany, 1989
[13 Jean-Ja ques E. Slotine y Weiping Li, Applied Nonlinear Control, Prenti e Hall, Englewood Cli s, New Jersey 07632, 1991.
[14 Alan V. Oppenheim y Alan S. Willsky, Se~nales y Sistemas Prenti eHall Hispanoameri ana, S.A., Mexi 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, Montreal, 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 StateSpa e Methods, M Graw-Hill, In ., New York St. Louis y otras, 1986.
[18 Murray R. Spiegel, Analisis Ve torial, serie de ompendios S haum,
M Graw-Hill Mexi o Panama Bogota y otras, 1973 (o edi iones mas
re ientes).
[19 Murray R. Spiegel, Cal ulo Superior, serie de ompendios S haum,
M Graw-Hill Mexi o Panama Bogota y otras, 1973 (o edi iones mas
re ientes).
[20 Donald M. Wiberg, Espa io de Estado y Sistemas Lineales, serie de
ompendios S haum, M Graw-Hill Mexi o Panama Bogota y otras,
1973 (o edi iones mas re ientes).

BIBLIOGRAFIA

455

[21 Frank Ayres Jr., Matri es, serie de ompendios S haum, M Graw-Hill
Mexi o Panama Bogota y otras, 1973 (o edi iones mas re ientes).
[22 Murray R. Spiegel, Transformada de Lapla e, serie de ompendios
S haum, M Graw-Hill Mexi o Panama Bogota y otras, 1973 (o edi iones mas re ientes).
[23 MathWorks, In ., MATLAB Referen e Guide, Prenti e Hall, Englewood 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 Number 320502B-01, edi ion de agosto de 1994.


Indi e de Materias

A tuador, 231
Ampli ador de poten ia, 160
Campo ve torial suave, 408
Campos ve toriales
integrables, 412
involutivos, 413
CMI:
ontrol on modelo interno, 351
Codi ador opti o, 159
odi ador opti o, 235
Control optimo
on epto, 126
Control optimo uadrati o, 126
de la grua puente, 181
del pendulo invertido, 147
dis reto, 126
esta ionario, 129
no esta ionario, 127
Control adaptivo de un servomotor no lineal, 224
Control on modelo interno
estru tura del, 351
estru turas alternativas del, 353
in ertidumbres del modelo en
el, 355
modelo del pro eso en el, 355
representa iones del, 351
Control matri ial dinami o, 286

Control no lineal de un servosistema de posi ion, 424


Control predi tivo
del servomotor no lineal, 306
disturbio del pro eso en el, 289
ley de ontrol on restri iones del, 304
ley de ontrol del, 303
modelo CARIMA del, 290
modelo del predi tor en el, 292
modelo del pro eso del, 289
modelo paralelo en el, 292
modelo serie/paralelo en el, 293
predi ion del disturbio en el,
294
salida del modelo en el, 290
Control predi tivo basado en modelos, 285
prin ipios del, 286
Control predi tivo:respuesta forzada del, 300
Control predi tivo:respuesta libre
del, 299
Control robusto
para pro esos estables, 358
para pro esos inestables, 370
Control robusto de un servomotor
no lineal, 376
Controlabilidad, 65
Controlador optimo H2: q~H (z), 372

INDICE DE MATERIAS

Controlador optimo uadrati o


propor ional, 221
propor ional integral, 223
Controlador optimo uadrati o H2:
q~H (z ), 360
para entradas tpi as, 361
Controlador CMI q~(z), 362, 373
Controlador predi tivo, 298
fun ion de osto del, 298
objetivo del, 298
parametros de dise~no del, 298
Cor hete de Lie, 409
Cor hetes de Lie
propiedades de los, 410
De ni ion de Matri es, 21
De ni ion de matri es, 21
Derivada de Lie, 408
Determinante, 5
de una matriz, 5
propiedades, 6
Diagonaliza ion de matri es, 19
Difeomor smo, 410
lo al, 410
Dis retiza ion dire ta, 41
E ua ion ara tersti a, 32
E ua ion de Ri ati, 128, 129
E ua ion de salida, 31, 57
E ua ion de transferen ia, 32
E ua ion del observador no lineal,
422
Eigenvalor, 18
Eigenve tor, 18
Espa io de estado dis reto, 54
Estabilidad interna, 351
Estabilidad Robusta, 364
Estabilidad robusta, 374
Estado, 31

457

e ua ion de, 31, 57


espa io de, 31, 54
variables de, 31
ve tor de, 31
Estima ion de estados, 221
Filtro de Kalman, 221
Filtro dis reto CMI, 363, 374
Forma bilineal, 20
Forma anoni a, 58
ontrolable, 59
de Jordan, 60
diagonal, 60
observable, 60
Forma anoni a de Jordan, 19
Forma uadrati a, 20
Forma normal, 416
Frobenius
teorema de, 413
Fun ion de osto, 126
uadrati a dis reta, 127
mnima, 129
Fun ion de transferen ia de pulso,
51
Grua-puente, 79
modelo, 79
Grado relativo, 414
Hardware del sistema de ontrol,
155, 314, 377, 441
Independen ia de ve tores, 15
Interfaz Lab-PC+, 161, 236
Ja obiano, 15
Ley de ontrol optima, 127, 140
Ley de ontrol no lineal, 417
Linealiza ion de pro esos, 31

458

Linealiza ion exa ta, 416


ondi iones para, 419
Linealiza ion por realimenta ion,
407
Mnimos uadrados re ursivo
algoritmo, 211
metodo de los, 210
metodo mejorado de los, 213
mejorado, algoritmo, 213
Matri es, 3
de pondera ion, 132
diagonaliza ion de, 19
iguales, 3
ja obianas, 32
lema de inversion de, 7
multipli a ion de, 3
que onmutan, 3
similares, 19
suma de, 3
Matriz, 1
antihermitiana, 5
antisimetri a, 5
ero, 3
uadrada, 4
de ontrol, 32
de disturbios, 32
de estado, 32
de observabilidad generalizada, 420
de salida, 32
de transferen ia, 32
de nida negativa, 21
de nida positiva, 21
derivada de una, 14
diagonal, 4
eigenvalor de una, 18
eigenve tor de una, 18
forma anoni a de Jordan, 19

INDICE DE MATERIAS

hermitiana, 5
identidad, 5
inde nida, 21
integral de una, 14
inversa de una, 6
nilpotente, 5
norma de una, 17
normal, 5
orden de una, 1
ortogonal, 5
periodi a, 5
rango de una, 18
semide nida negativa, 21
semide nida positiva, 21
simetri a, 5
singular, 5
transpuesta, 4
traza de una, 4
triangular inferior, 4
triangular superior, 4
unitaria, 5
Modelando pro esos no lineales, 209
Modelo CARIMA, 290
Muestreo y re onstru ion, 38
Nomen latura, 1
Observabilidad, 67
Observador optimo uadrati o, 138
Observadores no lineales, 420
Opera ion on ve tores, 16
Opera iones on matri es, 3
Pendulo invertido, 71
ontrol optimo del, 147
modelo, 72
Plano de fase, 31
Predi tor, 292
Pre ltro

INDICE DE MATERIAS

dise~no del, 359


Pro eso estable e inestable, 33
Pro eso multivariable, 31
Pro eso univariable, 32
Pro esos on tiempo muerto, 64
Puntos de equilibrio, 31
Regulador optimo uadrati o
propor ional, 131
propor ional integral, 141
Rendimiento nominal, 359, 372
Rendimiento robusto, 365, 375
Respuestas libres y forzadas, 299
Reten ion de orden ero, 41
Sensor(es) de posi ion, 158, 235
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 ion de la e ua ion de estado,
54, 57
Teorema del muestreo, 40
Tipo de sistemas, 359
Tipos de matri es, 4
Transforma ion no lineal de estados, 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

459

formulas notables, 48
inversa, 50
propiedades, 46
Valor absoluto, 7
Variables residuales, 32
Ve tor, 2
de informa ion, 210
de parametros, 210
derivada de un, 14
integral de un, 14
norma de un, 16
Ve tores, 15
independen ia de, 15
opera ion on, 15
ortonormales, 15

Anda mungkin juga menyukai