summaryrefslogtreecommitdiff
path: root/Special_Electrical_Machines_by_S.P._Burman/chapter03.ipynb
diff options
context:
space:
mode:
Diffstat (limited to 'Special_Electrical_Machines_by_S.P._Burman/chapter03.ipynb')
-rwxr-xr-xSpecial_Electrical_Machines_by_S.P._Burman/chapter03.ipynb720
1 files changed, 720 insertions, 0 deletions
diff --git a/Special_Electrical_Machines_by_S.P._Burman/chapter03.ipynb b/Special_Electrical_Machines_by_S.P._Burman/chapter03.ipynb
new file mode 100755
index 00000000..c85791a7
--- /dev/null
+++ b/Special_Electrical_Machines_by_S.P._Burman/chapter03.ipynb
@@ -0,0 +1,720 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter3 - Stepper motors & switched reluctance motors"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.1 Page 191"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from __future__ import division\n",
+ "# Given data\n",
+ "Lm=30 #in mH\n",
+ "Iph=3 #in Ampere\n",
+ "Rm=15 #in Ohm\n",
+ "\n",
+ "#Calculations\n",
+ "tau_ed=Lm/Rm #in ms\n",
+ "tdash=1/2*tau_ed #in ms\n",
+ "print \"(i) Time taken by the phase current to decay to zero = %0.2f ms \"%tdash \n",
+ "Energy=1/4*Lm*Iph**2 #in mW\n",
+ "print \"(ii) Energy returned to supply = %0.2f mW \"%Energy "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(i) Time taken by the phase current to decay to zero = 1.00 ms \n",
+ "(ii) Energy returned to supply = 67.50 mW \n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.2 Page 191"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Given data\n",
+ "n=4 #no. of phase\n",
+ "Ns=12 #stator teeth\n",
+ "Nr=3 #rotor teeth\n",
+ "\n",
+ "#Calculations\n",
+ "Beta=360/n/Nr #in degree\n",
+ "print \"Step Angle = %0.2f degree \"%Beta "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Step Angle = 30.00 degree \n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.3 Page 192"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Given data\n",
+ "MainPoles=10 #no. of main poles\n",
+ "teeth=7 #no. of teeth/pole\n",
+ "Nr=60 #rotor teeth\n",
+ "\n",
+ "#Calculations\n",
+ "Ns=MainPoles*teeth #stator teeth\n",
+ "Beta=(Ns-Nr)*360/Ns/Nr #in degree\n",
+ "print \"Step Angle = %0.3f degree\"%Beta "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Step Angle = 0.857 degree\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.4 Page 192"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Given data\n",
+ "Beta=3 #in degree\n",
+ "Revolution=25 #no. of revolutions\n",
+ "f=3600 #stepping frequency in pps\n",
+ "\n",
+ "#Calculations\n",
+ "Resolution=360/Beta #in step/res\n",
+ "print \"(a) Resolution = %0.2f step/res \"%Resolution \n",
+ "steps=Resolution*Revolution #no. of steps\n",
+ "print \"(b) No. of steps required : \" ,steps\n",
+ "speed=Beta*f/360 #in nps\n",
+ "print \"(c) Shaft speed = %0.2f nps \"%speed "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(a) Resolution = 120.00 step/res \n",
+ "(b) No. of steps required : 3000.0\n",
+ "(c) Shaft speed = 30.00 nps \n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.5 Page 192"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Given data\n",
+ "Beta=1.8 #in degree\n",
+ "Revolution=25 #no. of revolutions\n",
+ "f=4000 #stepping frequency in pps\n",
+ "theta=54 #required shaft rotation in degree\n",
+ "\n",
+ "#Calculations\n",
+ "Resolution=360/Beta #in step/res\n",
+ "print \"(i) Resolution = %0.2f step/res \"%Resolution \n",
+ "speed=Beta*f/360 #in rps\n",
+ "print \"(ii) Motor speed = %0.2f rps \"%speed \n",
+ "pulses=theta/Beta #pulses\n",
+ "print \"(iii) No. of pulses required to rotate the shaft through 54 degree : \" ,pulses"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(i) Resolution = 200.00 step/res \n",
+ "(ii) Motor speed = 20.00 rps \n",
+ "(iii) No. of pulses required to rotate the shaft through 54 degree : 30.0\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.6 Page 193"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Given data\n",
+ "Ns=8 #stator teeth\n",
+ "Nr=6 #rotor teeth\n",
+ "\n",
+ "#Calculations\n",
+ "Beta=(Ns-Nr)/Ns/Nr*360 #in degree\n",
+ "print \"Step angle = %0.2f degree \"%Beta \n",
+ "Resolution=360/Beta #steps/revolution\n",
+ "print \"Resolution = %0.2f steps/revolution \"%Resolution "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Step angle = 15.00 degree \n",
+ "Resolution = 24.00 steps/revolution \n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.7 Page 193"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Given data\n",
+ "Beta=15 #in degree\n",
+ "m=3 #no. of phase(1-Beta*Nr/360)\n",
+ "\n",
+ "#Calculations\n",
+ "#Formula : Beta=360/m/Nr\n",
+ "Nr=360/m/Beta #no. of rotor teeth\n",
+ "print \"No. of rotor teeth : \" ,Nr\n",
+ "#Formula : Beta=(Ns~Nr)/Ns/Nr*360 #in degree\n",
+ "#When Ns>Nr\n",
+ "Ns=Nr/(1-Beta*Nr/360) #no. of stator teeth\n",
+ "print \"When Ns>Nr, No. of stator teeth : \" ,Ns\n",
+ "#When Nr>Ns\n",
+ "Ns=Nr/(1+Beta*Nr/360)\n",
+ "print \"When Nr>Ns, No. of stator teeth : \" ,Ns"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "No. of rotor teeth : 8.0\n",
+ "When Ns>Nr, No. of stator teeth : 12.0\n",
+ "When Nr>Ns, No. of stator teeth : 6.0\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.8 Page 194"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Given data\n",
+ "m=4 #phases\n",
+ "Beta=1.5 #in degree\n",
+ "\n",
+ "#Calculations\n",
+ "#Formula : Beta=360/m/Nr\n",
+ "Nr=360/m/Beta #no. of rotor teeth\n",
+ "print \"No. of rotor teeth :\" ,Nr\n",
+ "Ns=Nr #no. of stator teeth\n",
+ "print \"In multi stack motor, Stator teeth = rotor teeth = \" ,Ns"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "No. of rotor teeth : 60.0\n",
+ "In multi stack motor, Stator teeth = rotor teeth = 60.0\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.9 Page 194"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Given data\n",
+ "Speed=2400 #in rpm\n",
+ "Resolution=200 #steps/res\n",
+ "\n",
+ "#Calculations\n",
+ "n=Speed/60 #in rps\n",
+ "Beta=360/Resolution #in degree\n",
+ "#Formula : n=Beta*f/360 \n",
+ "f=n*360/Beta #in pps\n",
+ "print \"Required pulse rate = %0.2f pps \"%f "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Required pulse rate = 8000.00 pps \n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.10 Page 194"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Given data\n",
+ "Resolution=500 #steps/res\n",
+ "theta=72 #rotator turn angle in degree\n",
+ "#Calculations\n",
+ "Hmod_Res=Resolution*2 #half step mode resolution in steps/res\n",
+ "print \"Half step mode resolution = %0.2f steps/res \"%Hmod_Res \n",
+ "Beta=360/Hmod_Res #in degree\n",
+ "steps=theta/Beta #in steps\n",
+ "print \"No. of steps required : \" ,steps"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Half step mode resolution = 1000.00 steps/res \n",
+ "No. of steps required : 200.0\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.11 Page 195"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Given data\n",
+ "Beta=1.8 #in dcegree\n",
+ "revolution=10 #no. of revolution\n",
+ "#Calculations\n",
+ "resolution=360/Beta #in steps/rev\n",
+ "steps=resolution*revolution #no. of steps in 10 evolution\n",
+ "print \"No. of steps =\",(steps),\"should be encoded.\" "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "No. of steps = 2000.0 should be encoded.\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.12 Page 195"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Given data\n",
+ "J=10**-4 #in Kgm**2 \n",
+ "w1=200 #in rad/sec\n",
+ "w2=300 #in rad/sec\n",
+ "delf=0.2 #in sec\n",
+ "Tf=0.06 #in N-m\n",
+ "\n",
+ "#Calculations\n",
+ "dwBYdf=(w2-w1)/delf #\n",
+ "Tm=J*dwBYdf+Tf #in N-m\n",
+ "print \"Motor Torque = %0.2f N-m \"%Tm "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Motor Torque = 0.11 N-m \n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.13 Page 195"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import pi\n",
+ "# Given data\n",
+ "J=3*10**-4 #in Kgm**2 \n",
+ "f1=1000 #in Hz\n",
+ "f2=2000 #in Hz\n",
+ "delt=100 #in ms\n",
+ "Tf=0.05 #in N-m\n",
+ "Qs=1.8 #in degree\n",
+ "\n",
+ "#Calculations\n",
+ "delt=100*10**-3 #in sec\n",
+ "Qs=Qs*pi/180 #in radian\n",
+ "w1=Qs*f1 #in rad/sec\n",
+ "w2=Qs*f2 #in rad/sec\n",
+ "dwBYdt=(w2-w1)/delt #\n",
+ "Tm=J*dwBYdt+Tf #in N-m\n",
+ "print \"Motor Torque = %0.4f N-m \"%Tm "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Motor Torque = 0.1442 N-m \n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.14 Page 196"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Given data\n",
+ "J=4*10**-4 #in Kgm**2 \n",
+ "Tm=0.3 #in N-m\n",
+ "Qs=3 #in degree\n",
+ "\n",
+ "#Calculations\n",
+ "Qs=Qs*pi/180 #in radian\n",
+ "#Formula : Tm=J*Qs*dfBYdt #in N-m\n",
+ "dfBYdt=Tm/J/Qs #in step/sec**2\n",
+ "print \"Maximum acceleration = %0.3e steps/sec**2 \"%dfBYdt "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Maximum acceleration = 1.432e+04 steps/sec**2 \n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.1 Page 196"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import pi\n",
+ "# Given data\n",
+ "Ns=12 #poles\n",
+ "q=3 #no. of phase\n",
+ "Nr=8 #poles\n",
+ "speed=6000 #speed in rpm\n",
+ "\n",
+ "#Calculations\n",
+ "Beta=360/q/Nr #in degree\n",
+ "print \"Step Angle = %0.2f degree \"%Beta \n",
+ "fc=Nr*speed*2*pi/2/pi/60 #in Hz\n",
+ "print \"Commutation frequency at each phase = %0.f Hz \"%fc"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Step Angle = 15.00 degree \n",
+ "Commutation frequency at each phase = 800 Hz \n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.2 Page 196"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Given data\n",
+ "Ns=10 #poles\n",
+ "q=5 #no. of phase\n",
+ "Nr=4 #poles\n",
+ "w=600 #speed in rpm\n",
+ "\n",
+ "#Calculations\n",
+ "Beta=360/q/Nr #in degree\n",
+ "print \"Step Angle = %0.2f degree \"%Beta \n",
+ "fc=Nr*w/60 #in Hz\n",
+ "print \"Commutation frequency at each phase = %0.2f Hz\" %fc\n",
+ "#Note : Answer is wrong in the book."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Step Angle = 18.00 degree \n",
+ "Commutation frequency at each phase = 40.00 Hz\n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.3 Page 197"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Given data\n",
+ "Ns=6 #poles\n",
+ "Nr=4 #poles\n",
+ "Beta_s=30 #in degree\n",
+ "Beta_r=32 #in degree\n",
+ "La=10.7 #in mH\n",
+ "LU=1.5 #in mH\n",
+ "i=7 #in A\n",
+ "q=3 #phase\n",
+ "\n",
+ "#Calculations\n",
+ "thetaK=2*180/4-(Beta_r+Beta_s)/2 #in degree\n",
+ "theta1=thetaK #in degree\n",
+ "thetaY=2*180/2-(Beta_r-Beta_s)/2 #in degree\n",
+ "theta2=thetaY #in degree\n",
+ "dTheta=theta2-theta1 #in degree\n",
+ "dL=La-LU #in mH\n",
+ "T=i**2/2*dL/dTheta #in N-m\n",
+ "lambda_a=La*i*10**-3 #in m\n",
+ "lambda_u=LU*i*10**-3 #in m\n",
+ "Wm=(lambda_a-lambda_u)/2*i #in joules\n",
+ "#Formula : Power transfered = Energy 1 sec \n",
+ "#Pm=2*pi*N*T/60=Wm*Nr*q*N/60\n",
+ "T=Wm*Nr*q/2/pi #in N-m\n",
+ "print \"Averagge torque = %0.2f N-m \"%T "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Averagge torque = 0.43 N-m \n"
+ ]
+ }
+ ],
+ "prompt_number": 17
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.4 Page 198"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Given data\n",
+ "Nr=4 #poles\n",
+ "La=10.7 #in mH\n",
+ "Lu=1.5 #in mH\n",
+ "i=7 #in A\n",
+ "q=3 #phase\n",
+ "\n",
+ "#Calculations\n",
+ "lambda_a=La*10**-3*i #in Wb/T\n",
+ "lambda_u=lambda_a #in Wb/T\n",
+ "i2=lambda_u/Lu/10**-3 #in Ampere\n",
+ "Wm=(i2-i)*lambda_u/2 #in Jooules\n",
+ "print \"Energy conversion per stroke = %0.3f Joules \"%Wm \n",
+ "T=Wm*q*Nr/2/pi #in N-m\n",
+ "print \"Average Tourque = %0.2f N-m \"%T "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Energy conversion per stroke = 1.608 Joules \n",
+ "Average Tourque = 3.07 N-m \n"
+ ]
+ }
+ ],
+ "prompt_number": 18
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+}