Está en la página 1de 166

UNIVERSIDAD DE ORIENTE

CONSEJO DE ESTUDIOS DE POSTGRADO


NÚCLEO DE ANZOÁTEGUI
POSTGRADO EN INGENIERÍA ELÉCTRICA

LABORATORIO VIRTUAL DE SISTEMAS


DE CONTROL REALIMENTADOS

Presentado por:

Ing. Margarita Heraoui

Trabajo Especial de Grado como requisito para optar al Título de Especialista


en Automatización e Informática Industrial.

Puerto La Cruz, Julio de 2006.


ii

UNIVERSIDAD DE ORIENTE
CONSEJO DE ESTUDIOS DE POSTGRADO
NÚCLEO DE ANZOÁTEGUI
POSTGRADO EN INGENIERÍA ELÉCTRICA

LABORATORIO VIRTUAL DE SISTEMAS


DE CONTROL REALIMENTADOS

JURADO CALIFICADOR

Dr. Ing. Félix García Padilla


ASESOR ACADÉMICO

Dr. Ing. José E. Rengel H. Ing. Esp. Omar Bustillos P.


JURADO PRINCIPAL JURADO PRINCIPAL
iii

Puerto La Cruz, Julio de 2006.


ENUNCIADO DEL ARTÍCULO 44

Los trabajos especiales de grado son de exclusiva propiedad de la


Universidad de Oriente y sólo podrán ser utilizados para otros fines con
el consentimiento del Consejo de Núcleo respectivo quién lo participará
al Consejo Universitario.
iv

DEDICATORIA

A mi esposo Alejandro Q.E.P.D. y a mi Hija


Génesis Celeste, a quienes amo y
siempre llevo en mi corazón.
v

AGRADECIMIENTOS

En primer lugar quiero agradecerle a Dios por darme esta oportunidad, por darme la
vida, por darme su Amor. A mi padre y a mi madre, por siempre estar a mi lado y por
apoyarme en mis proyectos. A mis hermanos Magda, Mary, Jenny y José Antonio por
estar en mi vida. A mi Suegra gracias por su apoyo incondicional. A toda mi familia
en especial a mi hija Génesis Celeste por su paciencia y el saber esperar. A mi gran y
eterno amor Alejandro por ser siempre mi luz de guía. Al Doctor Félix García por sus
asesorías en este proyecto. A todos los Profesores que dictan clases en Postgrado, en
especial a ti Romel por tu manera particular de enseñar. A Luis, Laura y Verena piezas
fundamentales en el Postgrado. A mis compañeros de la V Cohorte muy especial a
Yarelys, Carola y Ali mi gran grupo de trabajo por su amistad, por su apoyo, y por
compartir esta experiencia. A mi amiga Ana por transmitirme su experiencia y por
estar en todos los momentos que necesite de impulso y motivación. A la Universidad
de Oriente por darme la oportunidad de estudiar. A todas esas personas que siempre
están conmigo mil gracias y que Dios las Bendiga.
vi

RECONOCIMIENTOS

Al Profesor Félix García,


por su motivación y guía a lo largo del proyecto.
Igualmente el reconocimiento a los Profesores José Rengel y
Omar Bustillo por sus valiosos consejos.
Y en general un agradecimiento al cuerpo docente del
Postgrado por la formación académica de que fui objeto.
vii

RESUMEN

El presente trabajo consistió en el desarrollo de una interfaz gráfica utilizando el


software Matlab 7.0 y una librería PID en el entorno de programación de Labview
7.1.

La interfaz gráfica LAVPAIE permite al usuario la identificación del proceso a partir


de una prueba de lazo abierto y la sintonización de controladores PID. Para esto se
efectuó una recopilación bibliográfica y electrónica de los diferentes métodos de
sintonización de controladores basados en modelos de primer orden más tiempo
muerto.

Para efectos de este proyecto, sólo se consideraron los métodos de identificación de


modelos de primer orden más tiempo muerto tales como: método de la tangente de
Ziegler y Nichols, método de la tangente modificado de Miller, método de Smith y
método “1/4 - 3/4” de Alfaro.

Existen varios métodos de sintonización de controladores PI y PID, sólo se utilizaron


los siguientes métodos, para reguladores: Alfaro (IAE), López (IAE), Ziegler y
Nichols. Para servomecanismo: Alfaro (IAE), Rovira (IAE).

Se realizaron pruebas intensivas al programa desarrollado, con el fin de encontrar


errores en su funcionamiento. Estas pruebas se compararon con resultados conocidos
con el fin de también asegurar veracidad en la obtención de los datos.
viii

ÍNDICE GENERAL
ENUNCIADO DEL ARTÍCULO 44.............................................................................III

DEDICATORIA..........................................................................................................IV

AGRADECIMIENTOS................................................................................................V

RECONOCIMIENTOS..............................................................................................VI

RESUMEN.................................................................................................................VII

ÍNDICE GENERAL................................................................................................VIII

ÍNDICE DE FIGURAS...........................................................................................XIII

ÍNDICE DE TABLAS.............................................................................................XVII

NOMENCLATURA..............................................................................................XVIII

I. INTRODUCCIÓN.....................................................................................................1

1.1-.ANTECEDENTES DE LA INVESTIGACIÓN..............................................1
1.2-.PLANTEAMIENTO DEL PROBLEMA.........................................................1
1.3-.OBJETIVOS.......................................................................................................2
1.3.1-.OBJETIVO GENERAL.............................................................................2
1.3.2-.OBJETIVOS ESPECÍFICOS....................................................................2
1.4-.ALCANCE..........................................................................................................3
1.5-.JUSTIFICACIÓN..............................................................................................4
1.6-.METODOLOGÍA..............................................................................................4

II. CONTROL AUTOMÁTICO..................................................................................6

2.1-.PERSPECTIVA HISTÓRICA..........................................................................6
2.2-.CONCEPTOS BÁSICOS DE CONTROL AUTOMÁTICO..........................8
ix

2.2.1-.SENSORES................................................................................................11
2.2.2-.CONTROLADORES................................................................................12
2.3-.ESTRATEGIAS DE CONTROL....................................................................13
2.3.1-.CONTROLADOR PID.............................................................................13
2.3.1.1-.REQUISITOS DE UN SISTEMA DE CONTROL.........................17
2.3.1.2-.CARACTERÍSTICAS DE LOS CONTROLADORES..................18
2.3.1.3-.PROCEDIMIENTO PARA EL DISEÑO DE UN
CONTROLADOR PID...................................................................................19
2.4-.VENTAJAS E INCONVENIENTES DE LA AUTOMATIZACIÓN..........20

III. MARCO TEÓRICO.............................................................................................21

3.1-.MODELADO Y SIMULACIÓN DE LA DINÁMICA DE PROCESOS.....21


3.2-.MODELO..........................................................................................................22
3.2.1-.MODELO MATEMÁTICO.....................................................................23
3.3-.ELABORACIÓN DE MODELOS..................................................................24
3.3.1-.ELABORACIÓN DE MODELOS MATEMÁTICOS...........................25
3.3.2-.MODELO DE DEPÓSITO SIMPLE......................................................25
3.4-.RESPUESTA DEL SISTEMA.........................................................................27
3.4.1-.SISTEMAS DE PRIMER ORDEN.........................................................28
3.4.2-.SISTEMAS DE SEGUNDO ORDEN......................................................28
3.4.3-.PARÁMETROS DE RESPUESTA SUBAMORTIGUADA.................31
3.5-.ECUACIONES DEL LAZO DE CONTROL................................................32
3.6-.CRITERIOS DE DESEMPEÑO Y ROBUSTEZ DE LOS LAZOS DE
CONTROL...............................................................................................................33
3.6.1-.SISTEMAS ESTABLES E INESTABLES......................................33
3.6.2-.ROBUSTEZ DEL SISTEMA DE CONTROL.......................................34
3.6.2.1-.ÍNDICES DE ROBUSTEZ EN LA FRECUENCIA.......................34
3.6.2.2-.ÍNDICES DE ROBUSTEZ EN LA GANANCIA Y EL TIEMPO. 34
3.6.2.3-.CURVA DE ROBUSTEZ...................................................................35
x

3.6.3-.CÍRCULO DE SENSIBILIDAD..............................................................36
3.7-.IDENTIFICACIÓN EXPERIMENTAL DE PROCESOS...........................38
3.7.1-.MÉTODOS QUE UTILIZAN LA RECTA TANGENTE......................40
3.7.1.1-.MÉTODO DE LA TANGENTE DE ZIEGLER Y NICHOLS...........40
3.7.1.2-.MÉTODO DE LA TANGENTE MODIFICADO DE MILLER....41
3.7.2-.MÉTODOS DE DOS PUNTOS...............................................................42
3.7.2.1-.MÉTODO DE SMITH.......................................................................43
3.7.2.2-.MÉTODO “1/4 - 3/4” DE ALFARO.................................................43
3.8-.SINTONIZACIÓN DE CONTROLADORES.......................................46
3.8.1-.MÉTODO DE ZIEGLER Y NICHOLS..................................................46
3.8.2-.MÉTODOS BASADOS EN CRITERIOS DE ERROR INTEGRAL. .47
3.8.2.1-.MÉTODO DE LÓPEZ......................................................................47
3.8.2.2-.MÉTODO DE ROVIRA....................................................................48
3.8.2.3-.MÉTODO IAE DE ALFARO............................................................49
3.9-.SOFTWARE DE SIMULACIÓN..................................................................50
3.9.1-.SOFTWARE DE SIMULACIÓN MATLAB.........................................50
3.9.1.1-.TOOLBOX DE SISTEMAS DE CONTROL DEL SOFTWARE
MATLAB..........................................................................................................50
3.9.1.2-.DISEÑO DE CONTROLADORES..................................................51
3.9.1.3-.EL VISOR LTI...................................................................................53
3.9.1.4-.PROGRAMA SIMULINK................................................................54
3.9.1.5-.TOOLBOX DE ADQUISICIÓN DE DATOS..................................54
3.9.1.6-.IDENTIFICACIÓN DE SISTEMAS...............................................56
3.9.1.6.1-.INTERFAZ GRÁFICO DE USUARIO GUI............................57
3.9.2-.SOFTWARE DE SIMULACIÓN LABVIEW.......................................59
3.9.2.1-.APLICACIONES DE LABVIEW....................................................60
3.9.2.2-.PROGRAMACIÓN GRÁFICA CON LABVIEW..........................60
3.9.2.3-.PASOS PARA DESARROLLAR UN VI..........................................63
xi

3.9.2.4-.ADQUISICIÓN DE DATOS.............................................................63
3.10-.SIMULACIONES COMO HERRAMIENTA DE CAPACITACIÓN.......64

IV. APLICACIONES EN LABVIEW........................................................................65

4.1-.INTRODUCCIÓN............................................................................................65
4.2-.DESARROLLO DE LA LIBRERÍA PID......................................................66
4.2.1-.PANEL FRONTAL...................................................................................66
4.2.2-.DIAGRAMA DE BLOQUES...................................................................68
4.2.3-. APLICACIÓN EJEMPLO UTILIZACIÓN LIBRERÍA PID.............72
4.2.4-.FUNCIONAMIENTO...............................................................................74
4.3-.SOFTWARE TOOLKITS PARA CONTROL DE PROCESOS..................75
4.4-.SOFTWARE CONTROL DESIGN TOOLKIT............................................76

V. INTERFAZ GRÁFICA LAVPAIE.........................................................................78

5.1-.INTRODUCCIÓN............................................................................................78
5.2-.CREACIÓN DE INTERFACES GRÁFICAS (GUI)....................................78
5.2.1-.OBJETOS DISPONIBLES......................................................................80
5.3-.GUÍA PARA LA CREACIÓN DE LA INTERFAZ GRÁFICA...................81
5.4-.DISEÑO DE LA INTERFAZ LAVPAIE........................................................82
5.5-.PROGRAMACIÓN.........................................................................................86
5.5.1 -.SELECCIÓN DE ELEMENTOS Y ASIGNACIÓN DE ETIQUETAS
...............................................................................................................................86
5.5.2 -.PROGRAMACIÓN DE LOS ELEMENTOS.......................................88
5.5.2.1 -.INTRODUCCIÓN Y ACTUALIZACIÓN DE LA PLANTA........88
5.5.2.2 -.INTRODUCCIÓN DEL CONTROLADOR..................................89
5.5.2.3 -.BOTÓN SIMULAR..........................................................................89
5.5.2.4 -.CARACTERÍSTICAS DE LA RESPUESTA.................................90
5.5.2.4.1-.GRÁFICO ESCALÓN DE LA PLANTA / RESPUESTA AL
ESCALÓN DEL SERVO............................................................................90
xii

5.5.2.4.2-.GRÁFICO IMPULSO DE LA PLANTA / RESPUESTA AL


ESCALÓN COMO REGULADOR...........................................................90
5.5.2.4.3-.DIAGRAMA DE BODE.............................................................91
5.5.2.4.4-.LUGAR GEOMÉTRICO DE LAS RAÍCES...........................91
5.5.2.4.5-.GRÁFICO DE NYQUIST CON CÍRCULO DE
SENSIBILIDAD MÁXIMO.......................................................................91
5.5.2.4.6 -.CURVA DE ROBUSTEZ...........................................................91
5.5.2.4.7 -. PROGRAMACIÓN DE MENÚS............................................91
5.5.2.4.8 -.OBTENCIÓN DE UN MODELO PARA LA PLANTA..........92
5.5.2.4.9 -.SINTONIZACIÓN DEL CONTROLADOR...........................93

VI. PRUEBAS Y RESULTADOS...............................................................................94

6.1 -.PLANTA SIN TIEMPO MUERTO...............................................................94


6.2-.SISTEMA DE CONTROL PARA UNA PLANTA CON TIEMPO
MUERTO.................................................................................................................97
6.3 -.SINTONIZACIÓN DEL CONTROLADOR..............................................103
6.4-.IDENTIFICACIÓN DE SISTEMAS USANDO LA HERRAMIENTA
IDENT DE MATLAB............................................................................................106
6.4.1 -.MODELO MATEMÁTICO DEL MOTOR AC..................................106
6.5 -. SISOTOOL...................................................................................................109
6.6-.COMPORTAMIENTO DE LA RESPUESTA DE SISTEMAS FÍSICOS
CON MATLAB-SIMULINK...............................................................................113
6.7 -. TOOLBOX FUZZY DE MATLAB.............................................................114

CONCLUSIONES.....................................................................................................121

RECOMENDACIONES...........................................................................................123

BIBLIOGRAFÍA.......................................................................................................124

ANEXO A : MANUAL DEL USUARIO.................................................................126


xiii

ANEXO B : CÓDIGO FUENTE...............................................................................137

ÍNDICE DE FIGURAS
CAPÍTULO 2
Figura 2. 1 Intercambiador de calor.................................................................................9
Figura 2. 2 Lazo cerrado sistema intercambiador de calor............................................10
Figura 2. 3 Diagrama de bloques de un sistema de control...........................................11
Figura 2. 4 Variables típicas en la Industria..................................................................12
Figura 2. 5 Sistema de control SISO............................................................................13
Figura 2. 6 Curva de respuesta al escalón unitario mostrando
los parámetros de respuesta transitorio.........................................................................17

CAPÍTULO 3
Figura 3. 1 Relación entre simulación, modelo y computador......................................21
Figura 3. 2 Clasificación de los modelos.....................................................................22
Figura 3. 3 Etapas de un proyecto.................................................................................23
Figura 3. 4 Sistema de nivel con un solo tanque...........................................................26
Figura 3. 5 Respuesta al escalón para sistemas de segundo orden...............................30
Figura 3. 6 Análisis de estabilidad en función de la localización de los polos..............31
Figura 3. 7 Diagrama de bloques de sistema de control realimentado..........................32
Figura 3. 8 Gráfico de Robustez....................................................................................36
Figura 3. 9 Gráfico de robustez controlador sintonizando dos conjuntos de parámetros
.......................................................................................................................................37
Figura 3. 10 Gráfico de Nyquist con círculo de sensibilidad máxima..........................37
Figura 3. 11 Parámetros del modelo del controlador................................................38
Figura 3. 12 Método de la tangente de Ziegler y Nichols.............................................42
xiv

Figura 3. 13 Método de la tangente modificado de Miller............................................42


Figura 3. 14 Método de los dos puntos de Smith..........................................................44
Figura 3. 15 Método de ¼ - ¾ de Alfaro.......................................................................44
Figura 3. 16 Representación del lugar geométrico usando rlocus.................................52
Figura 3. 17 Representación simultánea de gráficas usando ltiview.............................53
Figura 3. 18 Ventana de trabajo de Simulink y sus bloques de funciones....................54
Figura 3. 19 Sistema típico de adquisición de datos.....................................................55
Figura 3. 20 Etapas para la identificación de un proceso..............................................58
Figura 3. 21 Introducción de los datos al GUI Ident.....................................................58
Figura 3. 22 Modelo paramétrico..................................................................................59
Figura 3. 23 Subpaleta de funciones.............................................................................61
Figura 3. 24 Subpaleta de controles..............................................................................62
Figura 3. 25 Estructuras de control...............................................................................62

CAPÍTULO 4
Figura 4. 1 Panel frontal del PID...................................................................................66
Figura 4. 2 Diagramas de Bloques para obtener la derivada del tiempo......................69
Figura 4. 3 Diagramas de Bloques para obtener el error..............................................69
Figura 4. 4 Diagramas de Bloques para obtener acción proporcional..........................70
Figura 4. 5 Diagramas de Bloques para obtener acción derivativa..............................71
Figura 4. 6 Diagramas de Bloques para obtener PID...................................................71
Figura 4. 7 Panel frontal aplicación con PID...............................................................72
Figura 4. 8 Diagrama de bloques aplicación con PID..................................................72
Figura 4. 9 Menú del Set Point......................................................................................73
Figura 4. 10 Menú de tipo de planta..............................................................................73
Figura 4. 11 PID...........................................................................................................74
Figura 4. 12 Respuesta transitoria de la aplicación.......................................................74
Figura 4. 13 Respuesta en régimen permanente............................................................75
Figura 4. 14 Librería de PID del Toolkit de Labview....................................................75
xv

Figura 4. 15 Ejemplo de Librería de PID del Toolkit de Labview................................76


Figura 4. 16 Respuesta de salida de la simulación de PID............................................76
Figura 4. 17 Control design toolkit de Labview............................................................77
Figura 4. 18 Respuesta del sistema de primer orden.....................................................77

CAPÍTULO 5

Figura 5. 1 Ventana principal del programa LAVPAIE.................................................83


Figura 5. 2 Ventana de determinación de la planta........................................................83
Figura 5. 3 Detalle de ventana principal selección del controlador.............................84
Figura 5. 4 Listado con parámetros de la respuesta......................................................85

CAPÍTULO 6

Figura 6. 1 Respuesta tras presionar el botón Aplicar...................................................94


Figura 6. 2 Salida del programa tras presionar el botón Simular..................................95
Figura 6. 3 Opción de menú Exportar parámetros de la respuesta................................95
Figura 6. 4 Listado de métodos de identificación para la planta...................................96
Figura 6. 5 Resultados de primera prueba: Identificación de modelo...........................97
Figura 6. 6 Salida del programa tras presionar el botón Simular..................................98
Figura 6. 7 Resultados de segunda prueba: Respuesta en el tiempo como
servomecanismo............................................................................................................99
Figura 6. 8 Resultados de segunda prueba: Respuesta como regulador........................99
Figura 6. 9 Diagrama de Bode del sistema..................................................................101
Figura 6. 10 Gráfico de Nyquist con círculo de sensibilidad máxima del sistema.....102
Figura 6. 11 Curva de robustez del sistema.................................................................102
Figura 6. 12 Métodos de identificación de la planta (método de Alfaro POMTM)....104
Figura 6. 13 Métodos de sintonización disponibles....................................................104
Figura 6. 14 Parámetros de planta y controlador actualizados....................................105
xvi

Figura 6. 15 Primera prueba de adquisición de los datos de la planta.........................106


Figura 6. 16 Modelo validado.....................................................................................107
Figura 6. 17 Modelo con GUI.....................................................................................108
Figura 6. 18 Menú herramientas de Matlab................................................................108
Figura 6. 19 Salida del programa tras presionar el submenú Ident............................109
Figura 6. 20 Salida del programa para simulación con función de transferencia........110
Figura 6. 21 Submenú sisotool....................................................................................110
Figura 6. 22 Salida de la herramienta sisotool para simulación con función de
transferencia.................................................................................................................111
Figura 6. 23 Salida de la herramienta sisotool para simulación de sys.....................112
Figura 6. 24 Respuesta de sys con un polo en el origen.............................................112
Figura 6. 25 Respuesta del sistema sys con aumento de ganancia..............................113
Figura 6. 26 Modelo y respuesta del sistema de carro con simulink...........................114
Figura 6. 27 Menú principal del editor de FIS............................................................115
Figura 6. 28 Editor de funciones Membership...........................................................116
Figura 6. 29 Editor de Reglas......................................................................................117
Figura 6. 30 Visor de reglas.........................................................................................118
Figura 6. 31 Visor de superficies.................................................................................118
Figura 6. 32 Elemento fuzzy logic controller de la librería de simulink.....................119
Figura 6. 33 Controlador fuzzy con un sistema de tanque en el ambiente simulink...120
xvii

ÍNDICE DE TABLAS
CAPÍTULO 2
Tabla 2. 1 Características de los controladores P,I,D....................................................18

CAPÍTULO 3
Tabla 3. 1 Constantes Método de López.......................................................................48
Tabla 3. 2 Constantes Método de Rovira.......................................................................49
Tabla 3. 3 Constantes Método IAE de Alfaro...............................................................50

