Version 4 SHEET 1 1856 680 WIRE -192 384 -192 144 WIRE 48 144 -192 144 WIRE 48 176 48 144 WIRE 48 352 48 336 WIRE 48 384 48 352 WIRE 96 352 48 352 WIRE 112 144 48 144 WIRE 352 320 352 304 WIRE 480 320 480 304 WIRE 608 320 608 304 WIRE 816 -16 816 -64 WIRE 816 176 816 144 WIRE 816 336 816 304 WIRE 832 -64 816 -64 WIRE 880 144 816 144 WIRE 1072 -144 1072 -176 WIRE 1072 16 1072 -16 WIRE 1072 176 1072 144 WIRE 1072 336 1072 304 WIRE 1104 -176 1072 -176 WIRE 1104 -16 1072 -16 WIRE 1104 144 1072 144 WIRE 1104 304 1072 304 FLAG 48 464 0 FLAG -192 464 0 FLAG 816 256 0 FLAG 880 144 model_flux FLAG 608 400 0 FLAG 608 304 L0 FLAG 816 64 0 FLAG 832 -64 model_L FLAG 480 400 0 FLAG 480 304 theta FLAG 96 352 1 FLAG 112 144 ph FLAG 816 416 0 FLAG 352 400 0 FLAG 352 304 th_deg FLAG 1072 -64 0 FLAG 1104 -176 f0 FLAG 1072 96 0 FLAG 1104 -16 f12 FLAG 1072 256 0 FLAG 1104 144 f24 FLAG 1072 416 0 FLAG 1104 304 f30 FLAG 816 304 0 SYMBOL ind 32 368 R0 WINDOW 3 44 73 Left 0 WINDOW 39 43 100 Left 0 SYMATTR Value Flux={c1}*(V(L0)-{Lsat})*tanh(x/{c1})+{Lsat}*x SYMATTR SpiceLine Rser=0 SYMATTR InstName L1 SYMBOL current -192 464 R180 WINDOW 0 24 88 Left 0 WINDOW 3 -393 -47 Left 0 WINDOW 123 0 0 Left 0 WINDOW 39 0 0 Left 0 SYMATTR InstName I1 SYMATTR Value PULSE(0 {imax} 0 {imax} {imax} 0 {2*imax}) SYMBOL bv 816 160 R0 SYMATTR InstName B1 SYMATTR Value V=sdt(V(1)) SYMBOL bv 608 304 R0 WINDOW 0 34 35 Left 0 SYMATTR InstName B2 SYMATTR Value V=L0(theta) SYMBOL bv 816 -32 R0 WINDOW 3 -44 132 Left 0 SYMATTR Value V=Lph(I(Vs),theta,Lsat) SYMATTR InstName B3 SYMBOL voltage 48 240 R0 WINDOW 0 33 42 Left 0 WINDOW 3 35 70 Left 0 SYMATTR InstName Vs SYMATTR Value 0 SYMBOL voltage 480 304 R0 WINDOW 0 36 32 Left 0 WINDOW 123 0 0 Left 0 WINDOW 39 0 0 Left 0 SYMATTR InstName V1 SYMATTR Value {theta} SYMBOL res 32 160 R0 SYMATTR InstName R1 SYMATTR Value {Rw} SYMBOL bv 816 320 R0 WINDOW 3 -122 132 Left 0 WINDOW 0 -68 7 Left 0 SYMATTR Value I=SDT(dFluxdTheta(I(Vs),theta)*ddt(I(Vs))) SYMATTR InstName Btorque SYMBOL voltage 352 304 R0 WINDOW 0 36 32 Left 0 WINDOW 123 0 0 Left 0 WINDOW 39 0 0 Left 0 SYMATTR InstName V2 SYMATTR Value {th_deg} SYMBOL bv 1072 -160 R0 SYMATTR InstName B8 SYMATTR Value V=table(I(Vs), 0,0, 5,.5329, 10,.7502, 15,.8542, 18,.8861) SYMBOL bv 1072 0 R0 SYMATTR InstName B6 SYMATTR Value V=table(I(Vs), 0,0, 5,.3512, 10,.5711, 15,.6664, 18,.7080) SYMBOL bv 1072 160 R0 SYMATTR InstName B7 SYMATTR Value V=table(I(Vs), 0,0, 5,.0796, 10,.1672, 15,.2616, 18,.3070) SYMBOL bv 1072 320 R0 SYMATTR InstName B9 SYMATTR Value V=table(I(Vs), 0,0, 5,.07054, 10,.1453, 15,.2279, 18,.2727) TEXT 256 -96 Left 0 !;Params to shape current & theta dependency:\n.param c1=5.25A ;nonlinearity, curve "bending"\n;phase inductance at full saturation, shapes\n;Lph(i) at low L0 (near unaligned position)\n.param Lsat=Lun ;Lsat will be <= Lun TEXT -218 -278 Left 0 !.tran {imax} TEXT 256 -272 Left 0 !;L0(theta)=phase inductance for low currents, see REF2 :\n.func L0(theta) {ml0+ml1*cos(nrp*theta)+ml2*cos(2*nrp*theta)}\n.func dL0dTheta(theta) {-ml1*nrp*sin(nrp*theta)-ml2*2*nrp*sin(2*nrp*theta)}\n.func dFluxdTheta(i,theta) {c1*tanh(i/c1)*dL0dTheta(theta)}\n;nonlinear phase inductance(current,angle,sat.inductance) :\n.func Lph(i,theta,Lsat) {(L0(theta)-Lsat)/cosh(i/c1)**2+Lsat} ;=dFlux/dI TEXT -224 -232 Left 0 !.param nrp=6 ; #poles, rotor\n.param nrs=8 ;#poles, stator\n.param omega=2*pi ;rot. speed rad/sec\n.param Rw=1m ;Rwinding\n;aligned, midway, unaligned inductance:\n.param Lal=.134 Lmid=0.075 Lun=0.015\n.param ml0=(Lal+2*Lmid+Lun)/4\n.param ml2=ml0-Lmid\n.param ml1=ml0+ml2-Lun TEXT 256 56 Left 0 !.param imax=18 ;max. phase current\n;.step param imax list 5 10 15 18\n.param th_deg=0 ;theta/degrees\n.step param th_deg list 0 12 24 30\n.param theta=th_deg*pi/180 TEXT -8 -272 Left 0 !.options plotwinsize=0 TEXT -216 -488 Left 0 ;Attempt for a Simple Approximation of Position dependent Nonlinear Phase Inductance for Reluctance Motor Vers.14-dec-05/G.Mi\n** schematic supposed to find parameters Lsat , c1 and fine adjust Lal, Lmid, Lun ** TEXT -216 -424 Left 0 ;plot fluxes vs. I(Vs) , see also REF1, Fig.6 .\nREF1) V.K.Sharma, S.S.Murthy: "An Improved Method for the Determination of Saturation Characteristics of Switched Reluctance\nMotors" IEEE Trans. Instr.,Vol.48,No.5, Oct.1999 www.dee.hcmut.edu.vn/vn/bomon/ bmthietbi/dongco_tutro/srm/33.pdf\nREF2) F.R.Salmasi, B.Fahimi: "Modeling Switched Reluctance Machines by Decomposition of Double Magnetic Saliencies"\nIEEE Trans. Mag. Vol 40 No.3, May-2004 TEXT -176 176 Left 0 ;SlewRate=1A/sec TEXT 632 264 Left 0 ;Inductance\nat I=0 TEXT 496 232 Left 0 ;rotor angle /rad TEXT 856 344 Left 0 ;I=retarding torque\nwhen rotor is\nmoved TEXT 1136 -96 Left 0 ;0 degrees TEXT 272 480 Left 0 ;Alternative Flux-Expression, but this would need adaption of\nderivatives dFlux/dtheta etc. if torque etc. is desired. \nFlux={c1}*(sqrt(V(L0)-{Lsat}))*tanh(sqrt(V(L0)-{Lsat})*x/{c1})+{Lsat}*x TEXT 1176 -176 Left 0 ;Measured Fluxes\nData from REF1, TABLE1 [b] TEXT 1144 360 Left 0 ;30 degrees TEXT 1144 200 Left 0 ;24 degrees TEXT 1144 40 Left 0 ;12 degrees TEXT 1072 -456 Left 0 ;Manual Adjustment Procedure:\n1)enter measured Lal,Lmid,Lun.\n enter imax\n2) enter Tables of measured fluxes\n3) enter stepping of param th_deg\n--run simulations:\n4)adjust c1 for best fit at 0 deg.\n5)adjust Lmid, Lun for\nintermediate/min. position TEXT 344 208 Left 0 ;rotor angle/deg TEXT -88 72 Left 0 ;Electrical Model is made up of\nthese components only RECTANGLE Normal 176 496 0 128 2