Está en la página 1de 60

ANÁLISIS DE UN SISTEMA DE CONTROL

Control de Procesos

M.C. ANTONIO RODRIGUEZ GARCIA


ÍNDICE

Índice……………………………………………………………..……………………………………………………..… 2

Introducción………………………………………………….………………………………………………………… 3

Porciento Incompleto…………………………………………….………………………………………………… 4

Lugar Geométrico De Las Raíces (LGR)……………………………………………………………..….…… 9

Diagrama de Bode …….………………………………….……………………………………………………….… 14

Diagrama de Nyquist ……………………………………………………………………………………….…...… 17

Controladores……………………………………………………………………………………………………….… 20

Métodos De Sintonía………………………………………………………………………………….………..…... 23

Sistemas Cascada …………………….……………………………………………………………….…………...... 32

Análisis Computacional con MATLAB...…………………………………………………………………….. 37

Anexos……………………………………………………………………………………………………………………. 45

Control de Procesos M.C. Antonio Rodríguez García 2


INTRODUCCIÓN
En este trabajo, se expondrá paso a paso la manera adecuada de analizar un sistema de control a
partir de una grafica determinada que nos muestre la respuesta de dicho sistema en el tiempo, de
dónde iremos obteniendo diversos datos del sistema, como sus constantes de tiempo, su función
de transferencia, el comportamiento del sistema ante la frecuencia y la manera correcta de
sintonizar nuestro sistema para que trabaje de acuerdo nuestros estándares deseados.

También se verá el análisis necesario para la aplicación de algún controlador en los sistemas,
además de diferentes métodos de sintonía para los mismos.

Otra de las actividades que se expondrán en este trabajo será la de llevar a cabo todas estas
operaciones mediante el uso de software, en específico Matlab, para obtener una respuesta más
exacta y rápida.

En este trabajo se verán todas las operaciones necesarias para el análisis de un sistema de control,
con todo y los controladores; esto haciéndolo de 2 maneras:

 Forma Manual
 Forma Automática (mediante Matlab)

Primero veremos todos los pasos de forma manual, al final veremos el proceso haciendo uso de
una librería especial de Matlab (incluida en este mismo trabajo) que nos facilitará el análisis del
sistema.

Por último se hablara acerca de los sistemas de tipo cascada además de su demostración en
cuanto a la forma de análisis de los mismos.

Control de Procesos M.C. Antonio Rodríguez García 3


PORCIENTO INCOMPLETO
El porciento incompleto es un método gráfico que nos sirve para obtener la función de
transferencia de un sistema a partir de su grafico de respuesta a una entrada de tipo escalón.

Su base está en graficar el porcentaje de lo que falta para que el proceso se complete con respecto
al tiempo. Es decir del 100% del proceso sustraer el porcentaje del proceso que ya se haya
completado.

La gráfica del porciento incompleto se grafica en una hoja semilogarítmica, donde el porciento
incompleto se grafica en el eje vertical; mientras que el tiempo se grafica en el eje horizontal.

Para poder realizar la curva denominada como “A” se necesitan tabular los valores del porcentaje
del proceso completado, “Y”, y restárselos al 100%. Es decir, que al inicio del proceso tendremos
una “Y” de 0% y por lo tanto el porciento incompleto será de un 100%.

Una vez con estos datos, veremos también en que tiempo se realiza cada uno de estos puntos
para poder así pasarlos al papel semilogarítmico.

Ya con la primera curva, tendremos que realizar la curva denominada como “B”. Esta curva se
obtiene extendiendo la parte linear de la curva “A” hasta el tiempo 0.

Al hacer esto, esta nueva curva tendrá un origen diferente a la primera curva. Este nuevo origen es
el denominado punto 1 “P1”

La constante de tiempo del sistema se obtiene encontrando el 36.8% de P1. Al encontrar este
determinado valor en la grafica podremos ver el valor en el tiempo, y ese será nuestra primera
constante de tiempo.

Para obtener la segunda constante de tiempo obtendremos la curva “C”, la cual es la diferencia de
las curvas “A” y “B” (C= B-A). El punto de origen de esta curva, será nuestro punto 4 y nos ayudará
a obtener la segunda constante de tiempo.

Para la segunda constante de tiempo hacemos el procedimiento anterior, obteniendo el 36.8% de


este punto y encontrando un nuevo punto que nos determinará la segunda constante de tiempo.

Para corroborar aproximadamente los resultados, los puntos se pueden obtener en base a las
constantes de tiempo obtenidas, es decir:

Ya que se obtuvieron las dos constantes de tiempo, ya se puede obtener la función de


transferencia del sistema tomando en cuenta la siguiente formula.
Control de Procesos M.C. Antonio Rodríguez García 4
**NOTA: Este método se utiliza para obtener la función de transferencia de un sistema
forzándolo a ser un sistema de segundo orden, ya que si se realiza un análisis detallado del
sistema es seguro que este sea de orden superior o muy complejo.

A continuación se muestra un ejemplo en el cual se obtendrá la función de transferencia de un


sistema a partir de su grafico de respuesta.

Ejemplo:

A partir del siguiente grafico de la respuesta a una entrada escalón (Step) de un sistema, obtenga
su función de transferencia.

Control de Procesos M.C. Antonio Rodríguez García 5


A partir del grafico, se obtienen y tabulan los siguientes valores:

Y 100% - Y T (Min)
0 100 0
10 90 0.6
Si usted cree necesario, puede
20 80 0.8
obtener más valores para así
30 70 1.1 obtener una mayor resolución
40 60 1.5 y exactitud en el grafico
50 50 2
60 40 2.4
70 30 3
80 20 3.8
90 10 5.2

Control de Procesos M.C. Antonio Rodríguez García 6


Ya obtenida nuestra tabla, se grafica nuestra curva “A” en el papel semilogarítmico de la siguiente
manera:

Ya graficada nuestra curva “A”, para obtener la curva “B”, se traza una línea recta que toque la
mayor cantidad de puntos de la curva “A”, tal y como se muestra en la figura anterior.

Ya que se obtuvo la curva “B”, se obtiene el P1, el cual es el cruce de la curva B en el tiempo cero.

Para nuestro ejemplo, el P1 es en 133.

Control de Procesos M.C. Antonio Rodríguez García 7


Para obtener el P2 (Punto con el cual se obtendrá la primera constante de tiempo), se utiliza la
siguiente fórmula:

En este caso redondeamos el resultado,


con la finalidad de no meternos en
problemas con los decimales, ya que se
está utilizando una escala logarítmica

La primer constante de tiempo, se obtiene según el tiempo que hay en el P2 de cero hasta la curva
“A” como se mostro en el grafico anterior, para nuestro ejemplo, la Tao 1 es de 2 minutos.

Para obtener la curva “C” primero hay que obtener P3 (el cual nos marca el inicio de la curva “C”),
y después se obtiene la diferencia entre la curva B y la curva A:

Después, se continua obteniendo la diferencia entre las curvas B y A, y el resultado de la traza de


la curva C nos quedara de la siguiente manera como se muestra en el grafico.

Control de Procesos M.C. Antonio Rodríguez García 8


Ya que se obtuvo y grafico la curva “C”, se obtiene P4.

