Está en la página 1de 67

Desarrollo

de
un
sistema
de
identificacin de procesos industriales
en lnea, usando la plataforma opensource Arduino y Matlab/Simulink
Departamento de Elctrica y Electrnica
Carrera de Ingeniera en Electrnica,
Automatizacin y Control
Pal Sebastin Aluisa Chal
Mayo 2014

Antecedente
A menudo los procesos industriales no son
accesibles para someterlos a pruebas y hallar su
comportamiento o funcin de transferencia;
adems, el proceso de sintonizacin, sin conocer

la

planta,

puede

perjudicar

funcionamiento del sistema.

el

correcto

Objetivo General
Utilizar la plataforma arduino para desarrollar un
sistema de identificacin de procesos industriales
en lnea en conjunto con Matlab/Simulink.

Objetivos Especficos
Desarrollar

modelos

de

identificacin

paramtrica de procesos industriales en lnea


basados

en

mnimos

Matlab/Simulink.

cuadrados

usando

Objetivos Especficos
Desarrollar

programacin

en

lenguaje

de

texto

estructurado dentro del PLC para implementar las


ecuaciones a diferencias que representan los tipos de
modelos de sistemas fsicos.

Integrar la representacin de modelos fsicos dentro del


PLC con los algoritmos de identificacin para verificar la

funcionalidad de cada algoritmo.

Alcance
ARDUINO

Monitoreo
ETHERNET

Diagrama de bloques del proyecto

Parmetros

PC

Monitoreo

Parmetros

PLC

Modelos de Procesos Industriales en


Tiempo Discreto

Discretizacin de Sistemas
Las diferentes aplicaciones de la discretizacin
son:

Simular con un computador un sistema en


tiempo continuo.
El diseo de un filtro digital basado en un diseo
analgico anterior.
El diseo de un regulador digital basado en un
diseo analgico.

Discretizacin de Sistemas

Diagrama de bloques de discretizacin de un sistema de


tiempo continuo

Retenedor de Orden Cero (ZOH)

El equivalente discreto de un sistema continuo utilizando un retenedor de


orden cero viene dado por:
= 1 1

()

1 1
=
()

Identificacin de Sistemas
La identificacin de un sistema consiste en la
obtencin

de

un

modelo

matemtico

que

caracteriza la dinmica de la planta y con ello se


puede predecir su comportamiento.

Identificacin Paramtrica
La identificacin paramtrica est basada en los mtodos de
minimizacin del error de prediccin.

Diagrama de bloques de un sistema de identificacin


paramtrica

Identificacin Paramtrica

Identificacin Por Mnimos Cuadrados


Es una tcnica de anlisis numrico que se encuentra
dentro de la optimizacin matemtica, en la cual,

dados un conjunto de pares ordenados: variable


independiente, variable dependiente, y una familia de
funciones, se intenta encontrar la funcin que mejor
se aproxime a los datos, de acuerdo con el criterio

de mnimo error cuadrtico.

Identificacin Por Mnimos Cuadrados


Considrese el siguiente modelo paramtrico lineal mono-variable:
+ 1 1 + + = 1 1 + + + ()
La ecuacin anterior se puede escribir como:
=
Donde el vector:

= 1 1 ( )
Es llamado regresor y:

= 1 1

Es el vector de parmetros.

Asumiendo un valor del vector parmetros , el error de estimacin ser:


= = ()

Identificacin Por Mnimos Cuadrados


El objetivo de este mtodo es minimizar el error cuadrtico o funcin de consto

1
1
=
2 = 2 1 + 2 2 + + 2 ()

2
=1
(1)
1
(2)
= 1 2 ()

()
1
=

Donde E es el vector de error de estimacin. Se puede reescribir la funcin de


costo de la ecuacin anterior como:
1
= ( ) ( )

Se obtendr el mnimo valor de () cuando se cumpla que:


()
=0

De donde se obtiene que el valor del vector de parmetros que hace mnima la
funcin de costo:
= 1 ( )

Descripcin de la Plataforma Arduino

Logotipo de Arduino

Arduino Mega 2560


Caracterstica
Descripcin
Microcontrolador
ATmega 2560
Voltaje de Operacin
5V
Tensin de Entrada (Recomendada)
7-12V
Tensin de Entrada (lmite)
6-20V
Pines Digitales de E/S
54 (15 para PWM)
Pines de Entrada Analgicos
16
Corriente DC por pin E/S
40mA
Corriente DC para pin 3.3V
50mA
Memoria Flash
256 KB
SRAM
8 KB
EEPROM
4 KB
Frecuencia de Reloj
16 MHz
Caractersticas de Arduino Mega 2560

Controlador Compactlogix 1768-l43

CompactLogix 1768-L43

