如题,本回结合个人对代理模型技术的应用与研究经验,简要探讨下二者在电机仿真研发的应用前景和待研究点。为便于后续阐述,先普及几个概念。
一、几个基本概念
1.K维超立方体:K=2,2维超立方体即为矩形;K=3,3维超立方体即为长方体;依次类推,K≥4,K维超立方体,无需强制对应几何概念,K维超立方体仅是数学上的概念,可简单理解为K维欧式空间上的K个线性无关的K维向量。
2.设计空间X:N个优化变量构成的N维超立方体空间。若各优化变量离散取M个值,则设计空间大小为:M^N。设计空间任意一个空间点为一个N维行向量(x1,x2,…,xN)。
3.目标空间Y:P个优化目标构成的P维超立方体空间。优化空间任意一个空间点为一个P维行向量(y1,y2,…,yP)。一般而言,设计空间任意一个空间点唯一映射目标空间的一个空间点,映射关系记为F=(f1,f2,…fP)。注意,这里我们将F定义为一个P维的向量,即对目标空间的每一个维度均定义了一个映射fi,i=1,2,…P。对M^N大小的设计空间,其与目标空间则存在M^N个不同的映射关系F,每个F都是P维向量。如果我们能够通过有限元准确计算这M^N个映射关系F,则所有映射关系F的集合我们可以称之为设计空间到目标空间的“真实模型”。
当对一个确定的电机方案(即设计空间中的一个点),我们应用有限元仿真,得到该设计方案的各个性能指标(效率,脉动,齿槽转矩等)组成的行向量即构成为目标空间的一个空间点。可以看到,我们是通过有限元仿真来确定的映射关系F。原则上,对每个设计空间与目标空间的空间点对,其映射关系F是不同的。
回过头来看,仿真优化问题无非就是在大小为M^N的设计空间中找到一个以目标空间为评价指标的最优个体。寻优的方法无非:①穷举法;②抽样法。显而易见,穷举法是不现实的。例如,对一个M=5,N=5,P=3的优化问题,假设每个指标有限元计算耗时1分钟,则计算总耗时9375分钟,折合6.5天。在实际工程上,优化变量个数N>10亦十分常见,对更大规模的优化问题,采用穷举法显然是不可取的。基于统计学常识,我们自然会想到抽样。通过在设计空间中均匀抽样,以对有限个样本(设计方案)的计算,对整个设计空间做一次“粗糙”的抽样,我们可以快速的对整个设计空间所对应的目标空间的有个大概的认知,以确定较优解所在的子区域,并对子区域再抽样计算,如此往复几次,便可找到最优解。上述步骤可简述为:①初始设计空间抽样→②计算出对应目标空间性能,并评价→③基于评价结果缩减设计空间,对缩减后的设计空间再抽样→④重复②~③。可以看到,以上过程其实就是重复“抽样+有限元计算+评价”这一过程,总的来说,这类设计方法会较穷举法更高效,找到最优解的概率也更高。
4.代理模型:如上面第3点所提到的,要找到设计空间到目标空间的“真实模型”(即所有精确的映射关系),其计算代价(时间成本)是高昂的,结合第4点,如果能通过对设计空间做有限抽样(设计空间子集Xc),通过做少量的有限次计算得到对应目标空间子集(Yc),相应由设计空间Xc→目标空间Yc的映射集合记为Fc。若Fc可以在整个设计空间上尽可能逼近“真实模型”F,则我们可以用Fc来代替F,这就是代理模型的由来。代理模型Fc对真实模型F的逼近效果也称之为泛化能力。朴素的想法是,我们希望用尽可能少的抽样计算以获取高泛化能力的代理模型。
5.代理模型与AI技术
本质上,就电机优化问题而言,所谓AI技术的应用,本质上就是采用机器学习算法来建立代理模型而已(典型的如深度神经网络)。至于应用AI语言大模型来做语义理解做商软脚本二次开发不在讨论之列。所以,更本质的讲,本回主题应该是:代理模型技术在电机仿真优化中的应用展望。
6.基于代理模型(数据驱动)的电机优化
代理模型本质上是依据两个数据集(设计空间和目标空间)建立纯数学模型,通过应用优化算法(如遗传算法)驱动代理模型高效准确的计算出指定设计空间个体相对应的目标空间的目标值,省去时间昂贵的有限元计算,以此来提高优化效率。可以看出,如果代理模型具有通用的泛化能力,那么电机优化问题其实就转变成了一个纯数学问题,整个电机仿真优化可以不在依赖于具体电机几何模型,而是纯数据驱动的仿真优化。
二、代理模型技术在电机仿真优化中的应用展望与卡点
展望1:建立通用型代理模型是否可实现,价值度如何,难度如何?
答:以永磁电机来讲,从技术上说,搭建一个适用于任意转子拓扑、任意极对数的通用代理模型是可行的,技术难度更多是软件工程方面的。从电机实际工程角度,满足一定限定(如:固定极槽配合、铁芯磁钢材料、全参数化模型)的通用代理模型在技术实现上更简单便捷,其技术难度一般(因技术基础而异),基本上更多依赖于稳定的计算系统、充足的计算时间和抽样计算策略。满足一定限定的通用代理模型,在一个研发组织或对某一行业而言,其实是足够好用的,必定能够极大提高研发效率(5倍以上)。
展望2:代理模型终局应用在于系统、多物理场协同设计优化
商软(如ansys)将代理模型技术应用于单物理场的仿真优化已经很成熟了。笔者认为,代理模型更大的意义在于使得在系统层级或单部件多物理场层级上实施高效高精度协同设计优化成为可能。正因为可以对多部件或多物理场的抽取代理模型,使得过去基于模型的系统或多物理场耦合仿真可以转变为纯数据驱动型的仿真,并真正能够做到协同设计优化,而非过去单纯的系统或多物理场的单工况仿真确认。
展望3:代理模型技术应用存在的卡点
讲了代理模型的好,必然的,再好的技术也是会存在一些应用局限,下面简要归纳几点:
①真正具备全局泛化能力的代理模型在计算时间上是极其昂贵的
对高维设计空间(如10维以上)的实用性仍值得探讨(有限样本空间个体数量指数级增大,有限样本对应于设计空间的子集有限元计算代价高)。可行的办法,需要采用“低精度全局代理模型+高精度局部代理模型”的策略来提高代理模型技术的在高维设计空间上的实用性。在实际应用上,对特定的优化问题,局部最优解往往是无法先验知道的,所以训练高精度局部代理模型更实在的策略是采取“边优化边训练”的方法进行构建。
②抽样技术的终局还是序贯设计
当前,分片超立方拉丁采样依然需要事先定义总的样本数(无法先验知道),以预先定义的切片数,通过灵活的计算策略(代理模型精度满足要求即停止)来减少计算时间。序贯设计,从原理上可以灵活加点,但
3层以上的序贯设计是否可行仍待研究。故而,当前现实的方法仍然是采用分片拉丁超立方设计,能做的工作是尽可能提高抽样的均匀正交性。
③设计空间/目标空间的不连续点处理
所谓不连续点,简单讲就是电机建模失败的设计点。当我们选好优化变量,并设定好优化变量取值范围后,设计空间本质上是个多维连续超立方体,但实际上往往会因优化变量间的取值冲突而造成电机建模失败(即不满足欧式几何原理),这些建模失败的点即为设计空间上的不连续点。对于设计空间存在的不连续点问题,一种办法是选择在参数化建模上设计变量约束以尽量避免取值冲突。此种做法仅适用于简单几何模型,对于无明显解析约束或隐式约束问题,此种办法局限性很大。更为通用一般的方法是从代理模型构建上做处理。归根结底,对不连续点处理无非两个思路:a.化不连续为局部连续,即将全局不连续设计空间拆为多个局部连续设计空间。b.将不连续设计空间对应的不连续目标空间根据响应式进行极大/极小缝补,以获得连续的目标空间。方法a的实现分两步:1)、识别不连续设计空间点(对于设计空间的不连续点,快速计算其异常响应值可从计算策略上选取特定易算的响应值来识别不连续点);2)、应用如聚类算法,对设计空间点做根据响应值做聚类分析;方法b即将设计空间不连续点的响应值(即对应目标空间的点)做极大/极小处理以得到异常响应点。
展望4:定制化的基于代理模型驱动的优化技术
完整的基于代理模型技术驱动的优化技术链包括:抽样(如拉丁超立方抽样)→代理模型训练(如深度学习)→优化算法(如遗传算法)。有别于商软,定制化的基于代理模型驱动的优化技术重点在于:高效稳健的计算策略、工程实际痛点需求满足、易用可拓展式平台技术路径,其追求的目标是构建起设计需求到最优方案的端到端式工具。
~~~~~~~~~分割线~~~~~~~
以上,为本人拙见,随想随写,若有不对之处,还望大家指正,也欢迎与有志于工具链开发的伙伴多多交流,坚持做正确而对的事。
夜雨聆风