如何进行永磁同步电机全局优化设计

如何进行永磁同步电机全局优化设计

一、什么是工程师文化
二、什么是遗传算法
三、如何建立永磁体磁场模型
四、如何建立绕组解析模型
五、如何建立损耗以及散热模型
六、如何进行PMSM全局优化设计(Global Optimization)

一、什么是工程师文化

知乎中有一个我很喜欢的问题:什么是工程师文化?里面有100多个回答,大家讨论了什么是自己心中的工程师文化,高票回答提出了如下观点:

工程师文化,是一种内心的欲望与恐惧的表达。对创造的欲望,对世界的恐惧。因为欲望而创造,因为恐惧而改造。创造世界,改造世界。这种欲望是如此的强烈,这种欲望驱使着我们从树上爬了下来,生起了火,盖起了房,驯服了马,开上了车,造出了原子弹,发射了好奇者。而这种恐惧也是如此的强烈,逼迫着我们不停的看向周围的一切。

我觉得还要增加一点,就是工程师要有geek精神,优秀工程师不仅要改造世界,还需要用最小的成本,最大的效能改造世界。抽象的来说,工程师的任务,就是在满足各种约束的情况下,把不确定的事情确定化,达到最优的目标。

举个例子:我们现在要设计一个工字梁:

这个工字梁有几何上三个参数需要确定 a,b,c ,其中a = [1,10]mm、b = [50,150]mm、c = [50,250] mm,工字梁总长度 L 是3m,材料的杨氏模量 E 是200 GPa ,密度 \rho 是8000 Kg/m^3 。这个工字梁要起到一个什么作用呢?中间要能承受一个集中力,两端铰支(可以旋转)。要求这个梁在力的作用下最大应力 \sigma 要低于 100MPa ,重量低于20 Kg

一般的初级工程师碰到这个问题会怎么做呢?我们知道,满足约束的设计变量组合就是一个产品设计,这个我们一般称之为可行解,就是满足设计要求,那这么找到一个可行解呢?去找前人的设计产品啊,都正常工作那么多年了,肯定是一个可行解嘛,看看人家参数是什么样的,看看几何参数 a,b,c 在什么范围内,根据自己的经验选上几组参数,然后通过如下公式计算出梁的最大应力和重量:

\sigma=\frac{FL}{4I}(a+c/2)

W=(2ab+ca)L\rho

其中 I=\frac{ac^3}{12}+2\left[ \frac{ba^3}{12}+ab(a/2+c/2)^2 \right] 为梁的抗弯截面模量。

比如假如尝试了一下 a=1mmb=144mmc=117mm ,计算一下呢得到 \sigma=78MPaW=9.7Kg应力和重量满足要求,则设计结束,这样做的好处就是设计的产品一般不会翻车,坏处就是永远跟在别人的后面,没有技术创新,或者只能进行微创新。

如果你是一个追求geek文化的工程师,显然不会满足前面的设计的?为什么——因为满足应力和重量的解太多了,我们只是找了其中一个可行解,而不是最优解。

那如何找最优解呢?——一个显而易见的方法就是穷举啊,我们把所有的设计组合都算一下一下,看看哪个是最优解。比如我们可以这么做:将 a,b,c 都分成10段,然后组合进行计算,这样我们就可以通过 10^3 次计算来找到我们最优解,perfect。

穷举法在变量较少的时候是没有问题的,但是在实际工程中会遇到很大的困难,因为实际中的变量都比较多,比如现在某个产品设计由10个变量 x_1,x_2,...,x_{10} ,如果穷举的话,每个变量也取10个值的话,那就要计算 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是全局最优解,除非你遍历所有特征的组合,不然你是不知道该用户是不是所有可能的组合中“眼缘最高的”。

我们可以比较容易的理解,遗传算法的本质就是一个在解空间中不断进行随机搜索的算法,在搜索过程中不断地产生新的解,并保留更优的解。优点来说,我认为一方面它比较容易实现,另一方面它可以在接受的计算时间内,得到较好的结果;缺点来说,那自然就是随机搜索带来的问题了,除了搜索过程中会遇到的问题之外,显而易见的就是无法保证获得全局最优解了。

以上来自于知乎词条“遗传算法”的描述,相关文章见词条 遗传算法