CAPÍTULO 5
Tabla 5. 1 Objetos disponibles para la creación de una GUI.........................................80
Tabla 5. 2 Asignación de etiquetas para los elementos etapa de introducir planta........86
Tabla 5. 3 Asignación de etiquetas para los elementos de la etapa de introducir
controlador.....................................................................................................................87
Tabla 5. 4 Asignación de etiquetas de texto para controlador.......................................87
Tabla 5. 5 Asignación de etiquetas para respuesta de la planta....................................87
Tabla 5. 6 Asignación de etiquetas para botones varios................................................87
Tabla 5. 7 Asignación de etiquetas características del sistema......................................87
Tabla 5. 8 Asignación de etiquetas características adicionales del sistema...................88
Tabla 5. 9 Asignación de etiquetas para los elementos de menú...................................88
xviii

NOMENCLATURA
e(s): Señal de error
Gc(s): Función de transferencia del controlador
Gp(s): Función de transferencia de la planta.
GUI: Interfaz gráfica del usuario
H(s): Función de transferencia del sensor-transmisor.
IRa: Índice de robustez absoluto
IRc: Índice de robustez combinado
IRkp: Índice de robustez en la ganancia
IRtm: Índice de robustez en el tiempo muerto
Kc: Ganancia proporcional del controlador
Kp: Ganancia de la planta.
Kpa: Ganancia de planta identificada
Kpu: Ganancia última de la planta
L(s): Función de transferencia de lazo abierto
LGR: Lugar Geométrico de las Raíces
MF: Margen de fase
MG: Margen de Ganancia
Mr(s): Función de transferencia del servomecanismo
Ms: Sensibilidad máxima
Mtm: Margen en el tiempo muerto
Mz(s): Función de transferencia del regulador
p(s): Polinomio característico
r(s): Valor deseado
s: Variable compleja.
Tau1: Constante de tiempo 1 de la planta
Tau2: Constante de tiempo 2 de la planta
Td: Tiempo derivativo del controlador
Ti: Tiempo integral del controlador.
tm: Tiempo muerto aparente.
tMA: Tiempo muerto de la planta identificada
tMU: Tiempo muerto último de la planta
u(s): Señal de salida del controlador
y(s): Variable controlada y señal realimentada
z(s): Perturbación.
wf: Frecuencia de corte de fase
wg: Frecuencia de corte de ganancia
FIS Fuzzy Inference System Editor
IAE: Integral del error absoluto.
ITAE: Integral del tiempo por el error
absoluto.
xix

: Razón de amortiguamiento.
xx
xxi
xxii
xxiii
Capítulo 1 Introducción 1
Capítulo 1 Introducción 2

Teniendo en cuenta el problema mencionado anteriormente, se


desarrolla un programa con interfaz gráfica en Matlab que permite: introducir la
función de transferencia de la planta, seleccionar el controlador (P, PI, PD, PID) y sus
parámetros, desplegar la curva de respuesta en el tiempo operando como
servomecanismo y como regulador.

Se simuló también una aplicación de sistemas de control con la librería PID de


Labview 7.1, que es una empresa pionera y líder en la tecnología de instrumentación
virtual.

1.5-.JUSTIFICACIÓN

En la actualidad, el modelado y la simulación son actividades indispensables cuando


se realizan análisis y diseño de sistemas de cierta complejidad. El objetivo es ayudar
o dar el soporte necesario al diseñador durante este proceso. Mediante el uso de
software es posible establecer una valoración final antes de que los sistemas sean
construidos, aliviando la necesidad de experimentos caros. Pueden dar soporte a todas
las etapas de un proyecto desde el diseño conceptual, pasando por el montaje hasta
llegar a su funcionamiento.

Desde el punto de vista académico es importante disponer de instalaciones de


trabajo para prácticas de laboratorio. Estas comprobaciones pueden realizarse en
plantas pilotos, laboratorios con procesos reales o maquetas de procesos, pero que en
general pueden resultar muy costosas para las instituciones docentes. Una alternativa
de solución a este problema es utilizar una computadora personal como simulador de
procesos, es decir para simular los procesos tecnológicos a ser controlados y
conectarla a los dispositivos de control a ser probados o estudiados, a través de una
unidad de entrada/salida, creando así una instalación de laboratorio virtual con
Capítulo 1 Introducción 3

objetos de control simulados y controladores reales, que resulta más barato y flexible,
con las ventajas y desventajas de tener parte del sistema simulado.

1.6-.METODOLOGÍA

Para poder completar con éxito los objetivos planteados, fue necesario dividir en
cuatro etapas el proyecto. En la primera etapa se hizo uso intensivo de los comandos
de MATLAB®, para programar las herramientas necesarias en la interfaz. En la
segunda etapa se investigaron los diversos métodos de identificación y sintonización
existentes con el fin de poder seleccionar los que se deseaban incorporar al
programa. Esta información se utilizó para desarrollar la interfaz gráfica LAVPAIE.
En una tercera etapa se realizaron pruebas intensivas al programa desarrollado, con el
fin de encontrar errores en su funcionamiento. Dichas pruebas se contrapusieron con
resultados conocidos con el fin de también asegurar veracidad en la obtención de los
datos. En una cuarta etapa se desarrolló un módulo PID utilizando el software
Labview 7.1.

Finalmente, se elaboró un Manual de Usuario del programa desarrollado para


facilitar su utilización.
Capítulo 2 Control Automático 4

Figura 2. 1 Intercambiador de calor.

¿Cómo haría un operador humano para mantener la temperatura en un valor


predeterminado aunque existan perturbaciones?

Simplemente debería permanecer observando continuamente el termómetro; si


la temperatura de salida baja ya sea porque disminuyó la temperatura de entrada del
fluido, o aumentó el caudal, o por otra circunstancia, debe inmediatamente abrir la
válvula para que haya mayor entrada de vapor al intercambiador. En caso contrario,
debe cerrarla, para no sobrecalentar el fluido, tratando siempre de mantener constante
la temperatura de salida.

Se ha conformado lo que se denomina un lazo cerrado, término que hace


referencia al hecho de que ahora la acción de control es dependiente de la variable de
salida.

Un sistema automático de control no hace más que reproducir el


comportamiento del operador en forma automática, tal como se observa en la figura
2.2. Nótese el flujo de las flechas que señalan el lazo cerrado de control.

Figura 2. 2 Lazo cerrado sistema intercambiador de calor.


Capítulo 2 Control Automático 5

Se puede apreciar la aparición de un nuevo elemento que hace las veces del
operador, denominado controlador.

Esquemáticamente, se puede representar cualquier sistema por medio de un


diagrama de bloques, donde se puede notar nuevamente la conformación del lazo
cerrado proceso - sensor - controlador – actuador como se muestra en la figura 2.3:

Figura 2. 3 Diagrama de bloques de un sistema de control.

Describiendo este esquema un poco más en detalle, dada una referencia ( set
point), que no es más que el valor deseado de la variable de salida, se le compara con
la misma, de lo que resulta una señal error.

e = Ref – Salida (2.1)

Esta señal es usada por el controlador para calcular una acción de control, que
es enviada al actuador; éste último incide directamente sobre el proceso. La variable
de salida es medida con un sensor primario y eventualmente transformada en una
señal físicamente compatible con la referencia mediante un transductor. Como se
observa en la figura 2.3, la variable medida es llevada hacia atrás en el sistema para
ser comparada con la referencia, de donde surge el concepto de retroalimentación o
realimentación negativa. Esta idea de medir la variable y realimentarla para efectuar
una comparación y saber cuan alejados se está del valor deseado es el concepto
fundamental de todo sistema de control.
Capítulo 2 Control Automático 6

En la figura 2.4 se presenta un esquema de las variables típicas de la industria.

2.2.1-.SENSORES

El sensor es un dispositivo que convierte el valor de una magnitud física (presión,


flujo, temperatura, etc.) en una señal eléctrica en forma analógica o digital. También
es llamado transductor.

Los sensores analógicos envían, por lo regular, señales normalizadas de 0 a 5


voltios, 0 a 10 voltios o 4 a 20 mA. Si es una señal neumática normalmente abarca
entre 3 y 15 psig. El tercer tipo de señal, es la señal digital o discreta (unos y cero).
Frecuentemente es necesario cambiar un tipo de señal por otra esto se hace mediante
un transductor.

Figura 2. 4 Variables típicas en la Industria.


Capítulo 2 Control Automático 7

2.2.2-.CONTROLADORES

Los controladores juegan un papel esencial en los sistemas de control. De las cuatro
funciones de un sistema de control (medición, comparación, computación, y
corrección), el controlador se encarga de la comparación y computación [7]. La
corrección es realizada por el elemento final de control de acuerdo con los cálculos
del controlador. El mecanismo de control en un controlador está formado por dos
secciones:

 Comparador.

 Calculador de ajustes.

El propósito del primero es comparar los valores medidos y el deseado de la


variable a controlar, para luego evaluar la diferencia entre ambos (error). La segunda
sección del mecanismo de control minimiza la perturbación mediante la aplicación
de las diferentes acciones de control que manipulan de forma correcta el elemento
final de control.

2.3-.ESTRATEGIAS DE CONTROL

Las estrategias de control más utilizadas a nivel industrial son:

 Control en lazo cerrado feedback .


 Control en cascada.
 Control en adelanto, feedforward.
Este trabajo se delimitará solamente para realizar estudios de estrategias en lazo
cerrado feedback.

2.3.1-.CONTROLADOR PID

La estructura de un controlador PID es simple, aunque su simpleza es también su


debilidad, dado que limita el rango de plantas donde pueden controlar en forma
satisfactoria. Se estudiarán los enfoques tradicionales al diseño de controladores PID
Capítulo 2 Control Automático 8

[8]. Se considera un lazo de control de una entrada y una salida (SISO) de un grado
de libertad:

Figura 2. 5 Sistema de control SISO


Los miembros de la familia de controladores PID, incluyen tres acciones:
proporcional (P), integral (I) y derivativa (D). Estos controladores son los
denominados P, I, PI, PD y PID.

P: acción de control proporcional, da una salida del controlador que es proporcional


al error, es decir: u(t) = Kp.e(t),que descrita desde su función de transferencia queda:

(2.2)

donde Kp es una ganancia proporcional ajustable. Un controlador proporcional puede


controlar cualquier planta estable, pero posee desempeño limitado y error en régimen
permanente (off-set).

I: acción de control integral: da una salida del controlador que es proporcional al


error acumulado, lo que implica que es un modo de controlar lento.

(2.3)

Un modo que toma en cuenta la historia anterior (valores pasados) del error y
que permite obtener cualquier salida del controlador con error permanente cero es el
modo integral.
Capítulo 2 Control Automático 9

La salida del modo integral no alcanzará un valor estacionario hasta que el


error sea cero y permanezca siendo cero.

PI: acción de control proporcional-integral, se define mediante

(2.4)

La ecuación que representa la función de transferencia de un


controlador PI es la siguiente:

(2.5)

De manera que se tienen que sintonizar dos parámetros en


este tipo de controlador:

 Kp: es la ganancia del controlador.

 Ti: (tiempo integral) se expresa en segundos o minutos y representa el tiempo


necesario para que la contribución de la acción integral iguale a la de acción
proporcional.

La componente integral, al adicionar un polo en el origen de la función de


transferencia del controlador, elimina el error estacionario de posición,
independientemente del sistema que se pretende controlar. Si, por un lado, como fue
referido anteriormente, la acción integral elimina el error estacionario, por otro,
aumenta el tiempo de estabilización y empeora la estabilidad relativa, lo que
usualmente es indeseable.

Muchos controladores industriales tienen sólo acción PI. Se puede demostrar


que un control PI es adecuado para todos los procesos donde la dinámica es
Capítulo 2 Control Automático 10

esencialmente de primer orden. Lo que puede demostrarse en forma sencilla, por


ejemplo, mediante un ensayo escalón. [9]

PD: acción de control proporcional-derivativa, se define mediante:

(2.6)

donde Td es una constante denominada tiempo derivativo. Esta acción tiene carácter
de previsión, lo que hace más rápida la acción de control, aunque tiene la desventaja
importante que amplifica las señales de ruido y puede provocar saturación en el
actuador. La acción de control derivativa nunca se utiliza por si sola, debido a que
sólo es eficaz durante períodos transitorios.

Cuando una acción de control derivativa se agrega a un controlador


proporcional, permite obtener un controlador de alta sensibilidad, es decir que
responde a la velocidad del cambio del error y produce una corrección significativa
antes de que la magnitud del error se vuelva demasiado grande. Aunque el control
derivativo no afecta en forma directa al error en estado estacionario, añade
amortiguamiento al sistema y, por tanto, permite un valor mas grande que la ganancia
K, lo cual provoca una mejora en la precisión en estado estable.

PID: acción de control proporcional-integral-derivativa, este modo resulta de la


combinación de los modos proporcional, integral y derivativo. Se puede afirmar que
resulta en un compromiso entre las ventajas y desventajas de un PI y las ventajas de
un PD. La salida del controlador viene dada por:

(2.7)

Y su función de transferencia
Capítulo 2 Control Automático 11

(2.8)

En este tipo de controlador, el modo integral es usado para eliminar el error


estacionario causado por grandes variaciones de la carga. El modo derivativo, con su
efecto estabilizador, permite un aumento de la ganancia y reduce la tendencia para las
oscilaciones, lo que conduce a una velocidad de respuesta superior cuando es
comparado con P y PI.

Sin embargo, estas propiedades asumen un carácter general, por lo que pueden
existir excepciones en determinados sistemas.

2.3.1.1-.REQUISITOS DE UN SISTEMA DE CONTROL

A un sistema de control se le pide que cumpla ciertos objetivos, los cuales se


expresan resumidamente en estas tres características [5]:

 Exactitud: impuesto un cierto valor de referencia al cual se requiere que el


sistema controlado llegue. Puede ocurrir que no lo alcance, permaneciendo un
error de estado estacionario entre la referencia o valor deseado y el valor de
estado estacionario, dice cuan exacto es el sistema de control.

 Velocidad de respuesta: el tiempo de elevación y el tiempo para llegar al


valor pico miden la velocidad de respuesta.

 Sobrepico: diferencia entre el valor máximo alcanzado y el valor de estado


estacionario, la cual se pretende que no sobrepase un cierto porcentaje del
valor de estado estacionario.

En la figura 2.6 se presentan estos requisitos.


Capítulo 2 Control Automático 12

Figura 2. 6 Curva de respuesta al escalón unitario mostrando


los parámetros de respuesta transitorio.

2.3.1.2-.CARACTERÍSTICAS DE LOS CONTROLADORES

Siempre que se utilice control integral, se debe probar inicialmente con un K P


reducido. La utilización del control derivativo tiene como principal consecuencia una
mejora en la estabilidad del sistema, reduciendo el sobre-nivel y mejorando la
respuesta transitoria. Los efectos de adicionar los modos proporcional, integral y
derivativo en la respuesta del sistema en lazo cerrado, se listan en la siguiente tabla.

Tabla 2. 1 Características de los controladores P,I,D.

Controlador T. Subida Sobrepico T. Establecimiento Error Estacionario


Kp Disminuye Aumenta Poco cambio Disminuye
Ki Disminuye Aumenta Aumenta Elimina
Kd Poco cambio Disminuye Disminuye Poco cambio

Note que estas correlaciones no son exactas, una vez que, si se altera uno de los
parámetros del controlador se puede alterar el efecto de las otras acciones. Por esta
razón, la tabla 2.1 debe ser usada como referencia cuando se está por determinar los
parámetros del controlador.
Capítulo 2 Control Automático 13

Con respecto a la decisión del tipo de controlador a usar en una determinada


aplicación no es posible obtener una respuesta definitiva. Idealmente, el controlador
más simple que satisfaga la “respuesta deseada” es el que debe ser escogido,
infelizmente esta es una selección que generalmente sólo se puede hace cuando la
aplicación es simple o cuando existe alguna información relativa a aplicaciones
semejantes.

La selección del controlador debe depender de las condiciones operativas del


sistema y de especificaciones de funcionamiento tales como, el máximo error
estacionario, el máximo sobrepico y el tiempo de estabilización permitido. Si el error
estacionario no es tolerado, entonces el modo integral debe ser incluido en el
controlador, ya que ésta es la única acción que lo permite eliminar o reducir. La
necesidad de la acción derivativa puede ser dictada por un sobrepico máximo y/o el
tiempo de estabilización. Si un error estacionario reducido no es crítico para las
condiciones operativas del sistema, entonces es posible omitir el modo integral, y el
uso del modo derivativo depende entre otros factores de la necesidad o no de
adicionar ganancia adicional al modo proporcional.

Como regla general, se puede afirmar que se adiciona el modo proporcional


para obtener un determinado tiempo de ascenso, que se adiciona el modo derivativo
para obtener un determinado sobrepico y que el modo integral sólo debe ser
introducido para eliminar el error estacionario.

2.3.1.3-.PROCEDIMIENTO PARA EL DISEÑO DE UN CONTROLADOR PID

Los siguientes pasos son útiles para diseñar el controlador que permita obtener la
respuesta deseada:

 Obtenga la respuesta de lazo abierto y determine las características a ser


mejoradas.
Capítulo 2 Control Automático 14

 Agregue un control proporcional para mejorar el tiempo de subida.

 Agregue un control derivativo para mejorar el sobrepico.

 Agregue un control integrativo para eliminar el error estacionario.

 Ajuste cada una de las ganancias Kp, Ki, y Kd hasta que se obtenga la
respuesta deseada.

Finalmente, debe tenerse en cuenta que no es necesario implementar los 3


controladores en todo caso. Por ejemplo, si un controlador PI ofrece una buena
respuesta, no es necesario adicionar el control derivativo. Debe mantenerse el
controlador lo más simple posible.

2.4-.VENTAJAS E INCONVENIENTES DE LA AUTOMATIZACIÓN

 Ventajas:

 Permite aumentar la producción y adaptarla a la demanda.


 Disminuye el costo del producto.
 Consigue mejorar la calidad del producto y mantenerla constante.
 Mejora la gestión de la empresa.
 Disminuye la mano de obra necesaria.
 Hace más flexible el uso de la herramienta.

 Inconvenientes:
 Incremento de la energía consumida por producto.

 Repercusión de la inversión en el costo del producto.

 Exigencia de mayor nivel de conocimientos de los operarios.


Capítulo 2 Control Automático 15
Capítulo 3 Marco Teórico 16

3
Marco Teórico
3.1-.MODELADO Y SIMULACIÓN DE LA DINÁMICA DE PROCESOS

El modelado y la simulación son dos procedimientos inseparables que incluyen


actividades complejas asociadas con la construcción de modelos que representan
procesos reales y experimentación con los modelos (simulación) para obtener
información sobre su funcionamiento.

Con el modelado de sistemas dinámicos se obtiene un conjunto de ecuaciones


matemáticas que describen el comportamiento de un sistema físico.

La simulación relaciona modelos y computadores, se refiere al proceso de


imitación de aspectos importantes del comportamiento del sistema mediante el
diseño, construcción y experimentación con el modelo del sistema. Las relaciones
entre los tres elementos se resumen en la figura 3.1.

Figura 3. 1 Relación entre simulación, modelo y computador.

En la actualidad las necesidades de una creciente, automatizada y cada vez más


compleja industria, unido a los altos costos de operación, han permitido el desarrollo
del modelado y simulación.
Capítulo 3 Marco Teórico 17

Figura 3. 2 Clasificación de los modelos.

Figura 3. 3 Etapas de un proyecto.

dS
0 (3.2)
dt

En cambio, si se analiza el modelo diferencial, aceptando que S varía en el


sistema, se habla de modelo dinámico.

3.3-.ELABORACIÓN DE MODELOS

Al aplicar las leyes físicas a un sistema específico, es posible desarrollar un modelo


matemático que describa al sistema. De no ser así, se puede utilizar un procedimiento
de modelado experimental. Se somete al sistema a un conjunto de entradas conocidas
y se miden sus salidas, a partir de las relaciones de entrada y salida se deriva entonces
el modelo matemático.

Cuando se intenta construir un modelo debe establecerse un equilibrio entre la


simplicidad del modelo y la exactitud de los resultados del análisis. Los resultados
obtenidos son válidos en la medida en que el modelo se aproxime al sistema físico
dado. Si no se requiere de una exactitud extrema, es preferible desarrollar un modelo
razonablemente simplificado.
Capítulo 3 Marco Teórico 18

Para determinar este modelo simplificado se necesita decidir cuales de las


variables y relaciones físicas pueden despreciarse y cuales son cruciales en la
exactitud del modelo.

Aunque casi todo sistema real tiene características no lineales, muchos sistemas
pueden describirse razonablemente por modelos lineales al menos dentro de ciertos
rangos de operación.

Como normalmente un sistema de control opera en las cercanías de un


equilibrio, se hace una linealización alrededor de este equilibrio.

El resultado es un modelo lineal, mucho más simple, pero adecuado para el


diseño de control [7].

Para un mismo sistema no lineal, la linealización alrededor de distintos puntos


de equilibrio dará, en general, distintos modelos linealizados.

3.3.1-.ELABORACIÓN DE MODELOS MATEMÁTICOS

A continuación se describe en forma general el procedimiento utilizado para la


elaboración de modelos matemáticos:

 Dibujar un diagrama esquemático del sistema y definir las variables.

 Utilizando leyes físicas, escribir ecuaciones para cada componente,


combinándolos de acuerdo con el diagrama del sistema y obtener un modelo
matemático.

 Para verificar la validez del modelo, se compara con resultados


experimentales.
Capítulo 3 Marco Teórico 19

Si los resultados experimentales se alejan de la predicción en forma


considerable, debe modificarse el modelo. Entonces se obtiene un nuevo modelo y las
nuevas predicciones se comparan con los resultados experimentales. El proceso se
repite hasta que se obtiene una concordancia entre la predicción y los resultados
experimentales.

