基于Python的JMAG二次开发在游标型永磁直线同步电机设计中的应用

2022-06-20 04:43邹子羽卢琴芬
微电机 2022年5期
关键词:脚本调用二次开发

邹子羽,卢琴芬

(浙江大学 电气工程学院,杭州 310027)

0 引 言

随着现代工业的发展,电梯的提升重量和高度不断提升,传统的曳引式电梯存在曳引绳,从而受到了重量、高度和强度等方面的限制。无绳电梯则可以适应更高的垂直运输高度和更大的轿厢容量需求。在高载重量运行时,无绳电梯系统需要高推力密度的低速直线电机[1],而游标型永磁直线同步电机(VPMLSM)正具有低速、高推力密度的特点,可以推测能够很好地契合大容量无绳电梯系统的应用需求。

电机设计可采用等效电路方法与有限元方法,VPMLSM磁路复杂,在加载后磁路易饱和,通常采用后者。在设计过程中,基于有限元软件进行模型绘制、材料设置、激励条件施加、网格剖分、性能计算。如果进行方案调整或设计优化,则需要多次重复前面的过程,存在很多重复性和机械性的工作,降低了电机设计的速度和效率,因此需要基于有限元软件建立二次开发设计平台。在现有研究中,已经有较多文献利用VB/VBA语言对有限元软件例如Maxwell进行二次开发,实现模型设计时的参数化和自动化[2-3]。但基于Python对有限元仿真软件进行二次开发的研究很少。为了提升设计效率,缩短迭代周期,本论文将采用Python脚本对JMAG进行二次开发,实现图形界面编程(GUI)、参数化建模和后处理,GUI作为人机交互界面进行参数设置和模型实时预览,参数化建模则是建立有限元脚本文件,后处理则对有限元仿真结果进行导出运算和可视化处理。最后将Python脚本封装成可执行程序,建立具有一定独立性的用于电机设计完整流程的可移植软件平台。

1 系统开发原理

1.1 系统开发对象

JMAG软件是由日本JSOL公司开发的功能齐全、应用广泛的电磁场分析软件。软件可以对各种电机及电磁设备进行精确的电磁场分析,并且提供其与许多系统的链接能力,可以通过COM接口运行多种脚本语言[4],包括VBSCript、Jscript和Python。其中Python是一种面向对象并具有动态语义特征的计算机编程语言[5],由于其具有易阅读易上手的特点而被广泛地应用于多数平台的脚本和开发应用中,且Python具有优秀的可扩展性和丰富的库,可以更加充分灵活地进行二次开发。故在本系统中采用Python作为JMAG对应的脚本语言。

1.2 系统接口技术及整体框架

在二次开发的过程中,如何将开发的脚本语言和平台进行连接至关重要。在现有二次开发的接口研究中,文献[6]通过ActiveX Automation连接技术对VB应用程序与AutoCAD建立连接,令客户端程序操纵AutoCAD实现自动化绘图,文献[7]实现了VB与Matlab混合编程设计电机,其中涉及到Matlab的Com Builder技术、MatrixVB等技术,考虑到软件开发难度和应用范围,最后采用了M文件技术,把Matlab中的m文件生成exe文件供VB调用。文献[8]通过Ansys的参数化程序设计语言(APDL)编写脚本,再由VB对脚本文件的读取和写入来实现VB和Ansys软件间的数据传递。

对于Python而言,可以采用COM接口,调用ActiveX控件实现与JMAG软件的连接,也可以直接利用JMAG内置的COM接口调用Python脚本文件。但直接调用ActiveX控件对开发者计算机基础的要求较高,而使用JMAG内部接口需要在JMAG环境中运行,无法在未启动JMAG的情况下进行编辑或前后处理,其独立性和灵活性有所欠缺。所以在本系统中采用两种接口技术,即内部连接和外部连接两层调用逻辑。内部连接中,使用JMAG内部COM接口运行相关Python脚本文件;外部连接中,在Python环境下创建子进程启动JMAG软件,并且令JMAG在内部环境中执行指定的Python脚本文件。

系统的整体框架如图1所示。Python顶层代码通过外部连接方式启动JMAG软件,同时根据用户指令生成以Python脚本文件形式存在的JMAG命令流,JMAG通过内部连接的方式执行脚本文件,自动完成电机模型绘制、材料添加、有限元计算等步骤。JMAG软件调用结束后,Python顶层代码进行后处理等过程。这种系统框架一定程度上实现了Python和JMAG的双向连接,且由于其整体运行在Python环境中,极大地提升了Python代码的独立性和自由度。

图1 系统框架

2 二次开发设计软件

2.1 软件设计流程图

软件流程图如图2所示。整个软件在Python大环境下运行。用户通过GUI界面实现与系统的人机交互,设置相关参数并且进行图形预览。置入结束后GUI将相关参数传递到脚本生成器中,生成器基于源代码将传递参数包含的信息自动转换为JMAG可识别、可执行的脚本文件。然后通过调用子进程启动JMAG软件,令其读取自动生成的Python脚本文件,在JMAG环境下根据给定参数自动完成模型绘制、材料添加、电路设置、仿真参数编辑等有限元仿真工作,且可以根据用户设置添加矢量控制、单结构参数扫描等仿真流程。仿真结束后对数据进行导出,并且进行相应的计算和可视化处理,完成整个二次开发参数化建模的流程。

图2 软件流程图

