雪花台湾

如何進行永磁同步電機全局優化設計

一、什麼是工程師文化
二、什麼是遺傳演算法
三、如何建立永磁體磁場模型
四、如何建立繞組解析模型
五、如何建立損耗以及散熱模型
六、如何進行PMSM全局優化設計(Global Optimization)

一、什麼是工程師文化

知乎中有一個我很喜歡的問題:什麼是工程師文化?裡面有100多個回答,大家討論了什麼是自己心中的工程師文化,高票回答提出了如下觀點:

工程師文化,是一種內心的慾望與恐懼的表達。對創造的慾望,對世界的恐懼。因為慾望而創造,因為恐懼而改造。創造世界,改造世界。這種慾望是如此的強烈,這種慾望驅使著我們從樹上爬了下來,生起了火,蓋起了房,馴服了馬,開上了車,造出了原子彈,發射了好奇者。而這種恐懼也是如此的強烈,逼迫著我們不停的看向周圍的一切。

我覺得還要增加一點,就是工程師要有geek精神,優秀工程師不僅要改造世界,還需要用最小的成本,最大的效能改造世界。抽象的來說,工程師的任務,就是在滿足各種約束的情況下,把不確定的事情確定化,達到最優的目標。

舉個例子:我們現在要設計一個工字梁:

這個工字梁有幾何上三個參數需要確定 ,其中a = [1,10]mm、b = [50,150]mm、c = [50,250] mm,工字梁總長度 是3m,材料的楊氏模量 是200 ,密度 是8000 。這個工字梁要起到一個什麼作用呢?中間要能承受一個集中力,兩端鉸支(可以旋轉)。要求這個梁在力的作用下最大應力 要低於 ,重量低於20

一般的初級工程師碰到這個問題會怎麼做呢?我們知道,滿足約束的設計變數組合就是一個產品設計,這個我們一般稱之為可行解,就是滿足設計要求,那這麼找到一個可行解呢?去找前人的設計產品啊,都正常工作那麼多年了,肯定是一個可行解嘛,看看人家參數是什麼樣的,看看幾何參數 在什麼範圍內,根據自己的經驗選上幾組參數,然後通過如下公式計算出梁的最大應力和重量:

其中 為梁的抗彎截面模量。

比如假如嘗試了一下 ,計算一下呢得到 應力和重量滿足要求,則設計結束,這樣做的好處就是設計的產品一般不會翻車,壞處就是永遠跟在別人的後面,沒有技術創新,或者只能進行微創新。

如果你是一個追求geek文化的工程師,顯然不會滿足前面的設計的?為什麼——因為滿足應力和重量的解太多了,我們只是找了其中一個可行解,而不是最優解。

那如何找最優解呢?——一個顯而易見的方法就是窮舉啊,我們把所有的設計組合都算一下一下,看看哪個是最優解。比如我們可以這麼做:將 都分成10段,然後組合進行計算,這樣我們就可以通過 次計算來找到我們最優解,perfect。

窮舉法在變數較少的時候是沒有問題的,但是在實際工程中會遇到很大的困難,因為實際中的變數都比較多,比如現在某個產品設計由10個變數 ,如果窮舉的話,每個變數也取10個值的話,那就要計算 次,也就是10億次,這顯然是不現實的,那怎麼解決這個問題呢?


二、什麼是遺傳演算法

知乎詞條對遺傳演算法有如下描述,現摘抄如下:

遺傳演算法 (Genetic Algorithm),是啟發式演算法 (heuristic algorithm)中比較經典的一種演算法,最早是由John Holland提出的;顧名思義,就是根據遺傳進化過程而設計的演算法了。簡單來講,遺傳演算法源自達爾文的進化論觀點「survival of the fittest」;在種群進化的過程中,大自然會不斷的選擇淘汰一部分適應能力差的個體,同時一些適應能力強的個體得意存活(進化)。

It is not the strongest of the species that survives, nor the most intelligent that survives. It is the one that is most adaptable to change.

遺傳演算法需要做的,就是模擬一個種群的進化過程;在這個過程里,我們可以簡單地認為:

  • 基因(gene)組成了染色體(chromosome),基因由0或者1來表示(我們這裡只涉及二進位編碼);
  • 一條染色體由多個基因組成,即由0/1的字元串組成,如00000,01011;
  • 一個種群(population)由多個個體(individual)組成,或者說是由多個染色體(chromosome)組成;
  • 每個個體(染色體)的優劣由適應度(fitness)函數所決定;

