|
|
楼主 |
发表于 2007-6-20 17:07:19
|
显示全部楼层
更详细的求助了
请帮忙用有限元法做个同步电机电机磁场的模型相关程序(基于MATLAB)如下:% 1:air-gap, 2:culasse stator, 3: fer rotor, / D0 k+ o, m+ O' H- ~8 p
% 4-7: stator conductor, 28 - 29: rotor conductor
, M7 E. U. t6 L" t! \9 l
1 f, f+ I) v: R+ D$ qtic; clear;clc; close all;
2 B3 Z0 r1 ?; ^8 M L+ n- a! X" R' a3 x2 @' t
" T# Q0 k$ K2 c- c. w- M" |2 `7 ~0 [$ b( `, u2 S
% ------------- Draw the geometry of stator, rotor et air-gap --------------
' @3 P' b. c0 W b& n y6 W( l4 D1 ?+ x. G) p& x" s
entref=1e-3; % air-gap depth- q2 D ]* h# t D: p& L" Y
Rs=39.385e-3; % radius of (rotor+airgap) 6 q0 e9 D: K/ D
Rr=Rs-entref; % radius of rotor
+ C% V# G. b/ ARc=71.75e-3; % radius of stator
+ g2 e# K3 z% n& n8 t. P& p$ b) M/ {- w [! ^3 r9 R' U; X g
Nb=140; % number of turns per phase
; d# B1 e+ a3 u U9 m3 J, w* h# hLong=0.125; % longitude of machine in rotation axis direction
; J9 e! H+ U, ?! A2 Wp=1; % ??0 E4 N# i! L8 b( g- i2 r
f=50; % ??
0 r# o+ f; C: J2 j$ J- I9 u* g4 x, `* K7 {( Y" {- j( p
beta=35*pi/180; beta=beta/p; % culasse rotor
. O8 ^! G* O9 ?, G0 ^# C2 v/ k' Abeta1=50*pi/180; beta1=beta1/p; % epanouissement polaire: V; h( O, }! y& @& ]5 c
# X3 W/ \/ s- X; V# {3 E7 t; K
dessinP1; % a sub-programme to draw the geometry of the machine section with the parameters defined above
. S4 _( U6 ~$ \: m7 ~# x( B% --------------. @# k$ q+ \% ?+ q8 {7 P/ p
f) m N0 D( J- G% {5 g( s; \2 X5 \# w0 L8 z/ v D1 ~
% ------------- Rotor positioning and initial mesh --------------$ r& T/ U% ]. ]" D; N7 W* Q2 k& H
& m9 l/ I t+ t9 L: ?. t1 G0 m7 @
aa=-30*pi/180; % initial angle of rotor
* t! z. A5 Q1 ^5 pgr=groto(gr,(aa)); % rotating the rotor to the angle specified above using the sub-programme 'groto' 0 C5 `. m9 D; t% J6 w
g=[gsf gr]; % stator + rotor given the whole machine geometry
% u g8 g, Q1 E: X% W. {. ^% }' Ylimites; % a sub-programme defining the bondary condition M3 S/ Y( D) J. W2 M
[p,e,t]=initmesh(g); % initial mesh for the partial differential equation resolution
2 x" ]$ o* A& D5 H5 m) _' h9 w% h7 j% U
% ------------- mesh refine if necessary ------------
0 Q M' i1 i0 L1 L% I1 n/ X0 t" ^% [p,e,t]=refinemesh(g,p,e,t,[1 30]);; Q9 U4 _4 x$ C1 c8 n
% pdegplot(g); axis equal, hold on ; pdemesh(p,e,t), hold off
) A, G1 L( q* L R: C$ w1 A% pause
4 c9 ?+ I9 s2 ^* m" l* ?% -------------------------------------
+ ^0 i6 C8 _1 [9 N! x# J
* K- S1 Y0 [2 W' A+ L8 y3 D. `
) B l: v) n' m3 b; X, K5 W
3 p) a2 Y/ T) z7 q% ------------- specification of parameters required for calculation -------! ^( }4 i* t' _: a* \' l& V2 S
kexc=0;
2 t8 M2 g. @% T sigmaexc=kexc*5e6; % conductivity of rotor coil conductor# \! J/ W, T" y' F7 o$ M0 j
nuo=1/(4e-7*pi); % inverse of permeability of vacuum
( U% a8 P$ X. H* c murs=500; murr=500; % relative permeability of stator and rotor; I6 o& y8 v) s7 d2 ?
- b6 w; f' N% L! L, ~3 N H+ q
ks=1; kr=0; % ks=1 or 0: stator excited or not; kr=1 or 0: rotor excited or not.. E v" D1 i! n$ P
# h/ p" R4 g2 \( }! p
Jex1=0; Jex11=0;
; z. V4 p0 t7 x+ w" e1 E Jex2 = 10e6*ks; Jex21 = -Jex2;
' G+ [: ^8 P* C+ _$ r. N i3 z Jex3 = 0; Jex31 = 0;
' w7 Y- k$ m' {/ o% Jex3=10e6*ks; Jex31=-Jex3; % current density of phase a (stator)
* T% Q* m' r+ b0 f& _, a% Jex1=-Jex3/2; Jex11=-Jex1; % current density of phase b (stator)/ B: I& Q) ]. P3 K7 }5 i
% Jex2=-Jex3/2; Jex21=-Jex2; % current density of phase c (stator)
1 B' D7 M7 }/ |) s4 s7 ^, R8 a Jexr1=10e6*kr; Jexr2=-Jexr1; % current density of rotor excitation
7 @4 m& t) |5 I, H7 Q- j
# f {# y1 P, M; K) i: Q9 A$ d4 X8 P garnissageP1; % a sub-programme for the giving the current density and permeability at each mesh element
/ s$ r+ W; L9 a$ d; v5 y& r% ------------- ( c' Q0 R5 g4 w, F$ O0 x3 I
" _) f- Y* V% v& D, \, A! L1 G
$ S. s& L- W; Z* x
% J4 e6 B& j& _1 s7 U, j$ i" o% ------------- resolution of the partial differential equation and figure ploting ---------9 M+ h, t8 ^9 V$ }. k5 G7 d/ h# T
' p: j0 e. X, V2 J" ?+ M- _( vu=assempde(bond,p,e,t,nu,0,J); % resolution of the partial differential equation
4 O2 U1 L& L5 E6 D" I% U=ASSEMPDE(B,P,E,T,C,A,F) assembles and solves the PDE problem -div(c*grad(u))+a*u=f
" A$ y- ~( t/ R. u! [3 ~/ R5 u) U* d; E* A
figure (1), pdemesh(p,e,t), axis equal, title ('Mesh of the machine section')
! C" ]& ^2 s6 Ufigure (2), pdegplot(g); axis equal; hold on; pdecont(p,t,full(real(u)),30), hold off, title('Magnetic field distribution'), % plots using 30 levels.
0 U5 G' }% c% ]% ------------------------------4 J$ ~5 {- y' l4 F; y. }" n8 f
% n9 E" Q" [) i1 E9 ?
/ o, g" b* k1 D9 e5 J
! I5 e$ b( y$ Z+ c" t7 A. ?+ y8 N' E
% -------------- calculation of the energy stocked in the machine (energy sum in the magnetic field) --------------------
3 y' h; }* f3 f J: l8 X. F
$ a6 v& K4 @0 e5 r; {) E6 P3 {5 {% [ux,uy]=pdegrad(p,t,u);0 ~5 l @+ Q2 U5 Y8 o( ]3 I
% bx=uy;; Q6 g" G L5 ]1 T5 q
% by=-ux;+ w2 A' P5 O- d3 f% _
% for i=1:length(bx);
" z* S1 {- b2 S8 S: ?% b(i)=(bx(i)^2+by(i)^2)^.5;- ~. S2 G7 J+ k7 H) @( g/ t _- A5 ^' y
% end$ b) r8 c, r: t* _9 H! Z
% nu_e=1/(4e-7*pi);/ o3 T9 k7 L) p( O q( J
% nu_c=nu_e;: b) M! ~$ ?- e0 K U! {, P
% nu_s=1/500*nu_e;
! A2 R* t3 f5 c# r# N% nu_r=1/500*nu_e;
: g& ~% b7 j3 O9 Z3 \; Z b% h=sparse(1,ntrg);/ x* V0 { j5 Y3 ]2 o W, c
% ind_e=find(t(4,:)==2);
! n' S9 j" ?; J. W) ~% ind_s=find(t(4,:)==1);+ m: V% m a% u: D& O. S% e
% ind_r=find(t(4,:)==3);* D( w I% K7 T6 i7 z' X" L
% ind_c=find((t(4,:)>=4) & (t(4,:)<=27));; `, }/ ^0 i2 t0 ^/ i# \' H! x
% h(ind_e)=nu_e*b(ind_e)';
; j/ v) K9 L8 R% h(ind_s)=nu_s*b(ind_s);
, R g3 h. }( g1 o% h(ind_r)=nu_r*b(ind_r);
. B. Y5 Q( T* [" K% h(ind_c)=nu_c*b(ind_c)';6 v: V6 k- }3 v% `$ S; `
% aire=pdetrg(p,t);
' ~% ~, I5 [! d. b% vol_trg=Long*aire;
" y0 T. e% g6 k+ Y, v% energ_elem_e=1/2*(h(ind_e).*b(ind_e)').*vol_trg(ind_e);
7 M o0 K) B+ R+ e" \% energ_tot_e=sum(energ_elem_e);& q5 h" H1 I: S5 O5 b
% energ_elem_s=1/2*(h(ind_s).*b(ind_s)').*vol_trg(ind_s);
' w0 V. P1 ]3 c6 v) n; G% energ_tot_s=sum(energ_elem_s);
5 \! ~- I9 q C) S u7 t% m& h/ y3 N2 p% energ_elem_r=1/2*(h(ind_r).*b(ind_r)').*vol_trg(ind_r);
# @5 Y" r0 E" j% energ_tot_r=sum(energ_elem_r);
5 O5 n0 g* `, F. d1 ^3 O% energ_elem_c=1/2*(h(ind_c).*b(ind_c)').*vol_trg(ind_c);
4 a" i( z) \9 d; P/ Z2 c0 I% energ_tot_c=sum(energ_elem_c);
" M8 Q$ v' `- z% Z( [% energ_total=energ_tot_e+energ_tot_s+energ_tot_r+energ_tot_c;
( D/ ?7 Q7 ^! g# s( e/ I% enr=energ_total;1 v. K+ Q. `+ G
, d. ?! T ^% ?1 ~+ c3 K
toc; |
|