|
楼主 |
发表于 2007-6-20 17:07:19
|
显示全部楼层
更详细的求助了
请帮忙用有限元法做个同步电机电机磁场的模型相关程序(基于MATLAB)如下:% 1:air-gap, 2:culasse stator, 3: fer rotor,
1 r9 Y$ T7 b4 _+ V; x( g% 4-7: stator conductor, 28 - 29: rotor conductor
$ J. g( B5 W5 _* _3 ]2 l% }1 D: Y& R, m/ w" F3 I, d& {4 Q2 l- P- s8 p
tic; clear;clc; close all;8 A9 h4 d7 Q' H* X v! Q8 c0 r
$ ], _* A/ f6 N6 j* }# B( a
% k4 S* Z6 Z- f, U" x% D& x3 R% @/ o
! k8 y+ o+ p: v7 u+ f( S' X& T# }- _
% ------------- Draw the geometry of stator, rotor et air-gap --------------
9 K3 X/ K. g, ]$ p* @1 B+ ?
6 T0 g" l& v0 g0 t* ientref=1e-3; % air-gap depth$ u% Z0 [0 \( ]/ p4 R3 F+ J+ o
Rs=39.385e-3; % radius of (rotor+airgap)
( n0 N. e. ~* V; U6 F3 g, ~Rr=Rs-entref; % radius of rotor
- R3 g9 o, |5 }( x) x% ] E1 F, QRc=71.75e-3; % radius of stator
5 b4 I- D0 o) r/ X- `7 }$ f: d- c0 u* Q# z
Nb=140; % number of turns per phase8 n& f( \2 O! H# k; |
Long=0.125; % longitude of machine in rotation axis direction0 I$ h3 B* _/ l% s5 }
p=1; % ??/ Q9 X5 d4 E% ?% J- @0 C
f=50; % ??" U! t3 P) {% L8 _+ a. ?5 L S3 x
; R7 c# f* i" d9 |0 a6 u0 M
beta=35*pi/180; beta=beta/p; % culasse rotor: X7 g! l, l8 ]6 t
beta1=50*pi/180; beta1=beta1/p; % epanouissement polaire
: T& v8 L3 d1 y3 r0 ~: W
- N6 E1 P% K2 D5 ]dessinP1; % a sub-programme to draw the geometry of the machine section with the parameters defined above
2 C' [" X( l2 Y, W& j3 W4 O" o% --------------; `& g2 n W/ }
8 [0 N; O [; S, D# F N* S
* [% D: c d0 p$ ]% T% ------------- Rotor positioning and initial mesh --------------9 a! ^1 }* Z3 R) j8 y+ s
1 K8 {0 ]/ a1 A2 w
aa=-30*pi/180; % initial angle of rotor
7 j# x5 W$ K, Sgr=groto(gr,(aa)); % rotating the rotor to the angle specified above using the sub-programme 'groto' & I! x$ s p8 t& b. u6 w; C" T
g=[gsf gr]; % stator + rotor given the whole machine geometry
" j7 s8 {: p0 P5 {' k# q c/ |6 A5 X, blimites; % a sub-programme defining the bondary condition# _+ ^; M# {' U1 |
[p,e,t]=initmesh(g); % initial mesh for the partial differential equation resolution8 `8 |# P/ w# R2 Z. f
! Y& U' ?8 Z" Q( A# u
% ------------- mesh refine if necessary ------------0 s" W, Q1 Y8 k$ f
% [p,e,t]=refinemesh(g,p,e,t,[1 30]);5 g! I9 \* T. K; ^2 [: [5 P
% pdegplot(g); axis equal, hold on ; pdemesh(p,e,t), hold off; B- F5 ~( ]/ [* M3 ]* g
% pause
/ A( M9 i c# O5 L% -------------------------------------+ H5 ~9 t! b) g- U8 e! E
, z; _+ a# O7 j5 ?2 ~0 R8 S l4 h" r7 j o, |! n' k3 Z& ]0 c- z+ R
: O" v: v! z# v+ t% ------------- specification of parameters required for calculation -------
8 r' l- l% C. c% t kexc=0;
5 ?6 V9 P2 v4 \& H( ~: _9 w" O sigmaexc=kexc*5e6; % conductivity of rotor coil conductor
" \7 q6 ]. j- w7 C+ U nuo=1/(4e-7*pi); % inverse of permeability of vacuum 4 L) {( K- q5 Y" W% Z
murs=500; murr=500; % relative permeability of stator and rotor
1 Q8 x; F( W- s% C0 G9 `2 Q 7 g" i$ {, H- v$ K ]! c. v
ks=1; kr=0; % ks=1 or 0: stator excited or not; kr=1 or 0: rotor excited or not.* x5 [. @5 O6 N- O: r" C
% W" K W5 D4 [* j, K0 `, [4 g Jex1=0; Jex11=0;
- a, o" O0 g# ^3 ?* t( P Jex2 = 10e6*ks; Jex21 = -Jex2;
/ x I. r4 t$ i Jex3 = 0; Jex31 = 0;$ C7 \: k8 Y: F$ b
% Jex3=10e6*ks; Jex31=-Jex3; % current density of phase a (stator)
, i, _& ~- N: o! T2 z, I) ^9 U% Jex1=-Jex3/2; Jex11=-Jex1; % current density of phase b (stator)
[% Q7 H) M) p/ V5 i: N9 L% @% Jex2=-Jex3/2; Jex21=-Jex2; % current density of phase c (stator)
$ d& y/ i( J7 a. O# z3 G2 J Jexr1=10e6*kr; Jexr2=-Jexr1; % current density of rotor excitation
0 q2 `0 G- G$ b6 j5 j. v' ?1 g' U9 Z1 q% n% P! U m) s$ V5 j6 q
garnissageP1; % a sub-programme for the giving the current density and permeability at each mesh element/ M7 |/ o) O1 e' P- f
% -------------
4 A0 T/ C% w$ G
8 B- g7 W1 T C* f! P) f3 J
+ }: H0 n1 f1 E$ K1 M; N1 [' ?; `1 r/ P, Q4 j4 z( E
% ------------- resolution of the partial differential equation and figure ploting ---------
; }5 q- }7 y6 \: { L7 Y
; x- Y! g/ |" n# uu=assempde(bond,p,e,t,nu,0,J); % resolution of the partial differential equation0 ^8 O L/ Q$ \
% U=ASSEMPDE(B,P,E,T,C,A,F) assembles and solves the PDE problem -div(c*grad(u))+a*u=f
) V! G( C& X; O) \9 t1 J; T, Y3 O' n) }: O
figure (1), pdemesh(p,e,t), axis equal, title ('Mesh of the machine section')
$ @3 l7 _# |6 B+ z5 Q; k c2 [ Tfigure (2), pdegplot(g); axis equal; hold on; pdecont(p,t,full(real(u)),30), hold off, title('Magnetic field distribution'), % plots using 30 levels.
, G T2 n1 }6 V0 u: ^% ------------------------------
- H+ P, z; c5 }' Y6 S* a- z
& }* _7 u* O0 t- r7 H: B0 [# E3 M! m, }
% P- V9 k5 i; Q; _% -------------- calculation of the energy stocked in the machine (energy sum in the magnetic field) --------------------
; C5 S+ I |6 @" W( j) E
3 C+ W8 h& t/ m8 _% [ux,uy]=pdegrad(p,t,u);
# s7 q' S" n) i3 B6 N% bx=uy;9 ?% s% U2 ]# u$ `1 y+ e2 r
% by=-ux;1 q7 C0 ]' t. w0 n2 f. [' h" v
% for i=1:length(bx);/ Y4 d* G* |" V( _! V0 e% X
% b(i)=(bx(i)^2+by(i)^2)^.5;- }, h( M7 w3 }/ l8 A6 K9 m
% end
( n, A. B' R8 p( @' p% nu_e=1/(4e-7*pi);
% n0 y Q% `" A8 ^0 F; S% nu_c=nu_e;
! k% U8 P2 Z ` R% nu_s=1/500*nu_e;* u) ~' d( [- i2 h9 ^
% nu_r=1/500*nu_e;
2 d4 E" U' C: v+ [& h3 r% h=sparse(1,ntrg);
5 a/ Q: x. n# w; x7 ?4 S. g% ind_e=find(t(4,:)==2);( y3 x1 H& o0 P) A# j1 ^
% ind_s=find(t(4,:)==1);
0 z* _, h- j2 N, }% ind_r=find(t(4,:)==3);% ?- Q: ^* _; f. X" @* y
% ind_c=find((t(4,:)>=4) & (t(4,:)<=27));
5 l& B2 s0 ^/ i# t" a! e, N |% h(ind_e)=nu_e*b(ind_e)';9 r- }+ J2 l, E: Z% c; X
% h(ind_s)=nu_s*b(ind_s);0 S5 a# y8 ?! ?+ @ ]% q) Z
% h(ind_r)=nu_r*b(ind_r);6 x" R% |3 s+ o% M. \1 t
% h(ind_c)=nu_c*b(ind_c)';1 }9 A7 ]# M+ a* q
% aire=pdetrg(p,t);
/ k/ W* q+ @; ~1 c! _& Y4 X$ v% vol_trg=Long*aire;
/ W3 E% \' U. ~3 l: ]% energ_elem_e=1/2*(h(ind_e).*b(ind_e)').*vol_trg(ind_e);# n' Y |5 |- ~' s( N
% energ_tot_e=sum(energ_elem_e);1 m q8 M/ U$ s5 _( w7 m
% energ_elem_s=1/2*(h(ind_s).*b(ind_s)').*vol_trg(ind_s);
2 q# L" m$ f3 a% z' c' _ G% energ_tot_s=sum(energ_elem_s);: G: [: {; I; F8 F; | c
% energ_elem_r=1/2*(h(ind_r).*b(ind_r)').*vol_trg(ind_r);
6 t! Z! h+ l! u# \% energ_tot_r=sum(energ_elem_r);. S: V+ P; |+ D5 b9 o2 w/ t1 G( m
% energ_elem_c=1/2*(h(ind_c).*b(ind_c)').*vol_trg(ind_c);
& m& Q6 ?/ w8 T% energ_tot_c=sum(energ_elem_c);
* j7 {3 s9 b& G% w% energ_total=energ_tot_e+energ_tot_s+energ_tot_r+energ_tot_c;1 Y& l! n$ n$ N& j
% enr=energ_total;
) B: R' V2 ^- L/ H1 \+ ?3 i7 |. y; s+ C4 d
toc; |
|