Está en la página 1de 5

SINDy aplicado a Sistema de Fermentación de Café

Lopez, Andrés
Maestría en Ingeniería Electrónica
Universidad de Nariño
Pasto, Colombia
andresae@udenar.edu.co

RESUMEN
Donde, son los estados del sistema, la señal de
SINDy es una herramienta eficiente que permite identificar los
parámetros activos dentro de un sistema dinámico a partir de entrada es de la forma , mientras que las dinámicas
sus mediciones, teniendo en cuenta que muchos de los
sistemas dinámicos poseen comportamientos no lineales, lo
que genera dificultades al momento de aplicar técnicas de Haciendo uso de las mediciones obtenidas en los dos
control sobre ellos. En este documento, se evidencian los conjuntos de datos batches, se identificó a través de la
resultados obtenidos luego de aplicar SINDy que tiene como regresión dispersa la menor cantidad de términos activos
objetivo identificar las dinámicas no lineales de un sistema, posibles para aproximar la función .[2]
que en este caso comprenden las mediciones de un modelo de
fermentación de café, analizando el ajuste de los parámetros La matriz de los estados y la matriz de la entrada, se evaluaron
resultantes del algoritmo hacia el sistema y a partir de las a través de una librería que contiene las posibles funciones
funciones obtenida. polinómicas que describen los datos de las mediciones, para
lograr lo antes propuesto, se requiere obtener el cambio con
I. INTRODUCCIÓN respecto del tiempo de los datos, como están establecidos en
Existen un conjunto de técnicas que permiten encontrar el tiempo discreto son de la forma:
comportamiento matemático de los sistemas dinámicos, sin
embargo, la eficacia de la estimación recae en la calidad de las (2)
mediciones y la experiencia del investigador. Sparse
identification of nonlinear dynamics (SINDy) permite estimar Es importante tener en cuenta que son los estados del
las estructuras posibles para modelar un sistema dinámico no sistema. Con la ayuda de Matlab, se cuenta con 2 funciones
lineal. [1] que permiten la aplicación de SINDy, la primera denominada
En este caso de estudio se cuenta con dos conjuntos de datos de poolData, contiene las librerías de las posibles combinaciones
los estados que están presentes en un sistema de fermentación entre los estados y la entrada para lograr , la función
de café, tomando como variables de estado: el pH, los grados sparsifyDynamics, hace referencia al método de regresión
brix, y la temperatura interna a la cual están sometidos los utilizado para arrojar la mínima cantidad de elementos
granos del café durante su procesado. La sección 2 comprende posibles para caracterizar el sistema, el cual requiere de un
el planteamiento del modelo, la sección 3 expone los resultados
parámetro de ajuste denominado lambda, utilizando el método
obtenidos en Matlab, finalmente en la última sección se
de mínimos cuadrados umbralizados secuenciales dentro de la
presentan las conclusiones para este caso de estudio.
función nombrada anteriormente.
II. PLANTEAMIENTO DEL MODELO
Con el fin de evaluar el ajuste de los coeficientes obtenidos
Para este caso, el sistema dinámico comprende datos de que caracterizan el sistema, se utilizó la función fitlm la cual
temperatura ambiente, la cual será tratada como señal de arroja los coeficientes de correlación, determinación y bondad
entrada del sistema, además, en este caso de estudio se tratará de ajuste a través de la función chi square para cada estado del
el sistema en tiempo discreto, por lo tanto, considerando la sistema dinámico.
siguiente estructura:
III. RESULTADOS
En esta sección se abordarán los dos conjuntos de datos, junto
(1)
con sus coeficientes de la regresión dispersa con los cuales se

©2022 MaIe Udenar


obtuvo , en primera instancia, se calculó la función discreta
sin tener en cuenta la entrada y se evaluó el ajuste, luego, se
expone la influencia de la entrada en el sistema con la cual se
verificó si con esta, el algoritmo fue capaz de mejorar la
adaptabilidad de los coeficientes en el sistema.
a) Primer batch Gráficamente se puede apreciar el ajuste de la siguiente
El conjunto de datos está disponible en un archivo .mat manera:
denominado “data_DV_27jul_int.mat”, el cual contiene
mediciones para un intervalo de tiempo de 26 horas, con un
tiempo de muestreo de 10 minutos, se toma como entrada del
sistema la temperatura ambiente del modelo, mientras que se
cuenta con los 3 estados a estimar, los cuales poseen la
siguiente forma:

Figura 2: Datos reales vs estimados.


La figura 2 arroja que si bien las funciones calculadas se
asemejan a los datos originales, existen pérdidas y
desviaciones en ciertos instantes, a través de los coeficientes
estadísticos se puede evidenciar el ajuste de este modelo
Figura 1: Datos reales primer batch calculado, teniendo en cuenta la siguiente tabla:
Cada estado del sistema, será representado por las siguientes
variables:

Ajuste de los datos


(3)
RMSE R² GOF (%)
Para lograr la estimación del sistema, se ejecutó el algoritmo
sin tener en cuenta la entrada del sistema, los mejores pH 0,0918 0,944 76,0744
resultados obtenidos de combinaciones lineales, se obtuvieron
con un polinomio de grado 1 para cada estado de la forma: °Bx 0,198 0,901 67,9339
Temperatura 0,0853 0,984 84,1732
(4)
Tabla 1: Ajuste de datos sin entrada.
Considerando que es el vector de funciones del estado y
hace referencia a los coeficientes del polinomio que se Se puede apreciar que el ajuste mas alto corresponde para la
forma al aplicar la regresión dispersa [1], obteniendo el temperatura ya que su comportamiento se asemeja a una señal
siguiente resultado: lineal, sin embargo, se hace importante utilizar mayor cantidad
de componentes activos para estimar los grados Brix ya que RMSE R² GOF (%)
posee el ajuste más bajo de solo el 68% aproximadamente, por
lo tanto, utilizando la señal de la entrada y un polinomio de pH 0,088 0,953 75,76
grado 2, se obtuvo: °Bx 0,14 0,917 66,38
Temperatura 0,047 0,987 84,11
Estados fd Tabla 2: Ajuste de datos con entrada
x1(k+1) x2(k+1) x3(k+1)
1 3,4055 93,5952 -18,9301 Se cuenta con una función con polinomios de grado 2, sin
x 1,7605 4,0604 -0,0133 embargo, el ajuste es similar al anterior caso del polinomio de
y -0,3618 -7,2314 1,5437 grado 1 sin entrada, cabe resaltar que para facilitar la
convergencia del método de mínimos cuadrados se optó por
z -0,141 -2,8525 1,5406
ingresar las funciones de forma manual en la librería que las
xz -0,0351 -0,188 0 contiene en la función poolData, es importante tener en cuenta
yy 0 0,1079 -0,0253 que los grados brix son la variable con el peor ajuste.
yz 0,0158 0,2091 -0,0316
u 0 0 0
Tabla 2: Coeficientes del polinomio para datos con entrada b) Segundo Batch
Para este caso, los datos se encuentran almacenados en el
A pesar que se ingresó la entrada como un coeficiente de archivo “data_DV_29jul_int.mat”, en el cual el tiempo de
grado 1, la regresión descarta este parámetro para estimar los medición se realizó durante 25 horas, con 150 muestras, para
estados, es importante tener en cuenta que el parámetro de un tiempo de muestreo de 10 minutos, este conjunto contiene
ajuste lambda = 0,01. La siguiente gráfica expone el ajuste de las mismas variables del anterior batch, con comportamientos
las funciones: diferentes, se contempla la influencia de la entrada en el
sistema sin contemplar la estimación del modelo sin dicho
parámetro, gráficamente tiene el siguiente comportamiento:

Figura 3. Datos reales vs estimados polinomio grado 2

La tabla 2 recolecta los coeficientes para cada uno de los


parámetros activos para caracterizar cada estado que se
acoplan en una función polinómica, la figura 3 con respecto a
la figura 2 representa un mayor ajuste para los grados Brix,
mientras que el pH mantiene el comportamiento de forma
similar, la siguiente tabla indica los coeficientes de ajuste: Figura 4: Datos reales segundo Batch.
Los grados brix y el pH poseen un comportamiento
evidentemente no lineal, mientras que la temperatura interna
Ajuste de los datos
del sistema posee un comportamiento lineal aproximadamente,
a partir de aplicar SINDy se obtuvo el siguiente resultado:

Estados fd
x1(k+1) x2(k+1) x3(k+1)
1 0,229 -99,5634 -0,3607
x 0,8497 -12,624 0
y 0 0 0
z 0 4,0548 1,0106
sin(x² )/z² -27,18 -2,42E+03 35,5227
sin(y² )/z² -0,5587 0 0
y/z -0,1685 24,8017 0
x/z² 74,6426 7,20E+03 22,1046
y² z 0 0 0
yz² 0 0 0
u 0 0 0
u² 0 0 0
u³ 0 0 0
Tabla 3: Coeficientes de función discreta segundo Batch.

Para el caso del segundo conjunto de datos fue necesario


utilizar expresiones trigonométricas con el fin de aproximar
las funciones de los estados logrando un ajuste considerable,
cabe mencionar que el parámetro lambda se ajustó en 0.1, esto
con el objetivo de reducir la cantidad de términos de la Figura5: Ajuste de las funciones respecto a datos originales
expresión, aunque con el inconveniente de anular la influencia
de la entrada en los estados del sistema, a partir de los Visualmente es posible discernir que para la temperatura se
resultados obtenidos, se representó gráficamente los estados logra un ajuste alto que se aproxima a los datos originales,
con el siguiente comportamiento: mientras que el pH y los grados Brix, no se logra el suficiente
ajuste para los comportamientos no lineales durante los
instantes de tiempo de las 10 a 15 horas de medición, sin
embargo, a continuación se presenta los coeficientes de ajuste
del modelo:

Ajuste de los datos


RMSE R² GOF (%)
pH 0,0516 0,869 63,67
°Bx 0,283 0,941 75,2
Temperatura 0,0212 0,993 91,66
Tabla 4: Ajuste de datos segundo Batch

A diferencia de los resultados obtenidos en la tabla 2, en la


tabla 4 se puede apreciar que los grados Brix fueron
calculados con mayor ajuste y el pH obtuvo uno inferior, caso
contrario al que se arroja en el primer batch, además, es
posible mencionar que la temperatura tuvo un ajuste
considerable en este segundo conjunto de datos, notando que
su función que gráficamente se asemeja un comportamiento
lineal, en sus coeficientes se destacan parámetros no lineales.
CONCLUSIONES De acuerdo a la literatura [1], existen múltiples combinaciones
Con el fin de favorecer la convergencia de la regresión de las posibles para lograr calcular los parámetros activos de las
dinámicas dispersas, se modificó la librería de funciones dinámicas de un sistema, en este estudio no se evidenció la
poolData ingresando los operadores que logren mejorar el influencia de los datos de entrada en los estados, sin embargo,
ajuste de cada estado para las mediciones originales, ya que aplicando diferentes funciones en la librería, es posible lograr
utilizando únicamente polinomios de grado 2 o 3, el vector de que este parámetro influencie al sistema, lo que permitiría
estado resultante tendía hacia el infinito a pesar de modificar aplicar control al mismo.
lambda en reiteradas ocasiones. REFERENCIAS
Se contemplo para favorecer al método de regresión agregar
datos adicionales entre cada muestra a través de la función
[1] U. Fasel, E. Kaiser, N. Kutz, B. Brunton, S. Brunton. SINDy with
interp1 de matlab, la cual realiza una interpolación lineal de Control: A tutorial. Washington DC, pp 2. Agosto 2021.
los datos, aumentando la cantidad de los mismos, se realizó [2] S. Brunton, N. Kutz. Data Driven Science and Engineering. 1St ed,
ampliando la cantidad de muestras de hasta 5 veces la cantidad Washington DC. 2017, pp 288-299
original, sin embargo, al aplicar SINDy no se obtuvo [3] R. Tallarida, R. Murray. Chi-Square Test. In: Manual of Pharmacologic
resultados significativos para estimar el modelo, no se Calculations. Springer, New York, NY. 1987. pp 140–142
apreciaba diferencia en el ajuste.

También podría gustarte