Para obtener el P4 (Punto con el cual se obtendrá la segunda constante de tiempo), se utiliza la
siguiente fórmula:

Redondeamos el resultado, con la


finalidad de no meternos en
problemas con los decimales, ya que
se está utilizando una escala
logarítmica

La segunda constante de tiempo, se obtiene según el tiempo que hay en el P4 de cero hasta la
curva “C” como se mostró en el grafico anterior, para nuestro ejemplo, la Tao 2 es de 0.5 minutos.

Control de Procesos M.C. Antonio Rodríguez García 9


Para comprobar nuestros resultados, se pueden utilizar las siguientes formulas:

Según las ecuaciones, se comprobó que nuestros puntos obtenidos son correctos, ya con esto, se
puede obtener nuestra función de transferencia mediante la siguiente ecuación:

La K se obtiene mediante la relación de la entrada escalón que le suministramos al sistema y la


salida que obtenemos en estado estable.

Para este caso supóngase que nuestro escalón fue de 100%, por lo tanto:

Por lo tanto la función de transferencia seria:

Control de Procesos M.C. Antonio Rodríguez García 10


LUGAR GEOMÉTRICO DE LAS RAÍCES
(LGR)
En el lugar geométrico de las raíces podemos obtener diversos datos del comportamiento del
sistema a diversas ganancias. En qué momento se alcanza, si es posible, la inestabilidad, donde se
localizan sus polos, sus ceros, como afectan estos al sistema, etc.

A continuación se mostrara el método para obtener el LGR de un sistema mediante un ejemplo.

Ejemplo:

Utilizando la ecuación obtenida en el punto del Porciento Incompleto, se obtiene:

Esta función de transferencia es


la misma que la obtenida
anteriormente, con la diferencia
que en esta forma si se puede
introducir en Matlab.

Control de Procesos M.C. Antonio Rodríguez García 11


Puntos de Inicio

Las trayectorias de LGR empiezan en los polos de GH(s).

Polos = 2 Localizados en -0.5 y -2

Puntos de Fin

Las trayectorias del LGR terminan en los ceros del GH(s).

No hay ceros

Número, Centro y Ángulo de las Asíntotas

Cuando hay ceros en el infinito se identifican por asíntotas:

No. Asíntotas = (NP - NZ)

No. Asíntotas = 2 – 0 NP = # Polos

No. Asíntotas = 2 NZ = # Ceros

Control de Procesos M.C. Antonio Rodríguez García 12


Valor obtenido al sustituir los
valores de “n” en la ecuación

Punto de Quiebre (q)

Lugar en el eje real donde las trayectorias se juntan o separan:

 Se despeja K de 1 + GH(s) = 0
 Se deriva con respecto a s: dk/ds = 0, se obtienen las raíces
 Se iguala a cero dk/ds y se obtienen raíces
 De los valores obtenidos en dk/ds se determinan los puntos de quiebre

Control de Procesos M.C. Antonio Rodríguez García 13


La raíz obtenida, es el punto
de quiebre o ruptura.

Nótese que el punto de quiebre y el centro de las asíntotas, coinciden en el mismo punto,
para este ejemplo.

Ganancia de Quiebre (Kq)

Esta es la ganancia en la cual el sistema empieza a tener componente en el eje imaginario


(ganancia en la cual llega el sistema al punto de quiebre)

Se sustituyen los valores de los puntos de quiebre en la ecuación de K obtenida anteriormente.

Ya con los puntos anteriores, se puede obtener nuestro grafico de LGR de nuestro sistema, el cual
nos quedaría de la siguiente forma:

Control de Procesos M.C. Antonio Rodríguez García 14


Ganancia Crítica (Kc)

Es la ganancia requerida requiere para que la trayectoria cruce el eje imaginario; es decir que el
sistema sea críticamente estable.

Se determina usando el criterio de Routh-Hurwitz, el cual nos establece un rango de estabilidad.


En los límites de ese rango está la ganancia crítica.

En este ejemplo, como el sistema SIEMPRE es estable, NO existe una ganancia crítica (el LGR
nunca pasa al eje x positivo); en otras palabras, sin importar la ganancia del sistema (k), nunca
se va a volver inestable.

Frecuencia Crítica (c)

Control de Procesos M.C. Antonio Rodríguez García 15


Lugar en el eje imaginario en donde cruza una trayectoria. Se determina sustituyendo
Kc en la ecuación auxiliar de segundo orden y resolviendo.

En este ejemplo como NO existe ganancia crítica, en consecuencia tampoco existe una
frecuencia crítica.

DIAGRAMA DE BODE
El diagrama de Bode nos muestra el comportamiento de la respuesta en frecuencia del sistema en
base a una determinada ganancia.

Las gráficas de bode consisten en graficar el logaritmo de la magnitud de la función de


transferencia contra la frecuencia y el ángulo de fase contra la frecuencia.

La ventaja de este método es que la multiplicación de magnitudes se convierte en suma y además


cuenta con un método simple, para dibujar una curva aproximada de magnitud logarítmica,
basado en aproximaciones asintóticas.

A continuación se muestra con un ejemplo como se obtienen las trazas de bode.

Ejemplo:

Utilizando la ecuación obtenida en el punto del Porciento Incompleto, se obtiene:

Se utilizará una K de 1, porque


en el punto del porciento
incompleto se obtuvo que
K=salida/entrada, y esto era
igual a 100/100 = 1.

Control de Procesos M.C. Antonio Rodríguez García 16


Para obtener Bode, es necesario pasar nuestra ecuación en función de “S” a una
ecuación en función de la frecuencia.

Ya que obtuvimos nuestra ecuación en función de la frecuencia, obtenemos nuestras ecuaciones


respectivas para dibujar bode, las cuales son la ecuación característica para obtener magnitud
(esta será en decibeles) y la ecuación para obtener el ángulo de fase del sistema.

Ecuación de Magnitud

Ecuación de Fase

Control de Procesos M.C. Antonio Rodríguez García 17


Ya obtenidas las ecuaciones de magnitud y fase, se sustituyen los valores de frecuencia por
décadas, para obtener la siguiente tabulación.


0.1 -0.1811 -14.1723
0.3 -1.4320 -39.4945
0.5 -3.2735 -59.0362
0.7 -5.2147 -73.7523
1 -7.9588 -90
3 -20.8008 -136.84 Si usted cree necesario, puede
5 -28.6465 -152.4879 obtener más valores para así
7 -34.1668 -159.9689 obtener una mayor resolución
10 -40.1811 -165.8276
y exactitud en los gráficos.
30 -59.1053 -175.2310
50 -67.9661 -177.1364
70 -73.8076 -177.9517
100 -80.0018 -178.5677
300 -99.0850 -179.5225
500 -107.9588 -179.7135
700 -113.8039 -179.7953

Ya que obtuvimos nuestra tabulación, ya se pueden realizar nuestras trazas de Bode.

** NOTA: Las valores que se obtuvieron, fueron para las trazas de bode en LAZO ABIERTO, esto
debido a que se utilizo nuestra ecuación de función de transferencia en lazo abierto, para
obtener las trazas de bode para lazo cerrado, es necesario pasar la función de transferencia en
lazo cerrado y obtener las ecuaciones de bode de la forma que se mostro en este punto.