3.3.2-.MODELO DE DEPÓSITO SIMPLE

Los procesos industriales requieren líquidos para ser bombeados, almacenados en


tanques y luego bombeados a otro tanque. Muchas veces el líquido será procesado
por tratamientos químicos en los tanques, pero siempre el nivel de fluido en los
tanques debe ser controlado, y el flujo entre ellos regulado.

A nivel industrial se usan en: Industrias de Petroquímica, Industrias de


fabricación de papel, Industrias de tratamiento de agua. Es esencial para ingenieros en
sistemas de control entender cómo trabajan los sistemas de control en los depósitos y
cómo es resuelto el problema del control del nivel.

Observe un sistema de depósito simple en la figura 3.4. El modelo del sistema


está determinado para relacionar el flujo Qi dentro del tanque con el flujo Qo . Usando
una ecuación de equilibrio de flujo dentro del tanque, es posible escribir:

Área A

Bomba

Válvula

Figura 3. 4 Sistema de nivel con un solo tanque.


Capítulo 3 Marco Teórico 20

(3.3)

Donde A es el área transversal del tanque y H es el nivel de fluido en el tanque.


Si la válvula es diseñada para comportarse como un orificio, entonces el fluido que
pasa la válvula será relacionado con el nivel H, por la expresión [8]:

(3.4)

En esta ecuación a es el área transversal del orificio, (en la práctica, el área


transversal será dada por las dimensiones de la válvula y el canal de flujo en el cual
está montado). Cd es llamado el coeficiente de descarga de la válvula. Este coeficiente
toma en cuenta todas las características del fluido, pérdida e irregularidades en el
sistema. Y g = ctte. gravitacional = 980 cm/sec 2. La ecuación toma a Cd como una
constante por lo que Qo tiene una relación no lineal con el nivel H para todas las
posibles condiciones de operación. Combinando las ecuaciones se obtiene:

(3.5)

Esta ecuación es el modelo matemático que describe el comportamiento del


sistema. La no linealidad es suave y puede ser lineal en un nivel particular de
operación.

El modelo del sistema, (ecuación 3.5), es una ecuación diferencial de primer


orden relacionando el nivel de flujo de entrada, Qi, con el nivel de salida del agua, H.
Para diseñar un controlador lineal para el nivel del tanque, se debe linealizar la
ecuación considerando pequeñas variaciones h cerca del nivel normal de operación
del fluido en el tanque. La ecuación es la siguiente:
Capítulo 3 Marco Teórico 21

(3.6)

Donde H0 es el nivel normal de operación, y es una constante, h es un pequeño


cambio cercano a ese nivel. Para pequeñas variaciones de h cercanas a H0 se puede
aproximar la función no lineal mediante la tangente de H0. Esto permite una ecuación
diferencial lineal:

(3.7)

3.4-.RESPUESTA DEL SISTEMA

Para determinar la respuesta de un sistema, se utilizan una serie de señales de prueba


y en función de la respuesta a estas señales de prueba, se pueden deducir las
principales propiedades del sistema. La más típica de las entradas es el escalón, es
muy habitual estudiar la respuesta de un sistema de primer orden a un escalón.

3.4.1-.SISTEMAS DE PRIMER ORDEN

En función de la ecuación diferencial que modela el sistema o del orden del


polinomio característico de la función de transferencia se pueden clasificar a los
sistemas. Si la ecuación diferencial es de primer orden o el orden del polinomio
característico es 1, se dice que el sistema es de primer orden cuya forma es:

(3.8)
Capítulo 3 Marco Teórico 22

Utilizando la función de transferencia de un sistema de primer orden, se puede


observar que la respuesta es una función exponencial, tal y como se demuestra a
continuación:

(3.9)

3.4.2-.SISTEMAS DE SEGUNDO ORDEN

Existen dos tipos de sistemas de segundo orden:

 Sistemas de segundo orden constituidos por dos sistemas de primer orden en


serie, como por ejemplo dos tanques de acumulación de líquido en serie.

 Sistemas de segundo orden intrínsecos, que son aquellos en los que su


dinámica inherente es de segundo orden, como por ejemplo una válvula
neumática.

La función de transferencia general de un sistema de este tipo viene dada por:

(3.10)

Entre las muchas especificaciones de desempeño utilizadas en el diseño de los


sistemas de control, el requerimiento más importante es que el sistema sea estable.
Capítulo 3 Marco Teórico 23

Un sistema es estable si al aplicarle un estímulo momentáneo, su salida


permanece acotada cuando el tiempo tiende a infinito; de manera que la respuesta a
una señal, ya sea esta un cambio en el valor deseado o una perturbación, debe
alcanzar el valor deseado en un período de tiempo razonable, aunque pueda tener un
error permanente.

Un sistema de control inestable producirá por ejemplo, oscilaciones persistentes


o de gran amplitud en la señal, o bien, puede hacer que la señal tome valores que
corresponden a límites extremos.

En función de las características del transitorio del sistema existen tres tipos:

 Sobreamortiguado: respuesta sin oscilaciones (figura 3.5(c)).

 Críticamente amortiguado: máxima velocidad sin sobreimpulsos


(figura 3.5(d)).

 Subamortiguado: respuesta con sobreimpulsos (figura 3.5(b)).

Figura 3. 5 Respuesta al escalón para sistemas de segundo orden

Al igual que un sistema de primer orden, existen unos parámetros que definen
a un sistema de segundo orden:
Capítulo 3 Marco Teórico 24

 Ganancia estática, k. El significado es similar que en un sistema de primer


orden.

 Frecuencia natural no amortiguada, ωn: corresponde a la frecuencia con la


que oscilaría el sistema si no existiera amortiguamiento.

 Coeficiente de amortiguamiento, δ: en función de su valor se puede deducir si


el sistema es inestable, críticamente amortiguado, sobreamortiguado o
subamortiguado (en este caso además su valor determina la amplitud de las
sobreoscilaciones).

 Si δ≤0 entonces el sistema es inestable.

 Si 0<δ<1 entonces el sistema es subamortiguado y presenta


sobreoscilaciones.

 Si δ=1 entonces el sistema es críticamente amortiguado.

 Si δ>1 entonces el sistema es sobreamortiguado.

Para identificar estos parámetros en base a la función de transferencia o la


ecuación diferencial que describe al sistema hay que utilizar las siguientes
ecuaciones:

(3.11)

3.4.3-.PARÁMETROS DE RESPUESTA SUBAMORTIGUADA

En la figura 3.6 se muestra un conjunto de ejemplos donde se observa la variación de


estabilidad del sistema en función de la localización de los polos del polinomio
Capítulo 3 Marco Teórico 25

característico, indicando además la respuesta a escalón de un sistema con los polos en


las distintas situaciones consideradas [8].

Figura 3. 6 Análisis de estabilidad en función de la localización de los polos.

3.5-.ECUACIONES DEL LAZO DE CONTROL

Con un lazo de control puede realizarse dos cosas: puede darse un buen seguimiento
al valor deseado y se dice que está funcionando como servomecanismo; también se
puede tratar de eliminar la influencia de las perturbaciones, y se dice que está
funcionando como regulador. Cuando se usa como servomecanismo, la función de
transferencia de lazo cerrado del sistema de control es [8]:

(3.12)

Cuando se usa como regulador la función de transferencia de lazo cerrado sería


Capítulo 3 Marco Teórico 26

(3.13)

Para efectos del estudio de la estabilidad del sistema se utiliza normalmente la


función de transferencia de lazo abierto L(s) y la ecuación característica p(s) para el
análisis. Para el caso del diagrama de bloques simplificado que se presenta en la
figura 3.7, estas son respectivamente

(3.14)

(3.15)

Figura 3. 7 Diagrama de bloques de sistema de control realimentado.

3.6-.CRITERIOS DE DESEMPEÑO Y ROBUSTEZ DE LOS LAZOS DE


CONTROL

3.6.1-.SISTEMAS ESTABLES E INESTABLES

La salida de un sistema lineal en función del tiempo, puede descomponerse en dos


partes. La primera de ellas involucra el estado estable, donde los términos están
directamente relacionados con la entrada del sistema; la segunda son los términos
transientes que son de tipo exponencial o bien de tipo oscilatorio con una envolvente
exponencial. Si la exponencial decae a un valor de cero, se dice que el sistema es
asintóticamente estable. Si la exponencial se incrementa, el sistema se dice que es
inestable [10].
Capítulo 3 Marco Teórico 27

En un sistema práctico los exponenciales no podrían crecer infinitamente, por lo


que se llega a un límite debido a los efectos de saturación, y el sistema se establece en
una oscilación de amplitud constante. La inestabilidad es un efecto muy
desafortunado del lazo cerrado, puesto que un sistema de lazo abierto no puede ser
inestable si la planta es estable. Un sistema inestable, sin embargo, no necesita una
entrada para iniciar la oscilación; el simple hecho de que se cierre el lazo o se
produzca una pequeña señal de ruido son suficientes para desencadenar la oscilación.

Hay variadas técnicas para analizar la estabilidad de sistemas de lazo cerrado,


muchas de ellas adecuadas para indicar el grado de estabilidad y los posibles
métodos de estabilización del sistema. En particular se habla de métodos de
compensación para convertir en estable un sistema que no lo es. Las técnicas
escogidas a utilizar se basan en el hecho de su simplicidad, así como por ser de las
más utilizadas por ingenieros y estudiantes de ingeniería, ellas serán:

 Diagrama de Nyquist.

 Diagrama de Bode.

 Lugar geométrico de las raíces.

3.6.2-.ROBUSTEZ DEL SISTEMA DE CONTROL

La robustez de un sistema de control, es una medida de su capacidad de mantener las


características del sistema de control, ante las perturbaciones o cambios en la planta.
Estos cambios se pueden manifestar por ejemplo, en el tiempo muerto o ganancia de
la planta. [11].

3.6.2.1-.ÍNDICES DE ROBUSTEZ EN LA FRECUENCIA

Los índices de robustez en función de la relación de los parámetros de la planta se


pueden definir como
Capítulo 3 Marco Teórico 28

 Margen de ganancia (MG): se obtiene del trazo del diagrama de Bode. Es la


diferencia entre la curva de magnitud y 0 dB en el punto correspondiente a la
frecuencia que da una fase de -180 grados.

 Margen de Fase (MF): se obtiene del trazo del diagrama de Bode. Es la


diferencia entre la curva de fase y -180 grados en el punto correspondiente a
la frecuencia que nos da una ganancia de 0 dB .

 Sensibilidad máxima (Ms): está definida como

(3.16)

 Margen del tiempo muerto (Mtm): es la cantidad adicional de tiempo muerto


que la planta puede tener antes de entrar en inestabilidad.

3.6.2.2-.ÍNDICES DE ROBUSTEZ EN LA GANANCIA Y EL TIEMPO

Los índices de robustez en función de la relación de los parámetros de la planta se


pueden definir como:

 Índice de robustez de la ganancia

(3.17)

(3.18)

 Índice de robustez en el tiempo muerto

(3.19)

(3.20)
Capítulo 3 Marco Teórico 29

 Índice de robustez combinado

(3.21)

 Índice de robustez absoluto

(3.22)

donde KPA y tMA son la ganancia y tiempo muerto del modelo de la planta para los que
se sintonizó el controlador y KPU y tMU, la ganancia y el tiempo muerto que en forma
independiente llevan el sistema al límite de estabilidad.

3.6.2.3-.CURVA DE ROBUSTEZ

El significado de estos índices de robustez se puede apreciar en forma gráfica como


lo muestra la curva de robustez en la figura 3.8.

Los índices de robustez en la ganancia, en el tiempo muerto y el índice de


robustez combinado, son una indicación de la cercanía de la curva de estabilidad
límite del sistema al punto (1, 1) del plano (K P/KPA, tM/tMA), el cual corresponde a los
valores de los parámetros del modelo utilizados en la sintonización del controlador
[11].

Entre más altos sean los índices de robustez más robusto es el sistema, esto es,
permitirá un mayor cambio en los parámetros de la planta sin que el sistema de
control se vuelva inestable.

Como se aprecia en el gráfico, esta ventana establece valores mínimos de uno


para los índices de robustez y se considerarán suficientemente robustos todos aquellos
sistemas cuya curva de estabilidad límite se encuentre siempre fuera de la ventana y
poco robustos aquellos para los cuales la curva de estabilidad límite penetre la
ventana de robustez.
Capítulo 3 Marco Teórico 30

Figura 3. 8 Gráfico de Robustez

En la figura 3.9 se presentan gráficos de robustez para un sistema con el


controlador sintonizado con dos conjuntos diferentes de parámetros.

3.6.3-.CÍRCULO DE SENSIBILIDAD

Por otra parte, la sensibilidad máxima Ms también es en sí misma una medida de


robustez del sistema de control. Como se muestra en la figura 3.10 corresponde al
inverso de la distancia mínima desde el punto -1 al trazo de la gráfica de Nyquist. El
círculo de sensibilidad tendrá un radio correspondiente al inverso de la sensibilidad
máxima del sistema, y será siempre tangente al trazo de la gráfica de Nyquist del
sistema en cuestión.
Capítulo 3 Marco Teórico 31

Figura 3. 9 Gráfico de robustez controlador sintonizando dos conjuntos de parámetros

Figura 3. 10 Gráfico de Nyquist con círculo de sensibilidad máxima.

3.7-.IDENTIFICACIÓN EXPERIMENTAL DE PROCESOS


Capítulo 3 Marco Teórico 32

La puesta en servicio de un sistema de control industrial requiere de la correcta


sintonización del controlador, es decir de la selección adecuada de sus parámetros.

Para poder sintonizar el controlador Gc(s) de un lazo de control es necesario


identificar primero la dinámica del proceso que se va a controlar Gp(s), para luego
obtener los parámetros del controlador, empleando el método de sintonización
seleccionado. El proceso de sintonización del controlador consta así de dos etapas:
identificación y sintonización como se muestra en la figura 3.11. La obtención de la
información dinámica del proceso requiere que éste sea excitado de alguna forma y la
entrada aplicada así como la respuesta del proceso, sean registradas. Por estas razones
resulta necesario realizar una prueba experimental que permita identificar un modelo
dinámico para el proceso [12].

Figura 3. 11 Parámetros del modelo del controlador.

Las técnicas de identificación experimental pueden clasificarse en:

 Métodos basados en la curva de reacción del proceso (respuesta al escalón).

 Métodos de oscilación mantenida.

 Métodos de realimentación con relé.

 Métodos de control proporcional.

Para efecto de los métodos de sintonización de controladores, usualmente se


requiere que los sistemas sobreamortiguados de orden superior a uno, se representen
por medio de un modelo de primer orden más tiempo muerto, como el dado por la
Capítulo 3 Marco Teórico 33

ecuación 3.23, algunos pocos requieren de un modelo de segundo orden más tiempo
muerto, como el dado por la ecuación 3.24. Si el sistema es subamortiguado debe
representarse por un modelo como el dado por la ecuación 3.25.

 Primer orden más tiempo muerto

(3.23)

 Segundo orden sobreamortiguado más tiempo muerto

(3.24)

 Segundo orden subamortiguado más tiempo muerto

(3.25)

La curva de reacción del proceso se obtiene mediante una prueba de lazo


abierto con el controlador manual y el sistema situado en el punto de operación
deseado. En estas condiciones se aplica un cambio de escalón en la salida del
controlador y se registra esta señal y la de salida del proceso, desde el instante en que
se aplicó el escalón de entrada hasta que el sistema alcance un nuevo punto de
operación estable [11].

Los métodos de identificación experimental basados en la curva de reacción del


proceso incluyen:

 Para sistemas de primer orden: medición directa de los parámetros del modelo
sobre la curva de respuesta.

 Para sistemas sobreamortiguados de segundo orden o mayor:

 Métodos de la tangente (Miller, Strejc, Ziegler y Nichols).


Capítulo 3 Marco Teórico 34

 Métodos de dos puntos (Alfaro, Bröida, Chen y Yan, Ho, Smith,


Viterková).

 Métodos de tres puntos (Jahanmiri y Fallahi, Stark).

 Métodos de las áreas características (Nishikawa) o momentos.

Para efectos de este proyecto, sólo se consideraron los métodos de


identificación de modelos de primer orden y segundo orden (polo doble) más tiempo
muerto.

Para efecto de los métodos de sintonización de controladores, los sistemas


sobreamortiguados de orden superior a uno, deben representarse por medio de un
modelo de primer orden más tiempo muerto. Algunos pocos métodos de sintonización
requieren de un modelo de segundo orden más tiempo muerto. Los procedimientos de
identificación experimental utilizados para este tipo de sistemas, obtienen la
información para identificar el modelo también a partir de la curva de reacción del
sistema.

A continuación se describen en forma detallada los métodos de


identificación utilizados en este trabajo.

3.7.1-.MÉTODOS QUE UTILIZAN LA RECTA TANGENTE

3.7.1.1-.MÉTODO DE LA TANGENTE DE ZIEGLER Y NICHOLS

El primer método de identificación propuesto como parte de un procedimiento de


sintonización de controladores fue desarrollado por Ziegler y Nichols. Aunque estos
autores no supusieron que el sistema a identificar fuera auto-regulado, esto es que la
respuesta del sistema tendía a un valor finito, su procedimiento de identificación
puede utilizarse para obtener un modelo de primer orden más tiempo muerto. El
procedimiento requiere que se trace una recta tangente a la curva de reacción del
proceso en su punto de inflexión o de máxima pendiente, como se muestra en la
figura.3.12. Para obtener un modelo de primer orden más tiempo muerto, se debe
Capítulo 3 Marco Teórico 35

identificar la ganancia Kp, la constante de tiempo τ y el tiempo muerto aparente tm


del sistema. La ganancia es el cambio total en la salida dividido por el cambio en la
entrada y está definida en la ecuación 3.26 [12].

(3.26)

El tiempo transcurrido entre la aplicación del escalón de entrada y el punto en


que la recta tangente corta el eje del tiempo es el tiempo muerto aparente del sistema,
y el tiempo transcurrido entre este instante y el tiempo en que la tangente corta el
valor final de la salida yu, es la constante de tiempo. Debido a la forma en que se
estima la constante de tiempo, esta será mayor que la real haciendo que la respuesta
del modelo sea más lenta que la del sistema original.

3.7.1.2-.MÉTODO DE LA TANGENTE MODIFICADO DE MILLER

El procedimiento propuesto por Miller es una variación del método empleado por
Ziegler y Nichols. Al igual que en este, requiere que se trace una recta tangente al
punto de inflexión de la respuesta. La ganancia y el tiempo muerto en este método se
calculan de la misma forma que en el método de la tangente de Ziegler y Nichols. El
tiempo transcurrido entre la aplicación del escalón de entrada y el punto en que la
recta tangente corta el eje del tiempo es el tiempo muerto aparente del sistema. La
variación propuesta por Miller radica en el cálculo de la constante de tiempo del
modelo. Esta se calcula como el tiempo requerido para que la respuesta alcance el
63,2% del cambio total a partir del tiempo muerto. Esta variación hace que la
respuesta del modelo y la del sistema real coincidan en por lo menos un punto, ambas
respuestas pasan por el mismo punto en el instante t = tm + . Se puede garantizar
entonces que al menos la respuesta del modelo y la del sistema coincidirán en un
punto [12].
Capítulo 3 Marco Teórico 36

Figura 3. 12 Método de la tangente de Ziegler y Nichols.

Figura 3. 13 Método de la tangente modificado de Miller.

3.7.2-.MÉTODOS DE DOS PUNTOS

El método de Ziegler y Nichols y la variación propuesta por Miller requieren que se


trace una recta tangente a la curva de reacción del sistema en el punto de inflexión.
Esto no siempre es fácil de realizar, máxime si la respuesta del sistema presenta ruido.
Una variación en la pendiente de la recta tangente afecta tanto el valor del tiempo
muerto como el de la constante de tiempo del modelo.
Capítulo 3 Marco Teórico 37

Para identificar dos parámetros que requiere el modelo, la constante de tiempo


y el tiempo muerto aparente del sistema, se pueden establecer dos ecuaciones con dos
incógnitas utilizando dos puntos sobre la curva de reacción. De este modo se
garantiza que la respuesta del modelo coincida con la del sistema real en estos dos
puntos como mínimo.

3.7.2.1-.MÉTODO DE SMITH

El primer método basado en dos puntos sobre la curva de reacción fue propuesto por
Smith. Los instantes seleccionados por este autor fueron los tiempos requeridos para
que la respuesta alcance el 28,3% (t28) y el 63,2% (t63) del valor final, y corresponden
a [12]:


t 28  t m  (3.27)
3

t 63  t m   (3.28)

Este sistema de ecuaciones se puede resolver para tm y  obteniéndose:

  1,5(t 63  t 28 ) (3.29)

La ganancia en este método se calcula de la misma forma que en los métodos


anteriores. En la figura 3.14 se presenta la curva de reacción con el método aplicado.

3.7.2.2-.MÉTODO “1/4 - 3/4” DE ALFARO

Procedimientos similares al planteado por Smith pueden desarrollarse para obtener


un modelo de primer orden más tiempo muerto, con dos puntos sobre la curva de
reacción del proceso. Como la curva de reacción del proceso tiene una forma de S,
usualmente la respuesta del modelo de primer orden más tiempo muerto identificado
por el método de Smith, presenta una mayor diferencia con la respuesta real del
proceso en la parte inicial de esta y entre el 70 y 90% de su valor final. Se propone
entonces hacer coincidir la respuesta del modelo y la del sistema real en los instantes
Capítulo 3 Marco Teórico 38

