|
楼主 |
发表于 2007-6-20 17:07:19
|
显示全部楼层
更详细的求助了
请帮忙用有限元法做个同步电机电机磁场的模型相关程序(基于MATLAB)如下:% 1:air-gap, 2:culasse stator, 3: fer rotor, . w9 ^8 l$ [4 {$ O
% 4-7: stator conductor, 28 - 29: rotor conductor
3 K2 a" V1 [2 P
: z8 Z4 ~! z4 n5 H8 s Ktic; clear;clc; close all;
4 @6 |( g& f3 s/ A2 R% W. P- K/ |+ Q" K9 z0 X: A5 {) G
; Z! Y8 B- s5 w2 q# g
4 Q/ S+ ~. c7 H% ------------- Draw the geometry of stator, rotor et air-gap --------------
& z/ N* q2 z) e. j3 x4 x9 a6 G" B2 e8 H* B/ i8 a+ g8 e
entref=1e-3; % air-gap depth
9 M1 g9 w; {/ S# [- f5 E% C. xRs=39.385e-3; % radius of (rotor+airgap)
# t% [8 M6 _5 x" w/ f ?Rr=Rs-entref; % radius of rotor9 x$ ~8 f/ r7 H# b7 t" U
Rc=71.75e-3; % radius of stator
g$ H3 _- Q8 H) ^6 C& v/ G$ n' D" U# U: A+ D. N' s
Nb=140; % number of turns per phase
. v6 K/ M) X) S. m# f4 cLong=0.125; % longitude of machine in rotation axis direction/ H1 D4 @! i [* c
p=1; % ??
9 @$ o' Z( g- R( |) _f=50; % ??
3 C8 q# L2 W* p
7 g0 P7 }" e* ^" C. ]/ Q5 z' zbeta=35*pi/180; beta=beta/p; % culasse rotor+ X/ c% s0 ^/ C9 U- q5 j7 `7 p
beta1=50*pi/180; beta1=beta1/p; % epanouissement polaire9 }! e+ T6 _7 y+ G) w i& M* ?
/ a$ q/ o1 z3 ?. Y, n+ o; N; UdessinP1; % a sub-programme to draw the geometry of the machine section with the parameters defined above; x# G' s2 ^) s% Z6 w0 m8 v8 ^
% --------------
. U* Y0 J( W3 `4 w, B, T
4 M! W1 C, _0 Q# M8 ]' Z. Y; g a5 c$ j R. o7 Q
% ------------- Rotor positioning and initial mesh --------------
9 M) z, Q; r4 D# z T) |$ C' [- S
aa=-30*pi/180; % initial angle of rotor
5 i0 s' |0 V& d' `& d1 w2 l8 Igr=groto(gr,(aa)); % rotating the rotor to the angle specified above using the sub-programme 'groto' 4 T' b t3 z+ ^ G
g=[gsf gr]; % stator + rotor given the whole machine geometry
) v' p0 n( |* _$ r, E& wlimites; % a sub-programme defining the bondary condition
+ j7 }) k1 v. o4 e* l/ M: o) [[p,e,t]=initmesh(g); % initial mesh for the partial differential equation resolution3 C0 o& V1 b" b! t9 v, i, l1 ]
$ P8 S& N8 y) W" U8 k % ------------- mesh refine if necessary ------------
' n" T0 i/ v4 {% [p,e,t]=refinemesh(g,p,e,t,[1 30]);& G0 B6 ?$ i& I
% pdegplot(g); axis equal, hold on ; pdemesh(p,e,t), hold off
2 ^; t9 {4 _( w0 r% pause
- S2 W, ~- L. i# J) R4 z' N7 @% -------------------------------------
/ C7 b9 l( V. z B$ d F+ x4 t
- d% F) b `: U
V0 I$ G6 X) X& L0 p" s! I4 C. b+ x
% ------------- specification of parameters required for calculation -------
$ P8 }. n7 B& t2 ~& V; @& N% A kexc=0; ( q" @5 _: m" p/ ?4 s/ T7 U
sigmaexc=kexc*5e6; % conductivity of rotor coil conductor
% e4 Z4 L2 a$ y& k nuo=1/(4e-7*pi); % inverse of permeability of vacuum
+ g0 U$ u5 G* W1 { murs=500; murr=500; % relative permeability of stator and rotor# g7 c7 Y) X3 @: c) m3 U* L: }! |# R
: l8 N$ g0 _- |- E! E& b
ks=1; kr=0; % ks=1 or 0: stator excited or not; kr=1 or 0: rotor excited or not.
3 A, |1 ?$ i0 j# \ b* {
3 @; R* U% s$ Z0 ?* @4 r5 C& n# W Jex1=0; Jex11=0;
3 d7 ~9 B5 I+ q7 C+ w Jex2 = 10e6*ks; Jex21 = -Jex2;
* o5 X/ J+ C- B Jex3 = 0; Jex31 = 0;4 Q( Y* Y5 [4 \3 {, a
% Jex3=10e6*ks; Jex31=-Jex3; % current density of phase a (stator)! f4 u3 H& Y4 F7 L. [7 A
% Jex1=-Jex3/2; Jex11=-Jex1; % current density of phase b (stator)% Z$ h G2 V0 d W5 q5 U. w# W! b
% Jex2=-Jex3/2; Jex21=-Jex2; % current density of phase c (stator)8 ?3 A) b1 e$ j d- F
Jexr1=10e6*kr; Jexr2=-Jexr1; % current density of rotor excitation) |, j- O1 A% c2 R3 x; L5 B# Q, }
% x4 F7 r" f: g! B0 t- m- _5 G garnissageP1; % a sub-programme for the giving the current density and permeability at each mesh element
4 X3 n5 G9 {7 b) W% S* E! k1 V+ y% -------------
5 P; ]* Q! e6 _$ s7 A0 I" l* x) l8 f3 V" T8 }9 H0 Y: ~
7 g$ }. k. T: Q1 u
7 J5 z5 v( a6 I3 ^% ]% N: U. G% ------------- resolution of the partial differential equation and figure ploting ---------
, D; a* k- `# ]& b$ |
4 M* }; ^( w5 V7 K% Q4 vu=assempde(bond,p,e,t,nu,0,J); % resolution of the partial differential equation9 b; o; X0 w! f+ X" P2 P
% U=ASSEMPDE(B,P,E,T,C,A,F) assembles and solves the PDE problem -div(c*grad(u))+a*u=f
% [7 U0 `, I4 q! k7 F0 u# |8 D8 M8 Y' B/ _
figure (1), pdemesh(p,e,t), axis equal, title ('Mesh of the machine section')
0 g6 u( F$ B1 Afigure (2), pdegplot(g); axis equal; hold on; pdecont(p,t,full(real(u)),30), hold off, title('Magnetic field distribution'), % plots using 30 levels.
! X. G% i, K7 o# m5 X1 o% ------------------------------
8 U) T' C5 `7 L( \( J0 m
7 x3 ~5 i8 G2 K: V u7 s$ S q* o3 e/ h; D: d1 {3 L0 @8 L
{8 Z' }* L7 a
% -------------- calculation of the energy stocked in the machine (energy sum in the magnetic field) --------------------+ ~# y. Y, n" S" {% C1 I' r
* [" m: U6 @$ g% [ux,uy]=pdegrad(p,t,u);- y, }4 M0 c: L" ]5 V
% bx=uy;, A I; n9 ^5 p3 P: d
% by=-ux;
* D9 y* Y- o6 J- w5 i' V( n$ t% for i=1:length(bx);
# O9 k4 }1 Z# X4 k0 Y% b(i)=(bx(i)^2+by(i)^2)^.5;
/ S5 x K8 Y0 Y+ v7 |+ ?4 D" c; {% end' y. @2 q5 X' S* W- Q
% nu_e=1/(4e-7*pi);5 y. P( h! y' `
% nu_c=nu_e;# d7 Z0 ]) `# m `$ q% P/ q7 T: J
% nu_s=1/500*nu_e;
9 l- y- f3 a# |3 y1 U; Y% nu_r=1/500*nu_e;
9 f. Y: L" f6 L" h* ]# }% B9 V3 M6 Q% h=sparse(1,ntrg);
. a4 j+ n' F& R% ind_e=find(t(4,:)==2);, T# R ]' c, j% I( P
% ind_s=find(t(4,:)==1);
' W% k1 y5 X" H# [4 p5 `% ind_r=find(t(4,:)==3);
2 F4 A1 P7 F* I% ind_c=find((t(4,:)>=4) & (t(4,:)<=27));
P( w5 B; i+ k& D) S# |; d/ D% h(ind_e)=nu_e*b(ind_e)';5 n' J/ t- r, ]& X4 K9 u X2 I
% h(ind_s)=nu_s*b(ind_s);/ \, \ q6 e& g1 c/ X
% h(ind_r)=nu_r*b(ind_r);
: ?1 G7 S" H/ N1 m5 w% h(ind_c)=nu_c*b(ind_c)';& l( |9 ?! p H2 C
% aire=pdetrg(p,t); g I8 P: n( d, I& N
% vol_trg=Long*aire;; ^& J N( C" ?0 Z4 E7 |& D# f
% energ_elem_e=1/2*(h(ind_e).*b(ind_e)').*vol_trg(ind_e);! v' e4 c N* Q; m, H% ^2 z! B
% energ_tot_e=sum(energ_elem_e);
0 H. T5 R6 b: m% energ_elem_s=1/2*(h(ind_s).*b(ind_s)').*vol_trg(ind_s);* y0 N" O* k& S& c
% energ_tot_s=sum(energ_elem_s);+ |0 c5 f0 _ E" x7 A
% energ_elem_r=1/2*(h(ind_r).*b(ind_r)').*vol_trg(ind_r);; H% c4 O" ]6 {* O
% energ_tot_r=sum(energ_elem_r);
; r; P) N. I- T$ m( {% t7 K. I% energ_elem_c=1/2*(h(ind_c).*b(ind_c)').*vol_trg(ind_c);1 c& Q Y' u: O/ y2 @
% energ_tot_c=sum(energ_elem_c);: e- K* v! K _" ~8 G G% M
% energ_total=energ_tot_e+energ_tot_s+energ_tot_r+energ_tot_c;
0 c& O" x, `* J% enr=energ_total;
; e0 J2 [, a$ V p% Y! C! U7 k) \1 T6 a4 F$ I9 S
toc; |
|