Control de Procesos M.C. Antonio Rodríguez García 18


Ya con el grafico, se puede determinar el margen de fase y el margen de ganancia de nuestro
sistema.

**NOTA: Un margen de ganancia infinito junto con un margen de fase positivo (arriba de -180°)
nos demuestra que el sistema es ESTABLE

A continuación mostramos la gráfica que nos ayudará a determinar la estabilidad de un sistema en


base al trazo de Bode:

Control de Procesos M.C. Antonio Rodríguez García 19


DIAGRAMA DE NYQUIST
A diferencia de las trazas de Bode, el diagrama de Nyquist es obteniendo las ecuaciones de
magnitud sin ser expresadas en decibeles, y la relación de magnitud y fase se dibuja en un mismo
grafico, no como en las trazas de Bode que se obtenían dos gráficos, el cual es el plano cartesiano
de “S”, en el cual el eje horizontal es la componente real y el vertical la parte imaginaria desde una
frecuencia de cero hasta infinito.

A continuación se muestra con un ejemplo como se obtienen las trazas de Nyquist.

Ejemplo:

Utilizando la ecuación obtenida en el punto del Porciento Incompleto, se obtiene:

Se utilizará una K de 1, porque


en el punto del porciento
Control de Procesos M.C. Antonio Rodríguez García 20
incompleto se obtuvo que
K=salida/entrada, y esto era
igual a 100/100 = 1.
Para obtener Nyquist, es necesario pasar nuestra ecuación en función de “S” a una ecuación en
función de la frecuencia.

Ya que obtuvimos nuestra ecuación en función de la frecuencia, obtenemos nuestras ecuaciones


respectivas para dibujar Nyquist, las cuales son la ecuación característica para obtener magnitud y
la ecuación para obtener el ángulo de fase del sistema

Ecuación de Magnitud

Control de Procesos M.C. Antonio Rodríguez García 21


Ecuación de Fase

Ya obtenidas las ecuaciones de magnitud y fase, se sustituyen los valores de frecuencia desde cero
hasta infinito para obtener la siguiente tabulación.

**TIP: Como el sistema que se va a graficar, es de segundo orden, el grafico de Nyquist que se
obtendrá no será muy complejo, por lo tanto una forma de graficarlo sencillamente es
obteniendo los valores para los cuales se obtiene un ángulo de 0, -90, -180 principalmente, o
bien los cruces por los ejes del plano.

Control de Procesos M.C. Antonio Rodríguez García 22


Si usted cree necesario
 Im+Re puede obtener más valore
0 1 0 0i + 1 para así obtener una mayo
- - 90 -
resolución y exactitud en lo
1 -3.2735 -90 -0.4i + 0
Infinito 0 -180 0i + 0 gráficos
- - 180 -

La sección de “Im + Re” se obtiene convirtiendo la magnitud y


fase de su forma polar, a la forma rectangular

Estos valores rectangulares, serán los que se emplearan para


graficar Nyquist

Ya que obtuvimos nuestra tabulación, ya se pueden realizar nuestras trazas de Nyquist. Ya con el
grafico, se puede determinar el margen de fase y el margen de ganancia de nuestro

Control de Procesos M.C. Antonio Rodríguez García 23


A continuación mostramos la gráfica que nos ayudará a determinar la estabilidad de un sistema en
base al trazo de Nyquist:

Control de Procesos M.C. Antonio Rodríguez García 24


CONTROLADORES
Un controlador nos ayuda a mejorar las características de un sistema además de reducir o eliminar
el error en estado estable del mismo.

A continuación se mostraran las ecuaciones generales de un controlador PID, a partir de estas, se


puede obtener las ecuaciones de un controlador P, I, D, PI y PD según la sección que sea omitida
del mismo

Ecuación en función de ganancias

Ecuación en función de tiempos

Cuando se aplica un controlador a un sistema, es necesario utilizar el análisis de las ecuaciones de


Error en Estado Estable, ya que si el sistema ya con un controlador aplicado, presenta error en
estado estable, significa que no podrá ser controlado y por lo tanto el controlador no es el
adecuado.

A continuación se muestra un ejemplo en el cual se utilizara un controlador PI

Ejemplo

Utilizando la ecuación obtenida en el punto del Porciento Incompleto, se obtiene:

La ecuación de un controlador PI es la siguiente (Función de ganancias):

Control de Procesos M.C. Antonio Rodríguez García 25


Por lo tanto nuestra nueva ecuación del sistema será:

Siendo nuestro sistema en lazo cerrado con retroalimentación unitaria, para determinar si nuestro
controlador es el adecuado para nuestro sistema, encontraremos su error en estado estable al
aplicarle un escalón unitario como entrada al sistema.

Control de Procesos M.C. Antonio Rodríguez García 26


Como el error en estado estable para nuestro sistema al aplicarle un controlador PI
resulto ser cero para una entrada escalón, significa que nuestro controlador va a funcionar
debidamente al aplicarle una entrada escalón.

**NOTA: Este método funciona para cualquier tipo de control y/o entrada, solo sería necesario
cambiar la G(s) para que reflejara otro control, y cambiar la entrada (en este caso s/1) para
cambiar a otro tipo, como por ejemplo rampa (s2/1). Para este ejemplo en específico, los
controladores estables para una entrada ESCALÓN serían: P, PI y PID.

Para obtener los resultados deseados en el comportamiento, es necesario analizar métodos de


sintonía.

**NOTA: Otro dato importante es hacer notar que el manejo de las ganancias proporcional,
integral y derivativa en MATLAB es igual a como se manejaría a la manera “matemática”, a
diferencia de lo empleado en ejemplos prácticos, por ejemplo un valor de 200 seg/rep para el
valor integral para MATLAB serían 1/200, es decir 0.005 de ganancia integral.

La siguiente tabla ejemplifica la nota anterior:

Proporcional Integral Derivativo


Modelo Real Kp (banda) Ti (seg/rep) Td (seg/rep)
Modelo en Matlab Kp (banda) Ki (rep/seg) Kd (seg)

Aquí se puede observar que MATLAB maneja ganancias, en consecuencia, al querer sintonizar
algún controlador se tendrá que tomar esta consideración al establecer los valores tanto en
Matlab como en el sistema físico.

Control de Procesos M.C. Antonio Rodríguez García 27


MÉTODOS DE SINTONÍA
Los métodos de sintonía nos sirven para que nuestro sistema tenga una mejor respuesta conforme
a lo que nosotros deseamos que realice. A continuación se presentan cuatro métodos los cuales
serán aplicados al sistema con el que hemos estado trabajando, para así obtener una respuesta
más rápida en nuestro sistema. Lamentablemente no todos los métodos son idóneos para todos
los sistemas, existen métodos que son mejores para determinado sistema que otros.

El controlador que se utilizara será un PID, en este punto no se mostraran los análisis necesarios
de Error en estado estable con la finalidad de hacer menos extenso este punto, pero no hay que
olvidar que es necesario realizarlas para determinar si el controlador funcionara; Para el sistema
que se mostrara, se encontró que el error en estado estable (Ess) del controlador PID es de cero.