correspondientes al 25% (t25) y al 75% (t75) del cambio en la salida para mejorar la
aproximación [13]. Igualando la respuesta del sistema y la del modelo en estos dos
instantes, se plantea un sistema de dos ecuaciones con dos incógnitas obteniéndose:

τ  0,9102 t 75  t 25  (3.30)

t m  1,2620 * t 25  0,2620 * t 75 (3.31)

Figura 3. 14 Método de los dos puntos de Smith.

Figura 3. 15 Método de ¼ - ¾ de Alfaro.


La ganancia del modelo se calcula como en los otros métodos

Para modelos de segundo orden de polo doble desarrollado por Alfaro [13]
Capítulo 3 Marco Teórico 39

Utilizando también dos puntos sobre la curva de reacción del proceso, se puede
identificar un modelo de segundo orden de polo doble más tiempo muerto, ya que el
número de sus parámetros es el mismo que el de un modelo de primer orden más
tiempo muerto.

La respuesta de un modelo de polo doble más tiempo muerto de la forma:

k p e  t Ms
G p (s)  (3.32)
 τ s  1
' 2

Los parámetros del modelo se pueden obtener ahora como:

y
Kp  (3.33)
u

τ '  a '  t 75  t 25  (3.34)

 
t 'm  b '  t 25   1  b '  t 75  (3.35)

Una extensión del método de dos puntos ¼ – ¾ anterior, a la identificación de


un modelo de polo doble da las constantes a'=0,5776 y b'= 1,5552 .

Las técnicas de identificación citadas anteriormente se basan, en consecuencia,


en la curva de respuesta del proceso obtenida a lazo abierto y son procedimientos
esencialmente gráficos. Otros procedimientos que utilizan secuencias binarias seudo-
aleatorias (PRBS), como señales de prueba y métodos numéricos basados en los
mínimos cuadrados para la identificación de modelos en tiempo continuo o en tiempo
discreto del tipo ARX, ARMA, ARMAX y otros, están fuera del alcance de este trabajo.

3.8-.SINTONIZACIÓN DE CONTROLADORES
Capítulo 3 Marco Teórico 40

La sintonización de los controladores Proporcional – Integral – Derivativo o


simplemente controladores PID, consiste en la determinación del ajuste de sus
parámetros (Kc, Ti, Td), para lograr un comportamiento del sistema de control
aceptable y robusto de conformidad con algún criterio de desempeño establecido
[13].

Para poder realizar la sintonización de los controladores, primero debe


identificarse la dinámica del proceso, y a partir de ésta determinar los parámetros del
controlador utilizando el método de sintonización seleccionado. Existen varios
métodos de sintonización de controladores PI y PID, en el presente trabajo sólo se
trabajarán con los siguientes métodos:

 Reguladores:

 Alfaro (IAE).

 López (IAE ).

 Ziegler y Nichols .

 Servomecanismo:

 Alfaro (IAE).

 Rovira (IAE).

3.8.1-.MÉTODO DE ZIEGLER Y NICHOLS

Este método se continúa utilizando ya sea en su versión original o modificado y es


normalmente el patrón de comparación para otros métodos.

 Información del sistema: Kcu y Tu


Capítulo 3 Marco Teórico 41

 P
K c  0,5 * K cu (3.36)

 PI
K c  0,45 * K cu (3.37)
Tu
Ti  (3.38)
1,2
 PID
K c  0,75 * K cu a 1,25 * K cu (3.39)
Tu
Ti  (3.40)
1,6

Tu
Ti  (3.41)
10

3.8.2-.MÉTODOS BASADOS EN CRITERIOS DE ERROR INTEGRAL

El desempeño de un lazo de control se puede evaluar mediante alguna función


dependiente del error. Los parámetros del controlador se pueden seleccionar de
manera de lograr que la función de costo establecida sea mínima. Para lograr
controladores óptimos se usan la integral del error absoluto IAE o la integral del
tiempo por el error absoluto ITAE como función de costo [14]. La mayoría de estos
procedimientos de sintonización se basan en un modelo de primer orden más tiempo
muerto para representar al proceso controlado, identificado a partir de la curva de
reacción.

3.8.2.1-.MÉTODO DE LÓPEZ

López emplea un modelo de primer orden más tiempo muerto, donde debe utilizarse
el método que de la mejor aproximación para la obtención del modelo. Sus reglas
pueden ser aplicadas en un ámbito de 0,1 tm/  1,0. Está definido para un
funcionamiento del controlador como regulador y es aplicable a controladores P, PI y
PID-ideal. Optimiza los criterios integrales IAE, ISE e ITAE.

Las ecuaciones de sintonización son:


Capítulo 3 Marco Teórico 42

b
t 
Kp * Kc  a * m  (3.42)
 τ 

f
Ti t 
 c* m  (3.43)
τ  τ 

f
Td t 
 e* m  (3.44)
τ  τ 

En la Tabla 3.1 se muestran los valores de las constantes a utilizar en las


ecuaciones 3.42 a 3.44 según el controlador PI ó PID para el criterio integral IAE.

Tabla 3. 1 Constantes Método de López

Controlador Criterio a b c d e f
PI IAE 0,984 -0,984 1,645 0,707 - -
PID IAE 1,435 -0,921 1,139 0,749 0,482 1,137

3.8.2.2-.MÉTODO DE ROVIRA
Rovira emplea un modelo de primer orden más tiempo muerto, donde debe utilizarse
el método que de la mejor aproximación para la obtención del modelo. Sus reglas
pueden ser aplicadas en un ámbito de 0,1 ≤ tm/  1,0. Definido para un
funcionamiento del controlador como servomecanismo y es aplicable a controladores
PI y PID-ideal. Optimiza los criterios integrales IAE .Las ecuaciones de sintonización
son [14]:

b
t 
Kp * Kc  a * m  (3.45)
 τ 
Capítulo 3 Marco Teórico 43

Ti 1

τ t  (3.46)
c  d * m 
 
f
Td t 
 e* m  (3.47)
τ  τ 

En la Tabla 3.2 se presentan los valores de las constantes a utilizar en las


ecuaciones 3.45 a 3.47 según el controlador PI ó PID para el criterio integral IAE.

Tabla 3. 2 Constantes Método de Rovira

Controlador Criterio a b c d e f
PI IAE 0,758 -0,861 1,020 -0,323 - -
PID IAE 1,086 -0,896 0,740 -0,130 0,348 0,914

3.8.2.3-.MÉTODO IAE DE ALFARO

Alfaro emplea un modelo de primer orden más tiempo muerto, donde debe utilizarse
el método que de la mejor aproximación para la obtención del modelo. Sus reglas
pueden ser aplicadas en un ámbito de 0.05 ≤ tm/ ≤ 2.0. Está definido para un
funcionamiento del controlador como servomecanismo ó regulador y es aplicable a
controladores PID-ideales. Optimiza el criterio integral IAE. Las ecuaciones de
sintonización son las siguientes [14]:

a  b *  τ0 
c

Kc  (3.48)
Kp


Ti  d  e τ 0  * τ
f
 (3.49)

Td  g *  τ 0  * τ
h
(3.50)

En la tabla 3.3 se presentan los valores de las constantes a utilizar en las


ecuaciones 3.48 a 3.50 según el funcionamiento del controlador.
Capítulo 3 Marco Teórico 44

Tabla 3. 3 Constantes Método IAE de Alfaro


Función a b c d e f g h
Serv. 0,3295 0,7182 -0,9971 0,9781 0,3723 0,8456 0,3416 0,9414
Reg. 0,2068 1,1597 -1,0158 -0,2228 1,3009 0,5022 0,3953 0,8469

3.9-.SOFTWARE DE SIMULACIÓN

3.9.1-.SOFTWARE DE SIMULACIÓN MATLAB

Es un programa interactivo para computación numérica y visualización de datos. Es


ampliamente usado por Ingenieros de Control en el análisis y diseño, posee además
una extraordinaria versatilidad y capacidad para resolver problemas en matemática
aplicada, física, química, ingeniería, y muchas otras aplicaciones [15].

MATLAB goza en la actualidad de un alto nivel de implantación en centros


universitarios, así como en departamentos de investigación y desarrollo de muchas
compañías industriales nacionales e internacionales.

En entornos universitarios, por ejemplo, se ha convertido en una herramienta


básica, tanto para los profesionales e investigadores de centros docentes, como una
importante herramienta para cursos universitarios, tales como sistemas e ingeniería de
control, álgebra lineal, proceso digital de imagen, señal, etc.

3.9.1.1-.TOOLBOX DE SISTEMAS DE CONTROL DEL SOFTWARE


MATLAB

El primer paso para utilizar el toolbox de sistemas de control es ingresar el modelo


del sistema. Esto se puede hacer de tres formas, como modelo de estados, como
transferencias o como polos y ceros. Si el modelo del sistema se tiene como variables
de estado, es decir,

.
x  Ax  Bu ,
(3.51)
y  Cx  Du
Capítulo 3 Marco Teórico 45

Para trabajar con este tipo de sistema se deben usar los siguientes comandos de
Matlab:

A = [0 1 0;0 0 1;-18 -27 -10];


B = [0;0;1];
C = [1 0 0];D = 0;
S = ss(A,B,C,D)

Si el modelo del sistema se expresa como una función de transferencia, se


utiliza la función tf. Por ejemplo, para G(s):

1
G( s)  (3.52)
s  10s  27 s  18
3 2

>> num=1;

>> den=[1 10 27 18];

>> G=tf(num,den)

3.9.1.2-.DISEÑO DE CONTROLADORES

El Toolbox de Control contiene las funciones rlocfind y rltool. Estas permite diseñar
en forma interactiva un controlador SISO en el lugar de raíces. La función rlocfind
determina la ganancia que hace que los polos del sistema de lazo cerrado se
encuentren en una ubicación especificada. Por ejemplo, suponiendo que se tiene la
siguiente planta:

(3.53)

con polos en s = -2 y s = -5. Primeramente se hace el gráfico del lugar de raíces y


luego se llama a la función rlocfind:
Capítulo 3 Marco Teórico 46

Root Locus
4

Imaginary Axis
0

-1

-2

-3

-4
-14 -12 -10 -8 -6 -4 -2 0
Real Axis

Figura 3. 16 Representación del lugar geométrico usando rlocus.

>> rlocus(P);
>> [k,polos]=rlocfind(P);
Select a point in the graphics window
selected_point = -7.1161 + 1.8509i
k = 8.2476

La última instrucción espera que se seleccione con el ratón la ubicación de los


polos de lazo cerrado deseado, devolverá en k la ganancia de realimentación y los
polos obtenidos. Los polos de lazo cerrado deben estar sobre el lugar de raíces, si esto
no es así la función devolvería la ganancia que ubique los polos lo más cerca posible
de lo deseado. La otra función rltool ofrece un completo entorno gráfico para el
diseño de controladores a partir del diagrama de lugar de raíces.

3.9.1.3-.EL VISOR LTI


El visor LTI es una interfaz utilizada para visualizar y manipular respuestas (tanto
temporales como frecuenciales) de modelos de tipo LTI. En la figura 3.17 se presenta
la respuesta al usar el comando ltiview.
Capítulo 3 Marco Teórico 47

>> P = tf([0 1],[1 1 1])


>>ltiview.

Figura 3. 17 Representación simultánea de gráficas usando ltiview.

3.9.1.4-.PROGRAMA SIMULINK

Simulink es un programa de simulación usado junto con MATLAB. Ha de tenerse en


cuenta que los pasos para usar el programa son:
 Crear un esquema basado en bloques y flechas que representa un sistema
dinámico.

 Simular la evolución dinámica del mismo.


Capítulo 3 Marco Teórico 48

 Para poner en marcha el programa Simulink es necesario haber ejecutado


MATLAB.

Figura 3. 18 Ventana de trabajo de Simulink y sus bloques de funciones.

3.9.1.5-.TOOLBOX DE ADQUISICIÓN DE DATOS


El toolbox de adquisición de datos DAQ le permite al usuario capturar y generar
señales reales e interactuar con ellas desde Matlab. Un sistema de adquisición de
datos típico está formado de (figura 3.19):

 Sensores y actuadores.

 Hardware de adquisición de datos.

 Hardware de acondicionamiento de señal.

 Computadora o procesador.

 Programa.
Capítulo 3 Marco Teórico 49

Figura 3. 19 Sistema típico de adquisición de datos.

El software de adquisición de datos permite intercambiar información entre la


computadora y el hardware. Por ejemplo, los programas típicos permiten configurar
la tasa de muestreo de una tarjeta de adquisición de datos y adquirir un número
predefinido de muestras. El toolbox de adquisición de datos se divide en tres
componentes principales:

 Las funciones M establecidas.

 El motor de adquisición de datos.

 Los manejadores (drivers) de la tarjeta de adquisición de datos.

Estos componentes permiten intercambiar información entre Matlab y el hardware de


adquisición de datos.

3.9.1.6-.IDENTIFICACIÓN DE SISTEMAS

La identificación de Sistemas es el conjunto de estudios, algoritmos y teorías cuyo


objetivo es el conocimiento de las características dinámicas de un sistema a partir de
datos experimentales.
Capítulo 3 Marco Teórico 50

Puede ser paramétrica o no paramétrica, en línea o fuera de línea. Los métodos


no paramétricos se caracterizan porque los parámetros se calculan indirectamente, por
ejemplo, a partir de gráficas (ej: método de análisis de respuesta transitoria, análisis
frecuencial, análisis de correlación y análisis espectral).

Los métodos paramétricos permiten el cálculo directo del vector de parámetros


de un modelo discreto (reduciendo los errores de la aproximación) y son más útiles
para la identificación en línea, aplicada, por ejemplo, al control autosintonizado.

En general, las etapas a seguir para identificar un modelo paramétrico son:

 Diseño del experimento de identificación. En esta primera etapa es necesario


decidir, entre otros aspectos: el tipo de señales de excitación, el mejor periodo
para la adquisición de datos, la cantidad de datos necesarios.

 Observación y mejora de la calidad de los datos capturados. Antes de utilizar


los métodos de estimación de parámetros es necesario: observar y reparar los
datos erróneos, filtrar las altas frecuencias, eliminar offsets y tendencias.

 Determinación de la estructura del modelo. En esta etapa es necesario definir


tipos de modelos a utilizar: continuos o discretos, tipos de ruido, lineales o no
lineales, regresiones, redes neuronales. Y es necesario adoptar un
procedimiento para determinar el orden del modelo.

 Estimación de los parámetros. Etapa muy relacionada con la anterior, en ella


se presenta el problema de decidir el método o métodos de estimación de
parámetros que se va a utilizar para calcular el valor de los mismos. En
general se puede escoger entre dos técnicas distintas: en el dominio temporal y
en el dominio frecuencial.
Capítulo 3 Marco Teórico 51

 Validación del modelo. Es la etapa en la que debe preguntarse si el modelo


identificado es suficientemente representativo del proceso estudiado. En el se
debe definir un criterio para evaluar la calidad. Generalmente se dispone de
varios modelos candidatos y debe escogerse uno de ellos basándose en algún
criterio.

 Actualmente hay muchos programas comerciales de ayuda a ingeniero en las


etapas de identificación, concretamente en las etapas de estimación de
parámetros y evaluación de las propiedades del modelo estimado. En esta
sección del trabajo se utiliza el toolbox de identificación de Matlab .

3.9.1.6.1-.INTERFAZ GRÁFICO DE USUARIO GUI

Por medio del comando Ident se consigue acceder a GUI. La introducción de datos
desde el exterior del GUI son llevadas a cabo por medio del menú denominado Data
mientras que la creación de nuevo conjunto de datos es manejada a través del menú
llamado Preprocess. La introducción de cada modelo es llevada a cabo por medio del
menú denominado Models, mientras que los diferentes esquemas de estimación se
determinan a través del menú Estimate.

Haciendo clic sobre el botón denominado import se hacen pasar los datos desde
el espacio de trabajo de MATLAB hasta la interfase gráfica Ident, como se muestra en
la figura 3.21 [15].
Capítulo 3 Marco Teórico 52

Figura 3. 20 Etapas para la identificación de un proceso.


.

Figura 3. 21 Introducción de los datos al GUI Ident.

Luego se hará clic sobre Parametric Models y se observará la ventana que se


muestra en la figura 3.22.
Capítulo 3 Marco Teórico 53

Figura 3. 22 Modelo paramétrico.

En la ventana se tiene el menú Structure, este permite escoger entre las


diversas estructuras que ofrece Ident.

3.9.2-.SOFTWARE DE SIMULACIÓN LABVIEW

LabVIEW de National Instruments (NI) es un entorno de desarrollo gráfico con


funciones integradas para realizar adquisición de datos, control de instrumentos,
análisis de medida y presentaciones de datos. Proporciona la flexibilidad de un
potente entorno de programación, pero es mucho más sencillo de utilizar que los
entornos tradicionales. Se diferencia de otras aplicaciones en que dichos sistemas
usan lenguajes basados en líneas de texto (como C o BASIC), mientras que
LabVIEW utiliza un lenguaje de programación gráfico, G, para crear el programa
mediante diagramas de bloques.

Se puede conectar de manera transparente todo tipo de hardware incluyendo


instrumentos, tarjetas, controladores de movimiento y controladores lógicos
programables (PLCs). Aparte de la conectividad con plantas físicas, también es
compatible con otras aplicaciones y puede compartir datos a través de ActiveX, la
Web, DLLs, librerías compartidas, SQL, TCP/IP, XML, OPC y otros [16].
Capítulo 3 Marco Teórico 54

3.9.2.1-.APLICACIONES DE LABVIEW

Labview tiene su mayor aplicación en sistemas de medición, como monitoreo de


procesos y aplicaciones de control, un ejemplo de esto pueden ser sistemas de
monitoreo en transportación, Laboratorios para clases en Universidades, procesos de
control industrial. Es muy utilizado en procesamiento digital de señales,
procesamiento en tiempo real de aplicaciones biomédicas, manipulación de imágenes
y audio, automatización, diseño de filtros digitales, generación de señales, entre otras,
etc [17].

3.9.2.2-.PROGRAMACIÓN GRÁFICA CON LABVIEW

Cuando se diseñan programas con Labview se está trabajando siempre bajo algo
denominado VI, es decir, un instrumento virtual. Este VI puede utilizarse en cualquier
otra aplicación como una subfunción dentro de un programa general.

En el ambiente de trabajo de Labview existen dos paneles, el panel frontal y el


panel de programación ó diagrama de bloques. Un panel frontal está formado por una
serie de botones, pulsadores, potenciómetros, gráficos, etc. Cada uno de ellos puede
estar definido como un control o un indicador. Los primeros sirven para introducir
parámetros al VI, mientras que los indicadores se emplean para mostrar los resultados
producidos, ya sean datos adquiridos o resultados de alguna operación.

El diagrama de bloques constituye el código fuente del VI. Es donde se realiza


la implementación del programa del VI para controlar o realizar cualquier procesado
de las entradas y salidas que se crearon en el panel frontal. Incluye funciones y
estructuras integradas en las librerías que incorpora LabVIEW. En el lenguaje G las
funciones y las estructuras son nodos elementales. Son análogas a los operadores o
librerías de funciones de los lenguajes convencionales. Los controles e indicadores
que se colocaron previamente en el Panel Frontal, se materializan en el diagrama de
bloques mediante los terminales [17].
Capítulo 3 Marco Teórico 55

LabVIEW posee una extensa biblioteca de funciones, entre ellas, aritméticas,


comparaciones, conversiones, funciones de entrada/salida, de análisis, etc. Esta
biblioteca es la Paleta de funciones la cual se emplea en el diseño del diagrama de
bloques y se presenta en la figura 3.23.

También cuenta con una paleta de controles figura 3.24, se utiliza únicamente
en el panel frontal. Contiene todos los controles e indicadores que se emplearán para
crear la interfaz del instrumento virtual con el usuario de señales, entrada/salida de
datos a fichero, adquisición de señales, temporización de la ejecución del programa.

Figura 3. 23 Subpaleta de funciones

Las estructuras, similares a las declaraciones causales y a los bucles en


lenguajes convencionales, ejecutan el código que contienen de forma condicional o
repetitiva (bucle for, while, case,...) se observan en la figura 3.25. Los cables son las
trayectorias que siguen los datos desde su origen hasta su destino, ya sea una función,
Capítulo 3 Marco Teórico 56

una estructura, un terminal, etc. Cada cable tiene un color o un estilo diferente, lo que
diferencia unos tipos de datos de otros. Labview tiene VIs de adquisición de datos e
imágenes, de comunicaciones, de procesamiento digital de señales, de funciones
matemáticas simples, hasta funciones que utilizan otros programas como Matlab para
resolver problemas, otras mas complejas como "nodos de fórmula" que se utilizan
para la resolución de ecuaciones editando directamente estas como en lenguajes de
programación tradicionales y definiendo las entradas y las salidas.

Figura 3. 24 Subpaleta de controles.

Figura 3. 25 Estructuras de control.


Capítulo 3 Marco Teórico 57

3.9.2.3-.PASOS PARA DESARROLLAR UN VI

Con el entorno gráfico de programación de LabVIEW se comienza a programar a


partir del panel frontal. En primer lugar se definirán y seleccionarán de la paleta de
controles todos los controles (entradas que dará el usuario) e indicadores (salidas que
presentará en pantalla el VI) que se emplearán para introducir los datos por parte del
usuario y presentar en pantalla los resultados. Una vez colocados en la ventana
correspondiente al panel frontal todos los objetos necesarios, debe pasarse a la
ventana Diagram que es donde se realiza la programación propiamente dicha
(diagrama de bloques). Al abrir esta ventana, en ella se encuentran los terminales
correspondientes a los objetos situados en el panel frontal, dispuestos
automáticamente por LabVIEW. Se deben ir situando las funciones, estructuras, etc.
que se requieran para el desarrollo del programa, las cuales se unen a los terminales
mediante cables.

