人工胰腺 PID 血糖控制模拟器 返回
医学工程·控制工程

人工胰腺 PID 血糖控制模拟器

为1型糖尿病人工胰腺(闭环胰岛素泵)的 PID 控制设计工具。改变目标血糖、碳水化合物比、PID 增益,实时显示食后血糖曲线、TIR、低血糖风险,就像 Medtronic 780G 和 Tandem Control-IQ 这样的临床闭环设计工具一样。

参数设置
目标血糖 BG_target
mg/dL
CGM 的设定点。标准约为 110 mg/dL
胰岛素敏感性 ISF
mg/dL/U
1单位胰岛素下降的血糖量
碳水化合物比 ICR
g/U
1单位胰岛素能处理的碳水化合物克数
基础胰岛素
U/h
每餐碳水化合物
g
单顿进食的碳水化合物量
比例增益 Kp
积分增益 Ki
1/h
微分增益 Kd
h
Kd=0 也能稳定。过大会受 CGM 噪声影响
计算结果
餐时胰岛素 (U)
全日胰岛素 (U/day)
食后峰值 BG (mg/dL)
TIR 推算 (%)
相位裕度 (deg)
低血糖风险
血糖时间序列(过去6h) — 胰岛素注入和进食标记

蓝线:血糖值,绿带:目标范围 70~180 mg/dL,橙色柱:胰岛素注入量,▼:进食事件。实时展示闭环控制的动态行为。

24h 血糖曲线 — PID 闭环 vs 开环
TIR (%) vs 增益设置(Kp 扫描)
理论与主要公式

$$u(t) = K_p\,e(t) + K_i\!\int_0^t e(\tau)\,d\tau + K_d\,\frac{de}{dt},\quad e = BG_{\text{actual}} - BG_{\text{target}}$$

u:胰岛素流量 (U/h)、e:血糖误差 (mg/dL)、Kp/Ki/Kd:PID 增益。通过比例+积分+微分三项实现闭环控制。

$$\text{Bolus} = \frac{C_{\text{meal}}}{\text{ICR}},\qquad \Delta BG_{\text{insulin}} = U \cdot \text{ISF}$$

餐时胰岛素量由进食碳水化合物 C_meal 除以碳水化合物比 ICR 得出。胰岛素敏感性 ISF [mg/dL/U] 是1单位降低的血糖量。

$$\text{TIR} = \frac{T_{70 \le BG \le 180}}{T_{\text{total}}}\times 100\,[\%]$$

TIR(血糖达标时间率)是血糖值在 70~180 mg/dL 范围内的时间比。国际共识建议成人1型糖尿病 TIR > 70% 为目标。

人工胰腺 PID 胰岛素控制 — 血糖闭环