Método a Prueba y Error

Primero se coloca nuestro sistema en operación normal de forma manual, una vez hecho esto,
pasamos nuestro controlador en modo automático y aplicamos un cambio de tipo escalón en el
“Set Point” y observamos el comportamiento en la salida.

Dependiendo el comportamiento que se haya obtenido será la forma de sintonizar nuestro


controlador. A continuación se muestra un grafico en el cual se puede observar como afectarían
las componentes proporcional, integral y derivativa en la respuesta de nuestro sistema.

Según los parámetros deseados en el comportamiento del sistema, será la forma de decidir la
forma en que se deberá sintonizar nuestro sistema.

Control de Procesos M.C. Antonio Rodríguez García 28


Para demostrar este método de sintonía, se adjuntara con el siguiente método (Mapas
de sintonía) ya que es necesario utilizar la prueba y error en conjunto de los mapas de sintonía
para poder sintonizar un sistema.

Mapas de sintonía

Asumiendo que nuestro sistema se encuentra controlado y nuestro controlador se


encuentra en modo automático. En este método los ajustes de sintonía se basan
más en la experiencia y entrenamiento de prueba y error.

A continuación se mostrara una tabla la cual nos mostrara que tipo de ajustes
serán necesarios en nuestra sintonía según el comportamiento del sistema.

Control de Procesos M.C. Antonio Rodríguez García 29


A continuación se enunciaran los pasos a seguir en este método de sintonía

 Determinar cual mapa de sintonía se aproxima a nuestra grafica obtenida del sistema
 Seleccionar el mapa de sintonía que, según nuestro juicio, es más satisfactoria para la
respuesta deseada.
 Ajustar la banda proporcional, integral y derivativa en la dirección indicada en el mapa
de sintonía para obtener nuestro comportamiento del sistema de la manera más
satisfactoria.

A continuación se muestra un ejemplo en el cual se utilizara este método de sintonía.

Ejemplo:

Nuestro sistema a sintonizar será el obtenido en el punto del Porciento Incompleto con un
controlador PID:

Control de Procesos M.C. Antonio Rodríguez García 30


La sintonía se realizara con la ayuda del toolbox SIMULINK de MATLAB

PrimeramenteEllecontrolador
asignamos valores arbitrariostrabaja
PID de SIMULNK a nuestro
con controlador y analizamos su respuesta,
valores de ganancias
como se muestra en la siguiente figura:

P= 13
I= 0.5
D= 0.12

Como se puede ver en el grafico anterior, se aprecia que se tarde en llegar a su estado estable,
para corregir eso, es necesario reducir nuestro tiempo de integración, como SIMULINK trabaja con
ganancias, esto equivale a aumentar la ganancia de integración; al haber reasignado valores, se
obtiene lo siguiente.

Control de Procesos M.C. Antonio Rodríguez García 31


P= 5
I= 3
D=0 .3

En el grafico anterior, aparentemente el sistema luce mejor, con dichos valores se puede
considerar el sistema sintonizado, pero intentaremos encontrar una mejor respuesta, una más
rápida, para esto dejaremos la ganancia de integración tal y como se encuentra, aumentaremos la
ganancia proporcional y le aumentaremos un poco la ganancia derivativa para ver el
comportamiento del sistema.

P= 10
I= 3
D= 1.5

Ya con estos valores se puede considerar el sistema sintonizado y con un mejor tiempo de
respuesta a comparación del obtenido con los valores mostrados anteriormente.

Control de Procesos M.C. Antonio Rodríguez García 32


Ziegler-Nichols

Este método se puede aplicar cuando la respuesta del sistema ante un escalón unitario presenta
en su gráfica una forma de “s”.

Para este método ocuparemos encontrar gráficamente el tiempo de retardo “L” y la constante de
tiempo “T”; las cuales se sabrán al proyectar una línea tangente en el punto de inflexión de la
curva desde el 0 hasta el valor del escalón.

De esta manera nuestra gráfica quedara dividida en dos y siendo la primera parte el retardo y la
segunda hasta el punto donde cruza el escalón la constante de tiempo.

Mediante este método podemos encontrar los valores de los controladores gracias a unas tablas
de formulas, las cuales pueden variar según de la forma de resolver este método. A continuación
se muestra la tabla con las formulas de valores para los diversos controladores:

Tipo de Kp Ti Td
Controlador
P T/L ∞ 0
PI .9 T/L L/0.3 0
PID 1.2 T/L 2L 0.5L

Control de Procesos M.C. Antonio Rodríguez García 33


A continuación se muestra un ejemplo en el cual se utilizara este método de sintonía.

Ejemplo:

A continuación se muestra el grafico obtenido del sistema al aplicarle una entrada escalón.

Ya teniendo nuestro grafico de respuesta a un escalón, se traza una línea recta por su punto de
inflexión (Punto en el cual tiende a hacer forma de S) la cual toque la mayor cantidad de puntos
posibles, tal y como se muestra en la figura anterior.

Control de Procesos M.C. Antonio Rodríguez García 34


A partir de esa traza se determina nuestra “L” y nuestra “T”.

L T

L= 0.25, T= 2.85
Aplicando nuestra tabla para un controlador PID se obtiene que:

Tipo de Kp Ti Td
Controlador
P T/L ∞ 0
PI .9 T/L L/0.3 0
PID 1.2 T/L 2L 0.5L

Control de Procesos M.C. Antonio Rodríguez García 35


Kp = 13.68 Ti = 0.5 seg/rep Td = 0.125 seg/rep
Debido a que el controlador PID de SIMULINK opera con ganancias, los valores a utilizar
serian:

Con los valores obtenidos se obtiene lo siguiente:

P= 13.68
I= 27.36
D= 1.71

Según este método, se puede considerar con dichos valores que nuestro sistema se encuentra
sintonizado, pero como se puede observar, se puede lograr una mejor sintonía del sistema. Para
mayor detalle ver métodos de Prueba y Error y Mapas de Sintonía.

Control de Procesos M.C. Antonio Rodríguez García 36


Ultimo periodo
Para este método nuestro sistema debe ser de lazo cerrado. Este método se basa en hacer
oscilar nuestro sistema con una ganancia unitaria para obtener nuestros valores de sintonía.

 El procedimiento es el siguiente
 Poner el tiempo de integración al máximo
 Poner el tiempo derivativo en el mínimo
 Poner la banda proporcional al máximo
 Poner el controlador en modo automático
 Reduzca la banda proporcional hasta que el sistema empiece a oscilar con una
ganancia unitaria (Ultima banda proporcional, Bu) y con una amplitud A lo más
pequeña posible.

 Mida el periodo de oscilación, Tu


 Ajuste las configuraciones de la siguiente forma:
o Para un controlador únicamente proporcional, B=2Bu para un 0.25 de
amortiguamiento. Si el controlador tiene unidades de ganancia, la ganancia
deberá ser uno y medio del valor que causo la oscilación.
o En los tres modos de controlador, en el cual la integral está en fase con la
contante de tiempo, la componente integral y derivativa deberán tener los
mismos valores de tiempo. Esto deberá de producir un desfasamiento mínimo.
Tiempo integral = Tiempo derivativo = Tu/2π o aproximadamente Tu/6
o Después de que son establecidos los tiempos de la integral y derivativa, ajuste
la banda proporcional o ganancia para obtener el amortiguamiento deseado. Si
se desea un amortiguamiento del 0.25, B= aproximadamente 1.77Bu.

