|
|
楼主 |
发表于 2007-6-20 17:07:19
|
显示全部楼层
更详细的求助了
请帮忙用有限元法做个同步电机电机磁场的模型相关程序(基于MATLAB)如下:% 1:air-gap, 2:culasse stator, 3: fer rotor, " `! j- d1 l+ B9 C) W+ Q2 n
% 4-7: stator conductor, 28 - 29: rotor conductor
, e. B8 d P/ A( A6 ^
$ Y7 q+ }$ T& N& ftic; clear;clc; close all;1 r- G: ^- t0 F5 L
7 ^/ t: ^( @ o( @; \. e, ]( g$ o B. m& _ Y! e) ?% [. L' {- f
$ g; f7 _3 g6 z4 v$ U6 a% H% ------------- Draw the geometry of stator, rotor et air-gap --------------
. h% E6 Y8 O7 ]: V: d9 d" S
% m r: y. |/ nentref=1e-3; % air-gap depth1 s. b& t8 D3 I- v: b0 B& n
Rs=39.385e-3; % radius of (rotor+airgap)
* u3 o8 H/ K3 ~/ lRr=Rs-entref; % radius of rotor
6 _& y) m4 u' z' y* F* O* XRc=71.75e-3; % radius of stator# A+ ~+ Z8 O* G
8 `! h: [# U/ J( i. @1 |- C Q9 uNb=140; % number of turns per phase- H9 f) m" W3 `! u4 I8 b) d- w3 p! P2 O
Long=0.125; % longitude of machine in rotation axis direction+ M& t" h; y. v" T$ s& u
p=1; % ??0 L) R& O ^4 p% l$ {' L9 {
f=50; % ??
) L! p" g1 \; `4 d( `
2 h9 Y3 s8 [3 I" B; T3 fbeta=35*pi/180; beta=beta/p; % culasse rotor
* \1 t+ n) T9 abeta1=50*pi/180; beta1=beta1/p; % epanouissement polaire
' D) t' w8 h& @" A7 b$ M a
( P- k8 X8 l# A4 R' B4 p1 cdessinP1; % a sub-programme to draw the geometry of the machine section with the parameters defined above
6 \3 H+ S6 F# J& N* x( I; a) b% --------------
* U1 {' f0 ?4 G& d! k; n' _, Z/ K, s( b* j* y
5 f: Z0 R1 r; B7 P$ p# H% ------------- Rotor positioning and initial mesh --------------6 N3 c6 J1 _$ J" l/ G k& F
6 }# p4 ?& R4 X+ d2 K: t
aa=-30*pi/180; % initial angle of rotor
9 Z B) J$ w+ b7 k8 S9 @* Cgr=groto(gr,(aa)); % rotating the rotor to the angle specified above using the sub-programme 'groto' - v! I+ w0 q% G1 Q5 t" R
g=[gsf gr]; % stator + rotor given the whole machine geometry9 J$ f! x# K0 v
limites; % a sub-programme defining the bondary condition& R' }: n$ e% I6 x( x7 n
[p,e,t]=initmesh(g); % initial mesh for the partial differential equation resolution
( }, f4 W- I& H/ e9 ], \0 Q
# R! Q5 J: F( P7 I % ------------- mesh refine if necessary ------------6 B P/ S! o2 ?+ G3 D- f+ E
% [p,e,t]=refinemesh(g,p,e,t,[1 30]);
3 F7 l+ e; V1 y3 s% r% O( }% pdegplot(g); axis equal, hold on ; pdemesh(p,e,t), hold off
: j) t, c1 l" w, ` X% pause/ e2 c7 |, J+ x: L
% -------------------------------------
6 A+ G& O Z/ G$ ` E( {6 t) h$ `' R
# G# J0 Y8 f% y6 q2 P
0 @, F$ {% L0 b
% ------------- specification of parameters required for calculation -------- ^- S2 q& X! o8 M1 M/ S
kexc=0;
9 t0 A# e0 ^) V5 p sigmaexc=kexc*5e6; % conductivity of rotor coil conductor
h1 b* `; z9 n nuo=1/(4e-7*pi); % inverse of permeability of vacuum . I% N3 [8 I: x3 v
murs=500; murr=500; % relative permeability of stator and rotor1 q1 {; f! R; W0 _/ o" O6 S; J. q2 x
0 k" f) {8 c1 ]! q6 S
ks=1; kr=0; % ks=1 or 0: stator excited or not; kr=1 or 0: rotor excited or not.2 n5 @% `. R1 T; f0 ]2 v0 o
" o+ U5 o: p5 w1 v# Q% D7 |& X Jex1=0; Jex11=0;
x7 h% B% |) K) P, U4 f Jex2 = 10e6*ks; Jex21 = -Jex2;
% o# j3 C+ ^. e& {. h' c' I3 w0 A Jex3 = 0; Jex31 = 0;
& w9 n& Z1 [& [% U' ~* ]% R% Jex3=10e6*ks; Jex31=-Jex3; % current density of phase a (stator)/ a1 _' `# Z* }3 w, V! f
% Jex1=-Jex3/2; Jex11=-Jex1; % current density of phase b (stator)9 d N a Z/ h1 t9 o7 O
% Jex2=-Jex3/2; Jex21=-Jex2; % current density of phase c (stator)
6 [, \8 \. f; H# K8 W0 t: q Jexr1=10e6*kr; Jexr2=-Jexr1; % current density of rotor excitation
, t9 b: L5 N* ?, V# M: E# V1 p% E7 b; g5 C5 |
garnissageP1; % a sub-programme for the giving the current density and permeability at each mesh element
; O3 {* w4 L% Z0 I J% -------------
; U% K$ q! Z1 F6 r& \6 I% z a9 T: l3 a9 {
" D3 S( }) Z" K, k h. ]3 Z$ q1 b1 o: R+ L1 T3 `
% ------------- resolution of the partial differential equation and figure ploting ---------
7 ~& ?7 P) x& y& t% S& S
, t3 g" o$ i" f& eu=assempde(bond,p,e,t,nu,0,J); % resolution of the partial differential equation
( t+ \+ j2 ~6 z) g+ b) O! f% U=ASSEMPDE(B,P,E,T,C,A,F) assembles and solves the PDE problem -div(c*grad(u))+a*u=f% Z$ `# l. E$ l% B! F0 D, s
$ R& L: g' C$ W/ n+ k+ e( \
figure (1), pdemesh(p,e,t), axis equal, title ('Mesh of the machine section')$ O6 P' }# [" X+ q
figure (2), pdegplot(g); axis equal; hold on; pdecont(p,t,full(real(u)),30), hold off, title('Magnetic field distribution'), % plots using 30 levels., R, n2 r$ B4 b
% ------------------------------
4 |7 A; z5 K/ p. p* C$ w
& Q) Y0 g( O/ \% ~ \+ h: ?" F7 T2 f
, z k6 y+ A5 Y: i
% -------------- calculation of the energy stocked in the machine (energy sum in the magnetic field) --------------------! y9 d K; w* x
) a: n; g2 V+ d% [ux,uy]=pdegrad(p,t,u);; p X4 d1 x5 ]
% bx=uy;5 r; h. D/ @( H( U9 @- L- p
% by=-ux;; F; z; B z+ h8 W4 `3 \! v$ x" q
% for i=1:length(bx);8 c1 U. x( ~: Y4 ~( B" _
% b(i)=(bx(i)^2+by(i)^2)^.5;9 V+ X( q( {6 v k0 @$ }& \
% end
. N0 G% b7 b, `) v+ i# a# u% nu_e=1/(4e-7*pi);
7 I. f/ M8 I% X& V, E3 s1 }% nu_c=nu_e;
; H* a/ q: I9 g; @% nu_s=1/500*nu_e;
& w4 |" @; W q% nu_r=1/500*nu_e;
: d9 s# q2 ^3 `# q) p% h=sparse(1,ntrg);) C+ X2 Q- C0 k8 q) m
% ind_e=find(t(4,:)==2);
! }7 I; y' S. p! X7 D! p% ind_s=find(t(4,:)==1);+ T4 s0 y, a1 a9 {7 d6 P) s
% ind_r=find(t(4,:)==3);6 k, g8 a8 I& {" @
% ind_c=find((t(4,:)>=4) & (t(4,:)<=27));) ~, k3 l+ f1 o* E" B( t
% h(ind_e)=nu_e*b(ind_e)';3 O4 @. Y+ I! U0 }5 e
% h(ind_s)=nu_s*b(ind_s);: }% L- `. @7 Z" b* Z
% h(ind_r)=nu_r*b(ind_r);' q3 W! I( c0 q+ g3 [6 d
% h(ind_c)=nu_c*b(ind_c)';
! g9 d* ?4 u+ l3 f- X% aire=pdetrg(p,t);$ j2 J' [- @$ R! R0 }& b& A2 w2 q( k
% vol_trg=Long*aire;
9 K& U& F0 g) Y \/ `% energ_elem_e=1/2*(h(ind_e).*b(ind_e)').*vol_trg(ind_e);9 b0 M& f/ i* f% G5 f; h
% energ_tot_e=sum(energ_elem_e);. O0 V& t9 W& Y) O% ^: ]
% energ_elem_s=1/2*(h(ind_s).*b(ind_s)').*vol_trg(ind_s);
0 M: w" S: J& a, ]" \% energ_tot_s=sum(energ_elem_s);
5 c6 F% z$ U7 w8 s& p/ F% energ_elem_r=1/2*(h(ind_r).*b(ind_r)').*vol_trg(ind_r);
+ |& `& q) x% ^( G2 S% o( p0 N0 U% energ_tot_r=sum(energ_elem_r);
& H0 T$ A8 w+ M( n2 I# k% energ_elem_c=1/2*(h(ind_c).*b(ind_c)').*vol_trg(ind_c);4 Z( J% k: v2 X6 c
% energ_tot_c=sum(energ_elem_c);- n- P. o# B2 u& F& | ]+ T/ a5 z' o) z
% energ_total=energ_tot_e+energ_tot_s+energ_tot_r+energ_tot_c;
9 K! G6 y$ K+ G% enr=energ_total;
. y8 O- ]8 ^( }6 ]. f! C- o' V% u! ~4 w4 E, Y( q: \
toc; |
|