董飞 魏文轩 王庆红
(中国舰船研究设计中心,武汉 430064)
近年来,电机设计软件越来越多,设计环境也是种类各异。然而,部分软件出于版权考虑,采用封装程序的方式屏蔽了用户与源程序之间的联系。如此一来,电机设计就只剩下输入和输出参数,中间的设计过程完全成了黑匣子。这样不仅不利于新手熟悉设计流程,而且老手的经验优势也体现不出来。于是,现在很多电机设计人员都倾向于手工设计,但其工作量大且过程繁琐。MathCAD以其强大的表格处理、数值计算以及绘图等功能,可以很好地解决这个难题。
MathCAD是美国数学软件公司(MathSoft)研制开发的一个支撑环境,该环境用独特的方法处理表格、数值计算、绘图等任务,其功能可以与专业数学软件媲美,同时还是一个非常容易掌握和使用的文本编辑系统[1]。
MathCAD最引人注目之处是它所生成的命令、函数、图形都是“活”的,命令中任何参数的变化都会使相应的结果发生变化。电机设计时,需要实时修改的对象数目非常庞大。利用MathCAD程序,用户可以自主地根据经验来设定和修改这些参数,并且修改后可以立刻得出计算结果,以检验参数的合理性,很大程度上提高了电机设计的质量和效率。除此之外,MathCAD程序的通用性比较好,其他类型的电机设计只需要修改其中的部分语句就可以实现。
参照文献[5],将整个设计程序分为六部分:(1)主要尺寸计算;(2)定子绕组和定子铁芯设计;(3)转子铁芯和笼型绕组设计;(4)磁路计算;(5)参数计算;(6)性能计算。下面选择其中几个比较典型的算法作一些介绍(关于电机设计的参数定义和基本流程请读者参阅相关书籍,本文仅给出MathCAD编程算法)。
定转子开槽是电机设计中的重点和难点之一,这里仅列举定子开槽算法,其 MathCAD程序如图1所示。
图1 定子开槽的MathCAD程序
该算法采用二重循环,即定子齿部磁密 Bz1和轭部磁密Ba1在允许范围内变化,要求磁路不饱和。在第二重循环内部计算与磁密相关的槽形参数rs1、rs2以及hs1,并对槽面积se进行核算。最后将所有满足条件的槽形参数赋值给矩阵 PP后输出,输出矩阵的每一行向量对应一组槽形参数。因此通过输出矩阵的方式可以得到多种槽型设计方案,以便在性能核算时重选槽参数。
电机设计过程中需要查阅很多表格和曲线,因为MathCAD与数据库接口比较麻烦,所以笔者选择自行编制查询程序。查询程序包括:(1)导线最大外径查询程序;(2)功率因数查询程序;(3)磁化曲线查询程序;(4)损耗曲线查询程序;(5)转子梯形槽比漏磁导查询程序;(6)笼型转子谐波比漏磁导系数查询程序;(7)计及饱和影响的系数K查询程序;(8)特殊系数Kz、Kr、Kx查询程序。
3.2.1 表格的查询算法
查询程序(1)、(2)、(3)和(4)都属于表格类查询,这里仅列举损耗曲线的查询算法,其MathCAD程序如图2所示。
图2 损耗曲线查询的MathCAD程序
该算法首先根据损耗曲线的查询表格定义二维参数矩阵,然后采用二次循环进行垂直交叉查找,根据行列坐标Ci和Cj就可以非常轻松地找到对应铁芯损耗值。这一算法利用了二维矩阵的元素特征,巧妙地解决了繁琐的查表问题。
3.2.2 规则曲线的查询算法
查询程序(5)、(6)和(7)都属于规则曲线查询,这里仅列举系数 K的查询算法,其MathCAD程序如图3所示。
该算法中,矩阵curve和curve1存储了目标曲线描点的横坐标和纵坐标,因描点量比较庞大,不便显示,此处仅以空矩阵代替。首先通过return命令分别处理查询点是描点以及不是描点的情况,如果查询点不是描点,则通过线性插值函数linterp进行插值,如此可以省去查图的繁琐过程,如果描点数量适当,还可以降低读图误差。除此之外,对于电机手册上没有画出的曲线,还可以通过矩阵curve和curve1的纵向插值找到相应的系数K,过程快捷且精度较高,大大降低了设计人员的工作量。
3.2.3 不规则曲线的查询算法
特殊系数Kz、Kr、Kx的查询程序都属于不规则曲线的查询算法,其中比较有难度的是系数Kr和Kx的查询算法,这两个系数均为多条不规则曲线,查询过程相对比较复杂,这里仅列举Kr的查询算法,其MathCAD程序如图4所示。
该算法的主线是分段插值,并巧妙地运用了双重嵌套的子程序调用。F和G分别为调用子程序模块,功能是完成横向和纵向的线性插值,限于篇幅,这里未给出其算法,可参考规则曲线的查询算法中的插值环节。与规则曲线的查询算法类似,该算法可以查询不是描点的点以及电机手册上没有画出的曲线参数。同样地,因描点量会比较庞大,为便于显示,上图仅以空矩阵curve1~curve6以及curve15代替。
除了上文描述的几个典型算法,交流异步电机的 MathCAD程序设计还包括参数录入、公式录入以及机械特性曲线的绘制程序等基础程序,限于篇幅,这里不再一一列出。
笔者基于 MathCAD软件学习和异步起动机的手工分析经验,编制了 MathCAD环境下交流异步电机的分析设计程序。该程序充分发挥了MathCAD的文本编程特点,无论是参数输入、传递还是输出,矩阵的巧妙使用都大大简化了程序编制的工作量;线性插值函数的使用在一定程度上增加了查表查图的范围;二维图形的绘制使得参数分析更加形象直观。
当然,该设计程序还有不少需要改进的地方,比如槽型设计的算法还需要优化,最好能和阻抗计算部分联系起来,等等。换句话说,MathCAD设计程序还要加强各个设计部分之间的联系和信息互通,在发挥其灵活和直观的特点之余,尽可能降低手工调整参数的工作量。
图3 系数K查询的MathCAD程序
图4 系数Kr查询的MathCAD程序
[1]苏宏宇,莫力. MathCAD2000数据处理应用与实例[M]. 北京:国防工业出版社, 2001.
[2]袁长迎等. 掌握和精通MathCAD2000[M]. 北京:机械工业出版社,2001.4.
[3]精锐创作组编著. MathCAD2001数学运算完整解决方案[M]. 北京: 人民邮电出版社, 2001.
[4]季杏法. 小型三相异步电动机技术手册[S]. 北京:机械工业出版社, 1987.
[5]陈世坤. 电机设计[M]上海: 机械工业出版社,1982.
[6]电机工程手册编辑委员会. 电机工程手册[M]上海:机械工业出版社, 1987.12.
[7]上海电器科学研究所《中小型电机设计手册》编写组. 中小型电机设计手册[S]. 北京: 机械工业出版社, 1994.