ZZCjas作者
1年2个月前修改于 1年2个月前IP:湖北
946701
2楼

我写了一个可以辅助设计的代码,壁厚和卡簧槽强度都可以算,我不太擅长写工程代码,命名比较烂,请谅解

#include <iostream>
using namespace std;
const int _6061t6y=250;
/*
http://www.nakka-rocketry.net/pix/ftycht2.gif
6061-t6铝合金的屈服强度随温度变化的曲线近似于一个二次函数
25摄氏度时屈服强度为室温的100%,250摄氏度时即达到室温下屈服强度的约45%
即可根据初中数学知识得出6061t6铝合金屈服强度和材料温度的近似函数关系式等于
f(x)=-(11/10125)*((x-25)^2)+25,x∈[25,250] 
其中,f(x)是室温强度百分数百分号前的部分,x是材料温度 
经验证,这条拟合的函数曲线可以一定地吻合(150°前不太准,正在优化)实测强度曲线 
*/
double temp_yield(int x)//x即温度 
{
	return -1.0*(11.0/10125.0)*(x-25)*(x-25)+100;
}
double ye2shear(int ye)
{
	return 0.65*ye;
}//根据经验公式,金属材料剪切强度约为其屈服强度的50%~80%,为了冗余和安全起见,这里的系数取65%
//e_min=((D_i*P_max)/(F_s))*safe
double mine;
int D_inner;
double pmax;
int safe;
int temp;
double calc_e(int pmax,int di,double f_s,int safe)
{
	return ((1.0*di*pmax)/(f_s))*safe; 
}
double calc_c(int pmax,int di,double f_y,int safe)
{
	return (pmax*di)/(2*f_y/safe); 
}
int main()
{
	cout<<"固体火箭发动机壁厚及卡簧槽最大耐压计算器 v0.0.1(注:目前仅适用于无缝6061-T6铝合金壳体)\nBy ZZCjas(kcid:106216)\n";
	cout<<"请输入发动机壳体内径(mm):";
	cin>>D_inner;
	cout<<"\n请输入发动机最大工作压强(Mpa):";
	cin>>pmax;
	cout<<"\n请输入壳体工作期间最大温度(隔热良好的情况下为一般40~50摄氏度,最大取80摄氏度即可):";
	cin>>temp;
	if(temp>250||temp<25)
	{
		cout<<"\n温度不应超过定义域(25<=温度<=250)\n";
		return -1;
	} 
	cout<<"\n请输入安全系数:";
	cin>>safe;
	double tempye=1.0*temp_yield(temp)/100*_6061t6y;
	cout<<"\n\n计算结果:";
	cout<<"最小壁厚:"<<fixed<<calc_c(pmax,D_inner,tempye,safe)<<"mm"<<endl;
	cout<<"卡簧槽边缘距离壳体边缘距离:"<<fixed<<calc_e(pmax,D_inner,ye2shear(tempye),safe)<<"mm"<<endl;
	cout<<"注:卡簧槽深度最大为壳体厚度的1/2倍,卡簧槽的宽度最好为卡簧厚度的1.5倍,设计时请注意\n计算内容仅供参考\n"; 
	system("pause");
} 
评论
文号 / 946701

浪迹天涯
名片发私信
学术分 0
总主题 4 帖总回复 38 楼拥有证书:进士 机友 笔友
注册于 2025/01/15 10:09:25最后登录 2026/09/27 11:50:07
主体类型:个人
所属领域:无
认证方式:手机号
IP归属地:湖北

个人简介

暂未填写
笔记
{{note.content}}
{{n.user.username}}
{{fromNow(n.toc)}} {{n.status === noteStatus.disabled ? "已屏蔽" : ""}} {{n.status === noteStatus.unknown ? "正在审核" : ""}} {{n.status === noteStatus.deleted ? '已删除' : ''}}
  • 编辑
  • 删除
  • {{n.status === 'disabled' ? "解除屏蔽" : "屏蔽" }}
我也是有底线的