本页面使用了机器翻译。
请花 1 分钟时间完成一个翻译质量的调查。
3T 使用基于模型的设计开发机器人紧急制动系统
挑战
设计并实现一个机器人紧急制动系统,并进行最少的硬件测试
解决方案
使用 Simulink 和 HDL Coder 进行基于模型的设计来建模、验证和实现控制器
结果
- 洁净室使用时间从几周缩短到几天
- 后期需求变更迅速实施
- 复杂错误在一天内解决
选择性柔性装配机械臂 (SCARA) 组件广泛应用于半导体制造,因为它们擅长在水平面上执行运动,而大多数晶圆处理运动都发生在水平面上。与任何高速运行的高压机械一样,SCARA 机器人一旦发生故障,就会对自身组件和周围的机器造成严重损坏。为了防止这种情况发生,3T 的工程师为 SCARA 机器人设计了紧急制动系统。
项目开始时,3T 团队并不知道是否可以设计一个制动系统来及时让机器人停下来,防止碰撞,同时又不损坏机器人本身。3T 工程师通过 MATLAB® 和 Simulink® 使用基于模型的设计进行可行性研究,确定解决方案,并在 FPGA 上实现实时制动系统控制器。
3T 系统工程师 Ronald van der Meer 表示:“基于模型的设计使我们能够快速尝试不同的控制方法,以了解哪些方法可行,哪些方法不可行。为了尽量减少洁净室中的硬件测试和调试,我们通过 Simulink 中的仿真测试和改进了我们的解决方案,然后在验证后使用 HDL Coder 进行代码生成来实现它。”
挑战
3T 的客户是荷兰一家领先的半导体制造设备制造商,对制动系统有着严格的要求。为了防止潜在的灾难性碰撞,控制系统必须在不到 0.5 秒的时间内以毫米级的精度停止机器人,并且不能对机器人造成损坏。一开始,3T 及其客户都不知道是否有可能设计出满足这些要求的制动系统。
在洁净室中进行测试并使用真实机器或原型的成本很高。此外,在真实硬件上测试制动系统可能会损坏昂贵的设备。因此,3T 工程师需要在初始硬件实施之前验证制动设计。他们认识到手动编写 VHDL®,就像他们在以前的项目中那样,会要求他们在项目后期花费太多时间在洁净室中进行测试和调试。
解决方案
3T 使用基于模型的设计,结合 MATLAB、 Simulink 和 HDL Coder™ 来设计和实施 SCARA 紧急制动系统控制器。
这家半导体制造商向 3T 工程团队提供了在 Simulink 中创建的机器人机械模型。
3T 团队用另外两个模型补充了这个机械模型:一个用 Simulink 创建的基本控制器模型,以及一个用 Simscape Electrical™ 创建的电子模型。然后,他们模拟了完整的系统模型,并与客户分享模型和初步模拟结果。这次交流为客户提供了改进机械模型和建议控制器增强功能的机会。
3T 团队不断改进和完善 Simulink 中的控制器模型,模拟了数十种场景和参数敏感度,直到确认设计的可行性。
由于大多数 FPGA 使用控制算法的定点实现时运行效率最高,因此该团队开发了其控制器模型的定点表示,并使用 Fixed-Point Designer™ 来指导字长和缩放方面的决策。
然后,该团队使用 Simulink 中的模型引用将系统模型中的浮点控制器模型替换为定点版本,并使用仿真验证了定点实现。
他们使用 HDL Coder 从定点控制器模型生成算法 VHDL 代码。
他们使用 HDL Verifier™ 将来自 FPGA 供应商的第三方 IP 核集成到他们的设计中,并使用 Mentor Graphics® ModelSim® 生成了一个用于验证 VHDL 代码的测试平台。
在初步硬件测试之后,该团队改进了模型,运行了额外的模拟来测试修改,并为最终的制动系统重新生成了 VHDL 代码,客户目前正在生产中使用该系统。
3T 工程师目前正在使用基于模型的设计以及该公司新的 SoC 多接口开发板 MINT 来完成类似的项目,以进行快速原型设计和硬件在环测试。
结果
- 洁净室使用时间从几周缩短到几天。“通过基于模型的设计,我们在开发早期验证了大部分设计,然后生成了无缺陷的 VHDL,”van der Meer 说道。“结果,我们只需要在洁净室里呆几天,而不是几周。制动系统只需要进行微调,因为我们第一次测试时它就几乎准确无误。”
- 后期需求变更得到迅速实施。“在最后的测试中,出现了一项新要求,即限制最大减速度,”范德梅尔说。“在 Simulink 中,我们找到了一种使用脉冲宽度调制来满足这一要求的方法。Simulink 和 HDL Coder 使我们能够在几天内实施解决方案并防止项目走向失败。”
- 复杂的错误在一天内解决。“我们遇到了一个严重的设计逻辑错误,可能需要数周甚至数月的时间才能识别和修复,”van der Meer 说。“我们通过分析MATLAB中记录的数据并在Simulink模拟中重放这些数据来快速诊断问题。我们对模型进行了修复,重新生成了 VHDL,并在第二天准备好了更新版本。”