
开源协议
:GPL 3.0
描述
一、项目简介
本次作品使用立创天空星STM32F407VXT6开发板制作一款无刷电机扩展板来进行无刷电机的学习控制板,支持12-24V直流输入(实测USB-5V输入时也可进行简单电机控制学习);板载两路三相独立半桥电机驱动,六路电流检测通道可更直观了解克拉克逆变换的三相电流变化。板载两路I2C编码器接口、两路SPI编码器接口(支持3V3与5V电源切换,可适配更多型号的编码器)与一路霍尔传感器接口;增加NTC温度测量、WS2812彩灯、0.96TFT彩屏、三脚拨轮开关、蜂鸣器、CAN接口与串口接口,方便进行人机交互。使用嘉立创彩色丝印工艺对板载接口进行彩色标识符提示,在此感谢嘉立创为广大电子爱好者提供更好的开源平台。
因时间原因,对FOC的学习一直断断续续的,仅初步接触没有系统学完,部分理论属于个人思考仅供参考还需请大佬指点,后续有时间继续补充完善项目例程与知识分享。



二、项目学习
1.学习资料
欧拉电子【STM32G4 FOC开发实战—FOC开发套件简介】视频
【CubeMX-HAL库】STM32F407—无刷电机学习笔记
2.硬件部分
①主控部分
引出两路SPI、两路I2C、一路霍尔接口、六路ADC、六路高级定时器PWM、一路CAN接口、一路串口、SPI屏幕接口、彩灯接口、拨码按键、蜂鸣器、NTC电阻配合开发板自带FLASH、SD卡、USB接口用户按键供学习使用。

②电源部分
供电使用5mm间距螺钉式接线端子,使用德州仪器TPS54331DDAR支持7-28V供电降压5V最大可支持3A电流输出,3.3V使用常见的AMS1117,主打一个性价比降压。2.49¥/PCS、0.26¥/PCS
、
③驱动部分
栅极驱动采用屹晶微的EG2133一款高性价比三相独立半桥驱动芯片,EG2133高端的工作电压可达300V,低端VCC的电源电压范围宽4.5V~20V,该芯片具有闭锁功能防止输出功率管同时导通,输入通道HIN和LIN 内建了一个下拉和上拉电阻,在输入悬空时使上、下功率MOS管处于关闭状态,输出电流能力IO +1.2A/-1.4A,BLDC学习时也极大提高了电路驱动的安全性。3.28¥/PCS
MOS管则采用无锡新洁能的NCE3010SNMOS场效应管,漏源电压30V,连续漏极电流10A。0.874¥/PCS

④电流采集部分
为了更好的对无刷电机进行学习,本项目设计三路电流ADC采集,使用德州仪器的INA240A2PWR一款单路50V/V增益400KHz的电流检测放大器,更加方便的验证无刷电机旋转时的三相电流大小。12.16¥/PCS

⑤端子部分
为了更集成化进行接线,外部接口均采用2.54端子进行接线,设计2路I2C接口、2路SPI接口、1路霍尔接口,并增加拨动开关支持3.3V/5V便于修改编码器供电。并预留NTC温度采集电阻。电机接线部分采用螺钉式端子压线,并预留2.54孔径便于示波器采集信号。

⑥其他外设部分
增加CAN通信、串口通信部份,设计WS2812彩灯、0.96TFT彩屏、三角拨轮开关与蜂鸣器电路。

3.知识分享
FOC主要通过输入电机力矩Iq,经过帕克逆变换求得Iα,Iβ,然后通过克拉克逆变换求得iA,iB,iC输出到电机中。
Ⅰ、克拉克变换
三相sin状波形降级为二维平面内双变量Iα,Iβ形式。
①克拉克变换基本形式

②克拉克变换等幅值形式
论文或资料中的克拉克变换往往都会乘上一个系数:如(等幅值变换系数),或(等功率变换系数)。

③克拉克变换等幅值证明
证明:当A输入-1A的电流时,根据基尔霍夫电流定律,iB、iC电流为A,通过克拉克变换计算得Iα为。

所以为了让式子等辐值,即使得A相-1A时,反应在α轴上的电流也是-1A,我们就得乘上系数,使得iA=Iα。所以得到了克拉克变换的等幅值形式。
④克拉克变换等幅值推算
在推算式子中我们消去了变量iC,正是因为基尔霍夫电流定律的存在,我们只需要知道两相电流就能够求解得到第三相的电流,进而可以省去一相电流采集硬件。

Ⅱ、克拉克逆变换
克拉克变换将三相电iA,iB,iC转换成二维坐标形式的Iα,Iβ。
克拉克逆变换则是将二维坐标Iα,Iβ再通过运算换为三相电iA,iB,iC。
①克拉克等幅值形式逆变换

Ⅲ、帕克变换
①帕克变换数学模型
帕克变换将电机旋转的物理状态通过数学转换转变为Iα,Iβ。
三相线圈是实际三相电流的流动模型,通过在定子上建立α-β坐标系可转化出Iα,Iβ二维向量。然后在坐标系中叠加转子,当转子不动时Iα,Iβ是定值,但是当转子开始旋转后Iα,Iβ开始不断变化。
所以再建立一个随转子转动的Q-D坐标系。Q-D坐标系转动时与α-β坐标系构成的夹角θ就被称为电角度。所以知道电角度θ就很容易将Q-D坐标系上的值映射到α-β坐标系上。
②帕克变换
将α-β坐标系映射到Q-D坐标系

Ⅳ、帕克逆变换

