方进小侯爷 发表于 2015-6-28 22:58:34

内燃机热力计算怎么用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文件 */

}


祥云飞鱼 发表于 2015-6-28 23:45:10

不难啊完全是 把 公司 翻译成 C 又没有用指针跳转的。。。

一点一点来 发表于 2015-6-29 01:45:20

这是作业的干活吧……
页: [1]
查看完整版本: 内燃机热力计算怎么用C语言编程?模板如下,求助。