You are on page 1of 114

UNIVERSIDAD NACIONAL DE QUILMES

INGENIERIA EN AUTOMATIZACION Y CONTROL INDUSTRIAL

PROYECTO FIN DE CARRERA

Estudio, identificación y
control de una planta
medidora de caudal másico.

Alumnos:
Pablo Germán Manchione
Leg: 15619
Matias Javier Artazcoz
Leg: 11857

Director: Ing. Diego Palmieri

Fecha de presentación: 22/10/2010


Estudio, identificación y control de una planta medidora de caudal másico. UNQ

Este informe, realizado por Manchione Pablo y Artazcoz Matías, describe el


proyecto de fin de carrera “Estudio, Identificación y Control de una planta medidora de
caudal másico”, para la carrera de Ingeniería en Automatización y Control Industrial
dependiente del Departamento de Ciencia y Tecnología de la Universidad Nacional de
Quilmes. El mismo fue realizado bajo la supervisión del profesor Ing. Diego Palmieri.

Página 2
Estudio, identificación y control de una planta medidora de caudal másico. UNQ

Resumen:
La Instrumentación y Control de Procesos industriales de caudal de sólidos
involucra principalmente materiales a granel transportados por vía seca, tales como
polvos o materiales de molienda movilizados por una cinta transportadora. Dichos
materiales pueden ser: alimentos (azúcar, yerba, arroz, polenta, cacao en polvo, harinas,
sémolas, legumbres, leche en polvo, harina, semillas, sal seca), materiales para la
construcción (cal, cemento, arena, piedra), medicamentos en polvo, fertilizante granulado,
entre otros. El control de caudal másico y dosificación de estos productos, en la industria,
es de gran importancia en diferentes procesos como por ejemplo el fraccionado y
distribución de los mismos a la hora de obtener productos de buena calidad en menor
tiempo. Es por ello que, se ha trabajado sobre un sistema de dosificación de sólidos
granulados.
El objetivo de proyecto propuesto fue realizar el control y la automatización en
tiempo real de una planta medidora de caudal másico por vía seca, comandada a partir de
una interfaz gráfica (HMI a medida), utilizando herramientas de Matlab. Por otro lado, se
procedió y se enfocó en el estudio de técnicas para la identificación de la dinámica del
proceso a controlar. De esta manera se obtuvo un modelo aproximado del mismo, para un
posterior diseño y/o ajuste de control. Por último, se llevó a cabo una serie de pruebas y
comparaciones entre el control en simulación y el control en tiempo real, a partir de los
resultados obtenidos.
Para todo esto se dispuso de una planta existente que fue aprovechada en cuanto
a su estructura mecánica. No obstante, el proyecto se enfoca además, en el diseño y la
construcción de los circuitos electrónicos necesarios para el acondicionamiento de las
señales de sensado y actuación. Como así también, se encara el cálculo y el rediseño del
actuador y el sensor de velocidad de la misma, para ser reemplazados los ya existentes.

Página 3
Estudio, identificación y control de una planta medidora de caudal másico. UNQ

Índice
1. Introducción .................................................................................. pág 6
2. Objetivo ......................................................................................... pág 8
3. Descripción del proyecto ............................................................... pág 9
3.1 Desarrollo Mecánico .............................................................................. pág 10
3.1.1 Desarrollo del actuador del sistema ..................................................... pág 10
3.1.2 Verificación del sistema sensor de peso ............................................... pág 12
3.1.3 Desarrollo del sistema de medición de velocidad .................................. pág 14
3.2 Desarrollo electrónico ........................................................................... pág 15
3.2.1 Desarrollo del sistema de medición de velocidad .................................. pág 16
3.2.2 Desarrollo del acondicionamiento de señal del transductor de peso...... pág 17
3.2.3 Desarrollo del sistema CAD y transmisión de datos a la PC.................. pág 19
3.2.4 Desarrollo del sistema de actuación .................................................... pág 21
3.2.5 Desarrollo de la interfaz electrónica ..................................................... pág 22
3.2.6 Desarrollo del sensado de nivel mínimo ............................................... pág 23
3.2.7 Ruido de medición y fuentes de alimentación ...................................... pág 23
3.3 Desarrollo de los algoritmos de medición y actuación ........................... pág 23
3.3.1 Señal de actuación ............................................................................. pág 24
3.3.2 Medición de peso ................................................................................ pág 25
3.3.3 Medición de velocidad en la cinta y nivel en la tolva ............................. pág 27
3.3.4 Medición del peso requerido ................................................................ pág 28
3.4 Puesta en marcha y calibración ............................................................. pág 28
4. Dinámica del sistema ..................................................................... pág 31
4.1 Modelado matemático del sistema ....................................................... pág 31
4.1.1 Modelado matemático del motor de CC................................................ pág 31
4.1.2 Modelado matemático del caudal másico ............................................. pág 33
4.1.3 Cálculo de la función de transferencia ................................................. pág 34
4.1.4 Ajuste de parámetros .......................................................................... pág 36
4.1.5 Resultados del modelo obtenido .......................................................... pág 37
5. Control .......................................................................................... pág 39
5.1 Objetivos del control a lazo cerrado ...................................................... pág 40
5.2 Ajuste empírico de un controlador PI .................................................... pág 41
5.2.1 Ajuste por método de Ziegler-Nichols................................................... pág 42
5.2.2 Resultados obtenidos .......................................................................... pág 44
5.2.3 Comparación entre el modelo de la planta y la panta real .................... pág 47

Página 4
Estudio, identificación y control de una planta medidora de caudal másico. UNQ

5.3 Diseño de un controlador por el método de asignación de polos ........... pág 48


5.3.1 Ajuste y cálculo del controlador .......................................................... pág 49
5.3.2 Resultados obtenidos .......................................................................... pág 52
5.3.3 Comparación entre el modelo de la planta y la panta real .................... pág 56
6. Interfaz gráfica Hombre – Máquina................................................. pag 57
6.1 Introducción a interfaces Hombre – Máquina ...................................... pag 57
6.1.2 Funcionalidad del HMI. ...................................................................... Pag 57
6.2 Desarrollo del sistema HMI. ................................................................. Pag 57
6.2.1 Pantalla principal ............................................................................... Pag 58
6.2.2 Ajustes de Parámetros Avanzados de control ....................................... Pag 63
6.2.3 Ajuste de Parámetros Avanzados de la Planta ...................................... Pag 64
6.2.4 Información ........................................................................................ Pag 66
6.3 Transferencia de datos entre Simulink y la Interfaz gráfica HMI. ............ Pag 66
8. Conclusiones ................................................................................. Pag 68
9. Bibliografía .................................................................................... Pag 70
Anexo 0: Herramientas de software y PC
Anexo 1: S_functions
Anexo 2: Diagramas Simulink
Anexo 3: Algoritmo de la interfaz gráfica
Anexo 4: Explicación de los circuitos desarrollados
Anexo 5: Hoja de datos
Anexo 6: Costos del proyecto
Anexo 7: Manual de usuario

Página 5
Estudio, identificación y control de una planta medidora de caudal másico. UNQ

1. Introducción
Hoy en día en la industria, la instrumentación y control de procesos industriales
de caudal de sólidos granulados, son de suma importancia a la hora de brindar calidad y
repetividad en el proceso de elaboración de ciertos productos. Este es un punto cada vez
más importante y demandante por los consumidores, que ha aumentado de manera
progresiva en los últimos años.
Los medidores de caudal másico de sólidos por vía seca permiten pesar cualquier
material seco a granel o granulado, que a diferencia de los instrumentos medidores de
caudal volumétrico no dependen de la temperatura y presión a la que se encuentra el
producto. Este tipo de medidores pueden encontrarse en industrias tan diversas como
sus materias primas lo indiquen, como ser: alimentos (azúcar, yerba, arroz, polenta,
cacao en polvo, harinas, sémolas, legumbres, leche en polvo, harina, semillas, sal seca),
materiales para la construcción (cal, cemento, arena, piedra), medicamentos en polvo,
fertilizante granulado, por mencionar solo algunas.
Existen varias alternativas para medir caudal másico, una de ellas es medir el
caudal volumétrico, compensarlo y convertirlo adecuadamente en caudal másico. Pero
como se mencionó previamente, los métodos de medición volumétrica tienen una gran
dependencia con la temperatura y la presión en la que halla el fluido. Otra alternativa es
medir directamente el caudal másico, para ello se puede utilizar un medidor por efecto
Coriolis, por principios térmicos, por impacto, o los medidores de caudal de sólidos
desplazados en cinta transportadora.
Como se disponía de un dosificador de caudal de sólidos granulados en cinta
transportadora, gracias a la donación del ingeniero Nicolas Lazaretti luego de concluir su
proyecto final de ingeniería, este fue aprovechado en cuanto a su estructura mecánica
con el fín de mejorar su rendimiento.

Imagen 1.1: Planta existente1

1
Proyecto final de ingeniería de Nicolas Lazaretti

Página 6
Estudio, identificación y control de una planta medidora de caudal másico. UNQ

Estos caudalímetros poseen la ventaja de ser más robustos en cuanto a la


variedad de sólidos que pueden manipular en comparación con el resto de sistemas de
medición de flujo másico. Debido a esto, se decidió utilizar el sistema existente.

Imagen 1.2: Planta existente2

Entonces, mediante el rediseño de los sistemas de actuación y sensado del


caudalímetro, se aplicaron adecuadamente técnicas de identificación y control
implementadas con herramientas de Matlab. Por último se desarrolló una interfaz gráfica
a medida que permite el comando del sistema.

2
Proyecto final de ingeniería de Nicolas Lazaretti

Página 7
Estudio, identificación y control de una planta medidora de caudal másico. UNQ

2. Objetivos
Como objetivo principal del proyecto se plantea el control y la automatización, en
tiempo real, de una planta dosificadora de caudal másico de sólidos granulados. Como así
también el mando y la supervisión del sistema desde una interfaz gráfica. Desde este
objetivo primordial y teniendo en cuenta la planta existente, se desglosan otros objetivos a
cumplir:
Rediseño mecánico de la planta desde el punto de vista del actuador y el sistema de
medición de velocidad de la cinta transportadora. Es decir, se plantea modificar los
actuadores, el esquema de reducciones, el torque y la velocidad alcanzados por la
misma. En cuanto a la medición de velocidad, se propone un rediseño del
codificador incremental aumentando la resolución del mismo, con el fin de obtener
mayor precisión en el sensado.
Acondicionamiento y rediseño electrónico de la planta. Es decir, tanto para las
señales de sensado como para las de actuación de la planta, se plantea el diseño de
la electrónica correspondiente para el correcto desempeño de las mismas.
Estudio de la dinámica de la planta, con el fin de encontrar un modelo matemático
del sistema lo más aproximado posible al real. A partir de esto se plantea el diseño
en simulación y la aplicación en tiempo real de un control a lazo cerrado. Dicho
control debe permitir, al caudalímetro, entregar una cantidad de masa por unidad
de tiempo constate en su salida. También debe poder rechazar perturbaciones que
puedan afectar el desempeño del proceso.
El sistema también debe tener la capacidad de entregar no solo un caudal
constante, sino también un peso determinado luego de transcurrir cierta cantidad
de tiempo.
Para el mando y la supervisión del sistema desde una interfaz gráfica se propone el
desarrollo de una interface de usuario (HMI) a medida. La cual debe cumplir con la
capacidad de:
o Poder supervisar el comportamiento físico del sistema, alarmas de nivel
mínimo, parada de emergencia.
o Comandar el arranque del sistema.
o Permitir el seteo de referencias de control, configuraciones del controlador
a utilizar, y variables de calibración del sistema.
Por último, se plantea una prueba y comparación del controlador diseñado, en
simulación y en tiempo real.

Página 8
Estudio, identificación y control de una planta medidora de caudal másico. UNQ

3. Descripción del proyecto


El sistema originalmente poseía una estructura metálica, la cual formaba el
esqueleto del caudalímetro. Sobre dicha estructura se encontraba montada una cinta
transportadora comandada por un motor de CA, a través de dos reducciones hechas con
poleas. Este sistema hacía circular el sólido granulado que nos proveía la tolva, que
estaba montada sobre la cinta.
Además, el caudalímetro poseía dos celdas de carga acopladas sobre dos rodillos
deslizantes en medio de la cinta, que cumplían la función de medir el peso efectivo del
producto que se encuentra circulando. Por otra parte, un encoder montado sobre uno de
los rodillos que acompaña en movimiento de la cinta permitía medir la velocidad de la
misma. Entonces a partir de estas dos variables medidas, se puede determinar
indirectamente el caudal másico entregado por el sistema. Por último poseía dos tableros
eléctricos y un variador de velocidad, los cuales comandaban y acondicionan todas las
señales del sistema.
A partir de esto, se propuso un estudio, rediseño y desarrollo mecánico en cuanto
al sistema de actuación y medición de velocidad, como así también un rediseño y
desarrollo electrónico total que permite comandar, supervisar y controlar el sistema
completo. De esta manera lo que se busca es mejorar el desempeño físico del sistema,
adaptándolo a nuestra proposición de implementar un control a través de la PC,
utilizando herramientas de Matlab como: Real Time Workshop, la programación de
funciones de tipo S-Function o C-Mex y el Real Time Windows Target como target de
aplicación.
Por último, para el comando del sistema en tiempo real, se diseñó una interfaz
gráfica (HMI a medida), permitiendo el mando, el control y la supervisión sobre todos los
puntos del sistema. Esto último se llevó a cabo haciendo provecho de las herramientas
que provee Matlab para el tema en cuestión.
Dichos desarrollos mecánicos y electrónicos serán explicados y detallados en las
secciones 3.1 y 3.2 de la obra. Mientras que los desarrollos de identificación, control e
interfáz gráfica serán mencionados en los capítulos 4, 5 y 6 respectivamente.

Página 9
Estudio, identificación y control de una planta medidora de caudal másico. UNQ

3.1 Desarrollo Mecánico


En esta etapa se abordará tanto el tema de los dispositivos de actuación, como los
de medición de velocidad y peso.

3.1.1 Desarrollo del actuador del sistema


Para el desarrollo del actuador del sistema, se estudió el torque que se necesitaba
a plena carga y la velocidad a la que debemos y podremos trabajar. Entonces a partir de
esto, poder seleccionar y obtener un motor de corriente continua (cc) con las
especificaciones necesarias. Luego se procedió al estudio de los distintos sistemas de
acople, al montaje mecánico del mismo y su posterior testeo de funcionamiento.
Para obtener el valor del torque mínimo necesario en el eje del motor, se calculó de
manera aproximada la resistencia que este debía vencer para poder girar. Es decir, se
dedujo cual sería la cupla mínima que debía suministrar el motor.
Para llevar a cabo esto, se partió de la definición de cupla:
, donde: es la fuerza necesaria para que el motor
venza la resistencia que ofrece el dispositivo y es el brazo de palanca (es decir la
distancia desde el eje en la que se aplica la fuerza).

Imagen 3.1: Cálculo del torque requerido por el motor

Luego se llenó completamente la tolva del caudalímetro y se aplicaron distintas fuerzas


sobre uno de los rodillos de la cinta, más precisamente sobre el cual actuaría el motor. El
proceso se realizó hasta encontrar la fuerza mínima que vencía la resistencia ofrecida por
el sistema. El resultado del ensayo arrojó un valor de . Por otro lado, como la fuerza
fue aplicada a una distancia de del eje, el torque mínimo estimado que se debe
ejercer es de:

Además se evaluó el valor mínimo de velocidad al cual debía girar el rodillo para
cumplir con una mínima velocidad lineal requerida en la cinta. Como el diámetro del
rodillo sobre el cual se desliza la cinta es de , la misma se desplaza una distancia

Página 10
Estudio, identificación y control de una planta medidora de caudal másico. UNQ

de por cada vuelta completa. Por lo tanto, para que la cinta se


desplace a una velocidad de , el rodillo debía poder girar a una velocidad de:

Por otra parte, como se disponía de una polea de acople con una reducción 1.38:1
respecto a la polea presente en el rodillo, la velocidad y la cupla demandada por el motor
fue:

A partir de estos resultados, tomados como una cota inferior de trabajo, se decidió
obtener un motor con una velocidad nominal de y un torque de .
Con estos datos, se procedió a realizar el cálculo de la potencia necesaria en el eje del
motorreductor:

El paso siguiente fue realizar una pequeña investigación de mercado sobre los
productos ofrecidos por fabricantes de la zona. Por cuestiones de oferta y falta de variedad
se decidió obtener un motor con una potencia nominal de (2 veces mayor a la
requerida en el límite estimado) y una velocidad nominal de . Entonces, con esta
idea de ser conservadores a la hora de realizar la elección del producto, los resultados del
acople, ensamble y prueba del motorreductor fueron totalmente satisfactorios.
Este cambio en el sistema de actuación de la planta fue realizado con el fin de
mejorar la respuesta del sistema, reduciendo además computacionalmente y
eléctricamente la complejidad del mismo.
A continuación se presentan unas imágenes de dicho sistema de actuación, donde
se puede apreciar el motor con sus poleas, correa y el rodillo que lo acopla con la cinta
transportadora.

Página 11
Estudio, identificación y control de una planta medidora de caudal másico. UNQ

Imagen 3.2: Sistema de actuación de la planta

3.1.2 Verificación del sistema sensor de peso


Por otro lado, se procedió en la verificación del correcto funcionamiento de las
celdas de cargas de la planta, del sistema de rodillos y del soporte acoplado a ellas.
El caudalímetro posee un sistema de rodillos con deslizamiento perpendicular al
movimiento de la cinta, de esta manera el material que se encuentra circulando por ella
genera una fuerza hacia abajo sobre los mismos. Dichos rodillos, están dispuestos en
forma de “U”3, con el fin de evitar derrames del material que se encuentra circulado por la
cinta.

Imagen 3.3: Disposición de los rodillos

3
Proyecto final de ingeniería de Nicolas Lazaretti

Página 12
Estudio, identificación y control de una planta medidora de caudal másico. UNQ

Por otro lado, el sistema de pesado posee, en los extremos de los rodillos de bolilla
recirculante, un acople basado en cuatro rodamientos dispuestos sobre una varilla recta.
Este acople permite que la fuerza sobre los rodillos, generada por el producto en
movimiento, sea transmitida al soporte de las celdas de manera perpendicular. Por último
esta fuerza es transmitida a un registro mecánico montado en las celdas de carga, la cual
es captada por las mismas.

Imagen 3.4: Sistema sensor de peso

Para que el esfuerzo que realiza el material transportado por la cinta sea parejo,
estos registros están formados por dos tornillos regulables. Es decir, para que el peso del
material circulante se reparta equitativamente entre las dos celdas de carga, se dispone
de estos registros regulables que facilitan la calibración de una distribución de peso
uniforme entre ambos sensores.
Este sistema de sensado descripto previamente, carecía de uno de los rodillos
deslizantes por los cuales se transmite el peso hacia las celdas de carga. Por este motivo,
se tuvo que construir uno de ellos a medida. Por otro lado, tampoco se disponía de uno de
los dos registros de peso que se encuentran sobre las celdas de carga, el cual también
tuvo que ser repuesto.
Luego procedimos verificando el correcto funcionamiento mecánico de este sistema
de sensado realizando una primera calibración del mismo, a partir de la regulación de los