🙋
\"人工胰腺\"就是机器代替胰腺分泌胰岛素吗?听说1型糖尿病患者在用,工作原理是什么?
🎓
对的,更准确的说法是\"闭环胰岛素泵\"。由三个部分组成:首先是 CGM(连续血糖监测仪),埋在皮下,每5分钟测一次血糖;其次是胰岛素泵,皮下装着导管,可以以0.025单位的精度注射胰岛素;最后是控制器,连接这两个装置,通过 PID 或 MPC 算法决定\"现在打多少\"。美敦力 780G、坦德姆 Control-IQ、Insulet Omnipod 5 是现在市面上销量最大的几款。
🙋
等等,PID 是控制工程课上教过的东西吧?像电机速度控制那样的。这样也能用在生体上?
🎓
抓住重点了。原理是一样的。设目标血糖(比如110 mg/dL)和实际值的差为 e(t),用 u(t) = Kp·e + Ki·∫e + Kd·de/dt 来决定胰岛素流量。但是,跟电机控制有根本区别的地方在于\"时间延迟超级大\"。皮下打的胰岛素要等1~2小时才能起效,食物升高血糖要30~60分钟,CGM 因为测的是皮下间质液,比血液晚5~15分钟。所以单纯的 PID 会产生振荡,血糖在高和低之间摇晃。这个工具的\"相位裕度\"和\"增益裕度\"就是看稳定性的指标。
🙋
明白了,Kp 提高反应会更快,但不是越大越好呗。我把 Kp 拉到2.0试了一下,相位裕度掉下来了,判定变成警告了。
🎓
典型的失败模式。相位裕度掉到30°以下,就会出现\"胰岛素堆叠\"(Insulin Stacking):过去的高血糖诱发的胰岛素经过延迟后才起效,过量地把血糖往下压。夜间的话患者睡着没发现,可能会变成重症低血糖(BG < 54 mg/dL),严重时会昏迷。所以商用机器都有\"IOB(体内胰岛素量)补正\",把过去4小时打的量减掉,还有\"低血糖预测停泵\"(Low Glucose Suspend),预测到要低血糖了就自动停。层层防守。
🙋
但进食时要自己输入\"我吃了60克碳水\"很麻烦啊。能不能自动识别,完全全自动的那种?\"完全闭环\"这个词听过。
🎓
好问题。现在的商用机叫\"混合闭环\",食物的餐时胰岛素还是要患者或食物识别算法来输入。完全闭环(食物自动认识,胰岛素自动追加)还在研究阶段。有的方案通过 CGM 血糖上升的模式\"推断出进食了,自动加餐时胰岛素\",有的用 MPC(模型预测控制)做前瞻。但食物到吸收要等30分钟,这个延迟很难克服。未来10年的热点。有时候也叫 AID(自动胰岛素给药)。
🙋
最后问一下,左边显示的 TIR(血糖达标时间率)是90%,这是不是特别好的成绩?
🎓
超棒的数字。国际共识里,成人1型糖尿病的推荐目标是 TIR > 70%。CGM 普及前,每天注射多次(MDI)的患者平均 TIR 才50%左右。现在的混合闭环像780G这样的,能让大部分用户达到75~80%。TIR 每上升10%,HbA1c 大约下降0.5%,这样长期来看,视网膜病、肾脏病这样的并发症风险大幅降低。不过 TIR 同样重要的是要避免\"低血糖时间(TBR)< 4%\",特别是\"重症低血糖 < 1%\"。高血糖是数十年后的问题,低血糖是今晚的生命危险。

常见问题

人工胰腺(Artificial Pancreas, AP)是一种闭环控制系统,用连续血糖监测仪(CGM)反馈测量的血糖值,自动决定胰岛素泵注入的剂量。PID 控制对目标血糖的差值 e(t),通过比例(Kp·e)、积分(Ki·∫e dt)、微分(Kd·de/dt)三项之和来决定胰岛素流量 u(t)。美敦力 770G/780G、坦德姆 Control-IQ、Insulet Omnipod 5 等商用混合闭环胰岛素泵都基于这种思想。
碳水化合物比 ICR 是\"1单位胰岛素能处理的碳水化合物克数\"。如食物含60克碳水、ICR为12克/单位,则餐时胰岛素为 60/12 = 5.0单位。ICR 因人而异,起床后较小(胰岛素抵抗力高),夜间较大。闭环控制中,食物预测餐时胰岛素仍需患者或食物识别算法输入,完全自动化(全闭环)仍在研究阶段。
TIR 是\"血糖值在 70~180 mg/dL 时间的比例\",美国糖尿病协会/国际共识建议1型糖尿病成人 TIR > 70% 为目标。这大约对应 HbA1c < 7%,能大幅降低视网膜病、肾脏病等微血管并发症风险。同时将低血糖时间(BG < 70 mg/dL)控制在 4% 以下,重症低血糖时间(BG < 54 mg/dL)控制在 1% 以下更为重要。
皮下胰岛素吸收需要 1~2 小时延迟,所以环路包含大的时间延迟(死时间)。过度提高 Kp 或 Ki 会导致对过去高血糖的过度反应,延迟的胰岛素过量降低血糖到目标值以下,引发低血糖(BG < 70 mg/dL)。本模拟器通过相位裕度(>30°)和增益裕度(>4 dB)可视化这种危险。实际应用中通过\"胰岛素在体量(IOB)补正\"\"预测模型 MPC\" 等方法处理时间延迟。

实际应用

商用混合闭环胰岛素泵(HCL):美敦力 MiniMed 780G、坦德姆 Control-IQ、Insulet Omnipod 5 等是典型例子。与 CGM(Dexcom G6/G7、Guardian 4 等)无线联动,每5分钟做一次微调,采用模型预测控制+PID 补正的混合方案。在美英欧,1型糖尿病患者的 TIR 从平均 50% 上升到 75%,HbA1c 改善 0.5~1.0%。日本 780G 于2023年获批,逐步扩大保险覆盖。

