从零开始学习FOC

直流无刷电机的驱动,就是依靠改变电机定子线圈的电流交变频率和波形, 在定子周围形成磁场, 驱动转子永磁体转动, 进而带动电机转起来。所以,想要让电机成功驱动,研究如何改变定子线圈的电流交变频率和波形就是我们的工作重点。而这个重点就可以进一步的分为两部分进行研究:

1. 硬件电路部分

对电机的控制实际上就是对MOS管开关规律的控制 。而MOS管的开关规律是需要用到单片机程序进行控制的,因此这就引出了我们的FOC控制算法,FOC控制就是一种对电机运动模型进行抽象化和简化,进而有规律控制各个MOS管开关和通断的过程。

2. 软件控制部分
2.1克拉克变化

所谓克拉克变换,实际上就是降维解耦的过程,把难以辨明和控制的三相相位差120°电机波形降维为两维矢量。

  它的思路其实特别的简单,第一就是把三相随时间变换的,相位差为120°的电流波形抽象化为三个间隔120°的矢量。

  第二就是利用三角函数对矢量进行降维,降维到两个坐标轴,从此复杂的三相变化问题就降解为了α-β坐标轴的坐标上的数值变化问题。

克拉克逆变换三式皆得,总结如下:

2.2帕克变化
3.FOC基础算法过程总结

。

核心逻辑链条如下:

  1. 你的需求(Iq):你想让电机出多大力气(转矩)。
  2. 帕克逆变换(旋转坐标系 -> 静止坐标系):把"力气"翻译成"方向"。
  3. 克拉克逆变换(二维平面 -> 三相物理世界):把"方向"翻译成"三根线的具体电流"。
  4. 驱动器与电机(执行):MOS管根据翻译好的电流去驱动电机转动。

详细推理与关联分析

1. 起点:Iq(需求的电机力矩)
  • 是什么 :这是整个系统的输入目标。在FOC(磁场定向控制)理论中,我们假设电机是一个完美的机器,只要给它一个 Iq电流,它就会产生对应的扭矩。
  • 关联:它是所有后续计算的源头。就像你对司机说:"我要加速!"(这就是 IqIq )。
2. 第一层翻译:帕克逆变换
  • 公式:

(注:图中公式虽然写得像正变换的逆矩阵形式,但本质就是坐标旋转)

  • 作用 :从"跟着转子转"的视角,切换到"站在旁边看"的视角。
    • Id 和 Iq 是定义在**旋转坐标系(d-q轴)**上的。d轴跟着磁铁转,q轴也跟着转。这很抽象,因为MOS管是固定在电路板上的,没法跟着转子转。
    • 我们需要把这个旋转的矢量,投影到**静止坐标系( α−βα−β 轴)**上。
  • 产生的联系 :它引入了电角度 θ。没有这个角度,我们就不知道转子现在转到哪了,也就无法把旋转的力分解到静止的平面上。
  • 输出:得到了 Iα 和 Iβ。这两个值代表了在静止的平面上,我们需要多大的X轴分量和Y轴分量。
3. 第二层翻译:克拉克逆变换
  • 公式:
  • 作用 :从"数学平面"回到"物理接线"。
    • 刚才算出来的 Iα 和 Iβ只是数学上的两个垂直矢量,电机上没有叫 αα 和 ββ 的线。
    • 电机只有 A、B、C 三根线(或者是 U、V、W)。
    • 克拉克逆变换就是把平面上的矢量,拆解回这三根互成120度角的物理导线上。
  • 产生的联系 :它利用了基尔霍夫定律( ia+ib+ic=0 ),把二维的 α,β 映射回三维的 a,b,c 。
  • 输出:得到了 ia,ib,ic。这就是实实在在的电流指令。
4. 终点:驱动器与无刷电机
  • 动作 :
    • 驱动器(MOS管):接收到 ia,ib,ic的指令后,通过PWM(脉宽调制)快速开关,模拟出这三个正弦波电流。
    • 无刷电机:三相电流流入定子线圈,产生旋转磁场,拉着转子转动,最终输出你最初想要的力矩。
相关推荐
旖旎夜光1 分钟前
【LangGraph实战】LangGraph 学习笔记(三):Overwrite、输入输出模式与四大工作流模式
人工智能·笔记·学习·ai·langgraph
一条破秋裤5 分钟前
08_GPIO点灯_从J41插针查到复用与寄存器
单片机·嵌入式硬件
艾莉丝努力练剑6 分钟前
【AI大模型接入SDK】C++ ChatSDK使用手册
开发语言·网络·c++·人工智能·学习·大模型
爱倒腾的老唐8 小时前
0、元器件——电阻
学习
sunshine22 girl9 小时前
Java学习七 Java 项目实战2-注册业务
java·学习
sunshine22 girl10 小时前
Java学习七 Java 项目实战1-项目创建和主页面搭建
java·开发语言·学习
传奇开心果编程11 小时前
【SwiftUI提高练中学】第8课 网络层架构:拦截器、重试、缓存与离线优先
学习·macos·ui·ios·swiftui
一条破秋裤11 小时前
内核驱动的意义与课程学习规划
学习
Bug收容所12 小时前
学习LangChain day1
学习·langchain·llm·agent
传奇开心果编程12 小时前
【现代声明式UI学与练】第7课 组件通信——父传子、子传父、跨层级通信、状态提升与 Context
学习·flutter·react native·ui·swiftui·android jetpack