Página 13
Estudio, identificación y control de una planta medidora de caudal másico. UNQ

registros de peso. Se ratificó que la respuesta de las celdas de carga, ante la exposición de
las mismas a diferentes pesos, era la correcta. Como el ensayo fue óptimo, se decidió no
realizar ningún tipo de cambios sobre este sensor.

3.1.3 Desarrollo del sistema de medición de velocidad


Otro punto a tener en cuenta es el del sistema de medición de velocidad lineal de
la cinta, debido a que la medición del caudal es producto de esta velocidad y del valor
obtenido del sensor de peso. Es por ello que se estudió y ensayó el desempeño de este
dispositivo con el objetivo de poder mejorarlo y obtener mayor precisión en la medición.
El sistema de medición de velocidad existente, en el caudalímetro, poseía un
codificador incremental formado por un disco ranurado y un sensor de proximidad
fotoemisor-fotoreceptor. Dicho sensor se encontraba colocado sobre el rodillo que
acompaña el movimiento de la cinta, es decir en el cual el sistema de actuación no realiza
tracción. Esto es para evitar mediciones erróneas en la velocidad de la cinta por
deslizamiento de la misma sobre los rodillos de transmisión.
Como el disco ranurado del codificador incremental existente constaba de 8 pulsos
y el diámetro del rodillo por el cual se mueve la cinta es de , este sistema de
medición descripto con anterioridad poseía una resolución de:

Esta baja resolución, provocaba cierta oscilación en el valor de medición de


velocidad. Dicha oscilación se veía reflejada en el valor de medición de caudal, pues como
se mencionó previamente, la medición de caudal es producto de la medición de peso y
velocidad.
Por otro lado, también se corría con la desventaja de tener que actualizar la
medición de velocidad en intervalos de tiempo extremadamente grandes frente a la
actualización en la medición del peso del producto. Esto también era debido a la baja
resolución del encoder, pues si la actualización de velocidad se reducía, la cantidad de
pulsos detectados por el sensor en una ventana de tiempo también se reducía, y por ende
la oscilación en la medición aumentaba. Esta oscilación influía de manera negativa a la
hora de controlar el sistema, produciendo una respuesta a lazo cerrado totalmente
indeseada. Por último, no se justifica disponer de un sistema de medición que involucre la
medición de dos variables que son actualizadas a velocidades totalmente opuestas.
Una vez mencionados los inconvenientes y desventajas del sistema de medición
original, se plantea como solución aumentar la resolución del encoder. Para esto, se tomó
en cuenta la velocidad de cálculo del sistema de adquisición de datos, el cual será
detallado en la siguiente sección.

Página 14
Estudio, identificación y control de una planta medidora de caudal másico. UNQ

En vista de estas limitaciones en la velocidad de cálculo, se resolvió como punto


máximo un codificador incremental de 150 pulsos. A partir de esto, se obtuvo una
resolución de:

De esta manera, se consiguió aumentar la resolución del encoder 19 veces


respecto al modelo que poseía el caudalímetro, lo cual es de suma importancia desde el
punto de vista de la precisión del sistema.
Para ello se tuvo que modificar y cambiar tanto el sensor óptico existente, como
su electrónica de procesamiento (lo cual también será mencionado con mayor detalle en
la siguiente sección). Por último vale aclarar que el sistema de medición fue montado
sobre el rodillo que acompaña el movimiento de la cinta transportadora, por las mismas
causas que se mencionaron con anterioridad. A continuación se puede observar la
disposición del mismo.

Imagen 3.5: Sistema sensor de velocidad

3.2 Desarrollo electrónico


En esta etapa se mencionará el estudio, rediseño y desarrollo electrónico que fue
realizado durante el transcurso del proyecto. Por lo tanto, se abordará tanto el tema del
acondicionamiento de señales de los elementos actuación, como el de todos los elementos
intervinientes en la medición.
Se realizó un desarrollo electrónico de cada una de las placas necesarias para
cumplir con estos objetivos de sensado y actuación. Previo a esto se estudió, diseñó y
simuló cada circuito a partir de un software de simulación (Proteuss). Una vez

Página 15
Estudio, identificación y control de una planta medidora de caudal másico. UNQ

corroborado el diseño y el correcto desempeño de la simulación, se procedió al armado


físico de la placa en sí.

3.2.1 Desarrollo del sistema de medición de velocidad


Como se menciona previamente, en esta obra, la resolución del codificador
incremental original fue aumentada 19 veces. Para esto se tuvo que cambiar el sensor
óptico existente y su correspondiente electrónica de procesamiento. A continuación se
justifican estos cambios realizados.
El sensor óptico original poseía un fotoemisor-fotoreseptor en el mismo dispositivo
(PhotoSwitch 42SRU-6402 de la firma ALLEN-BRADLEY), el cual no permitía detectar
pulsos con una resolución mayor a en un radio de . Con este sensor la
resolución máxima que se logró obtener fue de 32 pulsos, la cual provocó una mejora en
el sistema de medición de velocidad, pero no alcanzaba para obtener un cambio
considerable en la resolución. A continuación puede observarse un esquema que
representa el sensor que poseía la planta.

Imagen 3.6: Sensor óptico reemplazado

Entonces, ante esta necesidad de aumentar aún más la resolución del sistema, se
decidió reemplazar el sensor existente, por un sensor óptico ranurado CR560. En este
caso el diodo emisor y el fototransistor detector se encuentran opuestos uno del otro, lo
que permite un aumento en la resolución del sistema. Esto último se debe a que, el
sensor, tiene la capacidad de detectar objetos de menor tamaño y por ende podemos
aumentar la resolución del disco del encoder. Dicho sensor puede visualizarse en la
siguiente figura.

Imagen 3.7: Sensor óptico actual

Página 16
Estudio, identificación y control de una planta medidora de caudal másico. UNQ

A continuación puede observarse un diagrama en bloques de la conexión del


sistema.

Imagen 3.8: Diagrama en bloques del sistema sensor de velocidad

A partir del circuito de entrada (para mayor detalle ver ANEXO 4) se logra la
correcta emisión del diodo. Por otro lado, al interrumpir periódicamente esta señal óptica,
se obtiene una señal de onda cuadrada sobre el receptor del sensor, la cual es
retransmitida hacia la PC a través del “circuito receptor”. Ahora, solo queda medir la
frecuencia de la onda cuadrada y así determinar la velocidad de los pulsos (esto equivale
a la velocidad de la cinta). Para realizar la medición de frecuencia de esta onda se utilizó
funciones del tipo C-MEX implementadas en Matlab (dicho tema se abordará más
adelante en esta obra).
Por último, vale la pena aclarar que, este sensor permitía obtener un encoder de
mayor resolución a la diseñada. Sin embargo, la velocidad de cálculo de la PC no
respondía a velocidades muy altas de procesamiento.

3.2.2 Desarrollo del acondicionamiento de señal del transductor


de peso.
En este punto se realizó el acondicionamiento de la señal proveniente del
transductor de peso, en un rango de valores que un conversor analógico-digital pudiera
manejar y retransmitir.
Las celdas de cargas, implementadas en el sistema, poseen una señal de salida
diferencial de , con lo cual la señal entregada por estas será de algunos pocos

aún a plena carga. Es por esta causa que debimos diseñar una etapa electrónica
que amplifique esta tensión mediante una etapa de amplificadores operacionales en una
configuración de tipo instrumentación -lo cual logra características necesarias para
acondicionar la señal proveniente de la celda- y la exprese entre 0 y 5 volts (tensión de
transmisión de datos normalizada que decidimos utilizar). Los componentes utilizados en

Página 17
Estudio, identificación y control de una planta medidora de caudal másico. UNQ

dicha etapa debieron ser de precisión para evitar acarrear errores en la medición ni
variaciones en la misma por los cambios de temperatura
El diagrama en bloques del circuito implementado es el siguiente:

Imagen 3.9: Diagrama en bloques del sistema sensor de peso

El circuito implementado se puede dividir en dos etapas, una etapa de


amplificación y otra de ajuste de cero. La señal en baja tensión, proveniente de las celdas
de carga, ingresa al circuito de ajuste de ganancia. Dicho circuito, cumple la función de
amplificar el valor de tensión de entrada a un valor que sea manejable desde el punto de
vista de la transmisión de datos. Esta señal de entrada, una vez amplificada, ingresa en el
circuito de ajuste de Offset. Es decir, lo que se pretende en esta parte del circuito es
desplazar el valor de la señal de entrada en una constante.
A continuación se puede observar un gráfico que ilustra esta idea de ajuste de
ganancia y offset.

Imagen 3.10: Ajuste de ganancia y offset de la señal proveniente de las celdas de carga

Página 18
Estudio, identificación y control de una planta medidora de caudal másico. UNQ

En el gráfico anterior puede visualizarse, en el eje de abscisas, la señal de entrada


(señal en baja tención) y, en el eje de ordenadas, la señal de salida de la placa. La idea, es
por ejemplo convertir una señal de entrada de en una señal de de salida
de .
En la figura dicho objetivo lo cumple la recta graficada en azul, en cambio, la
curva graficada en rojo posee un error de offset respecto a la deseada (la pendiente es la
misma). Es acá donde entra en juego el circuito de ajuste de cero, el cual, a partir de un
potenciómetro variable, me permite corregir este desplazamiento. Por otro lado, la curva
graficada en color negro posee un error de ganancia respecto a la curva deseada (no tiene
error de cero). Este error se anula ajustando el potenciómetro colocado en la etapa de
ajuste de ganancia.
A partir de todo esto mencionado previamente, podemos adaptar la señal que
entregan las celdas de carga en una señal (normalizada) que sea compatible con el
conversor analógico-digital.
Si se desea conocer el plano del circuito, el mismo se encuentra en uno de los
anexos de esta obra.
Además de lo descripto, la placa posee una fuente de tensión que puede ser
regulada entre . El objetivo de esta fuente es poder regular una alimentación
óptima en las celdas de carga.

3.2.3 Desarrollo del sistema Conversor Analógico Digital (CAD) y


transmisión de datos a la PC.
Una vez acondicionada la señal de medición de peso debe ser procesada y luego
transmitida hacia la PC, en forma digital, utilizando un solo pin del puerto paralelo. Para
cumplir con este objetivo, se utilizó un conversor analógico digital de 8 bits (AD0804), un
Shift Register (74HC175) y un optoaislador (4n25).
Básicamente el conversor analógico digital cumple la función de muestrear un
valor de tensión y convertirlo en una palabra de 8 bits en paralelo, en su salida. Esta
palabra digital es cargada en el Shift Register y retransmitida por él, en serie, hacia la PC.
A continuación se procederá con la explicación general del funcionamiento del
dispositivo:
1. La señal proveniente de celdas de carga, una vez amplificada (Vin), ingresa
en el conversor analógico-digital. Este muestrea dicha señal y la convierte
en una palabra digital de 8 bits, cada vez que un pulso de clock ingresa en
él.

Página 19
Estudio, identificación y control de una planta medidora de caudal másico. UNQ

2. Esta palabra (de 8 bits) es tomada por el shift register cada vez que ingresa
un pulso por el acumulador del mismo.
3. Una vez cargados los datos sobre el acumulador del shift register,
ingresando una señal de clock sobre el mismo, se envían los datos en serie
hacia el optoacoplador.
4. El optoaislador solo cumple la función de reconstuir la forma de onda de
los pulsos que son transmitidos hacia la PC.
Vale aclarar que tanto las señales de clock, acumulador y salida son transmitidas
a través de la interfaz del puerto paralelo de la PC. La coordinación y lógica de estas
señales fue implementada mediante la utilización de herramientas como Real Time
Workshop, la programación de funciones de tipo S-Function o C-Mex y el Real Time
Windows Target como target de aplicación (el tema se abordará más adelante en esta
obra). A continuación se puede observar un diagrama en bloques del sistema.

Imagen 3.11: Diagrama en bloques del sistema conversor AD y transmisión de datos hacia la PC

Si se desea conocer el plano completo del circuito, el mismo se encuentra en el


ANEXO 4 del proyecto.

Página 20
Estudio, identificación y control de una planta medidora de caudal másico. UNQ

3.2.4 Desarrollo del sistema de actuación.


Una vez realizado el sistema de actuación mecánico, se diseñó la electrónica
encargada de amplificar la señal de proviene de la PC, con el fin de obtener la acción de
control deseada sobre el motor.
La señal de actuación sobre el motor es del tipo PWM (modulación por ancho de
pulso). Es decir, es una señal cuadrada, con ciclo de trabajo variable, que permite actuar
con diferentes rangos de tensiones sobre el motor de CC y así variar la velocidad del
mismo. Como el motor utilizado requiere una tensión de alimentación de , la
modulación por ancho de pulso aplicada al motor será una señal de onda cuadrada que
varié entre . Por último, la frecuencia de esta señal debe ser lo suficientemente
alta para que sea filtrada por el motor de CC (filtro pasa bajos). A continuación se puede
observar la señal PWM aplicada al motorreductor con un ciclo de trabajo del 50%.

Imagen 3.11: Señal de actuación

Dicha señal posee una frecuencia de , por lo tanto el motor no ve los


cambios abruptos que toma la señal y toma el valor medio de la misma. En este caso,
como la amplitud es de y el ciclo de trabajo del 50%, el valor medio sería una tensión
continua de .
Como el motorreductor de CC tiene un consumo de (aproximadamente),
este no puede ser comandado directamente desde la PC. Es por esto que surgió la
necesidad de implementar un circuito encargado de amplificar la señal proveniente de la
PC, con el fin de obtener la acción de control deseada. Para cumplir con este objetivo, se
conectaron 2 transistores de potencia en paralelo y uno de acople en cascada con estos
dos. En la siguiente figura se puede observar un diagrama en bloques del circuito
eléctrico implementado.

Página 21
Estudio, identificación y control de una planta medidora de caudal másico. UNQ

Imagen 3.12: Diagrama en bloques de la electrónica correspondiente a la señal de actuación

El circuito se forma de dos etapas:


La primera etapa está compuesta por un transistor de baja potencia,
comandado a partir de una señal de onda cuadrada proveniente de la PC
La segunda etapa está constituida por dos transistores de potencia en
paralelo con el fin de repartir la corriente consumida por el motor en dos
ramas.
Cuando el primer transistor es excitado, desde la PC, este transmite dicha
excitación sobre los dos transistores de potencia. Por lo tanto, la señal de onda cuadrada,
generada por la PC, es transferida hacia el motor de corriente continua. Por otro lado,
como la tensión de alimentación de los transistores de potencia es de , la señal de
onda cuadrada sobre el motor posee una amplitud de aproximadamente. Pudiendo
variar, de esta manera, la tensión media sobre el motor en un rango de .

3.2.5 Desarrollo de la interfaz electrónica.


Este diseño electrónico, que vale la pena mencionar, tiene como objetivo la
interconexión con las placas de las diferentes etapas, como así también la señalización de
los datos transferidos a través del puerto paralelo de la PC. Esto no es de mucha utilidad
a la hora de operar el caudalímetro, pero sí lo es en el momento de verificar o testear su
correcto funcionamiento.
A continuación puede observarse un diagrama en bloques de la idea
implementada.

Imagen 3.13: Diagrama en bloques de la interfaz electrónica

Página 22
Estudio, identificación y control de una planta medidora de caudal másico. UNQ

El circuito consta de una resistencia y un led en serie, conectados en paralelo con


el puerto de transferencia de datos.

3.2.6 Desarrollo electrónico del sensado de nivel mínimo.


A partir de un sensor fotoemisor-fotoreseptor (PhotoSwitch 42SRU-6402 de la
firma ALLEN-BRADLEY) se realiza una medición puntual de nivel del producto presente
en la tolva. Para esto lo que se hizo fue conectar al dispositivo con una configuración en
salida TTL y obtener esta señal desde la PC, pasando previamente por un optoacoplador.
Este sensor funciona de la misma manera que se explicó en la sección 3.2.1, es por ello
que no se va a entrar en este detalle. Por otro lado, el dispositivo optoaislador es
conectado de la misma manera que se mencionó en la sección 3.2.3, cumpliendo la
función de procesar la señal del sensor y generar en la salida un pulso más óptimo para
su lectura desde la PC. Para mayor información consulte la hoja de datos del producto
expuesta en unos de los anexos del proyecto.

3.2.7 Ruido de medición y fuentes de alimentación.


Debido a la utilización de un motor de CC se encuentra presente una interferencia
eléctrica en las señales de medición y actuación del sistema. Esta interferencia, tuvo que
ser atenuada a partir de la utilización de núcleos de ferrita en las señales de sensado y
mando del motor de CC. También se realizaron rediseños en las placas de
acondicionamiento de señal y CAD (mayando las pistas). Por último se separaron las
fuentes de alimentación de las placas de sensado y de actuación. Por esto, se utilizaron 3
fuentes de PC:
Una fuente, de con salida para la
alimentación de los circuitos de medición.
Dos fuentes en serie, de con salida para
alimentar tanto la señal de actuación como el motor de CC.

3.3 Desarrollo de los algoritmos de medición y actuación.


El desarrollo de los algoritmos para el comando (a través del puerto paralelo) de
cada uno de los diseños electrónicos se implementó a través de la programación de
funciones S-function de tipo C-MEX. A continuación se detalla el objetivo que cumple
cada una de ellas.

Página 23
Estudio, identificación y control de una planta medidora de caudal másico. UNQ

3.3.1 Señal de actuación


Este algoritmo es el encargado de generar la señal de onda cuadrada con ciclo de
trabajo variable para el comando del motor. Para esto, debe cumplir con tres objetivos
fundamentales: la generación de la señal, el seteo de su período y ciclo de trabajo.
El seteo del ciclo de trabajo se realiza en base a la señal de control requerida por el
controlador, el estado de la señal de parada de emergencia y el algoritmo que indica que
el peso requerido ha sido alcanzado (tema a tratar en la sección 3.3.4). A continuación se
explica en forma general como se lograron estos requerimientos.
Seteo del ciclo de trabajo y período de la señal: para cumplir con este fin, el
algoritmo consta de dos variables de entrada que pueden ser seteadas
desde Simulik.
Generación de la onda cuadrada: este objetivo se lleva a cabo construyendo
una señal tipo rampa, la cual es comparada (instante a instante) con una
constante directamente ligada al ciclo de trabajo deseado. A partir de esta
comparación, el algoritmo escribe un uno lógico, en un pin de salida del
puerto paralelo, cuando la señal rampa es menor a la constante y viceversa
cuando es mayor. Esto se puede apreciar con mayor facilidad en el
siguiente gráfico: donde la señal constate es la de color rojo, la tipo rampa
de color azul y la onda cuadrada de color negro.

Imagen 3.14: Creación de la señal PWM

Página 24
Estudio, identificación y control de una planta medidora de caudal másico. UNQ

A continuación, con el fin de comprender mejor esta idea, se muestra un diagrama


