SimpleFOC学习笔记汇总(2025.02.09更新)

在机器人领域,掌握无刷电机的控制相当于掌握机器人设计的“半壁江山”。这个年代,对个人来说学习一种新技术最好是通过开源项目了。通过开源项目快速将项目搭建起来,接着结合实践与理论才能真正掌握技术。

入门FOC,我认为最合适是simpleFOC,原因如下:

  1. 简单易用:SimpleFOC因其用户友好的界面和文档而受到欢迎。它的设计使得即便是新手也能够快速上手,进行无刷电机的控制和调试。相比之下,其他FOC项目如ODrive或VESC可能需要更多的基础知识和调试时间。
  2. 多硬件支持:SimpleFOC支持多种硬件平台,如Arduino、ESP32等,这意味着用户可以根据手头的硬件资源选择适合的开发环境。这样的灵活性让它在不同的应用场景中都能找到用武之地。
  3. 丰富的社区和文档:SimpleFOC有大量的教程和社区支持,提供了从入门到高级的学习资源,包括中文文档,使得学习曲线相对平缓。这一点相较于其他项目,SimpleFOC在社区支持上显得更为突出。
  4. 成本效益高:SimpleFOC项目提供了低成本的解决方案,适合教育和小型项目应用。它的开源特性让用户可以自由修改和优化代码,降低了开发成本。
  5. 模块化和扩展性:SimpleFOC的代码架构设计很模块化,允许用户根据需求进行扩展和修改,这在定制化应用中非常有价值。

未来的一段很长的时间里,将分享simpleFOC学习的笔记。通过分享笔记的方式,进一步提高自己对FOC的理解。大家互相学习,共同进步吧。

FOC理论知识:

三相无刷电机控制|FOC理论01 - 坐标变换的简单梳理
三相无刷电机控制|FOC理论02 - 克拉克变换
三相无刷电机控制|FOC理论03 - 帕克变换
三相无刷电机控制|FOC理论04 - 克拉克变换 + 帕克变换的最终目标

Simulink FOC仿真

STM32F103 + CubeMX + SimpleFOC(v2.3.4):

STM32F103属于Cortex-M3架构,缺乏硬件浮点单元,外设资源受限,但在FOC项目也有其重要的意义。 选择基于STM32F103 MCU来实现FOC(磁场定向控制)算法。虽然STM32F103在成本、功耗和生态系统成熟度上具有明显优势,但其固有的硬件限制也给FOC项目的开发带来了诸多挑战。基于Cortex-M3内核,不支持硬件浮点运算,导致FOC算法中涉及的Clarke变换、Park变换以及PID控制等浮点计算只能通过软件模拟,这不仅大大增加了计算负担,也容易引起控制响应延迟和精度不足的问题。其次,其ADC采样精度和采样速度有限,在对电流、电压等信号进行实时采样时,可能无法满足高精度控制的要求。与此同时,有限的内存和外设资源也使得系统在处理复杂闭环控制时捉襟见肘。相比之下,STM32F407等高性能MCU配备了硬件浮点单元,并拥有更强大的运算能力和更丰富的外设资源,能够更高效、精准地执行FOC算法,显著提升系统性能。然而,由于项目在成本、功耗和产品定位等方面有着严格要求,我们选择了STM32F103作为硬件平台。本项目的目标正是在这种资源受限的条件下,通过算法优化和软件架构设计,克服硬件不足,实现精确且稳定的FOC控制。

优化技巧:

  1. 使用LL库代替HAL库,缩短代码执行时间(CubeMX生成代码框架时可以支持HAL库+LL库共同开发)。
  2. 进一步优化、精简SimpleFOC源码。
  3. 正在思考。
    在这里插入图片描述
    STM32F103-FOC控制板:图锐科技
    三相无刷电机2208: 灯哥开源
    SimpleFOC STM32教程01|基于STM32F103+HAL库,移植核心的common代码
    SimpleFOC STM32教程02|基于STM32F103+HAL库,通过AS5600编码器读取电机的角度
    SimpleFOC STM32教程03|基于STM32F103+HAL库,通过AS5600编码器计算电机的转速
    SimpleFOC STM32教程04|基于STM32F103+HAL库,完成三相半桥电路的驱动程序
    SimpleFOC STM32教程05|基于STM32F103+HAL库,实现速度开环控制
    SimpleFOC STM32教程06|基于STM32F103+HAL库,编码器(位置传感器)的校准
    SimpleFOC STM32教程07|基于STM32F103+HAL库,位置闭环控制(位置、速度闭环、没有电流环)
    SimpleFOC STM32教程08|基于STM32F103+HAL库,速度闭环控制(没电流环)
    SimpleFOC STM32教程09|基于STM32F103+HAL库,ADC采样相电流
    SimpleFOC STM32教程10|基于STM32F103+HAL库,速度闭环控制(有电流环)
    SimpleFOC STM32教程11|基于STM32F103+HAL库,位置闭环控制(速度、电流闭环)
    SimpleFOC STM32教程12|基于STM32F103+HAL库,实战项目 - 棘轮手感的实现
    SimpleFOC STM32教程13|基于STM32F103+HAL库,实战项目 - 挡块手感的实现

STM32F407 + CubeMX + SimpleFOC:

ESP32S3 + ESPIDF + SimpleFOC:

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Wallace Zhang

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值