Version 4 SHEET 1 2276 1548 WIRE -208 240 -208 192 WIRE -64 240 -64 112 WIRE -16 112 -64 112 WIRE -16 192 -208 192 WIRE 288 192 240 192 WIRE 304 112 240 112 WIRE 304 144 240 144 WIRE 592 992 592 944 WIRE 624 128 576 128 WIRE 624 288 576 288 WIRE 672 944 592 944 WIRE 672 976 672 944 WIRE 672 1072 672 1040 WIRE 688 944 672 944 WIRE 720 128 704 128 WIRE 720 160 720 128 WIRE 720 288 704 288 WIRE 720 320 720 288 WIRE 752 288 720 288 WIRE 768 992 768 944 WIRE 832 128 720 128 WIRE 864 944 768 944 WIRE 864 992 864 944 WIRE 880 288 832 288 WIRE 880 320 880 288 WIRE 880 448 880 400 WIRE 880 480 880 448 WIRE 896 736 896 720 WIRE 976 944 864 944 WIRE 976 976 976 944 WIRE 976 1072 976 1040 WIRE 1008 128 912 128 WIRE 1008 320 1008 128 WIRE 1008 448 1008 400 WIRE 1008 480 1008 448 WIRE 1088 944 976 944 WIRE 1344 944 1312 944 WIRE 1344 976 1344 944 WIRE 1344 1072 1344 1056 WIRE 1440 944 1344 944 WIRE 1440 976 1440 944 WIRE 1440 1072 1440 1040 FLAG -64 320 0 FLAG 768 1072 0 FLAG 976 1072 0 FLAG 592 1072 0 FLAG 1088 944 omega IOPIN 1088 944 Out FLAG 672 1072 0 FLAG 688 944 phi IOPIN 688 944 Out FLAG 1344 1072 0 FLAG 576 288 a IOPIN 576 288 In FLAG 576 128 b IOPIN 576 128 In FLAG -64 112 fc FLAG 592 816 0 FLAG 592 736 eqp IOPIN 592 736 Out FLAG 896 816 0 FLAG 896 720 p1 IOPIN 896 720 Out FLAG 880 560 0 FLAG 880 448 emf_a FLAG 1008 560 0 FLAG 1008 448 emf_b FLAG 1312 944 omega IOPIN 1312 944 In FLAG 864 1072 0 FLAG 1440 1072 0 FLAG 720 400 0 FLAG 720 240 0 FLAG 304 112 a IOPIN 304 112 Out FLAG 304 144 b IOPIN 304 144 Out FLAG 288 192 Clk FLAG -208 320 0 SYMBOL voltage -64 224 R0 WINDOW 123 0 0 Left 0 WINDOW 39 0 0 Left 0 SYMATTR InstName Vclock SYMATTR Value PULSE({Fstart} {Fmax} {Tdelay} {Trise} {Tfall} {Ton}) SYMBOL bv 768 1088 R180 WINDOW 3 -416 -52 Left 0 WINDOW 0 -74 104 Left 0 SYMATTR Value I=KT1*SQRT(I(Va)**2+I(Vb)**2)*sin( (V(eqp)-V(phi) )*pi/2/phip ) SYMATTR InstName Btorq SYMBOL cap 960 976 R0 SYMATTR InstName CJrotor SYMATTR Value {Jr} SYMBOL bv 592 1088 R180 WINDOW 3 -61 -20 Left 0 WINDOW 0 24 104 Left 0 SYMATTR Value I=V(omega) SYMATTR InstName Bphi SYMBOL cap 656 976 R0 SYMATTR InstName C2 SYMATTR Value 1 SYMBOL res 1328 960 R0 SYMATTR InstName RL SYMATTR Value {RL} SYMBOL voltage 880 304 R0 SYMATTR InstName Va SYMATTR Value 0 SYMBOL voltage 1008 304 R0 SYMATTR InstName Vb SYMATTR Value 0 SYMBOL ind 848 272 R90 WINDOW 0 -8 66 VRight 0 WINDOW 3 -5 2 VRight 0 SYMATTR InstName La SYMATTR Value {Lw} SYMATTR SpiceLine Rser=0 SYMBOL ind 928 112 R90 WINDOW 0 48 70 VRight 0 WINDOW 3 50 5 VRight 0 SYMATTR InstName Lb SYMATTR Value {Lw} SYMATTR SpiceLine Rser=0 SYMBOL bv 592 720 R0 WINDOW 3 -39 139 Left 0 WINDOW 0 40 66 Left 0 SYMATTR Value V=eqp(I(Va),I(Vb)) SYMATTR InstName Beqpos SYMBOL bv 896 720 R0 WINDOW 3 -114 138 Left 0 WINDOW 0 -76 24 Left 0 SYMATTR Value V={per}*(V(phi)/{per}-FLOOR(V(phi)/{per})) SYMATTR InstName Bp1 SYMBOL bv 880 464 R0 WINDOW 3 -139 165 Left 0 SYMATTR Value V=EMF_a(Ker,V(omega),V(phi)) SYMATTR InstName B1 SYMBOL bv 1008 464 R0 WINDOW 3 -363 132 Left 0 SYMATTR Value V=EMF_b(Ker,V(omega),V(phi)) SYMATTR InstName B2 SYMBOL bi 864 992 R0 WINDOW 0 13 -9 Left 0 WINDOW 3 -28 118 Left 0 SYMATTR InstName Bdetent SYMATTR Value I=MDT*sin(2*pi/phip*V(phi)) SYMBOL cap 1424 976 R0 SYMATTR InstName CJL SYMATTR Value {JL} SYMBOL res 704 144 R0 SYMATTR InstName Reddy1 SYMATTR Value {Reddy} SYMBOL res 704 304 R0 SYMATTR InstName Reddy2 SYMATTR Value {Reddy} SYMBOL res 608 144 R270 WINDOW 0 -17 14 VRight 0 WINDOW 3 -17 48 VRight 0 SYMATTR InstName R1 SYMATTR Value {Rw} SYMBOL res 608 304 R270 WINDOW 0 -19 8 VRight 0 WINDOW 3 -17 45 VRight 0 SYMATTR InstName R2 SYMATTR Value {Rw} SYMBOL voltage -208 224 R0 WINDOW 3 34 53 Left 0 SYMATTR Value 0 SYMATTR InstName Vrev SYMBOL StepperCtrl_2ph_V 80 144 R0 WINDOW 39 -6 32 Left 0 SYMATTR SpiceLine Vmax=6 SYMATTR InstName X1 TEXT -434 90 Left 0 !.tran 0 {Tm} 0 TEXT -440 128 Left 0 !.options plotwinsize=0 TEXT -480 792 Left 0 !*---Motor Parameters, ARSAPE AM2224-AV-18 (see: pdf_metric215_de.pdf, www.faulhaber.com)\n.param phip_deg=15 ;full step angle /degrees\n.param phip=phip_deg/360*2*pi per=phip*4 ;electrical period\n.param HT=26m ;holding torque/ Nm, 2-phases under current\n.param MDT=2m ;Detent Torque(magnetic) / Nm at I=0\n.param KT1=(HT-MDT)/0.25A/SQRT(2) ;single phase(!) torque sensitivity Nm/A\n;**NOTE: EMF should theoretically be: Ker = KT1 [ Nm/A = V*s ]\n;Spec. ARSAPE: 16.7 V/(kSteps/s)\n.param Ker=16.7m/phip ;back EMF in V*s [ =V/(rad/s) ]\n.param Jr=228n ;Rotor Inertia / kg*m^2\n.param Rw0 = 18 T0=20 ;winding resistance at temperature T0\n.param Tw=100 ;winding temperature / °C\n.param Rw=Rw0*(1+3.8m*(Tw-T0))\n.param Lw=35m ;inductivity\n;**Eddy current losses: enter Qfactor at high-end clock frequency Fed\n.param Qed=10 Fed=600 Reddy=2*pi*Lw*fed*Qed ;asumption,no data available TEXT 1144 568 Left 0 !.func f1() {2*phip/pi*ATAN(I(Vb)/I(Va))}\n.func f2() {2*phip/pi*ATAN(-I(Va)/I(Vb))+phip}\n.func f3() {2*phip/pi*ATAN(I(Vb)/I(Va))+2*phip}\n.func f4() {2*phip/pi*ATAN(-I(Va)/I(Vb))+3*phip}\n*-equilibrium rotor position\n.func eqp(Ia,Ib) {if(Ia>=0 & Ib>=0,f1(),\n+ if(Ia<0 & Ib>=0,f2(),IF(Ia<0 & Ib<0,f3(),\n+ IF(Ia>=0 & Ib<0,f4(),0) ) ) ) }\n.func EMF_a(Ker,speed,el_pos) {-Ker*speed*sin(pi/2/phip*el_pos)}\n.func EMF_b(Ker,speed,el_pos) {-Ker*speed*sin(pi/2/phip*el_pos-pi/2)} TEXT 928 672 Left 0 ;actual electrical\nrotor position/rad\nin electr. frame.\nNot needed,\nfor display only TEXT 616 672 Left 0 ;electrical equilibrium\nrotor position/rad TEXT 704 496 Left 0 ;Back EMF of\nwinding La TEXT 1048 512 Left 0 ;Back EMF of\nwinding Lb TEXT 456 912 Left 0 ;mechanical rotor\nposition/rad TEXT 1072 992 Left 0 ;mechanical output:\nspeed in rad/s\nHere is where to\nconnect mech. loads TEXT 536 56 Left 0 ;---------- 2-phase Stepper Motor Model (Version 11-Aug-05) ----------\nNote: circuit sometimes requires the alternate solver ! TEXT 768 912 Left 0 ;Current=Torque TEXT -480 384 Left 0 !*-Driver & Load Parameter Settings:\n;--unloaded motor\n;.params Fstart=10 Fmax=10 Tdelay=5m Trise=995m Tfall=10n Ton=999 RL=1G JL=1p Tm=1\n;--ext. inertia\n;.params Fstart=4 Fmax=4 Tdelay=5m Trise=995m Tfall=10n Ton=999 RL=1G JL=4u Tm=1.5\n;---settings close to max. torque(fclock), various external inertia connected :\n;.params Fstart=0 Fmax=50 Tdelay=5m Trise=1.495 Tfall=10n Ton=999 RL=700 JL=20u Tm=2\n;.params Fstart=0 Fmax=100 Tdelay=5m Trise=1.495 Tfall=10n Ton=999 RL=1.65k JL=7u Tm=2\n;--overload condition, loss of sync\n.params Fstart=0 Fmax=200 Tdelay=5m Trise=995m Tfall=10n Ton=999 RL=4k JL=3u Tm=1.5\n;-\n;.params Fstart=0 Fmax=400 Tdelay=5m Trise=995m Tfall=10n Ton=0.4 RL=19k JL=1.5u Tm=1.5\n;--unclear effect: rising oscillation when speed is at max., then loss of sync.\n;.params Fstart=0 Fmax=600 Tdelay=5m Trise=995m Tfall=10n Ton=999 RL=110k JL=1u Tm=2 TEXT 1232 904 Left 0 ;--- mechanical load --- TEXT 1144 136 Left 0 ;ARSAPE AM2224-AV-18,\nrated Torque(speed) at V=6V\nFclk/Hz Torque/ Nm\n-----------------------------------\n50 15m\n100 12m\n200 7.5m\n400 3.0m\n600 1.4m ? questionable at 6V