内燃机热力计算怎么用C语言编程?模板如下,求助。
#include "math.h"#include "stdio.h"
#define PI 3.1415926
double D,S,L,ge,n,Ne,gnum,ysb,Hu,Lo,M,R,P_SC,T_SC;
/*缸径、行程、连杆长、比油耗、转速、功率、气缸数、压缩比、低热值、理论空燃比、Weibe函数常数m、气体常数、进气门关闭时压力和温度 */
double m_T,m_P,m_a;
/*气缸温度、压力、瞬时过量空气系数 */
int m_CA,A_SC,A_CB,A_CE,A_EO,A_SO,A_EC;
double Pa,Ta,hs,P,V,T,CA,m,mf,nmd,Pe,mBo,mL,dXY;
double Cv();
double dV_dCA();
double dQw_dCA();
double dQB_dCA();
double U();
double V_CA();
double dU_dnmd();
double dT_Ys_dCA();
double dT_Pz_dCA();
double dT_Rs_dCA();
double dT_Hq_dCA();
double dT_dCA(double an);
void Calculate();
/* A编写各子函数程序*/
double Cv() /*求定容比热*/
{
}
doubledV_dCA() /*求dv/dφ*/
{
}
double V_CA() /*求气缸容积*/
{
}
double dQw_dCA() /*求dQw/dφ*/
{
}
double dQB_dCA() /*求dQB/dφ*/
{
}
double U() /*求u*/
{
}
double dU_dnmd()/*求du/dλ*/
{
}
double dT_Ys_dCA() /*压缩期*/
{
}
double dT_Pz_dCA() /*膨胀期*/
{
}
double dT_Rs_dCA() /*燃烧期*/
{
}
double dT_dCA(double an) /*求dT/dφ*/
{
CA=an*PI/180;
V=V_CA();
if(A_SC<an && an<A_CB) return dT_Ys_dCA();
if(A_CB<=an && an<=A_CE) return dT_Rs_dCA();
if(A_CE<an && an<=A_EO)return dT_Pz_dCA();
if(A_EO<an && an<=A_SO) /*换气过程不计算,线性赋值,避免零值 */
P=110000+(m_P[(int)A_EO]-110000)*(A_SO-an)/(A_SO-A_EO);
if(A_SO<an || an<A_EC)
P=110000-20000*(an>A_SO?an-A_SO:an-A_SO+720)/(A_EC-A_SO+720);
if(A_EC<=an && an<=A_SC) P=90000;
return 0;
}
void Calculate(void)
{
double Tpre,K1,K2,an;
int index;
Pe=30*4.0*Ne/(gnum*100000*n*S*PI*D*D/4);/*平均有效压力bar*/
mBo=Ne*ge/(30000000*n*gnum); /*单缸循环供油量kg */
CA=A_SC*PI/180; /*进气关闭时的角度转弧度*/
V=V_CA();/*进气关闭时角度下的气缸容积*/
P=P_SC;
T=T_SC;
index=(int)A_SC;
m_T=T;
m_P=P;
m=P*V/(R*T);/*进气关闭时角度下的气缸内工质质量*/
mL=m-0.01*mBo;/*进气关闭时角度下的气缸内空气质量*/
mf=m-mL;
Tpre=T;
an=A_SC+1;
do{
/*B 编写欧拉法求解常微分方程程序 */
}while(an!=A_SC+1);
}
void main(void)
{
int i;
FILE *fp;
D=0.11; /*发动机数据按各自的任务书输入 */
S=0.13;
L=0.21;
ge=236.0;
n=2400;
Ne=101568;
gnum=6;ysb=17; M=0.7;
Hu=41868000;
R=287.08;
Pa=101000; /*大气压力*/
Ta=300; /*大气温度*/
hs=(735.0+R)*Ta;/*大气焓值*/
P_SC=90000;
T_SC=313;
A_SC=216; /*进气门关闭*/
A_CB=350; /*燃烧开始*/
A_CE=410; /*燃烧结束*/
A_EO=484; /*排气门开启*/
A_SO=705; /*进气门开启*/
A_EC=15;/*排气门关闭*/
Lo=14.4;
for(i=0;i<720;i++)
{
m_P=0;
m_CA=i;
m_T=0;
}
Calculate();
/*C编写数据输出程序,计算结束后按顺序输出0-720转角的“缸压,温度”数据到outdata.txt文件 */
}
不难啊完全是 把 公司 翻译成 C 又没有用指针跳转的。。。 这是作业的干活吧……
页:
[1]