Caractersticas
Caracterstica
Memoria Disponible
Tarjeta de Memoria

1768-L43
2MB
1784-CF128 (128MB)
EtherNet/IP
Opciones de Comunicacin
ControlNet
DeviceNet
Comunicacin por puerto serie
1 puerto RS-232
Nmero mximo de mdulos 1768
2
Nmero mximo de mdulos de E/S 1769
16
Nmero mximo de bancos de E/S
2
Batera
Ninguna
Fuente de alimentacin elctrica
1768-PA3, 1768-PB3
Caractersticas de CompactLogix 1768-L43

Algoritmo LMS (Desarrollo)


Mtodo del descenso ms rpido (Steepest Descent), de donde se desprende
la siguiente ecuacin:

= 1
Donde:

: vector que contiene los parmetros a estimados.

: es una constante que se definir directamente


representa el gradiente.
representa la evolucin del MSE (Mean Square Error).

Algoritmo LMS (Desarrollo)


=

2 ()

1.

= 2

2.

= () 1

3.

()

= ()

4.

= 2 ()()

5.

+ 1 = ()()

() ()

Algoritmo LMS (Resumen)

Algoritmo LMS (Simulacin-Matlab)


Curva de Aprendizaje
0

0.7

-50

0.6

-100

0.5

-150
MSE(dB)

Valor Real y Estimado

Salida del Sistema


0.8

0.4

-200

0.3

-250

0.2

-300

0.1
0

-350

Salida Estimada
Salida Real
0

200

400

600

800 1000 1200


Iteraciones

1400

1600

1800

2000

-400

200

400

600

800 1000 1200


Iteraciones

1400

1600

1800

2000

Convergencia de Parmetros

0.4

0.2

Parmetros

-0.2

-0.4

-0.6

W1
W2
P1
P2

-0.8
200

400

600

800 1000 1200


Iteraciones

1400

1600

1800

2000

Comparacin entre parmetros reales y


parmetros estimados

Algoritmo RLS (Desarrollo)


Para la resolucin de la ecuacin:
= 1 + () () 1
Se debe calcular los valores de:
K(k) ganancia de adaptacin
matriz de covarianza

Algoritmo RLS (Desarrollo)


1.

= () 1

2.

= 1 + ()()

3.

= +()(1)()

4.

VK(k) = P(k 1)(k)

5.

= +()()

6.

(1)()

()

1 ()

Donde : es llamado factor de olvido

Algoritmo RLS (Resumen)

Algoritmo RLS (Simulacin-Matlab)

Curva de Aprendizaje

Salida del Sistema

0.7

-50
0.6

-100
-150
MSE(dB)

0.4

0.3

-200
-250

0.2

-300
0.1

-350

Salida Estimada
Salida Real
0

50

100

150

200
Iteraciones

250

300

350

400

-400

50

100

150

200
Iteraciones

250

300

350

400

Convergencia de Parmetros
0.1
0
-0.1
-0.2
Parmetros

Valor Real y Estimado

0.5

-0.3
-0.4

Comparacin entre parmetros reales y


parmetros estimados (ec. 3.32)

-0.5
-0.6
W1
W2
P1
P2

-0.7
-0.8
-0.9
50

100

150

200
Iteraciones

250

300

350

400

Algoritmo LS-Lattice (Desarrollo)

Etapa del estimador LS Lattice

Cascada de etapas para formar un filtro de estimacin lineal de orden N

Algoritmo LS-Lattice (Desarrollo)


Del diagrama anterior se obtiene las siguientes formulas:

1
+1 = +1

1
+1
=
+1

Dnde:

: Error de prediccin forward.


: Error de prediccin backward.

y
: Coeficientes de reflexin.

: Representa la etapa actual en la que se est realizando el


clculo.

Algoritmo LS-Lattice (Desarrollo)


Los coeficientes de reflexin vienen dados por:

+1
=

+1

+1
1

+1

Donde el coeficiente de correlacin parcial m+1 n se calcula

por:

m+1 n = m+1

1
()
n1 +
( 1)

Algoritmo LS-Lattice (Desarrollo)


Donde:
m (n 1): ngulo formado por el producto
vectorial entre los errores de prediccin.

1 y

prediccin.

: errores cuadrticos de

Algoritmo LS-Lattice (Desarrollo)


+1 1 = 1

+1

+1

(1)
(1)

2+1 ()
(1)

2+1 ()

()

Algoritmo LS-Lattice (Resumen)

Algoritmo LS-Lattice (Simulacin-Matlab)


Convergencia de Parmetros
2

1.5

Parmetros

0.5

W1
W2
P1
P2

-0.5

-1
0

100

200

300

400
Iteraciones

500

600

700

800