de flujo simplificado del algoritmo implementado.

Imagen 3.15: Diagrama en bloques del algoritmo generador de la señal PWM

3.3.2 Medición de peso


En este caso el algoritmo se encarga de sincronizar la transferencia de datos entre
el conversor analógico-digital, el shift register y la PC. Es decir, a grandes rasgos la
función se encarga de las siguientes tareas:

Página 25
Estudio, identificación y control de una planta medidora de caudal másico. UNQ

1. Envía un pulso hacia el conversor analógico digital indicándole que muestree


la señal de entrada y la convierta en una palabra digital de 8 bits.
2. Envía un pulso al acumulador del shift register indicándole que lea los bits
escritos por el conversor analógico-digital y los cargue en memoria.
3. Genera una señal de clock que es recibida por el shift register. Esta es la
encargada de indicar, en cada pulso, que se envíe un bit hacia la PC.
4. Cada vez que la PC genera un pulso de clock, se lee el dato enviado por el
shift register.
5. Una vez que la PC recibe ocho bits, se realiza una conversión digital
analógica. Luego de esto el proceso comienza de nuevo desde el punto
número 1.
En el siguiente gráfico se puede visualizar un diagrama de flujo de la idea.

Imagen 3.16: Diagrama en bloques del algoritmo de medición de peso instantáneo

Página 26
Estudio, identificación y control de una planta medidora de caudal másico. UNQ

3.3.3 Medición de velocidad de la cinta y nivel en la tolva.


El algoritmo implementado para la medición de velocidad se basa en contar la
cantidad de pulsos, provenientes del sensor óptico, en el transcurso de un determinado
tiempo. A partir de esto, se determina la velocidad angular del motor y por ende, con un
apropiado escalamiento, la velocidad lineal de la cinta.
Dentro de este algoritmo, se encuentra la supervisión del sensor que indica falta
de producto en la tolva. Este solo cumple la función de leer la salida del sensor de nivel
mínimo e indicar su estado.
A continuación puede observarse un diagrama de flujo del algoritmo
implementado.

Imagen 3.17: Diagrama en bloques del algoritmo de medición de velocidad

Página 27
Estudio, identificación y control de una planta medidora de caudal másico. UNQ

3.3.4 Medición del peso requerido


Este algoritmo se implementó con el fin que el sistema se detenga automáticamente
una vez acumulada cierta cantidad de peso. En pocas palabras, lo que realiza es una
integración del caudal másico medido a lo largo del tiempo e informa al algoritmo de la
señal de actuación que se detenga la cinta cuando el peso requerido haya sido alcanzado.
A continuación se puede observar el diagrama de flujo del algoritmo.

Imagen 3.18: Diagrama en bloques del algoritmo de medición de peso acumulado

3.4 Puesta en marcha y calibración.


Una vez finalizadas las etapas de desarrollo electrónico, mecánico y software, cada
una por separada, se procedió con la puesta en marcha del sistema completo. Durante
esta tarea se llevaron a cabo los últimos ajustes finos sobre cada una estas etapas de

Página 28
Estudio, identificación y control de una planta medidora de caudal másico. UNQ

medición y actuación. Se realizaron tres importantes tipos de calibración: la asociada al


sensor de velocidad, a la señal de actuación y al sistema de medición de peso.

Calibración del sensor de velocidad


Cuando se llevó a cabo el testeo de funcionamiento del sensado de velocidad, se
tuvo que decidir un tamaño en la ventana de tiempo que utiliza el algoritmo del software
del sistema en cuestión para realizar la medición. Una cantidad de tiempo grande
permitía contar más pulsos en una ventana, lo que producía menor error y por ende
menos oscilación en la velocidad. Pero, por otro lado, este tiempo no permitía actualizar el
sistema lo suficientemente rápido. El tamaño elegido para este período fue tomado a
prueba y error con el sistema en funcionamiento.

Calibración de la señal de actuación


Para el comando de la señal de actuación el software implementado posee una
opción de variar el período de la señal de onda cuadrada. Cuanto menor es el período de
la señal, mayor es la frecuencia y por ende mejor filtrada por el motor (filtro pasa bajos).
Pero, por otro lado, la resolución en la señal de actuación disminuye. Este ajuste, al igual
que el anterior fue realizado a partir de ensayos con el sistema en funcionamiento.

Calibración del sensor de peso


Para realizar este procedimiento se utilizaron distintos pesos conocidos a las
cuales fueron sometidas las celdas de carga. Estos pesos tenían una correlación
prácticamente lineal con el voltaje proveniente de las celdas. Entonces lo que se hizo fue
aproximar el resultado a partir de una recta que resulta de correlacionar los datos
obtenidos.

Testeo del sistema general


Una vez convertida la señal de las celdas de carga de a , se procedió con
el testeo de funcionamiento del sistema completo. Para esto, se puso en funcionamiento el
caudalímetro a una determinada velocidad constante durante un tiempo finito y conocido.
Como se conoce el caudal entregado por el sistema y el transcurso de tiempo en que lo
hace, se pudo hallar el peso total que había de acumularse durante ese período de
tiempo. El cual, fue constatado con una balanza a fin de corroborar el correcto
funcionamiento del sistema. A continuación puede observarse una gráfica de esta
comparación para diferentes velocidades (ciclo de trabajo) y un mismo período de tiempo.

Página 29
Estudio, identificación y control de una planta medidora de caudal másico. UNQ

Imagen 3.20: Resultados de la calibración

Página 30
Estudio, identificación y control de una planta medidora de caudal másico. UNQ

4. Dinámica del sistema


En este capítulo se abordará el tema de la aproximación del sistema real a un modelo
matemático estimado del mismo. El objetivo de esta etapa es un posterior estudio y
diseño de control con mayor criterio.
Modelar el sistema es de gran importancia a la hora de obtener un buen
conocimiento del proceso a controlar y por ende mejores resultados en el diseño de
control. Para lograr este modelado, se puede deducir su conducta a partir de leyes de
origen físico aplicables al sistema, para luego estimar los valores paramétricos del modelo
obtenido a partir de la relación entrada-salida del sistema real.

4.1 Modelo matemático del sistema


El sistema se conforma de dos grandes partes, por un lado tenemos el motor de
CC que genera el movimiento de la cinta transportadora y por otro lado la fuerza que el
producto genera sobre el sistema de sensado de peso.

4.1.1 Modelado matemático del motor de CC.


Para el modelado del motor de CC de imán permanente, se aplicaron las leyes
físicas correspondientes a la dinámica de su circuito de armadura y las leyes físicas de
acuerdo a la dinámica de cuerpo libre del rotor.
El siguiente diagrama de un motor de corriente continua representa el circuito
eléctrico de armadura del mismo y la relación de fuerzas sobre su rotor4:

Imagen 4.1: Esquema del motor de CC

4
“Feedback Control of Dynamic Systems” 4th Edition, by Gene F. Franklin

Página 31
Estudio, identificación y control de una planta medidora de caudal másico. UNQ

El motor de CC consiste en un arrollamiento de varias espiras (inducido) que


puede girar inmerso en un campo magnético constante. Dicho campo magnético es
generado (en este caso) por un imán permanente. Al circular una corriente por el
devanado del inducido se ejerce sobre él un par que es directamente proporcional a dicha
corriente, y al flujo magnético generado por el imán permanente, es decir:

Por otra parte, al girar este devanado de inducido en presencia del campo magnético ,
generado por el imán permanente, se produce en el mismo una caída de tensión o fuerza
contraelectromotriz, , proporcional a su velocidad de giro

Aplicando la ley de newton, sobre el rotor del motor, se tiene que: el par mecánico
(o torque) desarrollado por el motor genera una aceleración angular en la carga y se
encarga de vencer la fuerza de fricción , proporcional a la velocidad de giro. Por lo
tanto:
(4.1)
Por otro lado, considerando al devanado del inducido como un conductor con una
resistencia y una inductancia , y tomando la fuerza contaelectromotriz como una
fuente de tención proporcional a la velocidad de giro, podemos aplicar la ley de Kirchoff al
circuito eléctrico de armadura resultante:
(4.2)
Con

Donde:

Despreciando la inductancia L, de (4.2) se obtiene que:

(4.3)

Si se reemplaza (4.3) en (4.1) se llega a lo siguiente:

Página 32
Estudio, identificación y control de una planta medidora de caudal másico. UNQ

Tomando como variables de estado , se tiene que:

(4.4)

4.1.2 Modelado matemático del caudal másico


Por otro lado, sabemos que el caudal másico a la salida del sistema es producto de
la velocidad de la cinta y de la fuerza que el material realiza sobre la misma. Por lo tanto,
podemos calcular este caudal como:

Donde:

Como y recordando que se puede escribir al caudal másico de salida


como5:

(4.5)

Imagen 4.2: Diagrama general del caudalímetro 6

5
Instrumentación de Procesos Industriales, parte II [Héctor Polenta]
6
Instrumentación de Procesos Industriales, parte II [Héctor Polenta]

Página 33
Estudio, identificación y control de una planta medidora de caudal másico. UNQ

4.1.3 Cálculo de la función de transferencia.


La variable que nos relaciona ambos modelos es la velocidad angular del eje del
motor . Entonces, despejando de la ecuación (4.5) se obtiene:

Si ahora reemplazamos este resultado en la ecuación (4.4) obtenemos:

Escrito en forma matricial queda de la siguiente manera:

Por otro lado, tomando como salida , la función de transferencia del

sistema completo es:

Donde , son dos constantes a determinar.


Para estimar el valor de estas constantes, se aproximó a un modelo de primer orden del
siguiente tipo:

Para luego ajustar los parámetros del mismo mediante la medición de la ganancia en
continua, retardo y tiempo de respuesta del sistema, ante una excitación de tipo escalón.
Esto último puede observarse en el siguiente gráfico:

Página 34
Estudio, identificación y control de una planta medidora de caudal másico. UNQ

Imagen 4.3: Respuesta al escalón

Dónde

Debido al bajo retardo de la planta, en comparación con la dinámica del sistema, este
decidió despreciarse para finalmente obtener el siguiente modelo matemático:

Ahora bien como el control a implementar es digital, y el modelo matemático está


descripto sobre un espacio de estados continuos, hay que hallar el modelo discreto del
mismo.
Tomando (aproximación diferencia hacia atrás7) como una aproximación

del sistema continuo, la dinámica del modelo discretizada sería:

Donde, teniendo en cuenta que se necesitan al menos 6 muestras durante el transitorio y


que el tiempo de establecimiento mínimo es de 3 segundos, el tiempo de muestreo
utilizado fue de T=0.1s.

7
Digital Control of Dynamic System [Gene F. Franklin, J.David Powell, Michael Worlanan]

Página 35
Estudio, identificación y control de una planta medidora de caudal másico. UNQ

A continuación se ven los resultados del ensayo al modelo obtenido. Estos


arrojaron valores que no fueron satisfactorios. Puede verse que para puntos de operación
alejados a los utilizados en la obtención del modelo, este se comporta diferente a la planta
real.

Imagen 4.4: Resultados del ajuste por ensayo al escalón

En base a esto, y al hecho de que el modelo matemático del motor es aproximado, se


plantea un nuevo modelo de la planta de un orden mayor. Es decir se plantea ajustar, de
manera empírica, una función de transferencia de segundo orden como la siguiente:

4.1.4 Ajustes de Parámetros.


El procedimiento consiste en obtener los parámetros del modelo matemático de la
planta, a partir de ensayos experimentales sobre el sistema real. Es decir, se ajustan los
parámetros del modelo en base a la respuesta del sistema frente a estímulos empíricos.

Página 36
Estudio, identificación y control de una planta medidora de caudal másico. UNQ

Uno de los ensayos que permite obtener este modelo consiste en excitar a la planta
con una señal de tipo escalón, para luego registrar la evolución temporal de la salida del
sistema y compararla con la del modelo matemático.
A partir de ensayos repetidos, se ajustaron experimentalmente los polos y la
ganancia del modelo hasta tener un error considerable entre la planta real y la planta
identificada, ambas excitadas con una actuación correspondiente a un caudal másico
entre y .
Los ensayos, para el ajuste del modelo, fueron realizados desde Simulink a partir
del siguiente diagrama en bloques:

Imagen 4.5: Diagrama en bloques del sistema Simulik implementado en la identificación.

La función de transferencia estimada posee:


un polo en 0, 9, otro en 0, 75
un cero en 0
una ganancia de 0, 000455
Esto último se puede observar en la imagen anterior.

4.1.5 Resultados del modelo obtenido.


Los resultados del proceso de estimación del modelo fueron óptimos, tanto en el
rango de valores donde se realizó el ajuste de parámetros del modelo matemático, como
fuera de él. En conclusión el modelo estimado responde idénticamente al sistema real en
todo el rango de valores que trabaja el sistema, este va de a . Esto
destaca la linealidad con que responde dicho sistema.
Como los resultados, fueron totalmente satisfactorios, se decidió no aplicar algún
tipo de proceso de identificación de mayor complejidad.

Página 37
Estudio, identificación y control de una planta medidora de caudal másico. UNQ

A continuación puede observarse la gráfica de la respuesta al escalón del sistema


real (curva azul) y el sistema estimado (curva roja), ambas excitadas con una señal de
entrada que produzca un caudal de salida de y respectivamente.

Imagen 4.6: Resultados de la identificación del sistema

Página 38
Estudio, identificación y control de una planta medidora de caudal másico. UNQ

5. Control
En este capítulo se desarrollarán las técnicas de control aplicadas tanto al sistema
real como al modelo matemático obtenido.
En primera instancia se realizó un estudio de la planta frente a una entrada de
tipo escalón, para luego ajustar un controlador PI a partir del método de Ziegler-Nichols.
Posteriormente se llevó a cabo un ajuste fino de las ganancias, proporcional e integral, de
manera empírica con el sistema en marcha, buscando el desempeño a lazo cerrado
deseado.
Por otra parte, se diseñó un controlador aplicando la técnica de ubicación de polos
a lazo cerrado sobre el modelo matemático de la planta, para una posterior corroboración
sobre el sistema real. Esta técnica permitió cumplir con los requerimientos de control
deseados a partir de un desarrollo de diseño teórico.
El capítulo también presenta las especificaciones de la dinámica a lazo cerrado
requeridas, es decir cómo deseamos que se comporte el sistema luego de aplicar el control
calculado.
Para el diseño de los controladores, tanto en la asignación de polos como en el
ajuste por Ziegler y Nichols, se utilizó MATLAB como herramienta de cálculo. Por otro
lado, para corroborar el correcto funcionamiento del controlador en el lazo cerrado del
sistema, se utilizó SIMULINK haciendo uso de herramientas que permiten trabajar en
tiempo real como: Real Time Workshop, la programación de funciones de tipo S-Function
y el Real Time Windows Target como target de aplicación.
Antes de comenzar con la explicación de cómo se realizó el diseño de control
presentamos un diagrama en bloques general del sistema.

Imagen 5.1: Diagrama en bloques general del sistema

Página 39
Estudio, identificación y control de una planta medidora de caudal másico. UNQ

Como lo indica la imagen anterior, el sistema completo está compuesto por dos
grandes partes:
La PC constituida por el controlador, los parámetros de referencia, sensado y
comando de la planta real.
El sistema físico compuesto por los circuitos electrónicos de acondicionamiento de
señal, los sensores, el actuador y la estructura mecánica.

5.1 Objetivos del comportamiento a lazo cerrado


En esta sección se detallan los requerimientos mínimos que se exigieron a la
respuesta a lazo cerrado del sistema una vez implementado el control. Tomando como
modelo una señal a lazo cerrado como la de la siguiente imagen:

Imagen 5.2: Explicación de las características de la respuesta del sistema

Donde:
: es el valor de referencia que se desea seguir.
: es el máximo valor que toma la señal d salida del sistema.
: es el valor del sobre valor producido. Es decir el valor máximo por
el cual la salida superó a la señal de referencia.
es el tiempo de establecimiento del sistema. Es decir, es el tiempo que tarda la
salida en entrar en una ventana de . 8

8
Control System Desing, [Graham C. Goodwin, Stefan. F. Graebe and Mario. E. Salgado.]

Página 40
Estudio, identificación y control de una planta medidora de caudal másico. UNQ

Los requerimientos necesarios que se exigieron a lazo cerrado son:


1. Respuesta rápida: como el sistema debe tener la capacidad de entregar
caudales durante transcursos de tiempo relativamente cortos, el tiempo de
establecimiento debe ser pequeño (inferior a los 6 segundos).
2. Rechazo a perturbaciones: el controlador debe ser capaz de rechazar
perturbaciones que impidan el correcto funcionamiento del sistema.
3. Evitar una excesiva acción del controlador: la acción de control no debe ser muy
elevada, ya que esta podría dañar algún punto del sistema.
4. El controlador debe cumplir el seguimiento de referencia en un rango de
condiciones operativas.
5. El sobre valor de la respuesta del sistema debe ser nulo.

5.2 Ajuste empírico de un controlador PI.


El controlador más famosos y popular en los sistemas de control de procesos
industriales es el PID. El algoritmo de cálculo del control PID se divide en tres parámetros
distintos: el proporcional, el integral, y el derivativo. A continuación se puede observar su
representación matemática y un diagrama en bloques de la idea 9.

Imagen 5.3: Diagrama en bloques de un controlador PID a lazo cerrado

Donde la acción proporcional actúa de manera proporcional al error obtenido entre


la medición y la referencia deseada. Esta acción es suficiente para estabilizar un sistema,
pero en caso de necesidad de seguimiento de referencia la misma tiene que ser muy

9
Control System Desing, [Graham C. Goodwin, Stefan. F. Graebe and Mario. E. Salgado.]

Página 41
Estudio, identificación y control de una planta medidora de caudal másico. UNQ

elevada ( ). Esto último implica transitorios oscilantes o directamente sistemas


inestables. Es por esto que se plantea el uso de una acción integral.
La función de la acción integral es eliminar el error en régimen permanente, a
partir de la integración del error de manera proporcional. Esta acción dejará de actuar en
el momento que error en estado estacionario sea nulo. Por lo general, la acción integral es
adicionada a la Proporcional para formar un control PI con el propósito de obtener una
respuesta estable del sistema sin error estacionario.
Por último el término derivativo es utilizado para mejorar los transitorios del
sistema y el comportamiento frente a perturbaciones. Este término, trata de reducir el
error proporcionalmente a la misma velocidad que se produce este. Vale aclarar que
cuando la derivada de la señal del error es muy alta, por ejemplo por la presencia de
ruido de alta frecuencia, la acción derivativa puede alcanzar valores elevados indeseables.
Como en nuestro caso teníamos presencia de esta clase de ruido, se decidió implementar
un controlador PI.

5.2.1 Ajuste por el método de Ziegler y Nichols.


