# CHAPTER 3: ELECTROMECHANICAL INSTRUMENTS¶

## Example 3-1, Page Number: 37¶

In [6]:
import math
#Variable Declaration

N=100
B=0.2         #in Tesla
D=1*10**-2    #in m
l=1.5*10**-2  #in m
I=1*10**-3    #in A

#Calculation of torque

Td=B*l*I*N*D  #Torque equation

#Result
print "Torque=",Td," N.m"

Torque= 3e-06  N.m


## Example 3-2, Page Number: 39¶

In [8]:
import math
#Variable Declaration

current_sensitivity=1*10**-6  #in A/mm
damping_resistance=1*10**3    #in ohm

#Voltage sensitivity
voltage_sensitivity=damping_resistance*current_sensitivity

#Megaohm sensitivity

megaohm_sensitivity=1/current_sensitivity

#Results
print "Voltage Sensitivity=",int(voltage_sensitivity*1000)," mV/mm"
print "Megaohm Sensitivity=",int(megaohm_sensitivity/10**6),"mega ohm"

Voltage Sensitivity= 1  mV/mm
Megaohm Sensitivity= 1 mega ohm


## Example 3-3, Page Number: 41¶

In [24]:
import math
#Variable Declaration

Rm=99            #Coil resistance in ohm
Im1=0.1*10**-3   #FSD current in A
Rs=1             #Shunt resistance in ohm

#Calculation

#At FSD

Vm1=Im1*Rm        #Meter Voltage
Is1=Vm1/Rs
It1=Is1+Im1       #Total Current

#At 0.5 FSD
Im2=0.5*Im1     #0.5 FSD current
Vm2=Im2*Rm      #Meter Voltage
Is2=Vm2/Rs      #Shunt current
It2=Im2+Is2     #Total current

#At 0.25 FSD
Im3=0.25*Im1     #0.25 FSD current
Vm3=Im3*Rm      #Meter Voltage
Is3=Vm3/Rs      #Shunt current
It3=Im3+Is3     #Total current

#Results
print "At FSD,"
print "Meter Voltage=",round(Vm1*1000,1)," mV"
print "Meter Current=",round(Im1*1000,1)," mA"
print "Shunt Current=",round(Is1*1000,1)," mA"
print "Total Current=",round(It1*1000,1),"mA"

print " "
print "At 0.5 FSD,"
print "Meter Voltage=",round(Vm2*1000,2)," mV"
print "Meter Current=",round(Im2*1000,2)," mA"
print "Shunt Current=",round(Is2*1000,2)," mA"
print "Total Current=",round(It2*1000,2),"  mA"

print " "
print "At 0.25 FSD,"
print "Meter Voltage=",round(Vm3*1000,3)," mV"
print "Meter Current=",round(Im3*1000,3)," mA"
print "Shunt Current=",round(Is3*1000,3)," mA"
print "Total Current=",round(It3*1000,1),"   mA"

At FSD,
Meter Voltage= 9.9  mV
Meter Current= 0.1  mA
Shunt Current= 9.9  mA
Total Current= 10.0 mA

At 0.5 FSD,
Meter Voltage= 4.95  mV
Meter Current= 0.05  mA
Shunt Current= 4.95  mA
Total Current= 5.0   mA

At 0.25 FSD,
Meter Voltage= 2.475  mV
Meter Current= 0.025  mA
Shunt Current= 2.475  mA
Total Current= 2.5    mA


## Example 3-4, Page Number: 43¶

In [1]:
import math
#Variable Declaration
Im=100*10**-6    #FSD Current in A
Rm=1*10**3       #Coil Resistance
I1=100*10**-3    #Required FSD current
I2=1             #Required FSD current

#Calculation

#FSD=100mA
Vm1=Im*Rm        #Meter Voltage
Is1=I1-Im        #Shunt Current
Rs1=Vm1/Is1      #Shunt Resistance

#FSD=1A
Vm2=Im*Rm        #Meter Voltage
Is2=I2-Im        #Shunt Current
Rs2=Vm2/Is2      #Shunt Resistance

