ITK Engineering 使用基于模型的设计开发符合 IEC 62304 标准的牙钻电机控制器
挑战
开发可供牙钻使用的无传感器直流无刷电机矢量控制软件
解决方案
使用 Simulink、Stateflow 和 Embedded Coder 的基于模型的设计,对控制器和对象进行建模,运行闭环仿真,生成产品级代码,优化单元测试
结果
- 开发时间减半
- 在早期发现硬件问题
- 赢得合同,树立了客户信心
无传感器直流无刷(BLDC) 电机适合在牙钻中使用。它们比有刷电机运转磨损小,更可靠,更安静,更易于维护和消毒。与带传感器的 BLDC 电机相比,无传感器 BLDC 电机更便宜且比较紧凑。但是,无传感器控制需要复杂的算法,需要更多的工程工作来进行开发。
ITK Engineering 使用基于模型的设计,开发和实现符合医疗设备软件 IEC 62304 标准的生产型 BLDC 电机控制器,从而节省了时间和精力。
“使用 Simulink 的基于模型的设计,即使在没有可供测试的电机硬件之前,我们也能设计控制器并进行优化,在我们有了电机之后,便能为控制器生成产品代码。”ITK 的医疗控制系统高级工程师 Michael Schwarz 博士说,“如果通过手工编写代码,我们不可能按时完成这个项目。”
挑战
牙钻电机的转速高达 40,000 转/分钟。此类电机的矢量控制算法需要宽转速范围内转子位置的准确信息。在无传感器电机中,必须利用转子磁铁的电磁感应引起的定子电流变化推算出转子位置。ITK 工程师需要设计并优化一个转子位置估计算法及对牙钻电机复杂的级联控制,使之符合医疗设备软件的 IEC 62304 标准。
在项目开始时,没有原型电机可以使用。为保证在客户的项目最后期限前完工,ITK 必须与电机硬件同时并行开发控制器软件。ITK 工程师需要创建一个精确的电机模型,并开发一个操作此模型的控制器。在有了电机之后,他们需要在嵌入式处理器上快速实现并测试他们的控制软件。
解决方案
ITK 工程师使用基于模型的设计,对无传感器 BLDC 电机控制器进行了设计、优化、实现和测试。
工程师使用现有电机的数据表和客户提供的信息,在 Simulink® 中建立 BLDC 电机模型,包括电气和机械组件。
他们在 Simulink 中开发了控制器模型,并使用 Stateflow® 对启动、关机和错误模式以及用户可选择的操作模式建模。
该团队运行对象模型和初始控制器模型的闭环仿真,后者依赖对象模型提供的转子位置信号。
为开发转子位置估计算法,该团队使用 Symbolic Math Toolbox™ 求解代数方程式,然后优化估计算法,直至其结果能匹配来自对象模型的实际转子位置信号。
使用 Fixed-Point Designer™ 的自动定标和数据类型覆写功能,工程师们将他们的浮点控制器设计转换为定点。他们重新运行了仿真,验证定点模型。
该团队开发了 MATLAB® 脚本,用来执行个别模型组件的批量单元测试。他们使用 Simulink Coverage™ 为这些测试产生了模型覆盖范围报告。
该团队使用 Embedded Coder® 从他们的控制器模型生成了超过 5000 行的 C 代码。他们使用 Keil 编译器为 ARM® Cortex®-M3 处理器编译代码。
工程师在原型板和电机上测试控制器,对模型进行微调并多次重新生成代码,从而优化性能。
ITK 向客户交付了控制器和对象的 Simulink 模型,以及生成的生产代码。目前牙钻中的控制器和无传感器 BLDC 电机已批量生产。
结果
- 开发时间减半。“我们大约用了四个月的时间完成控制器开发。”Schwarz 说,“如果没有基于模型的设计,可能需要至少花费两倍的时间,因为我们不得不等待硬件,手工编写代码,测试更多的原型。”
- 在早期发现了硬件问题。“我们的对象模型准确反映了电机工作方式,让我们在开发早期阶段就能验证我们的控制器和硬件。”ITK 的系统工程师 Alexander Reiss 说,“我们很快就找到了第一个硬件原型上错误的根源:硬件上测量的结果与我们经过验证的 Simulink 模型产生的结果不符。”
- 赢得合同,树立了客户信心。“我们的客户希望立即开始工作。基于模型的设计帮助我们取得合同,因为它能让我们在具备硬件之前开始开发工作。”Reiss 说,“基于模型的设计还增强了客户对我们工作的信心;现在他们使用我们分享的Simulink模型和仿真做出自己的改进。”