De todos los métodos existentes para el cálculo de las ganancias , del
controlador, nos basamos en el método de Ziegler-Nichols (1942) tomando el resultado
arrojado como punto de partida para un posterior ajuste empírico, en base a los
resultados deseados.
El análisis de Ziegler-Nichols implementado fue llevado a cabo a partir de la
respuesta al escalón del sistema. Entonces lo que se hizo fue llevar al sistema a una
referencia con una amplitud de , para luego excitarlo con una señal de entrada
tipo escalón.
A partir de lo obtenido, se midieron el tiempo de retardo “L” y la magnitud “a”
señalada en el siguiente gráfico, para luego calcular las ganancias correspondientes como
lo indica el método.
A continuación se puede observar el resultado que se obtuvo para realizar la
medición, una imagen ampliada de la zona (indicada en color verde) y el cálculo de las
ganancias que arroja este método.

Página 42
Estudio, identificación y control de una planta medidora de caudal másico. UNQ

Imagen 5.4: Ensayo al escalón del sistema

Imagen 5.5: Ensayo al escalón del sistema (zoom)

El resultado del cálculo10 de las ganancias del controlador fue el siguiente:

10
Computer Controlled System, Theory and Desing,[ Karl J. Åström, Björn Wittenmark]

Página 43
Estudio, identificación y control de una planta medidora de caudal másico. UNQ

Por lo tanto, como se mencionó previamente, tomando como punto de partida


estos valores obtenidos por el método de Ziegler-Nichols se llevó a cabo un ajuste fino de
las ganancias con el fin de cumplir los requerimientos planteados en la sección 5.1. Estas
dos ganancias calculadas previamente producían un pequeño sobre valor en la respuesta
a lazo cerrado y un tiempo de establecimiento indeseado. Es por esto que estas fueron
modificadas empíricamente con la planta en funcionamiento, para así lograr el
desempeño deseado. Los resultados finales fueron los siguientes:

5.2.2 Resultados obtenidos.


A continuación se muestran los resultados obtenidos con el controlador PI
calculado a partir del método de Ziegler-Nichols.

Página 44
Estudio, identificación y control de una planta medidora de caudal másico. UNQ

Página 45
Estudio, identificación y control de una planta medidora de caudal másico. UNQ

Imagen 5.5: Resultados de aplicar un controlador PI al sistema

Se puede observar, que los resultados cumplen con los requerimientos de sobre
valor nulo, tiempo de establecimiento menor a seis segundos y seguimiento de referencia
en un rango de caudal relativamente amplio. Faltaría corroborar, por último, el rechazo
de perturbaciones y el desempeño de una acción de control no excesiva. Esto puede
apreciarse en los siguientes diagramas.

Imagen 5.6: Rechazo a perturbaciones del sistema a lazo cerrado con un controlador PI.

Página 46
Estudio, identificación y control de una planta medidora de caudal másico. UNQ

Imagen 5.7: Acción de control del sistema a lazo cerrado con un controlador PI.

5.2.3 Comparación entre el modelo de la planta y la planta real


En esta sección se pretende exponer las similitudes o diferencias entre la
respuesta del sistema real y la del modelo matemático estimado, ambas comandadas por
el mismo controlador PI. A continuación se muestran los resultados obtenidos para
referencias de , y respectivamente.

Página 47
Estudio, identificación y control de una planta medidora de caudal másico. UNQ

Imagen 5.8: Comparación entre el modelo de la planta y el sistema a lazo cerrado con un controlador
PI.

Se puede apreciar que las respuestas difieren muy poco ante la presencia del
mismo controlador. A partir de este resultado se decidió utilizar el modelo del sistema
para diseñar un control por asignación de polos, para luego aplicarlo al sistema real y
observar los resultados obtenidos. Este tema se abordará en la siguiente sección del
capítulo (sección 5.3).

5.3 Diseño de un controlador por el método de asignación


de polos.
En esta sección, se presentará el diseño de un controlador a partir del modelo
matemático del sistema mencionado en el capítulo 4 de esta obra. Para esto, se desarrolló
un diseño basado en asignación de polos a lazo cerrado.
A continuación se puede observar un diagrama en bloques general del sistema a
lazo cerrado y la función de transferencia que lo describe.

Página 48
Estudio, identificación y control de una planta medidora de caudal másico. UNQ

Imagen 5.9: Diagrama en bloques de un sistema de control general.

Donde: es el modelo de la planta hallado previamente y es

el controlador a diseñar.
A partir de esto último, en la siguiente sección se explica como fue el desarrollo y
la elección del controlador utilizado en el sistema.

5.3.1 Ajuste y cálculo del controlador.


Partiendo de la función de transferencia que describe al sistema, sabemos que la
dinámica a lazo cerrado depende de la ubicación de los polos de esta. Como

, tomando , los polos a lazo cerrado del sistema son:

Ahora bien, como se pretende seguir referencias constantes el controlador debe

poseer el modelo interno de la referencia a seguir. Por otro lado, como el

controlador deberá tener necesariamente, para llevar a cabo la asignación de polos, dos
polos y dos ceros (para que la ecuación diofantina tenga solución11). Es decir, el
controlador debe ser de la siguiente forma:

11
Control System Desing, [Graham C. Goodwin, Stefan. F. Graebe and Mario. E. Salgado.]

Página 49
Estudio, identificación y control de una planta medidora de caudal másico. UNQ

Donde el término representa al modelo interno de la referencia a seguir, y/o


perturbaciones a rechazar.
Una vez tenidos en cuenta la estructura del controlador y el modelo de la planta
pasamos a calcular el polinomio resultante:

Donde son los polos del sistema a lazo cerrado. Desarrollando la ecuación
anterior se obtiene el siguiente sistema de cuatro ecuaciones con cuatro incógnitas:

+ +( + )+ − + −( + ) +

(5.1)

Para la ubicación de los polos a lazo cerrado se especificó un polinomio de cuarto


orden de la siguiente manera12:

Con:

Donde es el factor de amortiguamiento y es la frecuencia natural de oscilación.


Buscando una respuesta críticamente amortiguada con tiempo de establecimiento
relativamente chico y mínimo sobre valor, se eligió un factor de amortiguamiento de valor
1 y una frecuencia natural de oscilación entre 1 y 1.25.

12
Computer Controlled System, Theory and Desing,[ Karl J. Åström, Björn Wittenmark]

Página 50
Estudio, identificación y control de una planta medidora de caudal másico. UNQ

Con este criterio, para y se obtuvo que:

Entonces, el polinomio a lazo cerrado queda de la siguiente manera:

Por otro lado, para y .25 se obtuvo:

En este caso, el polinomio a lazo cerrado queda de la siguiente forma:

A partir de estos dos resultados, se busco un valor intermedio eligiendo la


ubicación de los polos a lazo cerrado en un valor de 0.89. Una vez realizada esta elección,
reescribiendo el sistema de ecuaciones (5.1), con , se tiene que:

Luego, con la utilización de Matlab se resolvió el sistema de ecuaciones anterior,


obteniendo el siguiente controlador:

Por lo tanto la función de transferencia a lazo cerrado obtenida fue:

Con cuatro polos en 0.89, un cero en “cero”, un cero en 0.925 y un cero en 0.9.

Página 51
Estudio, identificación y control de una planta medidora de caudal másico. UNQ

A continuación se puede visualizar el diagrama de polos y ceros del sistema a lazo


cerrado, donde se verifica que la frecuencia natural y el factor de amortiguamiento son los
deseados.

Imagen 5.10: Mapa de polos y ceros del sistema a lazo cerrado.

En la siguiente sección se muestran los resultados del diseño implementado a


partir de esta asignación de polos a lazo cerrado.

5.3.2 Resultados obtenidos.


A continuación pueden observarse los resultados obtenidos con el controlador
diseñado por asignación de polos, aplicado tanto al modelo del sistema como al sistema
real.

Página 52
Estudio, identificación y control de una planta medidora de caudal másico. UNQ

Resultados en simulación.

Imagen 5.11: Resultados del modelo del sistema a lazo cerrado con un controlador diseñado por
asignación de polos.

Página 53
Estudio, identificación y control de una planta medidora de caudal másico. UNQ

Resultados sobre la planta real.

Imagen 5.12: Resultados del sistema a lazo cerrado con un controlador diseñado por asignación de
polos.

Se puede observar, que los resultados cumplen con los requerimientos de tiempo
de establecimiento y sobre valor. Faltaría corroborar por último el rechazo de
perturbaciones y el desempeño de una acción de control no excesiva. Esto último puede
apreciarse en los siguientes diagramas.

Página 54
Estudio, identificación y control de una planta medidora de caudal másico. UNQ

Imagen 5.13: Rechazo a perturbaciones del sistema a lazo cerrado con un controlador diseñado por
asignación de polos.

5.7: Acción de control del sistema a lazo cerrado con un controlador diseñado por asignación de polos.

Página 55
Estudio, identificación y control de una planta medidora de caudal másico. UNQ

5.3.3 Comparación entre el modelo de la planta y la planta real


En esta sección, al igual que la 5.2, se pretende exponer las similitudes o
diferencias entre la respuesta del sistema real y la del modelo matemático estimado,
ambas comandadas por el mismo controlador. En este caso, a diferencia del anterior, el
controlador fue diseñado por asignación de polos a lazo cerrado. A continuación se
muestran los resultados obtenidos para referencias de , y
respectivamente.

Imagen 5.8: Comparación entre el modelo de la planta y el sistema a lazo cerrado con un controlador
diseñado por asignación de polos.

Página 56
Estudio, identificación y control de una planta medidora de caudal másico. UNQ

6. Interfaz gráfica Hombre – Máquina


En esta sección se describe el desarrollo de la interfaz hombre máquina y cuales
son los objetivos que debiera cumplir dicha interfaz gráfica para el comando del sistema
detallado en los capítulos anteriores, para luego abordar la explicación de cómo se
lograron esos objetivos planteados.

6.1 Introducción a interfaces Hombre – Máquina


El objetivo de una HMI (Interface Hombre Máquina) es el de brindar un entorno
amigable de operación del sistema al usuario, de manera que la tarea de operación sea
intuitiva y sencilla.

6.1.2 Funcionalidad del HMI.


Un sistema de estas características, debe ofrecer una interfaz amistosa y lógica
para interactuar con el proceso, proporcionando:
Información sobre el estado actual.
Configuración de funcionalidades.
Visualización de Alarmas.
Gráficos históricos
Ingreso de parámetros.
De esta forma el sistema posee además habilidades de supervisión y monitoreo que
permiten una adecuada interacción con el usuario.

6.2 Desarrollo del sistema HMI.


Para la realización de la interfaz gráfica existen dos alternativas: sistemas
enlatados y sistemas a medida.
La utilización de un sistema enlatado, no se consideró conveniente, teniendo en
cuenta que estos utilizan protocolos estándar de comunicación y controladores de tipo
PLC, ya que están pensados para integrarse con un sistema de tipo industrial.
Las interfaces gráficas de usuario realizadas a medida (GUI), pueden desarrollarse
en diferentes entornos como por ejemplo JAVA, Visual C, Visual C++, Matlab, ect.
La herramienta de Matlab GUIDE (Graphical User Interface Development
Enviroment) posee algunas ventajas por sobre el resto:
Mayor eficiencia y velocidad a la hora de realizar cálculos.
Facilidad de programación.

Página 57
Estudio, identificación y control de una planta medidora de caudal másico. UNQ

Considerando además que tanto las etapas de los drivers de sensado y actuación,
como el control implementado fueron realizadas en Matlab, se optó por la utilización de
dicha herramienta, favoreciendo la integración de las diferentes etapas del proyecto.
Para el desarrollo de la interfaz de usuario, desde GUIDE, es necesario crear los
elementos que formarán parte de esta y definir qué acciones deberá realizar cada uno.
Con la utilización de este entorno se genera un archivo “.fig”, el cual contiene los
objetos de la interfaz, y un archivo “.m”, donde se escribe el algoritmo de las tareas que
realizan estos.
A continuación se hace referencia de los distintos objetos que fueron creados para
el desarrollo de la GUI:
StaticText: Es un texto estático (etiqueta) que cumple la función de mostrar
una cadena de caracteres.
EditText: Caja de texto que permite ingresar y editar texto.
Pushbutton: Botón que permite invocar a una acción inmediatamente
luego de ser presionado.
Slider: El Slider es una barra de desplazamiento que se utiliza para
representar e ingresar un determinado rango de valores.
Frame: Genera un espacio donde se pueden almacenar un conjunto de
objetos.
Axes: Es el objeto utilizado para mostrar imágenes y gráficos. Crea un
espacio donde estas figuras pueden ser representadas.
CheckBox: Caja que indica el estado de una opción.
ListBox: Lista deslizable que permite seleccionar entre varias opciones.
Popupmenu: Es un menú de opciones situado en la parte superior de la
pantalla.

En las siguientes secciones se detallarán como se componen cada una de las


pantallas del sistema, como así también los problemas que surgieron y sus soluciones.

6.2.1 Pantalla principal


En esta pantalla se pretende dar la opción, al usuario del sistema, de abrir las
pantallas de ajuste de los controladores, de los parámetros del sistema y la que brinda
información sobre la dinámica de la planta. Por otro lado, a partir de dos staticText, se
informa al operario sobre el estado en que se encuentra el sistema y qué tipo de alarma se
activo, en caso de ocurrir alguna.

Página 58
Estudio, identificación y control de una planta medidora de caudal másico. UNQ

Dentro de un frame se encuentran dos botones, que permiten el arranque y


parada de la planta, dos edittext, utilizados para el seteo de los valores de caudal y peso
requerido, y un popumenu, que otorga la posibilidad seleccionar entre un modo normal o
avanzado de configuraciones.
Por último, se dispone de la opción de ploteo y vincular Simulik, las cuales
permiten visualizar el desempeño del sistema en la última puesta en marcha y abrir el
archivo simulink que se desea implementar.
El aspecto de la pantalla principal de la interfaz HMI puede observarse en la
siguiente figura.

Imagen 6.1: Pantalla Principal

Página 59
Estudio, identificación y control de una planta medidora de caudal másico. UNQ

A continuación se explicará cómo se llevaron a cabo cada una de estas opciones


ofrecidas al usuario.

Información, ajustes de planta y ajustes de control


A partir de un menú, en la parte superior de la pantalla, se vincula la interfaz con
las pantallas de información, ajustes de planta y ajustes de control. Estas opciones
realizan solo la tarea de abrir la pantalla correspondiente a la elección tomada. El proceso
de ajuste de control, ajuste de planta y detalles de información fueron programados cada
uno en estas pantallas secundarias. Estos algoritmos serán explicados con mayor detalle
en las secciones 6.2.2, 6.2.3 y 6.2.4 respectivamente.

Vincular a Simulink…
Dentro del menú de opciones, una de ellas es la llamada Vincular a Simulink…
Esta, al ejecutarse abre la ventana “open” de Matlab y guarda localmente el directorio y el
nombre del archivo seleccionado. Luego procede abriendo el archivo simulink elegido.
Este puede ser tanto el que contiene el controlador PID, como el diseñado por asignación
de polos. Entonces, dependiendo de cuál de los dos archivos se vincule, se ejecutará uno
u otro control.
Una vez realizadas estas tareas, se habilita el botón (botón verde) que permite
arrancar el sistema. Dicho botón, estaba inicialmente deshabilitado a causa de no
encontrarse vinculado ningún tipo de archivo.

Ploteo
La última opción que presenta el menú es la del ploteo del comportamiento del
sistema. Este evento, ejecuta una serie de comandos que toman las variables de caudal y
actuación implementadas en el sistema, y las muestra un gráfico ubicado en la parte
inferior de la pantalla. Estas variables son escritas desde Simulink (una vez finalizado el
proceso) en el Worckspace y tomadas desde allí por la interfaz HMI. Además de estas dos,
se captura desde el Worckspace la variable que indica la referencia que se pretende
seguir, para luego graficarla junto al comportamiento del sistema.
En cuanto al gráfico en sí, este posee una escala en segundos sobre el eje de las
absisas y una escala en Kg/s en el eje de ordenadas. Vale aclarar que, la señal de
actuación, se encuentra graficada fuera de escala. Es decir, esta es dibujada en una
escala 1:20 respecto a la real.

Estado del sistema y eventos

Página 60
Estudio, identificación y control de una planta medidora de caudal másico. UNQ

En la parte superior de la pantalla se encuentra una imagen del proceso. Esta


posee, en su esquina inferior izquierda, dos staticTex utilizados para informar al usuario
sobre el estado y los eventos ocurridos en el sistema. Para llevar a cabo estas tareas de
supervición, el algoritmo de la interfaz se encuentra leyendo periódicamente el valor de
las variables, en el workspace, relacioadas con los estados y eventos. Estas variables son
modificadas desde Simulink, una vez finalizada la simulación, en base a lo que haya
sucedido en el sistema.
La lectura periódica de variables se implementó a partir de la creación de un
objeto Timer, en el momento que se abre la pantalla. El cual, es encendido al inicio de
cada puesta en marcha y detenido una vez finalizado el proceso. Cuando el Timer es
encendido, este llama periódicamente a una función que se encarga de chequear el valor
de las variables correspondientes, para luego mostrar en pantalla la información que
corresponda.
Los estados en que se puede hallar el sistema son los siguientes:
Sistema detenido: En este caso, el sistema se detuvo a causa de algún
evento.
Dosificando: El sistema se encuentra en pleno proceso de dosificación, por
lo cual no ha ocurrido ningún evento.
Cuando se detiene el sistema se informa al usuario el motivo de la detención. A
continuación se muestran los diferentes motivos o eventos que provocan la interrupción
del proceso:
Parada de Emergencia: El sistema se detuvo a causa de presionar la
parada de emergencia sobre el caudalímetro.
Dosificación incompleta: El sistema se detiene por presionar el botón de
stop manual desde la interfaz gráfica.
Tolva vacia: Indica que el sensor de Nivel está detectando la falta de
producto en la tolva.
Dosificación exitosa: El sistema se detiene luego de llegar al peso requerido
exitosamente.

A continuación, se presentan en una tabla, las diferentes posibilidades de estados


y eventos ocurridos durante la operación del sistema:

Estado Evento
Dosificando… Ninguno

Página 61
Estudio, identificación y control de una planta medidora de caudal másico. UNQ

Sistema Detenido Dosificación exitosa


Sistema Detenido Tolva Vacía
Sistema Detenido Dosificación Incompleta
Sistema Detenido Parada de Emergencia

Tabla 6.1: Estados y eventos del sistema

Botones Play y Stop


Stop: Este botón permite detener el proceso en cualquier instante del mismo, a
partir del seteo de variables en Simulink. Por otro lado, actualiza el valor del evento
ocurrido, lo muestra en pantalla y detiene la ejecución del Timer. Es el único evento que
no se muestra a partir del objeto Timer.
Play: En este objeto se llevan a cabo una serie de tareas, que son las encargadas
de poner en funcionamiento el sistema a partir de los datos seleccionados por el usuario.
Dichas tareas se enumeran a continuación:

1. Arranca la ejecución del Timer.


