控制仿真與實(shí)物差異:從坐標(biāo)變換到電流環(huán)整定)
簡介《現(xiàn)代永磁同步電機(jī)控制原理及MATLAB仿真》系袁雷編著的隨書配套仿真資料面向電機(jī)控制方向?qū)W生、工程師及從事PMSM算法驗(yàn)證的研發(fā)人員。壓縮包共61個(gè)文件內(nèi)含36個(gè)Simulink模型slx、19個(gè)MATLAB腳本m、3個(gè)圖窗fig、2個(gè)仿真模型mdl及原書PDF整體約50.33MB按章節(jié)組織便于對(duì)應(yīng)學(xué)習(xí)。內(nèi)容覆蓋PMSM建模、Clark/Park坐標(biāo)變換、SVPWM與SPWM調(diào)制、矢量控制、直接轉(zhuǎn)矩控制、參數(shù)辨識(shí)、高頻注入及滑模/自適應(yīng)觀測器等多個(gè)典型章節(jié)每個(gè)模型均配有可運(yùn)行的仿真代碼和繪圖腳本能直觀呈現(xiàn)控制算法的動(dòng)態(tài)響應(yīng)與諧波特性。對(duì)于初學(xué)者可結(jié)合原書逐步搭建并理解控制原理對(duì)于工程人員可直接修改參數(shù)復(fù)用模型節(jié)省建模時(shí)間。資源已有2542人次學(xué)習(xí)適合作為課程設(shè)計(jì)、畢業(yè)設(shè)計(jì)或電機(jī)控制預(yù)研項(xiàng)目的參考模板。1. 同一套PI參數(shù)仿真穩(wěn)定、實(shí)物卻振蕩永磁同步電機(jī)控制差在哪一層做過永磁同步電機(jī)MATLAB仿真的人幾乎都撞過這堵墻在Simulink里調(diào)好的電流環(huán)PI參數(shù)波形漂亮得能當(dāng)教科書插圖——電流無超調(diào)、轉(zhuǎn)速穩(wěn)如直線、轉(zhuǎn)矩響應(yīng)快得像切菜??梢坏┌堰@組參數(shù)搬到實(shí)物平臺(tái)上電流紋波變大、噪聲刺耳甚至直接發(fā)散去炸管子。這是玄學(xué)嗎不是。這背后是「仿真模型里被省略的延遲」和「教科書沒寫透的離散化機(jī)制」在起作用。仿真不是實(shí)物但一個(gè)設(shè)計(jì)良好的仿真模型應(yīng)該在機(jī)制層面與你期望的物理系統(tǒng)同構(gòu)電流采樣延遲、PWM更新時(shí)機(jī)、積分飽和、死區(qū)效應(yīng)這些控制回路里的真實(shí)環(huán)節(jié)才是決定系統(tǒng)穩(wěn)不穩(wěn)的底層變量。這本書的實(shí)戰(zhàn)價(jià)值正在于此——它不只給公式還把坐標(biāo)變換、電流環(huán)整定、SVPWM調(diào)制這些環(huán)節(jié)在MATLAB里如何準(zhǔn)確建模的問題講透了。想搞懂為什么「仿真能work、實(shí)物卻翻車」就得從電機(jī)數(shù)學(xué)模型的建立那一層開始重新審視。2. dq坐標(biāo)下的真相Clark/Park變換為何是矢量控制的地基2.1 三相繞組里的「看得到、控制不住」問題永磁同步電機(jī)的定子繞組是三相空間上互差120度分布的三相電流 ia、ib、ic 在時(shí)間上互差120度電角度。你直接去控制三相電流面臨的是三個(gè)耦合的交流量它們的幅值在變、頻率在變而且磁鏈在每一相繞組上產(chǎn)生的反電動(dòng)勢還與轉(zhuǎn)子位置有關(guān)。更麻煩的是轉(zhuǎn)矩并不是由某一相電流單獨(dú)決定的而是三相互相疊加的結(jié)果。在abc坐標(biāo)系下寫轉(zhuǎn)矩方程表達(dá)式是一堆正弦函數(shù)的乘積和控制上幾乎無法直接設(shè)計(jì)線性調(diào)節(jié)器。這種「物理清晰、數(shù)學(xué)混亂」的局面就是坐標(biāo)變換存在的根本理由??刂评碚撎幚砭€性時(shí)不變系統(tǒng)是成熟的所以先想辦法把一個(gè)交流、耦合、時(shí)變的三相系統(tǒng)變換成一個(gè)直流、解耦、時(shí)不變的二相系統(tǒng)——這就是Clark變換和Park變換干的事。理解的鑰匙在于這兩級(jí)變換都不是物理上的繞組重組而是數(shù)學(xué)上對(duì)同一矢量的不同投影坐標(biāo)系。2.2 Clark變換從abc到αβ的投影Clark變換把三相靜止坐標(biāo)系abc投影到兩相靜止坐標(biāo)系αβα軸與a軸重合β軸超前α軸90度。等幅值約束下變換式如下function [i_alpha, i_beta] clark_transform(ia, ib, ic) % 等幅值Clark變換把三相電流投影到兩相靜止坐標(biāo)系 % 系數(shù)2/3保證變換前后電流幅值不變等幅值約束 i_alpha (2/3) * (ia - 0.5*ib - 0.5*ic); i_beta (2/3) * (sqrt(3)/2 * (ib - ic)); end注意那行注釋里的玄機(jī)。2/3這個(gè)系數(shù)對(duì)應(yīng)的是等幅值變換如果你看到哪個(gè)文獻(xiàn)用sqrt(2/3)那是在做等功率變換。兩種約束下的Park變換公式和轉(zhuǎn)矩表達(dá)式系數(shù)會(huì)不同用混了仿真里轉(zhuǎn)矩?cái)?shù)值會(huì)差一個(gè)sqrt(3/2)的倍數(shù)但波形形狀一樣——這個(gè)錯(cuò)誤極難排查因?yàn)樗粓?bào)錯(cuò)只讓結(jié)果「看起來有點(diǎn)不對(duì)」。實(shí)際工程里推薦全程統(tǒng)一用等幅值約束因?yàn)樵赟VPWM調(diào)制環(huán)節(jié)里電壓幅值直接對(duì)應(yīng)母線電壓等幅值約東下算出來的調(diào)制比更直觀。Clark變換之后三相交流變成了兩相交流頻率和幅值信息還在但依然隨時(shí)間變化。2.3 Park變換把「旋轉(zhuǎn)」變成「靜止」Park變換是坐標(biāo)變換的點(diǎn)睛之筆。它把αβ靜止坐標(biāo)系旋轉(zhuǎn)到與轉(zhuǎn)子磁極同步旋轉(zhuǎn)的dq坐標(biāo)系旋轉(zhuǎn)角度取轉(zhuǎn)子電角度θe。變換式是function [id, iq] park_transform(i_alpha, i_beta, theta_e) % Park變換從靜止兩相坐標(biāo)到旋轉(zhuǎn)dq坐標(biāo) % theta_e 電角度 極對(duì)數(shù) * 機(jī)械角度 id i_alpha * cos(theta_e) i_beta * sin(theta_e); iq -i_alpha * sin(theta_e) i_beta * cos(theta_e); end做完這一步永磁同步電機(jī)的電流從此變成了兩個(gè)直流量id 是沿轉(zhuǎn)子磁極軸線d軸的分量iq 是垂直于磁極軸線q軸的分量。關(guān)鍵在于電角度 θe 必須實(shí)時(shí)跟隨轉(zhuǎn)子位置——這就是編碼器存在的意義。也因此坐標(biāo)變換的性能直接取決于角度反饋的準(zhǔn)確性角度有偏差解耦就不徹底dq軸會(huì)出現(xiàn)殘余耦合表現(xiàn)在運(yùn)行上就是電流波形里有固定頻率的脈動(dòng)。這就是矢量控制的全部秘密所謂矢量控制本質(zhì)上就是「在旋轉(zhuǎn)坐標(biāo)下控制兩臺(tái)直流電機(jī)」——d軸勵(lì)磁通道和q軸轉(zhuǎn)矩通道。物理上還是那臺(tái)交流電機(jī)數(shù)學(xué)模型上已經(jīng)被你改造成了直流電機(jī)。2.4 電壓方程與轉(zhuǎn)矩方程dq域中的那一堆耦合項(xiàng)在dq坐標(biāo)系下表貼式永磁同步電機(jī)的定子電壓方程寫為ud Rs·id Ls·did/dt ? ωe·Lq·iq uq Rs·iq Ls·diq/dt ωe·(Ld·id ψf)方程里的 ?ωe·Lq·iq 和 ωe·Ld·id 就是交叉耦合電動(dòng)勢項(xiàng)。轉(zhuǎn)速越高這兩項(xiàng)越大它們會(huì)干擾你設(shè)計(jì)的電流環(huán)帶寬。教科書里經(jīng)常用「電壓前饋解耦」來處理它把這兩項(xiàng)補(bǔ)償進(jìn)電流環(huán)的輸出里讓電流環(huán)面對(duì)的是一個(gè)更接近純一階慣性環(huán)節(jié)的控制對(duì)象。轉(zhuǎn)矩方程表貼式LdLq簡化為Te 1.5·pn·ψf·iq這就是「id0控制」能用「線性轉(zhuǎn)矩」的根源只要你把id控到0轉(zhuǎn)矩與iq嚴(yán)格成正比控制轉(zhuǎn)矩就是控制iq控制iq就是控制一個(gè)直流量線性PI調(diào)節(jié)器可以深度優(yōu)化。所以理解dq變換不只是學(xué)會(huì)兩行代碼而是要推導(dǎo)出「id0為什么能線性化轉(zhuǎn)矩」這個(gè)結(jié)論。3. 電流環(huán)PI帶寬整定、零極點(diǎn)對(duì)消與那一拍延遲3.1 電流環(huán)的控制對(duì)象其實(shí)是「R-L串聯(lián)回路」從電壓方程往下看如果忽略反電動(dòng)勢交叉耦合項(xiàng)的擾動(dòng)dq軸電流環(huán)的控制對(duì)象就是L·di/dt u ? R·i這個(gè)一階RL網(wǎng)絡(luò)的傳遞函數(shù)是 1/(LsR)它只有一個(gè)極點(diǎn)位于 s?R/L。電氣時(shí)間常數(shù) τe L/R在表貼式電機(jī)上大約是幾毫秒量級(jí)——這個(gè)極點(diǎn)決定了對(duì)電流指令的響應(yīng)速度。設(shè)計(jì)電流環(huán)PI調(diào)節(jié)器的教科書方法是讓PI的零點(diǎn)對(duì)消對(duì)象的極點(diǎn)也就是把PI調(diào)節(jié)器的零點(diǎn)放在 s?R/L 上。數(shù)學(xué)上這樣寫C(s) Kp Ki/s Kp·(s Ki/Kp)/s令 Ki/Kp R/L對(duì)象變成 1/(LsR)對(duì)消后開環(huán)傳函近似為 Kp/(Ls)。閉環(huán)傳函就化簡成了典型一階慣性G_cl(s) ≈ 1/(s/(Kp/L) 1)所以電流環(huán)帶寬與Kp的關(guān)系一清二楚ωc Kp/L而Ki由對(duì)消關(guān)系自動(dòng)確定Ki Kp·R/L ωc·R。3.2 Kp和Ki的物理解釋不是調(diào)出來的是算出來的把上面的推導(dǎo)變成可落地的方法就是帶寬法整定。目標(biāo)帶寬ωc取多大取決于你期望的電流響應(yīng)速度以及一個(gè)硬約束帶寬不能超過開關(guān)頻率的1/10到1/5。舉個(gè)Simulink仿真實(shí)例取某表貼式永磁同步電機(jī)參數(shù)Rs2.875ΩLs0.0085H極對(duì)數(shù)5開關(guān)頻率10kHz。目標(biāo)電流環(huán)帶寬取1200rad/s左右。計(jì)算如下% 電流環(huán)PI參數(shù)計(jì)算帶寬法 % 對(duì)消關(guān)系 Ki/Kp Rs/Ls閉環(huán)帶寬 omega_c Kp/Ls Rs 2.875; % 定子電阻單位歐姆 Ls 0.0085; % 定子電感單位亨 omega_c 1200 * (2*pi/1000); % 目標(biāo)帶寬這里取約1200rad/s Kp omega_c * Ls; % 比例增益單位V/A Ki omega_c * Rs; % 積分增益單位V/(A*s) % 輸出 Kp 10.2; % 對(duì)應(yīng)典型仿真取值 Ki 68.7;Kp的物理意義是「每安培電流誤差對(duì)應(yīng)多少伏特電壓修正」。Kp越大電流響應(yīng)越快但太大時(shí)抗噪聲能力差而且數(shù)字控制延遲會(huì)在高帶寬下導(dǎo)致相位裕度顯著下降最后振蕩。Ki的物理意義是「穩(wěn)態(tài)誤差的積分速度」。把Ki提太高積分器會(huì)搶在電感電流還沒爬到位之前就大量累積導(dǎo)致超調(diào)與振蕩。做仿真時(shí)最常犯的毛病是先調(diào)Kp到波形看起來尖利再補(bǔ)Ki消除穩(wěn)態(tài)靜差——其實(shí)正確的順序是先定目標(biāo)帶寬ωc然后Kp和Ki同時(shí)算出來再看波形微調(diào)。那種「手動(dòng)試探調(diào)到不炸」的玩法到了實(shí)物上必然翻車因?yàn)槟阏{(diào)出來的參數(shù)大概率不在解耦條件上抗擾動(dòng)能力完全失控。3.3 數(shù)字控制中的那一拍延遲仿真忽略它就是自欺欺人前面帶寬法的推導(dǎo)默認(rèn)電流環(huán)是連續(xù)時(shí)間系統(tǒng)。但真實(shí)的數(shù)字控制器里電流采樣、PWM占空比更新都帶著離散化延遲。MATLAB仿真里如果你用理想連續(xù)模塊搭電流環(huán)Kp取大一點(diǎn)波形依然完美但實(shí)物上電流反饋要經(jīng)過ADC采樣、運(yùn)算、再等下一個(gè)PWM周期才生效——這就多出一拍周期Ts的純延遲可以建模為 e^(-sTs)近似為一階慣性環(huán)節(jié) 1/(sTs1)。這一拍延遲會(huì)直接吃掉相位裕度。假設(shè)Ts1e-4秒10kHz采樣僅為該延遲在目標(biāo)帶寬1200rad/s下產(chǎn)生的延遲角約為1200×1e-40.12rad換算約7度。再疊加濾波器延遲和計(jì)算延遲相位裕度可能從60度被蠶食到不足30度——臨界振蕩的邊緣。所以一個(gè)「仿真與實(shí)物一致性」好的模型在Simulink里必須把采樣保持器Zero-Order Hold、PWM更新延遲通常用Transport Delay或單位延遲模塊、濾波器延遲都模擬出來。仿真里看不到震蕩是因?yàn)檫@些延遲模塊缺失系統(tǒng)看起來帶寬極高、極其穩(wěn)定。3.4 積分飽和與反算積分鉗位仿真里最容易完美、實(shí)物里最致命的環(huán)節(jié)另一個(gè)Simulink仿真里被忽視、實(shí)物中幾乎必炸的細(xì)節(jié)是積分飽和。電流環(huán)PI輸出后面跟著SVPWM調(diào)制限幅你最大只能輸出母線電壓映射出來的相電壓幅值。當(dāng)PI輸出頂?shù)较薹禃r(shí)誤差依舊很大積分器還在繼續(xù)累積把輸出推到離限幅值很遠(yuǎn)的地方——這就是windup。一旦擾動(dòng)解除誤差反號(hào)積分器還得先把這幾倍的累積量泄掉輸出才會(huì)脫離飽和這段時(shí)間系統(tǒng)完全失控電流會(huì)出現(xiàn)大幅回落或沖擊。常見的抗積分飽和方案是條件積分或反算法。反算法在仿真里實(shí)現(xiàn)起來非常直觀且有效function [y, anti_windup_state] pi_with_anti_windup(ek, state, Kp, Ki, Ts, y_max) % 帶反算法抗積分飽和的PI調(diào)節(jié)器 % 核心當(dāng)輸出飽和時(shí)把積分器額外回調(diào)防止積分器沖得太遠(yuǎn) persistent integrator; % 持久變量保存積分狀態(tài) if isempty(integrator), integrator 0; end integrator integrator Ki * ek * Ts; % 先正常積分 y Kp * ek integrator; % 計(jì)算總輸出 if y y_max integrator integrator (y_max - y); % 反算鉗位把超出的部分吐回去 y y_max; elseif y -y_max integrator integrator (-y_max - y); y -y_max; end anti_windup_state integrator; end這段代碼里最值得品味的不是積分本身而是那句吐回去( y_max ? y )的修正——它讓積分器永遠(yuǎn)停在「正好讓輸出到達(dá)限幅值」的位置。仿真里如果不做這一步限幅時(shí)積分器會(huì)在飽和值之上繼續(xù)堆疊等你要從飽和中退出時(shí)系統(tǒng)要花數(shù)倍時(shí)間恢復(fù)起動(dòng)時(shí)刻轉(zhuǎn)速超調(diào)會(huì)非??鋸?。在Simulink里你可以用飽和模塊后接一個(gè)減法器反饋到積分器輸入端實(shí)現(xiàn)相同的反算鉗位。這類環(huán)節(jié)在實(shí)物上是穩(wěn)定性剛需而不是錦上添花。4. SVPWM八個(gè)開關(guān)狀態(tài)如何平均出一個(gè)連續(xù)電壓4.1 逆變器的八個(gè)狀態(tài)每個(gè)都是電壓矢量SVPWM輸入的是一條d/q電壓指令經(jīng)過反Park變換得到vα、vβ輸出是逆變器六個(gè)功率管的開關(guān)占空比。逆變器只有六只管子三組上下橋臂每組只允許上管開或下管開——這就決定了共8種開關(guān)狀態(tài)。每種狀態(tài)都對(duì)應(yīng)一個(gè)確定的相電壓組合映射到αβ坐標(biāo)系成一個(gè)空間電壓矢量。其中6個(gè)非零矢量V1到V6幅值均為(2/3)·Udc空間上均勻分布成六邊形角度間隔60度。剩下兩個(gè)零矢量V0和V7輸出零電壓。任何你想要的參考電壓矢量v_ref只要它落在由這6個(gè)非零矢量圍成的正六邊形內(nèi)部就可以用相鄰兩個(gè)非零矢量和零矢量在時(shí)間上加權(quán)平均出來。這個(gè)「用開關(guān)狀態(tài)的占空比組合時(shí)間平均地合成連續(xù)電壓」的思想就是SVPWM的全部核心。跟SPWM相比它的母線電壓利用率高了15.47%這個(gè)15.47%不是一個(gè)玄學(xué)數(shù)字而是來自一個(gè)幾何事實(shí)SPWM能合成的最大相電壓幅值是Udc/2而SVPWM的6個(gè)基本矢量幅值是(2/3)·Udc圓形軌跡內(nèi)切于六邊形可合成的最大相電壓幅值可以達(dá)到Udc/√3兩者之比正好是2/√3 ≈ 1.1547。4.2 扇區(qū)判斷與作用時(shí)間計(jì)算用代碼理解SVPWM骨架SVPWM的實(shí)現(xiàn)三件事判斷參考矢量落在哪個(gè)扇區(qū)計(jì)算相鄰矢量作用時(shí)間最后映射成三相PWM占空比。function [Ta, Tb, Tc] svpwm_calc(v_alpha, v_beta, Udc, Ts) % SVPWM核心計(jì)算輸入αβ軸電壓輸出三相占空比 % 第一步根據(jù)v_alpha/v_beta決定扇區(qū)編號(hào) % 判據(jù)本質(zhì)是三個(gè)中間變量與0的大小關(guān)系 v1 v_beta; v2 (sqrt(3)/2) * v_alpha - 0.5 * v_beta; v3 -v2 - v_beta; if v1 0.0, A 1; else, A 0; end if v2 0.0, B 1; else, B 0; end if v3 0.0, C 1; else, C 0; end sector A 2*B 4*C; % 經(jīng)典扇區(qū)編碼 % 第二步計(jì)算X/Y/Z中間變量 X (sqrt(3)/2) * v_alpha - 0.5 * v_beta; Y v_beta; % 注意扇區(qū)不同時(shí)X/Y/Z的選取不同便宜寫法見下 Z -(sqrt(3)/2) * v_alpha - 0.5 * v_beta; ... end扇區(qū)判斷的本質(zhì)是把αβ平面按60度分成6份每條扇區(qū)邊界對(duì)應(yīng)一個(gè)中間變量等于0的直線條件。這三個(gè)中間變量兩兩組合正好把整個(gè)平面切出6個(gè)60度楔形區(qū)域。作用時(shí)間計(jì)算則是根據(jù)伏秒平衡方程V_ref·Ts V_a·T_a V_b·T_b V_0·T_0其中T_a、T_b是相鄰兩個(gè)基本矢量的作用時(shí)間T_0是零矢量填充時(shí)間。這個(gè)方程解出來就是簡單的代數(shù)式但要注意當(dāng)T_a T_b 超過Ts時(shí)發(fā)生過調(diào)制需要對(duì)時(shí)間做等比例縮放否則實(shí)際輸出的電壓會(huì)發(fā)生畸變。許多仿真模型不處理過調(diào)制結(jié)果在高速大扭矩工況下電流波形出現(xiàn)削頂失真。4.3 死區(qū)時(shí)間平均模型與開關(guān)模型的差異根源逆變器的上下橋臂不能同時(shí)導(dǎo)通否則直通炸毀。所以換流時(shí)要插入一個(gè)死區(qū)時(shí)間典型2到4微秒在這個(gè)時(shí)間里上下管全關(guān)。死區(qū)使得實(shí)際輸出電壓與指令電壓產(chǎn)生偏差偏差大小與電流方向有關(guān)——電流方向決定是不起電流繼續(xù)通過續(xù)流二極管續(xù)流還是被強(qiáng)制換向。結(jié)果就是電流過零點(diǎn)附近出現(xiàn)電壓畸變產(chǎn)生額外諧波和轉(zhuǎn)矩脈動(dòng)嚴(yán)重時(shí)會(huì)產(chǎn)生噪音和低速抖動(dòng)。在Simulink里用平均值模型等效為一個(gè)增益加限幅的環(huán)節(jié)搭逆變器死區(qū)效應(yīng)完全不可見而用帶開關(guān)管和死區(qū)時(shí)間的模型才能看到過零畸變。仿真階段的分析思路應(yīng)該是先用平均模型驗(yàn)證控制算法收斂再切換成帶死區(qū)的開關(guān)模型來評(píng)估實(shí)際損耗和電流畸變最后才是實(shí)物驗(yàn)證。跳過第二步直接拿平均模型的波形去對(duì)比實(shí)物大概率會(huì)對(duì)不上。5. 仿真踩坑排查五種最常翻車的PMSM模型細(xì)節(jié)5.1 現(xiàn)象PI參數(shù)與帶寬計(jì)算值一致但電流發(fā)散原因大多是電機(jī)參數(shù)標(biāo)稱值與模型實(shí)際參數(shù)不一致——對(duì)不對(duì)消不重要重要的是你用的電阻/電感是不是模型里真實(shí)值。如果模型中L0.0085H而整定時(shí)用了標(biāo)稱值0.0085H但實(shí)際Simulink模塊中寫的是0.006H極點(diǎn)對(duì)消失效系統(tǒng)相位裕度不可測。解決直接在MATLAB工作區(qū)里讀模型參數(shù)用同一個(gè)變量去算PI參數(shù)而不是手抄數(shù)值。把 Rs、Ls 定義成腳本變量模型參數(shù)與整定參數(shù)共用同一變量就徹底杜絕了這個(gè)隱患。5.2 現(xiàn)象電流波形有鋸齒狀毛刺FFT顯示諧波很大原因仿真步長太大。SVPWM開關(guān)頻率10kHz如果你用變步長求解器搭配默認(rèn)容忍度步長可能超過PWM周期的十分之一采樣點(diǎn)不足電流紋波被混疊成鋸齒還會(huì)帶來虛假的高頻諧波。解決改用固定步長離散求解器步長設(shè)為一個(gè)開關(guān)周期能整除的數(shù)值比如10kHz對(duì)應(yīng)Ts1e-4取步長1e-4或更小一個(gè)數(shù)量級(jí)。速度環(huán)帶寬低所以可以用插值步進(jìn)但電流環(huán)所在的PWM與逆變器部分必須固定步長離散求解器如ode3或ode4否則仿真結(jié)果是不可信的。5.3 現(xiàn)象電機(jī)負(fù)載正常但轉(zhuǎn)速一直上不去或者轉(zhuǎn)矩反向原因Park變換里的角度用了機(jī)械角度而不是電角度——漏了極對(duì)數(shù)乘子。極對(duì)數(shù)5的電機(jī)機(jī)械角度轉(zhuǎn)一圈電角度要走五圈。電角度錯(cuò)了dq軸解耦全錯(cuò)控制相當(dāng)于在對(duì)看不見的坐標(biāo)系做閉環(huán)表現(xiàn)就是轉(zhuǎn)矩命令與實(shí)際轉(zhuǎn)矩完全對(duì)不上。解決theta_e 極對(duì)數(shù) × 轉(zhuǎn)子機(jī)械角度。在Simulink里用增益模塊乘上極對(duì)數(shù)再送入Park變換。同時(shí)檢查Park變換里的符號(hào)約定——不同的文獻(xiàn)中id/iq公式中正負(fù)號(hào)約定不同混用會(huì)導(dǎo)致d軸和q軸顛倒現(xiàn)象同樣是轉(zhuǎn)矩反饋不一致。5.4 現(xiàn)象起動(dòng)瞬間電流尖峰巨大轉(zhuǎn)速超調(diào)超過30%原因沒做積分限幅或反算抗飽和起動(dòng)時(shí)PI積分器瘋狂累積電流指令已經(jīng)超過最大允許值轉(zhuǎn)矩曲線被限幅后積分器處于飽和狀態(tài)轉(zhuǎn)速?zèng)_過頭后再反向修正造成大幅震蕩。仿真里如果發(fā)現(xiàn)電流指令被限幅的時(shí)間超過一個(gè)數(shù)學(xué)時(shí)間常數(shù)就要去查積分飽和。解決給電流環(huán)PI模塊加輸出限幅參數(shù)yt_max并把限幅后的誤差回送到積分器輸入反算法。這個(gè)方法在仿真里用的是一個(gè)零階保持模塊取反饋差值在代碼里用5.4里展示的matlab函數(shù)實(shí)現(xiàn)。效果立竿見影起動(dòng)電流尖峰能被壓在限幅值上平滑過渡。5.5 現(xiàn)象仿真結(jié)果與MATLAB版本升級(jí)后對(duì)不上了舊.mdl邏輯在新版里出現(xiàn)代數(shù)環(huán)報(bào)錯(cuò)原因不同版本Simulink對(duì)代數(shù)環(huán)的求解策略不同而代數(shù)環(huán)的產(chǎn)生往往是因?yàn)樾盘?hào)直接反饋而中間沒有單位延遲或狀態(tài)模塊。電流環(huán)的采樣延遲用單位延遲模塊避免純前饋回路出現(xiàn)代數(shù)環(huán)如果你直接用一個(gè)增益模塊從電流反饋連到PWM指令而不經(jīng)過延遲或狀態(tài)舊版可能容忍新版直接報(bào)虛警或給出奇怪結(jié)果。解決把PWM調(diào)制前的信號(hào)路徑全部經(jīng)過Unit Delay模塊或離散采樣保持器使其物理意義為「本拍的輸出基于上一拍的采樣值」。同時(shí)讓模型里狀態(tài)數(shù)盡量少——每個(gè)閉環(huán)回路至少有一個(gè)狀態(tài)變量積分器或延遲這是仿真模型與真實(shí)因果關(guān)系對(duì)齊的底線要求。6. id0之外MTPA與弱磁控制的設(shè)計(jì)取舍6.1 為什么默認(rèn)方案是id0以及它讓渡了什么id0控制的核心動(dòng)機(jī)在第二章里推導(dǎo)過表貼式永磁同步電機(jī)Ld≈Lq轉(zhuǎn)矩與iq線性掛鉤id0就是效率最優(yōu)解。對(duì)于凸極永磁同步電機(jī)Ld明顯小于Lq磁阻轉(zhuǎn)矩(Ld?Lq)·id·iq不為零id0等于放棄了這筆天然紅利。此時(shí)真正的最優(yōu)方案是MTPA最大轉(zhuǎn)矩電流比在輸出某轉(zhuǎn)矩的最少電流組合中id和iq的關(guān)系是id?(Ld?Lq)·iq/ψf之類的代數(shù)方程比id0更加繞但同一轉(zhuǎn)矩下電流更小銅耗更低。設(shè)計(jì)的取舍點(diǎn)在于MTPA雖然省電但需要精確知道Ld、Lq、ψf而這些參數(shù)在運(yùn)行中會(huì)因溫升、磁飽和而變化。id0對(duì)這些偏差幾乎是免疫的魯棒性極強(qiáng)。所以工程實(shí)用的思路是低速區(qū)先用id0控制在生產(chǎn)高端產(chǎn)品并且標(biāo)定資源充足時(shí)才切換到MTPA查表方案。6.2 弱磁控制電壓極限下的最后一根稻草當(dāng)轉(zhuǎn)速升高到反電動(dòng)勢接近母線電壓上限時(shí)電流環(huán)的輸出將觸及限幅轉(zhuǎn)矩能力急劇下降。弱磁控制的本質(zhì)是注入負(fù)id用d軸磁動(dòng)勢抵消部分永磁體磁鏈從而在電壓受限條件下提高可運(yùn)行的最高轉(zhuǎn)速。從數(shù)學(xué)角度看電壓極限方程是 (Ld·idψf)2 (Lq·iq)2 ≤ (Umax/ωe)2。要為iq騰出空間就必須壓小id或讓(Ld·idψf)變小。注入負(fù)id就是直接沿這條邊界運(yùn)行。這一段控制策略的門道在于弱磁深度越大電流越大、鐵耗越大、效率越差而且參數(shù)偏差導(dǎo)致的性能退化更敏感。所以控制策略設(shè)計(jì)的取舍本質(zhì)是對(duì)效率和寬調(diào)速范圍的權(quán)衡。把這套思想落地驗(yàn)證的方法很樸素先在MATLAB里搭一套帶MTPA或弱磁算法的完整模型先仿真在額定轉(zhuǎn)速以下驗(yàn)證電機(jī)效率對(duì)比曲線再模擬電壓跌落的極端工況。我習(xí)慣的做法是每一次修改控制策略都強(qiáng)制自己先在不開環(huán)、不加負(fù)載的條件下跑一遍無載起動(dòng)觀察電流和轉(zhuǎn)速的對(duì)應(yīng)關(guān)系再加大負(fù)載。這一遍下來大多能提前發(fā)現(xiàn)坐標(biāo)變換或參數(shù)初始化的問題——比直接滿載跑要省心得多。仿真不是把控制器畫完就結(jié)束了而是要讓模型里的每一個(gè)延遲、每一個(gè)限幅都有物理解釋這一步做得越細(xì)你離「實(shí)物一次起動(dòng)成功」就近一步。希望幫到你。本文還有配套的精品資源點(diǎn)擊獲取