Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Presentado por:
UNIVERSIDAD DE ORIENTE
CONSEJO DE ESTUDIOS DE POSTGRADO
NÚCLEO DE ANZOÁTEGUI
POSTGRADO EN INGENIERÍA ELÉCTRICA
JURADO CALIFICADOR
DEDICATORIA
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
RESUMEN
Í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
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
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
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
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
CONCLUSIONES.....................................................................................................121
RECOMENDACIONES...........................................................................................123
BIBLIOGRAFÍA.......................................................................................................124
Í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
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
CAPÍTULO 5
CAPÍTULO 6
Í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
1.5-.JUSTIFICACIÓN
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.
Se puede apreciar la aparición de un nuevo elemento que hace las veces del
operador, denominado controlador.
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.
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
2.2.1-.SENSORES
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.
2.3-.ESTRATEGIAS DE CONTROL
2.3.1-.CONTROLADOR PID
[8]. Se considera un lazo de control de una entrada y una salida (SISO) de un grado
de libertad:
(2.2)
(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
(2.4)
(2.5)
(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.
(2.7)
Y su función de transferencia
Capítulo 2 Control Automático 11
(2.8)
Sin embargo, estas propiedades asumen un carácter general, por lo que pueden
existir excepciones en determinados sistemas.
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
Los siguientes pasos son útiles para diseñar el controlador que permita obtener la
respuesta deseada:
Ajuste cada una de las ganancias Kp, Ki, y Kd hasta que se obtenga la
respuesta deseada.
Ventajas:
Inconvenientes:
Incremento de la energía consumida por producto.
3
Marco Teórico
3.1-.MODELADO Y SIMULACIÓN DE LA DINÁMICA DE PROCESOS
dS
0 (3.2)
dt
3.3-.ELABORACIÓN DE MODELOS
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.
Área A
Bomba
Válvula
(3.3)
(3.4)
(3.5)
(3.6)
(3.7)
(3.8)
Capítulo 3 Marco Teórico 22
(3.9)
(3.10)
En función de las características del transitorio del sistema existen tres tipos:
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
(3.11)
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)
(3.13)
(3.14)
(3.15)
Diagrama de Nyquist.
Diagrama de Bode.
(3.16)
(3.17)
(3.18)
(3.19)
(3.20)
Capítulo 3 Marco Teórico 29
(3.21)
(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
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.
3.6.3-.CÍRCULO DE SENSIBILIDAD
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.
(3.23)
(3.24)
(3.25)
Para sistemas de primer orden: medición directa de los parámetros del modelo
sobre la curva de respuesta.
(3.26)
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
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)
1,5(t 63 t 28 ) (3.29)
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)
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.
k p e t Ms
G p (s) (3.32)
τ s 1
' 2
y
Kp (3.33)
u
t 'm b ' t 25 1 b ' t 75 (3.35)
3.8-.SINTONIZACIÓN DE CONTROLADORES
Capítulo 3 Marco Teórico 40
Reguladores:
Alfaro (IAE).
López (IAE ).
Ziegler y Nichols .
Servomecanismo:
Alfaro (IAE).
Rovira (IAE).
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.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.
b
t
Kp * Kc a * m (3.42)
τ
f
Ti t
c* m (3.43)
τ τ
f
Td t
e* m (3.44)
τ τ
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)
τ τ
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
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)
3.9-.SOFTWARE DE SIMULACIÓN
.
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:
1
G( s) (3.52)
s 10s 27 s 18
3 2
>> num=1;
>> 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)
Root Locus
4
Imaginary Axis
0
-1
-2
-3
-4
-14 -12 -10 -8 -6 -4 -2 0
Real Axis
>> rlocus(P);
>> [k,polos]=rlocfind(P);
Select a point in the graphics window
selected_point = -7.1161 + 1.8509i
k = 8.2476
3.9.1.4-.PROGRAMA SIMULINK
Sensores y actuadores.
Computadora o procesador.
Programa.
Capítulo 3 Marco Teórico 49
3.9.1.6-.IDENTIFICACIÓN DE SISTEMAS
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
3.9.2.1-.APLICACIONES DE 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.
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.
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.
3.9.2.4-.ADQUISICIÓN DE DATOS
¿Por qué querría alguien reemplazar el mundo real por una versión falsa del
mismo? Esencialmente, hay al menos tres razones para hacerlo:
4
Aplicaciones en Labview
4.1-.INTRODUCCIÓN
4.2.2-.DIAGRAMA DE BLOQUES
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
(4.1)
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
(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.
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.
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.
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
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.
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.
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.
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.
Permiten al usuario
seleccionar uno o más
Listbox términos de la lista.
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.
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
Índices de Robustez.
Curvas de Robustez
5.5-.PROGRAMACIÓN
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.
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
Elemento Etiqueta
Botón Simular graficar
Botón Borrar borrar
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
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
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.
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.
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 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.
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.
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.
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.
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.
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.
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
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
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.
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.
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.
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
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
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
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
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.
Zero/pole/gain:
(s+2) (s+3)
-----------
s (s+1)
Capítulo 6 Pruebas y Resultados 103
dv
m bv Fe (6.1)
dt
descripciones lingüísticas y las matemáticas para que éstas puedan ser manipuladas y
operarlas entre sí, permite así computar con palabras (Zadeh).
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.
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
Este toolbox cuenta también con un visor de Reglas (Rule Viewer) que permite:
Proporciona una visión gráfica muy intuitiva del funcionamiento interno del
controlador.
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
o Curva de robustez.
o Método de la tangente.
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.
Pasos a seguir:
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:
Pasos a seguir:
Anexo A: Manual De Usuario 119
Las siguientes son las diversas opciones a las que se tiene acceso una vez graficada la
respuesta.
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
Y el controlador
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');
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
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
grid on;
else
figure(4);
title('Lugar geométrico de las raíces');
hold off;
rlocus(mr);
grid on
end
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
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)