A continuación se muestra un ejemplo en el cual se utilizara este método de sintonía.

Ejemplo
Nuestro sistema a sintonizar será el obtenido en el punto del Porciento Incompleto con un
controlador PID:

Control de Procesos M.C. Antonio Rodríguez García 37


Primero se hace oscilar nuestro sistema según los parámetros mencionados por el método
(Tiempo derivativo en cero y el integral al máximo, después ir bajando la banda proporcional),
como SIMULINK trabaja con ganancias, en el caso de la banda proporcional, el bajarla, implica
tener una ganancia menor.

Según lo mencionado, se obtuvo lo siguiente:

P= 3
I= 10
D= 0

Con el grafico anterior se puede observar que se tienen los siguientes valores:

Tu= 4 Seg Bu=3


Los valores que se deberán utilizar en el controlador son los siguientes, según los cálculos
sugeridos por el método:

Td = Ti= 0.5 seg/rep , Bu= 6


Debido a que el controlador PID de SIMULINK opera con ganancias, los valores a utilizar serian:

D = 0.5 seg , I = 2 rep/seg , Bu= 6

Control de Procesos M.C. Antonio Rodríguez García 38


Con los valores obtenidos se obtiene lo siguiente:

P= 6
I= 2
D= 0.5

Según este método, se puede considerar con dichos valores que nuestro sistema se encuentra
sintonizado, a diferencia de los demás métodos, este obtuvo una mejor sintonía de una manera
más rápida y eficiente de tiempo requerido, pero la única desventaja de este método es que no
siempre se puede utilizar en campo, debido a la necesidad de producir oscilaciones en los
sistemas.

Control de Procesos M.C. Antonio Rodríguez García 39


SISTEMAS CASCADA
La finalidad de este tipo de sistemas es la de controlar rápidamente las variables intermedias,
corrigiendo el efecto de las perturbaciones de entradas antes de que estas afecten a la salida del
proceso.

La estructura básica es la siguiente:

Para poder realizar un sistema tipo cascada, se deben tener la siguiente característica; la dinámica
(constante de tiempo) del lazo interno debe ser mucho más rápida que la del lazo externo.

Control de Procesos M.C. Antonio Rodríguez García 40


A continuación se muestra con un ejemplo la forma de analizar este tipo de sistemas:

Ejemplo
Nuestro sistema a sintonizar será el siguiente:

Este es un sistema cascada en el cual, el proceso esclavo cuenta con dos constantes de tiempo de
0.2 min y 0.05 min respectivamente y el proceso maestro también cuanta con dos constantes de
tiempo de 2 min y 0.5 min.

Para el análisis y sintonía de este tipo de sistemas, es necesario analizar primero el sistema de
mayor rapidez primero. Para sintonizar este sistema primero se analizara el proceso esclavo.

Una vez sintonizado nuestro sistema esclavo, se pasara a sintonizar el controlador maestro ya con
el controlador esclavo sintonizado.

El método de sintonización que se utilizara será el de último periodo, esto con la finalidad de
facilitar el trabajo, además que con la ayuda del programa SIMULINK de Matlab, este método se
puede utilizar sin ningún problema.

Ultimo periodo
(Recordando el método)

Para este método nuestro sistema debe ser de lazo cerrado. Este método se basa en hacer oscilar
nuestro sistema con una ganancia unitaria para obtener nuestros valores de sintonía.

El procedimiento es el siguiente

o Poner el tiempo de integración al máximo


o Poner el tiempo derivativo en el mínimo
o Poner la banda proporcional al máximo
o Poner el controlador en modo automático

Control de Procesos M.C. Antonio Rodríguez García 41


o Reduzca la banda proporcional hasta que el sistema empiece a oscilar con una ganancia
unitaria (Ultima banda proporcional, Bu) y con una amplitud A lo más pequeña posible.
o

o Mida el periodo de oscilación, Tu


o Ajuste las configuraciones de la siguiente forma:
o Para un controlador únicamente proporcional, B=2Bu para un 0.25 de
amortiguamiento. Si el controlador tiene unidades de ganancia, la ganancia
deberá ser uno y medio del valor que causo la oscilación.
o En los tres modos de controlador, en el cual la integral está en fase con la
contante de tiempo, la componente integral y derivativa deberán tener los
mismos valores de tiempo. Esto deberá de producir un desfasamiento mínimo.
Tiempo integral = Tiempo derivativo = Tu/2π o aproximadamente Tu/6.
o Después de que son establecidos los tiempos de la integral y derivativa, ajuste la
banda proporcional o ganancia para obtener el amortiguamiento deseado. Si se
desea un amortiguamiento del 0.25, B= aproximadamente 1.77Bu.

Para nuestro sistema esclavo se presentaron los siguientes resultados

P= 1
I= 50
D= 0

Por lo tanto los valores obtenidos son los siguientes:

Tu= 0.5 seg , Bu= 1

Control de Procesos M.C. Antonio Rodríguez García 42


Los valores que se deberán utilizar en el controlador son los siguientes, según los
cálculos sugeridos por el método:

Ti= 0.083 seg/rep , Bu= 1.77

Debido a que el controlador PID de SIMULINK opera con ganancias, los valores a utilizar serian:

I= 12 rep/seg , Bu= 1.77


Debido a que nuestro sistema es demasiado rápido, no será necesario aplicar una acción derivada
en el controlador.

El grafico del sistema esclavo sintonizado es el siguiente:

P= 1.77
I= 12
D= 0

Ya que tenemos nuestro sistema esclavo sintonizado, ya se puede sintonizar el sistema maestro.

Control de Procesos M.C. Antonio Rodríguez García 43


Siguiendo utilizando el método del último periodo, se muestran los siguientes
resultados:

P= 0.0001
I= 10
D= 0

Por lo tanto los valores obtenidos son los siguientes:

Tu= 4 seg , Bu= Indefinido


Los valores que se deberán utilizar en el controlador son los siguientes, según los cálculos
sugeridos por el método:

Ti= 0.66 seg/rep , Bu= indefinido


Debido a que el controlador PID de SIMULINK opera con ganancias, los valores a utilizar serian:

I= 1.5 rep/seg , Bu= Indefinido


En el grafico anterior se observo que el sistema no se logro hacer oscilar de forma unitaria, por lo
tanto para esta etapa del sistema, no se puede utilizar el método de último periodo, así que se
tendrá que asignar el valor de la ganancia y de ser necesario cambiar los valores de sintonía por
medio de la ayuda de los métodos de prueba y error y de los mapas de sintonía.

P= 1
I= 1.5
D= 0

Control de Procesos M.C. Antonio Rodríguez García 44


En el grafico anterior se observa que nuestra respuesta es muy lenta, para mejorar
esto, aumentaremos la ganancia integral y se aumentara la ganancia proporcional además de
aplicarle una derivada pequeña.

P= 4
I= 2
D= 1

En el grafico anterior se puede observar que la estabilización del sistema se encuentra


