微型固体火箭发动机内弹道仿真软件
warmonkey2010/12/19喷气推进 IP:广东
感谢Cim的帮助更正了一个参数,目前计算已经正常

可以使用freemat代替matlab,安装包只有17M
下载地址: XXXXXXXXXXXXXXXXXXXXXt/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

代码:

attachment icon burnsim.rar 1.57KB RAR 139次下载

没装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 还是鼓励一下。
来自:航空航天 / 喷气推进
4
 
已屏蔽 原因:{{ notice.reason }}已屏蔽
{{notice.noticeContent}}
~~空空如也
xj198398xujing
14年2个月前 IP:未同步
269931
不很懂程序  只有代码很无爱 能封装一下吗
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
warmonkey作者
14年2个月前 IP:未同步
269972
在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
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
YID2014
10年4个月前 IP:美国
724197
楼主威武!
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论

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

所属专业
上级专业
同级专业
warmonkey
学者 机友
文章
363
回复
8002
学术分
12
2008/10/11注册,1天9时前活动

Cubesat

主体类型:个人
所属领域:无
认证方式:手机号
IP归属地:未同步
插入公式
评论控制
加载中...
文号:{{pid}}
投诉或举报
加载中...
{{tip}}
请选择违规类型:
{{reason.type}}

空空如也

加载中...
详情
详情
推送到专栏从专栏移除
设为匿名取消匿名
查看作者
回复
只看作者
加入收藏取消收藏
收藏
取消收藏
折叠回复
置顶取消置顶
评学术分
鼓励
设为精选取消精选
管理提醒
编辑
通过审核
评论控制
退修或删除
历史版本
违规记录
投诉或举报
加入黑名单移除黑名单
查看IP
{{format('YYYY/MM/DD HH:mm:ss', toc)}}