#Results
print "For FSD=100mA,"
print "Shunt Resistance=",round(Rs1,3)," ohm"

print "For FSD=1A,"
print "Shunt Resistance=",round(Rs2,5)," ohm"

For FSD=100mA,
Shunt Resistance= 1.001  ohm
For FSD=1A,
Shunt Resistance= 0.10001  ohm


## Example 3-5, Page Number: 45¶

In [49]:
import math
#Variable Declaration

R1=0.05      #in ohm
R2=0.45      #in ohm
R3=4.5       #in ohm
Rm=1*10**3   #in ohm
Im=50*10**-6 #in A

#Calculation

#Switch at contact B
Vs1=Im*Rm
Is1=Vs1/(R1+R2+R3)
It1=Im+Is1

#Switch at contact C

Vs2=Im*(Rm+R3)
Is2=Vs2/(R1+R2)
It2=Im+Is2

#Swithc at contact D

Vs3=Im*(Rm+R3+R2)
Is3=Vs3/R1
It3=Im+Is3

#Results
print "When switch is at B, Ammeter Range=",int(It1*1000)," mA"
print "When switch is at C, Ammeter Range=",int(It2*1000)," mA"
print "When switch is at D, Ammeter Range=",int(It3)," A"

When switch is at B, Ammeter Range= 10  mA
When switch is at C, Ammeter Range= 100  mA
When switch is at D, Ammeter Range= 1  A


## Example 3-6, Page Number:47¶

In [2]:
import math
#Variable Declaration

Im=100*10**-6       #in A
Rm=1*10**3          #in ohm
V=50                #in V

#Calculations

Rs=V/Im-Rm          #in ohm

#At 0.8 FSD

Im1=0.8*Im          #in A
V1=Im1*(Rs+Rm)      #in V

#At 0.5 FSD
Im2=0.5*Im          #in A
V2=Im2*(Rs+Rm)      #in V

#At 0.2 FSD
Im3=0.2*Im          #in A
V3=Im3*(Rs+Rm)      #in V

#Results

print "For 50V at full scale, multiplier resistance should be",int(Rs/1000)," kilo ohm"
print "When instrument reads 0.8 FSD, applied voltage is",int(V1)," volt"
print "When instrument reads 0.5 FSD, applied voltage is",int(V2)," volt"
print "When instrument reads 0.2 FSD, applied voltage is",int(V3)," volt"

For 50V at full scale, multiplier resistance should be 499  kilo ohm
When instrument reads 0.8 FSD, applied voltage is 40  volt
When instrument reads 0.5 FSD, applied voltage is 25  volt
When instrument reads 0.2 FSD, applied voltage is 10  volt


## Example 3-7, Page Number: 49¶

In [3]:
import math
#Variable declaration

Im=50*10**-6    #FSD current in A
Rm=1700         #Coil resistance in ohm
V1=10           #Required range in V
V2=50           #Required range in V
V3=100          #Required range in V

#For Circuit 1
R11=V1/Im-Rm
R12=V2/Im-Rm
R13=V3/Im-Rm

#For Circuit 2
R21=V1/Im-Rm
R22=V2/Im-R21-Rm
R23=V3/Im-R22-R21-Rm

#Results

print "For Circuit 1,"
print "R1=",round(R11/1000,1),"kilo ohm"
print "R2=",round(R12/1000,1),"kilo ohm"
print "R3=",round(R13/10**6,4),"mega ohm"

print " "
print "For Circuit 2,"
print "R1=",round(R21/1000,1),"kilo ohm"
print "R2=",int(R22/1000),"kilo ohm"
print "R3=",round(R23/10**6,4),"mega ohm"

For Circuit 1,
R1= 198.3 kilo ohm
R2= 998.3 kilo ohm
R3= 1.9983 mega ohm

For Circuit 2,
R1= 198.3 kilo ohm
R2= 800 kilo ohm
R3= 1.0 mega ohm


## Example 3-8, Page Number: 53¶

In [1]:
import math
import numpy as np
import matplotlib.pyplot as plt