amortiguada, para esto se le reducirá la acción derivativa y se aumentara ligeramente la integral y
la proporcional

P= 5
I= 2.2
D= 0.5

Ya con este último grafico se puede concluir que ya nuestro Proceso en cascada se encuentra
debidamente sintonizado.

Control de Procesos M.C. Antonio Rodríguez García 45


ANÁLISIS COMPUTACIONAL CON
MATLAB
En esta sección vamos a ver cómo llevar a cabo la mayoría de los pasos anteriores, utilizando una
función de usuario (archivo .m) de Matlab.

Las acciones que lleva a cabo esta función son las siguientes:

o Trazo de LGR
o Trazo de Bode
o Trazo de Nyquist
o Respuesta al escalón/rampa
o Cálculo de controladores, y posibles controladores estables (para entradas
escalón y rampas)
o Generación de modelo en SIMULINK de la planta, lista para sintonizar

pasos a seguir
1. Asegurar que se tienen instalados los archivos necesarios para la ejecución del archivo
.m llamado “determinarControlador”; para llevar a cabo esto es necesario copiar todo
lo contenido en el siguiente archivo a la carpeta de trabajo de Matlab, la cual se
obtiene escribiendo el comando CD.

2. Ya teniendo instalado todo lo necesario, se necesita ejecutar Matlab, y declarar una


variable simbólica “s” de la siguiente manera: syms “s”
3. Ya teniendo declarada la variable, solo basta llamar la función
“determinarControlador”, la cual tiene como entrada 5 parámetros, los cuales son:
a. Numerador de la función, con variable “s” obligatoria (Utilizando la FT
obtenida en este trabajo sería: 0*s + 1 )
b. Denominador de la función, con variable “s” obligatoria (Utilizando la FT
obtenida en este trabajo sería: ((s+2)*(s+0.5)) )
c. Ganancia Kp (Ej. 1) Es necesario recordar que MATLAB maneja
ganancias, donde la parte proporcional es
d. Ganancia Ki (Ej. 1)
ganancia, la parte integral son rep/seg, y
e. Ganancia Kd (Ej. 1) la parte derivativa son seg

Para este ejercicio, la función “determinarControlador” se deberá de llamar de la siguiente


manera: determinarControlador(0*s + 1, ((s+2)*(s+0.5)), 1, 1, 1)

Control de Procesos M.C. Antonio Rodríguez García 46


Habiendo seguido estos pasos, ya se van a tener resultados, los cuales para la función de
transferencia de este trabajo son los siguientes, pero antes, recordaremos la FT.

Donde K es igual a 1 en este caso, recordando que es salida/entrada, que es 100/100

resultados

Control de Procesos M.C. Antonio Rodríguez García 47


En esta pantalla se muestra el mismo sistema original ordenado; y los posibles controles
estables, esto utilizando el método del límite; es decir, calculando el límite cuando “s” tiende a
ser cero, y verificando si el resultado final es cero o no. (cero = estable)

Como podemos ver, para esta planta los posibles controladores estables (pero no precisamente
sintonizados con ganancias unitarias…) para una entrada ESCALÓN serían:

 Control I
 Control PI
 Control PID

Para una entrada RAMPA, para este preciso sistema no habría un controlador estable.

Luego de mostrar esta pantalla saldrán unos diálogos de preguntas, acerca de qué tipo de
resultados queremos ver; sin embargo, si presionamos “Si” a todos esos mensajes, podremos
ver las siguientes ventanas.

Control de Procesos M.C. Antonio Rodríguez García 48


En esta ventana se muestran TODAS las respuestas de TODOS los sistemas (original, con P,
con PI, con PID, etc) a una entrada escalón, de manera predeterminada, ya que si se presiona
botón derecho se puede seleccionar el tipo de entrada a analizar (escalón, rampa, etc), así
como también seleccionar los sistemas a mostrar.

A continuación veremos todas las ventanas de las gráficas de cada uno de los sistemas
generados, es decir, el sistema original, con P, con PI, con PID, etc. Estas mismas gráficas son
“exportadas” a alguna carpeta de nuestro sistema; esta carpeta se nos es preguntada al
momento de presionar “Si” a generar las gráficas de LGR.

**NOTA: Si por alguna razón (versión de Matlab no compatible) no llegase a mostrarse el


diálogo para la selección de la carpeta de donde guardar las imágenes exportadas; estás serán
guardadas de manera predeterminada en C:\

Control de Procesos M.C. Antonio Rodríguez García 49


SISTEMA ORIGINAL (LAZO ABIERTO)

SISTEMA ORIGINAL + CONTROL P (LAZO CERRADO)

Control de Procesos M.C. Antonio Rodríguez García 50


SISTEMA ORIGINAL + CONTROL I (LAZO CERRADO)

SISTEMA ORIGINAL + CONTROL D (LAZO CERRADO)

Control de Procesos M.C. Antonio Rodríguez García 51


SISTEMA ORIGINAL + CONTROL PI (LAZO CERRADO)

SISTEMA ORIGINAL + CONTROL PID (LAZO CERRADO)

Control de Procesos M.C. Antonio Rodríguez García 52


Esta funcionalidad de ver todas las gráficas necesarias de cada uno de los
controladores es bastante útil al momento de analizar de manera superficial y rápida el
comportamiento de estos mismos; ya que sin mucho esfuerzo se puede obtener información
como el rango de estabilidad, ganancia crítica, etc.

Cabe señalar que los sistemas antes graficados todos son a lazo cerrado, con excepción el
sistema original, es decir, el sistema sin control alguno, ya que este es a lazo abierto. El lazo
se cierra con una retroalimentación unitaria.

Otra función más del sistema es la opción de generar el modelo de SIMULINK, listo para
sintonizar mediante los métodos de sintonía vistos anteriormente en este mismo trabajo.

Con este modelo ya solo es cuestión de ajustar las ganancias de cada una de las etapas
(Proporcional, Derivativo e Integral) para poder sintonizar de manera teórica el sistema con
su respectivo controlador.

**NOTA: Al momento de cerrar el modelo en simulink, les preguntará si desean guardar


cambios; es necesario que presionen que NO, o que lo guarden con otro nombre, ya que ese
mismo modelo será utilizado en la siguiente corrida de la función “determinarControlador”, y si
guardan los cambios no será un modelo en blanco lo que se abrirá.

Control de Procesos M.C. Antonio Rodríguez García 53


En este caso, los valores necesarios para sintonizar el sistema del trabajo serían:

Proporcional Integral Derivativo


Modelo Real 9 100 (seg/rep) 2 seg
Modelo en Matlab 9 0.01 (rep/seg) 2 seg

Control de Procesos M.C. Antonio Rodríguez García 54


Con una respuesta a una entrada escalón igual a:

Conclusiones
A manera de conclusión de esta sección, podemos decir que una manera bastante de sencilla de
analizar un sistema es mediante el uso de software computacional como MATLAB, aunque puede
llegar a ser aun más sencillo con el uso de funciones ya diseñadas específicamente para esto,
como el caso de la función utilizada en esta sección (determinarControlador). Lo que nos puede
llevar más de una hora en hacer a mano, nos puede llevar menos de 10 min en hacerlo con algún
software especializado.

