可能确实比maxwell来得快,但还是离不开那个过时的程序。 不过如果要确认其他的某些细节,就又得用回maxwell了
概述
该程序适用于使用半桥拓扑的多级磁阻炮(也可用于单级)。仿真计算 了弹丸受力,线圈电流,以及电容器电压变化等。核心算法基于行波加速器的仿真计算流程 - 科创网 (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这个表格文件里输入的。包含行选择数据,关于线圈的三种数据,关于电源的三种数据,关于弹丸的三种数据。
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.计算线圈的自感,电阻等数据,详见参考文献中 线圈参数计算器
2.计算线圈的互感部分见参考文献中《空心圆柱线圈的电感计算》 的使用等效圆环计算
三.仿真计算过程
1.计算线圈中轴线上的磁感应强度,详见参考文献中 根据线圈参数计算 磁感应强度分布曲线
2.计算单位电流下的弹丸受力 ,详见参考文献中 根据磁感应强度曲线来计算磁阻炮的弹丸受力
F=M*ΔΦ=M*ΔB*S
3.关于电压,电流,弹丸位置与速度相关的空间域方程 ,详见参考文献中的行波加速器的仿真计算流程
本程序的核心算法在这里,再次感谢coulson21大佬的贡献。 原文中是时域方程 ,即个变量是关于时间t的
微分方程。这样的缺点是整个加速时间在仿真前是不知道的,所以会预先设一个较大的Stop time 。所以改成了空间
域方程,因为,整个加速距离是确定的。
四.数据使用plt 显示出来。
XXXXt图表
这里显示线圈电流,弹丸受力,电容电压和速度的数据
2.命令行窗口数据
1.展示计算的线圈数据(依次为: 线圈编号,线圈匝数,自感(uh),电阻(mΩ) )
2.这里展示模拟结束后的弹丸速度和效率 结果
3.最后显示线圈时序
五.数据保存
在完成仿真后,程序会将 弹丸速度和效率结果 保存至mode.csv的最后result那列。
笔者在完成这次仿真后在maxwell中进行了验证,发现误差较小。
贴出maxwell与本程序的电流结果:可以看到一致性很高
贴出maxwell与本程序 的弹丸受力,电压,速度 结果:
maxwell文件如下:
最后:
本程序使用pyinstaller进行了打包,读者可以方便的移到自己的电脑运行。位置 在dist文件夹下。压缩文件放在回复区。
最后在这里我非常感谢各位大佬的帮助!
参考文献:
1. 行波加速器的仿真计算流程 - 科创网 (kechuang.org)
2.
3. 震撼!模拟器的最后一块拼图! 根据线圈参数计算 磁感应强度分布曲线! - 科创网 (kechuang.org)
4:根据磁感应强度曲线来计算磁阻炮的弹丸受力 - 科创网 (kechuang.org)
5: 线圈参数计算器(基于Wheeler公式计算电感量) - 科创网 (kechuang.org)
6: 你好,电磁炮(盒装)套件+书内购入口 - 科创网 (kechuang.org)