scieee AI-readable full text Open interactive document viewer

Modelado y control de sistemas de páncreas artificiales

Aguilera Mazuela, Eva

Abstract

Cerca de 400 millones de personas en el mundo padecen diabetes, una enfermedad ligada al páncreas que tiene como resultado un aumento del nivel de glucosa en la sangre. Concretamente, la diabetes de tipo I se produce porque el páncreas no es capaz de segregar la insulina necesaria para reducir los niveles de glucosa cuando estos sobrepasan unos límites. Los enfermos que tienen este tipo de diabetes deben medirse los niveles de glucosa en la sangre con una elevada frecuencia e inyectarse insulina cuando estos sean demasiado altos. Sin embargo, para ahorrarle este trabajo a estos pacientes existe la posibilidad de elaborar un páncreas artificial encargado de forma autónoma de medir los valores de la concentración de glucosa en la sangre y suministrar automáticamente la insulina cuando sea necesario. Para ello, en este trabajo se modelará un sistema que simule la acción del páncreas en cuanto a regulación de glucosa e insulina se refiere. Tras modelar dicho sistema, este pasará a ser controlado para mantener los niveles de glucosa dentro de los límites salubres. Todo ello será implementado en Matlab-Simulink.

Full text

Equation Chapter 1 Section 1 Trabajo Fin de Grado Grado en Ingeniería en Tecnologías Industriales Modelado y control de sistemas de páncreas artificiales Autor: Eva Aguilera Mazuela Tutor: Ascensión Zafra Cabeza Dpto. de Ingeniería de Sistemas y Automática Escuela Técnica Superior de Ingeniería Universidad de Sevilla Sevilla, 2019 iii Trabajo Fin de Grado Grado en Ingeniería en Tecnologías Industriales Modelado y control de sistemas de páncreas artificiales Autor: Eva Aguilera Mazuela Tutor: Ascensión Zafra Cabeza Profesora titular Dpto. de Ingeniería de Sistemas y Automática Escuela Técnica Superior de Ingeniería Universidad de Sevilla Sevilla, 2019 v Trabajo Fin de Grado: Modelado y control de sistemas de páncreas artificiales Autor: Eva Aguilera Mazuela Tutor: Ascensión Zafra Cabeza El tribunal nombrado para juzgar el Proyecto arriba indicado, compuesto por los siguientes miembros: Presidente: Vocales: Secretario: Acuerdan otorgarle la calificación de: Sevilla, 2018 El Secretario del Tribunal vii A mi familia y amigos por apoyarme y soportarme en el trascurso de elaboración de este trabajo. A mi tutora, Ascensión Zafra, que me ha atendido y ayudado siempre que lo he necesitado. ix Resumen Cerca de 400 millones de personas en el mundo padecen diabetes, una enfermedad ligada al páncreas que tiene como resultado un aumento del nivel de glucosa en la sangre. Concretamente, la diabetes de tipo I se produce porque el páncreas no es capaz de segregar la insulina necesaria para reducir los niveles de glucosa cuando estos sobrepasan unos límites. Los enfermos que tienen este tipo de diabetes deben medirse los niveles de glucosa en la sangre con una elevada frecuencia e inyectarse insulina cuando estos sean demasiado altos. Sin embargo, para ahorrarle este trabajo a estos pacientes existe la posibilidad de elaborar un páncreas artificial encargado de forma autónoma de medir los valores de la concentración de glucosa en la sangre y suministrar automáticamente la insulina cuando sea necesario. Para ello, en este trabajo se modelará un sistema que simule la acción del páncreas en cuanto a regulación de glucosa e insulina se refiere. Tras modelar dicho sistema, este pasará a ser controlado para mantener los niveles de glucosa dentro de los límites salubres. Todo ello será implementado en Matlab-Simulink. Figura 4-4. Ejemplo sobre la interfaz gráfica con controlador. 31 Figura 4-5. Ejemplo de resultado obtenido mediante la interfaz gráfica con controlador. 31 Figura AA-0-1. Ventana de edición de la interfaz gráfica. 35 1 1 INTRODUCCIÓN a diabetes es una enfermedad que afecta a casi 400 millones de personas en todo el mundo [6], y a algo más de 5 millones de personas en España, cuya tendencia es la de seguir en ascenso hasta tal punto que la Federación Internacional de Diabetes alerta de que en 2040 uno de cada 10 adultos padecerán la enfermedad, lo que supondrá 642 millones de personas [5]. 1.1 El páncreas y su funcionamiento. Diabetes El páncreas es un órgano alargado y angosto que está ubicado en la parte de atrás del abdomen y detrás del estómago. Este órgano está compuesto de 2 tipos de glándulas: exocrinas y endocrinas. Figura 1-1. Esquema de un páncreas [11]. Las glándulas exocrinas secretan enzimas, como la amilasa y la lipasa, cuya función es ayudar a la digestión. Estas enzimas son secretadas en una red de conductos que se unen al conducto pancreático principal, el cual se extiende a lo largo del páncreas y ayudan a descomponer carbohidratos, grasas, proteínas y ácidos en el duodeno. El tejido exocrino también secreta un bicarbonato para neutralizar el ácido del estómago en el duodeno. En cambio, las glándulas endocrinas están compuestas de los islotes de Langerhans y secretan hormonas en el torrente sanguíneo. Las hormonas principales secretadas por la glándula endocrina en el páncreas son la insulina, que sirve para bajar el nivel de glucosa en la sangre, y el glucagón, que tiene la función contraria, la de aumentar el nivel de glucosa en sangre; y también secreta la somatostina, que impide la secreción de las otras 2 hormonas. Por tanto, el páncreas tiene dos funciones principales: la digestiva y la hormonal. En este caso, nos interesa su función hormonal, ya que esta es la que se encarga de regular la concentració de glucosa en la sangre. Si se pierde la correcta función endocrina se produce la diabetes, la cual es la enfermedad más frecuente relativa al páncreas [8]. La diabetes es un desorden del metabolismo del proceso que convierte el alimento en energía y la insulina es el factor más importante en este proceso. Durante la digestión, los alimentos se descomponen para crear la glucosa, que es la mayor fuente de combustible para el cuerpo y ésta pasa a la L Introducción 2 sangre, donde la insulina le permite entrar en las células. En las personas con diabetes, el cuerpo o no puede fabricar insulina o no reacciona adecuadamente a esta hormona. Sin la insulina, la glucosa no puede acceder al interior de las células; por lo tanto, la glucosa permanece en el torrente sanguíneo, haciendo así que la concentración de azúcar en sangre sea más alta de lo normal. Hay dos tipos principales de diabetes: la tipo 1 y la tipo 2 [7]. Ambas hacen que la concentración de azúcar en sangre sea más alta de lo normal, pero de distinta forma. En la diabetes tipo 1, el páncreas pierde su capacidad de fabricar la hormona insulina porque el sistema inmunitario ataca y destruye las células del páncreas encargadas de fabricar esta hormona. Nadie sabe exactamente por qué ocurre, pero los científicos creen que su origen está relacionado con los genes. No obstante, el simple hecho de heredar los genes de la diabetes, no suele bastar para desarrollar esta enfermedad. Lo más probable es que la persona deba exponerse a algo más, como un virus, para desarrollar una diabetes tipo 1. En la diabetes tipo 2, el páncreas aún puede seguir fabricando insulina, pero el cuerpo no responde a esta hormona con normalidad. La glucosa es menos capaz de entrar en las células y de desempeñar su función de proporcionar energía. Esto aumenta la concentración de azúcar en sangre, por lo que el páncreas debe trabajar más duro para fabricar más insulina. A la larga, este esfuerzo excesivo acaba agotando al páncreas, que deja de fabricar suficiente insulina para mantener las concentraciones de azúcar en sangre dentro de la normalidad. Figura 1-2. Diferencia entre el funcionamiento del páncreas en un individuo sano y en uno con diabetes. Diabetes tipo 1 arriba, diabetes tipo 2 abajo [12]. 3 3 Modelado y control de sistemas de páncreas artificiales La diabetes tipo 1 se produce con mayor frecuencia en niños y adultos jóvenes. Representa el 13% de los casos de diabetes en España, 29.000 menores chicos y chicas de 15 años, con una media de 1.100 nuevos casos por año [6]. Dentro del tratamiento que deben seguir las personas con este tipo de diabetes se encuentra tener una dieta apropiada para manejar los niveles de azúcar en la sangre, hacer ejercicio para ayudar al cuerpo a usar el azúcar en la sangre de manera eficaz, monitorizar cuidadosamente por sí mismo los niveles de azúcar de la sangre varias veces al día, como se lo indique su médico; monitorizar cuidadosamente por sí mismo los niveles de cetonas en la orina varias veces al día, como se lo indique su médico o monitorizar regularmente los niveles de hemoglobina A1c. Además, estas personas deben recibir inyecciones diarias de insulina para mantener sus niveles de azúcar en la sangre dentro de límites normales [9]. Seguir el plan de tratamiento permite que las personas se mantengan sanas, pero tratar la diabetes no es lo mismo que curarla. Hasta ahora, no hay cura para esta enfermedad, pero hay investigaciones en curso para encontrar mejores formas de controlar la diabetes. Esto incluye buscar otras formas de administrar la insulina como inhaladores, píldoras o bombas. Actualmente, los costes anuales en España debido a la diabetes son muy altos, superando los 17.630 millones de euros indirectos, debidos al absentismo laboral, a las jubilaciones anticipadas y a gastos sociales, entre otros. Los gastos directos ascienden a los 5.447 millones de euros, de los que 1.708 millones son en tratamientos y hospitalizaciones para los pacientes [6]. 1.2 Páncreas artificial Las personas con diabetes tipo 1 cuentan con numerosas aplicaciones y dispositivos que van incorporados en la ropa o en los complementos que les ayudan en el control de su enfermedad y en la práctica de hábitos saludables, tanto a nivel de nutrición como de ejercicio físico. Sin embargo sigue siendo una tarea diaria de gran presión para estos pacientes saber con certeza la cantidad correcta de insulina que se han de suministras para asegurarse de que los niveles de glucosa en sangre estén en un rango adecuado, es decir, entre 70 y 110 mg/dl. Una solución para estos pacientes, menos invasiva y más eficaz sería el páncreas artificial [10], que monitorearía continuamente los niveles de glucosa en sangre, eliminando así la necesidad de ser medidos estos por el paciente, y se encargaría de administrar insulina de forma autónoma. Esto les otorgaría más tiempo libre y autonomía, ya que el sistema de gestión de la glucosa es eficaz sin la necesidad de tener una vigilancia constante por parte del usuario. Este dispositivo consta de una bomba de insulina que se conecta de forma inalámbrica con un sensor subcutáneo que mide el nivel de glucosa en la sangre. Estas bombas son dotadas con un algoritmo matemático de control, que permite tomar los datos del sensor y calcular la dosis óptima de insulina de acuerdo con las necesidades de cada individuo y de cada momento. De esta manera es capaz de ir inyectando las dosis necesarias de insulina de forma continua y automática sin que el paciente tenga que estar pendiente de ello. Introducción 4 Figura 1-3. Disposición de los dispositivos que conforman un páncreas artificial [13]. Lo que no cambia es que sigue siendo necesario que el paciente estime la cantidad de hidratos de carbono que va a ingerir para indicárselo a la bomba y que esta compense dicha ingesta. Sin embargo, todavía hay obstáculos que superar. Tales como el modo de carga de la batería del dispositivo, aunque la carga por inducción parece una solución viable, o la forma de proveer las dosis de insulina, cuya solución podría ser mediante un pinchazo cada cierto tiempo, eso sí, con un intervalo de tiempo mucho mayor que el diario actual [11]. 5 2 MODELADO DE UN PÁNCREAS ARTIFICIAL n este capítulo se muestran las simulaciones realizadas emulando el comportamiento de un páncreas real. Para ello se ha empleado el modelo de comida glucosa-insulina [1, 2, 3, 4] desarrollado en las siguientes secciones. En la figura 2-1 [2] se relaciona las concentraciones medidas en plasma (G, I) con los flujos de glucosa (Ra, EGP, U, E) y los de insulina (s, D). La comida ingerida da lugar a un flujo de tasa de aparición de glucosa (Ra) que afecta al sistema de glucosa. Además, el sistema de glucosa también se ve afectado por la producción de glucosa en el hígado (EGP), por la excreción renal de glucosa (E) y por el uso de glucosa en los músculos y tejidos adiposos (U). Por otra parte, el sistema de insulina se ve afectado por el flujo de insulina segregado por las células beta del páncreas (s) y por la degradación de insulina (D). La producción de glucosa por parte del hígado y el uso de esta por parte de los músculos y tejidos adiposos variará en función de las concentraciones de glucosa (G) e insulina (I) en plasma. Figura 2-1. Esquema del sistema glucosa-insulina. 2.1 Subsistema de glucosa En este subsistema se describe la cinética de la glucosa, diferenciando para ello la glucosa en plasma y tejidos de equilibrio rápido, Gp, y la glucosa en tejidos de equilibrio lento, Gt. La cinética de la primera se ve afectada negativamente por el incremento de la misma y positivamente por el incremento de la glucosa en tejidos de equilibrio lento. También contribuye a su aumento la producción endógena de glucosa por parte del hígado y la tasa de aparición de glucosa en plasma. En cambio, como E Modelado de un páncreas artificial 6 factores limitantes se han considerado el uso de glucosa independiente de insulina, es decir, el llevado a cabo por el cerebro y los eritrocitos o glóbulos rojos, y la excreción renal, que es el flujo de glucosa eliminado por los riñones. La cinética de la glucosa en tejidos de equilibrio lento se ve afectada de forma contraria a la de Gp por ambos tipos de glucosa y, además, disminuye con el uso de glucosa dependiente de insulina. Para representar dicho subsistema se ha empleado el siguiente modelo: 𝐺󰇗𝑝(𝑡)=−𝑘1𝐺𝑝(𝑡)+𝑘2𝐺𝑡(𝑡)+𝐸𝐺𝑃(𝑡)+𝑅𝑎(𝑡)−𝑈𝑖𝑖 −𝐸(𝑡) 𝐺󰇗𝑡(𝑡)=𝑘1𝐺𝑝(𝑡)−𝑘2𝐺𝑡(𝑡)−𝑈𝑖𝑑(𝑡) 𝐺(𝑡)=𝐺𝑝(𝑡) 𝑉𝐺 (1-1) Donde las variables empleadas son las siguientes:  VG (dl/kg) es la distribución de volumen de glucosa,  G (mg/dl) es la glucemia o concentración de glucosa en el plasma sanguíneo,  Gp (mg/kg) es la glucosa en plasma y tejidos de equilibrio rápido,  Gt (mg/kg) es la glucosa en plasma y tejidos de equilibrio lento,  EGP (mg/kg/min) es la producción de glucosa endógena,  E (mg/kg/min) es la excreción renal,  Ra(mg/kg/min) es la tasa de aparición de glucosa en plasma,  Uii (mg/kg/min) es el uso de glucosa independiente de insulina, considerado constante,  Uid (mg/kg/min) es el uso de glucosa dependiente de insulina y  k1 y k2 son parámetros de frecuencia. El estado basal estacionario, es decir, cuando la glucemia es constante (Gb), se caracteriza por las siguientes ecuaciones: 0=−𝑘1𝐺𝑝𝑏 +𝑘2𝐺𝑡𝑏 +𝐸𝐺𝑃𝑏+𝑅𝑎𝑏−𝑈𝑖𝑖 −𝐸𝑏 0=𝑘1𝐺𝑝𝑏 −𝑘2𝐺𝑡𝑏 −𝑈𝑖𝑑𝑏 (1-2) Por lo que, teniendo en cuenta por definición que en el equilibrio basal Rab=0, se obtiene la siguiente ecuación: 𝐸𝐺𝑃𝑏=𝑈𝑖𝑖 +𝑈𝑖𝑑𝑏 +𝐸𝑏 (1-3) Tal y como semuestra en la figura 2-2 las entradas a este sistema son la producción endógena de glucosa (EGP), la tasa de aparición de glucosa en plasma (Ra), el uso de glucosa independiente (Uii) y dependiente (Uid) de insulina y la excreción renal (E). La única salida es la concentración de glucosa (G) y los parámetros son las variables k1 y k2, y la distribución de volumen de glucosa (Vg). 7 7 Modelado y control de sistemas de páncreas artificiales Figura 2-2. Descripción de entradas, salidas y parámetros del subsistema de glucosa. El código resultante de implementar este subsistema en simulink es el que se muestra en la figura 2-3. Figura 2-3. Código en simulink del subsistema de glucosa. 2.2 Absorción intestinal de glucosa Para explicar el proceso de absorción intestinal de glucosa es necesario diferenciar entre la cantidad de glucosa Subsistema de glucosa G k1, k2, Vg EGP Ra Uii Uid E Modelado de un páncreas artificial 8 en el estómago, Qsto, y en el intestino, Qgut. A su vez, hay que diferenciar entre la glucosa que se encuentra en el estómago en estado sólido y la que está en estado líquido. Al ingerir cierta cantidad de glucosa, aumenta la cantidad de glucosa en estado sólido en el estómago, lo que provoca un aumento en la cantidad de glucosa en estado líquido que se encuentra en él, haciendo esto que aumenta la cantidad de glucosa en el intestino. Por último, parte de esta glucosa intestinal es absorbida, incrementando así la tasa de aparición de glucosa en plasma. La absorción intestinal de glucosa está modelada por un modelo de tres compartimentos: 𝑄󰇗𝑠𝑡𝑜1(𝑡)=−𝑘𝑔𝑟𝑖𝑄𝑠𝑡𝑜1(𝑡)+𝑑(𝑡) 𝑄󰇗𝑠𝑡𝑜2(𝑡)=−𝑘𝑒𝑚𝑝𝑡(𝑡,𝑄𝑠𝑡𝑜(𝑡))𝑄𝑠𝑡𝑜2(𝑡)+𝑘𝑔𝑟𝑖𝑄𝑠𝑡𝑜1(𝑡) 𝑄󰇗𝑔𝑢𝑡(𝑡)=−𝑘𝑎𝑏𝑠𝑄𝑔𝑢𝑡(𝑡)+𝑘𝑒𝑚𝑝𝑡(𝑡,𝑄𝑠𝑡𝑜(𝑡))𝑄𝑠𝑡𝑜2(𝑡) 𝑄𝑠𝑡𝑜(𝑡)=𝑄𝑠𝑡𝑜1(𝑡)+𝑄𝑠𝑡𝑜2(𝑡) 𝑅𝑎(𝑡)=𝑓𝑘𝑎𝑏𝑠𝑄𝑔𝑢𝑡(𝑡)/𝐵𝑊 (1-4) Donde las variables empleadas son las siguientes:  Qsto(mg) es la cantidad de glucosa en el estómago (en fase sólida, Qsto1, y en fase líquida, Qsto2),  Qgut(mg) es la masa de glucosa en el intestino,  Ra(mg/kg/min) es la tasa de aparición de glucosa en plasma,  kgri es la tasa de molienda,  kabs es la tasa constante de absorción intestinal,  f es la fracción de absorción intestinal que realmente aparece en el plasma,  d(mg/min) es la cantidad de glucosa ingerida,  BW(kg) es el peso corporal y  kempt es la constante de velocidad de vaciado gástrico que es una función no lineal que varía con el tiempo de Qsto 𝑘𝑒𝑚𝑝𝑡(𝑡,𝑄𝑠𝑡𝑜(𝑡))=𝑘𝑚𝑎𝑥 +𝑘𝑚𝑎𝑥 −𝑘𝑚𝑖𝑛 2{tanh[𝛼(𝑄𝑠𝑡𝑜(𝑡)−𝑏𝐷(𝑡))] −tanh[𝛽(𝑄𝑠𝑡𝑜(𝑡)−𝑑𝐷(𝑡))]} (1-5) donde 𝛼= 5 2𝐷(𝑡)(1−𝑏) 𝛽= 5 2𝐷(𝑡)𝑑 𝐷(𝑡)=∫ 𝑑(𝑡)𝑑𝑡 𝑡𝑓 𝑡𝑖 (1-6) Donde  ti es la hora de inicio de la última comida,  tf es la hora de fn de la última comida y  b, d, kmax y kmin como parámetros del modelo. 9 9 Modelado y control de sistemas de páncreas artificiales Como se aprecia en la figura 2-4 la entrada a este sistema es la cantidad de glucosa ingerida (d), la salida es la tasa de aparición de glucosa en plasma (Ra) y los parámetros son kgri, kabs, kmax, kmin, b, d, f y BW. Figura 2-4. Descripción de entradas, salidas y parámetros del subsistema de absorción intestinal de glucosa. El código resultante de implementar este subsistema en simulink es el que se muestra en la figura 2-5. Subsistema de absorción intestinal de glucosa d Ra kgri, kabs, kmax, kmin, b, d, f, BW Modelado de un páncreas artificial 16 Figura 2-12. Descripción de las entradas, salidas y parámetros del subsistema de insulina. El código resultante de implementar este subsistema en simulink es el que se muestra en la figura 2-13. Figura 2-13. Código en simulink del subsistema de insulina. 2.7 Subsistema subcutáneo de insulina En los pacientes diabéticos, la insulina es habitualmente administrada por inyección subcutánea. La insulina tarda algún tiempo en llegar al sistema circulatorio, al contrario que en un paciente sano en el que el páncreas segrega directamente la insulina en la vena porta. Este retraso está modelado aquí con dos compartimentos, S1 y S2 (pmol/kg), que representan, respectivamente, la insulina polimérica y monomérica en el tejido Subsistema de insulina s I m1, m2, m4, m5, m6, Vl 17 17 Modelado y control de sistemas de páncreas artificiales subcutáneo: 𝑆󰇗1(𝑡)=−(𝑘𝑎1 +𝑘𝑑)𝑆1(𝑡)+𝑢(𝑡) 𝑆󰇗2(𝑡)=𝑘𝑑𝑆1(𝑡)−𝑘𝑎2𝑆2(𝑡) 𝑠(𝑡)=𝑘𝑎1𝑆1(𝑡)+𝑘𝑎2𝑆2(𝑡) (1-23) Donde  u(t) (pmol/kg/min) representa el flujo de insulina inyectada,  S1 (pmol/kg) es la insulina polimérica en el tejido subcutáneo,  S2 (pmol/kg) es la insulina monomérica en el tejido subcutáneo,  s (pmol/kg/min) es el flujo de insulina segregado,  kd es la constante de degradación y  ka1 y ka2 son las constantes de absorción de la insulina polimérica y monomérica, respectivamente. En el estado basal se tiene 0=−(𝑘𝑎1 +𝑘𝑑)𝑆1𝑏 +𝑢𝑏 0=𝑘𝑑𝑆1𝑏 −𝑘𝑎2𝑆2𝑏 𝑠𝑏=𝑘𝑎1𝑆1𝑏 +𝑘𝑎2𝑆2𝑏 (1-24) y resolviendo el sistema 𝑆1𝑏 =𝑠𝑏 𝑘𝑑+𝑘𝑎1 𝑆2𝑏 =𝑘𝑑 𝑘𝑎1𝑆1𝑏 𝑢𝑏=𝑠𝑏 (1-25) La cantidad ub (pmol/min) representa la infusión de insulina para mantener al paciente diabético en estado basal estable. Tal y como se muestra en la figura 2-14 la entrada al sistema es el flujo de insulina inyectada(u), la salida es la secreción de insulina (s) y los parámetros son ka1, ka2 y kd. Figura 2-14. Descripción de las entradas, salidas y parámetros del subsistema subcutáneo de insulina. Subsistema subcutáneo de insulina u s ka1, ka2, kd Modelado de un páncreas artificial 18 El código resultante de implementar este subsistema en simulink es el que se muestra en la figura 2-15. Figura 2-15. Código en simulink del subsistema subcutáneo de insulina. 2.8 Resultado obtenido Unificando todos los subsistemas descritos anteriormente se obtiene el diagrama de bloques de la figura 2-16. El flujo de insulina inyectada (u) entra al bloque del subsistema subcutáneo de insulina, del que sale el flujo de insulina segregado (s) que a su vez entra en el subsistema de insulina, del que sale incrementado el nivel de insulina en plasma (I). Por otro lado el nivel de glucosa en plasma (G) es una salida del subsistema de glucosa, cuyas entradas son el uso de glucosa dependiente (Uid) e independiente de insulina (Uii), por la producción endógena de glucosa (EGP), por la excreción renal (E) y por la tasa de aparición de glucosa en plasma (Ra). En el subsistema de uso de glucosa entra el nivel de glucosa en plasma y tejidos de equilibrio lento (Gt) y el nivel de insulina, y sale el uso de glucosa dependiente de insulina (Uid). En el subsistema de producción endógena de glucosa entra la glucosa en plasma y tejidos de equilibrio rápido (Gp) y el nivel de insulina en plasma (I) y sale la producción endógena de glucosa (EGP). En el subsistema de excreción renal de glucosa entra la glucosa en plasma y tejidos de equilibrio rápido (Gp) y sale la excreción renal de glucosa (E). Y, por último, en el subsistema de absorción intestinal de glucosa entra la cantidad ingerida de glucosa (d) y sale la tasa de aparición de glucosa en plasma (Ra). 19 19 Modelado y control de sistemas de páncreas artificiales Figura 2-16. Diagrama de bloques del modelo de comida glucosa-insulina. En la tabla 2-1 se encuentran los valores de los parámetros empleados en la simulación del sistema descrito en los apartados anteriores [2]. Tabla 2–1. Parámetros del modelo Proceso Parámetro Valor Unidad Cinética de la glucosa VG 1,88 dl/kg k1 0,065 min-1 k2 0,079 min-1 Excreción renal ke1 0,0005 min-1 ke2 339 mg/kg Producción endógena de glucosa kp1 2,7 mg/kg/min kp2 0,0021 min-1 kp3 0,009 mg/kg/min por pmol/l ki 0,0079 min-1 Uso de glucosa Uii 1 mg/kg/min Vm0 2,5 mg/kg/min Vmx 0,047 mg/kg/min por pmol/l Km 225,59 mg/kg p2U 0,0331 min-1 Cinética de la Vl 0,05 l/kg Subs. glucosa EGP G Ra E Uid Absorción intestinal de glucosa d Excreción renal de glucosa Gp Producción de glucosa endógena Uso de glucosa Subs. insulina I s u Subs. subcutáneo de insulina Gt Uii Modelado de un páncreas artificial 20 insulina m1 0,19 min-1 m2 0,484 min-1 m4 0,194 min-1 m5 0,0304 min*kg/pmol m6 0,6471 - HEb 0,6 - Para la realización de la simulación se ha partido de la condición de que las curvas que representan el comportamiento de la tasa de aparición de glucosa en plasma (Ra) y la secreción de insulina (s) son conocidas y tienen la siguiente forma [2]: Figura 2-17. Tasa de aparición de glucosa en plasma. 21 21 Modelado y control de sistemas de páncreas artificiales Figura 2-18. Secreción de insulina. El código implementando en matlab donde se definen las variables necesarias para poder simular correctamente el código de simulink descrito en los apartados anteriores es el siguiente: %Definición de los valores basales Ib=20; Gb=90; EGPb=2; Uii=1; Uidb=1; Eb=EGPb-Uii-Uidb; %2.1 Subsistema de glucosa k1=0.065; k2=0.079; Vg=1.88; Gpb=Gb*Vg; Gp0=Gpb; %2.3 Excreción renal de glucosa ke1=0.005; ke2=339; %2.6 Subsistema de insulina m1=0.19; m5=0.0304; m6=0.6471; HEb=0.6; Vl=0.05; sb=(m6-HEb)/m5; m3b=(HEb*m1)/(1-HEb); Ipb=Ib*Vl; m4=(2/5)*(sb/Ipb)*(1-HEb); m2=((sb/Ipb)-(m4/(1-HEb)))*((1-HEb)/HEb); Ilb=(sb-m4*Ipb)/m3b; %2.4Endogenous glucose production kp2=0.021; kp3=0.009; ki=0.0079; I10=Ib; Id0=Ib; %2.5Glucose utilization Km=225.5; Vmx=0.047; p2u=0.0331; X0=0; Vm0=2.5; Gtb=Uidb*Km/(Vm0-Uidb); Gt0=Gtb; Ra=[0 0;600 9.2;1800 10;2400 7.7;3000 7.3;60*60 7;70*60 6.2;80*60 5;100*60 4.5;135*60 3.5;170*60 2.5;200*60 2.3;230*60 2;250*60 2;270*60 1.5;290*60 1.5;330*60 1.4;400*60 1]; Modelado de un páncreas artificial 22 s=[0 1.5;5*60 2;10*60 4.8;15*60 8.5;20*60 9.5;27*60 9.2;37*60 9.5;50*60 10;60*60 10;70*60 9.8;90*60 9;120*60 7; 150*60 5;180*60 4;210*60 2.5; 240*60 2.1;260*60 2;280*60 2;300*60 2;360*60 1.9;420*60 1.8]; sim('Pancreas_sin_control.mdl')%llamada al modelo en simulink A partir de este código y del de simulink de los correspondientes subsistemas se han obtenido los siguientes resultados para las variabes intermedias producción endógena de glucosa (EGP) y uso de glucosa (U), así como para las variables finales glucosa en plasma (G) e insulina en plasma (I). Figura 2-19. Producción endógena de glucosa. Figura 2-20. Uso de glucosa. 23 23 Modelado y control de sistemas de páncreas artificiales Figura 2-21. Glucosa en plasma. Figura 2-22. Insulina en plasma. Como puede apreciarse, el nivel de glucosa en sangre sufre una subida inicial, debida al ascenso de la tasa de aparición de glucosa en plasma (Ra) provocada por una ingesta de glucosa (d). Tras esta subida, comienza a decrecer hasta mantenerse estable en torno al valor inicial que coincide con el valor basal, siendo este de 90mg/dl, comorendido entre los límites adecuados para la salud: 70-110 mg/dl. Al igual que el nivel de glucosa en plasma, también sufre una subida inicial el nivel de insulina en plasma, para contrarrestar ese aumento en la concentración de glucosa. De igual modo, conforme el nivel de glucosa va decreciendo, también lo hace el nivel de insulina hasta, por último, mantenerse estable en torno al valor inicial de concentración de insulina. Modelado de un páncreas artificial 24 Por lo tanto, se comprueba que el compartimiento del sistema modelado se ajusta al comportamiento de un páncreas real. 25 3 CONTROL DE UN PÁNCREAS ARTIFICIAL in el uso del páncreas artificial, el paciente lleva a cabo un control en el que es él el que tiene que tomar mediciones de la cantidad de glucosa en sangre y actuar en consecuencia, inyectándose la cantidad de insulina necesaria para reducir el nivel de glucosa hasta uno adecuado. Sin embargo, gracias al páncreas artificial es posible tener un dispositivo en el que se implemente un sistema de control automático que se encargue de forma autónoma de tomar las medidas del nivel de glucosa y de inyectar al organismo la cantidad necesaria de insulina consecuentemente. Desde el punto de vista del control, los principales desafíos para llevar a cabo la elaboración de un páncreas artificial son los retrasos de tiempo, las restricciones, las alteraciones en la comida y las dinámicas no lineales. La mayoría de los esquemas de control propuestos se basan en leyes de control de PID (proporcional integral derivativo) o de MPC (modelo predictivo de control) [1]. Por ello, en primer lugar se ha empleado un controlador PID para estabilizar el nivel de glucosa en sangre, es decir, la variable G, que es la variable de salida del sistema. En cambio, las entradas al sistema son dos: la cantidad de glucosa ingerida (d) y el flujo de insulina inyectada (u). Puesto que la glucosa ingerida es una variable que no puede ser controlada de forma automática puesto que variará según la comida que tome el enfermo de diabetes, la variable sobre la que se actuará será el flujo de insulina inyectada. De este modo el sistema de control de bucle cerrado quedaría según se muestra en la figura 3-1. Figura 3-1. Sistema de control de bucle cerrado de la cantidad de glucosa en sangre. En la figura 3-2 se muestra el código de simulink añadido al anterior, para poder realizar el control de este mediante un controlador PID. Figura 3-2. Código añadido en simulink para el control del sistema con PID. S Sistema Referencia G Controlador + - u 33 5 CONCLUSIONES En este apartado se tratan las principales conclusiones obtenidas de este trabajo. 5.1 Simulación de un páncreas artificial Gracias a simulink es posible realizar una simulación de un páncreas artificial. Este modo de programación es muy esquemático al estar compuesto de bloques que representan las funciones a realizar, lo cual hace que sea muy sencillo programar el código de simulación. Además su relación con los códigos .m de matlab facilita el aporte de variables sin tener que modificar el código de simulink. Como se ha podido comprobar, los resultados obtenidos para este sistema modelado en simulink son bastante coherentes y aceptables, ya que su comportamiento se asemeja bastante al que tendría un páncreas real. 5.2 Control de un páncreas artificial Al igual que para la simulación del sistema que reproduce el comportamiento de un pánceas, para programar el control de este también se ha empleado simulink por su sencillez y utilidad. También en este caso se han obtenido resultados válidos mediante la implementción de un controlador PID para regular el nivel de glucosa modificando la cantidad de insulina suministrada. Sin embargo, ya que no se ha realizado el mismo control mediante un modelo predictivo, no se puede realizar una comparación entre ambos tipos de controladores, siendo esta por tanto una posible vía de continuación y ampliación de este tranajo. 5.3 Interfaz de matlab Por último, se ha comprobado que a pesar de que el lenguaje de simulink es sencillo por ser esquemático, es mucho más fácil e intuitivo trabajar con una interfaz gráfica. Esta interfaz permite obtener los datos deseados de las simulaciones sin necesidad de actuar sobre el código, sino seleccionando campos o dando el valor a determinadas variables a través de una ventana fácil de comprender. Al igual que para el control, la posible mejora para la interfaz sería añadir elementos que permitieran modificar los parámetros del modelo de control predictivo. 35 ANEXO A: CÓDIGO DE MATLAB EMPLEADO PARA LA INTERFAZ GRÁFICA Para realizar la interfaz gráfica que facilite realizar la simulación del modelo al usuario se utiliza el comando guide de matlab. Los elementos interactivos que se han añadido a la interfaz son seis checkbox, dos pushbutton, un pop-up menú y dos textos editables. En la ventana de edición, los elementos quedan distribuidos del siguiente modo en la interfaz: Figura AA-0-1. Ventana de edición de la interfaz gráfica. El código .m necesario para poder interaccionar con la interfaz se muestra a continuación: function varargout = interfaz(varargin) % INTERFAZ MATLAB code for interfaz.fig % INTERFAZ, by itself, creates a new INTERFAZ or raises the existing % singleton*. Anexo A: Código de matlab empleado para la interfaz gráfica 36 36 % % H = INTERFAZ returns the handle to a new INTERFAZ or the handle to % the existing singleton*. % % INTERFAZ('CALLBACK',hObject,eventData,handles,...) calls the local % function named CALLBACK in INTERFAZ.M with the given input arguments. % % INTERFAZ('Property','Value',...) creates a new INTERFAZ or raises the % existing singleton*. Starting from the left, property value pairs are % applied to the GUI before interfaz_OpeningFcn gets called. An % unrecognized property name or invalid value makes property application % stop. All inputs are passed to interfaz_OpeningFcn via varargin. % % *See GUI Options on GUIDE's Tools menu. Choose "GUI allows only one % instance to run (singleton)". % % See also: GUIDE, GUIDATA, GUIHANDLES % Edit the above text to modify the response to help interfaz % Last Modified by GUIDE v2.5 07-Jan-2019 12:03:34 % Begin initialization code - DO NOT EDIT 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 && ischar(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 % --- Executes just before interfaz is made visible. function interfaz_OpeningFcn(hObject, eventdata, handles, varargin) % This function has no output args, see OutputFcn. % hObject handle to figure % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % varargin command line arguments to interfaz (see VARARGIN) % Choose default command line output for interfaz handles.output = hObject; % Update handles structure guidata(hObject, handles); % UIWAIT makes interfaz wait for user response (see UIRESUME) % uiwait(handles.figure1); 37 37 Modelado y control de sistemas de páncreas artificiales % --- Outputs from this function are returned to the command line. function varargout = interfaz_OutputFcn(hObject, eventdata, handles) % varargout cell array for returning output args (see VARARGOUT); % hObject handle to figure % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Get default command line output from handles structure varargout{1} = handles.output; % --- Executes on button press in pushbutton1. % --- Executes on button press in checkbox1. function checkbox1_Callback(hObject, eventdata, handles) % hObject handle to checkbox1 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hint: get(hObject,'Value') returns toggle state of checkbox1 % --- Executes on button press in checkbox2. function checkbox2_Callback(hObject, eventdata, handles) % hObject handle to checkbox2 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hint: get(hObject,'Value') returns toggle state of checkbox2 % --- Executes on button press in checkbox3. function checkbox3_Callback(hObject, eventdata, handles) % hObject handle to checkbox3 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hint: get(hObject,'Value') returns toggle state of checkbox3 % --- Executes on button press in checkbox4. function checkbox4_Callback(hObject, eventdata, handles) % hObject handle to checkbox4 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hint: get(hObject,'Value') returns toggle state of checkbox4 % --- Executes on button press in checkbox5. function checkbox5_Callback(hObject, eventdata, handles) % hObject handle to checkbox5 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hint: get(hObject,'Value') returns toggle state of checkbox5 Anexo A: Código de matlab empleado para la interfaz gráfica 38 38 % --- Executes on button press in checkbox6. function checkbox6_Callback(hObject, eventdata, handles) % hObject handle to checkbox6 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hint: get(hObject,'Value') returns toggle state of checkbox6 % --- Executes on button press in pushbutton3. function pushbutton3_Callback(hObject, eventdata, handles) % hObject handle to pushbutton3 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) dato_pancreas_sin_control if get(handles.checkbox1,'Value')==1 figure; plot(tSim/60,G); title ('Glucosa en plasma (G)'); xlabel('t(min)'); ylabel('mg/dl'); end if get(handles.checkbox6,'Value')==1 figure; plot(tSim/60,I); title ('Insulina en plasma (I)'); xlabel('t(min)'); ylabel('pmol/l'); end if get(handles.checkbox2,'Value')==1 figure; plot(tSim/60,EGP); title ('Producción endógena de glucosa (EGP)'); xlabel('t(min)'); ylabel('mg/kg/min'); end if get(handles.checkbox5,'Value')==1 figure; plot(tSim/60,Ra); title ('Tasa de aparición de glucosa en plasma (Ra)'); xlabel('t(min)'); ylabel('mg/kg/min'); end if get(handles.checkbox3,'Value')==1 figure; plot(tSim/60,U); title ('Uso de glucosa (U)'); xlabel('t(min)'); ylabel('mg/kg/min'); end if get(handles.checkbox4,'Value')==1 figure; plot(tSim/60,s); title ('Secreción de insulina (s)'); xlabel('t(min)'); ylabel('pmol/kg/min'); 39 39 Modelado y control de sistemas de páncreas artificiales end % --- Executes on button press in pushbutton4. function pushbutton4_Callback(hObject, eventdata, handles) % hObject handle to pushbutton4 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) if get(handles.popupmenu1,'Value')==1 Kp=str2num(get(handles.edit2,'String')); assignin('base','Kp',Kp); Ki=str2num(get(handles.edit3,'String')); assignin('base','Ki',Ki); Kd=str2num(get(handles.edit4,'String')); assignin('base','Kd',Kd); datos_pancreas_PID; figure; plot(tSim/60,G); title ('Glucosa en plasma (G)'); xlabel('t(min)'); ylabel('mg/dl'); end if get(handles.popupmenu1,'Value')==2 datos_pancreas_MPC; figure; plot(tSim/60,G); title ('Glucosa en plasma (G)'); xlabel('t(min)'); ylabel('mg/dl'); end % --- Executes on selection change in popupmenu1. function popupmenu1_Callback(hObject, eventdata, handles) % hObject handle to popupmenu1 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: contents = cellstr(get(hObject,'String')) returns popupmenu1 contents as cell array % contents{get(hObject,'Value')} returns selected item from popupmenu1 % --- Executes during object creation, after setting all properties. function popupmenu1_CreateFcn(hObject, eventdata, handles) % hObject handle to popupmenu1 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called % Hint: popupmenu controls usually have a white background on Windows. % See ISPC and COMPUTER. if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end Anexo A: Código de matlab empleado para la interfaz gráfica 40 40 function edit2_Callback(hObject, eventdata, handles) % hObject handle to edit3 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: get(hObject,'String') returns contents of edit3 as text % str2double(get(hObject,'String')) returns contents of edit3 as a double % --- Executes during object creation, after setting all properties. function edit2_CreateFcn(hObject, eventdata, handles) % hObject handle to edit2 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called % Hint: edit controls usually have a white background on Windows. % See ISPC and COMPUTER. if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end function edit3_Callback(hObject, eventdata, handles) % hObject handle to edit3 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: get(hObject,'String') returns contents of edit3 as text % str2double(get(hObject,'String')) returns contents of edit3 as a double % --- Executes during object creation, after setting all properties. function edit3_CreateFcn(hObject, eventdata, handles) % hObject handle to edit3 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called % Hint: edit controls usually have a white background on Windows. % See ISPC and COMPUTER. if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end function edit4_Callback(hObject, eventdata, handles) % hObject handle to edit4 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: get(hObject,'String') returns contents of edit4 as text % str2double(get(hObject,'String')) returns contents of edit4 as a double 41 41 Modelado y control de sistemas de páncreas artificiales % --- Executes during object creation, after setting all properties. function edit4_CreateFcn(hObject, eventdata, handles) % hObject handle to edit4 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called % Hint: edit controls usually have a white background on Windows. % See ISPC and COMPUTER. if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end