3.9.2.4-.ADQUISICIÓN DE DATOS

Labview como su nombre lo indica es un lenguaje que se enfoca hacia el laboratorio,


la realización de mediciones y por lo tanto la adquisición y análisis de datos.
Mediante el uso de tarjetas es posible obtener señales análogas o digitales a partir de
una conexión al bus PCI en una computadora, estas tarjetas se diferencian por el
número de muestras por segundo que pueden realizar, por el número de bits
(resolución) y por el número de canales que manejan. Por ejemplo una tarjeta de bajo
costo como la PCI-1200 realiza 100KS/s, con una resolución de 8 bits para 3 puertos
digitales de entrada/salida y dos de salida análoga, junto con 12 bits de resolución
para 8 canales de entrada análogos. La tarjeta se debe programar para definir los
niveles de voltaje que debe manejar y si son bipolares o unipolares. Las
características de la tarjeta se pueden configurar con la herramienta Measurement &
Automation que se encuentra en el explorador de Windows como un icono principal.
Esta herramienta permite verificar que tarjetas hay instaladas en el computador, esto
Capítulo 3 Marco Teórico 58

sólo para el caso de tarjetas de adquisición de datos o de imágenes de Nacional


Instruments. También permite comunicarse con otras tarjetas mediante el puerto
paralelo o serial, utilizando la herramienta LabWindowsCVI de N.I.

3.10-.SIMULACIONES COMO HERRAMIENTA DE CAPACITACIÓN

Las simulaciones tienen una larga trayectoria en la capacitación de aptitudes prácticas


y su popularidad está incrementando cada vez más. Situaciones concretas son
reconstruidas en un contexto “real virtual” bajo condiciones de prueba y permiten
experimentar y solventar problemas de una manera más segura, más sencilla, más
rápida y a veces hasta más económica que en la vida real.

Cambiar la realidad por la virtualidad

¿Por qué querría alguien reemplazar el mundo real por una versión falsa del
mismo? Esencialmente, hay al menos tres razones para hacerlo:

1. Seguridad. El mundo real es peligroso. Los estudiantes no deberían arriesgar


su vida (o la de otras personas) o asustarse en el proceso de aprender su oficio.

2. La simplicidad, facilidad y compresión de tiempo que se logran con la


versión "virtual" de la capacitación.

3. Economía. Las simulaciones pueden ser menos costosas que aprender en el


mundo real. Las simulaciones pueden ahorrar costosos laboratorios.
Capítulo 4 Aplicaciones en Labview 59

4
Aplicaciones en Labview
4.1-.INTRODUCCIÓN

La finalidad de este desarrollo es introducir nuevas metodologías de aprendizaje


utilizando las nuevas herramientas de programación gráfica que constituyen lo que se
conoce como instrumentación virtual.

Las mejores posibilidades para aprovechar las ventajas que ofrece la


instrumentación virtual se encuentran en la implementación de laboratorios. Como se
ha señalado, ella permite la realización de sistemas de medición basados en la PC,
que hacen posible a los ingenieros, profesores, investigadores y estudiantes resolver
problemas de ingeniería o de las ciencias naturales.

Así como una hoja de cálculo le permite a un administrador solucionar


problemas de administración, la instrumentación virtual es también una solución a los
problemas de costos y obsolescencia de los equipos en los laboratorios. Reemplazar
los instrumentos tradicionales por instrumentos virtuales que se ejecutan en
computadoras, permite que las funciones de los mismos vayan a la par del desarrollo
de nuevas tecnologías de las computadoras, cuyos costos siguen una tendencia
decreciente. Los laboratorios son un elemento clave en la formación integral y
actualizada de un ingeniero. Los avances tecnológicos de los últimos años han
abierto posibilidades para cambiar la estructura rígida de los laboratorios
tradicionales, por una estructura flexible que se apoya en las computadoras, circuitos
de acondicionamiento, hardware de adquisición de datos y software. Constituyen
todos estos elementos la plataforma sobre la cual se desarrolla la instrumentación
virtual. Se puede afirmar que, cada año, aumenta el número de universidades que se
acogen a esta propuesta de laboratorios virtuales. [17]
Capítulo 4 Aplicaciones en Labview 60

Figura 4. 1 Panel frontal del PID.

 Escoger un Digital Indicador en la paleta Numeric, cuyo nombre será


Salida Y(s) y su finalidad será la de poder visualizar el valor de salida.

4.2.2-.DIAGRAMA DE BLOQUES

A continuación se detallan todos los pasos para la creación de la librería PID:

 Derivada del tiempo: Esto se consigue haciendo la división del tiempo del PC
por una base de tiempo en este caso 1000.

Después lo que se hace es restar el tiempo anterior con el tiempo actual que es
el resultado de hacer la operación anteriormente explicada, así se obtiene el
incremento del tiempo transcurrido.

Por último se compara si el tiempo transcurrido es más grande que 0.04 que
es el incremento de tiempo que se ha usado para pintar por pantalla las
variaciones de la señal y si es más grande se toma como derivada de tiempo
este valor en casos contrario se toma el valor de 0.04.
Capítulo 4 Aplicaciones en Labview 61

 Acción proporcional: se realiza usando dos operadores numéricos (un


multiplicador y un restador). El restador se usa para ver el error que hay en el
sistema. Esto se consigue restando la señal de entrada del PID y la señal de
realimentación. Una vez que se tiene el error se multiplica esta señal por la Kp
introducida por el usuario y así se logra obtener la acción proporcional.

Figura 4. 2 Diagramas de Bloques para obtener la derivada del tiempo.

Figura 4. 3 Diagramas de Bloques para obtener el error.


Capítulo 4 Aplicaciones en Labview 62

Figura 4. 4 Diagramas de Bloques para obtener acción proporcional.

(4.1)

 Acción derivativa: se usan tres operadores numéricos (un multiplicador, un


divisor y un restador). El restador se usa para encontrar la derivada del error,
esto se consigue restado el error actual con el error previo.

Una vez que se halla el incremento del error lo que se calcula es la derivada
del tiempo.

Por último una vez obtenida dE y dT, se deriva dE con dT y así se obtiene la
derivada del error, luego se multiplica por la Kd introducida por el usuario y
así se obtiene la acción derivativa.

(4.2)
Capítulo 4 Aplicaciones en Labview 63

Figura 4. 5 Diagramas de Bloques para obtener acción derivativa.

 Acción integral: se usan dos operadores numéricos (dos multiplicadores). Se


multiplica el error del sistema por la derivada del tiempo y con esto se obtiene
la integral del error. Luego se multiplica la integral del error por la Ki
introducida por el usuario y así se obtiene la acción integral.

(4.3)
 Luego se suman las tres acciones anteriores y se compara si la señal de salida
está dentro de unos límites que son los correctos para que la aplicación
funcione correctamente.

Figura 4. 6 Diagramas de Bloques para obtener PID.


Capítulo 4 Aplicaciones en Labview 64

4.2.3-. APLICACIÓN EJEMPLO UTILIZACIÓN LIBRERÍA PID.


En la figura 4.7 se presenta el panel frontal de la aplicación que utiliza la librería PID
desarrollada.

Figura 4. 7 Panel frontal aplicación con PID.

En la figura 4.8 se presenta el diagrama de bloques de la aplicación, se observa


dentro de este agradable gráfico la librería PID desarrollada.

Figura 4. 8 Diagrama de bloques aplicación con PID.


Capítulo 4 Aplicaciones en Labview 65

La librería PID está conectada con el resto de los componentes del circuito. A
continuación se comentará la aplicación: los dos menús más importantes son los que
definen el tipo de señal y el tipo del sistema. Si se selecciona con el cursor el menú
desplegable de Set point se observan las diversas formas de ondas que se pueden
obtener como entrada de la aplicación.

Figura 4. 9 Menú del Set Point.

Se tiene hasta 7 tipos diferentes de entrada para poder escoger. Para el ejemplo
se selecciona una entrada manual para hacer un control más sencillo a la hora de
visualizar la aplicación.

El otro menú a comentar, permite seleccionar el tipo de planta a simular

Figura 4. 10 Menú de tipo de planta.

Se tienen dos tipos de plantas a escoger una planta de primer orden y una planta
de segundo orden. A la hora de simular se puede observar como escogiendo un tipo
de planta u otra nos da un valor diferente a la salida del proceso.

En la siguiente figura se observa donde hay que insertar los valores para
sintonizar el PID de la aplicación.
Capítulo 4 Aplicaciones en Labview 66

Figura 4. 11 PID

Hay 5 parámetros a insertar. Estos corresponden a la acción proporcional (P),


acción integral (I), acción derivativa (D), límite superior (Upper Limit) y límite
inferior (Lower Limit). A continuación se observan las gráficas de entrada,
realimentación y salida luego de la simulación.

4.2.4-.FUNCIONAMIENTO

Una vez comentados todos los aspectos importantes de la aplicación se realizan dos
ejemplos de nuestro sistema en funcionamiento. Se va a colocar un sistema de primer
orden con una entrada manual y se observa la respuesta en régimen transitorio.

Figura 4. 12 Respuesta transitoria de la aplicación.


Capítulo 4 Aplicaciones en Labview 67

Seguidamente se observa la respuesta en régimen permanente

Figura 4. 13 Respuesta en régimen permanente.

4.3-.SOFTWARE TOOLKITS PARA CONTROL DE PROCESOS

El software Labview 7.1 no ofrece por defecto librerías PID. Es necesario instalar las
librerías PID que ofrece Nacional Instrument en su Toolkit.

Figura 4. 14 Librería de PID del Toolkit de Labview.

En la figura 4.15 se presenta un ejemplo usando estas librerías.


Capítulo 4 Aplicaciones en Labview 68

Figura 4. 15 Ejemplo de Librería de PID del Toolkit de Labview.

Figura 4. 16 Respuesta de salida de la simulación de PID

4.4-.SOFTWARE CONTROL DESIGN TOOLKIT


Adicionalmente existe un toolkit de diseño de control en Labview. Permite introducir
la función de transferencia del sistema, así como también visualizar el diagrama de
bode, lugar geométrico, observar la respuesta del sistema, obtener el modelo de la
planta etc. En la figura 4.17 se presenta el ambiente de trabajo. Se van adicionando
las componentes para armar el proceso a simular (Add step).
Capítulo 4 Aplicaciones en Labview 69

Figura 4. 17 Control design toolkit de Labview.

Para la función de transferencia se insertan los índices de los polinomios del


numerador y denominador respectivamente.

Figura 4. 18 Respuesta del sistema de primer orden.


Capítulo 5 Interfaz Gráfica Lavpaie 70

5
Interfaz Gráfica Lavpaie
5.1-.INTRODUCCIÓN

En este proyecto se desarrolló una interfaz gráfica en MATLAB® 7.0, para analizar el
desempeño de los lazos de control. En la interfaz gráfica LAVPAIE se puede:
introducir la función de transferencia de la planta, seleccionar el controlador y sus
parámetros, desplegar la curva de respuesta en el tiempo operando como
servomecanismo y como regulador. También permite mostrar el lugar geométrico de
las raíces y el diagrama de Bode. Se puede realizar la identificación de un modelo
para la planta, y seleccionar diferentes métodos de sintonización del controlador. Así
como también se incorpora la herramienta de trabajo sisotool. Finalmente, se elaboró
un Manual de Usuario (ver Anexo A) del programa desarrollado para facilitar su
utilización.

5.2-.CREACIÓN DE INTERFACES GRÁFICAS (GUI)

La interfaz gráfica de usuario que se diseñó en MATLAB, aprovecha el conocimiento


que posee la persona que trabaja en el entorno Windows. Los controles utilizados
presentan las mismas propiedades que se suelen identificar en un programa o
aplicación desarrollado para funcionar en dicho sistema operativo. Las GUI se
almacenan en el disco duro por medio de dos tipos de archivo. El primero tiene la
extensión .fig y contiene la descripción completa de la figura contenedora y los
componentes que sobre ella se trazan.

Esto implica que, cualquier variante en la forma de un botón o un cuadro de


texto representa un cambio en el archivo .fig. El segundo tipo de archivo, posee el
código que controla la GUI, como lo es, por ejemplo, la subrutina ligada al evento de
presionar un botón o al manejo de la pestaña de una barra de desplazamiento.
Capítulo 5 Interfaz Gráfica Lavpaie 71

En la tabla 5.1 se presenta la lista de objetos con los cuales se cuenta para realizar la
creación de la interfaz gráfica de usuario en MATLAB.

Tabla 5. 1 Objetos disponibles para la creación de una GUI


Objeto Nombre Función

Realiza una vez la función


Push Button programada cuando el
usuario lo presiona.
Efectúa una acción
programada. Puede ser
ejecutado presionando sobre
Radio Button éste con el ratón, y puede ser
desactivado de la misma
manera..
Se utiliza para introducir o
Edit Text modificar caracteres que
funcionan interactivamente
con el programa.
Su utilidad radica en la
creación de textos estáticos
Static text tales como títulos, etiquetas,
direcciones o valores
asociados con las barras de
desplazamiento.
Se puede configurar para el
desplazamiento de una
región. Se ejecutan
Slider bar deslizando la pestaña.
Capítulo 5 Interfaz Gráfica Lavpaie 72

UI panel Se utiliza para enmarcar otros


objetos dentro de la ventana y
para agrupación de las
funciones.

Tabla 5.1 Objetos disponibles para la creación de una GUI (continuación).

Objeto Nombre Función

Permiten al usuario
seleccionar uno o más
Listbox términos de la lista.

Muestran una lista de


opciones que se pueden
Popup Menu seleccionar. Al contrario de
los cuadros de listas,
solamente se puede
seleccionar uno a la vez.

Habilita al GUI para


desplegar gráficos. Como
Axes cualquier objeto gráfico, éste
tiene propiedades que se
pueden cambiar.

5.3-.GUÍA PARA LA CREACIÓN DE LA INTERFAZ GRÁFICA

Los siguientes pasos ayudan a la formación de la interfaz gráfica:

 Se inicia el programa Matlab

 En la línea de comando en la ventana de comando se introduce la instrucción


GUIDE. Esta función despliega la interfaz gráfica para la creación de la GUI.
Al iniciar la instrucción GUIDE se carga la ventana llamada GUIDE Quick
Start en la cual se selecciona la opción Blank GUI y se presiona el botón de
Capítulo 5 Interfaz Gráfica Lavpaie 73

OK. Esto inicia la ventana de diseño de formulario creando un archivo .fig


con el que se puede trabajar.

 Ahora se inicia la introducción de los objetos al área de diseño trasladando el


icono del objeto a trasladar al área de diseño.

 Una vez que el diseño está listo, esto es, que todos los objetos requeridos
hayan sido agregados y ordenados sobre el objeto contenedor (figura) según
convenga, entonces, se procederá a programar.

Inmediatamente se crea un archivo M que contendrá todo el código necesario


para ejecutarla, incluyendo las declaraciones de funciones que se programan referente
a los objetos creados.

5.4-.DISEÑO DE LA INTERFAZ LAVPAIE

En el diseño de la interfaz se buscó la manera más cómoda de agrupar las diversas


funciones requeridas en una misma ventana, para que el usuario tuviera un acceso
rápido a cada una de ellas, permitiendo un alto grado de interactividad, de modo que,
además de obtener resultados, estos pudiesen ser trasladados fuera del programa para
su uso en documentos y otras aplicaciones.

Se buscó crear un interfaz gráfica amigable, y estéticamente agradable la cual,


aún para usuarios ajenos o no muy habituados a las aplicaciones de control
automático, permitiera manejar las opciones más básicas del programa sin tener que
lidiar con mayores inconvenientes.

Para el ingreso de la función de transferencia de la planta se decidió tomar en


cuenta plantas de diversos tipos de orden con la opción de que pudieran o no poseer
tiempo muerto. Es así como se estableció trabajar con:

 Planta de primer orden

 Planta de primer orden más tiempo muerto


Capítulo 5 Interfaz Gráfica Lavpaie 74

 Planta de segundo orden

 Planta de segundo orden más tiempo muerto

 Planta de orden cualquiera (superior a dos)

 Planta de orden cualquiera (superior a dos) más tiempo muerto

En la figura 5.1 se observa el detalle de la ventana principal donde se


introducen los parámetros de la planta, con el menú desplegable de las opciones a
escoger (figura 5.2).

Figura 5. 1 Ventana principal del programa LAVPAIE


Capítulo 5 Interfaz Gráfica Lavpaie 75

Figura 5. 2 Ventana de determinación de la planta

Para los primeros cuatro casos, el ingreso de la ganancia y constantes de tiempo


se harán de forma automática a través de los parámetros kp, Tau1 y Tau2. En las
opciones quinta y sexta respectivamente, el numerador y el denominador se
ingresarán de forma vectorial (coeficientes de s), por lo que es posible abarcar plantas
de cualquier orden, planteando una alternativa al ingreso por parámetros de las
primeras cuatro opciones. De esta manera el usuario podrá, aunque no sea una
práctica común, ampliar el alcance de la herramienta para plantas de orden superior y
paralelamente podrá trabajar con plantas de primer o segundo orden.

Seguidamente, se desarrolló en la ventana la sección del controlador, de tal


manera que se puedan estudiar los efectos que la aplicación de los mismos tienen
sobre la respuesta del sistema de control. Los controladores a ser seleccionados son:

 Controlador P

 Controlador PI

 Controlador PD

 Controlador PID-Ideal.

Para cada uno de ellos se pueden seleccionar sus diferentes parámetros, como
son las ganancias, tiempos integral y derivativo, si los hubiese para el controlador
especificado. Se puede decir que cada parámetro se habilita o deshabilita según el
Capítulo 5 Interfaz Gráfica Lavpaie 76

controlador seleccionado. En la figura 5.3 se observa el menú desplegable de la


pantalla principal con las diversas opciones de controladores a escoger.

Figura 5. 3 Detalle de ventana principal selección del controlador


En este punto, se tienen ya definidos tanto la planta como el controlador. Ahora,
se pueden aplicar las diversas técnicas para el análisis del desempeño y la robustez
del sistema de control. Las herramientas de análisis incluidas en el programa son:

 Respuesta al escalón y al impulso de la planta.

 Respuesta al escalón del sistema controlado, tanto en funcionamiento como


servomecanismo y regulador, con sus parámetros respectivos.

 Diagrama de Bode del sistema, con sus márgenes de ganancia y fase


respectivos.

 Diagrama de Nyquist del sistema de control.

 Lugar Geométrico de las Raíces.

 Índices de Robustez.

 Curvas de Robustez

Debido a la cantidad de opciones disponibles, se decidió mostrar en la pantalla


principal sólo las que de forma más intuitiva, daban una idea inmediata de la
estabilidad del sistema, esto es, las respuestas al escalón y al impulso de la planta, así
como la respuesta al escalón del sistema en su operación como servomecanismo y
como regulador. Los parámetros de la respuesta están presentados en una lista, en la
cual se presentarán los márgenes de ganancia y fase y los índices de robustez. En la
figura 5.4 se aprecia el cuadro de lista con las opciones anteriormente mencionadas.
Capítulo 5 Interfaz Gráfica Lavpaie 77

Figura 5. 4 Listado con parámetros de la respuesta


Los gráficos de Bode, Nyquist, LGR y Curvas de Robustez, serán presentados
en ventanas independientes, dispuestas a partir de la acción de un botón individual
para cada una. Asimismo, para facilitar la comparación entre varios sistemas, se
introdujo la opción del traslape de gráficas, donde se puede observar el cambio
producido en el comportamiento del sistema cuando se varía alguno de sus
parámetros. El gráfico de las respuestas en el tiempo se realiza de forma ajustable,
mediante un vector de tiempo independiente, por si se presentasen plantas con
respuestas muy rápidas o muy lentas, de modo que pudiesen ser observadas en parte o
en su totalidad.

5.5-.PROGRAMACIÓN

5.5.1 -.SELECCIÓN DE ELEMENTOS Y ASIGNACIÓN DE ETIQUETAS

Partiendo entonces del diseño de interfaz que se muestra en la figura 5.1, a cada
elemento dinámico de la interfaz se le asignó un identificador (tag) independiente,
con el fin de hacer más sencillo el manejo de cada uno de ellos.

Asimismo, los diversos elementos se agruparon según la etapa a la que les


corresponde. Las asignaciones de etiquetas para cada etapa se presentan en las tablas
5.2 a la 5.8. No se le asignaron etiquetas a elementos que fueran invariables durante
la ejecución del programa. Las etiquetas correspondientes a los elementos de menú se
presentan en la tabla 5.9.
Capítulo 5 Interfaz Gráfica Lavpaie 78

Tabla 5. 2 Asignación de etiquetas para los elementos etapa de introducir planta

Elemento Etiqueta
Listado tipos planta lista_planta
Cuadro ganancia planta edit_kp
Cuadro constante de tiempo Tau1 edit_tau1
Cuadro constante de tiempo Tau2 edit_tau2
Cuadro constante de tiempo muerto edit_tm
Cuadro ingreso numerador edit_numerador
Cuadro ingreso denominador edit_denominador
Botón aplicar cambios plant_ok
Tabla 5. 3 Asignación de etiquetas para los elementos de la etapa de introducir controlador

Elemento Etiqueta
Listado tipos controlador controladores_lista
Cuadro ganancia controlador edit_kc
Cuadro constante de tiempo integral edit_ti
Cuadro constante de tiempo derivativo edit_td
Cuadro constante de tiempo muerto edit_tm

Tabla 5. 4 Asignación de etiquetas de texto para controlador


Elemento Etiqueta
Texto ganancia planta text_ganancia
Texto constante de tiempo integral text_ti
Texto constante de tiempo derivativo text_td
Botón aplicar cambios controlador_ok

