SVPWM仿真搭建與調(diào)試)
三相PWM整流器雙閉環(huán)控制是電力電子仿真里很經(jīng)典的一套結(jié)構(gòu)電壓外環(huán)穩(wěn)住直流側(cè)電壓電流內(nèi)環(huán)控制網(wǎng)側(cè)電流波形和功率因數(shù)最后用SVPWM調(diào)制驅(qū)動(dòng)三相橋臂。這篇文章直接說(shuō)說(shuō)在 MATLAB/Simulink 里怎樣把這套模型搭出來(lái)參數(shù)怎么設(shè)跑出來(lái)什么波形算正常仿真發(fā)散或波形畸變時(shí)又該往哪里查。這套仿真適合三類人一是研究生寫論文需要把三相 PWM 整流器的控制算法用仿真驗(yàn)證一遍二是做并網(wǎng)變流器、儲(chǔ)能 PCS、電機(jī)回饋制動(dòng)等方向的工程師先在小模型里驗(yàn)證控制邏輯三是剛接觸 SVPWM 的人想看看空間矢量調(diào)制怎么和雙閉環(huán)接起來(lái)。很多人卡住不是因?yàn)楦拍铍y懂而是模型里一個(gè)采樣時(shí)間、一個(gè) PI 極性、一個(gè) SVPWM 扇區(qū)判斷寫錯(cuò)結(jié)果整個(gè)波形都不對(duì)。下面按我實(shí)際搭建時(shí)的順序拆開講。1. 先搞清楚這套仿真在解決什么問(wèn)題1.1 “雙閉環(huán)”不是兩個(gè)PI簡(jiǎn)單疊加三相PWM整流器本質(zhì)上是把交流電變成直流電同時(shí)還能控制輸入電流的波形和相位。和普通不控整流相比它不需要靠二極管自然導(dǎo)通而是用IGBT或MOSFET組成的橋臂主動(dòng)調(diào)制讓網(wǎng)側(cè)電流接近正弦功率因數(shù)接近1直流電壓可調(diào)。這里的“雙閉環(huán)”包含兩個(gè)控制環(huán)電壓外環(huán)采直流母線電壓和給定電壓比較經(jīng)過(guò)PI調(diào)節(jié)后輸出有功電流參考值 id_ref。電流內(nèi)環(huán)采三相網(wǎng)側(cè)電流經(jīng)過(guò)坐標(biāo)變換得到 d 軸和 q 軸電流分別用PI調(diào)節(jié)輸出 d 軸和 q 軸的電壓指令再變換回去送給調(diào)制器。為什么需要一個(gè)外環(huán)一個(gè)內(nèi)環(huán)因?yàn)橹绷麟妷鹤兓入娏髯兓娏魇强焖贍顟B(tài)量。如果只用電壓?jiǎn)伍]環(huán)負(fù)載跳變時(shí)電流可能瞬時(shí)沖擊很大開關(guān)管壓力也會(huì)很大。加上電流內(nèi)環(huán)之后相當(dāng)于先把電流這個(gè)快速變量控制住再由外環(huán)決定電流該給多大。兩級(jí)配合動(dòng)態(tài)響應(yīng)和穩(wěn)定性都好很多。1.2 SVPWM在三相整流里管什么SVPWM空間矢量脈寬調(diào)制本質(zhì)是讓三相橋臂輸出的電壓矢量在一個(gè)開關(guān)周期內(nèi)去逼近給定電壓矢量。它比普通SPWM的直流電壓利用率高諧波也更集中所以在三相PWM整流器里很常用。在雙閉環(huán)模型里SVPWM的輸入是控制環(huán)算出來(lái)的電壓指令一般是靜止兩相坐標(biāo)系下的 Ualpha、Ubeta輸出是三相橋臂的開關(guān)信號(hào)。也就是說(shuō)電流內(nèi)環(huán)和坐標(biāo)變換負(fù)責(zé)算“應(yīng)該輸出什么電壓”SVPWM負(fù)責(zé)算“六個(gè)開關(guān)管在哪些時(shí)刻導(dǎo)通能達(dá)到這個(gè)電壓”。兩者是上下游關(guān)系不能反過(guò)來(lái)。1.3 適合誰(shuí)做以及做之前要先弄懂哪幾個(gè)概念這個(gè)仿真不算很小涉及的概念包括坐標(biāo)變換、鎖相環(huán)、PI限幅、空間矢量調(diào)制、開關(guān)管死區(qū)。如果你對(duì)這些完全沒(méi)接觸建議先把下面幾件事弄明白三相靜止 abc 坐標(biāo)系和二相旋轉(zhuǎn) dq 坐標(biāo)系的關(guān)系至少知道 Clarke 變換和 Park 變換的公式。d 軸和 q 軸電流的含義。d 軸對(duì)應(yīng)有功q 軸對(duì)應(yīng)無(wú)功。電壓定向控制。一般用鎖相環(huán)跟蹤電網(wǎng)電壓相位保證 d 軸和電網(wǎng)電壓同方向。SVPWM 的扇區(qū)判斷和作用時(shí)間計(jì)算。即便直接用現(xiàn)成函數(shù)也要知道它的輸入范圍是多少防止調(diào)制度過(guò)大導(dǎo)致輸出飽和。這些概念不一定都要自己推公式但在 Simulink 里看模型時(shí)至少要能對(duì)上信號(hào)流。2. 搭建仿真之前先把主電路和控制參數(shù)列清楚2.1 主電路參數(shù)電壓、電感、電容、負(fù)載我不建議打開 Simulink 直接拖模塊先把參數(shù)表寫在紙上。因?yàn)楹竺嫠?PI 參數(shù)、限幅值都由這些基礎(chǔ)參數(shù)決定。一套常見(jiàn)的三相 PWM 整流器主電路參數(shù)可以這樣做項(xiàng)目示例值說(shuō)明三相線電壓380V / 50Hz常見(jiàn)的工業(yè)并網(wǎng)等級(jí)方便對(duì)照網(wǎng)側(cè)電感3mH ~ 10mH影響電流紋波和響應(yīng)速度直流母線電容1000uF ~ 5000uF影響啟動(dòng)充電和負(fù)載階躍恢復(fù)直流電壓給定650V ~ 750V必須高于輸入線電壓峰值開關(guān)頻率10kHz平衡仿真速度和波形效果需要說(shuō)明的是這些數(shù)值不是唯一的實(shí)際參數(shù)要以你的設(shè)計(jì)目標(biāo)為準(zhǔn)。我這里給的是方便先跑通仿真的量級(jí)。低功率小模型可以按比例縮小但電感電容的配合要重新算。2.2 開關(guān)頻率、采樣時(shí)間與SVPWM實(shí)現(xiàn)方式Simulink 里有兩個(gè)時(shí)間概念容易混仿真算法步長(zhǎng)負(fù)責(zé)解微分方程比如連續(xù)求解器下的最大步長(zhǎng)??刂扑惴ú蓸訒r(shí)間對(duì)應(yīng)真實(shí) DSP 或控制器里的中斷周期SVPWM 和 PI 計(jì)算都按這個(gè)周期執(zhí)行。我做這類仿真時(shí)開關(guān)頻率一般先設(shè)在 10kHz控制采樣時(shí)間和 PWM 載波周期保持一致也就是 1e-4 秒。太高會(huì)明顯拉慢仿真速度太低又不容易看出諧波效果。10kHz 算是一個(gè)容易驗(yàn)證、速度也能接受的起點(diǎn)。SVPWM 實(shí)現(xiàn)方式在 Simulink 里常見(jiàn)有三種用 MATLAB Function 寫 SVPWM 函數(shù)輸入 Ualpha、Ubeta輸出三對(duì)互補(bǔ) PWM 信號(hào)。這種方式最靈活也最容易查扇區(qū)判斷和時(shí)間計(jì)算公式。用 Stateflow 或純邏輯模塊搭扇區(qū)判斷和占空比計(jì)算。適合想完全看清 SVPWM 底層邏輯的人但模型會(huì)很大。用 Simscape Electrical 自帶 PWM 發(fā)生器但要注意自帶模塊未必是嚴(yán)格意義上的 SVPWM需要看具體算法。我的建議是如果想學(xué)習(xí)原理用第二種或第一種如果只是想把控制算法跑通用第一種 MATLAB Function 最省事。2.3 控制參數(shù)初始值怎么給雙閉環(huán) PI 參數(shù)一開始不容易給準(zhǔn)。我給初始值的習(xí)慣是電流內(nèi)環(huán)先調(diào)。給定一個(gè)階躍的 id_ref不接電壓外環(huán)只看電流能不能快速跟蹤。內(nèi)環(huán) Kp 從幾十開始Ki 從幾百到幾千逐步加直到電流無(wú)靜差、響應(yīng)快、不振蕩。電壓外環(huán)再接上。外環(huán) Kp 給較小值Ki 給較小值先讓電壓能爬起來(lái)再慢慢增大響應(yīng)速度。如果波形劇烈振蕩先減小增益不要強(qiáng)行提高響應(yīng)速度。這里不寫死具體數(shù)值因?yàn)橥粋€(gè)電感、電容、電壓等級(jí)下PI 參數(shù)差別很大。你只要記住一個(gè)方向內(nèi)環(huán)快外環(huán)慢帶寬相差 5 到 10 倍比較合理。這是一個(gè)工程經(jīng)驗(yàn)不是公式推導(dǎo)出來(lái)的絕對(duì)結(jié)論。2.4 仿真求解器和步長(zhǎng)設(shè)置模型風(fēng)格會(huì)影響求解器選擇如果主電路用開關(guān)器件和連續(xù)積分模型是連續(xù)系統(tǒng)可以用 ode23t 或 ode15s。最大步長(zhǎng)要能覆蓋 PWM 開關(guān)波形比如最大步長(zhǎng)設(shè)置成 1e-5 秒或更小否則開關(guān)細(xì)節(jié)會(huì)丟失。如果控制算法用離散 PID需要單獨(dú)設(shè)置控制采樣時(shí)間。如果整個(gè)仿真想跑得更快可以把主電路離散化用離散求解器。這樣更接近真實(shí)數(shù)字控制系統(tǒng)。我一般先按連續(xù)模型跑通再轉(zhuǎn)離散模型驗(yàn)證。直接一步到位上離散出現(xiàn)數(shù)值發(fā)散時(shí)不容易判斷是算法問(wèn)題還是離散化問(wèn)題。3. Simulink模型分塊搭建主電路、雙閉環(huán)、SVPWM3.1 先搭主電路從電源到三相橋再到直流側(cè)Simulink 里搭三相 PWM 整流器主電路建議按以下順序放三相交流電源。Simscape Electrical 里有 Three-Phase Source也可以直接用 Simulink 的三相正弦信號(hào)加電壓源。如果是想研究波形用 Simscape Electrical 電氣模型更直觀。接網(wǎng)側(cè)電感和等效電阻。電感一般用系列電感模型電阻可以選線路電阻和功率電阻也可以用很小的串聯(lián)電阻模擬線路損耗。接三相橋臂。三相 PWM 整流器一般用 Universal Bridge選擇三臂、IGBT/Diode。這里要注意橋臂的開關(guān)信號(hào)要和 SVPWM 輸出對(duì)應(yīng)。接直流母線電容和負(fù)載電阻。電容跨接在直流正負(fù)母線之間負(fù)載接在電容兩端。加電壓和電流測(cè)量模塊。直流電壓必須測(cè)三相電流必須測(cè)網(wǎng)側(cè)電壓最好也測(cè)控制環(huán)要用。主電路搭完先不加控制信號(hào)看開環(huán)狀態(tài)是否正常。整流橋如果完全不給脈沖應(yīng)該表現(xiàn)為二極管不控整流直流電壓會(huì)穩(wěn)定在一個(gè)值。這一步能幫你確認(rèn)電源、電感、電容有沒(méi)有接反。3.2 控制環(huán)接線電壓外環(huán)和電流內(nèi)環(huán)怎么串控制環(huán)的信號(hào)流可以拆成三段第一段是測(cè)量。直流母線電壓 Vdc 經(jīng)過(guò)一階低通濾波或直接送到電壓 PI三相電流先做 Clarke 變換和 Park 變換得到 id 和 iq。Park 變換需要角度這個(gè)角度來(lái)自鎖相環(huán) PLL或者來(lái)自三相電源電壓的相位。第二段是外環(huán)。Vdc_ref 減去 Vdc得到誤差進(jìn)電壓 PI輸出 id_ref。為了單位功率因數(shù)運(yùn)行iq_ref 一般設(shè)為 0也可以用無(wú)功指令控制無(wú)功功率。第三段是內(nèi)環(huán)。id_ref 減去 idiq_ref 減去 iq得到電流誤差分別進(jìn)電流 PI。輸出是 vd 和 vq再經(jīng)過(guò)反 Park 變換得到 Ualpha、Ubeta送給 SVPWM。這里最容易犯的錯(cuò)是把電壓 PI 輸出直接當(dāng)調(diào)制波。正確的鏈條是電壓 PI 輸出的是有功電流參考不是電壓指令。必須經(jīng)過(guò)電流內(nèi)環(huán)之后才得到電壓指令。少數(shù)簡(jiǎn)化模型會(huì)省略電流內(nèi)環(huán)但那個(gè)不叫雙閉環(huán)。3.3 SVPWM調(diào)制模塊和PWM脈沖生成SVPWM 部分按下面方式處理最容易對(duì)號(hào)入座輸入U(xiǎn)alpha、Ubeta。計(jì)算扇區(qū)號(hào)和相鄰矢量作用時(shí)間。結(jié)合載波周期 T生成三相占空比。輸出三對(duì)互補(bǔ) PWM 信號(hào)給三相橋臂的六個(gè)開關(guān)管。如果使用 MATLAB Function 實(shí)現(xiàn)函數(shù)內(nèi)部要自己寫扇區(qū)判斷和伏秒平衡公式。測(cè)試時(shí)可以先給 Ualpha、Ubeta 一個(gè)固定值看三個(gè)橋臂占空比是否合理也可以開著 SVPWM 但把直流給定設(shè)低讓系統(tǒng)不進(jìn)入過(guò)調(diào)制。關(guān)于死區(qū)Simulink 里可以用 Gain 或者延時(shí)模塊模擬也可以先不加死區(qū)跑通邏輯。實(shí)際工程中死區(qū)一定存在仿真里先不加能減少很多波形毛刺問(wèn)題。3.4 測(cè)量、示波器和數(shù)據(jù)記錄模型跑完之后至少要記錄這些信號(hào)三相輸入電壓和三相輸入電流直流母線電壓d 軸和 q 軸電流電壓外環(huán)輸出也就是 id_refSVPWM 的相電壓或線電壓波形調(diào)制度或占空比建議把波形分開顯示不要全部塞進(jìn)一個(gè) Scope。電壓和電流的參考值、反饋值畫在一起方便看跟蹤情況。波形數(shù)據(jù)可以導(dǎo)出到 MATLAB 工作區(qū)便于算 THD 和 FFT 分析。數(shù)據(jù)記錄這一步容易被跳過(guò)。很多同學(xué)跑出波形后覺(jué)得好看但論文里需要諧波分析、穩(wěn)態(tài)誤差、動(dòng)態(tài)時(shí)間沒(méi)有記錄就只能重新跑。建議在模型里放幾個(gè) To Workspace 模塊把關(guān)鍵變量存成結(jié)構(gòu)體或數(shù)組。4. 雙閉環(huán)PI參數(shù)整定先內(nèi)環(huán)后外環(huán)看波形而不是只看數(shù)值4.1 電流內(nèi)環(huán)怎么調(diào)第一次整定時(shí)建議先把電壓外環(huán)斷開給一個(gè)恒定 id_ref單獨(dú)觀察電流內(nèi)環(huán)給 id_ref 一個(gè)階躍看 id 實(shí)際值能否快速跟蹤。跟蹤慢增大 Kp跟蹤有靜態(tài)誤差增大 Ki。振蕩說(shuō)明 Kp 或 Ki 過(guò)大先降 Kp 再降 Ki。兩個(gè)方向都要看不只是 d 軸。iq_ref 給 0 時(shí)iq 應(yīng)該穩(wěn)定在 0 附近。如果電流毛刺很大先看采樣時(shí)間和開關(guān)頻率是否匹配再考慮濾波。判斷內(nèi)環(huán)是否合格的簡(jiǎn)單標(biāo)準(zhǔn)電流階躍響應(yīng)沒(méi)有明顯超調(diào)幾個(gè)毫秒內(nèi)能跟蹤上穩(wěn)態(tài)紋波在可接受范圍內(nèi)。這不是絕對(duì)指標(biāo)但對(duì) 10kHz 開關(guān)頻率的模型足夠起步使用。4.2 電壓外環(huán)怎么調(diào)電流內(nèi)環(huán)調(diào)穩(wěn)后把電壓外環(huán)接上。外環(huán) PI 輸出的是 id_ref要特別注意這條信號(hào)的限幅。如果 id_ref 沒(méi)有限幅啟動(dòng)瞬時(shí)它會(huì)沖得很大直流電壓很容易過(guò)沖甚至把電流內(nèi)環(huán)逼到飽和。外環(huán)整定的順序先給很小的 Kp 和 Ki讓直流電壓慢慢爬升。此時(shí)波形可能又慢又軟但穩(wěn)定。逐步增大 Ki消除穩(wěn)態(tài)誤差讓電壓能精確落在設(shè)定值。再逐步增大 Kp提高響應(yīng)速度。當(dāng)負(fù)載突變時(shí)觀察直流電壓跌落和恢復(fù)時(shí)間?;謴?fù)太快容易超調(diào)恢復(fù)太慢說(shuō)明帶寬不足。外環(huán)的積分限幅也要設(shè)置好。電壓外環(huán)輸出 id_ref 的最大值一般由系統(tǒng)允許的最大輸入電流決定。比如設(shè)計(jì)峰值電流 20A就把 id_ref 限幅在 ±20A 附近。限幅過(guò)小會(huì)限制整流器輸出能力限幅過(guò)大會(huì)讓啟動(dòng)電流沖擊變大。4.3 啟動(dòng)、穩(wěn)態(tài)和負(fù)載階躍怎么驗(yàn)證一套雙閉環(huán)仿真能不能交付通??慈齻€(gè)過(guò)程第一是啟動(dòng)過(guò)程。仿真開始后直流電壓從零升到給定值。這個(gè)過(guò)程中電流應(yīng)該被內(nèi)環(huán)限制在合理范圍電壓不應(yīng)該出現(xiàn)大幅度超過(guò)給定值的尖峰。如果啟動(dòng)瞬間電壓過(guò)沖到 800V說(shuō)明外環(huán) Kp 或 id_ref 限幅設(shè)置有問(wèn)題。第二是穩(wěn)態(tài)過(guò)程。電壓穩(wěn)定后輸入電流應(yīng)該是接近正弦的波形。用 FFT 看電流 THD在 10kHz 開關(guān)頻率下不加死區(qū)時(shí) THD 通??梢宰龅帽容^低。THD 高一般先查 SVPWM 扇區(qū)判斷和坐標(biāo)變換方向再查采樣時(shí)間。第三是負(fù)載階躍。在穩(wěn)定運(yùn)行一段時(shí)間后突然增大或減小負(fù)載電阻觀察直流電壓恢復(fù)情況。合格系統(tǒng)的電壓跌落應(yīng)在允許范圍內(nèi)并且能在幾十毫秒到一兩百毫秒內(nèi)恢復(fù)。如果電壓一直恢復(fù)不了檢查外環(huán) PI 帶寬和 id_ref 限幅是否太小。我實(shí)際做的時(shí)候會(huì)把三個(gè)過(guò)程用同一個(gè)仿真跑完0 到 0.2 秒啟動(dòng)0.3 秒加負(fù)載0.8 秒減負(fù)載。這樣一次仿真能覆蓋大部分驗(yàn)證需求。5. 仿真發(fā)散、波形異常的排查鏈路5.1 仿真直接發(fā)散或結(jié)果無(wú)窮大遇到仿真結(jié)果發(fā)散不要先懷疑模型算法按下面順序排查看電源、電容、電感的初始值。Simulink 里電容初始電壓、電感初始電流可能影響仿真起始狀態(tài)。帶初始值不合理的模型很可能在第一拍就發(fā)散???PI 反饋極性。PI 反饋接成正反饋系統(tǒng)通常很快發(fā)散。一個(gè)簡(jiǎn)單檢查方法是把 PI 輸出斷開手動(dòng)給固定值看系統(tǒng)能不能穩(wěn)定???SVPWM 輸出是否超出范圍。調(diào)制波太大或調(diào)制度超過(guò) 1仿真會(huì)出現(xiàn)脈沖丟失波形亂掉??捶抡娌介L(zhǎng)。連續(xù)模型最大步長(zhǎng)太大開關(guān)管切換的瞬間可能被跳過(guò)數(shù)值上就表現(xiàn)為發(fā)散。看代數(shù)環(huán)。Simulink 里如果出現(xiàn)代數(shù)環(huán)求解會(huì)特別慢或報(bào)錯(cuò)。用代數(shù)環(huán)提示定位。我在調(diào)模型時(shí)有個(gè)習(xí)慣先去掉所有 PI手動(dòng)給固定占空比看主電路能不能穩(wěn)定。主電路穩(wěn)定后再接入控制環(huán)這樣能快速區(qū)分是主電路問(wèn)題還是控制問(wèn)題。5.2 電壓跟蹤不上、過(guò)沖大、震蕩直流電壓幾種典型異常電壓偏低啟動(dòng)后一直達(dá)不到給定值。常見(jiàn)原因是 id_ref 限幅太小或電源電壓不足以支撐直流給定電壓。三相 380V 系統(tǒng)如果直流給定設(shè)成 900VSVPWM 輸出極限不夠電壓就上不去。電壓過(guò)沖很大。常見(jiàn)原因是電壓外環(huán) Kp 太大、id_ref 限幅太大、啟動(dòng)時(shí)外環(huán)積分飽和。解決方法給外環(huán)積分加限幅給 id_ref 加合理限幅限制最大充電電流。電壓持續(xù)震蕩??赡芡猸h(huán)帶寬和內(nèi)環(huán)帶寬太接近導(dǎo)致兩個(gè)環(huán)互相影響。按先內(nèi)環(huán)后外環(huán)重新調(diào)整讓外環(huán)明顯慢于內(nèi)環(huán)。5.3 SVPWM沒(méi)輸出或電流畸變嚴(yán)重SVPWM 沒(méi)有輸出先看函數(shù)是不是被正確調(diào)用了。很多 MATLAB Function 報(bào)錯(cuò)不會(huì)立刻停仿真而是輸出恒為 0。你可以用 Display 模塊把 Ualpha、Ubeta 顯示出來(lái)確認(rèn)輸入不是 0再看函數(shù)輸出。電流畸變嚴(yán)重常見(jiàn)幾個(gè)原因坐標(biāo)變換角度方向反了。Park 變換的旋轉(zhuǎn)方向不對(duì)電流跟蹤不上波形就會(huì)扭曲。dq 軸接反了。id 當(dāng)作 iq 處理功率因數(shù)會(huì)異常。調(diào)制度接近或超過(guò) 1輸出進(jìn)入過(guò)調(diào)制區(qū)電流諧波增大。解決辦法是提高直流電壓給定值或降低輸入電壓。SVPWM 扇區(qū)判斷公式寫錯(cuò)。這種錯(cuò)誤最隱蔽建議先用固定電壓矢量做開環(huán)測(cè)試檢查三相占空比是否和理論一致。5.4 常見(jiàn)錯(cuò)誤定位順序我把自己的排查順序固定下來(lái)基本能覆蓋大多數(shù)問(wèn)題第一步看現(xiàn)象是發(fā)散、卡住、無(wú)輸出還是波形很差。 第二步看輸入三個(gè)電壓源、三相電流、直流電壓反饋是否接到正確點(diǎn)位。 第三步看控制環(huán)PI 極性、限幅、參考值大小。 第四步看 SVPWM輸入角度是否連續(xù)輸出占空比是否在合理范圍。 第五步看求解器步長(zhǎng)、采樣時(shí)間、代數(shù)環(huán)。沒(méi)有足夠經(jīng)驗(yàn)時(shí)最忌諱的是一上來(lái)就調(diào) PI 參數(shù)。如果 SVPWM 本身沒(méi)工作調(diào) PI 沒(méi)有任何意義。先把信號(hào)流對(duì)著端口走一遍再用波形定位。6. 模型整理、結(jié)果說(shuō)明和找人定制時(shí)的驗(yàn)收邊界6.1 自己搭完模型后整理什么模型能跑通之后建議花時(shí)間整理這樣后面復(fù)用、改參數(shù)、參與論文或項(xiàng)目時(shí)效率會(huì)明顯提高模塊命名電源、電感、橋臂、PI、SVPWM 都用有意義的名稱不要叫 Gain1、Gain2。參數(shù)集中管理把主電路參數(shù)、控制參數(shù)、限幅值都放到 MATLAB 腳本或模型里定義的變量中不要散在各個(gè)模塊里寫死。版本保存每改一版參數(shù)保存成帶時(shí)間和版本號(hào)的副本避免調(diào)壞之后回不去。注釋和說(shuō)明對(duì) SVPWM 函數(shù)、坐標(biāo)變換、PI 極性這些關(guān)鍵點(diǎn)寫簡(jiǎn)短注釋防止過(guò)兩周自己看不懂。整理模型花費(fèi)的時(shí)間可能比搭模型還長(zhǎng)但對(duì)后續(xù)有利。6.2 找人做仿真模型需求寫到什么程度才算清楚很多人在網(wǎng)上找人做 matlab 仿真模型但需求只寫“三相PWM整流器雙閉環(huán)仿真”這個(gè)描述太寬泛。交付結(jié)果很難保證。如果你需要找人定制我建議至少把下面幾項(xiàng)寫清楚主電路參數(shù)電壓等級(jí)、頻率、功率、電感、電容、負(fù)載電阻范圍。控制要求是否必須用 SVPWM還是 SPWM 也可以是否要求單位功率因數(shù)是否需要 PLL 鎖相環(huán)是否要求離散模型。輸入輸出信號(hào)你期望看到哪些波形是否需要導(dǎo)出 THD 分析數(shù)據(jù)。MATLAB 版本不同版本對(duì) Simulink 模塊支持有差異不說(shuō)版本很容易出現(xiàn)打不開的問(wèn)題。交付物除了 .slx 模型是否需要說(shuō)明文檔、參數(shù)腳本、報(bào)告和演示視頻。如果這些信息都寫不清楚定制回來(lái)的模型大概率還需要你自己大量調(diào)試因?yàn)閷?duì)方猜到的主電路參數(shù)和控制要求可能和你項(xiàng)目需求不一致。6.3 交付和驗(yàn)收要核對(duì)哪些點(diǎn)拿到一個(gè)別人做的仿真模型我建議按一套驗(yàn)收清單檢查模型能不能在你本地 MATLAB 版本里直接打開和運(yùn)行有沒(méi)有缺失模塊。主電路參數(shù)是否和你的設(shè)計(jì)一致三相對(duì)稱性是否正常。雙閉環(huán)結(jié)構(gòu)是否完整電壓外環(huán)輸出是否真的送到電流內(nèi)環(huán)參考而不是直接送調(diào)制波。SVPWM 是否真正參與驅(qū)動(dòng)把 SVPWM 輸出斷開換成固定占空比系統(tǒng)行為是否明顯不同。啟動(dòng)、穩(wěn)態(tài)、負(fù)載階躍三個(gè)過(guò)程的波形是否正常。參數(shù)改了之后模型能否在合理范圍內(nèi)繼續(xù)穩(wěn)定運(yùn)行。有些模型只在某個(gè)固定 PI 參數(shù)下穩(wěn)定稍微改負(fù)載就可能發(fā)散這種模型只能當(dāng)演示不能用于論文或項(xiàng)目。驗(yàn)收時(shí)最好自己動(dòng)手改幾個(gè)關(guān)鍵參數(shù)跑一遍不要只看對(duì)方提供的截圖。最后說(shuō)一點(diǎn)個(gè)人經(jīng)驗(yàn)三相 PWM 整流器雙閉環(huán)仿真最核心的不是把 SVPWM 函數(shù)寫得多么漂亮而是控制環(huán)的信號(hào)流向、PI 參數(shù)整定順序和異常波形的定位能力。先把主電路跑通再拆開電流內(nèi)環(huán)調(diào)最后接上電壓外環(huán)一層一層驗(yàn)證。如果只是學(xué)習(xí)默認(rèn)參數(shù)跑通就夠如果要用于論文或工程項(xiàng)目就把參數(shù)腳本、模型版本、波形記錄和調(diào)試日志都留好。很多問(wèn)題不是工具能力不夠而是前置參數(shù)和模型結(jié)構(gòu)沒(méi)有理干凈。