比方說,我們要人為的構建一個知乎大V,這個大V需要有一些特徵,比方說身高、體重、長相、學歷、人品等等。據此,我們根據一定的編碼規則(encoding),可以隨機的生成一個用戶,比方說0001010111。假設我們已知了一個適應度函數,比方說你的眼緣....用以評價該用戶是否為大V(the quality of the chromosome)。那麼我們可以根據我們的fitness function計算得到該個體的適應度。重複這個過程,我們便可以得到多個知乎用戶,即一個種群。

基本流程:

  • 初始化一個種群;
  • 計算該種群每個個體的適應度;
  • 進行選擇個體(selection)、交叉(crossover)、個體變異(mutation)等操作;
  • 重複2-3步直到滿足停止規則

當然這裡會涉及到一些問題,比方說如何選擇selection的方法 (e.g., roulette wheel selection? tournament selection),如何選擇交叉、變異的方法等等。

在這個過程中,intuitively,「眼緣好」的子代(offspring)得以「繁衍生息」,從而不斷的產生「眼緣更好」的用戶;那麼最終,當我們停止演算法的時候,我們可以選出「眼緣最高」的這個知乎用戶作為知乎大V了。當然了,我們不能保證這個大V是全局最優解,除非你遍歷所有特徵的組合,不然你是不知道該用戶是不是所有可能的組合中「眼緣最高的」。

我們可以比較容易的理解,遺傳演算法的本質就是一個在解空間中不斷進行隨機搜索的演算法,在搜索過程中不斷地產生新的解,並保留更優的解。優點來說,我認為一方面它比較容易實現,另一方面它可以在接受的計算時間內,得到較好的結果;缺點來說,那自然就是隨機搜索帶來的問題了,除了搜索過程中會遇到的問題之外,顯而易見的就是無法保證獲得全局最優解了。

以上來自於知乎詞條「遺傳演算法」的描述,相關文章見詞條 遺傳演算法。

對於上面的介紹大家可能沒有直觀的感受,我們還是拿工字梁做個例子:

我們把 稱之為變數(variable),a = [1,10]mm、b = [50,150]mm、c = [50,250] mm稱之為變數區間(variable boundary),最大應力 稱之為約束(constraints),重量 最小稱之為目標函數或者適應度(objective function or fitness function),為了增加難度,增加一個目標——最大變形量def最小。其中最大變形量的表達式為:

所有變數組成變數空間(解空間),滿足約束的子空間即為可行解集合。通過計算,所有組合及其結果如下:

當然我們的目標值變化(區間減小)的話,解空間也會跟著變化(減小)。

可見 對變形量和重量的影響更明顯,取下限時較好; 的取值較為均勻,說明不是很敏感; 的取值偏上限更好。


前面工字梁的例子較為簡單,我們來試一個稍微複雜的例子,一個表貼式永磁同步電機(PMSM)的設計。對於PMSM還不是很了解的童鞋們可先閱讀J Pan:如何快速理解永磁同步電機?,在文章中我們說了,永磁電機之所以能旋轉起來,是因為定子、轉子分別產生了一個旋轉的磁場,其中轉子磁場一般是永磁體產生的,定子磁場一般是繞組產生的,兩個磁場以相同的速度旋轉,就得到了一個恆定的轉矩。

要進行全局優化設計,必須先要有數學模型,下面主要從兩個方面來進行建模:轉子永磁體磁場如何建立和描述以及定子繞組磁場如何建立和描述。


三、如何建立永磁體磁場模型

3.1 氣隙磁密的建立

我們對電機的磁路模型進行抽象,在一個磁路裡面,有磁源(永磁體),有磁阻(主要是氣隙),如下圖所示。

永磁體的工作點為

根據磁勢守恆,可得

考慮到磁通有漏磁

考慮到極弧係數

其中 為極弧係數, 等效氣隙, 分別為永磁體對應面積和氣隙對應面積, 為漏磁係數。 為卡式係數,考慮到開槽的影響引入的修正係數。

聯立上面的方程可以得到永磁體產生的氣隙磁密為:

磁密的分布如下圖虛線所示

用傅里葉展開,可以得到各個階次的諧波為

當然,只有基波能產生恆定轉矩的,其數值為

3.2 永磁體產生的感應電動勢計算

每極產生的基波磁通(peak)為

假設 分別為極距和槽距

其中是氣隙直徑,則永磁體在每相繞組產生的基波磁鏈(peak)為

