导体在变化的磁场中产生涡电流[1],涡电流进而产生涡流磁场.舰船在航行的过程中,切割地磁场,产生磁通量的变化进而产生涡流,同样地,涡电流在舰船周围空间产生涡流磁场[2].对于一般的舰艇,由于涡流磁场比其他磁场要小得多,因此通常不予考虑.但是在本身铁磁性已经很低的猎、扫雷舰艇,涡流磁场作为主要的磁场源,必须进行研究和处理,以保障舰船行进的安全性[3].目前对于涡流磁场的计算已有较多的理论研究,文献[4-6]对涡流磁场计算做了相关的理论研究,但类比于舰船感应磁场及固定磁场的深度换算,涡流磁场不同深度的相互换算尚未深入研究.在实际的舰船涡流磁场测量过程中,因为各个消磁站的硬件条件不同,不能总是对不同深度的涡流磁场进行准确测量,所以须先对不同深度的涡流磁场在有条件时建立数据库,结合人工智能算法中的条件生成对抗神经网络[7],对低磁舰船不同深度的涡流磁场进行点对点的换算,由一个深度推算另一个深度,这样极大地简化了涡流磁场的测量与计算,对后续的涡流磁场补偿及其他研究有很大的帮助.铜制板无铁磁性磁场,但可产生涡流磁场,本研究使用COMSOL仿真软件对铜板进行模拟仿真,改变铜板的电导率,控制单一变量进行重复实验400次,测得两个深度的正下方磁场模拟涡流磁场得到仿真数据.构建条件生成对抗神经网络(CGAN)对数据进行学习,从而对两个深度的涡流磁场进行推算,得到的推算值与仿真结果比较可以达到97%的精准度,具有一定的准确性和实用性.1 深度换算原理和条件生成对抗网络1.1 深度换算的理论模型涡流磁场的大小和涡流磁矩有关,当磁矩位置固定时,对于不同深度的涡流磁场,可以用涡流磁矩计算得到[8-9].假设对铜板涡流磁场的涡流磁矩位置固定,对于不同深度的涡流磁场值为ΔH=AΔM,式中:ΔH为磁场的变化量;A为测量点与磁矩的关系矩阵;ΔM为磁矩的变化量.对于铜板的涡流磁场深度换算,可以利用磁矩的变化作为中间过渡量,进而得到不同深度的涡流磁场的关系,即ΔH1=A1[ΔM1,ΔM2,⋯,ΔMm];ΔH2=A2[ΔM1,ΔM2,⋯,ΔMm],式中:ΔH1和ΔH2为不同深度的涡流磁场值的变化量;A1和A2为不同深度的涡流磁场和涡流磁矩的关系矩阵;[ΔM1,ΔM2,⋯,ΔMm]为涡流磁矩的变化量.由数学计算得到两个深度的涡流磁场的直接关系为ΔH1=PΔH2,式中P为两个深度的关系矩阵.当取固定测量平面时,要通过一个平面推算另一个平面,这时只须取多次同样深度磁场的数据值用于求解P,就可以用一个平面推算另一个平面的涡流磁场,极大地简化了实际测量过程.1.2 CGAN的理论模型CGAN是在GAN(生成对抗网络)的基础上进行的创新.GAN由两个具有“对抗性”的神经网络模型组成,其中生成器用于捕获数据分布,判别器用于评价样本来自真实的训练数据而不是生成器的概率.首先对判别器输入足够多的真实数据进行学习,再对生成器输入噪音,并产生对真实数据的模拟结果[9].生成器和判别器同时进行训练,通过误差函数的修正,一方面使生成器的生成数据和真实数据的误差最小,另一方面使判别器对生成器生成的数据与真实数据的相似度最大,建立一个最大最小化模型并反向传播来对整个模型进行训练优化.为了从已有的真实数据x中学习数据的内在规律,生成器建立的模型是由噪音z的先验分布pz(z)到生成器生成的数据分布G(z;θg)的映射函数.判别器输出的标量D(x;θd)表示数据来自x而非生成器的生成数据,即minGmaxDV(D,G)=Εx~pdata(x)[logD(x)]+Εz~pz(z)[log(1-D(G(z)))],式中:V(D,G)为优化后的目标函数;D(x)为判别器对x的判断结果;Εx~pdata(x)[logD(x)]为x服从pdata分布时logD(x)的期望;Εz~pz(z)为z服从pz分布的期望;G(z)为生成器对z的生成结果.如果生成器和判别器都以某些额外信息y为条件,则GAN可以扩展为CGAN.y可以是任何种类的辅助信息,如类标签或其他形式的数据,通过将y作为附加输入层输入到判别器和生成器中执行调节.GAN的使用一般是生成足够逼近真实目标的假目标,若让机器生成具有指定特征的目标,则须要使用CGAN,如特定的手写数字.本研究使用0.5 m深度的涡流磁场值预测0.7 m的涡流磁场,就是对指定特征目标的生成.对于CGAN,将z和y输入到生成器中,把生成结果输入到判别器中,并输入y和数据库中标签对应的真实数据x,图1和图2分别为其流程图和示意图.10.13245/j.hust.210822.F001图1条件生成对抗网络流程图10.13245/j.hust.210822.F002图2条件生成对抗网络示意图目标函数可表示为minGmaxDV(D,G)=Εx~pdata(x)[logD(x|y)]+Εz~pz(z)[log(1-D(G(z|y)))],式中:D(x|y)为判别器对带有标签y的真实数据x的判断结果;G(z|y)为生成器对带有标签y的噪音z的生成结果.2 铜板的涡流磁场仿真目前可以对涡流磁场进行仿真的软件主要有ANSYS和COMSOL[10].涡流磁场设计电场和磁场的相互影响,一般情况下涡流磁场数值很小,由于在COMSOL仿真软件中,有直接的电磁场研究接口,因此对于多物理场的研究,使用COMSOL更加便捷.本研究设计的数据仿真的部分步骤由Matlab实现,选择COMSOL可直接与Matlab结合使用,极大地方便了仿真模型的结果获取.在COMSOL中构建长为1 m、宽为2 m、厚度为0.2 m的铜板,选择频域研究接口,设定外加幅值为30 A/m,频率为1 Hz的变化磁场,施加在铜板周围.施加频域到时域的研究计算,选取0~0.9间隔为0.1的10组时间下的铜板涡流磁场值进行测量.测量深度选择铜板沿长轴正下方的板下0.5 m和板下0.7 m,把0.5 m处的涡流磁场值作为标签,0.7 m处的涡流磁场作为对应数据.建立好几何模型后对铜板周围空间使用无限元域,设定合适的边界条件,并进行网格剖分[10].如图3所示.10.13245/j.hust.210822.F003图3铜板的有限元网格剖分使用COMSOL进行上述计算,选取时间点进行合适的后处理,可以得到同一深度不同时间产生的不同大小的涡流磁场值,如图4所示.10.13245/j.hust.210822.F004图4同一深度不同时间的涡流磁场值对铜板电导率参数进行修改,重复实验,得到不同的涡流磁场数据组,为后续的CGAN训练学习进行数据的积累.3 CGAN对数据的训练和学习通过仿真得到400组包含两个深度的涡流磁场值,从400组数据组中选取一个深度的涡流磁场作为标签y,另一个深度对应为真实数据x,其中200组作为训练样本,另外200组作为测试样本,训练模型通过深度学习从一个深度推算另一个深度的涡流磁场.对判别器和生成器依次进行训练,对于判别器的训练首先要判断数据是否来自真实数据组,然后判断数据是否与标签对应;对于生成器的训练则须尽可能生成判别器无法判别真假的数据[11-13].构造完善生成器和判别器的神经网络模型,选择合适的loss函数.3.1 针对判别器进行训练a. 构造噪音组[z1,z2,⋯,zm].b. 从已有的200组不同深度的数据中选取深度为0.5 m的数据作为标签y,深度为0.7 m的数据作为真实数据x,构建[(y1,x1), (y2,x2),⋯, (ym,xm)].c. 将噪音和标签一同输入到生成器中生成假的数据组fdata,即fdata=[x˜1,x˜2,⋯,x˜m],x˜i=G(yi,zi),式中x˜i为生成器生成的假数据.d. 按对应的标签y和真实数据x输入到判别器中得到判别器对真实数据的评价结果rout,并把生成的fdata输入到判别器中得到判别器对假的数据的评价结果fout,即:rout=[D(y1,x1),D(y2,x2),⋯,D(ym,xm)];fout=[D(y1,x˜1),D(y2,x˜2),⋯,D(ym,x˜m)].e. 打乱标签y和真实数据x的对应顺序得到混乱的标签组ml,ml=[x̑1,x̑2,⋯,x̑m],其中x̑m为打乱以后的真实数据x.再将其输入到判别器中,得到判别器对非对应数据的判别结果flout,即flout=[D(y1,x̑1),D(y2,x̑2),⋯,D(ym,x̑m)].f. 更新判别器的参数值θd,使用loss函数优化判别器对真实数据的敏感性.针对上述步骤,判别器的训练公式为V˜=1m∑i=1mlog(1-D(yi,x˜i))+1m∑i=1mlogD(yi,xi)+1m∑i=1mlog(1-D(yi,x̑i));θd←θd-ηd∇V˜(θd),式中:V˜为判别器的目标优化函数;ηd为判别器的学习率.3.2 针对生成器进行训练a. 构造噪音组,与真实数据组中的标签y一同输入到生成器中,得到假的数据组fdate1,即fdate1=[x˜1,x˜2,⋯,x˜m];x˜i=G(yi,zi).b. 将fdate1输入到判别器中,得到预测数据组fout1,即fout1=[D(y1,x˜1),D(y2,x˜2),⋯,D(ym,x˜m)].c. 更新生成器的参数值θg,使用loss函数优化生成器对真实数据组的模仿能力.针对上述步骤,生成器的训练公式为V̑=1m∑i=1mlog(D(G(yi,zi)));θg←θg-ηg∇V˜(θg),式中:V̑为生成器的目标优化函数;ηg为生成器的学习率.4 训练结果对比对CGAN模型进行1×104次的训练学习,使用新数据测试组进行测试,测试仿真得到的200组带有标签的单点数据预测精确度.对200组数据进行处理,把每个点的准确度按公式求平均值,得到整体的判别器准确度P和生成器准确度P˜为:P=1n∑j=1nD(yj,xj);P˜=1n∑j=1nD(G(yj,zj)).判别器准确度如图5,生成器生成数据的准确度如图6.10.13245/j.hust.210822.F005图5判别器准确度10.13245/j.hust.210822.F006图6生成器生成数据的准确度对于涡流磁场的深度换算,使用CGAN模型,把一个深度的数据值作为标签组,另一个深度的数据作为目标值,进行合适的网络构建和训练学习后,可以达到98%左右的判别精度,生成数据达到97%的准确度,对涡流磁场的推算有一定的研究价值.已有文献对涡流磁场的深度换算尚未有成熟的方法,主要难点在于涡流磁场值较小,变化规律较难直接看出.类比感应磁场的深度换算,RBFNN(径向基函数神经网络)得到的数据误差值可作为本研究推算方法的参考[9],见表1.10.13245/j.hust.210822.T001表1误差对比训练样本组数RBFNNCGAN1003.476.782003.342.45%从表1可以看出:数据样本对CGAN模型的影响较大,原因在于神经网络本质是基于大量数据进行学习和预测的.本方法对涡流磁场适用性更大,原因在于一般的神经网络使用的是反馈性的学习方式,对复杂的涡流磁场并不适用,但是CGAN模型把重点放在对抗性,在数据量逐渐变大的情况下,相比普通的神经网络的学习准确度有明显的提高.对复杂的学习目标,如带有标签类别的数据生成,使用CGAN模型更为合适.5 误差分析CGAN的模型训练和预测结果证明此方法对涡流磁场的深度换算有理论上的准确性,可能产生误差的原因分为两方面.仿真模型构建产生的误差:a. 使用COMSOL建模时,有限元网格剖分不够精细,对有限元计算方法的结果有一定的误差;b. COMSOL计算结果不是解析解.网络模型产生的误差:a. 训练样本不够丰富,整个网络模型容易陷入局部最优解;b. 训练次数过多或者过少,容易产生过拟合和欠拟合;c. 神经网络的结构与参数不是最优,导致训练效率低下,产生误差.针对以上产生误差的原因,可以从两方面进行改进,尽可能提高训练的准确度.仿真模型结构改善:a. 重复性仿真,对构建好的模型进行重复计算和验证,确保数据相对的准确;b. 对于网格剖分应遵循在现有的算力下尽可能精细化剖分.网络结构的优化:a. 尽量丰富训练样本;b. 建立批次训练模型并观察训练结果和关系,从中找到最合适的训练次数;c. 模型进行多次训练不断寻找最优参数和模型结构,尽量减少误差.6 结语本研究采用基于CGAN的涡流磁场深度推算方法,把一个深度作为标签推算另一个深度的磁场数据值,在训练学习后,测试组的结果符合较好,在误差范围内满足技术要求.在实际的舰船航行问题上,通过此方法可以对复杂的涡流磁场进行数据库建立,然后快速准确度推算不同深度的磁场数据值,具有较强的实用性.
使用Chrome浏览器效果最佳,继续浏览,你可能不会看到最佳的展示效果,
确定继续浏览么?
复制成功,请在其他浏览器进行阅读