切換策略)
1. 從零速到高速為什么單一控制策略搞不定全速域搞電機控制的人都有一個共識永磁同步電機PMSM的矢量控制在低速和高速下面對的問題完全不是一回事。高速段反電動勢足夠大用滑模觀測器SMO估算轉(zhuǎn)子位置和轉(zhuǎn)速精度和動態(tài)響應(yīng)都能讓人滿意可一旦轉(zhuǎn)速掉到額定值的百分之幾甚至零速附近反電動勢小到幾乎淹沒在噪聲里SMO的估算精度就會急劇惡化嚴重時直接發(fā)散。反過來高頻方波注入法在零速和極低速下能靠凸極效應(yīng)把轉(zhuǎn)子位置“問”出來但到了高速段注入的高頻信號會引起額外的轉(zhuǎn)矩脈動和鐵耗繼續(xù)用就是給自己找麻煩。所以全速域控制的核心矛盾就一句話低速需要注入高速不需要注入中間怎么平滑過渡。這篇內(nèi)容就是圍繞這個矛盾展開的我會把高頻方波注入法、滑模觀測器法、以及兩者之間的加權(quán)切換策略從原理到Simulink仿真的落地細節(jié)全部拆開講一遍。適合正在做PMSM無位置傳感器控制仿真的同學(xué)也適合已經(jīng)跑通了單一算法、想進一步做全速域整合的工程師。先說清楚一個前提這套方案針對的是凸極式永磁同步電機內(nèi)置式IPMSM因為高頻注入法依賴凸極效應(yīng)表貼式電機SPMSM凸極率接近1注入法基本失效。如果你手頭的電機是表貼式的后面的注入部分可以直接跳過重點看SMO和切換邏輯。2. 高頻方波注入法零速下怎么把轉(zhuǎn)子位置“問”出來2.1 凸極效應(yīng)是注入法的物理基礎(chǔ)永磁同步電機的定子電感在d軸和q軸方向上不相等d軸電感Ld通常小于q軸電感Lq內(nèi)置式電機這個差異就是凸極效應(yīng)。當(dāng)你在定子繞組上注入一個高頻電壓信號時高頻電流的響應(yīng)幅值會隨著轉(zhuǎn)子位置的變化而變化——轉(zhuǎn)子d軸對準(zhǔn)注入方向時等效電感最小電流響應(yīng)最大對準(zhǔn)q軸時反之。通過檢測高頻電流響應(yīng)的包絡(luò)就能反推出轉(zhuǎn)子位置。這個原理說起來簡單但實際操作中有幾個關(guān)鍵點容易翻車。第一注入頻率的選擇。頻率太低會和基波電流混在一起濾波器根本分不開頻率太高開關(guān)頻率跟不上PWM分辨率不夠。一般注入頻率取開關(guān)頻率的1/4到1/2比如開關(guān)頻率10kHz注入頻率取2.5kHz到5kHz比較合適。第二注入幅值的選擇。幅值太小電流響應(yīng)信噪比不夠幅值太大會引起明顯的轉(zhuǎn)矩脈動和噪聲。通常注入電壓幅值取額定電壓的10%到20%具體要看電機的凸極率和額定電流。2.2 方波注入和正弦波注入的區(qū)別在哪高頻注入按波形分常見的有旋轉(zhuǎn)正弦電壓注入、脈振正弦電壓注入和方波注入。早期文獻里正弦注入居多但這幾年方波注入越來越受歡迎原因很直接方波注入不需要低通濾波器。正弦注入的解調(diào)過程需要用到低通濾波器來提取高頻電流的包絡(luò)而低通濾波器會引入相位延遲在閉環(huán)控制里這個延遲會壓縮帶寬影響動態(tài)性能。方波注入則不同它在一個PWM周期內(nèi)正負交替注入高頻電流的響應(yīng)直接體現(xiàn)在相鄰周期的電流差值上通過簡單的加減運算就能解調(diào)出位置信息省掉了濾波器動態(tài)響應(yīng)快了一個檔次。具體實現(xiàn)上方波注入通常是在d軸估算的d軸上注入正負交替的電壓脈沖。假設(shè)注入周期為兩個PWM周期第一個周期注入Vinj第二個周期注入-Vinj那么兩個周期的高頻電流響應(yīng)之差就正比于轉(zhuǎn)子位置誤差的正弦值。當(dāng)估算位置和實際位置一致時這個差值為零有偏差時差值符號和大小就反映了偏差的方向和程度。2.3 Simulink里搭方波注入的實操細節(jié)在Simulink里實現(xiàn)方波注入核心模塊包括注入信號發(fā)生器、電流采樣與解調(diào)、位置誤差提取、鎖相環(huán)PLL或反正切計算。注入信號發(fā)生器可以用一個Pulse Generator配合增益模塊實現(xiàn)周期設(shè)為2個PWM周期幅值設(shè)為Vinj。注意這個注入信號要疊加在d軸電壓指令上而不是直接加在PWM輸出上否則會干擾電流環(huán)的正常工作。電流解調(diào)部分需要在每個PWM周期采樣三相電流做Clarke和Park變換。這里有個坑Park變換用的角度是估算角度不是實際角度實際角度在仿真里你知道但在實際系統(tǒng)中不知道。變換后的高頻電流分量通過相鄰周期的差值運算提取出來。具體來說如果第k個周期注入Vinj第k1個周期注入-Vinj那么Δiq iq(k1) - iq(k)就包含了位置誤差信息。位置誤差提取的公式推導(dǎo)這里不展開直接給結(jié)論位置誤差ε正比于Δiq經(jīng)過一個PI調(diào)節(jié)器后得到轉(zhuǎn)速估算值再積分得到位置估算值。這個PI調(diào)節(jié)器的帶寬要設(shè)得比電流環(huán)低一般取電流環(huán)帶寬的1/5到1/10否則會引入振蕩。注意方波注入的電流采樣時刻非常關(guān)鍵。必須在PWM周期的中點采樣避開開關(guān)瞬間的電流尖峰否則解調(diào)出來的信號全是噪聲。仿真里可以用Zero-Order Hold模塊模擬采樣保持采樣時間設(shè)為PWM周期的一半。3. 滑模觀測器法SMO中高速段的估算主力3.1 SMO的核心思想用不連續(xù)控制逼出反電動勢滑模觀測器的本質(zhì)是一個狀態(tài)觀測器它通過一個不連續(xù)的控制項通常是符號函數(shù)sign強迫估算電流跟蹤實際電流。當(dāng)系統(tǒng)進入滑模面后估算電流和實際電流的誤差趨近于零此時不連續(xù)控制項中包含了反電動勢的信息。反電動勢里就藏著轉(zhuǎn)子位置和轉(zhuǎn)速提取出來就完成了估算。SMO的數(shù)學(xué)表達很簡潔。在αβ坐標(biāo)系下電流狀態(tài)方程里包含反電動勢項eα和eβ。構(gòu)造滑模面s ?s - is估算電流減實際電流設(shè)計控制律u k * sign(s)當(dāng)k足夠大時s會在有限時間內(nèi)收斂到零。此時等效控制量ueq eα或eβ也就是反電動勢。但這里有個問題sign函數(shù)是不連續(xù)的直接用它做控制會引起抖振。實際實現(xiàn)中通常用飽和函數(shù)sat(s/φ)或者Sigmoid函數(shù)代替signφ是邊界層厚度。邊界層越厚抖振越小但估算精度會下降邊界層越薄精度高但抖振大。這個權(quán)衡需要根據(jù)實際系統(tǒng)的噪聲水平來調(diào)。3.2 反電動勢提取與位置解算的工程化處理從滑??刂祈椫刑崛》措妱觿葑钪苯拥姆椒ㄊ怯玫屯V波器。但低通濾波器會引入相位延遲導(dǎo)致估算角度滯后于實際角度。補償?shù)姆椒ㄓ袃煞N一種是基于轉(zhuǎn)速的相位補償根據(jù)濾波器截止頻率和當(dāng)前轉(zhuǎn)速計算出滯后角度直接加到估算角度上另一種是用鎖相環(huán)PLL替代反正切計算PLL本身對相位誤差有積分作用能自動跟蹤。我在仿真里更傾向于用PLL因為PLL的輸出轉(zhuǎn)速和位置是解耦的調(diào)參更直觀。PLL的結(jié)構(gòu)就是一個PI調(diào)節(jié)器加一個積分器輸入是位置誤差由反電動勢的叉乘得到輸出是轉(zhuǎn)速積分后得到位置。PI參數(shù)的設(shè)計可以參考二階系統(tǒng)的阻尼比和自然頻率一般取阻尼比0.707自然頻率取基波頻率的1/10到1/5。實操心得SMO在低速段失效的根本原因是反電動勢幅值太小信噪比不夠。如果你非要在低速段用SMO可以嘗試提高滑模增益k但k太大會導(dǎo)致抖振加劇甚至引起系統(tǒng)不穩(wěn)定。所以低速段還是老老實實用注入法。3.3 SMO在Simulink中的模塊搭建與參數(shù)調(diào)試Simulink里搭SMO核心模塊包括電流觀測器、滑??刂祈?、反電動勢濾波、PLL。電流觀測器就是一個積分器加反饋輸入是電壓指令和反電動勢估算值輸出是估算電流?;?刂祈椨肧aturation模塊實現(xiàn)飽和函數(shù)邊界層厚度設(shè)為額定電流的5%到10%。反電動勢濾波用一階低通濾波器截止頻率設(shè)為基波頻率的2到3倍。比如電機額定頻率50Hz截止頻率取100到150Hz。截止頻率太低動態(tài)響應(yīng)慢太高濾波效果差抖振會串到PLL里。PLL的PI參數(shù)我一般先按理論算一個初值然后在仿真里微調(diào)。具體做法是給一個階躍轉(zhuǎn)速指令觀察估算轉(zhuǎn)速的響應(yīng)如果超調(diào)太大就減小Kp如果響應(yīng)太慢就增大Kp。Ki的作用是消除穩(wěn)態(tài)誤差一般取Kp的1/10到1/5。4. 加權(quán)切換策略讓兩種方法在過渡區(qū)和平共處4.1 切換點的選擇不是拍腦袋決定的全速域控制的關(guān)鍵在于切換點的選擇。切換點選得太低SMO還沒進入可靠工作區(qū)就被切進來了估算精度差選得太高注入法在高速段繼續(xù)工作轉(zhuǎn)矩脈動和損耗都上去了。一般來說切換點取額定轉(zhuǎn)速的10%到20%比較合適。具體到你的電機可以做一個簡單的測試固定轉(zhuǎn)速分別用SMO和注入法估算位置對比估算誤差找到SMO誤差開始小于注入法誤差的那個轉(zhuǎn)速點就是理論上的最佳切換點。但實際系統(tǒng)中轉(zhuǎn)速是變化的不可能在切換點硬切。硬切會導(dǎo)致估算角度突變電流環(huán)會經(jīng)歷一個沖擊嚴重時直接過流保護。所以需要加權(quán)切換也就是在過渡區(qū)讓兩種方法的估算結(jié)果按權(quán)重混合。4.2 加權(quán)函數(shù)的形狀線性、余弦還是Sigmoid加權(quán)函數(shù)的選擇直接影響過渡區(qū)的平滑程度。最簡單的線性加權(quán)w (ω - ω1) / (ω2 - ω1)ω1是注入法完全生效的上限ω2是SMO完全生效的下限。線性加權(quán)實現(xiàn)簡單但在切換點附近導(dǎo)數(shù)不連續(xù)可能會引起輕微的轉(zhuǎn)矩波動。余弦加權(quán)w 0.5 * (1 - cos(π * (ω - ω1) / (ω2 - ω1)))在切換點處導(dǎo)數(shù)為零過渡更平滑但計算量稍大。Sigmoid加權(quán)w 1 / (1 exp(-a * (ω - ω0)))a控制過渡陡度ω0是中心點。Sigmoid的好處是過渡區(qū)形狀可調(diào)但參數(shù)a需要根據(jù)實際系統(tǒng)調(diào)。我在仿真里一般先用線性加權(quán)跑通確認邏輯沒問題后再換成余弦加權(quán)優(yōu)化平滑度。線性加權(quán)的代碼實現(xiàn)最簡單在Simulink里用一個Gain加一個Saturation就能搞定。4.3 加權(quán)切換的Simulink實現(xiàn)與常見坑加權(quán)切換的Simulink實現(xiàn)核心是一個Switch模塊加一個加權(quán)計算模塊。Switch模塊根據(jù)轉(zhuǎn)速判斷當(dāng)前處于哪個區(qū)間低速區(qū)用注入法輸出高速區(qū)用SMO輸出過渡區(qū)用加權(quán)混合輸出。這里有個坑兩種方法的估算角度可能不在同一個坐標(biāo)系下。注入法通常輸出的是轉(zhuǎn)子d軸角度SMO輸出的也是d軸角度理論上應(yīng)該一致。但如果注入法的PLL和SMO的PLL參數(shù)不同兩者的動態(tài)響應(yīng)會有差異混合時可能出現(xiàn)角度跳變。解決辦法是讓兩個PLL的帶寬盡量接近或者在混合前先做一個角度歸一化處理。另一個坑是加權(quán)切換的初始化。仿真開始時轉(zhuǎn)速為零注入法先工作SMO的PLL可能還沒收斂。如果此時加權(quán)函數(shù)已經(jīng)給了SMO一個非零權(quán)重混合出來的角度就是錯的。所以需要在SMO的PLL后面加一個使能邏輯只有當(dāng)SMO的估算誤差小于某個閾值時才允許其輸出參與混合。提示加權(quán)切換的過渡區(qū)寬度不宜太窄一般取切換點上下各5%到10%的額定轉(zhuǎn)速。過渡區(qū)太窄加權(quán)函數(shù)變化太劇烈容易引起振蕩太寬兩種方法的缺點都會在過渡區(qū)暴露出來。5. 仿真跑通之后那些只有踩過才知道的坑5.1 電流環(huán)帶寬與注入頻率的相互制約高頻方波注入的頻率不能隨意選它和電流環(huán)帶寬之間有硬約束。注入頻率必須遠高于電流環(huán)帶寬否則電流環(huán)會把注入信號當(dāng)成擾動去抑制導(dǎo)致注入信號衰減。一般來說注入頻率至少是電流環(huán)帶寬的5倍以上。比如電流環(huán)帶寬1kHz注入頻率至少5kHz。但注入頻率又受限于開關(guān)頻率不能超過開關(guān)頻率的1/2。所以如果開關(guān)頻率是10kHz注入頻率最高5kHz電流環(huán)帶寬就不能超過1kHz。這個約束在仿真里不明顯但實際系統(tǒng)中如果忽略注入法直接失效。5.2 參數(shù)失配仿真里看不見的殺手仿真里電機參數(shù)是固定的但實際系統(tǒng)中定子電阻隨溫度變化電感隨電流飽和變化永磁體磁鏈隨溫度變化。這些參數(shù)失配會導(dǎo)致SMO的估算精度下降也會影響注入法的解調(diào)精度。仿真階段可以做一個簡單的敏感性測試把電機參數(shù)故意偏置10%到20%觀察估算誤差的變化。如果誤差在可接受范圍內(nèi)說明魯棒性夠如果誤差急劇增大就需要在算法里加參數(shù)自適應(yīng)或者在線辨識。5.3 負載突變時的動態(tài)響應(yīng)全速域控制不僅要穩(wěn)態(tài)精度還要動態(tài)響應(yīng)。負載突變時轉(zhuǎn)速會波動切換邏輯要能快速響應(yīng)。如果過渡區(qū)太寬負載突變導(dǎo)致轉(zhuǎn)速在過渡區(qū)內(nèi)來回穿越加權(quán)函數(shù)頻繁切換估算角度會抖動。解決辦法是在加權(quán)函數(shù)后面加一個低通濾波器平滑權(quán)重變化但濾波器的截止頻率要設(shè)得足夠高不能影響正常的轉(zhuǎn)速跟蹤。5.4 仿真步長的選擇Simulink仿真步長直接影響仿真精度和速度。注入頻率5kHzPWM頻率10kHz仿真步長至少要是PWM周期的1/10也就是1e-5秒。如果步長太大注入信號的細節(jié)會被淹沒解調(diào)出來的位置誤差全是噪聲。但步長太小仿真速度會非常慢。我的經(jīng)驗是先用1e-5秒跑通邏輯確認沒問題后再用1e-6秒跑精細波形做頻譜分析。6. 從仿真到實物的距離幾點個人體會仿真跑通了不代表實物就能跑。仿真里電流采樣是理想的沒有噪聲沒有延遲實物里ADC采樣有量化誤差有采樣延遲還有PWM死區(qū)的影響。這些非理想因素在低速段對注入法的影響尤其大因為注入信號的幅值本來就小噪聲一淹就什么都剩不下。我的建議是仿真階段就把非理想因素考慮進去。電流采樣加一個量化模塊PWM加死區(qū)補償ADC加一個采樣延遲。這樣跑出來的結(jié)果更接近實物后面移植的時候心里有底。另外加權(quán)切換的代碼在實物上跑的時候要注意中斷優(yōu)先級。注入法的解調(diào)需要在PWM中斷里完成SMO的PLL可以放在慢速任務(wù)里。如果兩者在同一個中斷里計算量太大中斷執(zhí)行時間可能超過PWM周期導(dǎo)致控制失效。合理的做法是把注入法解調(diào)放在高優(yōu)先級中斷SMO和加權(quán)切換放在低優(yōu)先級中斷兩者通過全局變量交換數(shù)據(jù)。最后說一個調(diào)試技巧實物調(diào)試時先單獨跑注入法確認零速和低速下能穩(wěn)定估算再單獨跑SMO確認中高速下能穩(wěn)定估算最后再合起來跑加權(quán)切換。不要一上來就全速域一起跑出了問題根本分不清是哪個環(huán)節(jié)的毛病。分步調(diào)試雖然慢但穩(wěn)。