%matplotlib inline
## Variable Declaration

I=100*10**-6    #Full Scale Current in A
Rm=1*10**3       #Coil Resistance in ohm
Vrms=100         #FSD rms voltage in V
Vf=0.7           #Diode voltage

#At FSD, the average current flowing through PMMC is
Iavg=I
Im=round(Iavg/0.637,6)

rectifier_voltage_drops=2*Vf
peak_voltage=1.414*Vrms
Rs=(peak_voltage-rectifier_voltage_drops)/Im-Rm

#To plot rectified waveform used by the voltmeter at FSD
t=np.arange(0.01,1.0,0.01)                                                   #Time Axis
x=np.zeros(99)
N=0
while(N<99):
x[N]=(peak_voltage-2*Vf)*math.fabs(math.sin(2*math.pi*N*2/100))
N=N+1

plt.plot(t,x)                                                              #Full wave rectified sine wave
plt.plot(t,(peak_voltage-2*Vf)*t/t,'--',label='Vm')                        #Peak Voltage Marker
plt.plot(t,(Vrms-0.707*2*Vf)*t/t,'--',label='Vrms')                        #RMS Voltage Marker
plt.plot(t,(peak_voltage-2*Vf)*0.637*t/t,'--',label='Vavg')                #Average Voltage Marker
legend = plt.legend(loc='lower right')
plt.xlabel('Time(second)')
plt.ylabel('Input Voltage(V)')
plt.title('Rectified waveform across PMMC at FSD')

#Results
print "Multiplier Resistance=",round(Rs/1000,1), "kilo ohm"

Multiplier Resistance= 890.7 kilo ohm


## Example 3-9, Page Number: 53¶

In [13]:
import math
#Variable Declaration
#Data from Example 3-7
Rs=890*10**3             #in ohm
Rm=1*10**3               #in ohm
Vrms=100                 #in V
Vf=0.7                   #in V
I=100*10**-6             #in A

#When input=75V (rms)
Vrms1=75
Im1=(1.414*Vrms1-2*Vf)/(Rs+Rm)
Iavg1=0.637*Im1
p1=Iavg1/I

#When input=50V (rms)

Vrms2=50
Im2=(1.414*Vrms2-2*Vf)/(Rs+Rm)
Iavg2=0.637*Im2
p2=Iavg2/I

#Results

print "When input is 75 V(rms), meter reading is",round(p1,2)," FSD"
print "When input is 50 V(rms), meter reading is",round(p2,2)," FSD"

When input is 75 V(rms), meter reading is 0.75  FSD
When input is 50 V(rms), meter reading is 0.5  FSD


## Example 3-10, Page Number: 54¶

In [22]:
import math
#Variable Declaration
#From Example 3-8
Im=157*10**-6          #Maximum Current(A)
Vrms=100               #Maximum rms voltage(V)

#Calculation

Irms=0.707*Im         #Property of sinusoid
R=Vrms/Irms           #Ohm's Law
sensitivity=R/Vrms

print "The sensitivity of the voltmeter described in example 3-8 is,",int(sensitivity/1000),"kilo ohm/V"

The sensitivity of the voltmeter described in example 3-8 is, 9 kilo ohm/V


## Example 3-11, Page Number: 55¶

In [2]:
import math
import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline
#Variable Declaration

Iav=50*10**-6         #FSD Current (A)
Rm=1700               #Coil resistance(ohm)
Imin=100*10**-6       #Minimum forward current (peak)in A
p=20.0/100.0          #20% FSD at 100 micro amps
Vrms=50
Vf=0.7
#Calculation
Im=Iav/(0.5*0.637)

#At 20% FSD, If must be 100micro amps, hence the current at 100% FSD is
If_peak=Imin/p
Ish_peak=If_peak-Im
Vm_peak=Im*Rm
Rsh=Vm_peak/Ish_peak
Rs=(1.414*Vrms-Vm_peak-Vf)/If_peak