是基波繞組係數, 為每相匝數。

則每相產生的永磁體感應基波電動勢(RMS)為

其中 是基波頻率。

3.3 功率和力矩

線負荷定義為(雙層繞組):

其中 表示電流(RMS), 是電機相數,則氣隙中產生的最大電磁功率為

假設電磁能全部轉化為機械能(可以通過控制實現),則產生的轉矩為:

進一步變換形式:

其中

3.2鐵芯主要 尺寸估計

鐵芯的主要尺寸如下,

氣隙直徑可按如下估算:

齒寬和軛寬可作如下估算:

其中 是疊壓係數,可根據槽滿率和電流密度估算槽的面積為:

其中 為槽滿率,當然槽得的面積也可通過幾何尺寸計算

綜合以上兩式可以估算鐵芯的軛部直徑為

至此,所有鐵芯的基本尺寸都可以確定。


四、如何建立繞組解析模型

4.1 繞組電動勢計算

繞組的空間分布如下

和永磁體建立的磁場分析一致,繞組產生的基波磁動勢(RMS)為

氣隙中產生的基波磁密為

其中 為總的等效氣隙。

4.2 繞組電感計算

如下圖所示,繞組產生的基波磁通為

則繞組產生的基波磁鏈為

則相電感為

忽略漏感,dq軸電感為

至於dq電感和相電感的關係,小潘專門有一篇文章,有興趣的參見J Pan:如何理解永磁電機各種電感?。

4.3 電阻計算

每相匝數為

round是圓整的意思,則導體所佔的槽面積為

其中 是端部繞組長度, 是繞組跨距

4.4 電壓計算

永磁電壓相量圖如下圖所示,其中左圖為內嵌式永磁電機相量圖,右圖為表貼式永磁電機相量圖。

我們只考慮表貼式永磁電機,採用 控制,忽略電阻壓降,並且只考慮穩態,此時


五、如何建立損耗以及散熱模型

電機的損耗主要包括電損耗和機械損耗兩大類,為簡單期間,先忽略機械損耗。電損耗又包括兩類:銅損和鐵損。

5.1 銅損計算

銅損計算比較簡單,可按如下估算

其中

5.2 鐵損計算

鐵損計算比較複雜,很難計算準確,一般採用Steinmetz方法進行估算,即將鐵損分成兩個部分:磁滯損耗渦流損耗。

磁滯損耗可通過下式計算

其中 是取決於材料的常數, 一般取值在1.8到2.2之間。

渦流損耗的估算公式為

其中 是疊片厚度, 是材料電阻率, 和幾何結構有關。

一般材料廠家都會給出不同頻率下的損耗曲線,如下圖所示

可用最小二乘法進行曲線擬合,將 作為未知量,擬合結果如下

損耗的表達式為

5.3 外殼散熱係數估算

在J Pan:如何估算圓柱形電機外殼的散熱係數 一文中,小潘介紹了怎麼計算一個圓柱形電機外殼的的表面散熱係數,

外殼的散熱係數估算公式如下

對於開槽電機,這個係數可適當進行放大,放大倍數在1.3到1.8之間。


六、如何進行PMSM全局優化設計(Global Optimization)

有了前面的模型,我們就可以對錶貼式永磁電機進行全局優化設計了,我們可以選取如下變數:

其中 為極對數, 為每極每相槽數, 為線負荷, 為電流密度, 為長徑比, 為齒部最大允許磁密, 為軛部最大允許磁密, 為極弧係數。當然這些變數選取不是唯一的,完全可以選取別的組合。

假設我們建立了已電機幾何模型與變數之間的函數:

約束是電壓和最大溫升

目標是體積最小,效率最高

計算結果如下(注意本設計僅做方法說明,不具有現實參考意義):

上圖展示了所有變數組合及其對應的計算輸出,由於採用了遺傳演算法,計算量大大減小,所有計算只進行了8000次,時間約在3分鐘。我們也可以通過泡泡圖來看一下任意兩個變數(比如線負荷和電流密度)和目標函數(體積和效率)的對應關係。

一般來說,我們肯定是希望體積最小,效率最高,也就是說我們喜歡右下角的解。我們把右下角所有包絡的點取出來,稱之為Pareto圖,最優設計點肯定會落在Pareto圖上。

Pareto圖上每一點都可認為是一個最優設計(在效率和體積之間的權衡),比如我們可選擇如下設計,此時體積最小,效率也能接受。


推薦閱讀:
相关文章