震撼!模拟器的最后一块拼图! 根据线圈参数计算 磁感应强度分布曲线!
gugugu2024/06/23原创 磁阻研究 IP:上海
关键词
磁感应强度曲线计算python

     在笔者之前写的文章《根据磁感应强度曲线来计算磁阻炮的弹丸受力》中成功计算了弹丸受力,可惜需要借用maxwell来计算磁感应强度分布曲线,这种方式由于需要maxwell的介入导致非常不方便,那么有没有一种办法可以根据线圈本身的参数直接计算磁感应强度分布曲线呢?

    答案是肯定的,在github上的CoilGun.jl项目上 笔者找到了这个问题的答案。计算公式如下:

                    R2K_IA2H0$WF$[1Y6_S}72S.png

     不过由于笔者的电磁学能力很薄弱,所以无法跟着原文的思路进行推导,但在下面的代码验证中发现,公式应该要乘以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()


代码验证:

03Y3EZ}BE0TR2OHWU{DI])2.png

   其中曲线A是代码计算的曲线,曲线B是由maxwell计算的曲线,可以看到这两条曲线的重合度非常高! 之后笔者对其他参数的线圈也进行过多次验证,也表现出了极高的重合度!


   结语:

   现在笔者可以说是集齐了电磁炮模拟器的所有拼图了。HAcoilgun这个模拟器已经有十多年的历史了,只是非常可惜代码没有开源,我们没办法知道其是如何计算的。 但是现在终于终于看到了曙光,新的模拟器即将要在kc诞生了!!!!

   最后在这里我非常感谢各位大佬的帮助! 尤其是三水大佬,对我帮助非常多。 sticker


参考文献:

1:   GitHub - laurium-labs/CoilGun.jl: Coil gun simulation to aid in coil gun design

2:根据磁感应强度曲线来计算磁阻炮的弹丸受力 - 科创网 (XXXXXXXXXXXX)

3:   线圈参数计算器(基于Wheeler公式计算电感量) - 科创网 (XXXXXXXXXXXX)

4:  你好,电磁炮(盒装)套件+书内购入口 - 科创网 (XXXXXXXXXXXX)

5:  行波加速器的仿真计算流程 - 科创网 (XXXXXXXXXXXX)

[修改于 5个月0天前 - 2024/06/24 18:19:39]

来自:物理高能技术 / 电磁炮
7
5
已屏蔽 原因:{{ notice.reason }}已屏蔽
{{notice.noticeContent}}
~~空空如也
gugugu 作者
5个月1天前 修改于 5个月1天前 IP:上海
933347

0I@C1SG_J$7Y6_9F6$`7]HD.png

在原项目里,或许是这里的公式2推导到公式3时候漏了个1/2 ??? 

引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
gugugu作者
5个月1天前 IP:上海
933353
引用托卡马克发表于2楼的内容
可以看看这篇论文

非常感谢!  

那么破案了,CoilGun.jl项目中的公式其实是论文里的公式2。令x=z+a,又有L=2a。那么换元后,这俩公式就是一样了。而且CoilGun.jl项目中的公式确实少乘了1/ 2。 


引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论

想参与大家的讨论?现在就 登录 或者 注册

gugugu
进士 学者 机友
文章
6
回复
118
学术分
1
2021/12/14注册,1天17时前活动
暂无简介
主体类型:个人
所属领域:无
认证方式:手机号
IP归属地:上海
文件下载
加载中...
{{errorInfo}}
{{downloadWarning}}
你在 {{downloadTime}} 下载过当前文件。
文件名称:{{resource.defaultFile.name}}
下载次数:{{resource.hits}}
上传用户:{{uploader.username}}
所需积分:{{costScores}},{{holdScores}}下载当前附件免费{{description}}
积分不足,去充值
文件已丢失

当前账号的附件下载数量限制如下:
时段 个数
{{f.startingTime}}点 - {{f.endTime}}点 {{f.fileCount}}
视频暂不能访问,请登录试试
仅供内部学术交流或培训使用,请先保存到本地。本内容不代表科创观点,未经原作者同意,请勿转载。
音频暂不能访问,请登录试试
支持的图片格式:jpg, jpeg, png
插入公式
评论控制
加载中...
文号:{{pid}}
投诉或举报
加载中...
{{tip}}
请选择违规类型:
{{reason.type}}

空空如也

加载中...
详情
详情
推送到专栏从专栏移除
设为匿名取消匿名
查看作者
回复
只看作者
加入收藏取消收藏
收藏
取消收藏
折叠回复
置顶取消置顶
评学术分
鼓励
设为精选取消精选
管理提醒
编辑
通过审核
评论控制
退修或删除
历史版本
违规记录
投诉或举报
加入黑名单移除黑名单
查看IP
{{format('YYYY/MM/DD HH:mm:ss', toc)}}