一、什么是工程师文化 二、什么是遗传演算法 三、如何建立永磁体磁场模型 四、如何建立绕组解析模型 五、如何建立损耗以及散热模型 六、如何进行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.
遗传演算法需要做的,就是模拟一个种群的进化过程;在这个过程里,我们可以简单地认为:
比方说,我们要人为的构建一个知乎大V,这个大V需要有一些特征,比方说身高、体重、长相、学历、人品等等。据此,我们根据一定的编码规则(encoding),可以随机的生成一个用户,比方说0001010111。假设我们已知了一个适应度函数,比方说你的眼缘....用以评价该用户是否为大V(the quality of the chromosome)。那么我们可以根据我们的fitness function计算得到该个体的适应度。重复这个过程,我们便可以得到多个知乎用户,即一个种群。
基本流程:
当然这里会涉及到一些问题,比方说如何选择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之间。
有了前面的模型,我们就可以对表贴式永磁电机进行全局优化设计了,我们可以选取如下变数:
其中 为极对数, 为每极每相槽数, 为线负荷, 为电流密度, 为长径比, 为齿部最大允许磁密, 为轭部最大允许磁密, 为极弧系数。当然这些变数选取不是唯一的,完全可以选取别的组合。
假设我们建立了已电机几何模型与变数之间的函数:
约束是电压和最大温升
目标是体积最小,效率最高
计算结果如下(注意本设计仅做方法说明,不具有现实参考意义):
上图展示了所有变数组合及其对应的计算输出,由于采用了遗传演算法,计算量大大减小,所有计算只进行了8000次,时间约在3分钟。我们也可以通过泡泡图来看一下任意两个变数(比如线负荷和电流密度)和目标函数(体积和效率)的对应关系。
一般来说,我们肯定是希望体积最小,效率最高,也就是说我们喜欢右下角的解。我们把右下角所有包络的点取出来,称之为Pareto图,最优设计点肯定会落在Pareto图上。
Pareto图上每一点都可认为是一个最优设计(在效率和体积之间的权衡),比如我们可选择如下设计,此时体积最小,效率也能接受。