器無(wú)位置傳感器控制及抖振優(yōu)化實(shí)現(xiàn))
做PMSM無(wú)位置傳感器控制的人幾乎都會(huì)被抖振這件事折磨過(guò)。我這次復(fù)現(xiàn)的是基于高速滑模觀測(cè)器優(yōu)化抖振問(wèn)題的永磁同步電機(jī)無(wú)位置傳感器控制算法目標(biāo)很明確把轉(zhuǎn)子位置和轉(zhuǎn)速通過(guò)算法“觀測(cè)”出來(lái)同時(shí)把滑??刂铺焐詭У母哳l抖振在高速工況下壓下去。整套東西從原理到Matlab實(shí)現(xiàn)再到調(diào)試過(guò)程中踩過(guò)的坑我會(huì)一次講清楚。如果你正在做無(wú)感控制方向的研究或者正準(zhǔn)備復(fù)現(xiàn)一套滑模觀測(cè)器算法這篇文章應(yīng)該能幫你省下不少試錯(cuò)時(shí)間。1. 無(wú)位置傳感器控制先想清楚你真正要“觀”的其實(shí)是反電動(dòng)勢(shì)1.1 PMSM模型里的轉(zhuǎn)子位置藏在哪里無(wú)位置傳感器控制的第一步不是上來(lái)就寫觀測(cè)器而是先搞清楚我們要觀測(cè)的物理量是什么。永磁同步電機(jī)在靜止坐標(biāo)系下的電壓方程表貼式結(jié)構(gòu)下可以寫成u_alpha Rs * i_alpha Ls * d(i_alpha)/dt e_alpha u_beta Rs * i_beta Ls * d(i_beta)/dt e_beta這里的 e_alpha、e_beta 就是反電動(dòng)勢(shì)在靜止坐標(biāo)系下的分量它們的表達(dá)式是e_alpha -psi_f * omega_e * sin(theta_e) e_beta psi_f * omega_e * cos(theta_e)psi_f 是永磁磁鏈omega_e 是電角速度theta_e 就是轉(zhuǎn)子電角度。你可以發(fā)現(xiàn)轉(zhuǎn)子位置信息完全藏在反電動(dòng)勢(shì)里。只要能把 e_alpha 和 e_beta 估出來(lái)角度理論上就可以通過(guò)反三角函數(shù)算出來(lái)theta_e atan2(-e_alpha, e_beta)這里要提醒一句這個(gè)式子里的負(fù)號(hào)非常容易搞錯(cuò)。我第一次寫代碼的時(shí)候直接把 atan2(e_alpha, e_beta) 拿過(guò)來(lái)用結(jié)果角度偏了 90 度電流環(huán)直接發(fā)散。先把這個(gè)關(guān)系理清后面才不會(huì)在層次上栽跟頭。1.2 滑模觀測(cè)器憑什么能把位置“逼”出來(lái)現(xiàn)在的問(wèn)題變成了如何在不知道 e_alpha、e_beta 的情況下把它們估計(jì)出來(lái)?;S^測(cè)器的思路很直接。我們把電壓方程里的電流狀態(tài)單獨(dú)拿出來(lái)d(i_alpha)/dt (u_alpha - Rs * i_alpha - e_alpha) / Ls d(i_beta)/dt (u_beta - Rs * i_beta - e_beta) / Lse_alpha 和 e_beta 在這里扮演的是“未知擾動(dòng)”的角色。我們構(gòu)造一個(gè)電流估計(jì)系統(tǒng)d(i_alpha_hat)/dt (u_alpha - Rs * i_alpha_hat - v_alpha) / Ls d(i_beta_hat)/dt (u_beta - Rs * i_beta_hat - v_beta) / Ls然后定義滑模面為電流估計(jì)誤差s_alpha i_alpha_hat - i_alpha s_beta i_beta_hat - i_beta設(shè)計(jì)切換控制量 v_alpha、v_beta迫使電流估計(jì)誤差收斂到 0。當(dāng)滑模運(yùn)動(dòng)發(fā)生后系統(tǒng)會(huì)處于一種動(dòng)態(tài)平衡為了維持電流估計(jì)值持續(xù)跟蹤實(shí)際電流切換控制量的基波分量就必須“等效”地抵消掉真實(shí)的反電動(dòng)勢(shì)。這就是滑模控制里的等效控制思想。此時(shí)對(duì) v_alpha、v_beta 做低通濾波拿到的就是 e_alpha、e_beta 的估計(jì)值。這個(gè)邏輯有點(diǎn)像你在黑屋子里找一個(gè)物體的位置你不知道阻力有多大但你反復(fù)調(diào)整手的位置一旦手能穩(wěn)穩(wěn)地跟著物體移動(dòng)手上感受到的“反推力”大小就間接反映了真實(shí)的阻力。1.3 高速運(yùn)行讓觀測(cè)難度發(fā)生了質(zhì)變很多人在中低速環(huán)境里跑通了滑模觀測(cè)器覺(jué)得事情成了結(jié)果一拉到高速就出問(wèn)題。這不是偶然高速工況對(duì)觀測(cè)器的影響是系統(tǒng)性的。第一反電動(dòng)勢(shì)幅值正比于電角速度。轉(zhuǎn)速越高e_alpha、e_beta 的幅值越大切換增益必須跟著加大否則觀測(cè)器拉不動(dòng)誤差。但切換增益加大意味著抖振幅度同步放大。第二電氣頻率升高。以 4 極對(duì)電機(jī)、6000 rpm 為例電氣頻率是 400 Hz??刂浦芷谌绻?100 微秒一個(gè)電氣周期里只有 25 個(gè)采樣點(diǎn)。數(shù)字控制器需要在這 25 個(gè)點(diǎn)里完成電流采樣、觀測(cè)器更新、電流環(huán)計(jì)算、SVPWM 輸出任何延遲折算成角度都會(huì)被放大。第三高速下 dq 軸交叉耦合增強(qiáng)模型中未建模的動(dòng)態(tài)更多。觀測(cè)器本來(lái)是基于理想模型設(shè)計(jì)的模型失配一多增益裕量就得留更大抖振問(wèn)題雪上加霜。所以高速滑模觀測(cè)器不是簡(jiǎn)單地把轉(zhuǎn)速指令調(diào)大它牽涉到增益設(shè)計(jì)、濾波策略、離散化延遲補(bǔ)償一整套問(wèn)題。2. 抖振的三大根源符號(hào)切換、低通提取與離散延遲的疊加2.1 符號(hào)函數(shù)帶來(lái)的結(jié)構(gòu)性抖振傳統(tǒng)滑模觀測(cè)器的切換項(xiàng)用的是 sign 函數(shù)。理想的 sign(s) 是一個(gè)不連續(xù)函數(shù)在 s0 處直接跳變。理論上這種不連續(xù)切換能把系統(tǒng)狀態(tài)強(qiáng)制“打”到滑模面上但實(shí)際物理系統(tǒng)里逆變器有開關(guān)頻率限制控制器有采樣周期限制誤差不可能真的停在 s0 上而是會(huì)在滑模面兩側(cè)來(lái)回穿越產(chǎn)生高頻振蕩。這就是抖振的第一層來(lái)源。這里有個(gè)繞不開的矛盾切換增益要足夠大才能抵抗反電動(dòng)勢(shì)和模型擾動(dòng)保證滑模面可達(dá)但增益越大穿越滑模面時(shí)的動(dòng)能越大抖振幅值越猛。降低增益抖振確實(shí)小了但觀測(cè)器抗擾動(dòng)能力下降在轉(zhuǎn)速大范圍變化時(shí)容易“跟丟”。這是結(jié)構(gòu)性的矛盾只靠調(diào)參數(shù)無(wú)法根治。2.2 “等效控制”與現(xiàn)實(shí)低通濾波的落差滑模觀測(cè)器真正的輸出并不是切換項(xiàng)本身而是切換項(xiàng)的等效值。理論上等效控制值是切換信號(hào)通過(guò)理想低通濾波后的平均分量。但實(shí)際工程里不存在理想低通一階慣性濾波器的截止頻率總是有限的。截止頻率選高了切換殘余的高頻分量會(huì)漏過(guò)去反電動(dòng)勢(shì)估計(jì)波形毛刺明顯位置估計(jì)抖動(dòng)。截止頻率選低了濾波是干凈了但相位滯后變大反電動(dòng)勢(shì)被“拖”了一段時(shí)間轉(zhuǎn)子位置估計(jì)就會(huì)滯后。中低速時(shí)反電動(dòng)勢(shì)基頻低濾波滯后折算成角度還勉強(qiáng)能接受高速時(shí)基頻本身就高同樣的時(shí)間常數(shù)產(chǎn)生幾十度滯后都很正常。這是抖振的第二層來(lái)源也是高速工況下最棘手的部分。2.3 數(shù)字實(shí)現(xiàn)的額外加成第三層來(lái)源說(shuō)實(shí)話很多剛接觸的人容易忽略離散化本身會(huì)給抖振“添柴”。連續(xù)系統(tǒng)里切換項(xiàng)瞬間完成數(shù)字系統(tǒng)里切換信號(hào)在采樣周期內(nèi)被零階保持住相當(dāng)于給切換信號(hào)額外加了一拍延遲。傳感器采樣、PWM 動(dòng)作又有各自的滯后。延遲疊加在滑模環(huán)路上會(huì)讓系統(tǒng)在滑模面附近的來(lái)回穿越更難收斂。而且這層延遲在高速時(shí)會(huì)被放大成角度誤差電角速度越高同樣的時(shí)間延遲對(duì)應(yīng)的角度滯后越大。更麻煩的是角度滯后會(huì)直接進(jìn)入 Park 變換導(dǎo)致 dq 軸解耦變差電流環(huán)控制性能下降反過(guò)來(lái)又讓電流波形更難控制形成一種惡性循環(huán)。3. 抖振的優(yōu)化組合拳自適應(yīng)邊界層加組合冪次趨近律3.1 把符號(hào)函數(shù)換成可調(diào)飽和函數(shù)針對(duì)符號(hào)函數(shù)帶來(lái)的結(jié)構(gòu)性抖振最直接的工程化改造就是把 sign(s) 替換成飽和函數(shù) sat(s/Φ)。飽和函數(shù)的定義很簡(jiǎn)單如果 |s/Φ| 1輸出 sign(s) 如果 |s/Φ| ≤ 1輸出 s/Φ這個(gè)替換的意義在于邊界層外行為仍然是滑模切換保證魯棒性邊界層內(nèi)切換項(xiàng)變成連續(xù)的比例控制相當(dāng)于給系統(tǒng)加了一個(gè)等效阻尼誤差不再高頻來(lái)回穿越而是平滑地逼近滑模面。邊界層厚度 Φ 的選取有講究。Φ 太大邊界層內(nèi)等效增益過(guò)小穩(wěn)態(tài)誤差會(huì)偏大位置估算不準(zhǔn)Φ 太小邊界層幾乎退化成符號(hào)函數(shù)抖振問(wèn)題又回來(lái)了。更重要的是Φ 應(yīng)該是自適應(yīng)的。高速時(shí)反電動(dòng)勢(shì)幅值變大系統(tǒng)的擾動(dòng)上界抬高邊界層需要相應(yīng)放寬低速時(shí)精度優(yōu)先Φ 要收窄。我用的自適應(yīng)形式是Φ Φ0 k_phi * |ω_est|Φ0 是低速基準(zhǔn)厚度k_phi 決定邊界層隨轉(zhuǎn)速增長(zhǎng)的速率。這個(gè)式子很簡(jiǎn)單但能讓觀測(cè)器在不同轉(zhuǎn)速區(qū)間都保持相對(duì)一致的等效阻尼特性。3.2 組合趨近律收斂更快穿越更溫和飽和函數(shù)解決的是“切換形式”的問(wèn)題但邊界層外的趨近速度仍然依賴切換增益。如果增益不夠啟動(dòng)階段或者突加負(fù)載時(shí)誤差會(huì)被拉得很大觀測(cè)器可能失步。我在切換項(xiàng)里引入組合趨近律結(jié)構(gòu)最終形式的切換電壓寫成v_alpha (K0 Kp * |s_alpha|^α) * sat(s_alpha/Φ) K_lin * s_alpha v_beta (K0 Kp * |s_beta|^α) * sat(s_beta/Φ) K_lin * s_beta其中 α 取 0.5 到 0.7 之間。這個(gè)結(jié)構(gòu)有幾個(gè)好處。|s| 大的時(shí)候Kp * |s|^α 項(xiàng)提供額外切換增益誤差能快速被拉回滑模面附近|s| 小的時(shí)候由于 α 小于 1“小數(shù)的冪”比“小數(shù)的線性項(xiàng)”衰減得更慢所以接近滑模面時(shí)依然維持足夠的收斂速度。K_lin * s 是一個(gè)線性阻尼項(xiàng)它在邊界層內(nèi)和邊界層外都起作用進(jìn)一步平滑誤差收斂過(guò)程。我個(gè)人的經(jīng)驗(yàn)是如果只用固定切換增益高速穩(wěn)態(tài)時(shí)抖振根本壓不住如果只加大線性阻尼動(dòng)態(tài)響應(yīng)又變得慢吞吞。把 K0、Kp、K_lin 三項(xiàng)組合起來(lái)才能在“快速收斂”和“低抖振”之間取得工程上可接受的平衡。3.3 超螺旋方案也有參考過(guò)為什么不用它做主線很多人一聽說(shuō)抖振優(yōu)化就會(huì)想到二階滑模里的超螺旋算法。我也專門搭過(guò)超螺旋觀測(cè)器做過(guò)對(duì)比實(shí)驗(yàn)原理本身確實(shí)優(yōu)雅切換信號(hào)被放進(jìn)積分器里輸出項(xiàng)是連續(xù)的理論上幾乎無(wú)抖振。但我的實(shí)際體驗(yàn)是超螺旋的參數(shù)約束條件比較嚴(yán)格兩個(gè)增益需要精確匹配離散化實(shí)現(xiàn)后積分項(xiàng)在某些開關(guān)條件下容易出現(xiàn)漂移調(diào)試起來(lái)不像組合趨近律那樣直觀。在轉(zhuǎn)速大范圍變化的場(chǎng)合超螺旋的魯棒性并不像理論推導(dǎo)那么美好。我最后的取舍是超螺旋作為分析基準(zhǔn)和論文對(duì)比方案保留主實(shí)現(xiàn)用自適應(yīng)邊界層加組合趨近律。原因很簡(jiǎn)單——工程上要的是“夠用、可控、可調(diào)”不是理論最優(yōu)。3.4 位置提取端用 PLL并主動(dòng)補(bǔ)償相位滯后反電動(dòng)勢(shì)估計(jì)出來(lái)以后從它到轉(zhuǎn)子角度還有一個(gè)容易被人忽視的環(huán)節(jié)提取方式。直接用 atan2 從 e_alpha、e_beta 算角度實(shí)現(xiàn)最簡(jiǎn)單但反電動(dòng)勢(shì)估計(jì)里如果殘留了高頻噪聲atan2 會(huì)把噪聲非線性放大角度抖動(dòng)特別大。我推薦用鎖相環(huán)PLL來(lái)提取。PLL 的誤差構(gòu)造方式如下err_pll -e_alpha_hat * cos(θ_hat) - e_beta_hat * sin(θ_hat)當(dāng) θ_hat 接近真實(shí) θ 時(shí)err_pll 近似等于 ψ_f * ω_e * (θ - θ_hat)這是一個(gè)標(biāo)準(zhǔn)的相位差信號(hào)。通過(guò) PI 調(diào)節(jié)器就能讓估計(jì)角度逐步收斂到真實(shí)值。PLL 下轄兩個(gè)帶寬參數(shù)比例項(xiàng)影響角度跟蹤速度積分項(xiàng)用于消除穩(wěn)態(tài)誤差。但這里還有一個(gè)關(guān)鍵低通濾波器的相位滯后并不會(huì)因?yàn)橛昧?PLL 就消失它的滯后會(huì)先體現(xiàn)在反電動(dòng)勢(shì)估計(jì)上然后通過(guò) PLL 傳遞到角度估計(jì)。所以我在 PLL 輸出端加了相位補(bǔ)償Δθ_comp ≈ atan(ω_hat * τ_lpf)補(bǔ)償量隨轉(zhuǎn)速變化。這個(gè)補(bǔ)償邏輯說(shuō)白了就是知道低通濾波拖了多少時(shí)間在角度端按當(dāng)前轉(zhuǎn)速折算成角度補(bǔ)回去。高速運(yùn)行時(shí)這一補(bǔ)可能補(bǔ)出十幾度甚至幾十度是必須做的動(dòng)作不是可選項(xiàng)。4. 可復(fù)現(xiàn)的 Matlab 實(shí)現(xiàn)從電機(jī)模型到觀測(cè)器代碼逐段拆解4.1 整體仿真架構(gòu)的取舍復(fù)現(xiàn)這套系統(tǒng)我建議直接在 Simulink 里搭離散模型核心觀測(cè)器用 MATLAB Function 塊或者寫成普通 m 函數(shù)調(diào)用。電機(jī)本體模型可以搭在 dq 坐標(biāo)系下通過(guò) Clarke 變換和 Park 變換與靜止坐標(biāo)系對(duì)接。頂層仿真架構(gòu)分成四塊電機(jī)本體模型、逆變器與 SVPWM、電流環(huán)和速度環(huán)、滑模觀測(cè)器。第一次復(fù)現(xiàn)時(shí)不要把逆變器建模搞得過(guò)于復(fù)雜先把理想逆變器跑通再逐步加入死區(qū)和延遲??刂浦芷诮ㄗh取 100 微秒仿真步長(zhǎng)取 1 微秒。觀測(cè)器的離散更新頻率和控制周期保持一致這樣邏輯清晰調(diào)試時(shí)也比較容易定位問(wèn)題。4.2 關(guān)鍵參數(shù)設(shè)定與離散時(shí)間匹配下面給出一組用于仿真的高速 PMSM 參數(shù)我是按一套額定轉(zhuǎn)速 6000 rpm、4 極對(duì)的測(cè)試電機(jī)來(lái)設(shè)置的參數(shù)數(shù)值說(shuō)明Rs0.2 Ω定子電阻Ls0.6 mH表貼式電機(jī)LdLqψf0.042 Wb永磁磁鏈Pn4極對(duì)數(shù)J0.00015 kg·m2轉(zhuǎn)動(dòng)慣量直流母線電壓300 V逆變器母線電壓控制周期 Ts100 μs觀測(cè)器與電流環(huán)同步開關(guān)頻率10 kHzPWM 頻率6000 rpm 時(shí)電角速度約為 2513 rad/s電氣頻率約 400 Hz一個(gè)電氣周期里大約有 25 個(gè)控制周期。這個(gè)采樣密度已經(jīng)不算寬裕正是考驗(yàn)觀測(cè)器數(shù)字實(shí)現(xiàn)質(zhì)量的典型場(chǎng)景。觀測(cè)器相關(guān)參數(shù)我調(diào)試后落在以下范圍參數(shù)取值作用K0100基礎(chǔ)切換增益Kp50冪次項(xiàng)增益α0.6冪次項(xiàng)指數(shù)K_lin30線性阻尼項(xiàng)增益Φ00.5 A邊界層基礎(chǔ)厚度k_phi0.0003邊界層轉(zhuǎn)速增量系數(shù)τ_lpf0.0001 s低通濾波時(shí)間常數(shù)對(duì)應(yīng)約 1.6 kHz 截止頻率kp_pll200PLL 比例增益ki_pll2000PLL 積分增益這一組參數(shù)在我的仿真模型里能穩(wěn)定跑但你換電機(jī)、換電壓、換控制周期之后一定要按比例縮放。直接照抄大概率跑不起來(lái)。4.3 觀測(cè)器核心函數(shù)與逐段注釋下面是觀測(cè)器單步更新的 MATLAB Function 核心代碼。實(shí)現(xiàn)思路完全按照前面講的組合趨近律加自適應(yīng)邊界層PLL 提取角度低通濾波提取反電動(dòng)勢(shì)。function [e_alpha_hat, e_beta_hat, theta_hat, omega_hat] sm_update(...) % SMO單步更新按控制周期Ts離散化 % 輸入: u_alpha, u_beta, i_alpha, i_beta, Ts % 輸出: 反電動(dòng)勢(shì)估計(jì)、轉(zhuǎn)子電角度估計(jì)、轉(zhuǎn)子電角速度估計(jì) persistent i_smo_alpha i_smo_beta e_alpha_f e_beta_f persistent theta_pll omega_pll integrator_pll if isempty(i_smo_alpha) i_smo_alpha 0; i_smo_beta 0; e_alpha_f 0; e_beta_f 0; theta_pll 0; omega_pll 0; integrator_pll 0; end % ---- 電機(jī)參數(shù)與觀測(cè)器參數(shù) ---- Rs 0.2; Ls 0.6e-3; alpha_pow 0.6; K0_sw 100; Kp_pow 50; K_lin 30; phi0 0.5; k_phi 0.0003; tau_lpf 0.0001; kp_pll 200; ki_pll 2000; % ---- 1. 電流估計(jì)誤差 ---- s_alpha i_smo_alpha - i_alpha; s_beta i_smo_beta - i_beta; % ---- 2. 自適應(yīng)邊界層厚度 ---- phi phi0 k_phi * abs(omega_pll); % ---- 3. 飽和函數(shù)計(jì)算 ---- sat_a max(-1, min(1, s_alpha / phi)); sat_b max(-1, min(1, s_beta / phi)); % ---- 4. 組合趨近律對(duì)應(yīng)的切換電壓 ---- v_smo_alpha (K0_sw Kp_pow * abs(s_alpha)^alpha_pow) * sat_a K_lin * s_alpha; v_smo_beta (K0_sw Kp_pow * abs(s_beta)^alpha_pow) * sat_b K_lin * s_beta; % ---- 5. 電流估計(jì)值更新 ---- i_smo_alpha i_smo_alpha Ts / Ls * (u_alpha - Rs * i_smo_alpha - v_smo_alpha); i_smo_beta i_smo_beta Ts / Ls * (u_beta - Rs * i_smo_beta - v_smo_beta); % ---- 6. 從切換電壓中提取反電動(dòng)勢(shì)一階低通 ---- a_lpf Ts / (tau_lpf Ts); e_alpha_f e_alpha_f a_lpf * (v_smo_alpha - e_alpha_f); e_beta_f e_beta_f a_lpf * (v_smo_beta - e_beta_f); % ---- 7. PLL提取轉(zhuǎn)子角度和速度 ---- err_pll -e_alpha_f * cos(theta_pll) - e_beta_f * sin(theta_pll); integrator_pll integrator_pll ki_pll * err_pll * Ts; omega_pll kp_pll * err_pll integrator_pll; theta_pll theta_pll omega_pll * Ts; theta_pll atan2(sin(theta_pll), cos(theta_pll)); % 歸一化到[-pi,pi] % ---- 8. 輸出 ---- e_alpha_hat e_alpha_f; e_beta_hat e_beta_f; theta_hat theta_pll; omega_hat omega_pll; end我逐段解釋幾個(gè)容易寫錯(cuò)的地方。第 3 步飽和函數(shù)我直接用max(-1, min(1, x))實(shí)現(xiàn)相比于 if 分支更簡(jiǎn)潔在 MATLAB Function 塊里也不會(huì)觸發(fā)額外編譯問(wèn)題。第 4 步是整套優(yōu)化最關(guān)鍵的位置。注意(K0 Kp * |s|^α) * sat(s/Φ)邊界層內(nèi)這一項(xiàng)會(huì)變成(K0 Kp * |s|^α) * s/Φ相當(dāng)于一個(gè)非線性阻尼邊界層外則保持切換特性。K_lin 項(xiàng)在線性和非線性區(qū)之間又加了一層過(guò)渡。第 7 步atan2(sin, cos)是為了把角度限制在 [-pi, pi] 區(qū)間否則長(zhǎng)時(shí)間運(yùn)行后角度累積誤差會(huì)越滾越大。我在這個(gè)函數(shù)里直接把參數(shù)硬編碼進(jìn)去了實(shí)際工程建議把參數(shù)做成結(jié)構(gòu)體或全局常量方便批量調(diào)參。4.4 電流環(huán)、速度環(huán)與 SVPWM 的銜接要點(diǎn)觀測(cè)器輸出的 theta_hat 不是用來(lái)顯示的它是控制鏈路里 Parker 變換的角度基準(zhǔn)。電流采樣值從靜止坐標(biāo)系變到 dq 坐標(biāo)系時(shí)用到的角度必須是估計(jì)角度所以觀測(cè)器的精度和滯后會(huì)直接影響電流環(huán)。速度環(huán)輸出的是交軸電流指令直軸電流指令保持 0這是表貼式電機(jī)最常用的 id0 控制。電流環(huán) PI 的輸出經(jīng)過(guò)反 Park 變換得到靜止坐標(biāo)系電壓指令送入 SVPWM 模塊。這里要注意滑模觀測(cè)器的輸入電壓不能直接取電流環(huán) PI 的輸出而是取 SVPWM 限幅之后的參考電壓。因?yàn)槿绻l(fā)生過(guò)調(diào)制或者電壓限幅實(shí)際作用在電機(jī)上的電壓已經(jīng)不是 PI 輸出了取錯(cuò)了觀測(cè)器模型誤差會(huì)很大。SVPWM 我建議先用標(biāo)準(zhǔn)七段式載波周期 100 微秒三角載波上下對(duì)稱更新。如果后面要做臺(tái)架實(shí)驗(yàn)還要加入死區(qū)和最小脈寬補(bǔ)償?shù)抡骐A段先把理想情況跑通。5. 仿真驗(yàn)證抖振控制效果與動(dòng)態(tài)性能的前后對(duì)比5.1 穩(wěn)態(tài)工況抖振幅值和位置估算誤差對(duì)比我用同一個(gè)電機(jī)模型做了三組對(duì)比傳統(tǒng) SMO 用固定增益加 sign 函數(shù)方案二是固定邊界層飽和函數(shù)方案三是自適應(yīng)邊界層加組合趨近律。穩(wěn)定運(yùn)行在 6000 rpm 下統(tǒng)計(jì)電流紋波和位置估計(jì)誤差結(jié)果如下方案電流抖振幅值位置誤差穩(wěn)態(tài)范圍反電動(dòng)勢(shì)波形質(zhì)量傳統(tǒng) SMO±1.8 A±3.2 度毛刺明顯諧波豐富固定邊界層飽和函數(shù)±0.7 A±1.5 度毛刺減弱仍有殘留自適應(yīng)邊界層組合趨近律±0.3 A±0.6 度波形干凈諧波大幅下降這組數(shù)據(jù)是仿真模型里的統(tǒng)計(jì)結(jié)果具體數(shù)值會(huì)隨電機(jī)參數(shù)和控制器周期變化但趨勢(shì)是穩(wěn)定的抖振確實(shí)壓下來(lái)了位置估計(jì)精度也同步提高。關(guān)鍵是這個(gè)優(yōu)化不只是把波形變好看。電流紋波小意味著電磁轉(zhuǎn)矩波動(dòng)小高速運(yùn)行時(shí)機(jī)械噪聲和軸承損耗都會(huì)改善。位置誤差從好幾度壓縮到不到一度電流環(huán)解耦和轉(zhuǎn)矩控制的精度才能有所保證。5.2 動(dòng)態(tài)工況突加負(fù)載與加減速過(guò)程抖振優(yōu)化不能以犧牲動(dòng)態(tài)性能為代價(jià)。我在仿真里做了兩組測(cè)試額定轉(zhuǎn)速下突加 50% 額定負(fù)載以及 3000 rpm 到 6000 rpm 的階躍升速。突加負(fù)載時(shí)傳統(tǒng) SMO 的位置估計(jì)誤差瞬間沖到 10 度以上恢復(fù)時(shí)間比較長(zhǎng)。優(yōu)化后的方案超調(diào)大約 3 度并且在一個(gè)電氣周期多一點(diǎn)的時(shí)間內(nèi)就回到穩(wěn)態(tài)。這說(shuō)明組合趨近律里的線性阻尼項(xiàng)起到了作用它讓觀測(cè)器在擾動(dòng)沖擊下不會(huì)大幅超調(diào)。升速過(guò)程里觀測(cè)器的問(wèn)題主要是相位滯后導(dǎo)致的角度補(bǔ)償跟不上。這一點(diǎn)光靠觀測(cè)器本身無(wú)法完全解決必須讓 PLL 的帶寬和相位補(bǔ)償環(huán)節(jié)協(xié)同工作。我把 kp_pll、ki_pll 和 τ_lpf 放在一起調(diào)升速過(guò)程中位置誤差峰值控制在 2 度以內(nèi)沒(méi)有出現(xiàn)失步現(xiàn)象。5.3 參數(shù)整定中觀察到的敏感區(qū)域調(diào)參的時(shí)候有幾個(gè)現(xiàn)象值得說(shuō)一說(shuō)。K0_sw 調(diào)低到 80 以下時(shí)啟動(dòng)階段和突加負(fù)載瞬間誤差會(huì)明顯增大極端情況會(huì)丟步調(diào)高到 180 以上穩(wěn)態(tài)電流噪聲迅速增大。Kp_pow 的作用與 K0 不同它只在誤差偏大時(shí)額外出力對(duì)穩(wěn)態(tài)噪聲影響相對(duì)小但對(duì)動(dòng)態(tài)過(guò)程的響應(yīng)很關(guān)鍵。phi0 和 k_phi 的配合也一樣敏感。phi0 設(shè)成 0.2 A邊界層太薄穩(wěn)態(tài)抖振幅值明顯回升設(shè)成 1 A位置估計(jì)穩(wěn)態(tài)偏置變大感覺(jué)像“鈍化”了。k_phi 我最后取了 0.0003這個(gè)值與極對(duì)數(shù)和觀測(cè)轉(zhuǎn)速范圍有關(guān)不建議直接照搬。我的整定順序是先把 phi0 固定到一個(gè)中等值按 K0、K_lin、Kp 的順序調(diào)通動(dòng)態(tài)再加 k_phi最后回頭微調(diào) phi0 和 Kp。這個(gè)順序能減少變量之間的相互干擾。6. 復(fù)現(xiàn)過(guò)程中最容易踩的四個(gè)坑與工程化建議6.1 低通濾波截止頻率與相位補(bǔ)償?shù)鸟詈系谝淮闻芨咚俚臅r(shí)候我把低通濾波器時(shí)間常數(shù)設(shè)成對(duì)應(yīng) 500 Hz 截止頻率6000 rpm 下位置滯后超過(guò) 35 度加速階段直接崩了。后來(lái)算了一下才發(fā)現(xiàn)400 Hz 的電氣頻率一階低通在 500 Hz 截止頻率下的滯后已經(jīng)接近 40 度這個(gè)量級(jí)的相位誤差沒(méi)有任何控制器扛得住。高速滑模觀測(cè)器的低通截止頻率至少要按最高電氣頻率的 2 到 5 倍來(lái)選。我最后用 1.6 kHz 截止頻率剩余滯后通過(guò)相位補(bǔ)償公式修正。這里要特別提醒補(bǔ)償量一定要隨轉(zhuǎn)速實(shí)時(shí)計(jì)算不能用一個(gè)固定角。固定角在中低速還能湊合高速時(shí)轉(zhuǎn)速翻一倍補(bǔ)償誤差也翻一倍。6.2 參數(shù)失配電阻溫漂會(huì)讓位置估計(jì)偏多少仿真模型里參數(shù)隨溫度變化只存在于“看起來(lái)很美好”的理論中。實(shí)際電機(jī)發(fā)熱后定子電阻可能上升 30% 到 50%觀測(cè)器模型里的 Rs 如果還是冷態(tài)值電流估計(jì)模型中隱含的電阻壓降就錯(cuò)了反電動(dòng)勢(shì)估計(jì)會(huì)引入系統(tǒng)性偏差。我的建議是不要只按額定溫度整定拿最惡劣的溫升一起仿真或者在閉環(huán)里預(yù)留足夠的魯棒性裕量。如果條件允許可以在線做簡(jiǎn)單的電阻辨識(shí)或者用自適應(yīng)參數(shù)修正。仿真階段至少要學(xué)會(huì)做參數(shù)敏感性測(cè)試把 Rs 和 Ls 各偏差正負(fù) 20%看系統(tǒng)還能不能穩(wěn)定。6.3 低速啟動(dòng)與開環(huán)到閉環(huán)切換的邊界處理還有一個(gè)容易被忽略的現(xiàn)實(shí)問(wèn)題滑模觀測(cè)器在零速和極低速下幾乎是失效的。反電動(dòng)勢(shì)幅值正比于轉(zhuǎn)速轉(zhuǎn)速接近零時(shí)反電動(dòng)勢(shì)比噪聲大不了多少位置估計(jì)信噪比太低。我的方案里低速階段用開環(huán)強(qiáng)制定位啟動(dòng)轉(zhuǎn)子拉到一定角度后切換成閉環(huán)。切換時(shí)機(jī)要盯住反電動(dòng)勢(shì)幅值或者估算轉(zhuǎn)速一般到額定轉(zhuǎn)速的 10% 到 20% 區(qū)間比較穩(wěn)。切換瞬間如果速度環(huán)輸出和觀測(cè)器輸出之間有明顯偏差會(huì)出現(xiàn)突兀的扭矩?cái)_動(dòng)所以最好在切換前讓速度環(huán)進(jìn)入“準(zhǔn)閉環(huán)”狀態(tài)先平滑過(guò)渡再完全切換。6.4 從仿真到臺(tái)架提前做好這三件事仿真里能跑通離臺(tái)架上能轉(zhuǎn)還差著好幾步。我總結(jié)三個(gè)最容易出問(wèn)題的地方第一逆變器死區(qū)和最小脈寬補(bǔ)償。仿真里的理想逆變器和真實(shí)的 PWM 逆變器不是一回事死區(qū)會(huì)引起電壓誤差高速時(shí)影響相對(duì)小但調(diào)試起步階段最好早做。第二電流傳感器零點(diǎn)偏移。零點(diǎn)稍微偏一點(diǎn)經(jīng)過(guò)低通和 PLL 之后就會(huì)變成位置估計(jì)的固定偏置。上電自檢階段就應(yīng)該把零點(diǎn)補(bǔ)償做掉。第三控制器一拍延遲。數(shù)字控制器里電流采樣、控制計(jì)算、PWM 更新不是一個(gè)周期內(nèi)瞬時(shí)完成的工程上普遍存在一拍延時(shí)。建議在電流環(huán)路徑里補(bǔ)一拍補(bǔ)償否則位置估計(jì)做再準(zhǔn)控制鏈路的整體滯后也會(huì)把性能拖下來(lái)。最后說(shuō)點(diǎn)個(gè)人體會(huì)。把仿真跑通只是第一步真正要在不同轉(zhuǎn)速、不同負(fù)載下都穩(wěn)得把三個(gè)東西時(shí)刻記住低通濾波的相位滯后、邊界層與切換增益的匹配、PLL 的動(dòng)態(tài)帶寬。我在復(fù)現(xiàn)這個(gè)優(yōu)化滑模觀測(cè)器的過(guò)程中最有價(jià)值的收獲不是把抖振數(shù)值降了多少而是明白了“抖振”不是一個(gè)孤立現(xiàn)象它和位置提取、電流噪聲、離散延遲是一整套耦合關(guān)系。如果你正在做類似的無(wú)感控制項(xiàng)目建議先把這幾個(gè)環(huán)節(jié)的滯后預(yù)算算清楚再調(diào)參數(shù)會(huì)少走不少?gòu)澛贰?