NOTE: This is actually wrong! and I explain why in my next log.
Going along with my hanging spring analogy from last time, I can see that the net force between the inductor, and gravity would equal 0.
That means that the magnetic force would equal out the force of gravity. I can find the force of a solenoid by multiplying the magnetic energy by the cross sectional Area A. Since the flux density B changes, I had to combine part of B containing the core and part of B with an air core. It turns out that after writing both B's in terms of the length of the gap, the unknowns cancel out, and the position of the core becomes negligible. I then plug B back in to find the magnetic force. now that I know how to find the magnetic force, I can use that to find the required current to hold a position, or to accelerate the core upwards.
Solving for the force / acceleration:
Python code to find holding current:
import math as m gravity = 9.8 #permeability of free space mu_0 = 4*m.pi*10**(-7) #mu_r means realitive permeability to free space # mu_r_ElectricalSteel = mu_0*4000 # mu_r_PureIron = mu_0*200000 # mu_r_Iron = mu_0*5000 # mu_r_CarbonSteel = mu_0*100 #NOTE: I tuned this number to get the calculation to match mu_r_unknown = mu_0*12 coreMu = mu_r_unknown coreMass = 0.000785 #Kilograms length = .035 #Meters numLoops = 110 coreRadius = .00165 #Meters crossSectionalArea = m.pi*(coreRadius**2) #Using formula to find current that can keep net acceleration at 0 def getHoldingCurrent(opposingForce): #NpA is just newton per amp because it's the force divided by current NpA = ((numLoops*(mu_0+coreMu))**2)*crossSectionalArea / (2*(length**2)*mu_0) return opposingForce/NpA print( getHoldingCurrent(coreMass * gravity) ) #RESULT: #.85