使用基于模型的系统工程设计胰岛素输液泵
此示例向您展示如何使用基于模型的系统工程 (MBSE) 工作流来研究最佳胰岛素输液泵的设计。胰岛素泵是一种用于糖尿病患者的医疗设备,它通过持续输送胰岛素并根据进食情况调整胰岛素的输送量,模拟人体胰腺的功能。
胰岛素泵可穿戴设备的目的是通过根据需要并根据食物摄入量注入胰岛素,将佩戴者的血糖水平维持在健康目标范围内。此示例显示了一个拟议的胰岛素输液泵系统,该系统具有两个传感器和三个泵变体,代表了不同的设计选择。
首先确定系统需求,然后使用代码生成和验证测试创建详细的设计模型。最后,对满足不断变化的需求的系统架构模型进行仿真。
胰岛素泵系统架构模型
该图显示了胰岛素泵系统的 System Composer™ 架构模型。此示例使用 Stateflow® 模块。如果您没有 Stateflow 许可证,则可以打开和仿真模型,但只能进行基本更改,例如修改模块参数。
openProject("scExampleInsulinPumpSystem"); systemcomposer.openModel("InsulinInfusionPumpSystem.slx");
BGSensor 组件测量血糖水平。Controller 组件决定胰岛素剂量。Pump 组件通过 InfusionSet 为人体提供胰岛素。Patient 接受处理。BGMeter 对 BGSensor 进行校准。最后,HID(人机接口设备)组件可能是手机上的一个移动 App,供患者与系统进行通信。HID 为 PatientDataServer 组件提供信息,后者将分析结果发送给 Clinician、Regulator 和 Reimburser 组件。

系统需求和链接
使用 Requirements Toolbox™ 分析系统需求,进一步将其分解为子系统需求,并将衍生需求与满足这些需求的架构组件链接起来。需要 Requirements Toolbox 许可证才能在 System Composer 中链接、追踪和管理需求。
在 Requirements Toolbox 的“需求透视”中同时管理需求和架构。要打开 需求管理器 (Requirements Toolbox),请选择 App,然后选择需求管理器。在“需求透视”中,要将需求与组件链接,请从“需求管理器”中点击并拖动需求到组合图中的组件。
要编辑需求,请选择需求 > 需求编辑器或输入以下命令打开 需求编辑器 (Requirements Toolbox)。
slreq.load("Infusion_Pump_System"); slreq.load("Insulin_Pump_Controller_Software_Specification");
slreq.editor

此时的需求分解与分析反映了以下问题:
交付准确性
预防过度输液导致血糖水平危险性降低的措施
故障分析,以防止出现负面结果,例如电池耗尽或设备用完药物
在架构模型上,选择需求图标以查看与组件相关的需求。例如,以下是链接到组件 Pump 的需求。

相反,选择一个需求,即可查看实现该需求的组件。例如,BGSensor 组件实现了 Sense blood glucose 需求。

最佳设计方案的成果分析
结果分析包括一项权衡研究,其目标是根据对不同组件属性进行加权计算,最大限度地提高设计选项的商业价值。许多属性是直接输入的,例如开发组件的非经常性工程 (NRE) 成本。但是,合规性评分是一个衍生属性,基于每种类型的组件的不同数据。这些属性对系统最终用户的负担进行了建模。合规评分包含以下考量因素:
能源消耗
大小和重量
准确性
平均故障间隔时间 (MTBF)
运行过程中产生的噪音水平
易用性
导航至建模 > 配置文件 > 配置文件编辑器,或输入以下命令。
systemcomposer.profile.editor
在 配置文件编辑器 中定义的 System Composer 配置文件由具有已定义属性的构造型组成。您可以对模型中的组件应用构造型,为每个组件分配特定的属性值。

泵和传感器权衡研究包括以下步骤:
收集所有变体组合。
依次激活变体,以表示所有组合。
对模型进行迭代以计算合规性,并使用存储和计算的参数计算结果。
收集结果并使用相同的单位进行加权。
提供优化选项。
名为 BGSensor 的 Variant Component 模块包含两个不同的传感器变体,代表来自不同制造商的示例传感器。

在此示例中,名为 Variant Component 的模块 Pump 包含三个不同的泵,分别名为 PeristalticPump、SyringePump 和 PatchPump。

要以编程方式在不同的变体选择项组合之间循环,计算合规性并监控结果以确定最佳设计选择,请运行 OutcomeAnalysis.m。有关变体分析的更多信息,请参阅分析函数构造。
run("OutcomeAnalysis.m")
标准化结果评分在 SensorA + SyringePump 组合中达到最高值。此设计方案是胰岛素泵的最佳选择。
控制器实现模型
在 Simulink® 中实现胰岛素输注泵控制器。要访问控制器模型,请导航到 InsulinInfusionPumpSystem 架构模型,然后双击 Controller 组件。此实现中的输入端口包括 User input(包含胰岛素泵读取的用户度量)和 Hardware status(包含胰岛素泵的相关信息)。名为 ModeControl 的模块决定胰岛素泵应以何种模式运行。

名为 ModeControl 的模块包含一个 Stateflow 图,其中详细说明了如何选择模式。
三种模式包括:
Alarm模式,系统将被暂停、修复并重新启动,直至问题解决。Bolus快速给药模式,配合餐后迅速输送胰岛素。Basal给药方式,通过延长给药时间来持续释放胰岛素,从而使血糖水平在全天保持稳定。

选择模式后,该组件的行为将决定输出端口的胰岛素剂量。

使用测试管理器进行验证与确认
您可以使用基于模型的设计来验证架构设计和系统需求。抽象架构模型和详细的 Simulink 设计模型通过可追溯的需求链接相互连接。本部分需要 Simulink® Test™ 许可证。
Simulink 中的 Controller 实现模型展示了对 Alarm handling 需求的需求可追溯性。

使用以下命令加载并查看 Simulink 测试管理器 (Simulink Test)。
sltest.testmanager.load("Controller_Tests.mldatx");sltest.testmanager.view
Alarm_Detection 功能测试验证了 Alarm handling 需求。

点击框架框右侧的
图标,打开测试框架。在此示例中,名为 Controller 的模块被隔离出来,以便使用测试框架进行单元测试。有关创建测试框架的更多信息,请参阅创建或导入测试框架并选择属性 (Simulink Test)。

双击 Test Sequence 模块以查看测试序列中的步骤。这些步骤定义了一个验证报警系统功能的场景。

要运行此测试,请返回 Simulink 测试管理器 (Simulink Test)。
sltest.testmanager.view
在测试浏览器中右键点击测试 Alarm_Detection,然后选择运行。在“结果与工件”部分,查看您的测试结果。测试通过表明系统需求 Alarm handling 已通过 Test Assessment 模块中定义的条件验证:
当电池电量过低、导管堵塞(导管阻塞)或药物(胰岛素)不足时,报警是否会停止胰岛素输送?
问题解决后系统是否会自动重启
另请参阅
App
- 配置文件编辑器 | Simulink 测试管理器 (Simulink Test) | 需求编辑器 (Requirements Toolbox)