微型固体火箭发动机内弹道仿真软件
感谢Cim的帮助更正了一个参数,目前计算已经正常

可以使用freemat代替matlab,安装包只有17M
下载地址: http://sourceforge.net/projects/freemat/files/  
自己找最新版的安装(发帖时最新版是Freemat4)
打开freemat后,再打开burnsim.m,写好参数后按F5运行,耐心等待结果,1秒的燃烧大概要5秒来仿真

暂时只能输出P-t图,燃料可以自定义无限种
药柱形状只要你自己能搞出面积公式和体积公式,就能随便改
目前是按照端面+内孔燃烧配置。

使用方法:
在burnsim.m中配置以下参数:
%参数名                           单位             含义
d_nozzle_begin     = 3      % mm           喷嘴初始直径
nozzle_burn_speed  = 0      % mm/s     喷嘴烧蚀速率
d_hole(1)        =  3              % mm         药柱内孔径
D_outer        = 16                  % mm       药柱外径
N             = 0                             %          药柱能够燃烧的横断面数
L(1)        = 20                         % mm       药柱可燃部分长度(有几段可燃药柱,就填几段的长度之和)
prop         = 'KNDX'                   %          推进剂名称
ap           = 0.1                    % MPa       大气压

burnsim_propellant.m中设置推进剂密度

然后运行burnsim.m

推进剂自己放在burnsim_propellant.m中

运行结果
p-t.jpg


代码:

burnsim.rar
2.00k
RAR
25次下载


没装matlab的试试freemat

附画出燃速-压强图的代码:
%画出燃速-压强图

%绘图起点 点距 终点
p_start = 0.1
p_step  = 0.01
p_end   = 12
prop    = 'KNDX' %推进剂名称

x=(p_start:p_step:p_end);
for i=1:length(x);y(i) = burnsim_propellant(x(i),prop,'burnspeed');end
plot(x,y);
xlabel P(MPa)
ylabel r(mm/s)
grid on

计算燃料质量:
V_gram(1) * de
运行完后输入

2楼补充如何设置燃料
+500  科创币    虎哥   2010-12-20   还是鼓励一下。
来自 喷气推进
 
2010-12-20 15:13:05
1楼
不很懂程序  只有代码很无爱 能封装一下吗
折叠评论
加载评论中,请稍候...
折叠评论
warmonkey(作者)
2楼
在burnsim_propellant.m倒数第二个end上面添加
位置:
function result = burnsim_propellant( pressure , propname , argcname )

if( strcmp(propname,'KNSU'))
    
    if(strcmp(argcname,'vc'))
        result = 923;   % m/s      特征速度
    elseif(strcmp(argcname,'density'))
        result = 1.81;      % g/cm^3   密度
    elseif( strcmp(argcname, 'burnspeed'))                      
        a=8.263; n=0.319;      %          燃速系数
        result = a * pressure ^ n;
%燃速 r = a * pressure ^ n%          燃速指数
    else  
    end
%此处添加新燃料
end
end


要添加的代码
elseif( strcmp(propname,'你的燃料名称'))
    
    if(strcmp(argcname,'vc'))  % m/s      特征速度
           result = 特征速度 ;  %这里填入特征速度
    elseif(strcmp(argcname,'density'))
        result = 密度;      % g/cm^3   密度
    elseif( strcmp(argcname, 'burnspeed'))   %各个压力范围和燃速数据
        if    (pressure < 0.779) %编程语法类似C,自己填入参数
        a=你的数据; n= 0.619;      %          燃速系数
        elseif(pressure < 2.572)
        a=7.553; n=-0.009;      %          燃速系数
        elseif(pressure < 5.930)
        a=3.841; n=0.688;       %          燃速系数
        elseif(pressure < 8.502)
        a=17.20; n=-0.148;      %          燃速系数
        else  
        a=4.775; n=0.442;       %          燃速系数
        end%要更多个压力范围,就添加更多的elseif 但是必须保证最后是else。

        result = a * pressure ^ n;%燃速计算方法,压力是MPa燃速是mm/s
    else  
    end
折叠评论
加载评论中,请稍候...
折叠评论
2014-10-05 05:34:36
2014-10-5 05:34:36
3楼
楼主威武!
折叠评论
加载评论中,请稍候...
折叠评论

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

插入资源
全部
图片
视频
音频
附件
全部
未使用
已使用
正在上传
空空如也~
上传中..{{f.progress}}%
处理中..
上传失败,点击重试
{{f.name}}
空空如也~
(视频){{r.oname}}
{{selectedResourcesId.indexOf(r.rid) + 1}}
ID:{{user.uid}}
{{user.username}}
{{user.info.certsName}}
{{user.description}}
{{format("YYYY/MM/DD", user.toc)}}注册,{{fromNow(user.tlv)}}活动
{{submitted?"":"投诉"}}
请选择违规类型:
{{reason.description}}
支持的图片格式:jpg, jpeg, png