Comparacin entre parmetros reales y parmetros estimados

Sistema de Emulacin de Procesos


Industriales

Diagrama del Sistema de Emulacin de Procesos Industriales

Generacin de Seales de Entrada


Seales de Entrada a la Planta
Escaln Unitario
Sinusoidal
PRBS
Para la generacin del escaln unitario simplemente se debe

establecer el valor de = 1 antes del desarrollo de la


ecuacin a diferencias.

Generacin de Seales de Entrada


Para generar una funcin sinusoidal se utiliza la

instruccin SIN del PLC, la variable tiempo se


establece con la ayuda del valor del acumulador de
un timer (T2.ACC) .
2.
= ((
))
24

Generacin de Seales de Entrada

Generacin de una seal PRBS con registro de 5 bits

Generacin de Seales de Salida


Mtodo

Funcin de
Transferencia

Ecuacin a
Diferencias

LMS/RLS
(Primer Orden)

1 1
=
1 + 2 1

()
= 1 1 2 (
1)

1 1 + 2 2
=
1 + 3 1 + 4 2


= 1 1
+ 2 2 3 (
1) 4 ( 2)

LMS/RLS
(Segundo Orden)
Lattice
(Primer Orden)
Lattice
(Segundo Orden)

=
=

1
1 + 1 1

()
= 1 ( 1)


= 1 ( 1)
2 ( 2)

1 + 1 1 + 2 2

Algoritmo del Emulador

Interfaz de Monitoreo

Diagrama de la interfaz general

Interfaz de Monitoreo

Esquema general de la interfaz de monitoreo del sistema de emulacin

Ejecucin (LMS-RLS Primer Orden)

Ejecucin (LMS-RLS Segundo Orden)

Ejecucin (Lattice Primer Orden)

Ejecucin (Lattice Segundo Orden)

Implementacin en Simulink

Diagrama de bloques sistema de identificacin de procesos


industriales

Resultados Algoritmo LMS


Convergencia de Parmetros

Salida del Sistema


2
0.1

1.5

0
-0.1
-0.2

0.5

Parametros

Valor Real y Estimado

0
-0.5

-0.3
-0.4
-0.5
-0.6
-0.7

-1

W1
W2
P1
P2

-0.8

-1.5
-2

Salida Estimada
Salida Real

-0.9
100

200

400

600
Muestras

800

1000

1200

200

300

400

500 600 700


Muestras

800

900 1000 1100

Resultados Algoritmo RLS


Salida del Sistema
Convergencia de Parmetros

2
0.2

1.5
0

0.5

-0.2

Parametros

Valor Real y Estimado

0
-0.5

-0.6

-1
-1.5
-2

-0.4

-0.8

200

400

600
Muestras

800

1000

1200

100

200

300

400

500 600 700


Muestras

800

900 1000 1100 1200

Resultados Algoritmo Lattice


Convergencia de Parmetros

Convergencia de Parmetros

0.6

0.4

0.5
0.2

0.4
0

0.3

-0.2
Valor

Valor

0.2
0.1

-0.4

0
-0.6

-0.1
-0.2

-0.8

W1
P1

-0.3
-0.4

W1
W2
P1
P2

100

200

300

400
500
Muestras

600

700

800

-1

900

50

100

150

200
Muestras

250

300

350

400

Conclusiones
El proyecto desarrollado permite realizar la identificacin de varios

tipos de procesos industriales de primer y segundo orden generados


por el sistema de emulacin de procesos industriales destacando el

algoritmo RLS como el ms ptimo para la emulacin de plantas en


lnea.

La plataforma open-source arduino permite la fcil interaccin


entre la tarjeta Arduino Mega 2560 para la adquisicin de datos y
Simulink para el desarrollo de los algoritmos de identificacin y su
ejecucin en tiempo real en lnea con el PLC, a travs de una librera
dedicada para arduino instalada en Simulink.

Conclusiones
El proyecto desarrollado muestra otra funcionalidad del PLC, como es el tratamiento y la
generacin de seales, pudiendo reemplazar el uso de DSPs para el tratamiento de seales,

siempre y cuando el PLC sea de gama alta y soporte texto estructurado como lenguaje de
programacin.
Para sistemas de segundo orden, la simulacin del algoritmo LMS resulta ineficiente, en la
ejecucin en Matlab se obtiene convergencia de los de los parmetros pero no a los valores
requeridos, en el entorno de Simulink el algoritmo tiende a ser inestable a lo largo de la

ejecucin, esto se debe a que el bloque de datos almacena solo un valor pasado de la
entrada/salida lo que hace que sea muy pequeo para considerar una estimacin de

parmetros adecuada, el tamao del bloque de datos no se puede cambiar ya que est
adaptado para su ejecucin en lnea y depende directamente del nmero de parmetros a
identificar.

