陈家新 何乔
摘要:电机模型绘制是永磁电机设计过程中的一个关键环节。永磁电机在设计时,需要经常调整一些尺寸,若手动在 AutoCAD中绘制电机模型,则非常耗费时间且容易出错。针对永磁电机模型在绘制过程中效率低下的问题,考虑运用参数化的思想,开发一套系统实现模型自动绘制。而采用 AutoCAD 内置的开发工具进行二次开发,又会带来使用不方便和拓展性差的问题。使用Visu- al Basic语言对 AutoCAD进行二次开发,针对一款永磁同步电机实现了参数化绘图,并能调整优化参数,自动批量化地绘制。绘制好的电机模型均以 DXF 格式保存在指定的文件夹内,为后续的电机优化提供了大量的样本。绘制系统界面简洁、操作方便、自动化程度高,为以后电机产品的设计提供了思路。
关键词:永磁电机;Visual Basic;AutoCAD;参数化
中图分类号:TP391.72文献标志码:A
文章编号:1009-9492(2021)11-0017-04
开放科学(资源服务)标识码(OSID):
Automatic Drawing System of Motor Model Based on Secondary Development of AutoCAD with VB
Chen Jiaxin1,He Qiao2
(1.School of Mechanical Engineering, Donghua University, Shanghai 201620, China;2.School of Information Science and Technology, Donghua University, Shanghai 201620, China)
Abstract: Drawing of motor modelis a key link in the design process of permanent magnet motor. In the design of permanent magnet motor, it is necessary to adjust some sizes frequently. If the motor model is drawn manually in AutoCAD, it is very time-consuming and error-prone. Aiming at the problem of low efficiency in the drawing process of permanent magnet motor model, a system was developed to realize the automatic drawing of permanent magnet motor model by using parameterization idea. However, using the built-in development tools of AutoCAD for secondary development will bring the problems of inconvenience and poor expansion, so Visual Basic language was used to the secondarydevelopmentof AutoCAD,theparametricdrawingof apermanentmagnetsynchronousmotor wasrealized,inaddition,the parameters were adjusted to be optimized and draw mass models according to these parameters. The drawn motor models were stored in the specified folder in DXF format, which provided a large number of samples for the subsequent motor optimization. The drawing system has the advantages of simple interface, convenient operation and high degree of automation, which provides ideas for the design of motor products in the future.
Key words: permanent magnet motor; Visual Basic; AutoCAD; parameterized
0 引言
电机的模型绘制是电机产品在设计中的一个基础环节[1]。在使用等效磁路法对永磁电机进行分析和优化时,为了找到电机的最佳设计结果,通常需要不断调整电机某几处的尺寸数据,每调整一次则要在 AutoCAD中重新绘制一张电机的模型。为了使设计方案尽可能覆盖更大的范围,会绘制上百张甚至更多的模型,手工绘制会大幅降低电机设计的效率,同时也很容易出错。因此,设计出一款高效、简洁的电机模型绘制系统是一件十分有必要的事。
传统的基于 AutoCAD 的二次开发思路是利用 Auto- CAD 内置的开发工具(Auto Lisp 语言、VBA 等)[2],开发设计脚本语言,当需要绘制特定图形的时候,在 Auto- CAD中手动加载对应的脚本文件即可。但是由于脚本语言无法独立运行的特性,每次使用都要手动打开 Auto- CAD软件并加载,并且与其他软件接口难度较大,拓展性差。使用該方法开发的软件实际使用体验并不好,绘制的效率需要进一步提高。使用 VB 语言对 AutoCAD进行二次开发,不仅能方便地修改电机的尺寸、批量地进行绘制,其高拓展性为后续增加其他功能提供了方便。相对于手动绘图,极大地提高了电机设计的效率。本文以实验室设计的60永磁电机为例,详细介绍了在 Win- dow环境下使用 Visual Basic6.0对 AutoCAD2016进行二次开发进行参数化绘制电机模型的过程。
1 VB对AutoCAD二次开发的原理
VB 是一种面向对象、以事件为驱动为运行机制的编程语言[3]。相对于 AutoCAD二次开发的其他工具,VB 语言有可视化程度高、上手难度低等优点[4],这十分契合系统对于高效、简洁的设计需求。使用 VB 对 AutoCAD 进行二次开发使用到了 ActiveX 自动化技术,即将 Auto- CAD当作VB 中的一个图形窗口,通过 VB 语言控制 Auto- CAD的打开、绘制、关闭等操作[5]。
1.1 AutoCAD对象
VB6.0通过操作 AutoCAD的对象和属性来实现电机模型的绘制操作[6]。AutoCAD的对象包括图形对象、样式设置对象、组织结构、图形显示对象和 AutoCAD应用程序(Application)和文档( Document ),并且他们之间存在一定的层级和隶属关系[7]。在本系统中,用到的 Auto- CAD对象主要为应用程序、活动文档和模型空间(Mod- elSpace)[8],其中模型空间是隶属于活动文档的一个对象。因此,首先在程序中定义对应3个对象的类变量,分别为AcadApp、AcadDoc和MoSpace。
1.2 VB与AutoCAD连接
使用 VB 语言对 AutoCAD 进行二次开发,首先要在项目中添加 AutoCAD的类库[9]。在 VB6.0的程序界面点击“工程”—“引用…”,在弹出的对话框里勾选“Auto- CAD 2014 Type Library”,即可调用 AutoCAD 的类库[10]。通过对变量赋初始值的方法判断并控制 AutoCAD的打开和关闭:
Set AcadApp = GetObject (, "AutoCAD.Application")
……
AcadApp.Visible = True
Set AcadDoc = AcadApp.ActiveDocument
Set moSpace = AcadDoc.ModelSpace
程序中省略号为判断 AutoCAD软件有没有打开的过程,如果没有打开,就在程序中打开 AutoCAD 软件。AcadApp.Visible = True 表示 CAD 软件可见。AcadDoc表示应用程序中的一个活动文档,moSpace表示活动文档的模型空间,分别为其赋初始值。
2 电机模型的参数化建模
2.1 电机模型的参数化表示
要通过参数化的方法实现电机模型的自动绘制,达到与手动绘制相同的效果,首先要对电机模型的几何尺寸和其约束关系进行分析[11]。首先,参考手动绘制所需的尺寸数据,完整地确定参数化绘制所需数据,并对其进行参数化表示。模型的参数化表示如图1所示。
在图中标注的参数,定子部分有定子轭厚 d0,定子外径rSO,定子内径rSI,定子齿宽wt,槽间距wg,齿靴高度 h ,线圈离槽宽度 l ,齿靴处圆角半径 r0;转子部分有极对数p ,转子外半径rR,转子外圆弧半径rRO,转子槽最薄处厚度 l2,磁钢槽间厚度 l3,磁钢槽高度 a ,转子内径rRI,磁钢圆角半径rC。
以电机的中心为坐标原点,电机的某个定子的对称轴为 Y轴建立二维坐标系。将电机单个定子和转子的左半部分分离出来,分别对构成该部分的所有关键点和关键线条进行标注。标注的关键点和关键线条的结果如图2~3所示。
经过几何计算,使用图1中标注的参数表示图2中所有关键点的坐标,得到部分关键点的坐标如表1所示。根据已知信息继续计算,求得图2中所有关键点坐标。
2.2 设计优化参数及其调整策略
电机优化参数需要在参数化表示中所有参数中选择,电机优化的所有样本均是这些优化参数按一定策略调整获得。电机优化参数的设计应遵循以下几个原则:
(1) 优先考虑能够连续变化的参数;
(2) 电机设计之初设计的基本参数不能作为优化参数(如定子内径、定子外径等);
(3) 选择的优化参数之间应是相互独立、线性无关的,即一个优化参数的变化不能影响另一个优化参数的大小;
(4) 优化参数的数量要适量,数量太多会导致需要优化的样本过多,计算时间太长,数量太少则会导致样本覆盖不全,不能找到电机设计的最優解;
(5)尽量选择对电机性能影响较大的参数;
(6)优化参数的变化区间应容易确定,且有较大的调整空间。
遵照优化参数设计原则,将电机的参数分为以下3类:(1) 在电机设计之初确定的基本结构数据,这些数据是确定的且不可修改的;(2)对电机性能没有影响的数据,这些数据在电机绘制时是必要的,但是在电机优化时也可以设定为固定值;(3)对电机结构和性能都有影响的重要数据,这些数据在电机优化中至关重要,每个数据的变化都会或多或少地改变电机的性能。第3类参数包含槽间距wg、齿靴高度 h 以及齿靴圆角半径 r0,优化的参数应在这3个参数中选择。
对比这3个参数的数学关系,发现槽间距wg和齿靴圆角半径 r0的变化是会相互影响的,而齿靴高度 h 的大小则不受其影响,因此槽间距wg与齿靴圆角半径 r0 不能同时选取为优化参数。在实际的仿真环节,齿靴圆角半径 r0的变化对电机性能的影响较小,并且调整的范围也很小。综合考虑以上因素,将齿靴圆角半径 r0设定为固定值0.5 mm ,选取槽间距wg和齿靴高度 h 作为优化参数。在绘制电机模型的时候,保持其他参数不变,分别对槽间距wg和齿靴高度 h 在一定的区间内按选定的步长进行调整,一次仅调整一个优化参数,并且每调整一次就绘制一个新的模型,最终得到一定数量的样本。
3 系统的实现方式
系统的实现部分分为用户界面和程序编写两个部分来阐述。
3.1 用户界面设计
用户界面发挥着人机交互的重要功能,用户的所有操作都要在用户界面来完成。在人机交互界面,系统提供了以下几个功能:(1) 电机定转子尺寸输入,以及保存输入的尺寸参数和导入已经保存的参数; (2)打开 AutoCAD软件,按输入的参数绘制电机定转子模型,并按规定格式保存到指定文件夹。设计好的用户界面如图4所示;(3)选择步长,并按选定步长调整槽间距和齿靴高度两个优化参数,并可微调气隙的大小。
3.2 程序设计
在该系统中,除了参数输入和优化参数的调整,最核心的功能是根据输入的参数绘制电机的模型。模型的绘制分为以下3个步骤进行。
(1) 关键线条绘制
在已知关键点坐标的情况下,图 3中的关键线条可以由AddLine ()(添加线段)、AddCircle ()(添加圆)和AddArc ()(添加圆弧)以及由其推导而来的函数绘制得到。
(2) 镜像操作
在镜像操作部分,定子部分(包括线圈)和转子部分分开进行。首先将定子左半部分(包括线圈)添加到选择集1(SSet1),操作程序如下:
Dim SSet1 As AcadSelectionSet
Set SSet1= createSSet ("half_stator")
SSet1.Select acSelectionSetAll
对选择集1的中所有图元作镜像操作,镜像轴为 Y 轴所在直线,操作程序如下:
Dim i As Integer
Dim objEntity1 As AcadEntity
For i =0 To SSet1.Count -1
Set objEntity1= SSet1.Item (i)
objEntity1.Mirror pt1, pt2
Next i
同样地,将转子的左半部分添加到選择集3(SSet3),对选择集3作镜像操作。
(3) 阵列操作
在阵列操作部分,定子部分(包括线圈)和转子部分同样分开进行绘制。首先将选择集1镜像后的所有图元添加到图元集2(SSet2),则选择集2中包含一个完整的定子和一对线圈的图形。然后对图元集2中所有图元作阵列操作,阵列总角度为2π,阵列数量为定子槽数 Z1,阵列操作程序如下:
Dim j As Integer
Dim objEntity2 As AcadEntity
For j =0 To SSet2.Count -1
Set objEntity2= SSet2.Item (j)
objEntity2.ArrayPolar Z1, pi *2, pt1
Next j
同样地,对选择集3镜像后的所有图元作阵列操作,阵列的总角度为2π,阵列数量为极数2p 。另外,定子内为一个单独的圆,单独绘制出即可。绘制完整后,模型将以 DXF 格式按编号保存到指定文件夹中:
AcadDoc.SaveAs "dir:\"&"f"& order, ac2000_dxf
其中,“f+order”为图片编号,每新增一张图纸, order数量加1。
3.3 系统操作方式
打开系统,输入所需参数,点击“打开 AutoCAD”按钮,即可打开电脑中的 AutoCAD软件,并新建一个空的绘制文件。点击“绘制电机模型”按钮,绘制得到的电机模型如图5所示。
若要优化电机,批量绘制电机模型,找到电机设计的最优解,则根据优化精度的需要,选择槽间距和齿靴高度的调整步长。每新绘制一个模型,则要点击“下一张”,在绘制完成后,再点击“保存当前图形”即可。通过后续的有限元仿真实验,对比绘制的所有电机的性能,可以找到性能最优的电机设计方案。
4 结束语
本文介绍了一种使用 VB 对 AutoCAD 进行二次开发的方法,并将该方法运用到永磁电机优化中电机模型绘制的过程中。以实验室设计的60系列电机为例,开发了一套针对该电机的自动化绘制系统。该系统不仅能参数化绘制永磁电机的模型,还内置了优化参数调整的功能,可针对优化参数的调整绘制大量的电机模型,相比于手动绘制,大幅提高了电机优化的效率。经验证,该系统在几分钟内即可以绘制一套覆盖大部分设计方案的电机模型,为后续电机的优化提供了很大的便利,实现了电机设计图纸的参数化和自动化。由于 VB 语言的简单易学、开发周期低的特点,可以将该方法推广到其他电机的设计中。
参考文献:
[1]司萌,余霞,李登峰,等.基于 VB的电机冲片图形自动绘制技术[J].机械设计与制造,2019(9):176-180.
[2]陈炜.利用 VB实现 AutoCAD二次开发中参数化绘图[J].中国新技术新产品,2014(13):13.
[3]宋广群.VB 程序设计[M].北京:中国科学技术大学出版社.2006.
[4]岳震, 张奉禄.基于 VB 的 AUTOCAD 二次开发[J].机械设计与制造,2002(1):25-26.
[5]成海涛.CAD二次开发方法研究与运用[J].中阿科技论坛(中英文),2020(12):53-55.
[6]刘永波.基于 VB的 AutoCAD二次开发系统设计与实现[D].成都:电子科技大学,2007.
[7]陈尔奎, 陈朋,姜文建.基于 VB对 AutoCAD二次开发的变压器绘图软件设计[J].变压器,2012,49(11):25-28.
[8]盛忠起,赵立杰, 刘永贤.基于 ActiveX技术用面向对象方法进行 AutoCAD二次开发[J].电脑开发与应用,2000(4):24-26.
[9]苗飞.面向机械产品设计系统构建的 CAD软件二次开发技术[D].天津:天津大学,2004.
[10]赵红梅.基于参数化技术的 CAD 系统二次开发的研究与实现[D].保定:华北电力大学(河北),2007.
[11]赵震,彭颖红.基于 KBE 的工程设计——理论、方法与实践[J].机械科学与技术,2003(1):151-153.
作者简介:
陈家新(1968-),男,安徽宣城人,博士后,教授,硕士生导师,研究领域为电力电子、电机设计及其智能控制,已发表论文近60篇。
何乔(1995-),男,江苏盐城人,硕士研究生,研究领域为电机设计及其智能控制。
(编辑:王智圣)