说实话,FOC这东西我接触了不少项目,但要从一个“升魂浩荡”这种中二感拉满的项目名开始讲,我估计这个项目的命名人要么是重度网文读者,要么就是被电机参数折磨到精神恍惚之后起的代号。FOC,全称Field-Oriented Control,磁场定向控制,这几年在无人机、机器人关节、电动工具、家电变频、平衡车这些领域基本是标配。它的难点从来不在“知道这个概念”,而在“从电流环推导到程序落地”这一整条链路的每一项细节。
很多朋友入手FOC,手里攒了一堆资料,看了不少PPT,结果一上板子就懵:电流采样噪声大、电机一抖一抖、启动就过流保护、转子位置检测不知道从哪下手。这篇文章就围绕“升魂浩荡FOC驱动”这个项目实际推进过程中的核心问题,重点拆电流环的推导过程、转子初始位置检测、无感FOC的实现路径,以及我在调试现场踩过的那些坑。适合正在写FOC驱动代码、准备从方波驱动切到正弦驱动、或者已经跑通开环但闭环一直收敛不住的朋友。
我不会把整篇写成理论教材,而是按项目推进的顺序来:先讲整体架构怎么设计,再推导电流环,然后说初始位置检测和无感方案,最后是调试实录和问题排查。整个过程尽量说人话,能给出参数的地方直接给参数,能复现的步骤直接写步骤。
1. 项目整体架构与控制链路拆解
1.1 为什么非要用FOC:方波驱动和磁场定向的本质差异
先说一句可能得罪人的实话:如果你的项目只是做个抽水机、小风扇,方波驱动完全够用,六步换相加个可调脉宽就能转,成本还低。但如果你要做的是伺服级控制,要求低速大扭矩、高速弱磁、动态响应快、噪音小,那方波驱动基本交代不了。
六步换相的本质是“定子磁势跳着走”。它在一个电角度周期内只切换六次导通状态,每次导通60度电角度,定子合成磁势停留在某个方向上,等转子转过去了再跳向下一方向。这相当于你开车的时候每隔一段距离猛打一次方向盘,而不是持续修正方向。结果就是扭矩脉动大、中高速啸叫明显、效率低。FOC干的事情,是把定子电流实时分解到转子磁场方向和垂直于转子磁场方向的两个分量上,前者是励磁分量Id,后者是转矩分量Iq,然后让电流矢量始终和转子磁场保持接近90度的关系。换句话说,你从“跳着走”变成了“全程顶着走”,扭矩输出平稳得多。
在实际项目中,FOC的“磁场定向”这四个字就是全部精髓。你得知道转子磁场在哪里,才能把电流矢量送到正确方向去。这就引出了整个控制链路里最核心的角色——转子角度。没有准确的角度,后面什么Park变换、反Park变换、SVPWM全是白搭。
1.2 控制链路拆解:从ADC采样到PWM输出的完整通路
先给你看我这个项目里最终确定下来的控制链路,按信号流向走一遍。整个FOC代码,不管你是用ST的MCSDK、SimpleFOC,还是完全自己写,核心链路都是一样的:
- 三相电流采样:通过采样电阻或电流传感器得到ia、ib、ic,很多时候只采两相,第三相通过基尔霍夫定律算出来。
- 坐标变换:三相静止坐标系→两相静止坐标系,即Clark变换,得到iα、iβ。
- 转子角度获取:编码器、霍尔传感器,或者无感方案里的观测器,得到电角度θe。
- 旋转坐标变换:两相静止坐标系→两相旋转坐标系,即Park变换,得到id、iq。
- 电流环PI控制:给定id_ref(通常为0)和iq_ref(来自速度环或位置环),和反馈的id、iq做差,进PI控制器,得到vd、vq。
- 反Park变换:vd、vq→vα、vβ。
- SVPWM调制:vα、vβ合成电压矢量,算出三相占空比,输出到逆变桥。
很多入门者喜欢急着上SVPWM和死区补偿,其实这不是起步时的重点。我建议先把电流采样和坐标变换这前半段搞踏实,因为后面所有调参、所有算法都建立在“你采回来的电流是准的、坐标变换是正确”的前提上。一个常见的坑是:相位没对齐,导致id、iq振荡,然后你去调PI,越调越乱,最后怀疑人生。
1.3 代码架构与任务调度:电流环必须快,速度环必须稳
代码架构上,我一般分三层:底层驱动(PWM、ADC、编码器)、中间算法层(Clark/Park/PI/SVPWM)、上层逻辑层(速度环、位置环、状态机、通信)。电流环的代码要放在最高优先级的中断里,速度环放在低优先级定时器里。
以20kHz PWM频率为例,电流环也跑20kHz,即周期50us。在这个中断里需要完成:采样保持、Clark/Park、电流环PI、反Park、SVPWM,一共没多少行代码,但每个环节都必须在50us内完成。速度环我一般放1kHz到2kHz,位置环再慢一些,可以到200Hz到500Hz。这个频率差是有讲究的:内环带宽必须远高于外环,电流环才来得及把外环要的Iq给到。如果电流环太慢,速度环一给指令电流还没跟上,整个系统就容易共振。
模块设计上还要注意一点:把PI控制器、坐标变换、SVPWM写成与硬件无关的纯函数,这样换主控、换逆变桥驱动时算法层基本不用动。我当时把坐标变换和PI都用C语言纯算法实现,底层通过接口拿ADC原始值和角度值,调试效率高出一大截。
2. 电流环推导:从电机方程到PI参数整定
2.1 先从物理层面理解:三相电流是怎么在电机里产生旋转磁场的
电流环推导之前,我想先花点篇幅把旋转磁场这事说透,因为很多人会算公式,但心里没有“画面”。
三相对称绕组在空间上相差120度,当三相对称正弦电流通进去时,每一相绕组都会产生一个脉振磁动势。这个脉振磁动势可以分解成正转分量和反转分量,三相加起来,反转分量互相抵消,正转分量叠加,最终形成一个幅值恒定、在空间匀速旋转的圆形磁动势。这个旋转磁场的转速,就是同步转速,和电源频率严格对应。
永磁同步电机(PMSM)的转子本身有永磁体,转子磁场方向和转子机械位置固定。定子旋转磁场会“拉着”转子磁场跑,两者保持同步时输出恒定转矩。如果定子电流矢量方向控制得不好,比如和转子磁场之间角度偏了,就会有一大堆电流变成了励磁或者去磁分量,真正产生转矩的电流就少了,系统效率直线下降。
FOC干的事,就是在任何时刻都知道转子磁场在哪里,然后精确控制定子电流矢量指向“让转矩最大化”的方向。这也是为什么我总说角度是整个FOC的地基,角度不准,后面全是空中楼阁。
2.2 Clark和Park变换推导:为什么要把交流变成直流
电流环要的是“稳”、“准”、“快”,而三相电流是交流量,直接拿交流量做PI控制,会出现稳态静差很难消除的问题。所以FOC采用了一个非常巧妙的思路:换坐标系。
先看Clark变换,把三相静止坐标系(a、b、c)映射到两相静止坐标系(α、β)。这里有两种常用约定,等幅值和等功率。我在项目里用的是等幅值变换,好处是变换前后相电流的幅值不改变,方便观察波形。公式如下(假设中点为中性点,三相平衡):
iα = (2/3) * (ia - (1/2) * ib - (1/2) * ic) iβ = (2/3) * ((√3/2) * ib - (√3/2) * ic)
如果已经知道三相电流,直接算就行。但在实际采样中,常常只采两相,第三相用 ic = -ia - ib 来算。
再看Park变换,把两相静止坐标系旋转到两相旋转坐标系(d、q),旋转角度就是转子电角度θe:
id = iα * cos(θe) + iβ * sin(θe) iq = -iα * sin(θe) + iβ * cos(θe)
经过这一步之后,id和iq变成了直流量。id对应转子磁场方向的电流,iq对应垂直转子磁场方向的电流,也就是真正产生转矩的分量。然后你对两个直流量分别做PI控制,这就是电流环的全部秘密。控制结果通过反Park变换还原到αβ坐标系,再交给SVPWM生成占空比。
这里有个新手特别容易搞混的点:不同教材对d、q轴的定义方向不同,有的把d轴定义为转子永磁体磁场方向,有的定义为气隙磁场方向,差一个角度。还有Park变换矩阵的符号也常有差异。这不影响算法本质,但会影响你后面的角度对齐和观测器代码,所以一旦选定了约定,整个项目都要保持一致,别中途换。
2.3 永磁同步电机的d-q电压方程与解耦
要整定电流环PI参数,先得有被控对象的数学模型。PMSM在d-q旋转坐标系下的电压方程是:
v_d = R_s * i_d + L_d * d(i_d)/dt - ω_e * L_q * i_q v_q = R_s * i_q + L_q * d(i_q)/dt + ω_e * L_d * i_d + ω_e * λ_m
其中R_s是相电阻,L_d、L_q是d轴、q轴电感,ω_e是电角速度,λ_m是永磁体磁链。等号右边第一项是电阻压降,第二项是电感上的瞬态电压,第三项和第四项是旋转引起的交叉耦合电动势。
如果忽略交叉耦合项,d轴和q轴就可以看成两个独立的“电阻+电感”一阶系统,这是简化PI设计的常用做法。以q轴为例,从v_q到i_q的传递函数近似为:
G(s) = 1 / (L_q * s + R_s)
对它做闭环PI控制,把PI控制器设计成消除掉被控对象的极点,就可以把闭环带宽压到我们想要的值。工程上常用的整定公式是:
Kp = L * ω_bw Ki = R_s * ω_bw
其中ω_bw是期望的电流环带宽(弧度/秒)。这个公式推导出来的前提是连续域、且忽略交叉耦合,但它给出来的初值非常靠谱。
我在项目里用的电机参数是:R_s = 0.6Ω,L_d = L_q = 0.45mH(表贴式电机,交直轴电感基本相等)。期望电流环带宽做到1kHz左右,那么ω_bw = 2π * 1000 ≈ 6283 rad/s。代入公式:
Kp = 0.45e-3 * 6283 ≈ 2.83(单位V/A) Ki = 0.6 * 6283 ≈ 3770(单位V/(A·s))
注意,这是连续域参数,落地到代码里还要做离散化。如果电流环周期T = 50us,用前向欧拉法离散,积分系数就是 Ki_d = Ki * T = 3770 * 0.00005 = 0.1885。不同程序框架里PI控制器的写法不一样,有的直接存Ki,有的存积分系数,单位容易混,务必要先对好单位再上机。
这只是理论初值。实际调试时,我一般在这个值的基础上先降一半,然后看波形再往上抬。这里有个经验:Kp决定电流跟踪的快速性,Kp太小反应肉,Kp太大会出现高频抖动和啸叫;Ki的作用是消除稳态误差,Ki太大会出现低频振荡和超调,Ki太小则电流会有静差。你调参的时候要同时看阶跃响应和稳态波形,不能只看能不能转。
再提一下解耦:如果电机转速不高、电流环带宽远高于运行频率,交叉耦合的影响不大,简化设计完全够用。但如果做高速弱磁,就建议加前馈解耦,把 -ω_e * L_q * i_q 和 +ω_e * L_d * i_d + ω_e * λ_m 这两项补到输出电压上,否则高速时d、q轴会互相干扰,表现出来就是电流忽大忽小。我那个项目做到5000转以上时才加的完整解耦,加完明显更稳。
3. 转子初始位置检测与无感FOC难点
3.1 不知道转子在哪,FOC根本无从谈起
带编码器或霍尔传感器的方案,理论上每次上电只要读一次角度就能知道转子位置。但你很快就会遇到另一个问题:增量式编码器上电时没有绝对位置,霍尔传感器只有60度分辨率,磁编码器又存在安装偏心,这些都会导致初始角度不准。
对于无感FOC来说,初始位置检测更是第一道拦路虎。因为电机静止时反电动势为零,你根本“看不见”转子位置。如果随便给一个角度强行起动,轻则抖动,重则反转甚至过流保护。
理解这个问题前,你先要接受一个事实:永磁电机转子有凸极效应(尤其是内置式IPM电机),d轴和q轴电感不相等。当你在某个方向施加电压时,由于磁路饱和程度和电感差异,电流的响应速度和大小会随着转子位置不同而变化。所有不用编码器就能测初始位置的方法,本质上都是在利用这种电感或饱和特性的不对称性。
3.2 脉冲电压注入法:工程上最常用的初始位置检测
这个项目用的是脉冲电压注入法,也常被叫做“三次脉冲法”或“六脉冲法”。原理很简单:向不同方向施加电压矢量,测每个方向上的电流响应幅值,电流响应最大的方向就是转子N极所在的方向。
具体做法这样来。先把电流环去掉,直接用PWM输出固定占空比的电压脉冲,依次施加在几个方向。我使用的是0度、120度、240度三个方向,每个方向施加一次短促的电压脉冲。施加时间和电压幅值取决于电机电感和母线电压,基本原则是让电流达到几安培但不能触发过流保护,时间一般取100us到1ms不等,要不断试。
测完三个方向的电流峰值后,选出峰值最大的那个方向,这个时候它指示的是转子磁极轴线方向,但还是N/S模糊的。也就是说,你已经知道了转子在哪一条线上,但不知道磁极朝向。接下来,再在这个方向上施加两个方向相反、幅值相同、时间相同的电压脉冲,分别测电流响应。由于磁路饱和效应,顺着永磁体磁场方向加压和反向加压,电流响应不一样,电流更大、电流上升更快的那次就是N极方向。
这个方法看起来简单,实际用起来有几个细节要特别注意。第一,电压脉冲不能太大也不能太小,太大转子会被拉动甚至转起来,太小信噪比不够、方向判断不准。第二,电流采样窗口要避开开关管导通瞬间的毛刺,建议在脉冲中间段采样多次取平均。第三,如果电机负载有弹簧或齿轮箱,转子可能被负载拉离理想位置,测出来的方向会有偏差,这种情况下要多做几次并取平均值。
3.3 高频注入和I/F起动:无感FOC的两个阶段
初始位置检测只是起动的那一瞬间。之后无感FOC要能在低速甚至零速下保持转子位置跟踪,不然电机还是无法稳定转起来。最常用的低速方案是高频信号注入法。
基本原理是:在估计的d轴方向上叠加一个高频电压信号(比如500Hz到2kHz,幅值为母线电压的5%左右),然后检测q轴上的高频电流响应。由于转子凸极效应,当估计角度和实际角度存在误差时,q轴会出现与位置误差成正比的高频电流分量。这个信号经过带通滤波、乘法器解调、低通滤波后,得到位置误差信号,再送给一个锁相环或PI观测器,不断修正估计角度,直到误差收敛到零。
高频注入法的实现难度不低,滤波器的相位延迟、解调信号的幅值、观测器带宽都会影响收敛效果。如果你的电机是表贴式(SPM),d轴和q轴电感差异非常小,高频注入法的效果会很差。这时候更实用的起动策略是I/F(电流-频率)开环起动。
I/F起动的思路很粗暴:先用电流闭环拉住一个固定幅值的电流矢量,让它的角度按设定的加速度匀速旋转。转子被这个旋转磁场带着走,虽然一开始会有角度差,但只要频率爬升不太快,转子就能同步转起来。当转速上升到反电动势足够大的时候,再切换到无感闭环(通常基于滑模观测器或龙贝格观测器估算反电动势位置)。这个切换点一般设置在额定转速的5%到10%左右,取决于反电动势的幅值和采样信噪比。切换时机没选好,最容易出现电流冲击和失步,所以切换前要确认估算角度已经收敛、转速误差在允许范围内。
4. 电流环实操调参:采样、标定、波形观察与整定步骤
4.1 电流采样时序:采不准就是一切问题的根源
先来一个我见过无数次的案例:某朋友的FOC板子,算法看着没问题,电机也能转,但电流波形全是毛刺,id和iq在给定值附近不停振荡,PI不敢调大,性能上不去。最后排查下来,是ADC采样时机不对,采到了开关管开关过程中产生的尖峰上。
电流采样是所有闭环控制的地基。你采回来的电流如果失真,后面坐标变换、PI控制、调试判断全部失效。硬件方案上,低压电机控制最常见的是三电阻采样或单电阻采样。三电阻采样的优势是重构简单,每个PWM周期在中心对齐模式下,当三个下管都导通时,三个采样电阻上的电压直接对应三相电流。ADC触发点要设在PWM定时器计数到周期值的正中间,并且可以做一个几微秒的延迟,避开开关瞬间的震荡。
单电阻采样省成本,但重构逻辑复杂,因为在某些扇区边界,两个下管可能同时只导通很短时间,采样窗口不够,这时候要采用移相或者调整PWM占空比的技术。我的建议是,除非是成本敏感的量产产品,前期调试阶段老老实实用双电阻或三电阻方案,把精力花在算法上。
还有一件事必须做:电流采样偏置校准。FOC用小电压信号采集时,运放通常会叠加一个半母线电压的偏置。断电状态下采到的ADC值就是零点偏置。如果这个偏置没校准,电流就有直流偏置,控制时id和iq都会出现固定误差,表现在电机上就是电流不对称、震动大、噪音异常。每次上电初始化时,我都建议至少采样32次取平均作为零点。
4.2 电流环整定的完整流程:别一上来就闭环
说实话,很多人调FOC失败,是因为一上来就把所有环都闭合,出了问题根本不知道是哪个环节挂了。我的调试顺序从来都是分步走,先开环,再电流环,再速度环,最后位置环。
第一步是开环测试。给定一个固定幅值、固定频率的电压空间矢量,让电机转起来,观察三相电流波形是否正弦、幅值是否一致。如果电流波形明显畸形或某相特别大,去查采样和硬件,不要继续往下走。
第二步是电流环闭环。给定一个恒定的iq_ref(比如0.5A),id_ref给0,角度用编码器实测值。观察iq实际值能不能快速跟上给定、是否稳定无振荡。用示波器或者直接在代码里把变量通过DAC输出出来,看阶跃响应。常见的情况是:超调大→Ki太大;高频振铃→Kp太大;响应慢→两个都太小。我可以给一个大概的“调节手感”:从理论值的一半开始,每次加10%到20%,观察到有一点临界阻尼的感觉就停,把参数记录下来。
这里有个很容易忽略的问题:电流环PI饱和。当给定电流很大或者电流还没建立起来时,PI的输出可能已经到占空比极限了。如果没有做好限幅,积分项会一直累积,等到电流追上给定后,输出还在饱和状态,导致大超调甚至振荡。所以积分一定要做限幅,我一般把积分项单独限制在PI输出限幅的30%到50%,或者做积分清零,让它在检测到饱和时快速退出。
第三步才是速度环。速度环的输出是iq_ref,它的带宽要远低于电流环。速度环PI的整定思路和电流环类似,但你要知道速度环控制的是一阶积分对象,天生的相位滞后比电流环大,所以速度环的Kp和Ki通常需要更保守。我的经验是:先把速度环Kp一点点加,看到转速阶跃有一点超调了,再加一点Ki消除静差,加太多就会出现周期性的转速波动,俗称“喘振”。
4.3 FOC调试难点对照表
下面把我在这个项目和一些其他项目里实际遇到的调试难点和排查方向整理成一张表,你可以直接拿来对照:
| 现象 | 可能原因 | 排查方向 |
|---|---|---|
| 电流波形毛刺多 | ADC采样时机不对、滤波电容不匹配 | 调整采样触发时刻,检查采样电阻布局,尝试多采样几次 |
| id/iq振荡、电机高频啸叫 | 电流环PI参数过大、采样相位滞后 | 降低Kp,检查坐标变换角度是否对齐 |
| 低速启动发抖、反转 | 初始位置检测不准、磁极方向判断反了 | 重新标定脉冲法参数,检查N/S极判断逻辑 |
| 高速失步、转速上不去 | 解耦没做、反电动势观测器相位滞后 | 加前馈解耦,增加速度环相位补偿 |
| 上电就过流保护 | 电流采样零点未校准、占空比初始化异常 | 校准偏置,检查PWM初始化状态 |
| 速度环“喘振” | 速度环积分过强、负载波动大 | 减小Ki,检查机械连接是否有间隙 |
| 无感切换瞬间电流尖峰 | 切换前角度误差大、切换逻辑没有平滑衔接 | 延长切换前等待时间,增加电流限幅 |
5. 常见问题与排查技巧实录
5.1 上电一瞬间就过流保护
这是很多新手第一个遇到的打击。第一种情况是电流采样偏置根本没校准。采样电阻上的电压是叠加在偏置电压上的,如果偏置不准,电流值就全是飘的。第二种情况是PWM初始化时占空比恰好让某一相的上下管直通了,哪怕只有几微秒,瞬间电流就能把采样放大器的输出打到顶。排查方法很简单:上电后先别启动PWM,读一遍ADC原始值,三个采样通道的值应该非常接近。然后把PWM频率和死区时间都设好,用示波器看每一路输出的互补波形,确认没有直通,再开主回路。
5.2 电机“哒哒哒”响,转子就是不转
这个现象通常出现在刚写完FOC代码、第一次上电测试的时候。原因大概率是角度或换相逻辑错了。比方说编码器的AB相位接反了,或者磁编码器的零位没有和电机零点对齐,Park变换得到的结果完全是乱的。
我自己的排查顺序是这样的:先开环给一个固定电压矢量,确认PWM输出和三相绕组是对号的;然后手动旋转电机轴,在代码里打印电角度值,确认角度是连续变化的、方向和旋转方向对应;最后才上闭环。这里有一个新手的通病,就是电机三相的相序和编码器方向没有匹配好,导致FOC不仅没有把电流送对,反而形成阻力,所以电机“哒哒哒”抖动。
简单验证相序的方法:给电机某一个方向开环加一个较小的电压矢量,用一个力传感器或者你的手去感受转子是被往同一个方向柔和地拉,还是有明显抖动。如果方向对,转子应该顺着电压矢量方向稳定转到一个位置停住,并且保持在那里。如果换几个方向还是乱跑,那就把任意两相交换,再试。
5.3 电流波形有直流偏置,怎么都调不好
上个项目调试时,我遇到一种情况:电流闭环响应挺快,但id始终有个0.3A左右的固定偏置,怎么调Ki都消不掉。最后用万用表测了各采样电阻,发现有一个采样电阻焊接不良,阻值比其他两个偏大了不少。这种情况下电流重构出来的三相幅值也就不对称了,坐标变换出来的id、iq自然就有偏置。
硬件问题也要怀疑。电流采样电路的运放偏置电压、采样电阻的精度、PCB布局导致的温度漂移,都可能让三相电流幅度不对称。硬件工程师总是觉得软件什么都能调,但电流采样这种物理层的东西,软件只能校准零点,校准不了增益不一致。遇到这种问题别急着调PI,先花时间确认三个采样通道的增益一致性和偏置电压。
5.4 关于调试器和上位机的那点事
顺便说一个绕不开的坑。很多时候不是算法问题,而是电脑和调试工具的连接。这个项目里我换过几次板子,用的ST-Link和J-Link都遇到过驱动装不上、连接失败的情况。尤其在某些系统环境下,调试器驱动和新版本IDE不兼容,经常出现“无法识别设备”。我的解决习惯是:固定一台调试电脑,装好调试器驱动后不要随意升级IDE,确认好设备管理器里能看到设备,再打开工程。环境问题虽小,但一折腾就是半天。
另外一个建议是,如果你的主控芯片支持浮点运算,电流环建议用浮点。STM32F4及以上都支持硬件浮点单元,直接用浮点写PI和坐标变换,代码清晰、调试方便,性能完全足够。FOC算法的实时性瓶颈更多在采样时序和中断响应,而不在这些数学运算上。
5.5 参数记录的坏习惯,害了多少项目
最后我想强调一件很多工程师不在乎的事:调参记录。FOC参数之间是强耦合的,电流环PI变了,速度环整定就得重来;又换了一块电机,以前的参数又不能直接用。如果不记录每一次修改后的波形和数据,过两天你就得从头再来。
我的习惯是:每次调参前把当前参数和波形截图存一份,写清楚“什么条件下测的”“改了什么”“现象怎样”。这看起来简单,但在复杂调试中能省下大量时间。有时候一个参数改了十多次,你以为已经很好了,回头一对比,反而是最早那一版更稳。
另外,保存好的历史参数在换电机或换板子时非常有用。新电机的Rs、L、磁链参数不同,但你可以基于之前项目的参数按比例缩放,再结合理论公式微调。这个起步速度比从零开始快得多。
最后说一点个人体会
做FOC这个项目最大的感觉就是:它不是一个“看懂了就会了”的技术,而是一个必须上手踩坑才能建立直觉的领域。公式推导可以告诉你PI参数初值该给多少,但你不上示波器看波形,就永远不会知道“超调一点”和“振荡起来”之间的手感差异在哪里。
我自己反复踩坑之后的经验,就是千万别急。电流环没调稳,就不要去碰速度环;开环没确认相序,就不要做闭环;参数没记录,就不要乱动。FOC这个东西,你只要每一步都走踏实,它最后给你的回报是一套非常稳定、安静、有力度的电机驱动系统。那种顺滑感,用过的人才懂。
后面有时间,我准备再把无感FOC的滑模观测器和磁链观测器单独拿出来写一篇,那个坑更深,也更有意思。先到这里,希望对正在和FOC较劲的你有帮助。