Conclusiones
Con el antecedente de la simulacin, las pruebas del algoritmo LMS dentro del sistema en
tiempo real confirman su funcionamiento en sistemas de primer orden y su ineficiencia

para sistemas de orden superior, se puede notar la tendencia de los parmetros estimados
hacia los parmetros deseados, con ciertos perodos de tiempo en los que no coinciden los
valores debido al ruido al que la tarjeta arduino se vuelve susceptible, en sistemas de
segundo orden el algoritmo resulta totalmente inestable.
En comparacin con el algoritmo LMS, el algoritmo RLS presenta mayores ventajas en la

simulacin por su naturaleza recursiva, mayor rapidez de convergencia y ms exactitud en


la estimacin de los parmetros, pero se ve aumentada la complejidad computacional por

las operaciones matriciales que se realiza a lo largo de la ejecucin del algoritmo.

Conclusiones
En simulacin, el algoritmo RLS implementado es totalmente funcional, en comparacin al
algoritmo LMS donde se tiene la desventaja de depender de un bloque de datos mayor para

una buena estimacin, en el algoritmo RLS se pude variar el valor del factor de olvido, para
hacer que el algoritmo tome en cuanta ms o menos valores pasados del par
entrada/salida.
La desventaja de algoritmo RLS implementado se ve reflejada en la ejecucin del sistema
en tiempo real para sistemas de segundo orden donde el algoritmo se vuelve inestable, esto

se debe al ruido al que es susceptible la tarjeta arduino, dicho ruido debera verse opacado
con la variacin del factor de olvido para no tomar en cuenta algunos valores pasados del

par entrada/salida, la desventaja es la falta de implementacin de un algoritmo de


actualizacin del factor de olvido y as evitar el efecto de apagado antes de la convergencia
de los parmetros.

Conclusiones
Los algoritmos LMS y RLS pueden adaptarse a sistemas multi-entrada y multi-salida,
acoplando los vectores o matrices, dependiendo del caso, al nmero de entradas, salidas y

parmetros a estimar, no se ha realizado la simulacin del algoritmo LMS para sistema


MIMO debido a que se ha comprobado su ineficiencia para sistemas de segundo orden,
descartndolo para sistemas multi-variables.

Como una opcin adicional el algoritmo LS-Lattice es otra opcin para la estimacin de
parmetros que, en comparacin con el algoritmo RLS, muestra una mejor estabilidad ya
que no existe la desventaja de necesitar un factor de olvido variable, sino que, en este caso

los coeficientes de reflexin, se van actualizando con cada iteracin y para cada etapa del
estimador.

Recomendaciones
La tarjeta arduino mega 2560 se ha utilizado como una solucin para la
adquisicin de datos por ser open-source y de bajo costo, pero para este tipo
de proyectos donde se necesita que el ruido sea mnimo, se requiere realizar
las conexiones cableadas de la forma ms adecuada ya que la tarjeta est
diseada para varios tipos de prototipos basados en microcontroladores y
no solo en la adquisicin de datos.
Para sistemas o procesos industriales lentos y de primer orden se
recomienda el uso del algoritmo LMS para la estimacin de parmetros ya
que tiene una buena convergencia y no exige muchos recursos
computacionales.

Recomendaciones
El algoritmo RLS es recomendable para sistemas de donde se necesita una
convergencia de parmetros ms rpida, y aunque puede ser preferido su
uso para cualquier tipo de sistema se debe tomar en cuenta que su costo
computacional es mayor en comparacin al algoritmo LMS.

El uso del algoritmo LS-Lattice es recomendado en modelos netamente


discretos, en los cuales se requerira el diseo discreto de un controlador, ya
que la disposicin de los parmetros que se obtienen de la estimacin no es
la misma disposicin que la de los parmetros de una planta previamente
discretizada.

Recomendaciones
Al momento de la emulacin, se recomienda utilizar un mtodo para
sincronizar el perodo de muestreo de la generacin de la seal en el PLC y
el perodo de muestreo que se usa en la adquisicin de datos.

Para un futuro queda abierta la idea de desarrollar un controlador STR(Self


Tunning Regulator) dentro del PLC en el cual se deseara integrar la
resolucin de la ecuacin a diferencias con el proceso de identificacin en
lnea para identificar los parmetros del controlador a travs de la
estimacin de los parmetros de la planta.

Recomendaciones
Se propone tambin explorar algoritmos derivados del RLS

como

por

ejemplo

algoritmos

que

implementen

una

actualizacin del factor de olvido en cada iteracin y mejorar

la

velocidad

identificados.

en

la

convergencia

de

los

parmetros

También podría gustarte