Control de Procesos M.C. Antonio Rodríguez García 55


ANEXOS
A.- Ejemplo de uso de la función “determinarControlador”
determinarControlador(0*s + 1, ((s+2)*(s+0.5)), 1, 1, 1)

B.- Código fuente de la función “determinarControlador”


function determinarControlador(numerador, denonimador, gain_kp, gain_ki, gain_kd)
try
%Borramos la pantalla
clc

%Declaramos la variable del CD


dirOriginal = '';

%Convertimos las variables principales


planta = numerador/denonimador;
num = sym2poly(numerador);
den = sym2poly(denonimador);

%Declaración de variables simbólicas


syms 's';
syms 'kp';
syms 'ki';
syms 'kd';

%Declaración de controladores a determinar


control_p = kp;
control_i = ki/s;
control_d = kd*s;
control_pi = control_p + control_i;
control_pid = control_pi + control_d;

%Controladores utilizados al momento de generar las gráficas


NUM_control_p = [0 gain_kp];
DEN_control_p = [0 1];
NUM_control_i = [0 gain_ki];
DEN_control_i = [1 0];
NUM_control_d = [gain_kd 0];
DEN_control_d = [0 1];
NUM_control_pi = [gain_kp gain_ki];
DEN_control_pi = [1 0];
NUM_control_pid = [gain_kd gain_kp gain_ki];
DEN_control_pid = [1 0];

%Declaración de tipos de entradas al sistema


escalon = 1/s;
rampa = 1/(s^2);

%Mostramos el sistema original (sin controladores)


fprintf('\n\nLa planta original:');
pretty(planta);
fprintf('\n\nLa planta original (desarrollada):');
['Numerador' poly2sym(num); 'Denominador' poly2sym(den)]

%Preguntamos si requieren generar las gráficas