2. Se actualizan el estado de los staticText que indican el estado y los eventos
ocurridos.
3. Se toma el valor de los editText (caudal y el peso requerido) y se los escribe en el
Worckspace. En los editText se cargan los valores de caudal y peso requerido en la
operación del proceso.
4. Se fija el estado del popumenu.
5. Se abre de manera local el archivo “.mat” correspondiente al estado del
popumenu. Luego se escriben las variables cargadas en el worckspace. Es decir, si
se ha seleccionado modo avanzado, se leerá el archivo correspondiente a este
modo y por ende se pondrá en marcha el sistema con los valores modificados por
el usuario. En cambio, si se selecciona modo normal, se cargará un archivo cuyos
valores permiten que el sistema responda óptimamente. Este archivo, fue seteado
y cargado con el fin de no poder modificarlo de ninguna manera.
6. Conecta al Target.
7. Se inicia la ejecución del programa.

A continuación, puede observarse el diagrama de flujo del algoritmo implementado.

Página 62
Estudio, identificación y control de una planta medidora de caudal másico. UNQ

Imagen 6.2: Diagrama de flujo del botón Play

6.2.2 Ajustes de Parámetros Avanzados de control


En esta pantalla se pretende dar la opción, al operario del sistema, de realizar
ajustes avanzados del controlador. Este será posible sólo en un rango de operación
limitado, es decir, no se podrán seleccionar valores que produzcan acciones de control
extremadamente grandes ni extremadamente pequeñas. Esto es para no causar desgastes
ni rupturas en la planta.

Imagen 6.3: Pantalla Control

Página 63
Estudio, identificación y control de una planta medidora de caudal másico. UNQ

La pantalla se divide en dos grupos:


En el primer grupo se encuentran las herramientas que permiten variar la
dinámica a lazo cerrado en forma indirecta, mediante el seteo de las
ganancias del controlador PID.
El segundo grupo, a diferencia del anterior, da la posibilidad de variar de
forma directa la dinámica del sistema, ajustando el factor de
amortiguamiento y la frecuencia natural del mismo. En este caso el
controlador utilizado es calculado, desde el algoritmo de la interfaz, por el
método de asignación de polos13.
Estos parámetros se encuentran guardados en un archivo de extensión „.mat‟ el
cual, al abrirse la pantalla, es cargado y mostrado a través de los controles slider y static
text.
A partir de dos checkbox, en la parte superior de la pantalla, se puede seleccionar
el o los controladores que se desean ajustar. La implementación de dichos ajustes se
lleva a cabo mediante la modificación de los controles slider que se ven en pantalla.
Los cambios realizados, afectan directamente las variables del Workspace.
Utilizando la opción guardar que se observa en la figura, se guardaran los ajustes
realizados para futuras sesiones del sistema.

6.2.3 Ajuste de Parámetros Avanzados de la Planta


En esta pantalla se pretende dar la opción al operario del sistema de ajustar
parámetros de la planta de manera arbitraria. Este ajuste, al igual que el ajuste de los
controladores, será posible sólo en un rango de operación limitado, es decir, no se podrán
seleccionar parámetros inadecuados que originen un incorrecto funcionamiento del
sistema.

13
Ver capítulo 5.3 donde se explica en forma detallada el método

Página 64
Estudio, identificación y control de una planta medidora de caudal másico. UNQ

Imagen 6.4: Pantalla Planta

La pantalla se divide en dos grupos, por un lado el ajuste del período de la señal
de actuación, y por otro los ajustes de la ventana de tiempo en que el encoder cuenta los
pulsos.
Estos parámetros, al igual que en la pantalla “Parámetros avanzados de Control”
se encuentran guardados en un archivo de extensión „.mat‟ el cual, al iniciar la misma,
es cargado y mostrado en pantalla a través de los controles slider y static text.
La implementación de dichos ajustes se lleva a cabo mediante la modificación de
los controles slider que se ven en pantalla.
El primer grupo (período de la señal de actuación), posee además dos Static Text
que indican cual es la frecuencia a la cual estaría trabajando el motor y la resolución de
la señal PWM ajustada.
Los cambios realizados, afectan directamente las variables del Workspace.
Utilizando la opción guardar que se observa en la figura, se guardaran los ajustes
realizados para futuras sesiones del sistema.
Cabe mencionar que para utilizar el sistema con los parámetros avanzados
ingresados en las pantallas de ajuste, debe seleccionarse el modo avanzado en la pantalla
principal.

Página 65
Estudio, identificación y control de una planta medidora de caudal másico. UNQ

6.2.4 Información
Esta pantalla es solo a título informativo. Se pretende informar al operario sobre la
respuesta al escalón y la respuesta en frecuencia del sistema que va a utilizar. Para que
de esta manera, el mismo, pueda realizar un mejor ajuste de los parámetros de los
controladores que desee implementar.

Imagen 6.5: Pantalla Información

Simplemente a partir de dos checkbox en la parte inferior de la pantalla se puede


seleccionar la respuesta que se desea visualizar en el centro de la pantalla.

6.3 Transferencia de datos entre Simulink y la Interfaz


gráfica HMI.

Como se menciona en la sección 6.2, existe una transferencia de datos continua


entre Simulink y la interfaz gráfica HMI, una vez finalizado el proceso y al inicio del
mismo. Esta transferencia de datos de lleva a cabo a partir de la escritura y lectura de
variables en el workspace, ya que este puede ser accedido por ambos sistemas.
Por un lado, se tienen las variables que son escritas desde la interfaz gráfica HMI,
las cuales a su vez, son las encargadas de setear los parámetros de los bloques en
Simulink.
Por otro lado, desde Simulink se graban en el worckspace los valores
correspondientes de las variables que indican el estado del sistema y si ha ocurrido o no
algún evento.
Por último, al ejecutarse el botón de Stop, se produce un seteo de parámetros
desde la interfaz HMI directamente hacia Simulink.

Página 66
Estudio, identificación y control de una planta medidora de caudal másico. UNQ

A continuación puede observarse un diagrama en bloques de esta idea de


transferencia de datos, lo cual ayudará a clarificar esta idea.

Imagen 6.6: Transferencia de datos

Página 67
Estudio, identificación y control de una planta medidora de caudal másico. UNQ

7. Conclusiones
A partir de modificaciones y rediseños sobre los sistemas mecánicos y electrónicos
(capítulo 3) en el caudalímetro ya existente, se obtuvo una mejora en la precisión del
mismo. Lo cual fue de mera importancia para la implementación de los lazos de control e
identificación del sistema real.
Por otro lado, el uso de herramientas de software en tiempo real, permitió realizar la
adquisición de datos para la identificación (capítulo 4) del sistema. Este modelado, al
comportarse de manera casi idéntica al sistema real, permitió un mejor estudio de la
dinámica de la planta, y un mejor diseño y ajuste de los controladores implementados
(capítulo 5).
Recordando todos los objetivos propuestos (capítulo 2) en el proyecto, podemos
observar que estos fueron cumplidos en su totalidad con un desempeño totalmente
satisfactorio, lo cual puede observarse con detalle en el capítulo 5 (Sección Resultados) de
esta obra.
Por otra parte, se lograron los requerimientos de la dinámica a lazo cerrado del
sistema expresados en el capítulo 5 (requerimientos de control). Para lograr estos objetivos
en cuanto a la respuesta del sistema a lazo cerrado, fue de vital importancia la obtención
del modelo matemático del sistema real. Ya que a partir de este se pudieron definir
criterios a la hora de ajustar las ganancias del controlador PI implementado. Como así
también, fue indispensable para llevar a cabo el diseño del controlador por asignación de
polos.
Si comparamos los resultados obtenidos por ambos controladores (sección 5.2.3 y
5.3.3), se puede observar que, aunque ambos cumplan con estos objetivos, el diseño
implementado a partir de una asignación de polos presenta un tiempo de establecimiento
menor a la dinámica obtenida con un controlador PI. Luego, las demás características a
contemplar son similares en un caso respecto al otro.
El comando, supervisión y ajuste del sistema se realiza desde un HMI implementado
a partir de la herramienta Guide de Matlab (capítulo 6), tal como se presenta en los
objetivos de esta obra.
Respecto al rango de trabajo del sistema, este va desde a
cumpliendo con todos los objetivos de control planteados en el capítulo 5. El sistema
responde a caudales menores a y mayores a sobre exigiendo su
desempeño. Si el caudal de salida se elige mayor a , ante una perturbación en la
planta el actuador podría responder de manera no satisfactoria dependiendo de la
magnitud de la perturbación. Por otro lado, por debajo de los (hasta los )

Página 68
Estudio, identificación y control de una planta medidora de caudal másico. UNQ

el sistema presenta un respuesta en régimen permanente oscilatoria debida a la muy baja


velocidad (casi nula) que se desplaza la cinta.
Por último queremos destacar que consideramos de gran importancia todos los
conocimientos, tanto prácticos como teóricos, adquiridos durante el período de esta obra.
Sin dejar de lado la aplicación en conjunto de aquellos conocimientos obtenidos durante
todo el transcurso de la carrera.

Página 69
Estudio, identificación y control de una planta medidora de caudal másico. UNQ

8. Bibliografía

[1] Graham C. Goodwin, Stefan. F. Graebe and Mario. E. Salgado. “Control System
Desing”. Prentice Hall International, 2001.

[2] Katsuhiko Ogata. “Ingeniería de control moderna”. 3ª Ed. Prentice Hall, 1998.

[3] Gene F. Franklin. “Feedback Control of Dynamic Systems” 4th Edition.

[4] Antonio Creus Solé. “Instrumentación industrial”. 5ª Ed. Marcombo Boixareu editires.

[5] Héctor Polenta. “Instrumentación de Procesos Industriales”, pare II.

[6] Matlab. http://www.mathworks.com/.

[7] Simulink Matlab. . http://www.mathworks.com/.

[8] Real Time Windows Target. http://www.mathworks.com/,1998.

[9] Guide Matlab. http://www.mathworks.com/.

[10] C.Mex Matlab. http://www.mathworks.com/.

[11] Paul A. Tipler. ”Física”. Editorial Reverté, 1994.

[12] Manual de curso de IFIX. “IFIX Fundamentals”.

[13] Gene F. Franklin, J.David Powell, Michael Worlanan. “Digital Control of Dynamic
System”
[14] Karl J. Åström, Björn Wittenmark. “Computer Controlled System Theory and Desing”,
3ª Ed. Prentice Hall, 1997.

Página 70
Anexo 0: Herramientas de software y PC
Las herramientas informáticas indispensables para la realización del proyecto son
una PC con el software de Matlab 6.5, Simulink 5.0 y sus respectivos toolbox.
Las herramientas de Matlab/Simulink utilizadas fueron el toolbox Real Time
Windows Target y el Real Time Workshop, los cuales permiten trabajar en tiempo real.
Por otro lado para poder ejecutar algoritmos en tiempo real, la PC debe poseer un
compilador de código en C, por ejemplo Watcom 11 o Visual Basic compiler. Ya que es
necesario convertir el diagrama de bloques de Simulink en un código C, y por otro lado
también es necesario compilar las s-funcion escritas también en lenguaje C.
Por último también se necesita tener instalada la herramienta Guide de Matlab, la
cual permite crear Guis (Interfaces gráficas de usuario).
Estudio, identificación y control de una planta medidora de caudal másico. UNQ

Anexo 1: S_functions
Una S-functión es un bloque de Simulink escrito en lenguaje C, C + + o Fortran. En
este caso como se trabaja en tiempo real, las s-function fueron escritas en C. Estas
permiten generar un bloque a medida, en Simulink, con la posibilidad de trabajar en
tiempo real, a partir de las herramientas Real Time Workshop y Real Time Windows
Target.
Es por esto que se generaron las siguientes s-function, a modo de driver, con el fin de
cubrir los requerimientos de medición y actuación del sistema.

S-function de la señal de medición de velocidad


#define S_FUNCTION_NAME encoder
#define S_FUNCTION_LEVEL 2
#define PORT_OUT 0x378
#define PORT_IN 0x379
#define MUESTRAS 6 // Cantidad de muestras del promedio móvil

#include "simstruc.h"
#include <conio.h> //para comandar el puerto paralelo

//*************************************************************************************************
// Inicialización de entradas y salidas (2 entradas y 1 salida)
//*************************************************************************************************
static void mdlInitializeSizes(SimStruct *S)
{
ssSetNumSFcnParams(S, 0);
ssSetNumInputPorts(S, 2);
ssSetInputPortWidth(S, 0, 1);
ssSetInputPortWidth(S, 1, 1);
ssSetInputPortDirectFeedThrough(S, 0, 1);
ssSetInputPortDirectFeedThrough(S, 1, 1);
ssSetNumOutputPorts(S,1);
ssSetOutputPortWidth(S, 0, 1);
ssSetNumSampleTimes(S, 1);
ssSetOptions(S, SS_OPTION_EXCEPTION_FREE_CODE);
}
//*************************************************************************************************
//*************************************************************************************************

//*************************************************************************************************
// Seteo de tiempo de muestreo y offset
//*************************************************************************************************
static void mdlInitializeSampleTimes(SimStruct *S)
{
ssSetSampleTime(S, 0, 0.001);//Tiempo de muestreo de 1 milisegundo
ssSetOffsetTime(S, 0, 0.0);//Tiempo de offset cero segundos
}
//*************************************************************************************************
//*************************************************************************************************
Estudio, identificación y control de una planta medidora de caudal másico. UNQ

//*************************************************************************************************
// Inicio del algoritmo
//*************************************************************************************************
static void mdlOutputs(SimStruct *S, int_T tid)
{
real_T *y0 = ssGetOutputPortRealSignal(S,0);
InputRealPtrsType uPtrs0 = ssGetInputPortRealSignalPtrs(S,0);
InputRealPtrsType uPtrs1 = ssGetInputPortRealSignalPtrs(S,1);

static int EntradaAnterior=0;


static int Nivel_min=0;
static int Pulsos=0;//Cuenta la cantidad de pulsos
static double Contador=0; // Cuenta el tiempo transcurrido
static double promedio_3;
static double prom_3[MUESTRAS];//Entre corchetes va la cantidad de muestras que
deseo para realizar un promedio movil
double T;
double ventana;
int Entrada=0;
int cant_muestras=MUESTRAS;
int i;

T=(*uPtrs0[0]);//Base de tiempo (es el tiempo que transcurre cada vez que se llama a la
funcion)
ventana=(*uPtrs1[0]);//Transcurso de tiempo en el cual se cuentan los pulsos

/* Leo el puerto paralelo */


Entrada=(int)(inp(0x379)&0x40);//Leo la salida del sensor óptico
Nivel_min=(int)(inp(0x379)&0x20);//Leo la salida del PhotoSwhitch (sensor de nivel
mínimo)

/* Detecto flancos*/
if(Entrada==64 && EntradaAnterior==0)//Me fijo si el sensor óptico cambio de estado
{
Pulsos=Pulsos+1;//Si el sensor óptico cambio de estado cuento un pulso
}

Contador=Contador+T;//Incremento el tiempo transcurrido


if(Contador>=ventana)//Me fijo si el tiempo transcurrido es igual a la ventana de
tiempo
{

//*************************************************************************************************
//Si el tiempo transcurrido es igual a la ventana de tiempo, calculo la velocidad
instantánea y hago un promedio móvil
//*************************************************************************************************
promedio_3=0;
for (i=0;i<=(cant_muestras-2);i++)
{
prom_3[i] = prom_3[i+1];//Desplazo las mediciones anteriores
promedio_3 = promedio_3 + prom_3[i];//Sumo las mediciones anteriores
}
Estudio, identificación y control de una planta medidora de caudal másico. UNQ

prom_3[(cant_muestras-1)]=Pulsos*0.141372/(Contador*149);//Calculo la
medición actual
promedio_3=(promedio_3+prom_3[(cant_muestras-1)])/cant_muestras;//Calculo
el promedio
*y0=promedio_3;//Muestro la velocidad en la salida 0

//*************************************************************************************************
//*************************************************************************************************
Contador=0;//Reseteo el tiempo transcurrido
Pulsos=0;//Reseteo la cantidad de pulsos
}

EntradaAnterior=Entrada;//Guardo en entrada anterior la entrada actual para el


próximo ciclo
}

static void mdlTerminate(SimStruct *S)


{
}
#ifdef MATLAB_MEX_FILE
#include "simulink.c"
#else
#include "cg_sfun.h"
#endif

S-function de la medición de peso acumulado


#define S_FUNCTION_NAME peso
#define S_FUNCTION_LEVEL 2
#define PORT_OUT 0x378
#define PORT_IN 0x379
#define MUESTRAS 10
#include "simstruc.h"
#include <conio.h> //para comandar el puerto paralelo

//*************************************************************************************************
// Inicialización de entradas y salidas (1 entrada y 1 salida)
//*************************************************************************************************
static void mdlInitializeSizes(SimStruct *S)
{
ssSetNumSFcnParams(S, 0);

ssSetNumInputPorts(S, 1);
ssSetInputPortWidth(S, 0, 1);
ssSetInputPortDirectFeedThrough(S, 0, 1);

ssSetNumOutputPorts(S,1);
ssSetOutputPortWidth(S, 0, 1);

ssSetNumSampleTimes(S, 1);
ssSetOptions(S, SS_OPTION_EXCEPTION_FREE_CODE);
}
//*************************************************************************************************
Estudio, identificación y control de una planta medidora de caudal másico. UNQ

//*************************************************************************************************

//*************************************************************************************************
// Seteo de tiempo de muestreo y offset
//*************************************************************************************************
static void mdlInitializeSampleTimes(SimStruct *S)
{
ssSetSampleTime(S, 0, 0.01);//Tiempo de muestreo 10 milisegundos
ssSetOffsetTime(S, 0, 0.0);//Tiempo de offset cero segundos
}
//*************************************************************************************************
//*************************************************************************************************