夜间基础胰岛素自动调整(PLGS / 预测低血糖暂停):为了防止睡眠期间的重症低血糖,当预测30分钟后血糖会低于70 mg/dL 时,自动停止泵注。这是微分控制的一种形式,利用 CGM 的斜率(de/dt)。能将睡眠期低血糖时间减少50~80%,大幅降低夜间痉挛、昏迷的风险。美敦力 670G 首次商用化,现在几乎所有 HCL 都标配。

运动和压力下的动态控制:运动时胰岛素敏感性升高,固定基础率会导致低血糖。Control-IQ 的运动模式把目标血糖调高到140~160 mg/dL,Omnipod 5 从 CGM 历史推算 ISF,动态重新调整。完全自动化需要整合运动传感、心率、皮质醇推算,苹果手表/Fitbit 的联动方案正在研发中。

新生儿、围产期、ICU 血糖管理:不仅限于糖尿病,败血症、大手术后、心脏搭桥术后的高血糖管理也应用了闭环胰岛素控制。CamAPS HX、UVA/Padova 模拟器这样的研究平台被用于 ICU 严格血糖管理(NICE-SUGAR 试验后,目标是140~180 mg/dL)。新生儿的血糖变化与成人不同,需要专门的模型参数调校。

常见误解与注意点

最大的陷阱是把 \"CGM 值 = 血糖值\" 当成理所当然。CGM 测的是皮下间质液的葡萄糖,比血液晚5~15分钟。空腹时差异小,但食后快速上升或运动时快速下降的局面,CGM 可能比指尖血糖计晚20~40 mg/dL。所以闭环系统往往用 Kalman 滤波或 IIR 平滑来去除 CGM 噪声,对斜率(de/dt)做延迟补正后才送入 PID。\"CGM 和指尖血糖计读数不一样!\"基本都是这个延迟的原因,不是 CGM 坏了。

其次是\"加大 PID 增益就能让血糖更平稳\"的误解。皮下胰岛素吸收有60~120分钟的固定延迟,提高 Kp 或 Ki 并不能加快环路速度,超出这个极限。反而相位裕度掉到30°以下,会出现极限环(持续振荡),血糖 200 → 60 → 200 → 60 这样来回摆,TIR 反而变坏。Skyler 等人在 Diabetes 杂志 2017 年的论文显示,单独 PID 安全范围是 Ki 0.05~0.15 /h、Kp 0.3~0.7,必须搭配 IOB 限制。本工具的\"增益裕度 > 4 dB\"对应这个安全区间。

最后,\"TIR 高就是血糖管理好\" 不成立。比如 TIR 85% 但构成是\"低血糖时间 8%、TIR 85%、高于范围 7%\",这样低血糖风险很高,长期可能伤认知功能。相反 TIR 72% 但\"低血糖 1%、TIR 72%、高于范围 27%\",临床上安全得多。国际共识(Battelino 等,Diabetes Care 2019)明确说 TIR > 70% 同时 TBR(低于目标时间)< 4%、重症 TBR < 1% 要并列达成。胰岛素治疗的原则是\"在不产生低血糖的前提下尽量降血糖\",PID 增益设计也得优先守住这一点。

使用指南

  1. 设置目标血糖值(70~180 mg/dL)和胰岛素敏感性(1型患者通常 ISF = 300~1800 mg/dL/U)
  2. 输入碳水化合物比(ICR = 6~20 g/U)和基础率(0.3~1.2 U/h),调整 PID 控制增益(Kp = 0.02~0.08、Ki = 0.001~0.01、Kd = 5~20)
  3. 模拟器实时计算进食负荷(假设75克碳水)后的血糖演变、TIR(血糖在70~180 mg/dL 的时间率)、相位裕度(系统稳定性评估)、低血糖风险

具体计算示例

1型糖尿病患者(体重70 kg)的设置例:目标血糖120 mg/dL、ISF 500 mg/dL/U、ICR 10 g/U、基础率0.8 U/h、PID(Kp=0.05、Ki=0.003、Kd=8)情况下,进食75克碳水的餐时胰岛素计算为7.5U。模拟结果:食后峰值血糖165 mg/dL、TIR推算约85%、相位裕度35°(稳定范围)、低血糖风险2%。全日所需胰岛素约19.2 U/day。

实务注意事项

  1. Kp 值过高(>0.12)会导致血糖超调,峰值可能超过190 mg/dL
  2. Ki 值太小(<0.0005)会留下稳态偏差,夜间血糖可能偏离目标
  3. Kd 值设置过大对噪声敏感,实机如有传感器误差容易误动作
  4. 相位裕度低于30°时,参数调整不稳定,不适合临床运用,推荐45~60°的设置