FitzHugh-Nagumo 神经元的最小能量刺激¶
背景¶
FitzHugh-Nagumo 模型用快速膜电压变量和慢速恢复变量描述可兴奋细胞动力学。它既保留了神经兴奋中类似阈值的非线性跃迁,又足够简洁,适合作为最优控制教程。
本例寻找单向有界电流,以最小归一化刺激能量,在固定截止时刻把静息神经元模型带到指定电压。只有当独立前向积分在电压仍向上变化时到达该值,结果才会通过验收。这里的目标是一次上升沿穿越,并非终端平衡态,也不能证明截止时刻之后会形成完整动作电位。
问题定义¶
令 \(v(t)\) 为膜电压,\(w(t)\) 为恢复变量,\(I(t)\) 为注入电流。无量纲动力学为
其中
初始条件为脚本采用的无外部刺激静息平衡点:
在固定无量纲时域 \(T=12\) 的末端,只约束电压:
目标是最小化归一化电流平方:
路径边界把轨迹限制在模型范围内:
优化问题本身没有加入终端导数约束。求解之后,独立积分轨迹必须满足 \(\dot v(T)>0\);否则脚本会把它判为错误方向的穿越并拒绝结果。
变量与单位¶
| 符号 | 含义 | 单位或数值 |
|---|---|---|
| \(t\) | 模型时间 | 无量纲 |
| \(v\) | 膜电压状态 | 无量纲 |
| \(w\) | 慢恢复状态 | 无量纲 |
| \(I\) | 注入刺激电流 | 无量纲 |
| \(a\) | 恢复偏置 | \(0.7\) |
| \(b\) | 恢复增益 | \(0.8\) |
| \(\varepsilon\) | 快慢时间尺度比 | \(0.08\) |
| \(T\) | 固定刺激时域 | \(12\) |
| \(J\) | 电流除以 \(I_{\max}\) 后的平方积分 | 无量纲 |
所有量均为无量纲量。若没有额外的物理尺度和电极模型,图中的电流以及报告的电荷、能量都不能换算成安培、库仑或焦耳。
建模选择¶
非负电流边界使其成为理想化的单相刺激。它适合研究非线性兴奋过程,但不满足电荷平衡。恢复状态在截止时刻自由,因为任务是在上升沿到达电压,而不是收敛到指定平衡点。
脚本使用 \(80\times4\) Lobatto 网格。平滑去极化状态和中等电流仅用于初始化 NLP;它们只是初始猜测,不能替代动力学约束。
独立验证¶
配点求解后,脚本在 4,001 个时刻重构电流。独立的高精度 DOP853 积分从 \((v_r,w_r)\) 出发并使用该采样电流。脚本比较前向积分状态与配点状态,检查前向终端误差,并在独立传播轨迹上计算
所有状态与电流边界也会在密集网格上检查。
验证结果¶
| 指标 | 验证值 |
|---|---|
| 归一化目标 \(J\) | \(0.03586644\) |
| 注入电荷 \(\int I\,\mathrm dt\) | \(0.93127477\) |
| 刺激能量 \(\int I^2\,\mathrm dt\) | \(0.14346575\) |
| 峰值电流 | \(0.21801146\) |
| 前向积分终端电压误差 | \(2.272\times10^{-5}\) |
| 前向积分终端电压变化率 \(\dot v(T)\) | \(0.721925\) |
| 最大前向积分误差 | \(2.289\times10^{-5}\) |
| 最大密集路径越界量 | \(0\) |
终端电压变化率为正,验证了上升沿到达。并且在报告精度下,\(\int I^2\,\mathrm dt=I_{\max}^2J=4J\),这也直接检验了归一化目标的一致性。

适用范围与安全限制¶
这是教学模型,不是临床波形或医疗建议。模型未包含电极和组织动力学、电荷平衡相位、电极极化、空间激活、物理单位下的安全限值、参数差异、噪声以及截止时刻之后的轨迹。可实际部署的刺激设计需要经过校准的生物物理模型、满足电荷平衡的硬件约束和专业安全审查。
运行示例¶
无界面运行并保存图片:
system, phase = build_problem()
guess = initial_guess(phase)
solution = solve_problem(system, guess)
plot_solution(solution)
源代码¶
完整可运行示例见:
examples/neural_stimulation.py。