[转帖]ANSYS低频电磁场的场路耦合分析功能
ANSYS程序的电磁场分析功能分为低频和高频这两个主要的分析模块,在低频电磁场分析部分,其功能涵盖静态磁场分析、谐波(交流)磁场分析、瞬态磁场分析、静电场分析、电流传导分析、电路分析、场路耦合分析等内容。本文重点介绍场路耦合分析的一些应用技巧,并以一个两极三相感应电机启动状态的场路耦合分析为例予以简要说明。对于其它分析类型,可参考ANSYS相应的技术说明手册。1、 择合适的单元
对于场路耦合分析,场分析模型中有两种类型的终端条件实现与电路的联接:电路供电绞线圈和电路供电块导体。在二维状态下,场分析中与电路联接的部分必须用53号单元,而三维时必须用97号单元,这两种单元的第一关键选项设置为3时,表示电路供电绞线圈,其第一关键选项设置为4时,表示电路供电块导体。在路分析模型中的124号电路单元里,也有两种类型的单元选项与上面两种形式对应,以实现“联接”,当其第一关键选项设置为5时,为二维或三维绞线圈单元,设置为6时,为二维块导体单元,设置为7时,为三维块导体单元。当这些电路单元的类型设置与场单元的一致、并共享某些节点后,即实现了联接,如下所述。
2、 实现联接
对于二维场路耦合分析,场分析模型中的每一个电路耦合绞线圈(53号单元的Keyopt(1)=3)和电路耦合块导体(53 号单元的Keyopt(1)=4)上,必须分别耦合所有节点的电流自由度(CURR)和电动势自由度(EMF)。在定义电路中的绞线圈单元(124号单元的Keyopt(1)=5)或块导体单元(124号单元的Keyopt(1)=6)时(这两种单元都只有I、J、K三个节点),其K节点必须为场模型中相应绞线圈或相应块导体上的一个节点。
对于三维场路耦合分析,场分析模型中的每一个电路耦合绞线圈(97号单元的 Keyopt(1)=3)上,必须耦合所有节点的电流自由度(CURR)和电动势自由度(EMF)。在定义电路中的绞线圈单元(124号单元的 Keyopt(1)=5)时(此时该单元共有I、J、K三个节点),其K节点必须为场模型中相应绞线圈上的一个节点。三维块导体的定义和联接要稍微麻烦些,首先,场模型中的块导体上,其两个与路联接的端面需分别设置场路耦合界面标志(MCI分别等于+1和-1);其次,在定义电路中的块导体单元(124 号单元的Keyopt(1)=7)时(此时该单元共有I、J、K、L四个节点),其K节点必须为前面MCI=-1的那个面上的一个节点,其L节点必须为前面MCI=+1的那个面上的一个节点;最后,再进行一系列自由度耦合操作:一是耦合电路单元的I节点和K节点所在面上所有节点的电压自由度(VOLT),二是耦合L节点所在面上所有节点的电压自由度(VOLT)(注意此处不含电路单元的J节点),三是分别耦合K节点和L节点所在面上所有节点的电流自由度(CURR)。
3、 其它部分的模型建立
前面已讲了场路耦合分析中的最重要部分:如何实现场模型与路模型的联接。一旦联接完成,其它部分的模型就可很方便的建立了,比如电阻、电感、电源等其它电路元件,利用ANSYS的专用电路建模程序,直接建立即可。需要指出的是,对于场分析模型而言,坐标的概念很重要,这一点不言而喻;而对于路分析模型而言,其节点或单元坐标没有什么实际意义,重要的是路的联接关系。因此,在定义电路单元的节点时,其坐标值原则上可以任意设定,但为了在图形显示中观察起来更方便,定义电路单元的节点坐标可遵循一定的规则,比如,对于二维场路耦合分析,电路绞线圈单元的I和J节点的X 和Y坐标可以设置为其K节点的X和Y坐标(K节点是场模型上的一个节点),而I、J节点的Z坐标可分别设为+z和-z(此处,z为一任意值),这样,场路模型的耦合关系在图形显示上就非常直观了,余者类推。这样的模型建立方式通过ANSYS的APDL语言可以很方便地完成。
感应电机场路耦合分析应用实例
4、 两极三相感应电机场路耦合分析应用实例
在电机设计中,有大量的经典设计程序可以利用,这些经典程序都是基于磁路的方法,但由于非线性(铁芯饱和)及结构复杂性等因素的存在,磁路计算无法得到准确的结果,包括定子槽漏抗、励磁感抗、转子槽漏抗等等,而基于有限元方法的场分析对于这些参数的计算就很有优势。从另外一个方面,电机的端部由于其联线方式的复杂性,用场分析的方式基本上没有办法实现,只有采用路来代替,而路的参数(比如端部阻抗和漏抗等)可用经典电机设计程序计算(由于端部不存在铁芯影响,经典计算很准确)。这种现代计算方法与经典计算方法的结合、场分析方法与路分析方法的结合,双方优势互补,可以获得高精度的计算结果。相应的分析过程、程序设计和使用说明如下
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!
!!!
两极三相感应电机启动状态场路耦合电磁场分析程序
!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!
!!!!!
!!! (第一段程序) !!!!!
!!! !!!!!
!!!本段程序的目的 !!!!!
!!! 1 输入电机各参数
!!!!!
!!! 2 建立电机几何模型 !!!!!
!!! 3 划分场分析部分的网格 !!!!!
!!!
(场路耦合分析的电路连接部分由后面一段程序完成) !!!!!
!!! !!!!!
!!! (单纯的场分析用此段程序即可完成全面的建模任务)
!!!!!
!!!
!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
finish
/clear
/uis,msgpop,3
/prep7
csys,0
btol,1e-10
*afun,deg
multipro,'start',6
*cset, 1, 3,d1, 'Outer Diameter of Stator(mm)',950
!定子外直径
*cset, 4, 6,d2, 'Inner Diameter of Stator(mm)',520 !定子内直径
*cset, 7,
9,gap, 'Gap between Stator and Rotor(mm)',5.5 !气隙高度
*cset,10,12,nslots,'Slot
Number of Stator',48 !定子槽数
*cset,13,15,nslotr,'Slot Number of Rotor', 40
!转子槽数
*cset,16,18,d4, 'Diameter of Rotor Axis(mm)', 280
!转子轴直径
multipro,'end'
r1=d1/2/1000 ! 定子外半径,转化为国际单位制
r2=d2/2/1000 !
定子内半径,转化为国际单位制
gap=gap/1000 ! 定转子间气隙高度,转化为国际单位制
r3=r2-gap !
转子外半径,转化为国际单位制
r4=d4/2/1000 ! 转子轴半径,转化为国际单位制
delta=gap/1e5 !一个用于确定选择区域的极小量
multipro,'start',3
*cset, 1, 3,nhole, 'Hole Number of Rotor', 20
!转子轴向孔的数目
*cset, 4, 6,dhole, 'Main Diameter of Holes', 395
!转子轴向孔圆心处的直径
*cset, 7, 9,dh, 'Hole Diameter',20
!转子轴向孔本身的直径
multipro,'end'
rhole=dhole/2/1000 ! 转子轴向孔圆心处的半径,转化为国际单位制
rh=dh/2/1000 !
转子轴向孔半径,转化为国际单位制
!
!定义定子槽尺寸参数
!(如果采用与前面一样的方式,
这些数据也可以由菜单界面输入)
!
ss_h=72/1000 !槽高,转化为国际单位制(下同)
ss_w=17/1000
!槽宽
ss_ci=2/1000 !绕组层间绝缘厚度
ss_turn=48/2 !定子每个绕组导线根数
ss_cln=2
!并绕导线根数
ss_clw=5.6/1000 !导线宽度
ss_clh=2/1000 !导线高度
ss_cli=0.5/1000
!导线间漆膜厚度
ss_cll=600/1000
!绕组长度(定子铁芯长度)
ss_ch=(ss_clh+ss_cli)*(ss_turn/ss_cln)
!每个绕组高度
ss_cw=(ss_clw+ss_cli)*ss_cln
!每个绕组宽度
!
!定义转子槽尺寸参数
sr_h1=7/1000 !小缝高度
sr_w1=2/1000
!小缝宽度
sr_h2=14/1000 !中缝高度
sr_w2=7/1000 !中缝宽度
sr_h3=30/1000
!槽高
sr_w31=17/1000 !槽顶宽
sr_w32=12/1000 !槽底宽
sr_cll=690/1000
!导条轴向长度(直线段长度)
!
!!!!!sr_ci=4.8/2/1000
!槽绝缘厚度
!
!
!计算定子线圈参数,用于单元实常数定义
care1=ss_ch*ss_cw
!绕组横截面积
turn1=ss_turn/ss_cln !绕组匝数(注意,要除以并绕根数!)
leng1=ss_cll
!绕组轴向长度
fill1=(ss_clw*ss_clh)*ss_turn/care1
!绕组填充系数
!
!计算转子导条参数,用于单元实常数定义
hh=sr_h3-2*sr_ci
!梯形导条高度
ww1=sr_w31-2*sr_ci !梯形导条上底宽
ww2=sr_w32-2*sr_ci
!梯形导条下底宽
care2=(ww1+ww2)*hh/2 !梯形导条横截面积
leng2=sr_cll
!导条轴向长度
!
!定义单元类型
et,1,53,0 !AZ自由度,用于空气和绝缘区域
et,2,53,3
!AZ,CURR,EMF自由度,电路耦合绞线圈,用于定子线圈导体
et,3,53,4
!AZ,CURR,EMF自由度,电路耦合块导体,用于转子槽内导条
et,4,53,0
!AZ自由度,用于铁芯区域
!
r,2,care1,turn1,leng1,,fill1
!定子线圈单元的实常数
r,3,care2,leng2,, !转子导条单元的实常数
!
!定义材料参数
mp,murx,1,1
!空气导磁率,用于空气和绝缘
mp,murx,2,1 !导体导磁率,用于定子线圈
mp,rsvx,2,0.0434e-6
!导体电阻率
mp,murx,3,1 !导体导磁率,用于转子导条
mp,rsvx,3,0.0434e-6
!导体电阻率
!
!mp,murx,4,2000 !调试程序时,用线性材料,省时间些
tb,bh,4,,18
!铁芯,输入BH曲线
tbpt,,31.85,0.1
tbpt,,45.28,0.2
tbpt,,55.73,0.3
tbpt,,64.49,0.4
tbpt,,72.45,0.5
tbpt,,76.83,0.6
tbpt,,79.62,0.7
tbpt,,87.58,0.8
tbpt,,104.3,0.9
tbpt,,121.0,1.0
tbpt,,143.3,1.1
tbpt,,189.5,1.2
tbpt,,262.7,1.3
tbpt,,429.9,1.4
tbpt,,995.2,1.5
tbpt,,2547.8,1.6
tbpt,,5095.5,1.7
tbpt,,7643.3,1.78
!
!
!!!!!!!!!!!!!!!!!!!!
!
建立几何模型
!
!(建立几何模型时,充分考虑了如下因素:
!
! 1 快捷(尽量采用简单的(虽然这样稍微增加了编程工作量)
!
2 便于划分网格(尤其是定子与转子间的气隙处,无论结构形式如何,
! 本程序都可映射生成沿径向均匀分布的层数任意的网格而不影响
!
气隙附近的网格密度分布)
!
!
!!!!!!!!!!!!!!!!!!!!
cyl4,,,r4
!第一个圆形面(转子轴)
cyl4,,,r4,,r3 !第二个圆环面(转子铁芯)
cyl4,,,r2,,r1
!第三个圆环面(定子铁芯)
!
! 说明: 由于考虑到电机外壳的漏磁很小,无需建立电机外壳外面的空气单元,
!
也无需建立远场吸收单元来考虑电机外壳漏磁
!
!
建立定子几何模型
!
xo=sqrt(r2**2-(ss_w/2)**2)
wpave,xo
blc4,,-ss_w/2,ss_h,ss_w
blc4,ss_h-ss_ci,ss_w
/2,-ss_ch,-ss_w
blc4,ss_h-ss_ch-ss_ci*2,ss_w
/2,-ss_ch,-ss_w
blc4,ss_h,ss_cw
/2,-(ss_ch*2+ss_ci*2),-ss_cw
asel,s,loc,x,r2,r2+ss_h
csys,1
lsel,s,loc,x,r1-
delta,r1+delta
asll,a
lsel,all
aovlap,all
asel,s,loc,x,xo,r2
adele,all,,,1
asel,s,loc,x,r2,r2+ss_h
lsla
lsel,r,loc,x,r2-
delta,r2+delta
lcomb,all
lsel,s,loc,x,r1-
delta,r1+delta
asll
lsla
lsel,r,loc,x,r2-
delta,r2+delta
lcomb,all
allsel
asel,s,loc,x,r2,r2+ss_h
!
!
(下面这种常用的方式运行时间较长,约几分钟)
!
!agen,nslots,all,,,,360/nslots
!lsel,s,loc,x,r1-
delta,r1+delta
!asll,a
!aovlap,all
!
!
(改用如下方式,虽然程序较长,但运行时间只有几秒!转子建模与此相同)
!
cm,aa1,area
agen,2,all
cmsel,u,aa1
aadd,all
agen,nslots,all,,,,360/nslots
cm,aa2,area
lsel,s,loc,x,r1-delta,r1+delta
asll
cm,aa3,area
cmsel,a,aa2
allsel,below,area
asba,aa3,aa2
cm,aa3,area
cmsel,s,aa1
agen,nslots,all,,,,360/nslots
cmsel,a,aa3
allsel,below,area
nummrg,kp
!
!
建立转子几何模型
!
csys,0
xo=sqrt(r3**2-(sr_w1/2)**2)
blc4,,sr_w1/2,-sr_h1,-sr_w1
xo=xo-sr_h1&
lt;BR>wpave,xo
blc4,,sr_w2/2,-sr_h2,-sr_w2
asel,s,loc,x,xo-
sr_h2,xo+sr_h1
asel,r,loc,y,-sr_w2/2,sr_w2
/2
allsel,below,area
aglue,all
x1=xoz1=0
nk=kp(x1,y1,z1)
kmodif,nk,x1-(sr_w2/2-sr_w1/2),y1,z1
y1=-sr_w2/2
nk=kp(x1,y1,z1)
kmodif,nk,x1-(sr_w2/2-sr_w1/2),y1,z1
xo=xo-sr_h2
wpave,xo
blc4,,sr_w31/2,-sr_h3,-sr_w31<
BR>x1=xo-sr_h3
y1=sr_w31/2
z1=0
nk=kp(x1,y1,z1)
kmodif,nk,x1,y1-(sr_w31/2-sr_w32/2),z1nk=kp(x1,y1,z1)
kmodif,nk,x1,y1+ (sr_w31/2-sr_w32
/2),z1
asel,a,area,,2
allsel,below,area
aovlap,all
asel,s,loc,x,xo-
sr_h3,xo+sr_h2
asel,s,loc,x,r3-(sr_h1+sr_h2+sr_h3),r3-
sr_h1
asel,r,loc,y,-sr_w31/2,sr_w31
/2
allsel,below,area
aadd,all
asel,s,loc,x,r3-(sr_h1+sr_h2+sr_h3),r3
asel,r,loc,y,-sr_w31
/2,sr_w31 /2
cm,aa1,area
lsla
csys,1
lsel,r,loc,x,r3-
delta,r3+delta
*get,nl,line,,count
*if,nl,eq,2,then
lcomb,all
*endif
cm,ll1,line
allsel,below,area
lsel,s,loc,x,r3-
delta,r3+delta
cmsel,u,ll1
lcomb,all
cmsel,s,aa1
agen,2,all
cmsel,u,aa1
aadd,all
agen,nslotr,all,,,,360/nslotr
cm,aa2,area
lsel,s,loc,x,r3-
delta,r3+delta
asll
cmsel,u,aa1
cmsel,u,aa2
cm,aa3,area
cmsel,a,aa2
allsel,below,area
asba,aa3,aa2
cm,aa3,area
cmsel,s,aa1
agen,nslotr,all,,,,360/nslotr
cmsel,a,aa3
allsel,below,area
nummrg,kp
wpave,0,0,0
!
!
创建气隙圆环面
!
allsel
nummrg,kp
numcmp,kp
numcmp,line
numcmp,area
*get,na,area,,count
csys,1
lsel,s,loc,x,r3-
delta,r3+delta
al,all
lsel,s,loc,x,r2-
delta,r2+delta
al,all
asba,na+2,na+1
allsel
lplot
!
!
切割气隙圆环,以便于保证气隙厚度上的网格数
!
csys,1
ksel,s,loc,x,r3-
delta,r3+delta
*get,nk3,kp,,count
*get,nk3min,kp,,num,min
cm,kk3,kp
ksel,s,loc,x,r2-
delta,r2+delta
*get,nk2,kp,,count
*get,nk2min,kp,,num,min
cm,kk2,kp
cmsel,a,kk3
cm,kk23,kp
!
(先连接圆环内近似径向的线,以免生成短线)
da=gap/(2*3.1416*r3)*360/3
!与气隙尺寸相关的一个小角度
lsel,s,loc,x,r2-
delta,r2+delta
lsel,a,loc,x,r3-delta,r3+delta
*get,nl32,line,,count
*get,nl32min,line,,num,min
dsys,1
*do,i,1,nl32
da1=abs(ly(nl32min,0)-ly(nl32min,1))/3
!与最短线相关的一个小角度
*if,da1,lt,da,then
da=da1
nl32min=lsnext(nl32min)
*enddo
cmsel,s,kk3
ynk3=ky(nk3min)
nk2min1=nk2min
*do,j,1,nk2
cmsel,s,kk23
ynk2=ky(nk2min1)
da32=abs(ynk3-ynk2)
lstr,nk3min,nk2min1
*endif
cmsel,s,kk2
nk2min1=kpnext(nk2min1)&
lt;BR>*enddo
cmsel,s,kk3
nk3min=kpnext(nk3min)<
BR>*enddo
!(创建其它径向切割线)
lsel,s,loc,x,r3+delta,r2-
delta
ksll
cm,kk4,kp
cmsel,s,kk2
cmsel,u,kk4
*get,nk2,kp,,count
*get,nk2min,kp,,num,min
cm,kk2,kp
cmsel,s,kk3
cmsel,u,kk4
*get,nk3,kp,,count
*get,nk3min,kp,,num,min
cm,kk3,kp
csys,1
dsys,1
allsel
numcmp,kp
numcmp,line
numcmp,area
*get,nkmax,kp,,num,max
cmsel,s,kk2
*do,i,1,nk2
ynk2=ky(nk2min)&
lt;BR>k,nkmax+i,r3-
delta,ynk2,0
lstr,nkmax+i,nk2min
cmsel,s,kk2
nk2min=kpnext(nk2min)&
lt;BR>*enddo
allsel
numcmp,kp
numcmp,line
numcmp,area
*get,nkmax,kp,,num,max
cmsel,s,kk3
*do,i,1,nk3
ynk3=ky(nk3min)&
lt;BR>k,nkmax+i,r2+delta,ynk3,0
lstr,nkmax+i,nk3min
cmsel,s,kk3
nk3min=kpnext(nk3min)&
lt;BR>*enddo
!(完成切割)
lsel,s,loc,x,r2-
delta,r2+delta
lsel,a,loc,x,r3-delta,r3+delta
asll,s,1
lsel,s,loc,x,r3+delta,r2-delta
asbl,all,all
!创建转子轴向孔
!
csys,1
dsys,0
xo=rhole&
lt;BR>yo=360/(2*nslotr)
zo=0
wpave,xo,yo,zo
cyl4,,,rh,90,,180
cyl4,,,rh,180,,270
cyl4,,,rh,270,,360
ksel,s,loc,x,xo
ksel,r,loc,y,yo
lslk
asll
allsel,below,area
nummrg,kp
!
(如上复杂操作的目的是为了后面有良好的网格划分)
cm,aa1,area
agen,2,all
cmsel,u,aa1
aadd,all
agen,nhole,all,,,,360/nhole
cm,aa2,area
lsel,s,loc,x,r4
asll
cm,aa3,area
cmsel,a,aa2
allsel,below,area
asba,aa3,aa2
cm,aa3,area
cmsel,s,aa1
agen,nhole,all,,,,360
/nhole
cmsel,a,aa3
allsel,below,area
nummrg,kp
save
!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!
到此为止,几何建模完成!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!
!
下面设置网格划分控制
!
!先将面形成组件
!
csys,1
lsel,s,loc,x,r4
asll,s,1
csys,0
wpcsys,-1,0
wprota,,90
asbw,all
wprota,,,90
asbw,all
wpcsys,-1,0
cm,a_axis,area
!转子轴
csys,1
lsel,s,loc,x,r4
asll
cmsel,u,a_axis
cm,a_rotor,area
!转子铁芯
rmin=rhole-rh+delta
rmax=rhole+rh-delta
cm,a_hole,area
!转子轴向孔
asel,s,loc,x,r3-sr_h1-sr_h2-sr_h3,r3- sr_h1
cm,a_rc,area
!转子槽中的导体
asel,s,loc,x,r3-sr_h1,r3-delta
cm,a_ri,area
!转子槽中的气隙
asel,s,loc,x,r3+delta,r2-delta
cm,a_gap,area
!气隙
lsel,s,loc,x,r1
asll
cm,a_stator,area
!定子铁芯
lsla
asll
cmsel,u,a_gap
cmsel,u,a_stator
rmax=r2+ss_h-ss_ch-ss_ci
rmin=rmax-ss_ci
asel,a,loc,x,rmin,rmax
cm,a_si,area
!定子槽中的绝缘和空气
rmax=r2+ss_h-ss_ci
rmin=rmax-ss_ci-
2*ss_ch
asel,s,loc,x,rmin,rmax
cmsel,u,a_si
cm,a_sc,area
!定子槽中的导体
!
!定义各面的单元属性:材料,实常数,单元类别
!
cmsel,s,a_axis
cmsel,a,a_hole
cmsel,a,a_ri
cmsel,a,a_gap
cmsel,a,a_si
aatt,1,1,1
cmsel,s,a_sc
aatt,2,2,2
cmsel,s,a_rc
aatt,3,3,3
cmsel,s,a_rotor
cmsel,a,a_stator
aatt,4,4,4
!
!!!!!!!!!!!!!!!!!!!
!
定义网格尺寸
!
esize_gap=3 !气隙径向网格划分3层
esize_r_gap=2
!转子槽气隙周向划分2层
esize_min=ss_cw/1.8 !除气隙及转子导条外的最小网格尺寸
esize_min1=esize_min/2
!转子导条网格尺寸(考虑到集肤效应,网格尺寸尽量小)
esize_mid=5*esize_min
!中等尺度的网格尺寸
esize_max=15*esize_min !最大的网格尺寸
!
mshkey,2
!尽量用映射网格划分
!
!(划分气隙网格)
cmsel,s,a_ri
lsla
lsel,r,loc,x,r3-
delta,r3+delta
cm,ll1,line
lesize,all,,,esize_r_gap,1,1,,,no
lsel,s,loc,x,r3-
delta,r3+delta
cmsel,u,ll1
lesize,all,esize_min,,,1,1,,,no
lsel,s,loc,x,r3+delta,r2-
delta
lesize,all,,,esize_gap,1,1,,,no
cmsel,s,a_gap
lsla
amesh,all
!
(划分转子槽中的气隙的网格)
rmin=r3-sr_h1
lsel,s,loc,x,rmin-
delta,rmin+delta
cm,ll2,line
cmsel,s,a_ri
lsla
cmsel,u,ll1
cmsel,u,ll2
lesize,all,esize_min,,,1,1,,,no
cmsel,ll2
lesize,all,,,esize_r_gap,1,1,,,no
cmsel,s,a_ri
lsla
amesh,all
!
(划分定子槽中导体的网格)
cmsel,s,a_sc
lsla
lesize,all,esize_min,,,1,1,,,no
amesh,all
!
(划分转子槽中导体的网格)
cmsel,s,a_rc
lsla
lesize,all,esize_min1,,,1,1,,,no
amesh,all
!
(划分定子槽中的绝缘和空气的网格)
cmsel,s,a_si
lsla
lesize,all,esize_min,,,1,1,,,no
amesh,all
!
(划分转子轴向孔处的网格)
cmsel,s,a_hole
lsla
lesize,all,esize_min,,,1,1,,,no
amesh,all
!
(划分转子轴的网格)
cmsel,s,a_axis
lsla
lesize,all,esize_mid,,,1,1,,,no
amesh,all
!
(划分转子铁芯的网格)
cmsel,s,a_rotor
amesh,all
!(划分定子铁芯的网格)
lsel,s,loc,x,r1
lesize,all,esize_max,,,1,1,,,no
cmsel,s,a_stator
amesh,all
allsel
save
!
!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
! 至此,有限元部分的模型建立完毕!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!! !!!!!
!!! (第二段程序) !!!!!
!!! !!!!!
!!!本程序的目的: 定义电路模型及其与有限元模型的连接!!!!
!!! !!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
finish
/prep7
local,11,1
csys,11
cscir,11,1
et,11,124,6 !电路耦合块导体(用于转子导条与电路的耦合)
r,11
et,12,124,0
!电阻,用于模拟转子端环阻抗
r,12,1e-10
et,13,124,1
!电感,用于模拟转子端环漏抗
r,13,1e-12
et,21,124,5
!电路耦合绞线圈,用于外层线圈(半径较大者)
r,21
et,22,124,5 !电路耦合绞线圈,用于内层线圈(靠近气隙者)
r,22
et,31,124,1 !电感(用于定子端部连接,模拟每个线圈的端部电感值)
r,31,1e-4,0
!(暂将电感设为极小值,初始电流定义为零)
et,32,124,0 !电阻(用于定子端部连接,模拟每个线圈的端部电阻值)
r,32,0.014
!电阻值设定与线圈内部直线段电阻值接近(计算可得每个线圈直线段电阻为0.01395)
et,33,124,0
!电阻(用于模拟导线连接,其电阻值设为一极小值)
r,33,1e-10,0
et,41,124,4,0 !独立电压源(用于建立三相电源)
r,41,6000,0
!A相,电压6000V,相位为0
r,42,6000,120 !B相,电压6000V,相位为120
r,43,6000,-120
!C相,电压6000V,相位为-120
!
!首先定义定子线圈(电路耦合绞线圈单元)和转子导条(电路耦合2D
块导体)的自由度耦合
!
rmax=r2+ss_h-ss_ci
rmin=rmax-
ss_ch
asel,s,loc,x,rmin,rmax
cmsel,r,a_sc
cm,a_sc1,area
cmsel,s,a_sc
cmsel,u,a_sc1
cm,a_sc2,area
!
!
(定子线圈自由度耦合)
da_s=360/nslots
*dim,aa_sc1,array,nslots
!获取面的编号,以备后用
*dim,aa_sc2,array,nslots
*do,i,1,nslots
ang1=(i-1)*da_s
cmsel,s,a_sc1
asel,r,loc,y,ang1
*get,aa,area,,num,min
aa_sc1(i)=aa
!外层(半径较大者)线圈面
nsla,,1
cp,next,curr,all
cp,next,emf,all
cmsel,s,a_sc2
asel,r,loc,y,ang1
*get,aa,area,,num,min
aa_sc2(i)=aa
!内层(靠近气隙者)线圈面
nsla,,1
cp,next,curr,all !耦合CURR自由度
cp,next,emf,all
!耦合EMF自由度
*enddo
!(转子导条自由度耦合)
da_s=360/nslotr
*dim,aa_rc,array,nslotr
!获取面的编号,以备后用
*do,i,1,nslotr
ang1=(i-1)*da_s
cmsel,s,a_rc
asel,r,loc,y,ang1
*get,aa,area,,num,min
aa_rc(i)=aa
!转子导条面
nsla,,1
cp,next,curr,all
cp,next,emf,all
*enddo
!
!
下面定义转子导条与电路的耦合 -
二维电路耦合块导体
!
allsel
numcmp,node
*get,nmax,node,,num,max
*dim,nn_rc1,array,nslotr
*dim,nn_rc2,array,nslotr
type,11
real,11
zz=r3/2
*do,i,1,nslotr
asel,s,area,,aa_rc(i)
nsla,,1
*get,nn3,node,,num,min
nmax=nmax+1
nn_rc1(i)=nmax
n,nmax,nx(nn3),ny(nn3),zz
nmax=nmax+1
nn_rc2(i)=nmax
n,nmax,nx(nn3),ny(nn3),-zz
e,nn_rc1(i),nn_rc2(i),nn3
!建立电路耦合块导体单元
*enddo
*get,nmax,node,,num,max
xx=nx(nn_rc1(1))
yy=ny(nn_rc1(1))
dyy=360/nslotr
yy=yy-dyy/2
nmax=nmax+1
nn1=nmax
n,nn1,xx,yy,zz
nmax=nmax+1
nn2=nmax
n,nn2,xx,yy,-zz
type,12
real,12
e,nn_rc1(nslotr),nn1
e,nn_rc2(nslotr),nn2
type,13
real,13
e,nn1,nn_rc1(1)
e,nn2,nn_rc2(1)
*do,i,1,nslotr-1
yy=yy+dyy
nmax=nmax+1
nn1=nmax
n,nn1,xx,yy,zz
nmax=nmax+1
nn2=nmax
n,nn2,xx,yy,-zz
type,12
real,12
e,nn_rc1(i),nn1
!创建端环电阻
e,nn_rc2(i),nn2
type,13
real,13
e,nn1,nn_rc1(i+1)
!创建端环漏抗
e,nn2,nn_rc2(i+1)
*enddo
!
! 下面定义定子绕组与电路的耦合 -
电路耦合绞线圈
!
!(先定义绞线圈)
allsel
numcmp,node
*get,nmax,node,,num,max
*dim,nn_sc11,array,nslots
!外层线圈上节点
*dim,nn_sc12,array,nslots !外层线圈下节点
*dim,nn_sc21,array,nslots
!内层线圈上节点
*dim,nn_sc22,array,nslots
!内层线圈下节点
type,21
real,21
zz=r1/2
asel,s,area,,aa_sc1(i)
nsla,,1
*get,nn3,node,,num,min
nmax=nmax+1
nn_sc11(i)=nmax
n,nmax,nx(nn3),ny(nn3),zz
nmax=nmax+1
nn_sc12(i)=nmax
n,nmax,nx(nn3),ny(nn3),-zz
e,nn_sc11(i),nn_sc12(i),nn3
!建立外层电路耦合绞线圈单元
*enddo
type,22
real,22
*do,i,1,nslots
asel,s,area,,aa_sc2(i)
nsla,,1
*get,nn3,node,,num,min
nmax=nmax+1
nn_sc21(i)=nmax
n,nmax,nx(nn3),ny(nn3),zz
nmax=nmax+1
nn_sc22(i)=nmax
n,nmax,nx(nn3),ny(nn3),-zz
e,nn_sc21(i),nn_sc22(i),nn3
!建立内层电路耦合绞线圈单元
*enddo
allsel
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!
定子绕组连线!!!!!!!!!!!!
!!!! 下面的程序针对的极数为2,槽数48
!!!! 每极每相的线圈数为48/(3*2)=8
!!!!
极距为 15
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
np=2 !极数
npd=15 !极距
nc=8
!每极每相线圈数
da=360/nslots
!槽间角度
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!
numcpm,node
*get,nmax,node,,num,max
xx=2.5*nx(nn_sc11(1))
!端部连接的单元的径向坐标较大,便于图形观察
xx_d=3*nx(nn_sc11(1))
!电源接头的径向坐标更大些,也是便于图形观察
zz=r1/2
*dim,abc1,array,6
!每极每相首端节点号数组
*dim,abc2,array,6
!每极每相末端节点号数组
!
*do,j,1,6
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!
j=1时,连接N极A相 !!!!
!!!! j=2时,连接N极B相 !!!!
!!!! j=3时,连接N极C相 !!!!
!!!!
j=4时,连接S极A相 !!!!
!!!! j=5时,连接S极B相 !!!!
!!!! j=6时,连接S极C相
!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!
!(上端连接)
i1=1+(j-1)*nc
i2=j*nc
*do,i,i1,i2
nmax=nmax+1
yy=(i+(i+npd))*da/2
nn1=nn_sc11(i)
imax=i+npd
*if,imax,gt,nslots,then
!超过最大槽数后,又从1开始(下同)
imax=imax-nslots
*endif
nn2=nn_sc21(imax)
n,nmax,xx,yy,zz
type,31
real,31
e,nn1,nmax
!创建端部电感单元
type,32
real,32
e,nmax,nn2
!创建端部电阻单元
*enddo
!(下端连接)
!(下端连接要复杂些,需考虑线圈间的并联,各相接头等)
nmax=nmax+1
nn1=nn_sc12(i1)
yy=(i1+
(i1+npd))*da/2
imax=i1+npd
*if,imax,gt,nslots,then
imax=imax-nslots
*endif
nn2=nn_sc22(imax)
n,nmax,xx_d,yy,-zz
abc1(j)=nmax
!每极每相首端节点号
type,31
real,31
e,nn1,nmax !首端联一电感单元
*do,i,i1,i2-1
nmax=nmax+1
yy=((i+1)+(i+npd))*da/2
nn1=nn_sc12(i+1)
imax=i+npd
*if,imax,gt,nslots,then
imax=imax-nslots
*endif
nn2=nn_sc22(imax)
n,nmax,xx,yy,-zz
type,31
real,31
e,nn1,nmax
!创建端部电感单元
type,32
real,32 !创建端部电阻单元
e,nmax,nn2
*enddo
nmax=nmax+1
yy=(i2+(i2+npd))*da/2
nn1=nn_sc12(i2)
imax=i2+npd
*if,imax,gt,nslots,then
imax=imax-nslots
*endif
nn2=nn_sc22(imax)
n,nmax,xx_d,yy,-zz
abc2(j)=nmax
!每相每极末端节点号
type,32
real,32
e,nmax,nn2
!末端联一电阻单元
*enddo
!
!(建立电源)
!
!(零线端 -
N极各相末端(abc2(1,2,3))与S极各相首端(abc1(4,5,6)短路共联)
!
allsel
numcpm,node
*get,nmax,node,,num,max
type,33
real,33
zz=-r1
nmax=nmax+1
n01=nmax
n,n01,0,0,zz
*do,i,1,3
nmax=nmax+1
nn2=abc2(i)
n,nmax,nx(nn2),ny(nn2),zz
e,nn2,nmax
!创建电路连线(下同)
e,nmax,n01
*enddo
*do,i,4,6
nmax=nmax+1
nn2=abc1(i)
n,nmax,nx(nn2),ny(nn2),zz
e,nn2,nmax
e,nmax,n01
*enddo
!
!(各相连线)
!(N极A相首端(abc1(1))与S极A相末端(abc2(4))相连形成A相)
!(N极B
相首端(abc1(2))与S极A相末端(abc2(5))相连形成B相)
!(N极C相首端(abc1(3))与S极A相末端
(abc2(6))相连形成C相)
csys,0
zz=-r1*1.5
nmax=nmax+1
n02=nmax
n,n02,0,0,zz
*dim,nnv,array,3
*do,i,1,3
nmax=nmax+1
nn1=nmax
xx1=nx(abc1(i))
yy1=ny(abc1(i))
n,nn1,xx1,yy1,zz
nmax=nmax+1
nn2=nmax
xx2=nx(abc2(i+3))
yy2=ny(abc2(i+3))
n,nn2,xx2,yy2,zz
nmax=nmax+1
nnv(i)=nmax
xx=(xx1+xx2)/2
yy=(yy1+yy2)/2
n,nnv(i),xx,yy,zz
e,abc1(i),nn1
!创建电路连线(下同)
e,nn1,nnv(i)
e,nnv(i),nn2
e,nn2,abc2(i+3)
*enddo
type,41
real,41
nmax=nmax+1
xx=(nx(nnv(1))+nx(n02))/2
yy=(ny(nnv(1))+ny(n02))/2
n,nmax,xx,yy,zz
e,nnv(1),n02,nmax
!创建A相电源
real,42
nmax=nmax+1
xx=
(nx(nnv(2))+nx(n02))/2
yy=(ny(nnv(2))+ny(n02))/2
n,nmax,xx,yy,zz
e,nnv(2),n02,nmax
!创建B相电源
real,43
nmax=nmax+1
xx=
(nx(nnv(3))+nx(n02))/2
yy=(ny(nnv(3))+ny(n02))/2
n,nmax,xx,yy,zz
e,nnv(3),n02,nmax
!创建C相电源
!
type,33
real,33
e,n01,n02
!将电源的公共端与零线端连接
!
allsel
save
!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!
至此,全部建模工作完成!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!
!!!!!
!!! (第三段程序) !!!!!
!!! !!!!!
!!!本程序的目的: 定义电机场路耦合分析边界条件
!!!!!
!!! 进行谐波(交流)求解 !!!!!
!!!
!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
finish
/solu
antype,harmic
!谐波(交流)求解
eqslv,sparse !选择稀疏矩阵求解器(注意:
老版本只能用波前求解器算场路耦合问题)
!!!!!!!!!!!!!!!!!!!!!!!!!!
!定义边界条件
!!!!!!!!!!!!!!!!!!!!!!!!!!
csys,1
lsel,s,loc,x,r1
dl,all,,asym
!电机外壳磁力线平行条件(忽略外壳漏磁)
nsel,s,loc,x,0,r3
esln,s,1
esel,r,type,,1,10
!(只选转子上的场单元)
cm,eforce,elem
fmagbc,'eforce' !在转子场单元上计算电磁力
d,n01,volt,0
!零线端接地
allsel
csys,0
/pnum,type,1
/number,1
eplot
save
!
!求解
!
!(频率为50,子步为3,磁矢势收敛标准5%)
!(电流和电压等其它量的收敛标准为
0.5%,最大迭代数为 50)
!
hmagsolv,50,3,0.05,0.005,0.005,0.005,50
辛苦!谢谢!请问有没有永磁电机的计算例子啊?能不能给我一份呢?我在做永磁电机设计这一块呢!一直不知怎么计算动态的!sczhang05@163.com不胜感激! 感谢分享!以前也做过这方面的分析,感觉楼主说得很到位。 感谢分享!以前也做过这方面的分析,感觉楼主说得很到位 {:{19}:}这么好的帖子 没人顶啊
页:
[1]