Tabla 5. 5 Asignación de etiquetas para respuesta de la planta


Elemento Etiqueta
Texto ganancia de la planta text_planta_kp
Texto de constante de tiempo Tau1 text_planta_tau1_po
Texto de constante de tiempo Tau2 text_planta_tau2_po
Texto numerador planta text_tf_numerador
Texto denominador planta text_tf_denominador

Tabla 5. 6 Asignación de etiquetas para botones varios

Elemento Etiqueta
Botón Simular graficar
Botón Borrar borrar

Tabla 5. 7 Asignación de etiquetas características del sistema


Elemento Etiqueta
Capítulo 5 Interfaz Gráfica Lavpaie 79

Cuadro de parámetros de la respuesta listbox_parámetros


Título eje 1 text_eje1
Título eje 2 text_eje2
Eje 1 axes1
Eje 2 axes 2
Vector tiempos vector_tiempos
Botón pantalla completa eje 1 gráfico_escalón
Botón pantalla completa eje 2 gráfico_impulso

Tabla 5. 8 Asignación de etiquetas características adicionales del sistema

Elemento Etiqueta
Botón Diagrama de Bode gráfico_bode
Botón Diagrama de Nyquist gráfico_nyquist
Botón Diagrama de Lugar gráfico_lgr
Geométrico de las Raíces
Botón Diagrama Curva de Robustez gráfico_robustez
Cuadro sobreponer gráficas overlay_all

Tabla 5. 9 Asignación de etiquetas para los elementos de menú

Elemento Etiqueta
Menú Simular menú_graficar
Menú Borrar menú_borrar
Menú obtener modelo menú_identificar
Menú sintonización del controlador menú_sintonizar
Menú exportar parámetros menú_exportar
Menú salir menú_salir
Menú Ayuda Menú_manual de usuario
Menú fuzzy Menú_fuzzy
Menú sisotool menú_sisotool
Menú simulink menú_simulink
Menú Ident menú_ident

5.5.2 -.PROGRAMACIÓN DE LOS ELEMENTOS

Habiendo definido los identificadores para cada elemento, se realizó la programación


individual para cada uno con los que el usuario tendrá interacción. Se partió en el
Capítulo 5 Interfaz Gráfica Lavpaie 80

mismo orden en que se ejecuta el programa, suponiendo la utilización de todos sus


elementos y opciones de menú.

5.5.2.1 -.INTRODUCCIÓN Y ACTUALIZACIÓN DE LA PLANTA

Se buscó que el usuario pudiera no solamente introducir la función de transferencia


sino también observar el tipo de función de transferencia que estuviera
personalizando, es decir, ver la fórmula general de la misma tanto antes como
después de la inserción de los parámetros. Esto se logró mediante la modificación de
elementos de texto al momento de presión del botón Aplicar. Por lo repetitivo del
código se presenta solamente una sección del mismo, dado que el resto de tipos de
planta se programan de forma similar ver anexo B.1

El código de la actualización de la función de transferencia con los valores


determinados en los cuadros de texto se presenta en el anexo B.2.

5.5.2.2 -.INTRODUCCIÓN DEL CONTROLADOR

El usuario introduce los parámetros del controlador escogido en la lista desplegable.


El código de esta etapa se visualiza en el anexo B.3.

5.5.2.3 -.BOTÓN SIMULAR

Dados los parámetros de la planta y el controlador, la ejecución de las funciones más


importantes del programa se realizan a través del botón Simular. Éste tiene la función
de importar los datos de la planta y controlador seleccionados, graficar sus respuestas
en el tiempo (determinado por el vector de tiempo), obtener los parámetros de dicha
respuesta, obtener los márgenes de magnitud y fase, el valor de la sensibilidad, y los
valores de los índices de desempeño y robustez del sistema.

Luego de definir las variables, la función revisa los campos de texto con el fin
de encontrar errores. Si los encuentra, deshabilita las opciones hasta que el error sea
corregido. Seguidamente, define el sistema dada la planta y el controlador, y genera
Capítulo 5 Interfaz Gráfica Lavpaie 81

las funciones de transferencia de lazo abierto y lazo cerrado (con y sin tiempo
muerto) que serán invocadas en las restantes secciones del programa y de la misma
función.

Luego se calcula la sensibilidad del sistema, así como su respuesta al escalón y


al impulso, o al escalón como servomecanismo y regulador. De dichas respuestas se
calculan los parámetros (tiempo al pico, de asentamiento, de levantamiento,
sobrepaso, etc.) y se exportan al objeto lista de parámetros de la respuesta. A esta
misma lista se le añaden la sensibilidad, los márgenes de ganancia y fase, la
información última y los índices de robustez.

Finalmente se habilitan el resto de botones y opciones de menú para las


operaciones adicionales. El código de esta función se presenta en el anexo B.4.

5.5.2.4 -.CARACTERÍSTICAS DE LA RESPUESTA

Una vez presentados los valores de respuesta en el tiempo y sus afines, se habilitan
los botones y opciones de menú para observar las diferentes respuestas del sistema en
frecuencia, así como su lugar geométrico de las raíces y su curva de robustez .Cada
una de las funciones se grafica en una ventana independiente. El ciclo de colores
presentado en las funciones anteriores se mantiene con las figuras, a fin de mantener
correspondencia entre los diversos sectores del programa.

5.5.2.4.1-.GRÁFICO ESCALÓN DE LA PLANTA / RESPUESTA AL


ESCALÓN DEL SERVO.

Para esta función se utilizó el mismo procedimiento de la elaboración del gráfico de


la respuesta en el conjunto de ejes axes1. Varían pocos argumentos dado que la
respuesta será graficada no en el objeto determinado si no en una ventana
independiente, el código de esta función se presenta en el anexo B.5.
Capítulo 5 Interfaz Gráfica Lavpaie 82

5.5.2.4.2-.GRÁFICO IMPULSO DE LA PLANTA / RESPUESTA AL ESCALÓN


COMO REGULADOR.

Para esta función se empleó el mismo procedimiento con la elaboración del gráfico en
el conjunto de ejes axes2; varían pocos argumentos dado que la respuesta será
graficada no en el objeto determinado sino en una ventana independiente. El código
de esta función se visualiza en el anexo B.6.

5.5.2.4.3-.DIAGRAMA DE BODE

Se calculó el Diagrama de Bode del sistema de control en una ventana independiente.


Los márgenes de magnitud y fase se muestran tanto en el diagrama como también en
la lista de parámetros de la respuesta. El código de esta función se presenta en el
anexo B.7.

5.5.2.4.4-.LUGAR GEOMÉTRICO DE LAS RAÍCES

Se trazó el lugar geométrico de las raíces del polinomio característico en una ventana
independiente. El código de esta función se presenta en el anexo B.8.

5.5.2.4.5-.GRÁFICO DE NYQUIST CON CÍRCULO DE SENSIBILIDAD


MÁXIMO

Se trazó el diagrama de Nyquist en una ventana independiente. A éste se le agregó el


Círculo de Sensibilidad Máxima, centrado en -1 (tangente a la gráfica polar), cuyo
radio es el inverso de la sensibilidad del sistema. Además, muestra el valor de la
Sensibilidad Máxima en el gráfico. El código de esta función se presenta en el anexo
B.9.

5.5.2.4.6 -.CURVA DE ROBUSTEZ


Capítulo 5 Interfaz Gráfica Lavpaie 83

Se traza la curva de robustez del sistema en una ventana independiente. El código


empleado fue el utilizado por el programa PILAC [6]. El código de esta función se
presenta en el anexo B.10.

5.5.2.4.7 -. PROGRAMACIÓN DE MENÚS

Como parte del programa mediante la interfaz gráfica, se proporciona una vía alterna
para acceder a la mayoría de funciones del programa. A pesar de que no se sustituye
la totalidad de las funciones, el poder contar con atajos de teclado (teclas abreviadas)
hace que mediante una combinación de teclas, se puedan realizar acciones de forma
más rápida que arrastrando el puntero del ratón.

Además, entre las selecciones de menú se incorporan tres opciones adicionales


para complementar las presentadas en la pantalla principal. La primera de ellas es la
habilidad de exportar los parámetros de respuesta de la planta a cualquier editor de
texto. La segunda incorpora métodos de identificación de un modelo para la planta.
La tercera incorpora métodos de sintonización para la planta.

Así como también se pueden acceder a las herramientas de Matlab: Ident,


Fuzzy y Simulink desde el programa desarrollado.

Una gran parte de los objetos de menú invocan la misma función que el botón
correspondiente en la interfaz. Es decir, que la opción Simular del menú invoca la
misma función que el botón Simular de la interfaz gráfica. El código para invocar
una función definida se muestra en el anexo B.11.

5.5.2.4.8 -.OBTENCIÓN DE UN MODELO PARA LA PLANTA

Calcula modelos basados en diversos métodos, como son el de la tangente, la


tangente modificada, dos puntos de Smith y 1/4-3/4 de Alfaro tanto para primer orden
con tiempo muerto como para segundo orden con tiempo muerto.
Capítulo 5 Interfaz Gráfica Lavpaie 84

La función hace el llamado a Gp, calcula los parámetros del modelo


seleccionado, carga los valores a los cuadros de texto correspondiente, actualiza la
función de transferencia de la planta y grafica la respuesta junto con la respuesta del
sistema anterior para hacer más sencilla la comparación.

Los nuevos valores son resaltados para que el usuario tenga noción de los
resultados presentados [12]. El código de esta etapa del programa se presenta en el
anexo B.12.

5.5.2.4.9 -.SINTONIZACIÓN DEL CONTROLADOR

Utiliza una metodología similar a la identificación de un modelo de la planta para


calcular los parámetros de sintonización de los controladores. Mediante éste, dado el
modelo de la planta, se pueden calcular modelos basados en diversos métodos, como
son el de Ziegler y Nichols, López, Rovira y Alfaro, tanto para servomecanismo
como para regulador.

La función hace el llamado a Gp y calcula los parámetros de identificación del


modelo seleccionado; con base en éstos resultados, calcula los parámetros del método
de sintonización, carga los valores a los cuadros de texto correspondiente (tanto para
la planta como para el controlador), actualiza la función de transferencia de la planta
y grafica la respuesta junto con la respuesta del sistema anterior para hacer más
sencilla la comparación.

Los nuevos valores son resaltados para que el usuario tenga noción de los
resultados presentados. El código de está función se presenta en el anexo B.13.

5.5.2.4.10 -.EXPORTAR PARÁMETROS A UNA LISTA

Los contenidos de la lista son concatenados en una línea de texto que se puede pegar
en cualquier editor de texto y acomodar para que se tenga un registro de los
parámetros de la respuesta. El código de está función se presenta en el anexo B.14.
Capítulo 5 Interfaz Gráfica Lavpaie 85
Capítulo 6 Pruebas y Resultados 86

6
Pruebas y Resultados
Se buscó en esta etapa realizar un análisis del comportamiento de las
diversas funciones del programa, así como también validar sus
resultados. Para lo cual se utilizaron plantas proporcionadas por el
Profesor Víctor Alfaro Ruiz [3] y se cotejaron con los resultados
obtenidos con el programa desarrollado. Se inició con la ejecución del
archivo laboratoriovirtual.fig desde la línea de comando principal.

6.1 -.PLANTA SIN TIEMPO MUERTO

Se utilizó una planta sin tiempo muerto para mostrar con mayor claridad las
respuestas al escalón y al impulso de la planta. Se introdujeron primero los
parámetros de la planta en los espacios correspondientes, y se presionó el botón
Aplicar, luego Simular.

En la figura 6.1 se muestran los cuadros con los parámetros Kp, Tau1 y Tau2 de
la planta, así como la función de transferencia de la planta con la que se va a trabajar
Capítulo 6 Pruebas y Resultados 87

Figura 6. 1 Respuesta tras presionar el botón Aplicar

Figura 6. 2 Salida del programa tras presionar el botón Simular.

Figura 6. 3 Opción de menú Exportar parámetros de la respuesta

Figura 6. 4 Listado de métodos de identificación para la planta

Figura 6. 5 Resultados de primera prueba: Identificación de modelo.

6.2-.SISTEMA DE CONTROL PARA UNA PLANTA CON TIEMPO MUERTO

Se utilizó una planta con tiempo muerto para mostrar con mayor claridad los índices
de robustez y desempeño, así como la curva de robustez. La selección de los
parámetros del controlador para obtener una respuesta subamortiguada hace que se
Capítulo 6 Pruebas y Resultados 88

puedan observar también las características de sobrepaso, las características de los


tiempos (levantamiento, retardo, asentamiento) de la respuesta y otros se presentan en
la lista. Se introdujeron primero los parámetros de la planta en los espacios
correspondientes, y se presionó el botón Aplicar, luego Simular.

En la figura 6.6 se muestran los cuadros con los parámetros kp, Tau1 y Tau2 de
la planta, así como los parámetros del controlador PI y las funciones de transferencia
de la planta y del controlador actualizadas con los valores que se van a utilizar.

Figura 6. 6 Salida del programa tras presionar el botón Simular


Capítulo 6 Pruebas y Resultados 89

Presionando los botones de Pantalla Completa que se encuentran debajo de los


gráficos de respuesta en el tiempo para servomecanismo y regulador se obtienen las
mismas respuestas pero en ventanas independientes, donde pueden observarse con
mayor claridad, y donde pueden ser copiadas para ser utilizadas en procesadores de
texto y otras aplicaciones. En las figuras 6.7 y 6.8 se muestran respectivamente las
dos ventanas correspondientes a la respuesta de sistema tanto en su operación como
servomecanismo como regulador.

Figura 6. 7 Resultados de segunda prueba: Respuesta en el tiempo como servomecanismo


Capítulo 6 Pruebas y Resultados 90

Figura 6. 8 Resultados de segunda prueba: Respuesta como regulador

Se presenta ahora la lista de parámetros exportados que se obtuvieron una vez


seleccionando la opción de menú exportar y pegándolos en el editor de texto.
Capítulo 6 Pruebas y Resultados 91

Parámetros de la respuesta (acomodados manualmente)


;-------Respuesta al escalón - Servomecanismo------;
Sobrepaso máximo:71.9435 %;
Tiempo al pico:2.179 s;
Tiempo de levantamiento:0.614 s;
Tiempo de retardo:1.005 s;
Tiempo de asentamiento al 5%:15.203 s;
Tiempo de asentamiento al 2%:20.493 s;
Valor Final:1;% Error:1.9096e-012;
;-------Respuesta al escalón - Regulador------;
Error máximo:0.74699 %;
Tiempo al pico:1.312 s;
Tiempo de asentamiento al 5%:14.365 s;
Tiempo de asentamiento al 2%:19.671 s;
Valor Final:1.8697e-014;
% Error:1.8697e-012;
;------------Sensibilidad Máxima---------------;
Sensibilidad Máxima Ms:5.2271;
;---------------Márgenes-----------------;
Mtm:0.16659 seg;
MG:2.6724 dB;
MF:15.1424 deg;
Frec. corte ganancia:1.5865 rad/s;
Frec. corte fase:1.9737 rad/s;
;---------------Información última---------------;
Kpu:2.6724;
Tmu:0.66659 seg;
;--------------Indices de robustez--------------;
IRkp:1.6724;
IRtm:0.33317;
IRc:0.85264;
IRa:0.33317

Al presionar los botones de Diagrama de Bode, y Nyquist, el programa obtiene


la respuesta correspondiente al botón presionado en una ventana independiente
(figuras 6.9 y 6.10 respectivamente). Para plantas con tiempo muerto, sin embargo,
puesto que lo que se realiza es una aproximación del mismo por Padé, lo que en
Capítulo 6 Pruebas y Resultados 92

realidad se obtiene es una función de transferencia con más ceros y polos que los que
la planta realmente tiene, pero siempre manteniendo fidelidad con el comportamiento
en el tiempo de la planta.

Por esa razón se deshabilita el botón del LGR, ya que el movimiento de los
polos de lazo cerrado no corresponde con la función de transferencia.

Sin embargo, puesto que la planta ya cuenta con tiempo muerto, se puede
desplegar la curva de robustez de la misma en una ventana aparte.

En la figura 6.11 se muestra la ventana correspondiente a la curva de robustez


del sistema, se obtiene al presionar el botón Curva robustez.

Figura 6. 9 Diagrama de Bode del sistema


Capítulo 6 Pruebas y Resultados 93

Figura 6. 10 Gráfico de Nyquist con círculo de sensibilidad máxima del sistema

Figura 6. 11 Curva de robustez del sistema

6.3 -.SINTONIZACIÓN DEL CONTROLADOR


Capítulo 6 Pruebas y Resultados 94

Como característica adicional, el programa cuenta con la opción de sintonizar el


controlador mediante diversos métodos. Esta característica se encuentra dentro de las
opciones de menú.

Se realizó entonces la sintonización del controlador para una planta de segundo


orden.

Hecha ya la introducción de la planta, se procedió a graficar la respuesta de la


misma pulsando el botón Simular y obteniendo los parámetros de la misma. Una vez
obtenida la respuesta, se accedió a la opción de menú correspondiente a la
sintonización del controlador.

Una vez seleccionada, se presentó el cuadro de diálogo (figura 6.12) con los
métodos correspondientes para realizar la identificación del modelo de la planta.

Seguidamente, se presenta el cuadro de diálogo con los métodos de


sintonización (figura 6.13) correspondientes.

Cabe mencionar que por la naturaleza misma de los métodos de identificación


(figura 6.12), no todos los métodos de sintonización están disponibles.

Por ejemplo, los métodos de sintonización de Ziegler y Nichols solamente son


válidos para plantas identificadas por el método de la tangente.

Si se selecciona un método de identificación distinto al de la tangente los


métodos de sintonización de Ziegler y Nichols no se habilitan para su uso.
Capítulo 6 Pruebas y Resultados 95

Figura 6. 12 Métodos de identificación de la planta (método de Alfaro POMTM)

Figura 6. 13 Métodos de sintonización disponibles.


Capítulo 6 Pruebas y Resultados 96

Una vez seleccionado el método de sintonización deseado y presionado el botón


OK, al igual que para el proceso de métodos de identificación, se activa la opción de
Sobreponer Gráficas en la ventana principal, y se grafica la respuesta del modelo
seleccionado.

Asimismo, como se observa en la figura 6.14, se actualizan los datos de los


parámetros de la planta, resaltándolos en color verde y fuente en negrita.

En este caso la planta se identificó mediante el método de ¼ - ¾ de Alfaro para


planta de primer orden más tiempo muerto, y se sintonizó mediante el método de
López PI para regulador. En función de los requerimientos del sistema se
seleccionará el mejor conjunto de parámetros del controlador.

Figura 6. 14 Parámetros de planta y controlador actualizados.


Capítulo 6 Pruebas y Resultados 97

6.4-.IDENTIFICACIÓN DE SISTEMAS USANDO LA HERRAMIENTA


IDENT DE MATLAB

En este caso particular, la planta que se tomará como ejemplo de aplicación


comprende un motor de inducción trifásico AC y su respectivo módulo de acceso.
Con el fin de utilizar GUI para determinar el comportamiento de la planta se
utilizaron los archivos de datos suministrados por el Ing. Jorge Toquero. En la figura
6.15 puede observarse que la prueba de adquisición tuvo una duración total de 2
segundos, tiempo suficiente para conseguir la estabilidad de la planta.

Figura 6. 15 Primera prueba de adquisición de los datos de la planta

6.4.1 -.MODELO MATEMÁTICO DEL MOTOR AC

En la ventana se tiene el menú Structure, este permite escoger entre las diversas
estructuras que ofrece Ident. La estructura escogida para el cálculo del modelo fue la
ARX, es la más simple y la más semejante a una función de transferencia. Puede
notarse (figura 6.16) lo bien que se adapta el modelo recién obtenido (trazado azul) a
los datos (trazado negro) validando así el modelo de la planta.
Capítulo 6 Pruebas y Resultados 98

Figura 6. 16 Modelo validado

Para dar por concluida esta sección sólo resta obtener la función de transferencia del
modelo en forma numérica. Es necesario manipular unos cuantos comandos a través
de la ventana principal de MATLAB para conseguir el resultado final. Se inicia con la
conversión de la variable THETA usando el comando TH2TF.

>> [num,den]=th2tf(ModMejor)
num = 0.0639 0.0097 -0.1684 0.2351 -0.0479
den = 1.0000 -2.3634 2.4612 -1.2834 0.2780

Se obtiene la función de transferencia LTI con TF


>> G=tf(num,den,0.08)
Transfer function:
0.06385 z^4 + 0.009687 z^3 - 0.1684 z^2 + 0.2351 z - 0.04786
------------------------------------------------------------
z^4 - 2.363 z^3 + 2.461 z^2 - 1.283 z + 0.278

Sampling time: 0.08

Se obtiene la función de transferencia LTI en tiempo continuo.


>> Gc=d2c(G)

Transfer function:
0.06385 s^4 + 3.831 s^3 + 42.14 s^2 + 127.7 s + 4469
----------------------------------------------------
s^4 + 16 s^3 + 210 s^2 + 1370 s + 4469

Aplicando el comando STEP a la función de transferencia recién obtenida se puede


Capítulo 6 Pruebas y Resultados 99

notar que entrega la misma respuesta (figura 6.17) que la obtenida dentro del GUI
Ìdent.
Step Response
1.5

0.5

0
0 0.5 1 1.5 2 2.5 3 3.5 4
Time

Figura 6. 17 Modelo con GUI

Este desarrollo se puede visualizar en el programa al seleccionar del menú de


Herramientas de Matlab el submenú Ident (figura 6.18). Al pulsar este botón
automáticamente se está trabajando en Ident como se muestra en la figura 6.19.

