在原项目里,或许是这里的公式2推导到公式3时候漏了个1/2 ???
在笔者之前写的文章《根据磁感应强度曲线来计算磁阻炮的弹丸受力》中成功计算了弹丸受力,可惜需要借用maxwell来计算磁感应强度分布曲线,这种方式由于需要maxwell的介入导致非常不方便,那么有没有一种办法可以根据线圈本身的参数直接计算磁感应强度分布曲线呢?
答案是肯定的,在github上的CoilGun.jl项目上 笔者找到了这个问题的答案。计算公式如下:
不过由于笔者的电磁学能力很薄弱,所以无法跟着原文的思路进行推导,但在下面的代码验证中发现,公式应该要乘以0.5才成立。(CoilGun.jl项目的链接放着文末,有能力的大佬可以推导看看)。非常感谢托卡大佬的帮助,这个公式其实就是论文《两种载流螺线管轴线上磁场分布函数的比较》里的公式2的变形,并且确实少乘了个1/2 。
公式转化为python代码:
原文是的项目是CoilGun.jl,使用Julia代码写成的,可以用ai方便的转化成python代码。代码中的线圈参数与《根据磁感应强度曲线来计算磁阻炮的弹丸受力》中设置的一致即:线圈长度8,内径8.5,外径18,匝数100,激励电流200A。 代码如下:
import math from scipy.interpolate import interp1d import numpy as np import pandas as pd from scipy.optimize import curve_fit import matplotlib.pyplot as plt class Coil: def __init__(self, location, length, N, innerRadius, outerRadius): self.length = length #线圈长度 self.innerRadius = innerRadius #线圈内半径 self.outerRadius = outerRadius #线圈外半径 self.N = N #线圈匝数 self.μ0 = 4 * math.pi * 1e-7 # 真空磁导率 亨利每米 def BFieldCoil3(self, current, z): #输入位置 计算磁感应强度! L=self.length a=L/2 r2=self.outerRadius r1=self.innerRadius R=r2-r1 def logarithm(pos): return pos * math.log((math.sqrt(pos ** 2 + r2 ** 2) + r2) / (math.sqrt(pos ** 2 + r1 ** 2) + r1)) return ( self.μ0*self.N*current/(2*L*R) ) * (logarithm(z+a)-logarithm(z-a)) coil = Coil(0, 8*1e-3, 100, 0.5*8.5*1e-3, 0.5*18*1e-3) # 线圈位置0,线圈长度8 mm,线圈匝数100,线圈内半径8.5/2 mm,线圈外半径18/2 mm current = 200 # 电流为200A #计算-30至30 范围内的磁感应强度分布曲线 xx=[ pos for pos in np.arange(-30,30,0.1)] yy=[ coil.BFieldCoil3( current, x*1e-3) for x in xx] #maxwell直接计算的磁感应强度分布曲线 Bx_csv = pd.read_csv('D:\pytohn_Sofe\dcp1\dcp1\mainSim\mainSim\Fb\\Bx_8_8.5_18_100_200.csv') Bxxx = np.array(Bx_csv.iloc[:, 3].values ) Byyy = np.array(Bx_csv.iloc[:, 4].values ) #画出曲线A 和 曲线B的曲线 plt.plot(xx, yy, color='yellow', label=' curve A') plt.scatter(Bxxx, Byyy, color='red', label=' maxwell B') plt.xlabel('x (mm)') plt.ylabel('B (T)') plt.legend() plt.show()
代码验证:
其中曲线A是代码计算的曲线,曲线B是由maxwell计算的曲线,可以看到这两条曲线的重合度非常高! 之后笔者对其他参数的线圈也进行过多次验证,也表现出了极高的重合度!
结语:
现在笔者可以说是集齐了电磁炮模拟器的所有拼图了。HAcoilgun这个模拟器已经有十多年的历史了,只是非常可惜代码没有开源,我们没办法知道其是如何计算的。 但是现在终于终于看到了曙光,新的模拟器即将要在kc诞生了!!!!
最后在这里我非常感谢各位大佬的帮助! 尤其是三水大佬,对我帮助非常多。
参考文献:
1: GitHub - laurium-labs/CoilGun.jl: Coil gun simulation to aid in coil gun design
2:根据磁感应强度曲线来计算磁阻炮的弹丸受力 - 科创网 (XXXXXXXXXXXX)
3: 线圈参数计算器(基于Wheeler公式计算电感量) - 科创网 (XXXXXXXXXXXX)
[修改于 5个月0天前 - 2024/06/24 18:19:39]
可以看看这篇论文
时段 | 个数 |
---|---|
{{f.startingTime}}点 - {{f.endTime}}点 | {{f.fileCount}} |
200字以内,仅用于支线交流,主线讨论请采用回复功能。