Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
FACULTAD DE INGENIERÍA
DEPARTAMENTO DE INGENIERÍA ELÉCTRICA Y ELECTRÓNICA
Proyecto 4
Control por Computador 410 151
Modelación y Simulación de un Sistema de Estanque
Proyecto 4
Control por Computador 410 151
En este tercer proyecto se trabajará con el estanque 1 del
sistema de estanques de la Fig. 1. En este proyecto se trabajará con
control fuzzy aplicado al sistema.
En todo momento se utilizará MatLab Simulink. Responda,
comente y justifique cada una de las siguientes preguntas.
La altura referencia será:
href(t) = 10 + 5u(t – 5)
A. Solución
1. Redes neuronales.
2. Algoritmos evolutivos.
3. Logica difusa.
El subsistema de percepción
Este subsistema se encarga de tomar las decisiones de acuerdo con los datos proporcionados
por la recepción del sistema, se establece las reglas y sus actividades proporciona
razonamiento, planificación y aprendizaje
El subsistema de actuación
Los actuadores (bombas, electroválvulas, etc.) reciben las señales del sistema cognitivo para
llevar la planta al estado deseado
Para esta experiencia utilizaremos el control fuzzy o control experto para que establezca las
decisiones que el sistema debe tomar.
El control fuzzy es utilizado en los casos que no se requiere todos los detalles de la planta,
ya que no afectaran demasiado al proceso, también en los casos donde modelar el sistema a
controlar es sumamente difícil de hacer o simplemente no se puede.
Este tipo de control inteligente también es llamado control experto dado que básicamente
trata de obtener los conocimientos de un operador y llevarlos a un algoritmo de control, sin
embargo, estas frases lingüísticas suelen ser difusas y con cierto grado de incertidumbre.
➢ Lógica difusa: 90°C→ 100% de veracidad de que el tanque está caliente por ende se le
asocia un 1 como grado de veracidad.
El control fussy se divide en tres etapas, las cuales se aprecian en la siguiente imegen:
Fusificación:
En esta etapa se desarrolla el mapeo de las entradas al controlador lógico difuso (FLC)
asignándoles un grado de pertenencia a cada conjunto de valores reales de la entrada.
Las entradas de este bloque son valores concretos de las variables de entrada y las salidas
son grados de pertenencia a los conjuntos difusos.
En esta sección se definen: número de estados; tamaño del universo; cantidad y forma de set
difusa
En esta etapa se establecen las reglas que definen el sistema y toma de decisiones de
acuerdo con los valores de pertenencia de la entrada arrojando un valor de pertenencia a la
salida.
Para elaborarlo se utilizan, leyes físicas, conocimiento “experto” y datos de controladores.
Defusificación
En este bloque se mapea a la lógica tradicional los valores de la salida obtenidos por medio
de la inferencia, es el inverso del bloque de Fusificación, pasando de valores de pertenencia
a magnitudes reales.
Para esta etapa se utilizan diferentes métodos matemáticos, el más utilizado se denomina
centro de área, este consiste en el cálculo del valor del centro de gravedad o del área que
corresponde a la acción de control y lo asigna a la señal de control.
2𝑘√ℎ10 2𝐴√ℎ10
Con 𝑘𝑝 = yτ =
𝑘1 𝑘1
Cristofer Millalaf, Esteban Varas.
Donde
𝑐𝑚3
K: Constante de conversión de voltaje a flujo (25 )
𝑠∗𝑣
𝒉𝟏𝟎 : Punto de operación (12 𝑐𝑚)
𝑐𝑚
𝑲𝟏 : Constante de Bernoulli. (𝐴 ∗ √2 𝑔 = 12.94 )
𝑠
A: Área del estanque (141.02 𝑐𝑚2 )
𝑐𝑚
𝑲𝒑 : Ganancia de la planta (13.385 𝑣 )
𝝉: Constante de tiempo de la planta (75.50)
Para implementar el control por la línea de código se procede a discretizar la planta para
poder simularla:
𝑘𝑝
ℎ(𝑠) =
𝜏𝑠 + 1
(1.2)
1 𝑧
Utilizando invarianza al escalón (𝑢(𝑡) = ⇒ )
𝑠 𝑧−1
1
𝐻(𝑧) = ℤ[ℒ −1 {𝐻(𝑠) 𝑥(𝑠) }] (1.3)
𝑋(𝑧)
𝑧−1 𝐾𝑝 1
𝐻(𝑧) = ∗ ℤ [ℒ −1 { ∗ }] (1.4)
𝑧 𝜏𝑠 + 1 𝑠
Haciendo fracciones parciales resulta de la siguiente forma
𝑘𝑝 1 𝐴 𝐵
∗ = + ∕ ∗ (𝜏𝑠 + 1)𝑠
𝜏𝑠 +1 𝑠 𝑠 𝜏𝑠+1
(1.5)
𝑘𝑝 = 𝐴(𝜏𝑠 + 1) + 𝐵 𝑠
(1.6)
Con 𝒔 = 0 ⇒ 𝑨 = 𝑘𝑝
−1
𝒔= ⇒ 𝑩 = − 𝜏 𝑘𝑝
𝜏
𝑧−1 𝐾𝑝 𝜏𝐾𝑝
H(𝑧) = ∗ ℤ [ℒ −1 { −
𝜏𝑠 + 1 }]
(1.7)
𝑧 𝑠
𝑧−1 1 1
= 𝐾𝑝 ( ) ∗ ℤ [ℒ −1 { − }] (1.8)
𝑧 𝑠 𝑠+1
𝜏
𝑧−1 1
= 𝐾𝑝 ( ) ∗ ℤ [𝑢(𝑡) − 𝑒 −𝜏𝑇 ] (1.9)
𝑧
𝑧−1 𝑧 𝑧
= 𝐾𝑝 ( )[ ∗ 𝑇]
(1.10)
𝑧 𝑧−1 −
𝑧−𝑒 𝜏
𝑧−1
= 𝐾𝑝 [1 − ( 𝑇 )]
(1.11)
−
𝑧−𝑒 𝜏
𝑇
1 − 𝑒 −𝜏
𝐻(𝑧) = 𝐾𝑝 ( 𝑇)
(1.12)
−
𝑧−𝑒 𝜏
T
Definimos 𝛼 = 𝑒 − 𝜏 por comodidad
𝐾𝑝 (1 − 𝛼)
𝐻(𝑧) = (1.13)
𝑧−𝛼
𝛽 𝑧 −1 𝛽𝑧 −1
𝐻 (𝑧) = 𝑧−𝛼 / 𝑧−1 = 1−𝛼𝑧 −1
(1.14)
y(𝑧) 𝛽𝑧 −1
H(𝑧) = = (1.15)
u(𝑧) 1 − 𝛼𝑧 −1
Ahora con la planta ya definida se procede a desarrollar el control difuso, comenzando con
la etapa de Fusificación.
Donde ℎ𝑟𝑒𝑓 (𝑘) será la referencia o setpoint dado por el operador y ℎ(𝑘) será la altura
sensada de la planta, ambos en el instante K, y como segunda entrada tendremos la derivada
del error o cambio de él, definido por:
Para esta sección no se utilizan las funciones de membresía clásica del control fuzzy, si no
unas definida por nosotros mismos.
1. Negativo
2. Cero
3. Positivo
Esta indica que será aceptado un error de 1 centímetro y si es mayor se forma una acción
correctiva.
El delta error estará categorizado y definido por:
Esto indica que se requiere un control preciso y ante pequeñas variaciones del error se
tomaran acciones correctivas para minimizarlo.
A continuación, se expone una tabla explicativa
Tabla 1. Definición de las funciones características utilizadas en el error y su derivada.
Categoría Comentario
Negativo Indica error negativo, conlleva altura mayor a la referencia y la derivada negativa indica
una tendencia a continuar aumentando la altura.
Cero Indica error cero, alturas estanque igual a referencia y una tendencia de cambio de error
nula.
Positivo Indica error positivo, altura menor a la referencia y tendencia de cambio de error a
continuar aumentando implicando que la altura continúe disminuyendo.
Según lo expuesto anteriormente los conjuntos difusos para el error y la derivada de el quedara definidos
como se visualizan en la figura
1. Disminuir.𝑈(𝑘) = −0.5
2. Mantener. 𝑈(𝑘) = 0
3. Aumentar. 𝑈(𝑘) = 0.5
4. Disminuir harto. 𝑈(𝑘) = −1
5. Aumentar harto. 𝑈(𝑘) = 1
Cabe señalar que en esta sección de la experiencia no se trabaja con valores de pertenencia
que varían entre 0 y 1, sino que se les asigna el mismo valor limite a las variables
fusificadas, esto con el fin de evitar un proceso de Defusificación complejo más adelante.
Al poseer todas las variables fusificadas se debe desarrollar la etapa de inferencia, donde se
plantea un conjunto de reglas para tomar la decisión de que hacer.
Observación: El error negativo implica que la altura sensada está por encima de la
referencia, esto indica que se debe disminuir el voltaje a menos que la tendencia del error ya
sea negativa, entonces mantenemos el voltaje.
4) Si el error es cero y la tendencia del error es negativa entonces disminuir la salida de voltaje.
5) Si el error es cero y la tendencia del error es cero entonces mantener el voltaje.
6) Si el error es cero y la tendencia del error es positiva entonces aumentar el voltaje.
Observación: El error cero implica que la altura sensada es igual a la referencia, entonces
se debe variar el voltaje de acuerdo con la tendencia del error para mantener en ese estado.
Observación: El error positivo implica una altura sensada menor a la referencia por ende se
debe aumentar el voltaje aplicando en la bomba, sin embargo, si la tendencia del error es de
disminuir entonces se mantiene el voltaje que ya se está aplicando.
Fig. 1.6 Alturas y voltaje aplicado al sistema con yk como la altura real, uk el voltaje
aplicado a la planta como acción de control y sp la referencia ingresada.
Observación: Lógicamente en el momento cero el delta error presenta su máximo pick dado
que en aquel momento la altura está en cero y la referencia en 10 [cm], luego en un
Cristofer Millalaf, Esteban Varas.
transcurso de muy poco tiempo se observa que este se asienta en torno a valores cercanos a
cero, esto es un indicador de que el error no varía de forma muy abrupta, de ser así la
derivada se dispararía, con respecto al error este presenta el mismo tipo de comportamiento
sin embargo posee magnitudes mayores.
clear all
%% Tiempo de muestreo
Ts=1;
%% parámetros de la planta
kp=13.385; % Ganancia
tau=75.5; % constante de tiempo
alpha=exp(-Ts/tau); % A(Z-1): Parte autorregresiva
beta=kp*(1-alpha); % B(Z-1): parte media móvil
yk1=0; % condición inicial de salida
uk1=0; % condición inicial de entrada
%% parámetros control
yref=10; % referencia
tend=400; % tiempo final de simulación
M = tend/Ts; % cantidad de muestras
ek1=0; % condición inicial del error (pasado para delta)
% límites de la salida
umin=0; % límite inferior
umax=5; % límite superior
%% Conjuntos difusos
% define conjunto difuso del error (ek)
Ne=-1; % define límite superior error negativo
Ze= 0; % define error cero
Pe= 1; % define límite inferior error positivo
% define conjunto difuso del delta error (dek)
Nde= -0.1; % define límite superior error negativo
Zde= 0; % define error cero
Pde= 0.1; % define límite inferior error negativo
% define el conjunto difuso de la salida (uk)
Nu = -0.5; % negativo pequeño (disminuye)
Zu = 0; % cero (mantiene)
Pu = 0.5; % positivo pequeño (aumenta)
MPu= 1; % positivo grande (aumenta arto)
MNu= -1;% negativo grande (disminuye arto)
for k=1:M
%% simulación de la planta
yk = alpha*yk1 + beta*uk1 + 1*randn;
Solución b)
En esta sección se profundiza aún más en lo que es el control difuso y se utilizan sus
características más notorias, como los valores de pertenencia asignados a las variables reales
con diferentes relaciones con el eje X como, por ejemplo, en la “figura (2.1)” donde el valor
de pertenencia posee una relación lineal con el eje X arrojando una función característica
triangular
De esta forma existen diferentes tipos de funciones características, la forma que se utiliza
depende del criterio aplicado en la resolución de cada problema y variara en función del
punto de vista del operador, la única condición que se debe cumplir es que tome valores
comprendidos entre 0 y 1 de forma continua.
El hecho de que las funciones puedan entrelazarse da a conocer un aspecto clave de la lógica
difusa y es que una variable puede pertenecer a diferentes grados a varios conjuntos difusos
a la vez, es decir “el vaso puede estar medio lleno y medio vacío a la vez”.
Se trabaja con el modelo no lineal de la planta y con un ruido con potencia de 0.5, esto se
visualiza en la siguiente imagen:
A continuación, se procede a desarrollar el diseño del controlador fuzzy, para ello se hará uso de la
herramienta toolbox de Matlab, la cual presenta la siguiente estructura y se puede acceder a ella
escribiendo “fuzzy” en el command window.
Una vez definidas las entradas o variables lingüísticas se proceden a asignarles sus universos
de discusión, estos son los rangos dentro de los cuales las variables se moverán en la
realidad.
Para el error, dado que el estanque posee una altura máxima de 30[𝑐𝑚] el error podrá variar
entre [−30 𝑦 30][𝑐𝑚]
Para la derivada del error el operador (nosotros) indica que el estanque no modifica su altura
a más de 1[𝑐𝑚⁄𝑠] sin embargo debido a la gran cantidad de ruido presente es mejor
considerar un universo de discusión para la derivada entre [−5,5][𝑐𝑚⁄𝑠] y finalmente para
la salida se utiliza un universo de discusión de ± 1.
Esta elección se realiza en base al hecho que, esta variable será integrada antes de ingresar a
la planta, con el fin de generar un voltaje que se mantenga en caso de presentarse un cero
(condición de mantener voltaje) en la salida del controlador, además se requiere que la
función de membresía considere valores negativos, posterior a la integral es escalada
adecuadamente (para rango de 0-5[𝑣]) e ingresada a la planta.
2° paso Categorización.
Para el error y delta error se utilizan 3 categorías a las cuales se les asocia un numero para
posteriormente desarrollar una tabla explicativa.
La declaración “Negativa” implica un error menor que cero y un delta error de la misma
característica, lo que indica una altura mayor a la referencia y tendencia a continuar y
aumentar esta situación (continúa aumentando la altura).
La declaración “Cero” implica un error nulo al igual que el delta error, esto indica una altura
igual a la referencia y una tendencia a continuar así.
La declaración “Positivo” implica un error mayor que cero al igual que la derivada de él,
esto indica que la altura del estanque es menor a la referencia y una tendencia a aumentar
este efecto (continúa disminuyendo la altura).
• Disminuir harto ⇒ −2
• Disminuir.⇒ −1
• Mantener⇒ 0
• Aumentar. ⇒ 1
• Aumentar harto. ⇒ 2
De acuerdo con lo expuesto se poseen 3 categorías para las entradas por ende existen 32 = 9
posibles reglas, una manera conveniente de listar las reglas es mediante una representación
matricial como la que se visualiza en la siguiente tabla:
Con todo esto definido se puede continuar con la etapa de inferencia donde se establecen las
reglas del control difuso, estas son las siguientes:
Fig. 2.9 Conjunto de reglas que establecen la toma de decisiones del sistema de
control.
Es interesante que una vez finalizado el diseño se puede observar la superficie que
representa la salida del controlador fuzzy como función de las 2 señales de entrada, lo que se
aprecia en la figura de a continuación.
Otra herramienta útil es el Rule viewer, la cual permite visualizar el estado de todas las
reglas de control ante una determinada combinación de las variables de entrada, permitiendo
además apreciar el comportamiento de la salida del controlador fuzzy y la salida
desfusificada para dichas entradas (representada por una línea vertical de color rojo), las
entradas se pueden variar desplazando la barra roja vertical que esta sobre ellas, esta
herramienta se visualiza a continuación.
Dado que la salida de controlador fuzzy es proporcional a la derivada de la actuación real que debe
Cristofer Millalaf, Esteban Varas.
aplicarse al sistema, es preciso que la salida (desfusificada) sea integrada (limitando los valores entre
0 y 1, para que permanezca normalizada), para posteriormente escalar este rango al intervalo real en
que opera la planta, en nuestro caso de 0 a 5[𝑣].
Fig. 2.13 Alturas del estanque registradas con controlador fuzzy por toolbox.
Observación: De la figura 2.13 se puede apreciar que la altura real del sistema posee un
bastante buen seguimiento de la referencia con poco error en torno a él, su respuesta es
bastante rápida teniendo un tiempo de subida menor a 25 segundos.
Observación: Se aprecia claramente como se presentan los pick máximos en los tiempos 0
y 300[s] momentos en los cuales se genera el repentino cambio en la referencia, se observa
un pick de igual magnitud entre los tiempos 400 y 450[s] este solo se puede generar debido
a la aparición de un gran ruido en ese instante.
Observación: Se aprecia una gran cantidad de picks de gran magnitud, esto es debido
principalmente al ruido presente en la señal y dado que esta es la derivada del error quien
por definición es el calculo de la pendiente de una recta, a mayor pendiente mayor será la
derivada, como el operador estaba consiente de este efecto del error se desarrollo el universo
de discusión de la variable delta error mayor a lo que las condiciones de variación de altura
de la planta lo requerían, para tratar de obviar el efecto del error.
Se observo como por medio de la implementación por líneas de código el control era mas
cercano a la lógica clásica y presentaba un comportamiento no tan aceptable como el del
toolbox de Matlab, esto debido principalmente a que la herramienta proporciona un
ambiente mas cercano a lo que es la lógica difusa y permite la asignación de valores de
pertenencia que varíen linealmente con la variable real.
Cristofer Millalaf, Esteban Varas.
Un lado negativo del control expuesto en este informe fue el hecho de presentarse una
variabilidad grande de la acción de control proporcionada por el control fuzzy más aceptable
en términos de precisión y rapidez, esto se debe principalmente a que se utiliza como
entrada la derivada del error, quien acentúa el efecto del ruido en la señal y generando que el
controlador salte de una regla a otra provocando estas variaciones en la salida, podría
decirse que tiene cierta semejanza a un controlador proporcional derivativo.