Ⅴ、FOC总结
将帕克变化拆分得到关于Iα,Iβ的关系式,式子中电角度θ是由编码器实时测出的所以已知,IQ,ID是有方向的矢量再加上电角度,所以可以看成为旋转的矢量。
通常在简单的FOC应用中,我们只需要控制IQ的电流大小,而把ID设置为0。此时,IQ的大小间接就决定了定子三相电流的大小,进而决定了定子产生磁场的强度。进一步我们可以说,它决定了电机产生的力矩大小。电机产生力矩后会绕中轴旋转,从而编码器读取的角度开始变化,然后新电角度再通过计算会得到新的IQ。
IQ是旋转的矢量,同时IQ又会间接影响磁场的强度,这正是FOC的名称磁场定向控制的由来。

Ⅵ、SVPWM简介
稚晖君【自制FOC驱动器】深入浅出讲解FOC算法与SVPWM技术 - 知乎
基于stm32f427实现SVPWM控制永磁同步开环转动 - andy_fly - 博客园
SVPWM 全称是空间矢量脉宽调制(Space Vector Pulse Width Modulation),核心是通过控制逆变器开关管的通断,合成一个逼近圆形旋转的电压空间矢量,从而驱动电机产生平稳的旋转磁场。
SVPWM 的工作过程可简化为 3 个关键步骤,本质是 "选矢量、算时间、定序列":
①扇区判断:根据电机控制需求的 "参考电压矢量",确定其在空间坐标系(α-β 坐标系)中所处的扇区(共 6 个扇区,对应 6 个有效基本矢量)。
②矢量作用时间计算:利用 "伏秒平衡" 原理,计算该扇区内相邻两个有效基本矢量,以及零矢量(不产生有效磁场的矢量)的作用时间,确保合成的矢量等效于参考电压矢量。
③开关序列生成:按照特定规则(如 "最小开关动作" 原则),排列有效矢量和零矢量的导通顺序,生成逆变器开关管的 PWM 驱动信号,控制开关管通断。
Ⅶ、扇区判断
①直接通过角度判断扇区
sector = floor(angle_el / _PI_3) + 1;
②通过UαUβ计算扇区
空间矢量调制的第一步是判断由Uα和Uβ所决定的空间电压矢量所在的扇区。假定合成的电压矢量落在第一扇区,可知其等价条件:0<arctan(Uβ/ Uα) <60。


再定义,若U1>0,则A=1,否则A=0;若U2>0,则B=1,否则B=0;若U3>0,则C=1,否则C=0。
可以看出A、B、C之间共有八种组合,但由判断扇区的公式可知A、B、C不会同时为1或同时为0,所以实际的组合是六种,A、B、C组合取不同的值对应着不同的扇区,并且是一一对应的,因此完全可以由A、B、C的组合判断所在的扇区。为区别六种状态,令N=4*C+2*B+A,则可以通过下标计算参考电压矢量Uref所在的扇区。
| N | 3 | 1 | 5 | 4 | 6 | 2 |
| 扇区号 | Ⅰ | Ⅱ | Ⅲ | Ⅳ | Ⅴ | Ⅵ |
采用上述方法,只需经过简单的加减及逻辑运算即可确定所在的扇区,对于提高系统的响应速度和进行仿真都是很有意义的。
Ⅷ、三角形正弦定理计算时间
根据正弦定理对各个扇区进行计算,发现六个扇区的变化量主要是对应正弦角度的不同。所以就有了下面代码中sector * _PI_3的变化。

Ⅸ、伏秒平衡原则计算时间




根据上表六分区各时间分量与代码得出规律,设了下面这三个常量,由下面三个假设变换即可得到任意分区的实际时间大小。

| 扇区号 | Ⅰ区 | Ⅱ区 | Ⅲ区 | Ⅳ区 | Ⅴ区 | Ⅵ区 |
| T1 | -Z | Y | X | Z | -Y | -X |
| T2 | X | Z | -Y | -X | -Z |
Y |
| T0 |
T0 = Ts - T1 - T2 |
|||||
Ⅹ、扇区时间总结
计算出每个扇区时做功的时间后,对各分量进行总结:
| Sector | Ta | Tb | Tc |
| 1 | T1+T2+T0/2 | T2+T0/2 | T0/2 |
| 2 | T1+T0/2 | T1+T2+T0/2 | T0/2 |
| 3 | T0/2 | T1+T2+T0/2 | T2+T0/2 |
| 4 | T0/2 | T1+T0/2 | T1+T2+T0/2 |
| 5 | T2+T0/2 | T0/2 | T1+T2+T0/2 |
| 6 | T1+T2+T0/2 | T0/2 | T1+T0/2 |
3.接线测试
在学习使用中可通过面包板或者工程中亚克力面板来固定无刷电机进行测试。——2024-8.4
因时间原因仅对扩展板进行简单功能性测试,后续功能学习暂未开发。——2025.2.8
本次采用1806无刷云台电机配合AS5600编码器进行配套学习,接线如下图所示。


3.编码器角度读取

4.电机开环测试


5.位置闭环测试

6.SVPWM测试

7.LVGL测试

设计图
未生成预览图,请在编辑器重新保存一次BOM
暂无BOM
克隆工程工程成员
知识产权声明&复刻说明
本项目为开源硬件项目,其相关的知识产权归创作者所有。创作者在本平台上传该硬件项目仅供平台用户用于学习交流及研究,不包括任何商业性使用,请勿用于商业售卖或其他盈利性的用途;如您认为本项目涉嫌侵犯了您的相关权益,请点击上方“侵权投诉”按钮,我们将按照嘉立创《侵权投诉与申诉规则》进行处理。
请在进行项目复刻时自行验证电路的可行性,并自行辨别该项目是否对您适用。您对复刻项目的任何后果负责,无论何种情况,本平台将不对您在复刻项目时,遇到的任何因开源项目电路设计问题所导致的直接、间接等损害负责。


评论