//*************************************************************************************************
// Inicio del algoritmo
//*************************************************************************************************
static void mdlOutputs(SimStruct *S, int_T tid)
{
real_T *y0 = ssGetOutputPortRealSignal(S,0);
InputRealPtrsType uPtrs0 = ssGetInputPortRealSignalPtrs(S,0);

real_T caudal;
int i;
static int cont;
static real_T peso_total;

caudal=(*uPtrs0[0]);//Leo el caudal instantáneo


peso_total=(caudal*0.01)+peso_total;//Integro el caudal en el tiempo
*y0=peso_total;//Muestro en la salida 0 el peso acumulado durante un tiempo
determinado

static void mdlTerminate(SimStruct *S)


{
}
#ifdef MATLAB_MEX_FILE
#include "simulink.c"
#else
#include "cg_sfun.h"
#endif

S-function de la señal de medición de peso


#define S_FUNCTION_NAME shiftyad_2
#define S_FUNCTION_LEVEL 2
#define PORT_OUT 0x378 //(888 en decimal)
#define PORT_IN 0x379 //(889 en decimal)
#define PORT_CNTRL 0x37A //(890 en decimal)
#define MUESTRAS 16
#include "simstruc.h"
#include <conio.h> //Para manejar el puerto paralelo

//*************************************************************************************************
Estudio, identificación y control de una planta medidora de caudal másico. UNQ

// Inicialización de entradas y salidas (0 entradas y 1 salidas)


//*************************************************************************************************
static void mdlInitializeSizes(SimStruct *S)
{
ssSetNumSFcnParams(S, 0);
ssSetNumInputPorts(S, 0);
ssSetNumOutputPorts(S,1);
ssSetOutputPortWidth(S, 0, 1);

ssSetNumSampleTimes(S, 1);
ssSetOptions(S, SS_OPTION_EXCEPTION_FREE_CODE);
}
//*************************************************************************************************
//*************************************************************************************************

//*************************************************************************************************
// Seteo de tiempo de muestreo y offset
//*************************************************************************************************
static void mdlInitializeSampleTimes(SimStruct *S)
{
ssSetSampleTime(S, 0, 0.01);//Tiempo de muestreo 10 milisegundos
ssSetOffsetTime(S, 0, 0.0);//Tiempo de offset cero segundos
}
//*************************************************************************************************
//*************************************************************************************************

//*************************************************************************************************
// Inicio del algoritmo
//*************************************************************************************************
static void mdlOutputs(SimStruct *S, int_T tid)
{
real_T *y0 = ssGetOutputPortRealSignal(S,0);

int i=0;
int j=0;
int a=0;
int cant_muestras=MUESTRAS;
static int condicion=0;
static int contador=0;
static int entrada=0;
static int peso=0;
static int entrada_2=0;
static int peso_2=0;
static int prom_1[MUESTRAS];//ENTRE CORCHETES VA LA CANTIDAD DE
MUESTRAS QUE QUIERO DE PROMEDIO MOVIL
static int prom_2[MUESTRAS];//ENTRE CORCHETES VA LA CANTIDAD DE
MUESTRAS QUE QUIERO DE PROMEDIO MOVIL
static int promedio_1;
static int promedio_2;

cant_muestras=MUESTRAS;

switch (condicion)
{
case 0:
Estudio, identificación y control de una planta medidora de caudal másico. UNQ

{
outp(PORT_OUT,((inp(PORT_OUT))&(0xFE))); //pongo el bit 6 del CAD en 0 y el
conversor AD comienza la conversion.
condicion=1;
}
break;
case 1:
{
outp(PORT_OUT,((inp(PORT_OUT))|(0x01))); //pongo el bit 6 del CAD en 1 (ya
convirtió).
condicion=2;
}
break;
case 2:
{
outp(PORT_OUT,((inp(PORT_OUT))&(0xFD))); //envío un 0 en el bit 0 del shift
register(indico que cargo datos)
condicion=3;
}
break;
case 3:
{
outp(PORT_OUT,((inp(PORT_OUT))|(0x02))); //envío un 1 en el bit 0 del shift
register(indico que cargo datos)
condicion=4;
}
break;
case 4:
{
outp(PORT_OUT,(((inp(PORT_OUT))&(0xEF))|(0x02))); //envío un 0 en el bit 2 del
shift register y envío un 1 en el bit 0 del shift register (indico que estoy tomando datos)
condicion=5;
}
break;
case 5:
{
outp(PORT_OUT,(((inp(PORT_OUT))) |(0x10))); //envío un 1 en el bit 2 del shift
register y envio un 1 en el bit 0 del shift register(indico que estoy tomando datos)
entrada=(int)(inp(PORT_IN)&(0x08)); //Leo el dato enviado por el shift register
numero 1
peso=(peso << 1) + (entrada/8); //desplazo un bit todo hacia la izquierda y le agrego
el siguiente bit

entrada_2=(int)(inp(PORT_IN)&(0x10)); //Leo el dato enviado por el shift register


numero 2
peso_2=((peso_2) << 1) + ((entrada_2)/16); //desplazo un bit todo hacia la izquierda
y le agrego el siguiente bit

contador=contador+1;//Cuento la cantidad de datos recibidos


if (contador==8)//Me fijo si la cantidad de datos recibidos es 8
{
condicion=0;//Inicializo el algoritmo
contador=0;//Inicializo la cantidad de datos tomada
Estudio, identificación y control de una planta medidora de caudal másico. UNQ

//*************************************************************************************************
//*************************************************************************************************
// HAGO UN PROMEDIO MOVIL con los datos obtenidos a través de primer shift
register

//*************************************************************************************************
//*************************************************************************************************
promedio_1=0;
for (i=0;i<=(cant_muestras-2);i++)
{prom_1[i] = prom_1[i+1];//Desplazo los datos anteriores
promedio_1 = promedio_1 + prom_1[i];//Sumo los datos anteriores
}
prom_1[(cant_muestras-1)]=5000-(((peso)*5000)/255);//Calculo el ultimo valor
recibido
promedio_1=(promedio_1+prom_1[(cant_muestras-1)])/cant_muestras;//Realizo el
promedio
//*************************************************************************************************
//*************************************************************************************************
// HAGO UN PROMEDIO MOVIL con los datos obtenidos a través del segundo shift
register
//*************************************************************************************************
//*************************************************************************************************
i=0;
promedio_2=0;
for (i=0;i<=(cant_muestras-2);i++)
{prom_2[i] = prom_2[i+1];//Desplazo los datos anteriores
promedio_2 = promedio_2 + prom_2[i];//Sumo los datos anteriores
}
prom_2[(cant_muestras-1)]=5000-(((peso_2)*5000)/255);//Calculo el ultimo valor
recibido
promedio_2=(promedio_2+prom_2[cant_muestras-1])/cant_muestras;//Realizo el
promedio
*y0=promedio_2+promedio_1;//Muestro el valor recibido (en milivolts) en la salida
0

//*************************************************************************************************
//*************************************************************************************************
// Inicializo valores
//*************************************************************************************************
//*************************************************************************************************
peso=0;
entrada=0;

peso_2=0;
entrada_2=0;
//*************************************************************************************************
//*************************************************************************************************
}
else//Si la cantidad de datos recibidos es menor a 8 vuelvo al case 4
{
condicion=4;
}
}
break;
Estudio, identificación y control de una planta medidora de caudal másico. UNQ

}
}

static void mdlTerminate(SimStruct *S)


{
}
#ifdef MATLAB_MEX_FILE
#include "simulink.c"
#else
#include "cg_sfun.h"
#endif

S-function de la señal de actuación


#define S_FUNCTION_NAME pwm
#define S_FUNCTION_LEVEL 2
#define PORT_OUT 0x378
#define PORT_IN 0x379
#include "simstruc.h"
#include <conio.h> //para comandar el puerto paralelo

//*************************************************************************************************
// Inicialización de entradas y salidas (5 entradas y 1 salida)
//*************************************************************************************************
static void mdlInitializeSizes(SimStruct *S)
{
ssSetNumSFcnParams(S, 0);
ssSetNumInputPorts(S, 5);
ssSetInputPortWidth(S, 0, 1);
ssSetInputPortWidth(S, 1, 1);
ssSetInputPortWidth(S, 2, 1);
ssSetInputPortWidth(S, 3, 1);
ssSetInputPortWidth(S, 4, 1);
ssSetInputPortDirectFeedThrough(S, 0, 1);
ssSetInputPortDirectFeedThrough(S, 1, 1);
ssSetInputPortDirectFeedThrough(S, 2, 1);
ssSetInputPortDirectFeedThrough(S, 3, 1);
ssSetInputPortDirectFeedThrough(S, 4, 1);
ssSetNumOutputPorts(S,1);
ssSetOutputPortWidth(S, 0, 1);

ssSetNumSampleTimes(S, 1);
ssSetOptions(S, SS_OPTION_EXCEPTION_FREE_CODE);
}
//*************************************************************************************************
//*************************************************************************************************

//*************************************************************************************************
// Seteo de tiempo de muestreo y offset
//*************************************************************************************************
static void mdlInitializeSampleTimes(SimStruct *S)
{
ssSetSampleTime(S, 0, 0.0001);//Tiempo de muestreo 100 microsegundos
ssSetOffsetTime(S, 0, 0.0);//Tiempo de offset cero segundos
Estudio, identificación y control de una planta medidora de caudal másico. UNQ

}
//*************************************************************************************************
//*************************************************************************************************

//*************************************************************************************************
// Inicio del algoritmo
//*************************************************************************************************
static void mdlOutputs(SimStruct *S, int_T tid)
{
real_T *y0 = ssGetOutputPortRealSignal(S,0);
InputRealPtrsType uPtrs0 = ssGetInputPortRealSignalPtrs(S,0);
InputRealPtrsType uPtrs1 = ssGetInputPortRealSignalPtrs(S,1);
InputRealPtrsType uPtrs2 = ssGetInputPortRealSignalPtrs(S,2);
InputRealPtrsType uPtrs3 = ssGetInputPortRealSignalPtrs(S,3);
InputRealPtrsType uPtrs4 = ssGetInputPortRealSignalPtrs(S,4);

static int Triangular=0;


double Amplitud;
double PWM;
double DutyCycle;
double T; //Periodo
double peso;
double peso_requerido;
double Nivel_min;
double Parada;
double parada_logica;

T=(*uPtrs0[0]);//Periodo
peso=(*uPtrs2[0]);//Peso acumulado en la salida del sistema
peso_requerido=(*uPtrs3[0]);//Peso requerido
parada_logica=(*uPtrs4[0]);//parada_logica

Nivel_min=(int)(inp(0x379)&0x20);//Leo la salida del PhotoSwhitch (sensor de nivel


mínimo)
Parada=(int)(inp(0x379)&0x80);//Leo la parada de emergencia

//*************************************************************************************************
// Genero una señal triangular
//*************************************************************************************************
if(Triangular>=T)
{
Triangular=0;
}
else
{
Triangular=Triangular+1;
}

//*************************************************************************************************
//*************************************************************************************************

DutyCycle=(*uPtrs1[0])*T/100;//Calculo el valor correspondiente al ciclo de trabajo


deseado
Estudio, identificación y control de una planta medidora de caudal másico. UNQ

if(peso_requerido<=peso)//Me fijo si el peso requerido fue alcanzado


{
PWM=0;//Si el peso requerido fue alcanzado paro el sistema
*y0=1;//Aviso que se se ejecute stop
}
else
{
if (Nivel_min<=1)//Me fijo si se activo el sensor de nivel mínimo
{
PWM=0;//Si la tolva se quedo sin producto paro el sistema
*y0=2;//Aviso que se ejecute stop
}
else
{
if (Parada>=1)//Me fijo si se presiono la parada de emergencia
{
PWM=0;//Si se presiono la parada de emergencia paro el sistema
*y0=3;//Aviso que se ejecute stop
}
else
{
if (parada_logica==1)
{
PWM=0;
}
else
{
if(DutyCycle==0)//Me fijo si el ciclo de trabajo es cero
{
PWM=0;//Si el ciclo de trabajo es cero paro el sistema
}
else
{
PWM=(DutyCycle>=Triangular); //si se cumple la condición se pone en 1
}
}
}
}
}

if (PWM==0)
{
outp(PORT_OUT,((inp(PORT_OUT))&(0xBF))); //Cuando PWM=0 escribo
un cero en el puerto paralelo
}
else
{
outp(PORT_OUT,((inp(PORT_OUT))|(0x40))); //Cuando PWM=1 escribo
un uno en el puerto paralelo
}
}

static void mdlTerminate(SimStruct *S)


{
Estudio, identificación y control de una planta medidora de caudal másico. UNQ

}
#ifdef MATLAB_MEX_FILE
#include "simulink.c"
#else
#include "cg_sfun.h"
#endif
Estudio, identificación y control de una planta medidora de caudal másico. UNQ

Anexo 2: Diagramas Simulink


La herramienta utilizada como interfaz gráfica entre el programador y la generación
de código C para trabajar en tiempo real fue Simulink. Este entorno junto con las s-
function y los toolbox mencionados previamente permiten, en conjunto, que la aplicación
se ejecute y controle al sistema en tiempo real. A continuación se presentan los
diagramas Simulink implementados para el desarrollo del proyecto.

Diagrama Simulink implementado con un controlador PID


Estudio, identificación y control de una planta medidora de caudal másico. UNQ

Diagrama Simulink implementado con un controlador por


asignación de polos
Estudio, identificación y control de una planta medidora de caudal másico. UNQ

Anexo 3: Algoritmo de la interfaz gráfica


A partir de la herramienta Guide de Matlab se llevó a cabo la creación de la interface
gráfica de usuario. La cual, a diferencia del diagrama Simulink y las s-function no genera
código que trabaja en tiempo real.
Para la creación de dicha interfaz se utilizo el lenguaje de programación de Matlab y
la creación de objetos que facilita la herramienta Guide, como lo son: menús, slider,
pushbutton, statixtex, edittext, list, option, axes, ect. A partir de los eventos (callback)
que poseen cada uno de estos objetos se programaron las distintas funcionalidades de la
interfaz.
A continuación se presenta el código utilizado para su desarrollo.

Algoritmo de la pantalla principal de la interfaz gráfica


function varargout = interfaz(varargin)

gui_Singleton = 1;
gui_State = struct('gui_Name', mfilename, ...
'gui_Singleton', gui_Singleton, ...
'gui_OpeningFcn', @interfaz_OpeningFcn, ...
'gui_OutputFcn', @interfaz_OutputFcn, ...
'gui_LayoutFcn', [] , ...
'gui_Callback', []);
if nargin & isstr(varargin{1})
gui_State.gui_Callback = str2func(varargin{1});
end