对于上面的介绍大家可能没有直观的感受,我们还是拿工字梁做个例子:

我们把 a,b,c 称之为变量(variable),a = [1,10]mm、b = [50,150]mm、c = [50,250] mm称之为变量区间(variable boundary),最大应力 \sigma<100MPa 称之为约束(constraints),重量 W 最小称之为目标函数或者适应度(objective function or fitness function),为了增加难度,增加一个目标——最大变形量def最小。其中最大变形量的表达式为:

def=\frac{FL^3}{48EI}

所有变量组成变量空间(解空间),满足约束的子空间即为可行解集合。通过计算,所有组合及其结果如下:

当然我们的目标值变化(区间减小)的话,解空间也会跟着变化(减小)。

可见 a 对变形量和重量的影响更明显,取下限时较好; b 的取值较为均匀,说明不是很敏感; c 的取值偏上限更好。


前面工字梁的例子较为简单,我们来试一个稍微复杂的例子,一个表贴式永磁同步电机(PMSM)的设计。对于PMSM还不是很了解的童鞋们可先阅读J Pan:如何快速理解永磁同步电机?,在文章中我们说了,永磁电机之所以能旋转起来,是因为定子、转子分别产生了一个旋转的磁场,其中转子磁场一般是永磁体产生的,定子磁场一般是绕组产生的,两个磁场以相同的速度旋转,就得到了一个恒定的转矩。

要进行全局优化设计,必须先要有数学模型,下面主要从两个方面来进行建模:转子永磁体磁场如何建立和描述以及定子绕组磁场如何建立和描述。


三、如何建立永磁体磁场模型

3.1 气隙磁密的建立

我们对电机的磁路模型进行抽象,在一个磁路里面,有磁源(永磁体),有磁阻(主要是气隙),如下图所示。

永磁体的工作点为

B_m=B_r+\mu_0\mu_rH_m

根据磁势守恒,可得

H_mL_m+H_gL_g'=0

考虑到磁通有漏磁

\phi_g=\phi_mk_{lk}

考虑到极弧系数

A_m=A_gk_a

其中 k_a=\frac{\tau_m}{\tau_p} 为极弧系数, L_g'=K_cL_g 等效气隙, A_mA_g 分别为永磁体对应面积和气隙对应面积, K_{lk} 为漏磁系数。 K_c 为卡式系数,考虑到开槽的影响引入的修正系数。

联立上面的方程可以得到永磁体产生的气隙磁密为:

B_g=\frac{B_r}{\frac{1}{k_ak_{lk}}+\mu_r \frac{K_cL_g}{L_m}}

磁密的分布如下图虚线所示

用傅里叶展开,可以得到各个阶次的谐波为

B_{mn}=\frac{2}{2\pi}\int_0^{2\pi}B_gsin(\frac{2\pi nx}{2\pi})dx=\frac{4B_g}{n\pi}sin(k_a\frac{n\pi}{2})

当然,只有基波能产生恒定转矩的,其数值为

B_{m1}=\frac{4}{\pi}B_gsin(k_a\frac{\pi}{2})

3.2 永磁体产生的感应电动势计算

每极产生的基波磁通(peak)为

\phi_{pm1}=\int_0^{\tau_p}B_{m1}sin(\frac{x}{\lambda_p}\pi)L_{stk}dx=\frac{2}{\pi}B_{m1}\lambda_pL_{stk}

假设 \lambda_p\lambda_s 分别为极距和槽距

\lambda_p=\frac{\pi D}{2p} \quad   \lambda_s=\frac{\pi D}{Q_s}

其中D是气隙直径,则永磁体在每相绕组产生的基波磁链(peak)为

\psi_{m1}=k_{w1}N_{ph}\phi_{pm1}

k_{w1} 是基波绕组系数,N_{ph} 为每相匝数。

则每相产生的永磁体感应基波电动势(RMS)为

E_1=\frac{d\psi_{m1}}{dt}=\omega_e\psi_{m1}=\frac{2\pi f}{\sqrt2}k_{w1}N_{ph}\phi_{pm1}

其中 f 是基波频率。

3.3 功率和力矩

线负荷定义为(双层绕组):

A=\frac{2mN_{ph}I}{\pi D}

其中 I 表示电流(RMS), m 是电机相数,则气隙中产生的最大电磁功率为

