如何進行永磁同步電機全域性優化設計
一、什麼是工程師文化
知乎中有一個我很喜歡的問題:什麼是工程師文化?裡面有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 永磁體產生的感應電動勢計算
每極產生的磁通為
其中 和
分別為極距和槽距
其中 是氣隙直徑,則永磁體在每相繞組產生的磁鏈為
是基波繞組係數,
為每相匝數,則每相繞組產生的基波磁鏈為:
則每相產生的永磁體感應電動勢(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圖上每一點都可認為是一個最優設計(在效率和體積之間的權衡),比如我們可選擇如下設計,此時體積最小,效率也能接受。