generarGraficasDlg = questdlg('¿Generar las gráficas?', 'Gráficas de los
controladores');
switch generarGraficasDlg
case 'Yes'
generarGraficas = 1;
otherwise
generarGraficas = 0;

Control de Procesos M.C. Antonio Rodríguez García 56


end;

%Determinamos si se mandaron los parámetros necesarios para generar las gráficas (NUM y
DEN)
if (generarGraficas == 1)

%Preguntamos si requieren generar las gráficas del LGR


generarGraficasDlg = questdlg('¿Desea que una de las gráficas que se generen sean
las gráficas del LGR?', 'Gráficas de los controladores');
switch generarGraficasDlg
case 'Yes'
generarGraficasLgr = 1;
otherwise
generarGraficasLgr = 0;
end;

%Preguntamos si requieren generar las gráficas de la respuesta en el tiempo


generarGraficasDlg = questdlg('¿Desea que una de las gráficas que se generen sean
las gráficas de la respuesta en el tiempo?', 'Gráficas de los controladores');
switch generarGraficasDlg
case 'Yes'
generarGraficasResp = 1;
otherwise
generarGraficasResp = 0;
end;

scrsz = get(0,'ScreenSize');
sys_Original_LazoAbierto= TF(num,den); %Lazo Abierto
fprintf('\n\nSe generarán las gráficas del sistema original y sus controladores...');

%Calculamos los sistemas con los controles


numCtrl = sym2poly(poly2sym(num) * poly2sym(NUM_control_p));
denCtrl = sym2poly(poly2sym(den) * poly2sym(DEN_control_p));
sys_ControlP_LazoCerrado= feedback(TF(numCtrl, denCtrl), 1);
numCtrl = sym2poly(poly2sym(num) * poly2sym(NUM_control_i));
denCtrl = sym2poly(poly2sym(den) * poly2sym(DEN_control_i));
sys_ControlI_LazoCerrado = feedback(TF(numCtrl, denCtrl), 1);
numCtrl = sym2poly(poly2sym(num) * poly2sym(NUM_control_d));
denCtrl = sym2poly(poly2sym(den) * poly2sym(DEN_control_d));
sys_ControlD_LazoCerrado = feedback(TF(numCtrl, denCtrl), 1);
numCtrl = sym2poly(poly2sym(num) * poly2sym(NUM_control_pi));
denCtrl = sym2poly(poly2sym(den) * poly2sym(DEN_control_pi));
sys_ControlPI_LazoCerrado = feedback(TF(numCtrl, denCtrl), 1);
numCtrl = sym2poly(poly2sym(num) * poly2sym(NUM_control_pid));
denCtrl = sym2poly(poly2sym(den) * poly2sym(DEN_control_pid));
sys_ControlPID_LazoCerrado = feedback(TF(numCtrl, denCtrl), 1);

if (generarGraficasResp == 1)
ltiview('step', sys_Original_LazoAbierto, sys_ControlP_LazoCerrado,
sys_ControlPI_LazoCerrado, sys_ControlPID_LazoCerrado)
end;

%Verificamos si se van a graficar lo LGR...


if (generarGraficasLgr == 1)

%Cambiamos de directorio actual, para guardar las imágenes en el lugar especificado


dirOriginal = cd;

%Intentamos cargar el díalogo para donde guardar las gráficas


try
dirImg = uigetfolder('Carpeta para guardar las gráficas');
catch
dirImg = 'C:\';
end

if (isempty(dirImg))
dirImg = 'C:\';
end;
cd(dirImg);

%Graficamos el sistema original

Control de Procesos M.C. Antonio Rodríguez García 57


fig_Original = figure('Position',[20 40 scrsz(3)-40 scrsz(4)-100],
'Name', 'Original - Lazo Abierto');
subplot(2,1,1), rlocus(sys_Original_LazoAbierto), title('LGR - Original - Lazo
Abierto');
subplot(2,4,5), step(sys_Original_LazoAbierto), title('Entrada Escalón');
subplot(2,4,6), impulse(sys_Original_LazoAbierto), title('Entrada Rampa');
subplot(2,4,7), bode(sys_Original_LazoAbierto), title('Diagrama de BODE');
subplot(2,4,8), nyquist(sys_Original_LazoAbierto), title('Diagrama de Nyquist');
set(gcf,'PaperPositionMode','auto')
print -djpeg -zbuffer -r100 'Original.jpg';

%Graficamos el sistema original con controlador P


fig_CtrlP = figure('Position',[20 40 scrsz(3)-40 scrsz(4)-100], 'Name', 'Control
P - Lazo Cerrado');
subplot(2,1,1), rlocus(sys_ControlP_LazoCerrado), title('LGR - Control P - Lazo
Cerrado');
subplot(2,4,5), step(sys_ControlP_LazoCerrado), title('Entrada Escalón');
subplot(2,4,6), impulse(sys_ControlP_LazoCerrado), title('Entrada Rampa');
subplot(2,4,7), bode(sys_ControlP_LazoCerrado), title('Diagrama de BODE');
subplot(2,4,8), nyquist(sys_ControlP_LazoCerrado), title('Diagrama de Nyquist');
set(gcf,'PaperPositionMode','auto')
print -djpeg -zbuffer -r100 'Control_P.jpg';

%Graficamos el sistema original con controlador I


fid_CtrlI = figure('Position',[20 40 scrsz(3)-40 scrsz(4)-100], 'Name', 'Control
I - Lazo Cerrado');
subplot(2,1,1), rlocus(sys_ControlI_LazoCerrado ), title('LGR - Control I - Lazo
Cerrado');
subplot(2,4,5), step(sys_ControlI_LazoCerrado ), title('Entrada Escalón');
subplot(2,4,6), impulse(sys_ControlI_LazoCerrado ), title('Entrada Rampa');
subplot(2,4,7), bode(sys_ControlI_LazoCerrado ), title('Diagrama de BODE');
subplot(2,4,8), nyquist(sys_ControlI_LazoCerrado ), title('Diagrama de
Nyquist');
set(gcf,'PaperPositionMode','auto')
print -djpeg -zbuffer -r100 'Control_I.jpg';

%Graficamos el sistema original con controlador D


fig_CtrlD = figure('Position',[20 40 scrsz(3)-40 scrsz(4)-100], 'Name', 'Control
D - Lazo Cerrado');
subplot(2,1,1), rlocus(sys_ControlD_LazoCerrado ), title('LGR - Control D - Lazo
Cerrado');
subplot(2,4,5), step(sys_ControlD_LazoCerrado ), title('Entrada Escalón');
subplot(2,4,6), impulse(sys_ControlD_LazoCerrado ), title('Entrada Rampa');
subplot(2,4,7), bode(sys_ControlD_LazoCerrado ), title('Diagrama de BODE');
subplot(2,4,8), nyquist(sys_ControlD_LazoCerrado ), title('Diagrama de
Nyquist');
set(gcf,'PaperPositionMode','auto')
print -djpeg -zbuffer -r100 'Control_D.jpg';

%Graficamos el sistema original con controlador PI


fig_CtrlPI = figure('Position',[20 40 scrsz(3)-40 scrsz(4)-100], 'Name', 'Control
PI - Lazo Cerrado');
subplot(2,1,1), rlocus(sys_ControlPI_LazoCerrado ), title('LGR - Control PI -
Lazo Cerrado');
subplot(2,4,5), step(sys_ControlPI_LazoCerrado ), title('Entrada Escalón');
subplot(2,4,6), impulse(sys_ControlPI_LazoCerrado ), title('Entrada Rampa');
subplot(2,4,7), bode(sys_ControlPI_LazoCerrado ), title('Diagrama de BODE');
subplot(2,4,8), nyquist(sys_ControlPI_LazoCerrado ), title('Diagrama de
Nyquist');
set(gcf,'PaperPositionMode','auto')
print -djpeg -zbuffer -r100 'Control_PI.jpg';

%Graficamos el sistema original con controlador PID


fig_CtrlPID = figure('Position',[20 40 scrsz(3)-40 scrsz(4)-100], 'Name',
'Control PID - Lazo Cerrado');
subplot(2,1,1), rlocus(sys_ControlPID_LazoCerrado ), title('LGR - Control PID -
Lazo Cerrado');
subplot(2,4,5), step(sys_ControlPID_LazoCerrado ), title('Entrada Escalón');
subplot(2,4,6), impulse(sys_ControlPID_LazoCerrado ), title('Entrada Rampa');
subplot(2,4,7), bode(sys_ControlPID_LazoCerrado ), title('Diagrama de BODE');

Control de Procesos M.C. Antonio Rodríguez García 58


subplot(2,4,8), nyquist(sys_ControlPID_LazoCerrado ), title('Diagrama
de Nyquist');
set(gcf,'PaperPositionMode','auto')
print -djpeg -zbuffer -r100 'Control_PID.jpg';

end;

else
sys_Original_LazoAbierto= 0;
fprintf('\n\nNo se generarán las gráficas de cada controlador');
end;

%%%%%%%%%%%%%%%%%%%%%%%% CALCULOS PARA UNA ENTRADA ESCALÓN %%%%%%%%%%%%%%%%%%%%%%%%


%Calculamos los límites de los sistemas con los controladores cuando 's' tiende a '0'
res_escalon_control_p = limit((1/(1+(control_p*planta)))*s*escalon, s, 0);
res_escalon_control_i = limit((1/(1+(control_i*planta)))*s*escalon, s, 0);
res_escalon_control_d = limit((1/(1+(control_d*planta)))*s*escalon, s, 0);
res_escalon_control_pi = limit((1/(1+(control_pi*planta)))*s*escalon, s, 0);
res_escalon_control_pid = limit((1/(1+(control_pid*planta)))*s*escalon, s, 0);

fprintf('\n\nControladores estables para una entrada ESCALON:\n');


if (res_escalon_control_p == 0) fprintf('Control P\n'); end
if (res_escalon_control_i == 0) fprintf('Control I\n'); end
if (res_escalon_control_d == 0) fprintf('Control D\n'); end
if (res_escalon_control_pi == 0) fprintf('Control PI\n'); end
if (res_escalon_control_pid == 0) fprintf('Control PID\n'); end

%%%%%%%%%%%%%%%%%%%%%%%% CALCULOS PARA UNA ENTRADA RAMPA %%%%%%%%%%%%%%%%%%%%%%%%


%Calculamos los límites de los sistemas con los controladores cuando 's' tiende a '0'
res_rampa_control_p = limit((1/(1+(control_p*planta)))*s*rampa, s, 0);
res_rampa_control_i = limit((1/(1+(control_i*planta)))*s*rampa, s, 0);
res_rampa_control_d = limit((1/(1+(control_d*planta)))*s*rampa, s, 0);
res_rampa_control_pi = limit((1/(1+(control_pi*planta)))*s*rampa, s, 0);
res_rampa_control_pid = limit((1/(1+(control_pid*planta)))*s*rampa, s, 0);

fprintf('\n\nControladores estables para una entrada RAMPA:\n');


if (res_rampa_control_p == 0) fprintf('Control P\n'); end
if (res_rampa_control_i == 0) fprintf('Control I\n'); end
if (res_rampa_control_d == 0) fprintf('Control D\n'); end
if (res_rampa_control_pi == 0) fprintf('Control PI\n'); end
if (res_rampa_control_pid == 0) fprintf('Control PID\n'); end

%Preguntamos si quieren abrir el modelo en blanco


generarModeloDlg = questdlg('¿Generar el modelo en simulink, en blanco?', 'Modelo en
Simulink');
switch generarModeloDlg
case 'Yes'
generarModelo = 1;
otherwise
generarModelo = 0;
end;

if (generarModelo == 1)
PID
end;

cd(dirOriginal) %Regresamos al directorio original

catch
if ~isempty(dirOriginal)%(dirOriginal ~= '')
cd(dirOriginal) %Regresamos al directorio original
end;
end

%--------------- Pasamos las variables al workspace BASE ---------------%


% get list of variable names in the current workspace
varNames = who;

% loop through all variables in the current workspace

Control de Procesos M.C. Antonio Rodríguez García 59


for varNamesii = 1:length(varNames)

% convert variable name from cell to string


varName = char(varNames(varNamesii));

% assign variable to the base workspace


assignin('base', varName, eval(varName));
end
%-----------------------------------------------------------------------%

fprintf('\n\n\n');

Control de Procesos M.C. Antonio Rodríguez García 60

También podría gustarte