磁阻研究
磁阻研究
文号933504
1162
4
收藏(2)

[python] 多级磁阻炮模拟器【开源】

中文摘要

半桥拓扑磁阻炮 仿真程序

关键词

仿真python


概述

    该程序适用于使用半桥拓扑的多级磁阻炮(也可用于单级)。仿真计算 了弹丸受力,线圈电流,以及电容器电压变化等。核心算法基于行波加速器的仿真计算流程 - 科创网 (kechuang.org) 中开源的算法,在这里非常感谢coulson21 大佬。


此代码考虑或计算了以下效果:

    1.线圈参数

         线圈自感

         线圈互感

         线圈电阻

   2.线圈中轴线上的磁感应强度

   3.弹丸受力 和 弹丸的感应电动势

   4.关于电压,电流,弹丸位置与速度相关的空间域方程(为了模拟的方便放弃使用时域方程的方式)


本仿真最重要的几条近似如下

    1、 磁饱和近似,即动子处于磁饱和状态,磁化强度在整个加速过程中保持不变。 (如,1010钢 饱和磁导设为2T, 磁化强度M=2T/u0  ) (饱和磁导参数可以在mode.csv中修改)



本仿真使用的线圈开启/关闭 策略  --使用位移控制模式

    

    1.每级线圈的导通持续距离pw ,这个数据需要在 下面的coil_layout 格中输入。(对于单阵列来说pw=就是线圈长度+隔板长度)

    2.线圈关闭时机: 在弹丸前端到达线圈中心时关断(这么做有利于防止反拉,目标是让弹丸中心和线圈中心重合时电流降到0)。通过pw和线圈关闭时机 可以算出 线圈导通时刻 td 。


