当前位置: 首页 > news >正文

灯哥FOC笔记(3) --FOC开环程序原理

🌈个人主页:羽晨同学

💫个人格言:“成为自己未来的主人~” 

三相电压矢量

在之前,我们的推导其实都是根据电流矢量,也就是左边这幅图进行的,那么,如果把其中的每相的电流矢量都乘上其相电阻R(相电阻就是每相线圈所带的电阻),那会发生什么变化呢,没错,根据欧姆定律,它就会变成电压矢量,如右边这幅图所示。

而无刷电机的电流矢量,和电压矢量其实没有任何的区别,只是他们的幅值不同,想象一下,最上面这幅黑色的图的三个相位电流波形曲线,如果都乘上一下相电阻,那么他们会变成电压波形曲线,它和电流波形曲线的不同只是因为乘上电阻后导致的幅值不同。

FOC算法过程总结

因此,实际上,在电流矢量情况下的克拉克变换和帕克变换,和电压矢量下的克拉克变换和帕克变换,推导过程完全一致的,只是符号不同,你可以看到,上图左边是基于电流矢量推导而来的FOC算法流程,这个就是上节几节课的内容,相信大家已经熟悉,而上图右边就是基于电压矢量推导而来的FOC算法流程,可以看到,除了符号不同以外,其他的一切都相同。

那么为什么要在今天,在讲述FOC代码的时候给大家介绍这种电压矢量下的FOC算法流程,这是因为,我们的代码实际上需要用到的是电压形式的公式,因为电流值控制对于硬件电路来说,相比于电压来说要难控制的多,常见的无刷电机的芯片和电路也只能接受电压控制信号,而不能直接的控制电流,电流必须在电压的基础上通过各相的电流传感器作闭环才能进一步的进行控制。

开始撰写开环速度FOC代码

采用DengFOC作为平台来撰写我们的代码,DengFOC是基于ESP32 Arduino平台开发的,因此我们的代码也是基于Arduino ESP32平台进行撰写。

在开始写代码前,我们先来确定一下我们不同功能块的函数名称,如上图所示,帕克逆变换和克拉克变换,将它直接写在一个代码函数里面,这个代码函数命名为setPhaseVoltage.

setPhaseVoltage会计算出电机控制所需要的电压值,并通过setPWM函数传递给电机驱动器硬件,接着,硬件就会产生对应的三相电压波形进行电机的控制。

除了setPhaseVoltage函数之外,我们还需要一个velocityOpenloop函数,这个函数主要是根据用户输入的目标电机转速,target_velocity计算出在这个速度下面的电压值和角速度值,进而传递给setPhaseVoltage函数进行下一步的计算。

在明确各个函数的用途之后,我们就开始一个个来撰写我们的核心函数。

http://www.dtcms.com/a/336825.html

相关文章:

  • 轨迹优化 | 基于边界值问题(BVP)的无约束路径平滑(附ROS C++/Python仿真)
  • 第二章:C语言数据类型和变量
  • PyTorch数据处理工具箱详解|深入理解torchvision与torch.utils.data
  • Gemini CLI 系统配置小结
  • ±2cm精度破壁者:有鹿机器人如何重写清洁行业规则?
  • java自动化更新
  • Git+Jenkins 基本使用
  • Win11安装WSL、Docker Desktop
  • MySQL集群、分布式
  • 如何生成结婚登记档案目录套打文件
  • 上下文切换及线程操作相关内容
  • Zephyr 中 BT_GATT_SERVICE_DEFINE 使用详解
  • 信创产业:从技术突围到生态重构的强国之路
  • 云计算- KubeVirt 实操指南:VM 创建 、存储挂载、快照、VMI全流程 | 容器到虚拟机(镜像转换/资源调度)
  • Python之Django框架开发Web应用,并部署到服务器
  • 【LeetCode题解】LeetCode 74. 搜索二维矩阵
  • Gartner发布2025年AI与网络安全成熟度曲线:用AI增强网络安全计划的27项技术与创新
  • 作业标准化:制造企业的效率基石与品质保障
  • 2025 年世界职业院校技能大赛汽车制造与维修赛道高职组资讯整合
  • 线程生命周期:pthread_detach 和 pthread_join 区别梳理
  • 个人笔记SpringMVC
  • 宁波市第八届网络安全大赛初赛(REVERSE-Writeup)
  • 2025 年世界职业院校技能大赛汽车制造与维修赛道高职组比赛通知
  • 航空装备先进加工工艺与制造技术论坛——2025成都航空装备展
  • Python 作用域 (scope) 与闭包 (closure)
  • 【网络运维】Playbook项目实战:基于 Ansible Playbook 一键部署 LNMP 架构服务器
  • Java中抽象类与接口的区别
  • 【LeetCode 热题 100】198. 打家劫舍——(解法二)自底向上
  • dc_shell (六)
  • OpenCV---特征检测算法(ORB,Oriented FAST and Rotated BRIEF)