Figura 6. 18 Menú herramientas de Matlab.


Capítulo 6 Pruebas y Resultados 100

Figura 6. 19 Salida del programa tras presionar el submenú Ident

6.5 -. SISOTOOL

Sisotool (SISO DESIGN TOOL) es un GUI de Matlab que permite jugar con sistemas
realimentados haciendo más sencillo el diseño de controladores para estabilizar el
sistema.

En particular uno de los gráficos que utiliza es el lugar geométrico. La


habilidad para adicionar polos y ceros gráficamente hace más fácil el trabajo del
diseño de control para una planta. En sisotool G es la planta. Los polos, ceros y
ganancia corresponden al bloque C que es la función de transferencia del controlador

Esta herramienta se puede visualizar en el programa al seleccionar del menú de


Herramientas de Matlab el submenú sisotool .
Capítulo 6 Pruebas y Resultados 101

Al pulsar este botón automáticamente se está trabajando en el ambiente de


sisotool. Se debe seleccionar en el menú desplegable de la planta la opción de F.T-
numerador y denominador. Se introduce en forma vectorial el numerador y
denominador de la planta a estudiar (figura 6.20). Luego se selecciona el submenú
sisotool (figura 6.21).

Figura 6. 20 Salida del programa para simulación con función de transferencia.

Figura 6. 21 Submenú sisotool.


Capítulo 6 Pruebas y Resultados 102

En la figura 6.22 se presenta la respuesta a escalón obtenida con la herramienta


sisotool, observando que son los mismos valores arrojados por la simulación de
Lavpaie (figura 6.23).

Figura 6. 22 Salida de la herramienta sisotool para simulación con función de transferencia.

Supóngase que se requiera diseñar un controlador para el sistema sys con la


técnica del lugar de las raíces utilizando la herramienta sisotool. Requerimiento:
obtener un sobrepico del 20% y un tiempo de establecimiento de 1 segundo.

>> sys=zpk([-2 -3],[0 -1],[1])

Zero/pole/gain:
(s+2) (s+3)
-----------
s (s+1)
Capítulo 6 Pruebas y Resultados 103

Luego de introducir la función de transferencia del sistema y pulsar el submenú


sisotool se obtiene la respuesta que se presenta en la figura 6.23.

Figura 6. 23 Salida de la herramienta sisotool para simulación de sys

Si se sitúa un polo real en el origen, la respuesta del sistema se muestra en la


figura 6.24.

Figura 6. 24 Respuesta de sys con un polo en el origen.


Capítulo 6 Pruebas y Resultados 104

Aumentando la ganancia a 123 se estabiliza el sistema y se cumple con los


requerimientos como se presenta en la figura 6.25.

Figura 6. 25 Respuesta del sistema sys con aumento de ganancia.

6.6-.COMPORTAMIENTO DE LA RESPUESTA DE SISTEMAS FÍSICOS


CON MATLAB-SIMULINK.

Si selecciona del menú herramientas de Matlab el submenú simulink,


automáticamente se tendrá acceso directamente a esta poderosa herramienta de
trabajo para simulaciones de sistemas dinámicos. El ejemplo seleccionado es el
control de velocidad de un vehículo.

El sistema consta de un modelo simple de vehículo con un controlador PI. El


modelo del vehículo se representa por la ecuación 6.1.
Capítulo 6 Pruebas y Resultados 105

dv
m  bv  Fe (6.1)
dt

Donde v es la velocidad del vehículo, m es la masa, b es el coeficiente de


amortiguamiento y Fe es la fuerza aplicada por el motor. Se asume un factor de
amortiguamiento lineal. El modelo se inicializa a una velocidad de 55 mph. Un carro
debe poder acelerar a esa velocidad en menos de 2 segundos. En la figura 6.26 se
presenta el diagrama en bloques de simulink y la respuesta del sistema.

Figura 6. 26 Modelo y respuesta del sistema de carro con simulink

6.7 -. TOOLBOX FUZZY DE MATLAB

Después de casi 30 años de investigación, la lógica borrosa ha demostrado sus


posibilidades de aplicación en Ingeniería práctica. Es ideal para el modelado y el
control de sistemas no lineales debido a sus características de ambigüedad, en
contraste con los si/no o verdadero/falso de la lógica tradicional.

El control borroso es el resultado de cuantificar el significado de las


descripciones lingüísticas del control lingüístico de la planta. Para ello se emplea la
teoría de conjuntos borrosos la cual permite establecer un vínculo entre las
Capítulo 6 Pruebas y Resultados 106

descripciones lingüísticas y las matemáticas para que éstas puedan ser manipuladas y
operarlas entre sí, permite así computar con palabras (Zadeh).

El toolbox de Fuzzy para Matlab es un entorno de programación intuitivo que


combina modelización mediante algoritmos utilizados en esta rama de la ciencia con
el diseño de herramientas de Ingeniería para el desarrollo de programas y procesos de
control inteligentes. En este toolbox se puede trabajar de dos formas:

 Mediante la utilización de un interfaz gráfico de usuario (GUI), lo que facilita


bastante el diseño.

 Mediante la utilización de comandos en línea.

El programa desarrollado permite trabajar en el entorno de fuzzy. En el menú


herramientas de Matlab seleccione el submenú fuzzy. En la figura 6.27 se muestra el
menú principal del editor FIS.

Figura 6. 27 Menú principal del editor de FIS


Capítulo 6 Pruebas y Resultados 107

El controlador de la aplicación desarrollada se almacenó en el archivo


tanque.fis. Para trabajar con el toolbox de fuzzy se debe:

Especificar las señales de entrada y salida. Para este caso se tienen: dos
variables de entrada (error y cambio de error) y una variable de salida (posición de la
válvula). Luego se debe editar las funciones de pertenencia para cada una de las
variables usando el editor de funciones Membership. Para realizar la edición debe
hacer doble clic sobre cada una de las variables. En la figura 6.28 se observa las
funciones de membresía para la variable error.

Figura 6. 28 Editor de funciones Membership

Haga doble clic sobre el bloque tanque para realizar la edición de las reglas
mediante el Editor Rule. El editor tiene varias formas de expresar las reglas en la
figura 6.29 se observa el formato de expresión más habitual.
Capítulo 6 Pruebas y Resultados 108

Figura 6. 29 Editor de Reglas.

Este toolbox cuenta también con un visor de Reglas (Rule Viewer) que permite:

 Introducir cualquier valor en su entrada y obtener la correspondiente salida.

 Proporciona una visión gráfica muy intuitiva del funcionamiento interno del
controlador.

 Observar claramente el resultado de la evaluación de cada una de las reglas.

Así como también con un visor de superficie Surface Viewer, herramienta para la
comprobación del correcto funcionamiento del sistema, se obtiene la curva Surface
Control. En las figuras 6.30 y 6.31 se observan cada uno de los visores para el
archivo tanque.fis.
Capítulo 6 Pruebas y Resultados 109

Figura 6. 30 Visor de reglas.

Figura 6. 31 Visor de superficies.


Capítulo 6 Pruebas y Resultados 110

Una vez diseñado el controlador, el resultado se guarda en un fichero *.fis. En


este caso tanque.fis

Para poder utilizar la librería de control borroso con Simulink, se debe


seleccionar el bloque Fuzzy Logic Controller. El bloque únicamente dispone de una
entrada y una salida, si el controlador borroso excede estas especificaciones es
necesario realizar una multiplexación.

Para definir el comportamiento del bloque borroso:

 Hacer doble clic.

 Se obtendrá la pantalla de configuración que pide una estructura de datos tipo


FIS.

 Dicha estructura, debe estar definida, en el espacio de trabajo de Matlab antes


de proceder a la ejecución del diagrama Simulink (figura 6.32).

Figura 6. 32 Elemento fuzzy logic controller de la librería de simulink


Capítulo 6 Pruebas y Resultados 111

En la figura 6.33 se presenta el esquema en diagrama de bloques para un sistema


tanque con controlador fuzzy en simulink

Figura 6. 33 Controlador fuzzy con un sistema de tanque en el ambiente simulink.


Capítulo 6 Pruebas y Resultados 112
Conclusiones 113
Recomendaciones 114
Bibliografía 115
Anexo A: Manual De Usuario 116
Anexo A: Manual De Usuario 117

o Lugar geométrico de las raíces.

o Curva de robustez.

 Identificar un modelo para la planta dada utilizando:

o Método de la tangente.

o Método de la tangente modificado.

o Método de dos puntos de Smith.

o Método ¼ - ¾ de Alfaro (primer orden más tiempo muerto).

o Método ¼ - ¾ de Alfaro (segundo orden más tiempo muerto).

 Sintonizar el controlador empleando:

o Método de Ziegler y Nichols.

o Método de López (IAE - Regulador).

o Método de Rovira (IAE - Servomecanismo).

o Método de Alfaro (IAE).

A.2. EJECUCIÓN DEL PROGRAMA

En esta sección se explicará de manera general cómo introducir los parámetros de una
planta a simular y el controlador que ella utilice, así como las otras opciones de
simulación y de análisis adicionales con las que cuenta el programa.

A.2.1.- INTRODUCIR PARÁMETROS DE LA PLANTA


Anexo A: Manual De Usuario 118

Pasos a seguir:

a) Seleccionar de la lista de tipos de planta aquella con la que se desea trabajar.


Se mostrará a la derecha la función de transferencia general para ese modelo.

b) Introducir los valores de los parámetros requeridos en sus casillas respectivas.

c) Presionar el botón Aplicar. Se actualizará la función de transferencia con los


valores a trabajar.

d) Ha introducido satisfactoriamente los parámetros de la planta a trabajar.

A.2.2.- INTRODUCIR PARÁMETROS DEL CONTROLADOR

La introducción de los parámetros del controlador solamente puede ser realizada una
vez seleccionado y actualizado el tipo de planta con la que se va a trabajar.

Pasos a seguir:

a) Seleccionar de la lista de tipos de controlador el que se desea trabajar.

b) Introducir los valores de los parámetros requeridos en sus casillas respectivas.

c) Presionar el botón Aplicar. Se actualizará la función de transferencia con los


valores a trabajar.

d) Ha introducido satisfactoriamente los parámetros del controlador a utilizar.

A.2.3.- GRAFICAR LA RESPUESTA DEL SISTEMA

Pasos a seguir:
Anexo A: Manual De Usuario 119

a) (Opcional) Variar el vector de tiempos (tiempo inicial: paso: tiempo final).


Nota: Si se trabajan con intervalos de tiempo muy grandes se recomienda
aumentar el paso correspondiente, para evitar largos tiempos de espera.

b) Presionar el botón Simular. Se desplegará la respuesta al impulso y al escalón


de la planta en el tiempo o bien la respuesta en el tiempo como
servomecanismo y como regulador si se está trabajando con un sistema
controlado.

c) Asimismo se habilitarán los botones y opciones de menú de características


adicionales de la respuesta, y se desplegará la lista con los diversos
parámetros de la planta o sistema.

A.2.4.- OTRAS OPCIONES

Las siguientes son las diversas opciones a las que se tiene acceso una vez graficada la
respuesta.

La disponibilidad de ellas a la hora de su utilización depende del sistema con el cual


se trabaje. Si el sistema no cuenta con tiempo muerto, no se podrá utilizar la opción
de mostrar la curva de robustez.

Asimismo, si cuenta con tiempo muerto se deshabilita la opción de mostrar el Lugar


Geométrico de las Raíces. Cabe mencionar que al trabajar solamente con una planta,
ninguno de los botones de Diagrama de Bode, Nyquist, Lugar Geométrico de las
Raíces o Curva de Robustez se encontrarán habilitados, ya que éstos requieren de un
sistema de lazo cerrado.

Botón Función
Diagrama de Bode Grafica Diagrama de Bode en ventana independiente
Nyquist Grafica Diagrama de Nyquist en ventana independiente
LGR Grafica Lugar Geométrico de las raíces en ventana
Anexo A: Manual De Usuario 120

independiente
Curva Robustez Grafica Curva de Robustez en ventana independiente
Pantalla completa Grafica la respuesta presentada en el conjunto de ejes 1
(conjunto ejes 1) ( respuesta al escalón de la planta o respuesta del sistema como
servomecanismo) en una ventana independiente
Pantalla completa Grafica la respuesta presentada en el conjunto de ejes 2
(conjunto ejes 2) ( respuesta al impulso de la planta o respuesta del sistema
como regulador) en una ventana independiente

Menú/Submenú Función
Características de la respuesta Envía los parámetros de la respuesta al portapapeles
Exporta Parámetros de la (clipboard) para ser exportados a cualquier editor de
respuesta texto.
Características de la respuesta Calcula los parámetros de identificación de un
Obtener modelo para la planta modelo de primer orden más tiempo muerto y
grafica la respuesta de la misma.
Características de la respuesta Calcula los parámetros de sintonización de la planta,
Sintonización planta para controladores P, PI, PID o PD. Los métodos de
identificada sintonización varían con el método de identificación
de la planta.

A.2.5.- EJEMPLO

En este ejemplo se abarcará de manera concreta el funcionamiento del programa,


incorporando en el mismo desde el ingreso de los parámetros de una planta de
segundo orden más tiempo muerto hasta la sintonización de un controlador para la
misma.

A.2.5.1.- Ingreso de los parámetros de la planta

Se va a trabajar con la planta


Anexo A: Manual De Usuario 121

Y el controlador

Se pueden reconocer los parámetros de la planta kp = 1, 1 = 0.5, 2 = 0.7 y tm = 0.3,


y los parámetros del controlador PI kc = 1, i=0.5.

 En el cuadro de tipos de planta, seleccionar la planta Segundo orden más


tiempo muerto. Se mostrará la función de transferencia de la misma, como se
observa en la siguiente figura:

 Introducir los parámetros en los cuadros de texto correspondientes y presionar


el botón Aplicar. Se actualizarán los valores con los insertados en los
parámetros.
Anexo A: Manual De Usuario 122

 En el cuadro de tipos de controlador, seleccionar el controlador PI.


 Introducir en los parámetros en los cuadros de texto correspondientes y
presionar el botón Aplicar. Se actualizarán los valores con los insertados en
los parámetros

 Presionar el botón Simular. El programa mostrará la siguiente salida


Anexo A: Manual De Usuario 123

 Obtener diagrama de Bode: presionar el botón correspondiente al panel


inferior de botones Diagrama de Bode La salida del programa será.

 Obtener gráfica de Curva de Robustez: presionar el botón correspondiente al


panel inferior Curva de Robustez. La salida se presenta en la siguiente figura.
Anexo A: Manual De Usuario 124

 Obtener gráfico de Nyquist con círculo de sensibilidad máxima: presionar el


botón correspondiente al panel inferior de botones Nyquist. La salida del
programa será la siguiente.

 Identificar modelo para la planta: acceder la opción de menú correspondiente


en: Características de la Respuesta >>Obtener modelo para la planta:
seleccionar el método de identificación de la planta de la lista: “Método ¼ - ¾
de Alfaro SOMTM”. Detrás del cuadro de selección se mostrará la respuesta
de la planta sin controlador. Presionar el botón OK; Se presentarán los
parámetros del modelo identificado tanto en el cuadro de lista como en la
línea de comandos de MATLAB®. La salida del programa será la siguiente.
Anexo A: Manual De Usuario 125

 Sintonización de controlador: acceder la opción de sintonización en el menú:


Características de la Respuesta >>Sintonización del controlador: seleccionar
el método de identificación de la planta de la lista: Método ¼ - ¾ de Alfaro
POMTM Seleccionar el método de sintonización del controlador de la lista:
Método de Alfaro - IAE - Controlador PID-Ideal (Regulador)
Anexo A: Manual De Usuario 126

La salida del Programa será la siguiente:


Anexo B: Código Fuente 127
Anexo B: Código Fuente 128

global l tm
global kp
global l tau1
global tau2
global nume
global deno
global s
global planta
global txttau1
global txttau2
global txtkp
global txttm
global txtnumerador
global txtdenominador
global valplanta
s=tf('s');
%Define variables con el valor de los cuadros de texto
correspondientes
kp=str2num(get(handles.edit_kp,'String'));
tau1=str2num(get(handles.edit_tau1,'String'));
tau2=str2num(get(handles.edit_tau2,'String'));
tm=str2num(get(handles.edit_tm,'String'));
nume=str2num(get(handles.edit_numerador,'String'));
deno=str2num(get(handles.edit_denominador,'String'));
%Define variables de texto con el valor de variable correspondiente
txtkp=strcat(num2str(kp));
txttau1=strcat('(',num2str(tau1),'*s+1)');
txttau2=strcat('(',num2str(tau2),'*s+1)');
txttm=strcat('-',num2str(tm),'*s');
txtnumerador=strcat('[',num2str(nume),']');
txtdenominador=strcat('[',num2str(deno),']');
%Definir objeto de texto dependiendo de la opción
valplanta=get(handles.lista_planta,'Value');
switch valplanta
case 1 %Planta 1er Orden
set(handles.text_planta_kp,'String',txtkp);
set(handles.text_planta_tau_po,'String',txttau1);
case 2 %Planta 1er Orden más tiempo muerto
set(handles.text_planta_tm,'String',txttm);
set(handles.text_planta_kp,'String',txtkp);
set(handles.text_planta_tau_po,'String',txttau1);
…….
end
set([handles.graficar,handles.controladores_lista],’Enable’,'on');
set(handles.menu_graficar,’Enable’,'on');
gp=planta;
%Guarda parámetros para acceso posterior
save ('variables_undo_planta', 'kp','tau1','tau2','tm','valplanta');

B.3.- FUNCIÓN CONTROLADORES_LISTA


Anexo B: Código Fuente 129

El siguiente fragmento de programa involucra la etapa de selección de controlador de


la lista, Se muestra el caso del controlador P; los demás controladores llevan una
programación similar.
function controladores_lista_Callback(hObject, eventdata, handles)
%Definición de variables
global gc
global kc
global ti
global td
global varcont
varcont=get(handles.controladores_lista,'Value');
%Edición formato de texto
set([handles.edit_kp,handles.edit_tau1,handles.edit_tau2,handles.edi
t_tm,handles.edit_num,handles.edit_denominador,handles.edit_kc,handl
es.edit_ti,handles.edit_td],'FontWeight','normal');
set([handles.edit_kp,handles.edit_tau1,handles.edit_tau2,handles.edi
t_tm,handles.edit_numerador,handles.edit_denominador,handles.edit_kc
, handles.
edit_ti,handles.edit_td],'ForegroundColor',[0 0 0]);
val1=get(handles.controladores_lista,'Value');
switch val1 %Define f.t. acorde con el controlador
case 1 % Sin Controlador
set(handles.edit_kc,'Enable','off');
set(handles.edit_td,'Enable','off');
set(handles.edit_ti,'Enable','off');
case 2 %Controlador P
%habilita y deshabilita cuadros texto para modificar
set(handles.edit_kc,'Enable','on');
set(handles.edit_td,'Enable','off');
set(handles.edit_ti,'Enable','off');
case 3
...
end
%Habilitación y deshabilitación de botones
set(handles.graficar,’Enable’,’off’);
set(handles.menu_graficar,’Enable’,’off’);
set(handles.controlador_ok,’Enable’,'on');

B.4.- FUNCIÓN GRAFICAR

El fragmento de código siguiente muestra a grandes rasgos la implementación de


estas opciones. Toda redundancia fue excluida con el fin de expresar de forma más
clara la programación realizada.
% --- Executes on button press in graficar.
function graficar_Callback(hObject, eventdata, handles)
Anexo B: Código Fuente 130

%Definición de variables a utilizar