P_{em}=mE_1I=m\frac{\sqrt2 \pi f}{p}k_{w1}N_{ph} B_{m1}D L_{stk}I

假设电磁能全部转化为机械能(可以通过控制实现),则产生的转矩为:

T=\frac{P_{em}}{\omega_m}=\frac{\pi}{2}\cdot D^2L_{stk}\cdot A \cdot \frac{B_{m1}}{\sqrt2}\cdot k_{w1}

进一步变换形式:

T=2 \cdot V \cdot A \cdot B \cdot k_{w1}

其中 B=\frac{B_{m1}}{\sqrt2}V=\frac{\pi}{4}D^2L_{stk}=\frac{\pi}{4}\alpha_iD^3\alpha_i=\frac{L_{stk}}{D}

3.2铁芯主要 尺寸估计

铁芯的主要尺寸如下,

气隙直径可按如下估算:

D=\sqrt[3]{\frac{2T}{\alpha_i \pi B A k_{w1}}}

齿宽和轭宽可作如下估算:

W_t=\frac{B_g \lambda_s}{k_{Fe}B_t}  \quad W_{bt}=\frac{1}{2}\frac{B_g k_a \lambda_p}{k_{Fe}B_{bi}}

其中 k_{Fe} 是叠压系数,可根据槽满率和电流密度估算槽的面积为:

A_{slots}=\frac{A\pi D}{k_{fill}J}

其中 k_{fill} 为槽满率,当然槽得的面积也可通过几何尺寸计算

A_{slots}=\frac{\pi}{4}(D_{bi}^2-D^2)-Q_s\frac{D_{bi}-D}{2}W_t

综合以上两式可以估算铁芯的轭部直径为

D_{bi}=\frac{Q_sW_t}{\pi}+\sqrt{(\frac{Q_s W_t}{\pi})^2-\frac{2Q_sW_tD}{\pi}+D^2+\frac{4AD}{k_{fill}}}

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


四、如何建立绕组解析模型

4.1 绕组电动势计算

绕组的空间分布如下

和永磁体建立的磁场分析一致,绕组产生的基波磁动势(RMS)为

F_{ph}=\frac{4}{\pi}\frac{k_{w1}N_{ph}}{2p}I_s

气隙中产生的基波磁密为

B_{c1}=\frac{\mu_0}{\delta}F_{ph}

其中 \delta=K_cL_g+\frac{L_m}{\mu_r} 为总的等效气隙。

4.2 绕组电感计算

如下图所示,绕组产生的基波磁通为

\phi_{p1}=\int_0^{\tau_p}B_{c1}sin(\frac{x}{\tau_p }\pi)L_{stk}dx=\frac{2}{\pi}B_{c1}\tau_pL_{stk}

则绕组产生的基波磁链为

\psi_{s1}=k_{w1}N_{ph}\psi_{p1}=\frac{2}{\pi}k_{w1}N_{ph}B_{c1}\lambda_p L_{stk}

则相电感为

L_{ph}=\frac{\psi_{s1}}{I_s}=\frac{4}{\pi^2}\frac{\mu_0 \tau_p L_{stk}}{\delta p}(k_{w1}N_{ph})^2

忽略漏感,dq轴电感为

L_d=L_q=\frac{3}{2}L_{ph}

至于dq电感和相电感的关系,小潘专门有一篇文章,有兴趣的参见J Pan:如何理解永磁电机各种电感?

4.3 电阻计算

每相匝数为

N_{ph}=round\left( \frac{A\pi D}{2m I} \right)

round是圆整的意思,则导体所占的槽面积为

S_{Cu}=\frac{A_{slots}k_{fill}}{2mN_{ph}}

R_{ph}=\rho_{Cu}\cdot 2N_{ph}\frac{L+L_{ew}+L_{sw}}{S_{Cu}}

其中 L_{ew} 是端部绕组长度, L_{sw} 是绕组跨距

L_{sw}=\frac{\pi(D+D_{bi})}{2p}

4.4 电压计算

永磁电压相量图如下图所示,其中左图为内嵌式永磁电机相量图,右图为表贴式永磁电机相量图。

我们只考虑表贴式永磁电机,采用 i_d=0 控制,忽略电阻压降,并且只考虑稳态,此时

