概述
该程序适用于使用半桥拓扑的多级磁阻炮(也可用于单级)。仿真计算 了弹丸受力,线圈电流,以及电容器电压变化等。核心算法基于行波加速器的仿真计算流程 - 科创网 (kechuang.org) 中开源的算法,在这里非常感谢coulson21 大佬。
此仿真考虑或计算了以下效果:
1.线圈参数
线圈自感
线圈互感
线圈电阻
2.线圈中轴线上的磁感应强度
3.弹丸受力 和 弹丸的感应电动势
4.关于电压,电流,弹丸位置与速度相关的空间域方程(为了模拟的方便放弃使用时域方程的方式)
本仿真最重要的几条近似如下
1、 磁饱和近似,即动子处于磁饱和状态,磁化强度在整个加速过程中保持不变。 (如,1010钢 饱和磁导设为2T, 磁化强度M=2T/u0 ) (饱和磁导参数可以在mode.csv中修改即 饱和磁导 那列 )
本仿真使用的线圈开启/关闭 策略 --使用位移控制模式
1.每级线圈的导通持续距离pw 。(对于单阵列来说pw=就是线圈长度+隔板长度)
( pw 可以在mode.csv中修改即 脉宽 那列)
2.线圈关闭时机: 在弹丸前端到达线圈中心时关断(这么做有利于防止反拉,目标是让弹丸中心和线圈中心重合时电流降到0)。通过pw和线圈关闭时机 可以算出 线圈导通时刻 td 。
( 线圈关闭时机 可以在mode.csv中修改即 关断策略偏移 那列)
程序的结构与使用方法
大致可以分为四部分组成,即 1.从mode.csv文件中进行数据输入 ,2.calculator_gui.py的模块计算线圈参数 3.仿真计算 4.数据使用plt 显示出来。
零.程序初始界面
通过点击第四行右边向下箭头选择需要模拟的数据。然后点开始模拟即可。
一.从mode.csv文件中进行数据输入
整个项目的数据是从mode.csv这个表格文件里输入的。
线圈参数部分
从漆包线材料到关断策略偏移的参数是线圈参数,可以填多行,数据空缺时会自动从上一行中补全。
漆包线材料(CuorAl) 可以填0或1,填0为铜线,1为铝线
漆层厚度(um) ,即漆包线的漆层厚度 ,单位um ,通常为30
漆包线线径(mm) ,即漆包线的直径,比如8mm铜线就填 8
线圈长度(mm) ,即本行起始线圈的长度,1cm线圈 就填10
模式选择,填0:表示匝径start里填充的是匝数 ; 1:表示匝径start里填充的是外径 ;2 启用段衰减,使本行起始线圈厚度衰减,衰减系数填在匝径start列
匝径start ,即本行起始线圈的匝数或外径值 填0时 启用匝数延续功能,填0处的匝数会从上一级延续过来
匝数幂衰减系数 ,这里 幂衰减的含义是:级数每翻一倍,匝数变为x倍。 通常默认0.8
线圈数量 ,表示本行的线圈数量
起始脉宽 , 表示本行的起始脉宽,可以填0
最大脉宽(pw),表示本行使用的最大的导通持续距离pw
脉宽幂递增系数 ,表示本行线圈内的脉宽数据的增加程度 ,如果数字越大,本行起始线圈的脉宽越小(本行末尾线圈的脉宽固定为脉宽(pw))
(若起始脉宽填0则使本行末尾的线圈脉宽为最大脉宽,而其他线圈的脉宽按脉宽递增系数计算 ;
若起始脉宽不为0时,后续线圈的脉宽通过脉宽递增系数计算,当值超过最大脉宽时替换为最大脉宽)
关断策略偏移(mm) 表示 线圈关闭的时机偏移程度,填0表示在弹丸前端到达线圈中心时关断 ,填正数延迟关断
非线圈参数部分
非线圈参数部分均为单行数据
隔板长度(mm) ,表示级间使用的隔板大小,通常为1mm居多
支架直径(mm) ,即炮管直径也相当于线圈的内径 ,单位mm
外部阻抗(esr) ,基本等于电容内阻,单位mΩ
电容耐压值(V) ,半桥拓扑使用的电容的电压值,单位V
电容值(uf) , 半桥拓扑使用的电容的电容值,单位uf
子弹直径(mm) , 使用的定位销直径,单位mm
子弹长度(mm) ,使用的定位销长度 。 填0时进行钢珠模拟
子弹质量(g) ,使用的定位销的重量,单位g 。填0时自动计算
初始速度(mps) ,子弹初始速度,一般为0居多
饱和磁导(T) , 即饱和磁感强度 ,使用q235的定位销时填2,未淬火加硬的q235钢珠填2 , 淬火加硬的的钢珠未知
阵列顺序输入 ,普通半桥拓扑填[]即可, 半桥阵列请参考https://www.kechuang.org/t/90405
次要参数 ,这里的参数不太重要,通常默认即可。 其中受力系数(负反馈系数)是一个列表,以便对多个线圈分别控制,第0级通常填0.9,以使时序更稳定。 填小于1的值时进行负反馈调节,减少速度但提高稳定性
参数扫描说明
使用 [var_start,var_end,num] 切分参数 或使用 (var_0,var_1,var_2,var_3 ...) 枚举参数 来启用参数扫描功能。
参数扫描结果图中会标红离鼠标最近的点 ,右键点击后对其仿真
参数扫描结果图的横坐标是动能,纵坐标是最大电流。所以结果上是靠近右下角的点效果好(因为电流小动能大)
二.calculator_gui.py的模块计算线圈参数
1.计算线圈的自感,电阻等数据,详见参考文献中 线圈参数计算器
2.计算线圈的互感部分见参考文献中《空心圆柱线圈的电感计算》 的使用等效圆环法计算
三.仿真计算过程
1.计算线圈中轴线上的磁感应强度,详见参考文献中 根据线圈参数计算 磁感应强度分布曲线
2.计算单位电流下的弹丸受力 ,详见参考文献中 根据磁感应强度曲线来计算磁阻炮的弹丸受力
F=M*ΔΦ=M*ΔB*S
3.关于电压,电流,弹丸位置与速度相关的空间域方程 ,详见参考文献中的行波加速器的仿真计算流程
本程序的核心算法在这里,再次感谢coulson21大佬的贡献。 原文中是时域方程 ,即各变量是关于时间t的
微分方程。这样的缺点是整个加速时间在仿真前是不知道的,所以会预先设一个较大的Stop time 。所以改成了空间
域方程,因为整个加速距离是确定的。
四.数据使用plt 显示出来。
1.plt图表
这里显示行波动画,以及线圈电流,弹丸受力,电容电压和速度的数据
2. 会在目录下生成out_time.h 文件。 保存了时序结果以供单片机使用
五.数据保存
在完成仿真后,程序会将 弹丸速度和效率结果 保存至mode.csv的最后result那列。
笔者在完成这次仿真后在maxwell中进行了验证,发现误差较小。
贴出maxwell与本程序的电流结果:可以看到一致性很高
maxwell文件如下:
8_49.aedt
1.46MB
AEDT
98次下载
最后:
本程序使用pyinstaller进行了打包,读者可以方便的移到自己的电脑运行。位置 在dist文件夹下。压缩文件放在回复区。
最后在这里我非常感谢各位大佬的帮助!
参考文献:
1. 行波加速器的仿真计算流程 - 科创网 (kechuang.org)
2.
空心圆柱线圈的电感计算_吴素文.pdf
2.97MB
PDF
635次下载
预览
3. 震撼!模拟器的最后一块拼图! 根据线圈参数计算 磁感应强度分布曲线! - 科创网 (kechuang.org)
4:根据磁感应强度曲线来计算磁阻炮的弹丸受力 - 科创网 (kechuang.org)
5: 线圈参数计算器(基于Wheeler公式计算电感量) - 科创网 (kechuang.org)
6: 你好,电磁炮(盒装)套件+书内购入口 - 科创网 (kechuang.org)
200字以内,仅用于支线交流,主线讨论请采用回复功能。