#Plot of half wave rectified voltage appearing across PMMC instrument
t=np.arange(0.01,1.0,0.01)                                  #Time Axis
N=0
x=np.zeros(99)
while(N<99):
if((N<=25)|(N>50)&(N<=75)):
x[N]=(If_peak-Im)*Rsh*math.sin(2*math.pi*2*N/100)
else:
x[N]=0
N=N+1
plt.plot(t,x)
plt.plot(t,(If_peak-Im)*Rsh*t/t,'--',label='Vmax')
plt.plot(t,0.5*(If_peak-Im)*Rsh*t/t,'--',label='Vrms')
plt.plot(t,0.318*(If_peak-Im)*Rsh*t/t,'--',label='Vavg')
plt.xlabel('Time(second)')
plt.ylabel('Voltage(V)')
plt.title('Half wave rectified waveform across PMMC at FSD')
legend = plt.legend(loc='lower right')

#Results
print "The value of Rsh is",int(Rsh),"  ohm"
print "The value of Rs is",round(Rs/1000,1)," kilo ohm"

The value of Rsh is 778   ohm
The value of Rs is 139.5  kilo ohm


## Example 3-12, Page Number: 58¶

In [111]:
import math
#Variable Declaration

Iav=1*10**-3                      #in A
Rm=1700                           #in ohm
Ns=500                            #Secondary windings
Np=4                              #Primary windings
Vf=0.7                            #in V
Rs=20*10**3                       #in ohm
Ip=250*10**-3                     #in A

#Calculation
Im=Iav/0.637                      #Property of sine half wave
Em=Im*(Rs+Rm)+2*Vf
Es=0.707*Em
rms_meter_current=1.11*Iav

#Trasnformer rms secondary current is,
Is=Ip*Np/Ns

Il=Is-rms_meter_current
Rl=Es/Il

print "The required value of Rl is",round(Rl/1000,1)," kilo ohm"

The required value of Rl is 28.2  kilo ohm


## Example 3-13, Page Number: 59¶

In [129]:
import math

#Variable Delcaration

current_fsd=100*10**-6
accuracy=1.0/100.0

#Calculation
error_fsd=accuracy*current_fsd
#At FSD
indicated_current_fsd=current_fsd
measured_current_fsd_max=indicated_current_fsd+error_fsd
measured_current_fsd_min=indicated_current_fsd-error_fsd

#At 0.5 FSD

indicated_current=0.5*current_fsd
measured_current_max=indicated_current+error_fsd
measured_current_min=indicated_current-error_fsd

error=error_fsd/indicated_current

#Results

print "At FSD,"
print "Measured current=",measured_current_fsd_min*10**6," micro ampere to",measured_current_fsd_max*10**6," micro ampere"
print "Error=±",int(accuracy*100),"% of measured current"

print " "
print "At 0.5 FSD,"
print "Measured current=",measured_current_min*10**6," micro ampere to",measured_current_max*10**6," micro ampere"
print "Error= ±",int(error*100),"% of measured current"

At FSD,
Measured current= 99.0  micro ampere to 101.0  micro ampere
Error=± 1 % of measured current

At 0.5 FSD,
Measured current= 49.0  micro ampere to 51.0  micro ampere
Error= ± 2 % of measured current


## Example 3-14, Page Number: 61¶

In [5]:
import math

#Variable Declaration
Eb=1.5               #Battery Voltage(V)
R1=15.0*10**3          #Standard resistance+meter resistance

Im=Eb/R1             #Ohm's Law

#At 0.5 FSD
Im1=0.5*Im           #Current at 0.5 FSD
Rx1=Eb/Im1-R1        #Resistance measured at 0.5 FSD

#At 0.25 FSD
Im2=Im/4
Rx2=Eb/Im2-Rx1        #Resistance  measured at 0.25 FSD

#At 0.75 FSD
Im3=0.75*Im
Rx3=Eb/Im3-Rx1      #Resistance measured at 0.25 FSD

#Results
print "When Rx=0, the meter indicates",int(Im*10**6),"micro ampere(FSD)"
print " "
print "At 0.5 FSD, Rx=",int(Rx1*10**-3)," kilo ohm"
print "At 0.25 FSD, Rx=",int(Rx2*10**-3)," kilo ohm"
print "At 0.75 FSD, Rx=",round(Rx3*10**-3)," kilo ohm"

