主要内容

本页采用了机器翻译。点击此处可查看英文原文。

使用基于模型的系统工程设计胰岛素输液泵

此示例向您展示如何使用基于模型的系统工程 (MBSE) 工作流来研究最佳胰岛素输液泵的设计。胰岛素泵是一种用于糖尿病患者的医疗设备,它通过持续输送胰岛素并根据进食情况调整胰岛素的输送量,模拟人体胰腺的功能。

胰岛素泵可穿戴设备的目的是通过根据需要并根据食物摄入量注入胰岛素,将佩戴者的血糖水平维持在健康目标范围内。此示例显示了一个拟议的胰岛素输液泵系统,该系统具有两个传感器和三个泵变体,代表了不同的设计选择。

首先确定系统需求,然后使用代码生成和验证测试创建详细的设计模型。最后,对满足不断变化的需求的系统架构模型进行仿真。

胰岛素泵系统架构模型

该图显示了胰岛素泵系统的 System Composer™ 架构模型。此示例使用 Stateflow® 模块。如果您没有 Stateflow 许可证,则可以打开和仿真模型,但只能进行基本更改,例如修改模块参数。

openProject("scExampleInsulinPumpSystem");
systemcomposer.openModel("InsulinInfusionPumpSystem.slx");

BGSensor 组件测量血糖水平。Controller 组件决定胰岛素剂量。Pump 组件通过 InfusionSet 为人体提供胰岛素。Patient 接受处理。BGMeterBGSensor 进行校准。最后,HID(人机接口设备)组件可能是手机上的一个移动 App,供患者与系统进行通信。HIDPatientDataServer 组件提供信息,后者将分析结果发送给 ClinicianRegulatorReimburser 组件。

Insulin pump system architecture model.

系统需求和链接

使用 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

List of requirements for the insulin pump system including the controller software specification.

此时的需求分解与分析反映了以下问题:

  • 交付准确性

  • 预防过度输液导致血糖水平危险性降低的措施

  • 故障分析,以防止出现负面结果,例如电池耗尽或设备用完药物

在架构模型上,选择需求图标以查看与组件相关的需求。例如,以下是链接到组件 Pump 的需求。

In-model requirements for the variant component for the Pump, including basal rate, bolus delivery, pump, pump failure, pump comm fault, infusion set occlusion, and deliver insulin.

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

Requirements perspective for the BGsensor component.

最佳设计方案的成果分析

结果分析包括一项权衡研究,其目标是根据对不同组件属性进行加权计算,最大限度地提高设计选项的商业价值。许多属性是直接输入的,例如开发组件的非经常性工程 (NRE) 成本。但是,合规性评分是一个衍生属性,基于每种类型的组件的不同数据。这些属性对系统最终用户的负担进行了建模。合规评分包含以下考量因素:

  • 能源消耗

  • 大小和重量

  • 准确性

  • 平均故障间隔时间 (MTBF)

  • 运行过程中产生的噪音水平

  • 易用性

导航至建模 > 配置文件 > 配置文件编辑器,或输入以下命令。

systemcomposer.profile.editor

配置文件编辑器 中定义的 System Composer 配置文件由具有已定义属性的构造型组成。您可以对模型中的组件应用构造型,为每个组件分配特定的属性值。

Insulin pump system profile in the Profile Editor with the properties of the Durable Component stereotype visible, including unit cost, NRE, size, energy consumption, compliance score, vendor, MTBF, precision, and tolerance.

泵和传感器权衡研究包括以下步骤:

  1. 收集所有变体组合。

  2. 依次激活变体,以表示所有组合。

  3. 对模型进行迭代以计算合规性,并使用存储和计算的参数计算结果。

  4. 收集结果并使用相同的单位进行加权。

  5. 提供优化选项。

名为 BGSensorVariant Component 模块包含两个不同的传感器变体,代表来自不同制造商的示例传感器。

Two variant choices for the sensor component: SensorA and SensorB.

在此示例中,名为 Variant Component 的模块 Pump 包含三个不同的泵,分别名为 PeristalticPumpSyringePumpPatchPump

Three variant choices for the pump component.

要以编程方式在不同的变体选择项组合之间循环,计算合规性并监控结果以确定最佳设计选择,请运行 OutcomeAnalysis.m。有关变体分析的更多信息,请参阅分析函数构造

run("OutcomeAnalysis.m")

Figure contains an axes object. The axes object with title Net outcome, ylabel Normalized units contains an object of type bar.

标准化结果评分在 SensorA + SyringePump 组合中达到最高值。此设计方案是胰岛素泵的最佳选择。

控制器实现模型

在 Simulink® 中实现胰岛素输注泵控制器。要访问控制器模型,请导航到 InsulinInfusionPumpSystem 架构模型,然后双击 Controller 组件。此实现中的输入端口包括 User input(包含胰岛素泵读取的用户度量)和 Hardware status(包含胰岛素泵的相关信息)。名为 ModeControl 的模块决定胰岛素泵应以何种模式运行。

Controller implementation model showing the inputs and mode control block.

名为 ModeControl 的模块包含一个 Stateflow 图,其中详细说明了如何选择模式。

三种模式包括:

  • Alarm 模式,系统将被暂停、修复并重新启动,直至问题解决。

  • Bolus 快速给药模式,配合餐后迅速输送胰岛素。

  • Basal 给药方式,通过延长给药时间来持续释放胰岛素,从而使血糖水平在全天保持稳定。

The Stateflow state chart in the model control block.

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

Controller implementation model with alarm, bolus delivery, and basal delivery blocks.

使用测试管理器进行验证与确认

您可以使用基于模型的设计来验证架构设计和系统需求。抽象架构模型和详细的 Simulink 设计模型通过可追溯的需求链接相互连接。本部分需要 Simulink® Test™ 许可证。

Simulink 中的 Controller 实现模型展示了对 Alarm handling 需求的需求可追溯性。

Alarm handling requirement on the controller implementation model.

使用以下命令加载并查看 Simulink 测试管理器 (Simulink Test)

sltest.testmanager.load("Controller_Tests.mldatx");
sltest.testmanager.view

Alarm_Detection 功能测试验证了 Alarm handling 需求。

The Test Manager app shows the alarm handling test within the set of test cases for the controller.

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

The controller test harness around which tests are defined.

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

Test logic in the Test Sequence block.

要运行此测试,请返回 Simulink 测试管理器 (Simulink Test)

sltest.testmanager.view

在测试浏览器中右键点击测试 Alarm_Detection,然后选择运行。在“结果与工件”部分,查看您的测试结果。测试通过表明系统需求 Alarm handling 已通过 Test Assessment 模块中定义的条件验证:

  • 当电池电量过低、导管堵塞(导管阻塞)或药物(胰岛素)不足时,报警是否会停止胰岛素输送?

  • 问题解决后系统是否会自动重启

另请参阅

App

主题