根据磁感应强度曲线来计算磁阻炮的弹丸受力
gugugu2024/06/18原创 磁阻研究 IP:上海
关键词
弹丸受力计算Maxwellpython

      最近看到一本神书《你好,电磁炮》。书中推导出了计算磁阻炮的弹丸受力公式。即F = M · ΔΦ 。(图1)

         Z{Y%6_3D8{H~5[P0V~ET$9Y.png

                                  图1:节选自013页

数据准备:

      从公式中可以知道我们需要获取两个数据,一是磁化强度M。二是圆柱两端面的磁通量之差ΔΦ

1:获取磁化强度M

     这部分比较容易,首先需要在maxwell里查询1010钢的磁化曲线。(图2)

                  [H9Q9S{2AIMSIQ0T65S}XY2.png

                      图2:1010钢的磁化曲线

    使用M=B/μ0-H,和这个B-H曲线就可以算出M的值



2.获取 圆柱两端面的磁通量之差ΔΦ


    Q@3~6~8Q$T`@KOUHM5}KV%Q.png

       ΔΦ = ΦR - ΦL,ΔΦ是圆柱两端面的磁通量之差。 磁通量这个数据较难直接获取,但是根据Φ=BS,只需在磁感应强度B上乘上S(这里指子弹的端面面积)。 所以现在我们需要知道 磁感应强度B的曲线。这里我们请出maxwell。

     在mawell里solutiontype选择eddy current,画出线圈,参数为线圈长度8,内径8.5,外径18,匝数100,激励电流200A。再画出一条lines放置在线圈的中轴线上。(图3)。  然后点analyzeAll计算,结果选择create fields report,geometry选择我们画的那条直线Polyline1,计算结果选Mag_B。 即可计算出 线圈中轴线上的磁感应强度B曲线(图4)


O5H{4WWEBBH0N`3PM0]8_AO.png

     图3:线圈参数

     

9P`5S{HP`3VLZUBDVG]X_C1.png

  图4:磁感应强度B曲线

      有了这条曲线,就很容易求出 ΔB即 圆柱两端面的磁感应强度之差,乘以S,即可求出ΔΦ。


编写程序与验证:

      好了,有了以上的数据就可以写个python程序来验证下了。程序放在文末附件。

这次使用的弹丸的参数为:直径8,长度10。使用给定的线圈和弹丸参数,通过程序计算的受力曲线(即Force curve A)如图5所示。 同时,我们可以用maxwell直接计算出受力曲线(即Force curve B),如图6所示。

BQ0$J%Z8R{(OW$`62U{%PSI.png

            图5:根据磁感应强度曲线 计算出的受力曲线A


FTVJ(6VUG_FQPD}0U2U9C5U.png

      图6:maxwell直接计算出的受力曲线B


    我们悲伤的发现,这俩曲线并不完全吻合,(不过抛开其他不谈,至少形状是对的 sticker

    这里非常感谢三水大佬的指导,修正我关于M计算的错误后,新的计算结果和仿真结果仍有差距,似乎偏小。。。

   



结语:

     F = M · ΔΦ ,这个公式计算出的弹丸受力大体上是正确的,但是想要用于磁阻炮的仿真计算上 还有待更进一步的研究。目前来说,用maxwell直接计算受力曲线 精度更高。


附件:

   1:python代码 -修改了关于M的错误

attachment icon calculate_F.py 3.43KB PY 13次下载


2:计算磁感应强度B曲线的maxwell文件,和给出的result文件

attachment icon calculate_B.aedt 293.47KB AEDT 1次下载

attachment icon Bx_8_8.5_18_100_200.csv 45.07KB CSV 5次下载

3:直接计算受力曲线的maxwell文件,和给出的result文件

attachment icon Fx_8_8.5_18_100_200__8_10.csv 1.74KB CSV 5次下载

attachment icon calculate_F.aedt 293.61KB AEDT 1次下载


参考文献:

1:你好,电磁炮                                                                                           ----潘永生,陶乐,刘虎编著


[修改于 5个月6天前 - 2024/06/18 23:49:08]

来自:物理高能技术 / 电磁炮
3
2
已屏蔽 原因:{{ notice.reason }}已屏蔽
{{notice.noticeContent}}
~~空空如也
三水合番
5个月6天前 修改于 5个月6天前 IP:四川
933111

仿真的结果和 F=M*ΔΦ 计算的结果的差别,是因为计算中假设了“弹丸均匀一致磁化”,而仿真结果中并不是这样。仿真结果里是,弹丸离线圈近的时候磁化强度高,远的时候磁化强度低。

“弹丸均匀一致磁化”需要整个弹丸都处于深度磁饱和的状态。这需要线圈产生的磁场很强。可以试试在仿真里给电流加个零,这种情况下计算结果应该就和仿真结果基本一致了。

引用
评论(3)
1
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
三水合番
5个月6天前 修改于 5个月6天前 IP:四川
933123

回复1楼评论中的内容:

我程序的计算是对弹丸区域进行了细分的,分割了100份,也遵循了弹丸离线圈近的时候磁化强度高的现实。。。

这个细分是不对的。弹丸上某个点的磁感应强度,不仅取决于线圈的磁场强度,还取决于弹丸上其他部分的磁化强度。你细分的方式,是考虑不到弹丸各点之间的相互影响的(也可以称之为“弹丸导磁”)。不过你的主要问题应该不是这个,因为这个问题会导致计算结果偏小。


现在只能怀疑是磁化曲线有问题,因为到2.4T后磁化数据是缺失的,超过的部分是外插的结果(线性增长)。电流加个0后,算出的磁导为20T,远大于通常说的深度磁饱和。。。。。

这个是你的主要问题,但是具体出问题的点和你想的不太一样。问题在于你和磁化强度求错了。磁感应强度(B),磁场强度(H),磁化强度(M)之间的关系是 $B=\mu _0(H+M)$。M应该等于B/μ0-H,而你用的是“M=B/μ0”。如果你用M=B/μ0-H,以及maxwell里的B-H曲线,你会发现M在比如B=2T以后,就是一条水平线了(水平线意味着不会出现电磁力异常升高),也就是磁饱和。

关于磁饱和,你应该是被“饱和磁感应强度”这个词给误导了。磁感应强度B实际上是永远不会饱和的,铁芯里的磁感应强度可以升到任意高,几十几百T都可以,只有磁化强度M会饱和。参考这篇帖子以及我在下面的回复:

XXXXXXXXXXXXXXXXXXXXXXXX/t/85224 


引用
评论(5)
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
gugugu作者
5个月6天前 IP:上海
933125
引用三水合番发表于2楼的内容
回复1楼评论中的内容:我程序的计算是对弹丸区域进行了细分的,分割了100份,也遵循了弹丸离线圈近的时...

哦哦哦,我懂了!maxwell里的给的是B-H曲线, 所以这条曲线后面线性增长完全是因为H在线性增长!!   而我错误的以为这条是M*μ0-H 曲线。  非常感谢您的帮助,我去修改下程序。

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

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

gugugu
进士 学者 机友
文章
6
回复
118
学术分
1
2021/12/14注册,6时6分前活动
暂无简介
主体类型:个人
所属领域:无
认证方式:手机号
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)}}