When Rx=0, the meter indicates 100 micro ampere(FSD)

At 0.5 FSD, Rx= 15  kilo ohm
At 0.25 FSD, Rx= 45  kilo ohm
At 0.75 FSD, Rx= 5.0  kilo ohm


## Example 3-15, Page Number: 63¶

In [22]:
import math

#Variable Declaration
Eb1=1.5               #Battery Voltage(V)
R1=15*10**3           #Series resistance as shown in figure(ohm)
Rm=50                 #Coil resistance (ohm)
R2=50                 #Shunt resistance(ohm)
I_fsd=50*10**-6       #FSD Current(A)
Eb2=1.3

#At 0.5 FSD, with Eb=1.5V
Im1=0.5*I_fsd
Vm1=Im1*Rm
I21=Vm1/R2           #Ohm's Law
Ib1=I21+Im1          #KCL
Rx1=Eb1/Ib1-R1       #Unknown resistance value is found

#With Rx=0,Eb=1.3V

Ib2=Eb2/R1           #Total Current
I22=Ib2-I_fsd        #Shunt Current using KCL
Vm2=I_fsd*Rm         #Voltage across meter
R22=Vm2/I22          #Shunt Resistance value

#At 0.5FSD, Eb=1.3V
Im3=0.5*I_fsd        #Meter Current
Vm3=Im3*Rm           #Voltage across meter using Ohm's Law
I23=Vm3/R22          #Shunt Current using Ohm's Law
Ib3=I23+Im3          #Total current using KCL
Rx2=Eb2/Ib3-R1       #Resitance reading on Ohm scale

#Results

print "Ohmmeter scale reading at 0.5 FSD is,",int(Rx1/1000),"kilo ohm"
print "With Rx=0 and Eb=1.3V, R2 should be",round(R22,2),"ohm"
print "At 0.5 FSD, with Eb=1.3V, the ohmeter scale reading is,",int(Rx2/1000),"kilo ohm"

Ohmmeter scale reading at 0.5 FSD is, 15 kilo ohm
With Rx=0 and Eb=1.3V, R2 should be 68.18 ohm
At 0.5 FSD, with Eb=1.3V, the ohmeter scale reading is, 15 kilo ohm


## Example 3-16, Page Number: 65¶

In [54]:
import math

#Variable Declaration
#From Circuit Diagram
R1=14               #in ohm
R2=10               #in ohm
R3=9.99*10**3       #in ohm
R4=2.875*10**3      #in ohm
R5=3.82*10**3       #in ohm
Eb=1.5              #Battery current
#Calculation

#When Rx=0, battery current is
R6=R3+R4+R5         #Series equivalent
R7=R2*R6/(R2+R6)    #Parallel equivalent
Ib1=Eb/(R1+R7)
Im1=Ib1*R2/(R2+R6)  #Using Current Dividor Rule

#When Rx=24 ohm,
R8=24
Ib2=Eb1/(R8+R1+R7)  #From figure
Im2=Ib2*R2/(R2+R6)  #Using Current Dividor Rule
n=round(Ib2/Ib1,3)
#Results

print "When Rx=0,"
print "Battery current=",round(Ib1*1000,3)," mA"
print "Meter current=",round(Im1*10**6,2)," micro ampere"
print "Full Scale= 0 ohm"

print " "
print "When Rx=24,"
print "Battery Current=",round(Ib2*10**3,3),"mA"
print "Meter Current=",round(Im2*10**6,2),"micro ampere"
print "As meter current is",n,"times of full scale.Thus, when Rx=24 ohm it indicates half scale reading"

When Rx=0,
Battery current= 62.516  mA
Meter current= 37.45  micro ampere
Full Scale= 0 ohm

When Rx=24,
Battery Current= 31.254 mA
Meter Current= 18.72 micro ampere
As meter current is 0.5 times of full scale.Thus, when Rx=24 ohm it indicates half scale reading