global gp
...
global valcontrolador
%Revisa campos de código para evitar errores
user_entry_1=str2double(get(handles.edit_kp,’String’));
...
if isnan(user_entry_1)
errordlg('Ganancia planta - Debe ingresar un valor
numerico','Error','modal')
set([handles.graficar,handles.controladores_lista,handles.controlado
r_ok,handles.planta_ok],’Enable’,’off’);
set(handles.menu_graficar,’Enable’,’off’)
elseif isnan(user_entry_2)
...
elseif (user_entry_10 < 0.05 | user_entry_10 > 0.2)
errordlg('Debe ingresar un valor entre 0.05 y 0.2 (0.1 – más
frecuente)','Error','modal')
set([handles.graficar,handles.controladores_lista,handles.controlado
r_ok,handles.planta_ok],’Enable’,’off’);
set(handles.menu_graficar,’Enable’,’off’)
set([handles.graficar,handles.controladores_lista,handles.controlado
r_ok,handles.planta_ok],’Enable’,’off’);
set(handles.menu_graficar,’Enable’,’off’)
stop
else %Si no se presentan errores, continúa con la función
s=tf('s');
valplanta=get(handles.lista_planta,'Value');
switch valplanta %Definir la planta dependiendo de la opción
case 1 %Planta 1er Orden
case 2 %Planta 1er Orden más tiempo muerto
kp=str2num(get(handles.edit_kp,'String'));
tau1=str2num(get(handles.edit_tau1,'String'));
tm=str2num(get(handles.edit_tm,'String'));
[num,den]=pade(tm,20); %Ajuste tiempo muerto por padé orden 20
gt=tf(num,den);
gp_pade=gt*(kp/(tau1*s+1));
gptm=kp/(tau1*s+1);
gp_delay=gptm;
gp_delay.outputdelay=tm;
case 3
...
end
valcontrolador=get(handles.controladores_lista,'Value');
switch valcontrolador %Definir el sistema dependiendo del
controlador
case 1 %Sin Controlador
...
case 3 %Controlador PD
kc=str2num(get(handles.edit_kc,'String'));
td=str2num(get(handles.edit_td,'String'));
gc=kc*(td*s+1); %Ecuación del controlador
Anexo B: Código Fuente 131

mr=(gp_pade*gc)/(1+(gp_pade*gc));%F.T del servo


mz=gp_pade/(1+(gp_pade*gc)); %F.T del regulador
ftla=gc*gp_pade;
...
end
%Puesto que la curva de robustez requiere de tiempo muerto, si se
trabaja
%sin tiempo muerto, se dehabilita la opción de gráfico de robustez
if (valplanta==1 | valplanta==3 | valplanta==5)
set(handles.grafico_robustez,'Enable','off')
set(handles.menu_robustez,'Enable','off')
set([ handles.listbox_parametros,handles.borrar,handles.grafico_bode
,
handles.grafico_escalon,handles.grafico_lgr,handles.grafico_nyquist,
handles.grafico_impulso],'Enable','on')
set([handles.menu_borrar,handles.menu_graficar,handles.menu_planta,
handles.menu_sistema,handles.menu_bode,
handles.menu_nyquists,handles.menu_lgr,
handles.menu_exportar],'Enable','on');
%Debido al uso de padé para aproximar el tiempo muerto, se exlcuye
el lugar geométrico de las raíces para plantas con tiempo muerto.
elseif (valplanta==2 | valplanta==4 | valplanta==6)
set(handles.grafico_lgr,'Enable','off')
set(handles.menu_lgr,'Enable','off')
set([ handles.listbox_parametros, handles.borrar,
handles.grafico_bode,
handles.grafico_escalon,handles.grafico_robustez,handles.grafico_nyq
uist,handles.grafico_impulso],'Enable','on')
set([handles.menu_borrar,handles.menu_graficar,handles.menu_planta,h
andle.menu_sistema,handles.menu_bode,handles.menu_robustez,handles.m
enu_nyquis,handles.menu_exportar],'Enable','on');
end
set(handles.overlay_all,'Enable','on')
%Definición de sobreponer gráficas
if (get(handles.overlay_all,'Value')==0)
axes(handles.axes1);
hold off;
axes(handles.axes2);
hold off;
else
axes(handles.axes1);
hold on;
axes(handles.axes2);
hold on;
end
%Definición de sensibilidad
tmw=ftla.outputdelay;
ftla.outputdelay=0;
[numo,deno]=pade(tmw,20);
gt2=tf(numo,deno);
ftla=gt2*ftla;
p=1+ftla;
Anexo B: Código Fuente 132

p=1/p;
[M,F]=bode(p);
Ms1=max(M);
Ms=1/Ms1;
%Respuesta del sistema
if((get(handles.controladores_lista,'Value')==1))
%Si sólo se considera la planta, los ejes 1 y 2 grafican las
respuestas al escalón y al impulso de la misma, respectivamente.
Graficar respuesta al escalón en el eje 1
set(handles.text_eje1,'String','Respuesta al escalón');
set(handles.text_eje1,'FontSize',10);
set(handles.menu_planta,'Enable','on')
set(handles.menu_sistema,'Enable','off')
axes(handles.axes1);
t=handles.t_step;
r = step(mr,t);
t2=0:0.001:1000;
r2= step(mr,t2);
if (get(handles.overlay_all,'Value')==1)
if c==0 %si se sobreponen gráficas, se inicia el ciclo de colores
plot(t,r,'b'); %Color azul
elseif c==1
plot(t,r,'g');%Verde
elseif c==2
plot(t,r,'r');%Rojo
elseif c==3
plot(t,r,'y');%Amarillo
elseif c==4
plot(t,r,'m');%Fucsia
elseif c==5
plot(t,r,'c');%Celeste
else
plot(t,r,'k');%Negro
end
elseif (get(handles.overlay_all,'Value')==0)
c=0;
plot(t,r,'b');
end
set(handles.axes1,'XMinorTick','on')
grid on
%Graficar respuesta al impulso en el eje 2
set(handles.text_eje2,'String','Respuesta al impulso');
set(handles.text_eje2,'FontSize',10);
axes(handles.axes2);
t=handles.t_step;
z = impulse(mr,t);
if (get(handles.overlay_all,'Value')==1)
if c==0 %Inicia el ciclo de colores
plot(t,z,'b');
...
end
set(handles.axes2,'XMinorTick','on')
Anexo B: Código Fuente 133

grid on
%Actualizar valores de parámetros de la respuesta
[mp,tp,tl,tr,ta5,ta2,yu,ess]=fc_stepparam(r2,t2,1);
txtmp=strcat('Sobrepaso máximo:',num2str(mp),' %');
txttp=strcat('Tiempo al pico:',num2str(tp),' s');
txttl=strcat('Tiempo de levantamiento:',num2str(tl),' s');
txttr=strcat('Tiempo de retardo:',num2str(tr),' s');
txtta5=strcat('Tiempo de asentamiento al 5%:',num2str(ta5),' s');
txtta2=strcat('Tiempo de asentamiento al 2%:',num2str(ta2),' s');
txtyu=strcat('Valor Final:',num2str(yu));
txtess=strcat('% Error:',num2str(ess));
%Actualizar valores de márgenes de la respuesta
[Gm,Pm,Wcp,Wcg] = margin(ftla);
txtgm=strcat('Margen de Ganancia:',num2str(Gm),' uds');
txtpm=strcat('Margen de fase:',num2str(Pm),' deg');
txtwcg=strcat('Frec. corte ganancia:',num2str(Wcg),' rad/s');
txtwcp=strcat('Frec. corte fase:',num2str(Wcp),' rad/s');
%Actualizar valor de la sensibilidad
txtms=strcat('Sensibilidad Ms:',num2str(Ms1),' uds');
%Actualizar valores de información última
kpu=Gm*kp;
tmu=tm+(Pm*pi/(180*Wcg));
txtkpa=strcat('Kp:',num2str(kp));
txtkpu=strcat('Kpu:',num2str(kpu));
txttma=strcat('Tm:',num2str(tm),' seg');
txttmu=strcat('Tmu:',num2str(tmu),' seg');
%Actualizar índices de robustez
irkp=(kpu/kp)-1;
if tm==0
irtm=(tmu/tm)-1;
else
irtm=(tmu/tm)-1;
end
irc=0.5*(((irkp^2)+(irtm^2))^(1/2));
irs=[irkp,irtm,irc];
ira=min(irs);
txtirkp=strcat('I. robustez ganancia:',num2str(irkp),' uds');
txtirtm=strcat('I. robustez t. muerto:',num2str(irtm),' uds');
txtirc=strcat('I. robustez combinado:',num2str(irc),' uds');
txtira=strcat('I. robustez absoluto:',num2str(ira),' uds');
set(handles.listbox_parametros,'String',{'-------Respuesta al
escalón-Planta------,txtmp, txttp, txttl,txttr, txtta5, txtta2,
txtyu,txtess,'','------------------
Sensibilidad---------------,txtms,'','
------------------Márgenes-------------------', txtgm,txtpm,txtwcg,
txtwcp,'','--------------Información última-------------- ',txtkpa,
txtkpu, txttma,txttmu,'', '—------------Indices
derobustez-------------',txtirkp,txtirtm,txtirc,txtira});
else
%Si se utiliza un controlador, no se requiere graficar la respuesta
al impulso del sistema;
Anexo B: Código Fuente 134

%en ese caso grafica las respuestas al escalón operando como


servomecanismo y como regulador
%Grafica respuesta al escalón (servomecanismo) en el eje 1
set(handles.text_eje1,'String','Servo-Respuesta al escalón');
...
end
c=c+1; %Contador para el ciclo de colores
set([handles.edit_kp,handles.edit_tau1,handles.edit_tau2,handles.edi
t_tm, handles.edit_numerador, handles.
edit_denominador,handles.edit_kc,handles.edit_ti,handles.edit_td],'F
ontWeight','normal');
set([handles.edit_kp,handles.edit_tau1,handles.edit_tau2,handles.edi
t_tm,handles.edit_numerador,handles.edit_denominador,handles.edit_kc
,handles.edit_ti,handles.edit_td],'ForegroundColor',[0 0 0]);
end

B.5.- FUNCIÓN GRÁFICO_ESCALÓN


% --- Executes on button press in grafico_escalon.
function grafico_escalon_Callback(hObject, eventdata, handles)
global mr
global t_step
figure(1)
t=handles.t_step;
r = step(mr,t);
plot(t,r);
grid on;
if((get(handles.controladores_lista,'Value')==1))
title('Respuesta al escalón de la planta');
else
title('Respuesta al escalón del sistema (Servomecanismo)');
end
if (get(handles.overlay_all,'Value')==1)
hold on
else
hold off
end

B.6.- FUNCIÓN GRÁFICO_IMPULSO


% --- Executes on button press in grafico_impulso.
function grafico_impulso_Callback(hObject, eventdata, handles)
global mz
global mr
global t_impulse
global mat_color
t=handles.t_impulse;
figure(2);
if (get(handles.overlay_all,'Value')==1)
hold on;
Anexo B: Código Fuente 135

else
hold off;
end
if((get(handles.controladores_lista,'Value')==1))
z = impulse(mr,t,mat_color);
plot(t,z);
grid on
title('Respuesta al impulso de la planta');
else
z = step(mz,t);
plot(t,z);
grid on;
title('Respuesta al escalón del sistema (Regulador)');
end
if (get(handles.overlay_all,'Value')==1)
hold on;
else
hold off;
end

B.7.- FUNCIÓN GRÁFICO_BODE


% --- Executes on button press in grafico_bode.
function grafico_bode_Callback(hObject, eventdata, handles)
global ftla
if (get(handles.overlay_all,'Value')==1)
figure(3);
title('Diagrama de Bode');
hold on;
margin(ftla);
grid on;
else
figure(3);
title('Diagrama de Bode');
hold off;
margin(ftla);
grid on;
end

B.8.- FUNCIÓN GRÁFICO_LUGAR_GEOMÉTRICO


% --- Executes on button press in grafico_lgr.
function grafico_lgr_Callback(hObject, eventdata, handles)
global mr
if (get(handles.overlay_all,'Value')==1)
figure(4);
title('Lugar geométrico de las raíces');
hold on;
rlocus(mr);
Anexo B: Código Fuente 136

grid on;
else
figure(4);
title('Lugar geométrico de las raíces');
hold off;
rlocus(mr);
grid on
end

B.9.- FUNCIÓN GRÁFICO_NYQUIST


% --- Executes on button press in grafico_nyquist.
function grafico_nyquist_Callback(hObject, eventdata, handles)
global ftla
global Ms
sistema=ftla
if (get(handles.overlay_all,'Value')==1)
figure(5);
title('Grafico de Nyquist');
hold on;
circle = rsmak('circle');
fnplt(fncmb(fncmb(circle,[Ms 0;0 Ms]),[-1;0]),'g:');
nyquist(sistema);
axis([-2 2 -2 2]);
else
figure(5);
title('Grafico de Nyquist');
hold off;
clf('reset');
hold on;
circle = rsmak('circle');
fnplt(fncmb(fncmb(circle,[Ms 0;0 Ms]),[-1;0]),'g:');
nyquist(sistema);
axis([-2 2 -2 2]);
hold off;
end

B.10.- FUNCIÓN GRÁFICO_ROBUSTEZ


% --- Executes on button press in grafico_robustez.
function grafico_robustez_Callback(hObject, eventdata, handles)
global c
global s
global gptm
global tm
global gc
figure(6)
c=c-1;
if (get(handles.overlay_all,'Value')==1)
Anexo B: Código Fuente 137

hold on
else
hold off
clf('reset')
end
x=0;
vt=tm/10:tm/10:5*tm;
n=length(vt);
w=zeros(n,1);
vkp=w'; %Vector de razon de ganancias.
for i=tm/10:tm/10:5*tm %Este bucle calcula los elementos de vkp
x=x+1;
g=gptm*gc;
g.outputdelay=i;
y=allmargin(g);
vkp(x)=y.GainMargin(1);
clear g.outputdelay;
end
vtm=vt/tm; %Vector de razon de tiempos muertos
fplot('2*x',[0.5,1],'k'); %Se grafica la ventana centrada en (1,1).
hold on;
fplot('0.5*x',[1,2],'k');
hold on;
fplot('2/x',[1,2],'k');
hold on;
fplot('0.5/x',[0.5,1],'k');
hold on;
plot(1,1,'+k'); %Se grafica el simbolo "+" situado en (1,1).
hold on;
title('Grafico de robustez');
xlabel('kp/kpa');
ylabel('tm/tma');
hold on;
if (get(handles.overlay_all,'Value')==1)
if c==0
plot(vkp,r,'b');
elseif c==1
plot(vkp,vtm,'g');
elseif c==2
plot(vkp,vtm,'r');
elseif c==3
plot(vkp,vtm,'y');
elseif c==4
plot(vkp,vtm,'m');
elseif c==5
plot(vkp,vtm,'c');
else
plot(vkp,vtm,'k');
end
elseif (get(handles.overlay_all,'Value')==0)
c=0;
plot(vkp,vtm,'b');
Anexo B: Código Fuente 138

end
axis([0 5 0 5]); %Se grafica la curva de robustez.
vtm=vt/tm; %Vector de razon de tiempos muertos
fplot('2*x',[0.5,1],'k'); %Se grafica la ventana centrada en (1,1).
hold on;
fplot('0.5*x',[1,2],'k');
hold on;
fplot('2/x',[1,2],'k');
hold on;
fplot('0.5/x',[0.5,1],'k');
hold on;
plot(1,1,'+k'); %Se grafica el simbolo "+" situado en (1,1).
hold on;
title('Grafico de robustez');
xlabel('kp/kpa');
ylabel('tm/tma');
hold on;
if (get(handles.overlay_all,'Value')==1)
if c==0
plot(vkp,r,'b');
elseif c==1
plot(vkp,vtm,'g');
elseif c==2
plot(vkp,vtm,'r');
elseif c==3
plot(vkp,vtm,'y');
elseif c==4
plot(vkp,vtm,'m');
elseif c==5
plot(vkp,vtm,'c');
else
plot(vkp,vtm,'k');
end
elseif (get(handles.overlay_all,'Value')==0)
c=0;
plot(vkp,vtm,'b');
end
axis([0 5 0 5]); %Se grafica la curva de robustez.
grid on
if (get(handles.overlay_all,'Value')==1)
hold on
else
hold off
end

B.11.- FUNCIÓN MENÚ_GRAFICAR

El código para invocar el menú, correspondiente a la función “Simular”.


function menu_graficar_Callback(hObject, eventdata, handles)
if (get(handles.graficar,'Enable')=='on')
Anexo B: Código Fuente 139

graficar_Callback(hObject, eventdata, handles)


end

B.12.- FUNCIÓN MODELO DE LA PLANTA


function menu_identificacion_Callback(hObject, eventdata, handles)
global mr
global kp
global tau1
global tau2
global tm
global r2
%Guarda los datos inmediatos anteriores en caso de que se necesiten
menu_save_Callback(hObject, eventdata, handles)
%Calcula los parámetros del modelo
du=1;
t=0:0.1:500;
[y,t]=fc_creacion(mr,t,du,1);
%Cuadro de diálogo: "Lista de Métodos"
txt1='Método de la tangente';
txt2='Método de la tangente modificado';
txt3='Método de dos puntos de Smith';
txt4='Método 1/4-3/4 de Alfaro, POMTM';
txt5='Método 1/4-3/4 de Alfaro, SOMTM';
[sel,ok] = listdlg('PromptString','Seleccione alguno de los
siguientes métodos:',...
'Name','Método de identificación del modelo:',...
'SelectionMode','single',...
'ListSize',[250 80],...
'ListString',{txt1,txt2,txt3,txt4,txt5});
%Asignación de parámetros según el método
if ok==1
switch sel
case 1
[kp,tau,tm]=fc_idmetang(y,t,0,du,1);
case 2
[kp,tau,tm]=fc_idmetang(y,t,0,du,2);
case 3
[kp,tau,tm]=fc_idmet2p(y,t,0,du,1);
case 4
[kp,tau,tm]=fc_idmet2p(y,t,0,du,2);
case 5
[kp,tau,tm]=fc_idmet2p(y,t,0,du,3);
end
%Impresión de parámetros en los cuadros de selección
txtkp = strcat(num2str(kp));
txttau = strcat(num2str(tau));
txttm = strcat(num2str(tm));
if sel==5
Anexo B: Código Fuente 140

set(handles.edit_kp,'String',txtkp);
set(handles.edit_tau1,'String',txttau);
set(handles.edit_tau2,'String',txttau);
set(handles.edit_tm,'String',txttm);
set([handles.edit_kp,handles.edit_tau1,handles.edit_tau2,handles
.edit_tm],'FontWeight','bold');
set([handles.edit_kp,handles.edit_tau1,handles.edit_tau2,handles
.edit_tm],'ForegroundColor',[1.0 0 0]);
set(handles.lista_planta,'Value',4);
else
set(handles.edit_kp,'String',txtkp);
set(handles.edit_tau1,'String',txttau);
set(handles.edit_tm,'String',txttm);
set([handles.edit_kp,handles.edit_tau1,handles.edit_tau2,handles.e
dit_tm],'FontWeight','bold');
set([handles.edit_kp,handles.edit_tau1,handles.edit_tau2,handles.e
dit_tm],'ForegroundColor',[1.0 0 0]);
set(handles.lista_planta,'Value',3);
end
else
disp('Se ha cancelado la selección del modelo para la planta')
end
%Actualiza f.t de la planta
planta_ok_Callback(hObject, eventdata, handles)
%Indica superposición de gráficas
set(handles.overlay_all,'Value',1);
%Grafica la respuesta del modelo
graficar_Callback(hObject, eventdata, handles)

B.13.- FUNCIÓN SINTONIZACION

function menu_sintonizacion_Callback(hObject, eventdata,


handles)
. . .
%Cuadro de diálogo: "Lista de Métodos"
txt1= 'Método de la tangente';
txt2= 'Método de la tangente modificado';
txt3= 'Método de dos puntos de Smith';
txt4= 'Método 1/4-3/4 de Alfaro, POMTM';
txt5= 'Parámetros de usuario - Planta primer orden más tiempo
muerto';
txt6= 'Método de Ziegler y Nichols - Controlador P
(Regulador)';
txt7= 'Método de Ziegler y Nichols - Controlador PI
(Regulador)';
txt8= 'Método de Ziegler y Nichols - Controlador PD
(Regulador)';
txt9= 'Método de Ziegler y Nichols - Controlador PID-Ideal
(Regulador)';
txt10='Método de López - IAE -Controlador PI (Regulador)';
Anexo B: Código Fuente 141

txt11='Método de López - IAE - Controlador PID-Ideal


(Regulador)';
txt12='Método de Rovira- IAE - Controlador PI
(Servomecanismo)';
txt13='Método de Rovira- IAE - Controlador PID-Ideal
(Servomecanismo)';
txt14='Método de Alfaro - IAE - Controlador PID-Ideal
(Regulador)';
txt15='Método de Alfaro - IAE - Controlador PID-Ideal
(Servomecanismo)';
. . .
[sel,ok] = listdlg('PromptString','Seleccione alguno de los
siguientes
métodos:',...
'Name','Método de identificaión de la planta:',...
'SelectionMode','single',...
'ListSize',[330 80],...
'ListString',{txt1,txt2,txt3,txt4,txt5});
%Asignación de parámetros según el método
if ok==1
switch sel
case 1
[kp,tau,tm]=fc_idmetang(y,t,0,du,1);
. . .
end
. . .
if ok==1
%Se procede ahora a hacer la sintonización con base en la
planta
identificada
if tm==0 %Si el tiempo muerto es cero, no se puede utilizar el
método de
Z y N
if sel==1 %Si se seleccionó el método de la tangente, presente
el
cuadro de métodos sin Z y N
sel3=0;ok3=0;
sel4=0;ok4=0;
sel5=0;ok5=0;
[sel2,ok2] = listdlg('PromptString','Seleccione alguno de los
siguientes métodos:',...
'Name','Método de sintonización de la planta:',...
'SelectionMode','single',...
'ListSize',[350 100],...
'ListString',{txt11,txt12,txt13,txt14,txt15,txt16});
. . .
if ok2==1 %TM==0 y se escogió Z y N para identificar
Anexo B: Código Fuente 142

switch sel2 %varía según método sintonización


case 1 %Lopez Controlador PI IAE
kc=(0.9840*((tm/tau1)^-0.986))/kp;
ti=tau1*1.6447*((tm/tau1)^0.707);
set(handles.controladores_lista,'Value',4);
set([handles.edit_kc,handles.edit_ti],'Enable','on');
set(handles.edit_td,'Enable','off');
case 2 %Lopez Controlador PID IAE
kc=(1.435*((tm/tau1)^-0.921))/kp;
. . .
end
. . .
%Impresión de parámetros en los cuadros de selección de la
planta
txtkp= strcat(num2str(kp));
txttau= strcat(num2str(tau));
txttm= strcat(num2str(tm));
set(handles.edit_kp,'String',txtkp);
set(handles.edit_tau1,'String',txttau);
set(handles.edit_tm,'String',txttm);
. . .
%Impresión de parámetros en los cuadros de selección del
controlador
txtkc = strcat(num2str(kc));
txtti = strcat(num2str(ti));
txttd = strcat(num2str(td));
set(handles.edit_kc,'String',txtkc);
set(handles.edit_ti,'String',txtti);
set(handles.edit_td,'String',txttd);

B.13.- FUNCIÓN EXPORTAR

function menu_exportar_Callback(hObject, eventdata, handles)


if (get(handles.graficar,'Enable')=='on')
try
txt1 = get(handles.listbox_parametros,'String');
txt2 = '';
for i=1:length(txt1)
txt2 = strcat([txt2,';',txt1{i}]);
end
clipboard('copy',txt2);
catch
clipboard('copy','');
end
end
Anexo B: Código Fuente 143

También podría gustarte