V_s\simeq\sqrt{E_1^2+(LqI_s)^2}


五、如何建立损耗以及散热模型

电机的损耗主要包括电损耗和机械损耗两大类,为简单期间,先忽略机械损耗。电损耗又包括两类:铜损和铁损。

P_{loss}=P_{Fe}+P_{Cu}

5.1 铜损计算

铜损计算比较简单,可按如下估算

P_{Cu}=3 \cdot R_{ph} \cdot I^2

其中 R_{ph}=(1+\alpha \Delta T)R_{ph}@20^oC

5.2 铁损计算

铁损计算比较复杂,很难计算准确,一般采用Steinmetz方法进行估算,即将铁损分成两个部分:磁滞损耗涡流损耗。

P_{Fe}=P_h+P_e

磁滞损耗可通过下式计算

P_h=k_hfB^{\gamma}

其中 k_h 是取决于材料的常数, \gamma 一般取值在1.8到2.2之间。

涡流损耗的估算公式为

P_e=\frac{\pi^2B^2t^2f^2}{\rho\beta}=k_e(fB)^2

其中 t 是叠片厚度, \rho 是材料电阻率, \beta 和几何结构有关。

一般材料厂家都会给出不同频率下的损耗曲线,如下图所示

可用最小二乘法进行曲线拟合,将 k_hk_e\gamma 作为未知量,拟合结果如下

损耗的表达式为

P_{Fe}=626fB^{1.8}+1.375f^2B^2

5.3 外壳散热系数估算

J Pan:如何估算圆柱形电机外壳的散热系数 一文中,小潘介绍了怎么计算一个圆柱形电机外壳的的表面散热系数,

外壳的散热系数估算公式如下

h\approx (3 \sim 3.5)\left( \frac{\Delta T}{D} \right)^{0.25}

对于开槽电机,这个系数可适当进行放大,放大倍数在1.3到1.8之间。


六、如何进行PMSM全局优化设计(Global Optimization)

有了前面的模型,我们就可以对表贴式永磁电机进行全局优化设计了,我们可以选取如下变量:

\vec{x}=[p,q,A,J,\alpha_i,B_t,B_{bi},\alpha_p]

其中 p 为极对数, q 为每极每相槽数, A 为线负荷, J 为电流密度, \alpha_i 为长径比,B_t 为齿部最大允许磁密,B_{bi} 为轭部最大允许磁密, \alpha_p 为极弧系数。当然这些变量选取不是唯一的,完全可以选取别的组合。

假设我们建立了已电机几何模型与变量之间的函数:

[D_s,D_{bi},D,W_t,W_{bi},N_{ph},...]=F(p,q,A,J,\alpha_i,B_t,B_{bi},\alpha_p)

约束是电压和最大温升

T(p,q,A,J,\alpha_i,B_t,B_{bi},\alpha_p)\leq T_{max}

V(p,q,A,J,\alpha_i,B_t,B_{bi},\alpha_p) \leq Vdc

目标是体积最小,效率最高

Vol(p,q,A,J,\alpha_i,B_t,B_{bi},\alpha_p)=min

\eta(p,q,A,J,\alpha_i,B_t,B_{bi},\alpha_p)=max

计算结果如下(注意本设计仅做方法说明,不具有现实参考意义):

上图展示了所有变量组合及其对应的计算输出,由于采用了遗传算法,计算量大大减小,所有计算只进行了8000次,时间约在3分钟。我们也可以通过泡泡图来看一下任意两个变量(比如线负荷和电流密度)和目标函数(体积和效率)的对应关系。

一般来说,我们肯定是希望体积最小,效率最高,也就是说我们喜欢右下角的解。我们把右下角所有包络的点取出来,称之为Pareto图,最优设计点肯定会落在Pareto图上。

Pareto图上每一点都可认为是一个最优设计(在效率和体积之间的权衡),比如我们可选择如下设计,此时体积最小,效率也能接受。

编辑于 2019-03-12

文章被以下专栏收录

    以工程师的眼光,探索工程领域中所需要的数学、物理知识,力图用最简单、符合直觉的方式解释、探讨晦涩的概念。内容涵盖机械设计、自动控制、信号处理、数学物理方法、电机设计及控制以及结构、电磁、流场仿真分析以及飞行器相关。