|
|
楼主 |
发表于 2007-6-20 17:07:19
|
显示全部楼层
更详细的求助了
请帮忙用有限元法做个同步电机电机磁场的模型相关程序(基于MATLAB)如下:% 1:air-gap, 2:culasse stator, 3: fer rotor, ' @, J4 F. q: q* c) Q
% 4-7: stator conductor, 28 - 29: rotor conductor+ ?' p+ m# ^1 B3 b* L+ ?4 r
! G% e; B% l, D
tic; clear;clc; close all;
- `; v4 E' ~# n; o3 y [5 ^/ \9 [3 T( e" w# y
5 B1 d# J% l. R: E+ Y. \6 ]2 A3 ^+ b4 X0 p
% ------------- Draw the geometry of stator, rotor et air-gap --------------
; {9 r; z' w g# ?/ J x' v# _* Y9 [4 d8 y
entref=1e-3; % air-gap depth/ X, E8 k1 q/ H1 F
Rs=39.385e-3; % radius of (rotor+airgap) ' _& \; K6 L x6 q4 P
Rr=Rs-entref; % radius of rotor
) D$ H: F# ?0 T9 ?Rc=71.75e-3; % radius of stator2 t; g& l& ~7 A+ V" e u) N4 K
2 T) g; z, I0 r3 z
Nb=140; % number of turns per phase, W/ e P3 H% ?5 A p
Long=0.125; % longitude of machine in rotation axis direction
9 u+ r- i6 s8 a' F# ] P3 j9 u. tp=1; % ?? }6 F, |8 D' `" c# \( C2 A7 R% ?
f=50; % ??5 @$ G( i1 b# `: t8 D( m7 j% v
, ^( L5 i7 j6 D' m8 x" Abeta=35*pi/180; beta=beta/p; % culasse rotor
4 K+ ]! Z! a- I+ @beta1=50*pi/180; beta1=beta1/p; % epanouissement polaire+ ?- g. R8 Q: ~+ e4 N, O+ D
) I9 a: _4 v! \& G
dessinP1; % a sub-programme to draw the geometry of the machine section with the parameters defined above
7 l+ K) u6 H* B! B7 n3 [9 f1 K% --------------7 i- }# N. j( D& f/ m4 W
# O e+ m1 ~1 q/ B4 X/ ]
: G) C1 n% H1 H* r" D9 {
% ------------- Rotor positioning and initial mesh --------------
; L ?2 {( B! q. G
; x; r' r' o# S2 _9 O+ m" r/ D' j" uaa=-30*pi/180; % initial angle of rotor5 F, x$ a! |) o, g! k2 a7 B
gr=groto(gr,(aa)); % rotating the rotor to the angle specified above using the sub-programme 'groto' ! j6 k3 ~4 X. a% a
g=[gsf gr]; % stator + rotor given the whole machine geometry
; Y0 X3 t# H& k1 E* llimites; % a sub-programme defining the bondary condition' ~. `) f. |1 v
[p,e,t]=initmesh(g); % initial mesh for the partial differential equation resolution7 S' {+ h6 p$ u& v3 e
) u9 ~& t; t" f2 W7 w % ------------- mesh refine if necessary ------------
; n3 @' d8 o# L) k# I% [p,e,t]=refinemesh(g,p,e,t,[1 30]);
8 e* x- Y) g8 l3 k. ]% pdegplot(g); axis equal, hold on ; pdemesh(p,e,t), hold off
+ C6 n$ T, Y9 [. p, s% pause
$ ]/ }# M" J) a6 | p) R$ `% -------------------------------------& Z; J/ F% I8 i, ^
+ W7 {2 n1 @2 ?- Q$ ?' y
4 q, q$ h, }' v( C# f% X' y, \- `' t% ?
% ------------- specification of parameters required for calculation -------( G* C& D8 h1 b- d: V
kexc=0; 3 J) ^. u1 z. A. q' }; ?! H
sigmaexc=kexc*5e6; % conductivity of rotor coil conductor9 l8 c9 z+ ^ U- J4 o5 z8 F8 c# ^8 `
nuo=1/(4e-7*pi); % inverse of permeability of vacuum ( D0 {) r0 v' H3 J5 |9 U
murs=500; murr=500; % relative permeability of stator and rotor
2 u0 A& i `4 W8 Z' t5 g9 G 5 O. m9 x- Z% J) Z9 s4 ]$ W
ks=1; kr=0; % ks=1 or 0: stator excited or not; kr=1 or 0: rotor excited or not.
/ M0 w/ ^1 ]/ G
, _1 t8 u" D. V- f$ j' C1 }& t Jex1=0; Jex11=0;, q& z2 {: K3 p: d" K6 n# v
Jex2 = 10e6*ks; Jex21 = -Jex2;
% O# f" o3 h7 C Jex3 = 0; Jex31 = 0;
$ e; ^" i4 o& B9 ]+ B# }; L% Jex3=10e6*ks; Jex31=-Jex3; % current density of phase a (stator)
1 T B( `3 ^- V& P3 p% Jex1=-Jex3/2; Jex11=-Jex1; % current density of phase b (stator)
% e5 K# Z: Z: z$ G; g% Jex2=-Jex3/2; Jex21=-Jex2; % current density of phase c (stator)
! e( c! @ S4 S' z3 Y A7 ^; h! _ Jexr1=10e6*kr; Jexr2=-Jexr1; % current density of rotor excitation
1 s$ _* _) E0 {2 h, k- r+ ^8 `' c( L6 |# Q, T
# W) B% Z Z' G3 ^5 ]0 _( E' ^ garnissageP1; % a sub-programme for the giving the current density and permeability at each mesh element
% a& d; p) t" {% ------------- " T- Z0 q7 `6 Y! U+ @
- h* Z: a2 T6 T$ T/ y4 p: |) z; r2 v8 ~4 C! C6 Q, _! P; l
' f4 p$ v( A6 g$ T% ------------- resolution of the partial differential equation and figure ploting ---------6 j$ t+ I/ Q3 o7 O
: y8 }5 g8 e8 Q3 f
u=assempde(bond,p,e,t,nu,0,J); % resolution of the partial differential equation% j! y: o: A& l! G6 h# L
% U=ASSEMPDE(B,P,E,T,C,A,F) assembles and solves the PDE problem -div(c*grad(u))+a*u=f
. E% m/ t5 P/ x! `
. O1 z' z! d5 c4 u' U7 g( v8 [figure (1), pdemesh(p,e,t), axis equal, title ('Mesh of the machine section')7 ~( B( C% {* u
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.- T! d5 V) E3 A
% ------------------------------& R0 [: Z; m" K
{& E2 t' A/ Q# S! u4 u' o6 k
/ o' d: s2 E) d
& j$ S {3 S: x% -------------- calculation of the energy stocked in the machine (energy sum in the magnetic field) --------------------3 `; T. r: e& i) D! K7 }
) W7 e" I ?6 n9 i/ ]8 C! M u0 M
% [ux,uy]=pdegrad(p,t,u);
& o$ U: ]5 I5 |4 B2 d" ^& j% bx=uy;
! e8 r: \+ J4 ^% by=-ux;
- B9 N X8 D" q* U7 [% for i=1:length(bx);7 R2 ~) K* Y6 v; T, v( d0 z6 G* y
% b(i)=(bx(i)^2+by(i)^2)^.5;+ B6 Y* j% I3 G8 m; `5 ]4 m6 q
% end
1 P( r& S0 O8 c; b% nu_e=1/(4e-7*pi);
t) m1 Z W5 s' i! D& m5 ^# m% nu_c=nu_e;$ B0 w N' x; A* H+ H3 R
% nu_s=1/500*nu_e;
, N1 }0 D: R- _! O, E% nu_r=1/500*nu_e;
4 }: G0 i7 N% X5 o6 O- v% h=sparse(1,ntrg);
8 [! E( d) Q) G1 A8 I0 e% ind_e=find(t(4,:)==2);
6 m* p' }# c" \( l, d5 K0 n( P" H% ind_s=find(t(4,:)==1);; q( V" @7 n) }
% ind_r=find(t(4,:)==3);8 ^, C1 B' y$ P1 |( b c1 [
% ind_c=find((t(4,:)>=4) & (t(4,:)<=27));! f7 K6 g8 \' @8 m% u
% h(ind_e)=nu_e*b(ind_e)';
1 t$ W+ U7 d8 ]- J+ m* q% h(ind_s)=nu_s*b(ind_s);, o: T* Y! F& ?" B
% h(ind_r)=nu_r*b(ind_r);
' E% [) N) H2 `9 R% h(ind_c)=nu_c*b(ind_c)';
( F" q1 S' J8 f6 Y8 s- ~% aire=pdetrg(p,t);
: a( |9 U' w& D, a2 a! g% vol_trg=Long*aire; K/ {1 ?1 o' d9 t
% energ_elem_e=1/2*(h(ind_e).*b(ind_e)').*vol_trg(ind_e);+ i6 D2 w9 ~. [( x
% energ_tot_e=sum(energ_elem_e);
+ x" v+ q D6 Y; \; z% energ_elem_s=1/2*(h(ind_s).*b(ind_s)').*vol_trg(ind_s);
c' N/ A8 A$ Z6 b3 ^6 `% energ_tot_s=sum(energ_elem_s);
, N" H6 z9 Y0 ^7 M5 Y% energ_elem_r=1/2*(h(ind_r).*b(ind_r)').*vol_trg(ind_r);! v2 H5 Z& o6 H- M$ i" r
% energ_tot_r=sum(energ_elem_r);
* F* R9 p: k) s4 z8 \% energ_elem_c=1/2*(h(ind_c).*b(ind_c)').*vol_trg(ind_c);
5 ~; q l$ n7 U% Y; v% energ_tot_c=sum(energ_elem_c);8 i0 V/ F& H- `# W" z. Q& O: T: \, j
% energ_total=energ_tot_e+energ_tot_s+energ_tot_r+energ_tot_c;
5 E5 Y1 W; L1 N# ~% enr=energ_total;; B0 o _: @/ z* {
, Q& J; e' e+ t9 Dtoc; |
|