速到無感FOC:一本書串起電機(jī)控制全部知識(shí)鏈路)
最開始接觸電機(jī)控制我以為“讓電機(jī)轉(zhuǎn)起來”就是全部。后來在實(shí)驗(yàn)室里做直流電機(jī)調(diào)速擰電位器改變PWM占空比輪子轉(zhuǎn)速跟著變感覺已經(jīng)掌握了電機(jī)控制的精髓。直到某天看到“FOC”這個(gè)詞翻了一堆源碼、技術(shù)文檔和別人的項(xiàng)目筆記才發(fā)現(xiàn)自己手里全是碎片PWM是一套說法BLDC換相是另一套說法PMSM矢量控制又是一套天書誰跟誰都接不上。這篇文章想聊聊我推薦的一本能把電機(jī)控制知識(shí)串起來的書準(zhǔn)確說是這類“串聯(lián)型”書的正確打開方式。它不會(huì)教你某一個(gè)孤立功能而是把直流電機(jī)、PWM調(diào)速、坐標(biāo)變換、電流環(huán)、SVPWM、無感觀測(cè)器這些看似分散的東西按一條主線從頭到尾接起來。如果你正處于“會(huì)調(diào)PWM但看不懂FOC代碼”的階段這篇內(nèi)容應(yīng)該能幫你把整個(gè)知識(shí)鏈路理順。1. 從有刷直流到FOC這本書貫穿的是一條“進(jìn)化主線”1.1 一臺(tái)電機(jī)的前世今生機(jī)械換相、電子換相、正弦波驅(qū)動(dòng)很多教程把直流電機(jī)、BLDC、PMSM分開講結(jié)果就是每本書都只講一段你學(xué)完之后依然不知道它們之間是什么關(guān)系。真正能把知識(shí)串起來的書一定會(huì)從電機(jī)本體開始把三代電機(jī)講成一條演化鏈。有刷直流電機(jī)靠碳刷和換向器機(jī)械換相電樞電流的方向隨著轉(zhuǎn)子轉(zhuǎn)動(dòng)自動(dòng)切換你只需要控制端電壓的大小就能控制轉(zhuǎn)速簡(jiǎn)單粗暴。到了無刷直流電機(jī)BLDC機(jī)械換向器被電子開關(guān)替代霍爾傳感器告訴你什么時(shí)候該換相但反電動(dòng)勢(shì)是梯形波用六步換相法就能驅(qū)動(dòng)。再到永磁同步電機(jī)PMSM反電動(dòng)勢(shì)是正弦波要求每一刻都知道轉(zhuǎn)子角度并用正弦電流連續(xù)驅(qū)動(dòng)這就是FOC的用武之地。這三代電機(jī)的區(qū)別可以從幾個(gè)關(guān)鍵維度去看對(duì)比項(xiàng)有刷直流電機(jī)無刷直流電機(jī) BLDC永磁同步電機(jī) PMSM換相方式機(jī)械換相碳刷換向器電子換相六步換相電子換相需要連續(xù)角度反電動(dòng)勢(shì)波形與繞組結(jié)構(gòu)有關(guān)梯形波正弦波驅(qū)動(dòng)方式直流電壓 / PWM方波 / PWM三相正弦電流SVPWM轉(zhuǎn)子位置反饋不需要霍爾傳感器即可編碼器/觀測(cè)器/高頻注入控制復(fù)雜度低中高這條主線說明一個(gè)核心問題FOC并不是憑空冒出來的它要有刷直流電機(jī)的控制思路延續(xù)——讓定子磁場(chǎng)和轉(zhuǎn)子磁場(chǎng)始終保持在最優(yōu)夾角附近。只是PMSM的轉(zhuǎn)子在轉(zhuǎn)你沒辦法像有刷電機(jī)那樣靠機(jī)械換向自動(dòng)保持角度所以必須用數(shù)學(xué)手段去實(shí)時(shí)計(jì)算這個(gè)角度。理解了這條演化鏈再看FOC它就是“把有刷直流電機(jī)的天然優(yōu)勢(shì)通過算法在無刷電機(jī)上人為地復(fù)現(xiàn)出來”。1.2 為什么大部分教材讓新手越看越亂我也是被坑過之后才想明白這件事。傳統(tǒng)教材分三塊電機(jī)學(xué)講磁場(chǎng)、繞組合電壓方程電力電子講PWM調(diào)制和逆變器自動(dòng)控制講PID和系統(tǒng)穩(wěn)定性。三塊知識(shí)本身都沒問題可實(shí)際做電機(jī)控制時(shí)它們根本不能分開用。你調(diào)一個(gè)電流環(huán)既要懂電機(jī)繞組的電感電阻又要懂PWM占空比怎么換算成電壓還要懂PI調(diào)節(jié)器的帶寬和穩(wěn)定性——這三件事分散在三本書里中間沒有一座橋。而好的“串聯(lián)型”書籍會(huì)在每一個(gè)環(huán)節(jié)都告訴你這個(gè)物理量從哪來經(jīng)過哪個(gè)變換最后變成PWM波的哪個(gè)參數(shù)。它把數(shù)學(xué)方程、硬件電路、控制算法放在同一張桌子上講而不是分成三個(gè)互不相干的科目。1.3 我選書的標(biāo)準(zhǔn)不看出身看它能不能“閉環(huán)”每個(gè)人推薦書都有自己的偏好我的標(biāo)準(zhǔn)很簡(jiǎn)單——這本書能不能做到“首尾相接”是否從直流電機(jī)的基本電壓方程出發(fā)而不是一上來就擺三相坐標(biāo)變換矩陣。是否在講Clark變換和Park變換之前先講清楚“為什么非變換不可”。是否把Park變換里的角度和轉(zhuǎn)子實(shí)際位置、編碼器讀數(shù)對(duì)應(yīng)起來而不是只給公式。是否在最后能落到SVPWM波形和代碼層面告訴你算法怎么變成橋臂開關(guān)信號(hào)。是否包含無感控制相關(guān)內(nèi)容至少把反電動(dòng)勢(shì)觀測(cè)或高頻注入的原理講明白。按這個(gè)標(biāo)準(zhǔn)選出來的書不一定是最厚的但一定是最能幫你把知識(shí)串起來的。2. 直流電機(jī)部分PWM調(diào)速、H橋正反轉(zhuǎn)和你的第一個(gè)閉環(huán)2.1 所有電機(jī)控制的起點(diǎn)直流電機(jī)的電壓方程很多人覺得直流電機(jī)簡(jiǎn)單到不值一提但實(shí)際上FOC里所有的控制邏輯都能從直流電機(jī)的電壓方程里找到影子。直流電機(jī)的電樞回路滿足U E Ia·Ra La·(dIa/dt)其中E是反電動(dòng)勢(shì)正比于轉(zhuǎn)速E Ke·ω電磁轉(zhuǎn)矩T正比于電樞電流T Kt·Ia。也就是說電流決定轉(zhuǎn)矩轉(zhuǎn)矩通過轉(zhuǎn)動(dòng)慣量積分成轉(zhuǎn)速轉(zhuǎn)速又反過來產(chǎn)生反電動(dòng)勢(shì)。當(dāng)系統(tǒng)穩(wěn)態(tài)時(shí)端電壓和反電動(dòng)勢(shì)基本平衡電流大小由負(fù)載決定??吹?jīng)]有這就是最原始的“電流環(huán)”思想你控制端電壓但真正決定電磁轉(zhuǎn)矩的是電流。FOC之所以要加電流環(huán)正是因?yàn)殡姍C(jī)本質(zhì)上是電流驅(qū)動(dòng)的器件電壓只是產(chǎn)生電流的手段。這本書如果能把直流電機(jī)的這個(gè)方程講透后面所有內(nèi)容都有了根。2.2 PWM調(diào)速占空比、續(xù)流二極管、開關(guān)頻率直流電機(jī)調(diào)速最常用的手段是PWM。電機(jī)本身是個(gè)大電感它不會(huì)響應(yīng)幾十千赫茲的高頻開關(guān)只會(huì)響應(yīng)電壓的平均值。所以改變的占空比本質(zhì)上是改變電樞兩端的平均電壓。PWM調(diào)壓有幾個(gè)細(xì)節(jié)是新手容易踩坑的續(xù)流二極管不能省。電機(jī)是感性負(fù)載開關(guān)管關(guān)斷瞬間電流不能突變必須通過續(xù)流二極管繼續(xù)流通否則開關(guān)管會(huì)被反向電動(dòng)勢(shì)擊穿。開關(guān)頻率的選擇。太低會(huì)有電流紋波和可聞噪聲太高會(huì)增加開關(guān)損耗。我做實(shí)驗(yàn)常用的范圍是10kHz到20kHz根據(jù)使用的MOS管驅(qū)動(dòng)能力和控制環(huán)采樣頻率來定。占空比和平均電壓的關(guān)系在理想情況下是線性的但實(shí)際要注意PWM死區(qū)和功率管壓降低速時(shí)尤其明顯。單純調(diào)PWM讓電機(jī)轉(zhuǎn)起來不難但要做到“占空比變化→電流可控→轉(zhuǎn)速穩(wěn)定”這一條鏈路的理解才算真的入門了直流電機(jī)控制。2.3 正反轉(zhuǎn)控制繼電器方案和H橋方案怎么選與“直流電機(jī)繼電器正反轉(zhuǎn)控制”對(duì)應(yīng)的經(jīng)典問題是讓電機(jī)換向。常見兩種做法繼電器換向和H橋換向。繼電器方案成本低、驅(qū)動(dòng)邏輯簡(jiǎn)單用兩個(gè)繼電器切換電樞兩端電源的正負(fù)極PWM只控制通斷即可。缺點(diǎn)是繼電器機(jī)械壽命有限切換頻率不能太高適合對(duì)正反轉(zhuǎn)頻率要求不高的場(chǎng)合比如門窗電機(jī)、水泵。H橋方案用四個(gè)開關(guān)管通過上下橋臂的組合導(dǎo)通實(shí)現(xiàn)正轉(zhuǎn)、反轉(zhuǎn)和制動(dòng)。H橋可以支持高頻PWM同時(shí)實(shí)現(xiàn)方向和速度控制而且可以做到能量回饋。缺點(diǎn)是需要考慮死區(qū)、防直通保護(hù)和驅(qū)動(dòng)電路。兩者的取舍可以從下面這張表里看得很清楚對(duì)比項(xiàng)繼電器正反轉(zhuǎn)H橋正反轉(zhuǎn)切換頻率低機(jī)械壽命高可配合PWM控制方式繼電器換向PWM調(diào)速四路PWM/邏輯組合電路復(fù)雜度低中高制動(dòng)能力基本沒有可主動(dòng)制動(dòng)/能耗制動(dòng)典型成本低中我的建議是學(xué)習(xí)階段可以先用繼電器方案理解“方向和速度分開控制”的邏輯但真正做產(chǎn)品或者做FOC項(xiàng)目H橋是繞不開的基礎(chǔ)拓?fù)湟驗(yàn)槿嗄孀兤鞅举|(zhì)上就是三個(gè)H橋的變體。2.4 第一個(gè)閉環(huán)直流電機(jī)速度環(huán)的PI調(diào)試把PWM調(diào)速做好之后就該加閉環(huán)了。用編碼器或霍爾測(cè)速把當(dāng)前轉(zhuǎn)速和期望轉(zhuǎn)速的誤差送給PI調(diào)節(jié)器PI輸出給PWM占空比電機(jī)轉(zhuǎn)速就被“鎖”在目標(biāo)值附近。這個(gè)階段要理解三個(gè)東西比例項(xiàng)負(fù)責(zé)根據(jù)當(dāng)前誤差快速反應(yīng)積分項(xiàng)負(fù)責(zé)消除穩(wěn)態(tài)誤差如果P太大系統(tǒng)會(huì)震蕩電機(jī)會(huì)忽快忽慢甚至嘯叫如果I太大會(huì)出現(xiàn)超調(diào)甚至積分飽和。直流電機(jī)速度環(huán)調(diào)明白了后面FOC的電流環(huán)、速度環(huán)、位置環(huán)都是同一套思路只是反饋量從“轉(zhuǎn)速”換成“電流”或“位置”控制周期從幾十毫秒縮短到幾十微秒。這個(gè)從直流電機(jī)到FOC的“閉環(huán)思路遷移”正是串聯(lián)型書籍最值得講的地方。3. FOC的數(shù)學(xué)地基從三相靜止ABC到兩相旋轉(zhuǎn)DQ坐標(biāo)3.1 為什么三相電機(jī)不能像直流電機(jī)那樣直接控制到了PMSM這里情況變得麻煩。三相定子繞組通入正弦電流會(huì)產(chǎn)生一個(gè)旋轉(zhuǎn)的定子磁場(chǎng)轉(zhuǎn)子是永磁體它的磁場(chǎng)方向和轉(zhuǎn)子位置綁定。電磁轉(zhuǎn)矩的大小受定子磁場(chǎng)和轉(zhuǎn)子磁場(chǎng)夾角的影響想要獲得最大轉(zhuǎn)矩必須讓兩個(gè)磁場(chǎng)的夾角保持在某個(gè)最優(yōu)值附近。問題在于轉(zhuǎn)子一直在轉(zhuǎn)定子電流又是三相正弦波每一瞬間的電磁狀態(tài)都在變化你沒法像控制直流電機(jī)那樣直接說“給多大電壓就出多大轉(zhuǎn)矩”。要想沿用直流電機(jī)的思路就得有一個(gè)數(shù)學(xué)工具把三相正弦量“折算”成一個(gè)類似直流電機(jī)的電樞電流和勵(lì)磁電流。3.2 Clark變換把三相電流投影到兩相靜止坐標(biāo)系三相繞組在空間上相差120度三相電流Ia、Ib、Ic是一組交流量。Clark變換把這三相電流投影到兩相靜止坐標(biāo)系αβ坐標(biāo)系相當(dāng)于從“三根軸”變成“兩根正交軸”。由于電機(jī)三相繞組星形連接或者對(duì)稱通常有Ia Ib Ic 0所以等幅值Clark變換可以簡(jiǎn)化為Iα Ia Iβ (Ia 2·Ib) / √3從幾何角度看Clark變換就是一個(gè)坐標(biāo)投影原本在平面上的三相120度分布變成兩個(gè)正交分量。經(jīng)過這一變換電流仍然是交流量但它從“三相糾纏”變成了“兩個(gè)正交的分量”后面方便做旋轉(zhuǎn)坐標(biāo)變換。這里有一個(gè)新手容易困惑的點(diǎn)變換結(jié)果跟參考方向、等幅值還是等功率有關(guān)看任何一個(gè)FOC工程時(shí)都要先確認(rèn)它用的是什么約定否則對(duì)不上源碼。3.3 Park變換跟隨轉(zhuǎn)子一起旋轉(zhuǎn)的坐標(biāo)系Clark變換只是“降維”真正讓直流控制思想落地的是Park變換。Park變換的意義是以轉(zhuǎn)子角度θ為旋轉(zhuǎn)角把αβ坐標(biāo)系里的交流量投影到與轉(zhuǎn)子同步旋轉(zhuǎn)的DQ坐標(biāo)系。旋轉(zhuǎn)之后的結(jié)果是原來隨時(shí)間正弦變化的電流變成了兩個(gè)直流量D軸電流Id它對(duì)應(yīng)轉(zhuǎn)子磁場(chǎng)方向的勵(lì)磁分量Q軸電流Iq它對(duì)應(yīng)與轉(zhuǎn)子磁場(chǎng)垂直、真正產(chǎn)生轉(zhuǎn)矩的力矩分量。對(duì)表貼式永磁同步電機(jī)來說轉(zhuǎn)矩公式可以簡(jiǎn)化成T 1.5·p·ψf·Iq。也就是說只要讓Id保持為0轉(zhuǎn)矩就和Iq成正比控制Iq就等于直接控制轉(zhuǎn)矩——這和直流電機(jī)“T Kt·Ia”的思路完全一致。這就是為什么FOC會(huì)讓PI調(diào)節(jié)器去控制Id和Iq這兩個(gè)直流量而不是直接控制三相交流電。直流控制下的PI帶寬、穩(wěn)定性、抗擾性都更容易設(shè)計(jì)。3.4 轉(zhuǎn)子角度θ整套算法的心臟Park變換中有一個(gè)關(guān)鍵輸入轉(zhuǎn)子角度θ。這個(gè)角度直接決定坐標(biāo)變換的準(zhǔn)確性。有傳感器方案用編碼器或霍爾加角度解算無感方案用觀測(cè)器估計(jì)角度。如果θ有偏差D軸和Q軸的電流會(huì)互相串?dāng)_表現(xiàn)為同一份力矩電流下實(shí)際產(chǎn)生轉(zhuǎn)矩變小、損耗變大、甚至失步。很多新手在跑通FOC代碼后遇到的第一個(gè)奇怪現(xiàn)象就是“電機(jī)發(fā)抖、發(fā)燙但轉(zhuǎn)不起來”大概率是θ方向不對(duì)或者電角度初始偏差。所以看任何FOC資料都要時(shí)刻記住坐標(biāo)變換是數(shù)學(xué)角度是連接數(shù)學(xué)和物理的橋梁。這本書如果能把“θ是怎么從編碼器讀數(shù)變成Park變換角度的”一步步寫出來那它在串聯(lián)知識(shí)這塊就成功了一半。4. 三大閉環(huán)電流環(huán)、速度環(huán)、位置環(huán)怎么一層層調(diào)通4.1 三環(huán)嵌套的整體關(guān)系FOC控制器的經(jīng)典結(jié)構(gòu)是嵌套式三環(huán)最內(nèi)層是電流環(huán)控制周期最短通常是PWM周期的整數(shù)分之一比如10kHz中間一層是速度環(huán)控制周期更長(zhǎng)比如1kHz最外層是位置環(huán)通常再慢一檔。從信號(hào)流向上看位置環(huán)輸出目標(biāo)轉(zhuǎn)速速度環(huán)輸出目標(biāo)轉(zhuǎn)矩即目標(biāo)Iq電流環(huán)輸出目標(biāo)電壓最后經(jīng)過逆Park變換和SVPWM生成PWM波。電流環(huán)最“快”因?yàn)樗苯用鎸?duì)繞組電感帶來的電流延遲位置環(huán)最“慢”因?yàn)闄C(jī)械系統(tǒng)轉(zhuǎn)動(dòng)慣量比較大響應(yīng)速度天然受限。4.2 電流環(huán)PI電感、帶寬和采樣頻率電流環(huán)的難點(diǎn)在于電機(jī)繞組是RL負(fù)載電流對(duì)電壓的響應(yīng)有慣性。繞組電感和電阻決定了電流環(huán)的電氣時(shí)間常數(shù)。設(shè)計(jì)PI時(shí)比例項(xiàng)Kp主要對(duì)應(yīng)“電感帶來的電壓補(bǔ)償”積分項(xiàng)Ki主要對(duì)應(yīng)“電阻帶來的穩(wěn)態(tài)壓降”。一個(gè)常用整定思路是先把Kp設(shè)置成L與PWM周期Ts的比值量級(jí)把Ki設(shè)置成R與Ts相關(guān)的量級(jí)然后在此基礎(chǔ)上微調(diào)。我個(gè)人習(xí)慣的初值方向是參數(shù)作用初值量級(jí)調(diào)大時(shí)的現(xiàn)象Kp對(duì)電流誤差的比例響應(yīng)約 L / Ts響應(yīng)更快過大則震蕩Ki消除穩(wěn)態(tài)電流誤差約 R / Ts穩(wěn)態(tài)誤差變小過大會(huì)超調(diào)積分限幅防止積分飽和輸出電壓限幅的70%左右限幅過小響應(yīng)變慢調(diào)試的時(shí)候一定要先把電流環(huán)單獨(dú)測(cè)好給定一個(gè)Id和Iq看實(shí)際反饋電流能不能快速跟上波形有沒有明顯的震蕩。電流環(huán)是速度環(huán)的基礎(chǔ)這里調(diào)不好外環(huán)再折騰都白搭。4.3 速度環(huán)濾波、限幅和前饋速度環(huán)反饋來自編碼器或者觀測(cè)器轉(zhuǎn)速。機(jī)械系統(tǒng)的轉(zhuǎn)動(dòng)慣量越大速度環(huán)帶寬就越低比例增益不能給太大否則容易在反轉(zhuǎn)或加減速時(shí)激起機(jī)械共振。實(shí)際工程里速度環(huán)的積分限幅也很重要——目標(biāo)電流超出過流保護(hù)值時(shí)積分器繼續(xù)積累只會(huì)讓恢復(fù)過程更糟。調(diào)速度環(huán)的經(jīng)驗(yàn)是先給比較大的比例增益看系統(tǒng)是否穩(wěn)定然后逐步加入積分。如果轉(zhuǎn)速在目標(biāo)值附近來回振蕩多半是比例太大如果總是差一點(diǎn)到不了目標(biāo)再考慮加積分或檢查摩擦補(bǔ)償。4.4 位置環(huán)用比例控制前饋就夠位置環(huán)最簡(jiǎn)單最常用的就是比例控制器有時(shí)加一個(gè)速度前饋來減小跟蹤滯后。位置環(huán)的帶寬至少要低于速度環(huán)的1/5到1/10否則會(huì)造成換向時(shí)的超調(diào)。做伺服定位項(xiàng)目時(shí)位置環(huán)的實(shí)際表現(xiàn)更多取決于速度環(huán)和電流環(huán)的品質(zhì)而不是位置控制器本身有多花哨。到這里你會(huì)發(fā)現(xiàn)從直流電機(jī)的速度環(huán)到FOC的電流環(huán)控制器的設(shè)計(jì)邏輯是一模一樣的先測(cè)反饋再算誤差然后用PI去校正。區(qū)別只是反饋量的性質(zhì)和控制周期。把這層“同構(gòu)”關(guān)系想清楚三環(huán)嵌套就不難理解了。5. SVPWM與PWM波形從算法到功率級(jí)的最后一公里5.1 為什么FOC基本都用SVPWM而不是SPWM電流環(huán)產(chǎn)出的最終輸出電壓指令是DQ坐標(biāo)系下的Ud和Uq經(jīng)過逆Park變換得到Uα和Uβ接下來的事就是把它變成三個(gè)橋臂的占空比。最樸素的做法是SPWM用正弦波和載波比較生成PWM。但SPWM對(duì)母線電壓的利用率不高輸出相電壓幅值最多到Udc/2線性區(qū)而SVPWM利用電壓矢量的組合可以讓線性區(qū)相電壓幅值達(dá)到Udc/√3大約比SPWM高出15%。同時(shí)SVPWM的電流諧波更小直流母線利用率更高所以商用驅(qū)動(dòng)器基本都用SVPWM。5.2 SVPWM的扇區(qū)判斷和作用時(shí)間SVPWM的核心思想是逆變器八個(gè)開關(guān)狀態(tài)對(duì)應(yīng)八個(gè)基本電壓矢量其中包括兩個(gè)零矢量全上全下模式和六個(gè)非零矢量。任意目標(biāo)電壓矢量都可以用所在扇區(qū)的兩個(gè)相鄰非零矢量和零矢量按不同的時(shí)間比例合成。具體分三步根據(jù)Uα和Uβ判斷目標(biāo)矢量落在哪個(gè)扇區(qū)。計(jì)算相鄰兩個(gè)非零矢量的作用時(shí)間需要用到中間變量常見的有X、Y、Z三個(gè)變量不同扇區(qū)套用不同的組合公式。在兩個(gè)非零矢量之間插入零矢量構(gòu)成“七段式”PWM波形讓橋臂切換盡量少減少諧波。七段式PWM的實(shí)質(zhì)就是“在一個(gè)PWM周期內(nèi)電壓矢量從零矢量A出發(fā)經(jīng)過相鄰非零矢量再到零矢量B然后對(duì)稱返回”。這種對(duì)稱的開關(guān)序列能讓電流波形更平滑。5.3 定時(shí)器配置互補(bǔ)PWM、死區(qū)時(shí)間和同步觸發(fā)算法算出了占空比最終還是要靠定時(shí)器的PWM功能輸出到功率管。以常見的STM32高級(jí)定時(shí)器為例FOC工程里幾乎都會(huì)用到這些配置定時(shí)器工作在中心對(duì)齊模式計(jì)數(shù)方向交替增減方便在波形的中間點(diǎn)做ADC同步采樣。開啟互補(bǔ)PWM輸出同時(shí)配置死區(qū)時(shí)間。死區(qū)的作用是防止上下橋臂同時(shí)導(dǎo)通導(dǎo)致直通短路。死區(qū)太小會(huì)擊穿管子太大則增加波形畸變工程上常用幾百納秒到幾微秒具體取決于MOS管/IGBT的關(guān)斷延遲。用定時(shí)器的更新事件或比較事件觸發(fā)ADC采樣保證采樣時(shí)刻和PWM波形的確定性對(duì)齊。代碼層面這些配置并不復(fù)雜更重要的是理解“為什么要在中心對(duì)齊模式下采樣”以及“死區(qū)為什么會(huì)引起電流諧波”。這類和硬件緊密結(jié)合的知識(shí)正是把算法串到實(shí)物上的關(guān)鍵環(huán)節(jié)。5.4 在PWM中點(diǎn)采樣電流噪聲最小的采樣時(shí)刻電流采樣是FOC最容易出問題的地方。三相逆變器的開關(guān)動(dòng)作會(huì)讓采樣電阻兩端的電壓在開關(guān)瞬間劇烈跳變此時(shí)采樣大概率采到一堆毛刺。業(yè)界標(biāo)準(zhǔn)做法是把采樣點(diǎn)放在PWM周期中點(diǎn)也就是零矢量作用時(shí)間最長(zhǎng)、開關(guān)噪聲相對(duì)平靜的位置。實(shí)際項(xiàng)目里ADC會(huì)由定時(shí)器觸發(fā)觸發(fā)時(shí)刻設(shè)在計(jì)數(shù)器達(dá)到周期值的中間位置同時(shí)采樣保持時(shí)間要設(shè)置得足夠長(zhǎng)讓采樣電容穩(wěn)定。三電阻采樣還要注意兩個(gè)采樣電阻在采樣窗口內(nèi)都不能被短接這涉及到在不同扇區(qū)里對(duì)采樣通道做切換很多芯片手冊(cè)里有專門的表格說明。新手第一次跑FOC如果電流波形像刺猬先別急著調(diào)PI去看看采樣時(shí)刻和觸發(fā)配置對(duì)不對(duì)。6. 無感FOC滑模觀測(cè)器、初始位置檢測(cè)與三段式啟動(dòng)6.1 去掉編碼器之后角度信息從哪來有感FOC依賴編碼器安裝成本高、可靠性也受環(huán)境限制。無感FOC的思路是不裝轉(zhuǎn)子位置傳感器而是利用電機(jī)的電氣特性反推轉(zhuǎn)子角度。反電動(dòng)勢(shì)是一個(gè)天然的信息源轉(zhuǎn)子轉(zhuǎn)動(dòng)時(shí)繞組會(huì)在反電動(dòng)勢(shì)里“刻”下角度信息。只要能從電壓和電流估算出反電動(dòng)勢(shì)就能通過數(shù)學(xué)手段提取轉(zhuǎn)子位置和轉(zhuǎn)速。可問題也很明顯轉(zhuǎn)速越低反電動(dòng)勢(shì)幅值越小接近零速時(shí)幾乎沒有可用的反電動(dòng)勢(shì)信號(hào)。這也是無感FOC在啟動(dòng)階段最有挑戰(zhàn)性的原因。6.2 滑模觀測(cè)器像一個(gè)不停糾偏的“開關(guān)”無感FOC中最常見的位置估計(jì)算法是滑模觀測(cè)器SMO。它的原理可以這樣理解根據(jù)電機(jī)模型用當(dāng)前電壓和電流估算出一個(gè)預(yù)測(cè)電流然后拿預(yù)測(cè)電流和實(shí)際采樣電流做差如果存在誤差就通過一個(gè)強(qiáng)非線性的開關(guān)函數(shù)典型是符號(hào)函數(shù)sgn把誤差快速“壓”回去讓估算狀態(tài)始終跟隨實(shí)際狀態(tài)。在這個(gè)強(qiáng)拽的過程中等效的低頻控制量里隱藏著反電動(dòng)勢(shì)信息。得到反電動(dòng)勢(shì)的αβ分量之后可以用atan2計(jì)算出轉(zhuǎn)子角度的原始估計(jì)值。由于開關(guān)函數(shù)會(huì)帶來高頻抖動(dòng)角度估計(jì)通常還要經(jīng)過一個(gè)鎖相環(huán)PLL或低通濾波器來平滑處理。用生活化的類比來說滑模觀測(cè)器就像一個(gè)人在暗暗的小路上走路一旦感覺左右偏了就立刻用很大的力度往中間修正走到最后他的修正信號(hào)里就包含了“這條路朝哪個(gè)方向彎”的信息。這是無感FOC最核心的數(shù)學(xué)機(jī)制。6.3 零速和低速的尷尬反電動(dòng)勢(shì)消失后怎么辦滑模觀測(cè)器在轉(zhuǎn)速足夠高時(shí)很有效但轉(zhuǎn)速很低時(shí)反電動(dòng)勢(shì)幾乎為零被淹沒在噪聲里。此時(shí)不能指望觀測(cè)器直接工作必須先解決“初始位置”或“啟動(dòng)”。無感FOC的啟動(dòng)通常分兩步走初始位置檢測(cè)。如果系統(tǒng)允許轉(zhuǎn)子固定不動(dòng)可以采用預(yù)定位施加一個(gè)固定方向的電流矢量把轉(zhuǎn)子強(qiáng)制拉到某個(gè)已知角度然后以此為起點(diǎn)。如果不允許啟動(dòng)前轉(zhuǎn)子轉(zhuǎn)動(dòng)就需要高頻信號(hào)注入——這個(gè)方法通過向D軸疊加上百赫茲到上千赫茲的高頻電壓觀察Q軸的高頻電流響應(yīng)來判斷磁極方向原理上能實(shí)現(xiàn)零速位置檢測(cè)但計(jì)算量和調(diào)參難度都更大。三段式啟動(dòng)。常用策略是“預(yù)定位→I/f強(qiáng)拖→切換無感閉環(huán)”。先讓轉(zhuǎn)子停在已知位置然后用“電流頻率比”的開環(huán)方式把轉(zhuǎn)子逐步加速這階段無需準(zhǔn)確角度當(dāng)轉(zhuǎn)速達(dá)到反電動(dòng)勢(shì)足夠明顯的程度后再切換為無感閉環(huán)模式。切換條件是很容易被忽視的細(xì)節(jié)。如果切得太早觀測(cè)器角度還沒收斂電機(jī)會(huì)減速甚至卡死如果切得太晚I/f強(qiáng)拖的電流已經(jīng)不穩(wěn)定。工程上會(huì)監(jiān)控觀測(cè)器角度誤差的收斂程度或者等轉(zhuǎn)速到達(dá)一個(gè)閾值后再平滑切換。6.4 高頻注入的補(bǔ)充說明與工程取舍高頻注入零速檢測(cè)聽起來很高級(jí)但不是所有場(chǎng)景都需要。帶載頻繁起停且不允許轉(zhuǎn)動(dòng)的生活場(chǎng)景才更適合做高頻注入普通風(fēng)機(jī)、泵類負(fù)載啟動(dòng)時(shí)負(fù)載很小用預(yù)定位和I/f強(qiáng)拖就能解決沒必要一開始就上最復(fù)雜的方案。這本書如果能把“無感FOC為什么要有這么多啟動(dòng)策略”講清楚而不是直接甩一堆公式我認(rèn)為它就算把知識(shí)串到位了。7. 實(shí)際項(xiàng)目里比算法更磨人的幾個(gè)坑以及一條學(xué)習(xí)建議7.1 電流采樣噪聲最大的隱形殺手很多FOC項(xiàng)目明明算法沒問題電機(jī)就是轉(zhuǎn)得不順問題往往出在采樣電路。采樣電阻太大會(huì)增加損耗太小信噪比不夠運(yùn)放帶寬不夠會(huì)淹沒高頻分量PCB布線、地線處理不當(dāng)開關(guān)噪聲會(huì)直接耦合進(jìn)采樣通道。調(diào)試時(shí)用示波器看電流波形如果噪聲明顯大于有效信號(hào)先別急著調(diào)PI把布線和采樣濾波器搞好再說。7.2 電角度對(duì)齊編碼器裝歪了一切白費(fèi)有感FOC用的編碼器安裝時(shí)電角度零點(diǎn)必須和電機(jī)模型的零位對(duì)應(yīng)。如果編碼器安裝有偏差I(lǐng)q指令產(chǎn)生的實(shí)際力矩方向就會(huì)偏電機(jī)表現(xiàn)為電流很大但輸出無力。類似問題排查起來特別隱蔽經(jīng)驗(yàn)是用一個(gè)已知角度的直流電流矢量去定位反推編碼器的零點(diǎn)偏移再寫入程序作為常量補(bǔ)償。7.3 硬件過流保護(hù)不能全靠軟件無論算法寫得多好過流保護(hù)的響應(yīng)速度都遠(yuǎn)超軟件控制周期。電機(jī)相位短路或機(jī)械堵轉(zhuǎn)時(shí)電流可以在幾微秒內(nèi)飆升到燒管級(jí)別。硬件比較器硬件封鎖PWM輸出的保護(hù)鏈路必須獨(dú)立于控制程序存在。這個(gè)和算法無關(guān)但它是所有電機(jī)控制項(xiàng)目安全運(yùn)行的底線。7.4 一條建議先讓直流電機(jī)閉環(huán)再碰FOC如果讓我給新手一條最實(shí)用的路線大概是先拿一臺(tái)有刷直流電機(jī)做PWM調(diào)速和速度環(huán)隨便用個(gè)小開發(fā)板就能完成再換BLDC上電機(jī)驅(qū)動(dòng)器用霍爾做六步換相然后才有必要碰PMSM和FOC。每一步都是下一步的基礎(chǔ)而且每一步都能在實(shí)體電機(jī)上看到直觀效果。我見過太多人直接從無感FOC入門結(jié)果連“電流環(huán)響應(yīng)慢是什么感覺”都沒建立只能在報(bào)錯(cuò)日志里亂撞。最后再分享一點(diǎn)個(gè)人體會(huì)。知識(shí)串聯(lián)的關(guān)鍵不在記公式而在建立“控制回路”的意識(shí)無論直流電機(jī)還是FOC核心動(dòng)作都是“測(cè)物理量→算誤差→按PI調(diào)整→輸出能量”。一旦你從直流電機(jī)速度環(huán)里建立起這個(gè)回路感再看FOC的坐標(biāo)變換、SVPWM、觀測(cè)器就會(huì)發(fā)現(xiàn)它們都是在為這條回路服務(wù)。希望這篇能把那條線畫清楚讓你少走我當(dāng)初走過的彎路。