在上述流程图中,脚本生成器编写的代码源自文档查阅或JMAG内置的脚本录制功能,在软件开发的过程中,将JMAG执行的脚本文件中重复性较多的代码打包成函数,从而精简主函数的代码,并且增加代码的可读性。

当软件在不同用户的电脑上运行时,JMAG软件安装的路径可能会不同,所以软件除了初始状态下调用JMAG的路径,还可以编辑调用路径,从而确保软件的可移植性。

2.2 软件功能

整个软件的界面设计如图3所示。软件的所有参数置入、功能设置和结果显示等功能都集成到一个窗口当中。主窗口下分为三个次窗口,其分别是模型库、模型编辑和用户设置。模型编辑是软件设计的主体部分,在该次窗口下可以完成对模型进行命名、结构绘制、参数设置和有限元仿真结果查看等操作。模型库读取并展示现有模型,用户设置对相关路径进行编辑。

在模型编辑窗口中,电机的综合设计是软件的核心功能。综合设计的中心思想是参数化,即将电机的模型绘制和激励条件添加都以参数的方式呈现,例如当对模型结构进行参数化绘制时,其界面如图4所示。在结构设计的过程中还内置了结构预览功能,该功能可以根据置入的参数实时呈现电机的局部结构和整体结构,使设计过程更加直观。

图3 软件界面

(1)校核计算

校核计算是指计算VPMLSM在给定运行条件下的性能。首先输入结构参数与激励参数,设置完成之后,点击“开始运行”调用JMAG软件读取自动生成的Python脚本,依照脚本中的指令完成有限元仿真整体流程。然后代码会自动完成有限元仿真结果数据的提取、导出和计算处理,其中包括对电压电流进行FFT频谱分析,以计算出功率因数和THD等[9],最后将推力性能参数和电路性能参数和对应的推力、电压电流曲线图呈现在运行结果中。

(2)矢量控制

矢量控制是指计算出Id=0矢量控制策略时的电机性能。首先电机保持静止,将电流源初始相位设置为0,通过有限元仿真得到推力的波形曲线,找到初始点与推力最大点之间的相位差,然后利用相位差对电流源初始相位进行校正,此时就可实现Id=0的矢量控制方式。

(3)单参数扫描

在电机初步尺寸确定后,需要对电机结构参数进行优化,单结构参数扫描是一种较常用的方式。软件中设置了参数扫描选择框,当选择下拉菜单中的其中一个结构参数,然后逐行输入参数序列,就可以实现单结构参数扫描的功能。

2.3 数据库管理

设计平台在有限元仿真过程中将产生大量的模型与运算数据,需要对它们进行保存和归档。在软件中设置了数据库,将已经完成仿真的电机结果进行归一化、统一化处理后导出Excel文件。该结果文件也能作为输入文件被软件重新读取。结果文件存放路径可以在软件中进行设置。

3 程序应用

基于上述设计软件,就可以完成VPMLSM的方案设计。VPMLSM运用“磁齿轮效应”,即低速运转的转子能产生高速变化的空间磁场,在此过程中电枢磁场中含量最大谐波成分与永磁体磁场极数相同且相互作用,从而产生输出转矩[10-12]。

VPMLSM的设计要求:平均推力为13.25 kN、推力波动小于5%,其初始方案的结构参数通过输入窗口设置,如图4所示。初级绕组极对数/永磁体极对数/初级槽数为6/30/36,减速比为5,永磁体采用Halbach阵列。设置激励电流,选择矢量控制,就可以计算得到该VPMLSM的性能,其对应的仿真性能结果曲线图如图5所示。在初步设计的电机模型中,平均推力大小为13.4 kN,符合设计要求,而推力波动为7.85%,不满足设计要求。

图4 参数输入窗口

图5 运行结果窗口

在初始方案的基础上,选择参数扫描功能,对电机结构参数逐个进行扫描计算,如图6所示。参数扫描后,以推力大小和推力波动为优化目标,确定结构参数的最优组合。图7展示了影响较大的三个结构参数扫描计算结果,左列为平均推力,右列为推力波动。

图6 参数扫描置入

图7 单结构参数扫描计算的平均推力与推力波动

通过参数扫描后,就可以获得最后的设计方案,如表1所示,其性能与初始方案的对比如表2所示。

表1 VPMLSM设计参数结果

表2 VPMLSM优化前后的性能对比

4 结 论

本文采用Python语言编写了基于JMAG二次开发的设计程序,将Python和JMAG软件进行有效连接,增加二次开发的灵活性和可拓展性。通过脚本实现了电机建模和有限元仿真的参数化和自动化,缩短整个电机设计的周期。

基于该二次开发设计平台,对VPMLSM进行了性能计算与优化设计,获得了满足设计要求的设计方案,验证了二次开发平台的可行性和灵活性,提升了设计效率。在后续的应用开发过程中,将应用多目标多参数优化算法,获得最优方案。

猜你喜欢
脚本调用二次开发
AutoCAD 与PDMS 二次开发在三维复杂形体设计建模上的应用
例谈对高中数学教材中习题的二次开发
浅谈CAD软件二次开发的方法及工具
系统虚拟化环境下客户机系统调用信息捕获与分析①
自动推送与网站匹配的脚本
例谈课本习题的“二次开发”
举一反三新编
基于属性数据的系统调用过滤方法
捕风捉影新编
利用RFC技术实现SAP系统接口通信