if nargout
[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
else
gui_mainfcn(gui_State, varargin{:});
end
% End initialization code - DO NOT EDIT

function interfaz_OpeningFcn(hObject, eventdata, handles, varargin)

%Aquí seteamos los parámetros iniciales


axes(handles.axes1);
a=imread('83.jpg');
image(a);
axis off;
set(handles.conect,'enable','on');
set(handles.estado,'String','Sistema Detenido','backgroundcolor','yellow')
set(handles.pushbutton2,'enable','off');
assignin('base','periodo',20);
assignin('base','peso_final',2);
assignin('base','base_de_tiempo',0.001);
assignin('base','ventana',0.125);
assignin('base','caudal',0.5);
Estudio, identificación y control de una planta medidora de caudal másico. UNQ

assignin('base','p',30);
assignin('base','in',30);
assignin('base','d',0);
assignin('base','s0',42.889);
assignin('base','s1',-78.272);
assignin('base','s2',35.705);
assignin('base','r',-0.92951);
assignin ( 'base', 'motivo',0) ;
assignin ( 'base', 'caudal_real',0) ;
assignin ( 'base', 'act',0) ;
global var;
var.tmr=timer('TimerFcn',{@TimerCallback,hObject,handles},'Period',2.1,'Execution
Mode','fixedspacing');
axes(handles.axes4);
set(handles.axes4,'YColor',[0.2 0.4 0.7]);
set(handles.axes4,'XColor',[0.2 0.4 0.7]);
set(handles.axes4,'Color',[0.3 0.3 0.3]);
title('Comportamiento de la Planta','Color',[0.2 0.4 0.7]);
xlabel('Segundos');
ylabel('Caudal');

handles.output = hObject;

guidata(hObject, handles);

function varargout = interfaz_OutputFcn(hObject, eventdata, handles)


varargout{1} = handles.output;

% -----Aquí se programa el evento vincular del menú para abrir un archivo .mdl----
function vincular_Callback(hObject, eventdata, handles)
[filename,path]=uigetfile({'*.mdl'});%Cargo el nombre del archivo y el directorio
global T
B='';
for i=1:(length(filename)-4);
B=strcat(B,filename(i));%Concatenamos el nombre del archivo con el directorio
end
T=strcat(B,'/parada_logica');%Concateno el archivo .mdl con el bloque al cual
deseo cambiarle el parámetro
open(filename);%Abrimos el archivo
set(handles.pushbutton2,'enable','on');%Habilito el botón de play
% --------------------------------------------------------------------------------------------------

%Aquí se programa el evento información del menú para abrir la pantalla


información-----------------------------------------------------------------------------------------------
function conect_Callback(hObject, eventdata, handles)
informacion%Abrimos la pantalla de información
% --------------------------------------------------------------------------------------------------

% ----------Aquí se programa el evento del botón play-------------------------------------


function pushbutton2_Callback(hObject, eventdata, handles)

assignin ( 'base', 'motivo',0) ;%Reseteamos los parámetros relacionados con las


alarmas
global T
Estudio, identificación y control de una planta medidora de caudal másico. UNQ

set_param(T,'value','0')%Se resetea el estado del botón stop escribiendo sobre


simulink

%---- se cargan los parámetros asociados con los modos--------------------------------


a=get(handles.list1,'Value');
if a==1
load('Modo_Normal.mat');%Cargo el archivo correspondiente a modo normal
elseif a==2
load('Modo_Avanzado.mat');%Cargo el archivo correspondiente a modo avanzado
end

%----------Se realiza Validación de los valores ingresados por teclado------------------


cau=str2double(get(handles.edit1,'String'));
if isnan(cau)% Comprobamos que el dato ingresado en el edittext se correcto
errordlg('El caudal ingresado debe ser numerico','ERROR');%Si el dato es
incorrecto se muestra un mensaje de error
set(handles.edit1,'String',0);%Si el dato es incorrecto asigno un valor 0, por
default, al edit text
cau=0;%Si el dato es incorrecto asigno un valor 0, por default, al workspace
else
assignin ( 'base', 'caudal', cau) ;%Si el dato es correcto lo asignamos al
workspace
end

peso_f=str2double(get(handles.edit2,'String'));
if isnan(peso_f)% Comprobamos que el dato ingresado en el edittext se correcto
errordlg('El peso final ingresado debe ser numerico','ERROR');%Si el dato es
incorrecto se muestra un mensaje de error
set(handles.edit2,'String',0);%Si el dato es incorrecto asigno un valor 0, por
default, al edit text
peso_f=0;%Si el dato es incorrecto asigno un valor 0, por default, al workspace
else
assignin ( 'base', 'peso_final', peso_f) ;%Si el dato es correcto lo asignamos al
workspace
end

%------se asignan como variables de workspace las variables cargadas del archivo
.mat----------
clc
assignin ( 'base', 'p',p) ;
assignin ( 'base', 'in',in) ;
assignin ( 'base', 'd',d) ;
assignin ( 'base', 's0',s0) ;
assignin ( 'base', 's1',s1) ;
assignin ( 'base', 's2',s2) ;
assignin ( 'base', 'r',r) ;
assignin ( 'base', 'periodo',periodo) ;
assignin ( 'base', 'ventana',ventana) ;

%----------------Chequeo el estado de Dosificación y oculto evento ---------------------


motivo=evalin('base','motivo');%Leo el valor que me indica el estado del sistema
if motivo(length(motivo))==0 %Chequeo si en el sistema no ocurre ningún evento
set(handles.estado,'String','Dosificando...','backgroundcolor','green')%Seteo el
edit text que indica el estado
set(handles.evento,'visible','off') %Oculto el edit text que indica el evento
Estudio, identificación y control de una planta medidora de caudal másico. UNQ

end

global var;

start(var.tmr)%Arranco el Timer
set_param(gcs,'SimulationCommand','connect');%Conecto al target
set_param(gcs,'SimulationCommand','Start');%Inicio el proceso

if ispc
set(hObject,'BackgroundColor','white');
else
set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor'));
end

function popupmenu1_CreateFcn(hObject, eventdata, handles)

if ispc
set(hObject,'BackgroundColor','white');
else
set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor'));
end

%------------Evento Timer--------------------------------------------------------
function TimerCallback(obj,event,hObject,handles)
global var;
motivo=evalin('base','motivo');

%-------Me fijo si esta dosificando y muestro el estado y evento-------------


if motivo(length(motivo))==0%Me fijo si la variable que marca los eventos indica
proceso en dosificación y luego seteo los Static text
set(handles.estado,'String','Dosificando...','backgroundcolor','green')
else
if motivo(length(motivo))==1%Me fijo si la variable que marca los eventos
indica que la dosificación fue exitosa y luego seteo los Static text
set(handles.estado,'String','Sistema Detenido','backgroundcolor','yellow')
set(handles.evento,'visible','on','String','Dosificacion
Exitosa','backgroundcolor','green')
stop(var.tmr);
else
if motivo(length(motivo))==2%Me fijo si la variable que marca los eventos
indica que se activo el sensor de nivel y luego seteo los Static text
set(handles.estado,'String','Sistema Detenido','backgroundcolor','yellow')
set(handles.evento,'visible','on','String','Tolva Vacia','backgroundcolor',[1
0.502 0])
stop(var.tmr);
else
if motivo(length(motivo))==3%Me fijo si la variable que marca los eventos
indica que se presiono la parada de emergencia y luego seteo los Static text
set(handles.estado,'String','Sistema Detenido','backgroundcolor','red')
set(handles.evento,'visible','on','String','Parada de
Emergencia','backgroundcolor','red')
stop(var.tmr);
end
end
end
Estudio, identificación y control de una planta medidora de caudal másico. UNQ

end

function popupmenu1_Callback(hObject, eventdata, handles)

function listbox1_CreateFcn(hObject, eventdata, handles)

if ispc
set(hObject,'BackgroundColor','white');
else
set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor'));
end

function listbox1_Callback(hObject, eventdata, handles)

% ----------Aquí se programa el evento del botón stop-------------------------------------


function pushbutton4_Callback(hObject, eventdata, handles)

global T
set_param(T,'value','1');%Seteo el valor del bloque en simulink que me detiene el
proceso
%----Seteo los static text para mostrar la información del evento stop-----------------
set(handles.estado,'String','Sistema Detenido','backgroundcolor','yellow')
set(handles.evento,'visible','on','String','Dosificacion
Incompleta','backgroundcolor',[1 0.502 0])

global var
stop(var.tmr)%Detenemos el Timer
set_param(gcs,'SimulationCommand','Stop');%Detenemos el proceso

function list1_CreateFcn(hObject, eventdata, handles)


if ispc
set(hObject,'BackgroundColor','white');
else
set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor'));
end

%------Cambio el valor de la lista según se halla seleccionado modo normal o


avanzado-------------------------------------------------------------------------------------------
function list1_Callback(hObject, eventdata, handles)
global sel
sel=get(hObject,'Value');%Leo el valor de la lista y muestro en pantalla el valor
seleccionado
switch sel
case 1
warndlg('Ha seleccionado Modo Normal','Gracias');
case 2
warndlg('Ha seleccionado Modo Avanzado','Gracias');
case 3
warndlg('Ha seleccionado Modo Manual','Gracias');
end

function edit2_CreateFcn(hObject, eventdata, handles)


Estudio, identificación y control de una planta medidora de caudal másico. UNQ

if ispc
set(hObject,'BackgroundColor','white');
else
set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor'));
end

function edit1_CreateFcn(hObject, eventdata, handles)


if ispc
set(hObject,'BackgroundColor','white');
else
set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor'));
end

function edit1_Callback(hObject, eventdata, handles)

% ----------Aquí se programa el evento planta del menú para abrir la pantalla


planta-----------------------------------------------------------------------------------------------------
function planta_Callback(hObject, eventdata, handles)
planta%Abro la pantalla de planta
% -------------------------------------------------------------------------------------------------

% ----------Aquí se programa el evento control del menú para abrir la pantalla


control-----------------------------------------------------------------------------------------------------
function control_Callback(hObject, eventdata, handles)
control%Abro la pantalla control
% ------------------------------------------------------------------------------------------------

function pushbutton4_ButtonDownFcn(hObject, eventdata, handles)

function edit2_Callback(hObject, eventdata, handles)

function figure1_DeleteFcn(hObject, eventdata, handles)

global var;
stop(var.tmr);%Cuando se cierra la pantalla detengo el Timer
delete(var.tmr);%Borro el Timer
clc;%Limpio la pantalla
clear all;%Borro las variables

function checkbox1_Callback(hObject, eventdata, handles)

function pushbutton6_Callback(hObject, eventdata, handles)

% ----------Aquí se programa el evento Plot del menú -----------------------------------


function ploteo_Callback(hObject, eventdata, handles)
%%% Acá se grafican los parámetros Act, Set Point y Caudal real
axes(handles.axes4);%Tomo posesión de axes
cla reset;%Reseteo el axes
axes(handles.axes4);%tomo posesión del axes

caudal_real=evalin('base','caudal_real');%Leo la variable de caudal


t1=0:0.001:(length(caudal_real)*0.001)-0.001;%Genero el vector tiempo

plot(t1,caudal_real,'LineWidth',2,'color','blue');%Ploteo el caudal Vs el tiempo


hold on;
Estudio, identificación y control de una planta medidora de caudal másico. UNQ

plot(t1,ones(length(caudal_real),1)*(evalin('base','caudal')),'w-.');% Ploteo la
referencia
plot(t1,((evalin('base','act'))/20),'g--');%Ploteo la señal de actuación

grid on;%Asigno la grilla


axis([0 (length(caudal_real)*0.001) 0 5]);%Asigno una dimensión al grafico
set(handles.axes4,'YColor',[0.2 0.4 0.7]);%Asigno un color al eje X
set(handles.axes4,'XColor',[0.2 0.4 0.7]);%Asigno un color al eje Y
set(handles.axes4,'Color',[0.3 0.3 0.3]);%Asigno un color a l fondo del grafico
title('Comportamiento de la Planta','Color',[0.2 0.4 0.7]);%Asigno un titulo a la
imagen
xlabel('Segundos');%Asigno una etiqueta a la coordenada X
ylabel('Caudal');%Asigno una etiqueta a la coordenada Y
legend('Caudal [Kg/s]','Set Point','Actuacion [5%]',2);%Asigno una leyenda al
grafico
hold off

Algoritmo de la pantalla “ajustes de control”


function varargout = control(varargin)
gui_Singleton = 1;
gui_State = struct('gui_Name', mfilename, ...
'gui_Singleton', gui_Singleton, ...
'gui_OpeningFcn', @control_OpeningFcn, ...
'gui_OutputFcn', @control_OutputFcn, ...
'gui_LayoutFcn', [] , ...
'gui_Callback', []);
if nargin & isstr(varargin{1})
gui_State.gui_Callback = str2func(varargin{1});
end

if nargout
[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
else
gui_mainfcn(gui_State, varargin{:});
end
% End initialization code - DO NOT EDIT

function control_OpeningFcn(hObject, eventdata, handles, varargin)


%Aquí seteamos los parámetros iniciales
axes(handles.axes1);
a=imread('PID.jpg');
image(a);
axis off;
axes(handles.axes2);
b=imread('PID_2.jpg');
image(b);
axis off;
load('Modo_Avanzado.mat');

set(handles.slider1,'Value',p);
set(handles.text4,'String',p);
set(handles.slider3,'Value',in);
Estudio, identificación y control de una planta medidora de caudal másico. UNQ

set(handles.text14,'String',in);
set(handles.slider4,'Value',d);
set(handles.text16,'String',d);
set(handles.slider6,'Value',w);
set(handles.text20,'String',w);
set(handles.slider5,'Value',epsi);
set(handles.text18,'String',epsi);

handles.output = hObject;
guidata(hObject, handles);

function varargout = control_OutputFcn(hObject, eventdata, handles)


varargout{1} = handles.output;

function slider1_CreateFcn(hObject, eventdata, handles)


usewhitebg = 1;
if usewhitebg
set(hObject,'BackgroundColor',[.9 .9 .9]);
else
set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor'));
end

% --------Aquí se programa el evento del slider vinculado con la ganancia


proporcional-----------
function slider1_Callback(hObject, eventdata, handles)
set(handles.text4,'String',get(handles.slider1,'Value'));%Se muestra en el edit text
el valor del slider

% --------Aquí se programa el evento del boton guardar---------------------------------


function pushbutton1_Callback(hObject, eventdata, handles)
load('Modo_Avanzado.mat');%Cargo el archivo modo avanzado .mat
%---Se setean los valores de los slider en el workspace
assignin('base','p',get(handles.slider1,'Value'));
assignin('base','in',get(handles.slider3,'Value'));
assignin('base','d',get(handles.slider4,'Value'));
assignin('base','epsi',get(handles.slider5,'Value'));
assignin('base','w',get(handles.slider6,'Value'));

p=get(handles.slider1,'Value');
in=get(handles.slider3,'Value');
d=get(handles.slider4,'Value');
epsi=get(handles.slider5,'Value');
w=get(handles.slider6,'Value');

omega=w;
a=1;
p1=-2*exp(-epsi*omega*0.1)*cos(omega*0.1*sqrt(1-(epsi^2)));
p2=exp(-epsi*2*omega*0.1);
b=conv([1 -exp(-a*omega*0.1)],[1 -exp(-a*omega*0.1)]);
polinomio=conv(b,[1 p1 p2]);
a=polinomio(2);
b=polinomio(3);
c=polinomio(4);
D=polinomio(5);
A=[1 0.000455 0 0;-2.65 0 0.000455 0;2.325 0 0 0.000455;-0.675 0 0 0];
Estudio, identificación y control de una planta medidora de caudal másico. UNQ

B=[2.65+a -2.325+b 0.675+c D]';


C=inv(A)*B;
r=C(1);
s0=C(2);
s1=C(3);
s2=C(4);
assignin('base','s0',s0);
assignin('base','s1',s1);
assignin('base','s2',s2);
assignin('base','r',r);

save('Modo_Avanzado.mat','p','in','d','s0','s1','s2','r','ventana','periodo','epsi','w')%Se
sobreescribe el archivo modo avanzado.mat
warndlg('Recuerde que para trabajar con "Modo Avanzado" debe seleccionarlo en la
pantalla principal','Sus Datos se han guardado correctamenete.Gracias');
close(control)%Se cierra la pantalla control

% --------Aquí se programa el evento del botón cancelar----------------------------------


function pushbutton2_Callback(hObject, eventdata, handles)
warndlg('Recuerde que para trabajar con "Modo Avanzado" debe seleccionarlo en la
pantalla principal','Sus Datos NO han sido guardados.Gracias');
close(control)%Se cierra la pantalla control

function edit1_CreateFcn(hObject, eventdata, handles)

if ispc
set(hObject,'BackgroundColor','white');
else
set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor'));
end

function edit1_Callback(hObject, eventdata, handles)

function checkbox1_Callback(hObject, eventdata, handles)

%-- Se habilitan o deshabilitan los slider según el estado del checkbox2-------


a=get(handles.checkbox1,'Value');
if a==1
set(handles.frame1,'Enable','on')
set(handles.slider1,'Enable','on')
set(handles.slider3,'Enable','on')
set(handles.slider4,'Enable','on')
else
set(handles.frame1,'Enable','off')
set(handles.slider1,'Enable','off')
set(handles.slider3,'Enable','off')
set(handles.slider4,'Enable','off')
end

%-- Se habilitan o deshabilitan los slider según el estado del checkbox2-------


function checkbox2_Callback(hObject, eventdata, handles)
a=get(handles.checkbox2,'Value');
if a==1
set(handles.frame2,'Enable','on')
set(handles.slider5,'Enable','on')
Estudio, identificación y control de una planta medidora de caudal másico. UNQ

set(handles.slider6,'Enable','on')

else
set(handles.frame2,'Enable','off')
set(handles.slider5,'Enable','off')
set(handles.slider6,'Enable','off')
end

function slider3_CreateFcn(hObject, eventdata, handles)


usewhitebg = 1;
if usewhitebg
set(hObject,'BackgroundColor',[.9 .9 .9]);
else
set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor'));
end

% ------Aquí se programa el evento del slider vinculado con la ganancia integral----


function slider3_Callback(hObject, eventdata, handles)
set(handles.text14,'String',get(handles.slider3,'Value'));%Se muestra en el edit text
el valor del slider

function slider4_CreateFcn(hObject, eventdata, handles)


usewhitebg = 1;
if usewhitebg
set(hObject,'BackgroundColor',[.9 .9 .9]);
else
set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor'));
end

% --Aquí se programa el evento del slider vinculado con la ganancia derivativa----


function slider4_Callback(hObject, eventdata, handles)
set(handles.text16,'String',get(handles.slider4,'Value'));%Se muestra en el edit text
el valor del slider

function slider5_CreateFcn(hObject, eventdata, handles)


usewhitebg = 1;
if usewhitebg
set(hObject,'BackgroundColor',[.9 .9 .9]);
else
set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor'));
end

% --------Aquí se programa el evento del slider vinculado con el 1º coeficiente de


los ceros del controlador----------
function slider5_Callback(hObject, eventdata, handles)
set(handles.text18,'String',get(handles.slider5,'Value'));%Se muestra en el edit text
el valor del slider

function slider6_CreateFcn(hObject, eventdata, handles)


usewhitebg = 1;
if usewhitebg
set(hObject,'BackgroundColor',[.9 .9 .9]);
else
set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor'));
end
Estudio, identificación y control de una planta medidora de caudal másico. UNQ

% --------Aquí se programa el evento del slider vinculado con el 2º coeficiente de


los ceros del controlador----------
function slider6_Callback(hObject, eventdata, handles)
set(handles.text20,'String',get(handles.slider6,'Value'));%Se muestra en el edit text
el valor del slider

Algoritmo de la pantalla “ajustes de planta”


function varargout = planta(varargin)
gui_Singleton = 1;
gui_State = struct('gui_Name', mfilename, ...
'gui_Singleton', gui_Singleton, ...
'gui_OpeningFcn', @planta_OpeningFcn, ...
'gui_OutputFcn', @planta_OutputFcn, ...
'gui_LayoutFcn', [] , ...
'gui_Callback', []);
if nargin & isstr(varargin{1})
gui_State.gui_Callback = str2func(varargin{1});
end

if nargout
[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
else
gui_mainfcn(gui_State, varargin{:});
end
% End initialization code - DO NOT EDIT

function planta_OpeningFcn(hObject, eventdata, handles, varargin)


%Aquí seteamos los parámetros iniciales
axes(handles.axes2);
a=imread('motor_2.jpg');
image(a);
axis off;
axes(handles.axes3);
b=imread('encoder1.jpg');
image(b);
axis off;
load('Modo_Avanzado.mat');
set(handles.text9,'String',num2str(periodo));
set(handles.slider1,'Value',periodo);
periodo=0.0001*periodo;
frecuencia=round(1/periodo);
set(handles.text5,'String',num2str(periodo));
set(handles.text7,'String',num2str(frecuencia));
ventana=ventana*1000;
set(handles.text13,'String',num2str(ventana));
set(handles.slider3,'Value',ventana);

handles.output = hObject;

guidata(hObject, handles);
Estudio, identificación y control de una planta medidora de caudal másico. UNQ

function varargout = planta_OutputFcn(hObject, eventdata, handles)


varargout{1} = handles.output;

function slider1_CreateFcn(hObject, eventdata, handles)


usewhitebg = 1;
if usewhitebg
set(hObject,'BackgroundColor',[.9 .9 .9]);
else
set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor'));
end

% -Aquí se programa el evento del slider vinculado con el periodo de la señal PWM-
function slider1_Callback(hObject, eventdata, handles)
periodo=(get(handles.slider1,'Value'));%Se toma el valor del slider
periodo=0.0001*periodo;%Se calcula el periodo
frecuencia=round(1/periodo);%Se calcula la frecuencia
set(handles.text5,'String',num2str(periodo));%Se muestra en el edit text el periodo
set(handles.text7,'String',num2str(frecuencia));%Se muestra en el edit text la
frecuencia
set(handles.text9,'String',get(handles.slider1,'Value'));%Se muestra en el edit text
la resolución

function edit1_CreateFcn(hObject, eventdata, handles)


if ispc
set(hObject,'BackgroundColor','white');
else
set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor'));
end

function edit1_Callback(hObject, eventdata, handles)

function slider3_CreateFcn(hObject, eventdata, handles)

usewhitebg = 1;
if usewhitebg
set(hObject,'BackgroundColor',[.9 .9 .9]);
else
set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor'));
end

% ----Aquí se programa el evento del slider vinculado con la ventana del encoder---
function slider3_Callback(hObject, eventdata, handles)
set(handles.text13,'String',get(handles.slider3,'Value'));%Se muestra el valor de la
ventana en milisegundos

% --------Aquí se programa el evento del botón guardar----------------------------------


function pushbutton1_Callback(hObject, eventdata, handles)

load('Modo_Avanzado.mat');%Cargo el archivo modo avanzado.mat


ventana=get(handles.slider3,'Value');%Tomo el valor del slider 3
ventana=0.001*ventana;%Calculo el valor de la ventana en segundos
assignin('base','ventana',ventana);%Asigno el valor de ventana al workspace
periodo=get(handles.slider1,'Value');%Tomo el valor del slider 1
assignin('base','periodo',periodo);%Asigno el valor del periodo al workspace
Estudio, identificación y control de una planta medidora de caudal másico. UNQ

save('Modo_Avanzado.mat','p','in','d','s0','s1','s2','r','ventana','periodo','epsi','w')%So
breescribo el archivo modo_avanzado.mat con los nuevos valores
warndlg('Recuerde que para trabajar con "Modo Avanzado" debe seleccionarlo en la
pantalla principal','Sus Datos se han guardado correctamente.Gracias');
close(planta)%se cierra la pantalla planta

% --------Aquí se programa el evento del botón cancelar----------------------------------


function pushbutton2_Callback(hObject, eventdata, handles)
warndlg('Recuerde que para trabajar con "Modo Avanzado" debe seleccionarlo en la
pantalla principal','Sus Datos NO han sido guardados.Gracias');
close(planta)%Se cierra la pantalla planta

function axes2_CreateFcn(hObject, eventdata, handles)

function edit2_CreateFcn(hObject, eventdata, handles)

if ispc
set(hObject,'BackgroundColor','white');
else
set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor'));
end

function edit2_Callback(hObject, eventdata, handles)

Algoritmo de la pantalla “Información”


function varargout = informacion(varargin)

gui_Singleton = 1;
gui_State = struct('gui_Name', mfilename, ...
'gui_Singleton', gui_Singleton, ...
'gui_OpeningFcn', @informacion_OpeningFcn, ...
'gui_OutputFcn', @informacion_OutputFcn, ...
'gui_LayoutFcn', [] , ...
'gui_Callback', []);
if nargin & isstr(varargin{1})
gui_State.gui_Callback = str2func(varargin{1});
end

if nargout
[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
else
gui_mainfcn(gui_State, varargin{:});
end
% End initialization code - DO NOT EDIT

function informacion_OpeningFcn(hObject, eventdata, handles, varargin)


%Aquí seteamos los parámetros iniciales
axes(handles.axes1);
a=imread('ensayoesc.bmp');
image(a);
Estudio, identificación y control de una planta medidora de caudal másico. UNQ

axis off;
set(handles.checkbox1,'value',1)
set(handles.checkbox2,'value',0)

handles.output = hObject;
guidata(hObject, handles);

function varargout = informacion_OutputFcn(hObject, eventdata, handles)


varargout{1} = handles.output;

% ----------Aqui se programa el evento del checkbox correspondiente a la respuesta


al escalón--------------------------------------------------------------------------------------------------
function checkbox1_Callback(hObject, eventdata, handles)
axes(handles.axes1);%Tomo posesión del axes
a=imread('ensayoesc.bmp');%Leo la imagen que deseo mostrar
image(a);%Cargo la imagen en el axes
axis off;
set(handles.checkbox1,'value',1)%Seteo el checkbox1 como activo
set(handles.checkbox2,'value',0)%Seteo el checkbox2 como inactivo

% ----------Aqui se programa el evento del checkbox correspondiente a la respuesta


en frecuencia----------------------------------------------------------------------------------------------
function checkbox2_Callback(hObject, eventdata, handles)
axes(handles.axes1);%Tomo posesión del axes
a=imread('bode.bmp');%Leo la imagen que deseo mostrar
image(a);%Cargo la imagen en el axes
axis off;
set(handles.checkbox1,'value',0)%Seteo el checkbox1 como inactivo
set(handles.checkbox2,'value',1)%Seteo el checkbox2 como activo
Estudio, identificación y control de una planta medidora de caudal másico. UNQ

Anexo 4: Explicación de los circuitos desarrollados


Señal de Actuación

Se diseño la electrónica necesaria con el fin de amplificar la señal proveniente de


la pc, modulada en ancho de pulso (PWM) a fin de entregar la corriente y tensión
necesaria para el correcto funcionamiento del motorreductor.

5 mA 5A
Etapa

0-5 V Amplificación 0-24 V

Para ello se utilizó una combinación de transistores, en modo corte o saturación


funcionando en lo que se conoce como llave (Abierto o Cerrado). La señal PWM
proveniente de la pc ingresa en la base del transistor de baja potencia NPN BC548. La
corriente de emisor de este, provoca la conducción de los transistores de potencia NPN
TIP41. La conexión de estos es de tipo Darlintong con una pequeña resistencia en la
base. Al disponer de dos de estos en paralelo se asegura que soporten la corriente que
demanda el motor, especialmente en el arranque.
La tensión y corriente que alimenta a este circuito es generada por dos fuentes
conmutadas de PC dispuestas en serie.
Estudio, identificación y control de una planta medidora de caudal másico. UNQ

Interfaz

Se diseño esta etapa con el fin de conectar de forma práctica las señales de
sensado y actuación de la PC con el sistema. Dicha etapa posee Borneras para una
fácil conexión y además indicadores de tipo Led de bajo consumo en paralelo a fin de
indicar los estados de las distintas señales.
A continuación se muestra un esquema de los pines de conexión de la ficha DB25
asociados con los de la bornera de la interfaz.

Pin Nº Tipo Conexión Bornera Nº


2 Salida Load CAD 1
3 Salida Acumulado SR 2
5 Salida Clock SR 3
7 Salida Señal de actuación 4
10 Entrada Señal del SR Nº1 5
11 Entrada Señal del SR Nº2 6
12 Entrada Señal del Sensor de Nivel 7
13 Entrada Señal del encoder 8
15 Entrada Parada de emergencia 9
25 Tierra Tierra de las fuentes 10

En el plano de autocad puede verse el esquema de dicha placa.


Estudio, identificación y control de una planta medidora de caudal másico. UNQ

Encoder incremental
Esta etapa se encarga de detectar los mínimos cambios en la velocidad. Se utilizó
un sensor CR560, de tipo ranurado en donde el diodo emisor y el fototransistor
detector se encuentran opuestos. Al avanzar la cinta, gira el disco del encoder
solidario a esta, e interrumpe la recepción del fototransistor.
El circuito emisor consta de una resistencia de 470 Ohm en serie con el fotodiodo
emisor. Esta resistencia es alimentada con una tensión continua de 5Volt con el fin
de hacer circular una corriente de 10mA necesaria para que se produzca la emisión
del diodo.
Por otro lado el receptor, conformado por un fototransistor, es conectado en serie
con una resistencia de 10 KOhm (circuito receptor). Esto fue realizado para que
cuando el receptor sea estimulado, toda la tensión de alimentación caiga sobre
la resistencia obteniendo un cero lógico en el colector del transistor. Por otro lado
cuando el receptor no es excitado, no circula corriente por el transistor y por ende se
consigue un 1 lógico (5Volt) en el colector del mismo.
Estudio, identificación y control de una planta medidora de caudal másico. UNQ

Acondicionamiento de la Señal de celda de carga.

El objetivo de este circuito es el tratamiento y acondicionamiento de la señal


proveniente de la celda de carga, normalizando la señal que esta entrega para poder
luego procesarla.

Etapa
Tensión Diferencial 0 a 5Volt
Acondicionamiento
2mV/V de Señal

Existen diferentes etapas dentro del circuito, la primera es aquella que se encarga
de brindarle la alimentación a la celda de carga.
Alimentación de la celda de carga: El diodo LM336-Z2.5 (D1) es quien regula la
tensión de referencia de 2.5V, que se introduce al pin12 del amplificador operacional
TL084 (U1:D), a la salida del mismo (pin14) tenemos un transistor NPN BC548 (Q1)
conectado como seguidor de emisor el cual oficia de driver para proporcionar una
buena corriente a la regulación. Mediante el potenciómetro 1Kohm (RV3) puede
regularse la tensión que regula al diodo y por ende aquella que alimentará la celda.
Señal de Offset: Desde el emisor del transistor Q1 y por medio de 2 resistencias de
10K se consigue un divisor de tensión que divide a la mitad la tensión de dicho emisor
y esta es la tensión que se introduce al pin 13 del OA U1:D para que el mismo quede
configurado como buffer o seguidor de tensión, con una ganancia de 2.
Con esa tensión de 5V muy estable y regulada se consigue en el pin 7 del OA U1:C
una tensión de referencia de -5V haciendo que el mismo actué como amplificador
inversor de ganancia unitaria.
Y con esas dos tensiones (5V y -5V) se atacan las resistencias en los extremos del
preset OFFSET, por lo tanto esas resistencias están alimentadas de 5V y -5V
respectivamente.
Amplificación Diferencial: Los amplificadores operacionales (OA) OP07 (U2,U3 y U4)
conforman un clásico amplificador diferencial como los de Instrumentación solo que
este utiliza OA de bajo costo OP07 con ganancia unidad (al cual se le regula el offset
por medio del pin 8 del TL084) con sus respectivos amplificadores de entrada con
ganancia de 200 a 1000 regulable por medio del preset RV2 y por un sencillo
seguidor de tensión o buffer que es el encargado de otorgar la baja impedancia a la
salida.
Estudio, identificación y control de una planta medidora de caudal másico. UNQ

Placa CAD

El objetivo de esta placa es convertir una señal analógica en una señal digital serie.

Etapa 00110010

Señal Analógica Trasmisión de


0 – 5 Volt
Datos

Para cumplir con este objetivo, se utilizó el conversor analógico-digital de 8 bits


AD0804, el cual realiza la conversión de la señal de tensión proveniente del
acondicionador de señal antes mencionado. Esta conversión se realiza simplemente
mediante la orden de inicio de conversión activo a nivel bajo de la pata 3 de dicho
integrado. Apenas unos instantes después tenemos los resultados en el Bus de datos
de dicho componente en forma paralela.
La etapa siguiente dentro del circuito es, mediante un registro de desplazamiento, la
conversión de estos datos a un formato serie. Para ello se utilizó el Shift Register
74HC175. Dándole desde la PC una vez más una orden de inicio en la pata 1
(acumulador) y una señal de sincronismo en la pata 2 (clock), el registro comienza a
desplazar los datos hasta finalizar con los 8 bits. Por último se hace pasar estos por
el optoaislador 4n25 como para acondicionar la señal antes de enviarla a la pc,
evitando de esta manera algún tipo de error en el proceso de detección por parte de
esta.
Estudio, identificación y control de una planta medidora de caudal másico. UNQ

Anexo 5
Hoja de datos
Estudio, identificación y control de una planta medidora de caudal másico. UNQ

Anexo 6: Costos del proyecto


A continuación se presentan los costos que fueron invertidos en la realización del
proyecto, detallando además los materiales reutilizados o donados. Esto último se puede
apreciar en la siguiente tabla.

Costos desarrollados en este proyecto.

Recursos Costo estimado


3 Fuente de switching $600
Motorreductor de cc $700
Componentes electrónicos $400
Acoples del motor $100
Acrílico $100
Parada de emergencia $80
Estructura mecánica (Reutilizada)
Celdas de carga (Reutilizada)
PC (Prestada por UNQ)
Licencia Matlab (Prestada por UNQ)
Costo Total $1.980

Gastos Varios Costo estimado


Ferretería $200
Viáticos, impresiones, llamados telefónicos $100
Pintura $50
Producto (Arena) (Donada)
Costo Total $350

Costo Total (Recursos + Gastos varios) $2.330

Por otro lado, también se ofrece un costo estimativo del proyecto total. Es decir el
precio (aproximado) que debería invertirse para desarrollar el proyecto por completo, lo
cual puede observarse en la siguiente tabla.
Estudio, identificación y control de una planta medidora de caudal másico. UNQ

Costos estimados del proyecto completo.

Recursos Costo estimado


3 Fuente de switching $600
Motorreductor de cc $700
Componentes electrónicos $400
Acoples del motor $100
Acrílico $100
Parada de emergencia $80
Estructura mecánica 14$2.000

Celdas de carga *$500


PC *$2.800
Licencia Matlab+Toolbox *$10.000
Costo Total $16.680

Gastos Varios Costo estimado


Ferretería $200
Viáticos, impresiones, llamados telefónicos $100
Pintura $50
Producto (Arena) (Donada)
Costo Total $350

Costo Total (Recursos + Gastos varios) $17.030

14
Datos estimados
Anexo 7: Manual de usuario

Manual de usuario para el estudio,


identificación y control de una planta
medidora de caudal másico.

Universidad Nacional de Quilmes (U.N.Q.)


Ingeniería en automatización y control
Industrial
Manchione, Pablo Germán
Artazcoz, Matías
Estudio, identificación y control de una planta medidora de caudal másico. UNQ

Indice
A-Implementación o Verificación de Conexiones y Puesta en marcha .... 3
B-Operación del Sistema ............................................................................... 3
Vincular a Simulink ................................................................................ 4
Información............................................................................................ 4
Ajustes de planta .................................................................................... 5
Ajustes de Control .................................................................................. 6
Ploteo ..................................................................................................... 7
C- Calibración del sistema ..................................................................... 8
Calibración Celdas de carga .................................................................... 8

Página 2
Estudio, identificación y control de una planta medidora de caudal másico. UNQ

A-Implementación o Verificación de Conexiones y


Puesta en marcha
A continuación se presentan las tareas de conexionado y puesta en marcha del
sistema:
1_ Primero se debe encender la PC.
2_ Alimentar las fuentes de tensión con 220 V.
3_ Encender las fuentes de alimentación.
4_ Verificar que el pulsador de parada de emergencia se encuentre sin presionar.
5_ Conectar la ficha DB25 entre el caudalímetro y la PC, a través del puerto paralelo.
6_ Abrir el software Matlab 6.5 y cargar el archivo interfaz.m. Este archivo ejecutará el
inicio de la interfaz gráfica.
Una Vez concluidas estas operaciones, el sistema se encuentra listo para ser
operado.

ADVERTENCIA: Evite tener algún proceso corriendo en simultáneo mientras utiliza


el sistema. Dependiendo del procesador que utilice, el sistema podría arrojar
mensajes de advertencias demorando la ejecución de la aplicación.

B-Operación del Sistema


La operación del sistema se lleva a cabo a partir de la interfaz gráfica
implementada en Matlab. Dicha interfaz presenta la siguiente pantalla de opciones:

Página 3
Estudio, identificación y control de una planta medidora de caudal másico. UNQ

En ella se pueden observar una lista de opciones brindadas a partir de un menú.


A continuación se explica para que se utilizan y, que ofrecen cada una de estas opciones.

Vincular a Simulink
Al presionar este botón se desplegará una ventana de “Open” que permitirá abrir un
archivo Simulink. Necesariamente debe vincularse un archivo Simulink al sistema, caso
contrario el sistema no responderá. Este archivo, puede ser el que utiliza el controlador
PI, o bien el que implementa el controlador diseñado por asignación de polos.
Una vez cargado el archivo, se habilita el botón que permite arrancar el proceso
(botón verde). El cual, estaba deshabilitado a causa de no encontrarse vinculado ningún
archivo.

Información
Al seleccionar esta opción, se abre una nueva pantalla (la pantalla Información). La
finalidad de esta pantalla es otorgar información sobre la dinámica del sistema al usuario.
Ofrece la posibilidad de apreciar tanto la respuesta al escalón del sistema como la
respuesta en frecuencia del mismo.
A continuación se puede observar la pantalla Información

Para visualizar las diferentes imágenes se deben seleccionar los checkBox


correspondientes en la parte inferior de la pantalla. Esto último se ilustra en la imagen
anterior.

Página 4
Estudio, identificación y control de una planta medidora de caudal másico. UNQ

Ajustes de Planta
Al seleccionar este evento, se abre una nueva pantalla (la pantalla Ajustes Avanzados
de Planta). La finalidad de esta pantalla es ofrecer la posibilidad al usuario de setear
parámetros de calibración avanzados, para luego utilizarlos en el proceso.
A continuación se presenta dicha pantalla y una explicación de cada uno de sus
comandos.

A partir de las dos barras de desplazamiento se puede ajustar, por un lado, el período
de la señal de actuación, el cual está directamente ligado a la frecuencia y a la resolución
de la señal PWM. Por otro lado, la barra de la parte inferior de la pantalla permite
modificar la ventana de tiempo en que el encoder contabiliza los pulsos para la medición
de velocidad.
Una vez realizados los cambios requeridos, si estos se desean utilizar, deben
guardarse. Esto se logra presionando el botón “Guardar” ubicado en la parte inferior de la
pantalla. Al presionar el botón, se salvarán los cambios, y se informará que en caso de
querer utilizarlos deberá seleccionarse un modo de uso avanzado en la pantalla principal.

Página 5
Estudio, identificación y control de una planta medidora de caudal másico. UNQ

Por último si no se desean guardar los cambios, solo se debe presionar el botón
“Cancelar”.

Ajustes de Control
Al seleccionar este evento, se abre una nueva pantalla (la pantalla Ajustes Avanzados
de Control). La finalidad de esta pantalla es ofrecer la posibilidad al usuario de diseñar y
ajustar controladores para luego utilizarlos en el proceso.
A continuación se presenta dicha pantalla y una explicación de cada uno de sus
comandos.

A partir de barras de desplazamiento se puede ajustar, por un lado, las ganancias de


un controlador PID, el cual está directamente ligado al archivo Simulink PID.mdl. Por lo
tanto en caso de querer utilizarlo este debe vincularse.
Por otro lado, las barras de la parte inferior de la pantalla permiten modificar el
factor de amortiguamiento y la frecuencia natural de oscilación de los polos a lazo cerrado
del sistema. En este caso el controlador utilizado es calculado por el método de
asignación de polos. Para el uso de estos parámetros debe vincularse desde la pantalla
principal el archivo asignación_de_polos.mdl.

Página 6
Estudio, identificación y control de una planta medidora de caudal másico. UNQ

Luego, al presionar el botón “Guardar” ubicado en la parte inferior de la pantalla se


salvarán todos los ajustes realizados, y se informará (al igual que en los ajustes de planta)
que en caso de querer utilizarlos deberá seleccionarse un modo de uso avanzado en la
pantalla principal.
Por último, para abandonar la pantalla sin salvar los cambios realizados, se debe
presionar el botón “Cancelar”.

Ploteo
La última opción que presenta el menú es la del ploteo. Este evento, al ser ejecutado
mostrará en la parte inferior de la pantalla un gráfico de la respuesta del sistema en la
última puesta en marcha.

La pantalla principal posee además una imagen sobre la cual hay un frame y dos
etiquetas. Estas etiquetas son las encargadas de informar al operario sobre el estado del
sistema y los eventos ocurridos. A continuación se presenta una tabla con los diferentes y
estados que se pueden presentar en el proceso.

Página 7
Estudio, identificación y control de una planta medidora de caudal másico. UNQ

Estado Evento Descripción


Dosificando… Ninguno El sistema se encuentra en plena
dosificación.
Sistema Detenido Dosificación exitosa El sistema se detiene luego de
llegar al peso requerido
exitosamente.
Sistema Detenido Tolva Vacía El sistema se encuentra detenido,
a causa de falta de producto en la
tolva.
Sistema Detenido Dosificación Incompleta El sistema se encuentra detenido,
a causa de que se presionó el
botón Stop desde la interfaz
gráfica.
Sistema Detenido Parada de Emergencia El sistema se encuentra detenido,
a causa de que se presionó el
botón Parada de Emergencia

El frame posee dos botones, uno de Play y otro de Stop. Al presionar el Boton Play
(botón verde), el proceso comienza, y al oprimir el botón de stop el proceso finaliza.
Antes de presionar el botón play debe elegirse el modo de funcionamiento que se
desea. Este puede ser Normal o Avanzado, y se selecciona a partir del popuMenu que se
encuentra dentro del frame.
Por otro lado, deben elegirse los valores del peso requerido luego de cierta cantidad de
tiempo y del caudal másico al cual será entregado el peso. Estos datos se setean en los
dos editText que se encuentran también dentro del frame.

C- Calibración del sistema


A continuación se explican los pasos a seguir para realizar la calibración del sistema.

Calibración de celdas de carga


A continuación se detallan los pasos a seguir para realizar la calibración de las celdas
de carga:
1_ Se deben ajustar los registros mecánicos dispuestos sobre las celdas de carga.
Estos deben quedar de tal manera que se ejerza una fuerza pareja sobre ambas celdas.
2_ Se debe verificar que la cinta se halle lo más centrada posible frente ambas
celdas.
3_ Se ajusta el cero a partir de la respuesta de las celdas frente a la cinta sin
producto. Este ajuste se realiza desde la placa electrónica de amplificación.
4_ Se exponen diferentes pesos en la cinta, ajustando la ganancia de la respuesta
desde la placa electrónica correspondiente.
5_ El último ajuste de ganancia se lleva a cabo desde la PC, en el diagrma
Simulink.
5_ El proceso debe repetirse hasta obtener los resultados deseados en la PC.

Página 8

You might also like