程序的结构与使用方法

    大致可以分为四部分组成,即 1.从mode.csv文件中进行数据输入 ,XXXXlculator_XXXXXX的模块计算线圈参数 3.仿真计算 4.数据使用plt 显示出来。

    一.从mode.csv文件中进行数据输入

    整个项目的数据是从mode.csv这个表格文件里输入的。包含行选择数据,关于线圈的三种数据,关于电源的三种数据,关于弹丸的三种数据。

                 5K`YR%E189SSOA463[6E278.png

   1.行选择数据modei

        这个数据的目的是 选择图表中的某行数据来进行仿真,位置在表格A2 。如上图中的modei =4 代表取 行编号为4的整行数据进行仿真计算


   2.线圈数据

       包括coil_layout,L_coil1,Inner_diameter 这三个数据

        XXXXil_layout 这是线圈的主数据,形如这样: [["Cu",0.38,8,300,100,3,9]]

           每个列表内的数据依次为 【漆包线材料Cu/Al,漆包线直径,线圈长度,匝数start,匝数end,线圈数量,脉宽pw】。

           其中匝数start,匝数end 代表了匝数的线性递减区间。 如 ["Cu",0.38,8,300,100,3,9] 代表 coil0的匝数为 300, coil1的匝数200 ,coil2的匝数100。

           (其实也可以选择使用外径进行线性递减,type选1)


        2.L_coil1 线圈中的隔板大小,比如1,代表 1mm的隔板


        XXXXner_diameter是线圈内直径(一般亦为炮管外径),如8.5 ,代表8.5mm的内径(适配 内8.1,外8.5的不锈钢炮管)

   

    3.电源数据

        1.   R_pow :电容内阻 如10毫欧

        2.   U00  :电容初始电压 如460V

        3.   C00 :电容值,如4700uf


    4.弹丸数据

        XXXXug_R :弹丸外径 如8mm

        XXXXug_length : 弹丸长度 如12mm

        XXXXug_m : 弹丸长度 如 5.5g

        3.v0  :弹丸初始速度 如1m/s (注意由于使用空间域方程 ,初始速度不可填0)


    二.calculator_XXXXXX的模块计算线圈参数 

        1.计算线圈的自感,电阻等数据,详见参考文献中 线圈参数计算器 

                JF@%$]FYN`T@MQG(T_2H0RH.png


        2.计算线圈的互感部分见参考文献中《空心圆柱线圈的电感计算》 的使用等效圆环计算

6E`C]LP5}J5`]HNC00TB9_E.jpg


    三.仿真计算过程

        1.计算线圈中轴线上的磁感应强度,详见参考文献中 根据线圈参数计算 磁感应强度分布曲线 

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


        2.计算单位电流下的弹丸受力  ,详见参考文献中 根据磁感应强度曲线来计算磁阻炮的弹丸受力 

                           F=M*ΔΦ=M*ΔB*S


        3.关于电压,电流,弹丸位置与速度相关的空间域方程 ,详见参考文献中的行波加速器的仿真计算流程

                       本程序的核心算法在这里,再次感谢coulson21大佬的贡献。 原文中是时域方程 ,即个变量是关于时间t的

              微分方程。这样的缺点是整个加速时间在仿真前是不知道的,所以会预先设一个较大的Stop time 。所以改成了空间

              域方程,因为,整个加速距离是确定的。


    四.数据使用plt 显示出来。

         XXXXt图表

               这里显示线圈电流,弹丸受力,电容电压和速度的数据

           DO4TM59@U]{HYF[``8T`@QY.png

       2.命令行窗口数据

           1.展示计算的线圈数(依次为: 线圈编号,线圈匝数,自感(uh),电阻(mΩ)  )


              @220J{76]73T`ODP8ZCXW9P.png


           2.这里展示模拟结束后的弹丸速度和效率 结果

                ][F8J_]Y$Z4_EW0~C6(6VPL.png


          3.最后显示线圈时序

               VE]_@QLS1@8$YX}BHX)O{3N.png


    五.数据保存

       在完成仿真后,程序会将 弹丸速度和效率结果 保存至mode.csv的最后result那列。 

          GB{NUV(M)L}`@[}4N~O%]78.png

     笔者在完成这次仿真后在maxwell中进行了验证,发现误差较小。

     贴出maxwell与本程序的电流结果:可以看到一致性很高

                     EFJMVXP07HMTAQ[P}X[_GBI.png


     贴出maxwell与本程序 的弹丸受力,电压,速度 结果:

              @3DYRYFBV8`PF(O2)J{{HYK.png

   

     maxwell文件如下:

attachment icon 8_49.aedt 1.46MB AEDT 16次下载

最后:

           本程序使用pyinstaller进行了打包,读者可以方便的移到自己的电脑运行。位置 在dist文件夹下。压缩文件放在回复区。


           最后在这里我非常感谢各位大佬的帮助! 


参考文献:

    1. 行波加速器的仿真计算流程 - 科创网 (kechuang.org)

    2.

attachment icon 空心圆柱线圈的电感计算_吴素文.pdf 2.97MB PDF 11次下载 预览    

   3.    震撼!模拟器的最后一块拼图! 根据线圈参数计算 磁感应强度分布曲线! - 科创网 (kechuang.org)

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

   5:   线圈参数计算器(基于Wheeler公式计算电感量) - 科创网 (kechuang.org)

   6:  你好,电磁炮(盒装)套件+书内购入口 - 科创网 (kechuang.org)





[修改于 7 天前 - 2024/06/26 23:42:46]

4
已屏蔽 原因:{{ notice.reason }}已屏蔽
{{notice.noticeContent}}
~~空空如也
440Nx
8天2时前 IP:广东
933506

可能确实比maxwell来得快,但还是离不开那个过时的程序。 sticker 不过如果要确认其他的某些细节,就又得用回maxwell了

rb-sama
7天22时前 IP:湖北
933512

Figure_1.png

膜拜大佬,已经验证成功,其中xls作为输入数据 指定Number和各线圈匝数和外形尺寸

我的电脑19-13900K 64GDDR4RAM 大概运行5秒左右可以出结果

这个比mxwl速度确实快多了,同样大小的数据,mxwl为了得出结果10us的步长运行一次二十分钟以上

如果能有类似HACoilgun的GUI,将会大大提高调试的效率

甚至更进一步想起之前和@三水合番大佬讨论过的,利用ML实现对指定参数条件下的最佳效率调优

@托卡马克大佬发过一篇计算线圈长径比的文章,

在特定储能和长度的先决条件下,固定初速度的整机效率是固定的。

这个模拟器可能可以和托卡大佬的理论相互验证,楼主的工作让社区磁阻炮理论的更完善了

严重赞扬 sticker


gugugu作者
7天9时前 修改于 7天1时前 IP:上海
933537

开源地址:

gitee: coilgun: 半桥磁阻模拟器 (XXXXXXXXX)


注意,放在这里的代码不保证是最新的。

1.0.3版本:

attachment icon coilgun.zip 116.98MB ZIP 15次下载


coulson21
6天10时前 IP:安徽
933570

非常棒的工作!用位置做自变量是个很好的主意,我时域方程写顺手了,没有意识到这个问题哈哈哈;

主体信息
主体类型:个人
所属领域:无
认证方式:手机号
IP归属地:上海
 文章分类
 内容统计
2024年06月
5 篇
文件下载
加载中...
{{errorInfo}}
{{downloadWarning}}
你在 {{downloadTime}} 下载过当前文件。
文件名称:{{resource.defaultFile.name}}
下载次数:{{resource.hits}}
上传用户:{{uploader.username}}
所需积分:{{costScores}},{{holdScores}}下载当前附件免费{{description}}
积分不足,去充值
文件已丢失

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

空空如也

加载中...
回复
设为精选取消精选
评学术分
鼓励
编辑
查看历史
通过审核
移动文章
加入收藏取消收藏
退修或删除
违规记录
投诉或举报
加入黑名单移除黑名单
查看IP
{{format('YYYY/MM/DD HH:mm:ss', toc)}}
回复
加入收藏取消收藏