机械必威体育网址

标题: 内燃机热力计算怎么用C语言编程?模板如下,求助。 [打印本页]

作者: 方进小侯爷    时间: 2015-6-28 22:58
标题: 内燃机热力计算怎么用C语言编程?模板如下,求助。
#include "math.h"( x0 y! U( k9 K* L5 y% ]
#include "stdio.h"
' i8 \; P8 U3 q( M  f#define PI 3.1415926) `. R! t8 C3 b: \5 [
1 e/ d' t' i3 c& A$ |" I
double D,S,L,ge,n,Ne,gnum,ysb,Hu,Lo,M,R,P_SC,T_SC;
" e: U9 E' k" T9 Q  q/*缸径、行程、连杆长、比油耗、转速、功率、气缸数、压缩比、低热值、理论空燃比、Weibe函数常数m、气体常数、进气门关闭时压力和温度 */% Q6 }7 Z+ I9 n
        double m_T[720],m_P[720],m_a[720];
; x# P% p' J: U+ z3 l% A$ c: @/*气缸温度、压力、瞬时过量空气系数 */
0 V  t0 j, u" K5 D2 ?& L- q        int m_CA[720],A_SC,A_CB,A_CE,A_EO,A_SO,A_EC;
( N7 \# B# a' i8 b" z8 |7 _        double Pa,Ta,hs,P,V,T,CA,m,mf,nmd,Pe,mBo,mL,dXY;
0 d' n- v5 N/ e6 V5 a        double Cv();
0 z0 a  e1 b+ I8 w8 _, c) X# c        double dV_dCA();
$ D1 Y; ^' {4 q9 @        double dQw_dCA();
% A: D5 }- D  R% H$ j5 d, h2 ^        double dQB_dCA();9 m1 _3 Z: H1 d8 Z' N: _8 n  a9 P- ^
        double U();
6 w( `7 b+ _: E4 n' q6 z# u  t' b        double V_CA();
; h, v- V$ L  ~9 v        double dU_dnmd();' Y0 ~2 v# S' h* L  m
        double dT_Ys_dCA();
6 u! e1 o! ~* B. q! W, ?/ M        double dT_Pz_dCA();
: l5 a8 i" C9 b0 c4 K9 ^        double dT_Rs_dCA();! D! _/ |3 F9 k7 v6 w2 X1 q" F
        double dT_Hq_dCA();2 T1 w9 C& J: B6 r; `/ D
        double dT_dCA(double an);2 u( t2 L  P/ v9 q
        void Calculate();
3 }6 x0 U% J: a  j) K9 }1 a
3 W: j& C% H' K+ T% A( v/* A编写各子函数程序*/
1 A4 g  d" w- o2 ]  j1 h& j        double Cv() /*求定容比热*/% \" {7 u' r- C+ O2 U% _
{
1 Y: Q* G9 g/ e/ H% H6 v  g7 O9 H+ g) A3 X; j0 b. ]8 E
}
: x. u( W/ H# P5 f+ N( f/ i" @2 }  h

4 W! s, W$ u' ^. i" `+ ^double  dV_dCA() /*求dv/dφ*/
0 s" n0 q, P$ O/ }- B" s* F* B: m! {) j{
/ z0 ^1 a! t1 M1 t; n  w( a9 z/ A- a. U: r( v
}- m, l: r% R: ^) A/ p1 ]
6 w) w. l! q; `
2 h5 Z! |2 _6 `4 Y0 [& h
double V_CA() /*求气缸容积*/
0 j! K/ {4 J9 [0 o# o2 T  F{! s& F- Z. J& ]! ?/ h* S
5 ^# a6 u+ i$ X* z
}
7 l& C" n; h5 E0 Z: I4 y% W- f8 }- n* E8 \, Z+ D

* }2 |$ |; _" H; ?3 m: z& Hdouble dQw_dCA() /*求dQw/dφ*/
5 N& }) N) ]0 p: P( o  P8 w{) F  r1 Q* S2 t) d- X
. L: e. g( D- z( X" w( |
}
# G. C1 R) }) W2 O( O  O' f/ Q' ]7 c" C6 I: p, f

& h# ~, s( i0 pdouble dQB_dCA() /*求dQB/dφ*/# l- P  R9 A% w$ v# e% [: J
{) x0 ~; b9 q3 y
( P, q& L; h$ ]
}6 F/ X0 `. ]2 t) @! F9 w

2 Q1 }9 q  L/ E% x# G+ n, V" g4 R0 K3 u  [" W
double U() /*求u*/
9 |; a( ]5 D: `+ j: G! V{9 G/ c9 x" ~! W8 S8 `- s3 z% l0 V
" L1 e0 Q' Y" I. d
}
8 H6 \  \, G. |' u6 q& E
: L/ l5 k" o! t% C3 X7 Z6 \5 v% y% L$ }
double dU_dnmd()  /*求du/dλ*/
4 z( m9 Q& X5 T1 Y& e2 z; Y; T0 R{
- a8 h6 ~* u% o! A1 E, B5 v! @9 a0 x! L. G; G& J) M. |
}
( a( U7 b# o4 x2 `8 e+ U: k2 P, N) g5 E" i$ h
double dT_Ys_dCA() /*压缩期*/
0 A& Y& ?. z# E{
% r0 y0 x! p9 }6 `$ ?. v; l; g  K$ S3 T7 L% I& g2 M8 J0 N2 @5 S
}
9 v3 V' @4 U2 d& ~+ |  O! F/ V- U
+ \& c2 a; Z9 u/ h" r  {. b
0 L" x7 S% l2 k: c# E& Z: k8 Rdouble dT_Pz_dCA() /*膨胀期*/5 k. `- X* c, W+ p" f
{
$ o3 |. n1 z- I& d$ [5 q0 v4 t( w4 y! Q+ x9 X" A5 `
}* N7 x$ U, @! C; x+ X
  m9 e6 E* l+ h: r
* x  r: ]7 ?* Q
double dT_Rs_dCA() /*燃烧期*/& Z  ]7 }$ I' x2 Y- r+ K# C' r
{0 j4 u+ |) P& P/ i) t4 p; o+ j
. \( r; d5 c  a- k, c' E$ g
}. o* x# T' \. U- k1 W# u

8 e4 |0 y) Z8 j+ @! ?  p# e0 C* P, Y' X2 v) Z
double dT_dCA(double an) /*求dT/dφ*/4 [5 b4 R9 M- k5 R" _9 K
{
' b: @6 L% O% r" a        CA=an*PI/180;
1 N) R% T9 S; F, R7 ~4 u: J1 k        V=V_CA();+ L% J8 g+ v; _! t# P2 N
        if(A_SC<an && an<A_CB)   return dT_Ys_dCA();' b' ?# U% V9 A* U/ U
        if(A_CB<=an && an<=A_CE) return dT_Rs_dCA();
6 L7 K$ y+ L5 f: C  y        if(A_CE<an && an<=A_EO)  return dT_Pz_dCA();$ \/ e2 s4 W" t. X( L4 J
        if(A_EO<an && an<=A_SO)    /*换气过程不计算,线性赋值,避免零值 */- o  I7 Q! |1 B7 {/ _. n8 j( B
                P=110000+(m_P[(int)A_EO]-110000)*(A_SO-an)/(A_SO-A_EO);
6 A  @4 h, g9 y8 V    if(A_SO<an || an<A_EC) / |" \. @, H4 I+ _# W
                P=110000-20000*(an>A_SO?an-A_SO:an-A_SO+720)/(A_EC-A_SO+720);4 r' _4 V- x% I4 N% f7 S2 B
        if(A_EC<=an && an<=A_SC) P=90000;
1 k$ S. x$ t$ D) A/ I& z        return 0;
1 z" h2 [! W$ D- p. O% l}# o# ]/ U; N. ^6 {9 m+ N

! O$ T; Z5 l0 z0 |3 v% zvoid Calculate(void)
5 a, v" ]3 B2 p{) A3 i& I) N$ O. \) U
    double Tpre,K1,K2,an;0 D; q* x) x6 L5 }+ u+ y+ |& @
    int index;1 c8 a6 g6 Q: }5 Y* c
        Pe=30*4.0*Ne/(gnum*100000*n*S*PI*D*D/4);  /*平均有效压力bar*/" C( ~1 S4 j, ^
        mBo=Ne*ge/(30000000*n*gnum);   /*单缸循环供油量kg */- v# ?! _4 b3 U' N- Y0 b6 X# t
        CA=A_SC*PI/180; /*进气关闭时的角度转弧度*/: s! ]' _$ L- \) v
        V=V_CA();/*进气关闭时角度下的气缸容积*/# y5 X4 d0 @4 R. T
        P=P_SC;1 ]6 S' B; q! e2 L" q) F: h+ y: y% ^
        T=T_SC;
* C  K- q  k6 ~: q        index=(int)A_SC;
; J5 ?: p; R' ]8 a+ u' H' R: N        m_T[index]=T;3 U  D( w. C2 u; s5 X3 n1 D! ~
        m_P[index]=P;. ^" T* O& z' u3 V/ p
        m=P*V/(R*T);/*进气关闭时角度下的气缸内工质质量*/5 A% |& S8 i2 ~2 s8 ^: p; {5 l
        mL=m-0.01*mBo;/*进气关闭时角度下的气缸内空气质量*/5 f+ l1 c6 P- i: u
    mf=m-mL;
  x' N! W$ w0 w! h/ `        Tpre=T;7 g! @8 _* R! `' n. U
        an=A_SC+1;
# S. r9 B) N! _$ O/ r' x$ \
7 u+ C: G0 z% C7 ^  f        do{
* Q3 _  j, |: Z' [# w7 p" W% r  h& X' _  @  F
  /*B 编写欧拉法求解常微分方程程序 */( _0 S4 K$ {( l# a0 v- q6 z
8 B' j- ~" E6 |0 Q) y
        }while(an!=A_SC+1);) e  `$ g  D+ l4 @1 d2 ^# t+ z8 s- }
}
/ N; y, a7 B, B: j) H4 b; f$ L* @3 R8 J( Z
void main(void)1 b1 t2 U0 {. G: X4 `4 ?8 H& H( ~
{8 d* R8 C0 d3 R% V) f/ K" E5 U
        int i;, a7 j, `" J2 G8 q+ ]
        FILE *fp;
9 p5 H$ t6 R5 {9 u( a' n1 d2 J9 b2 X        D=0.11;   /*发动机数据按各自的任务书输入 */2 w5 f  J3 Q6 Z" v1 ^  E
        S=0.13;# |3 y$ \/ \& v3 g' {! D
        L=0.21;
9 m' b3 \$ V: y: n9 Z        ge=236.0;
: B5 R- l' U* {7 k: l0 H        n=2400;) \+ {3 P4 b6 y
        Ne=101568;
+ _; e! r1 \; ]0 z        gnum=6;  ysb=17;   M=0.7;
% y* c* S4 S  Y# r        Hu=41868000;
0 ^* @2 d0 h9 A1 O1 O5 I% ~        R=287.08;
" N- D7 |7 p# {        Pa=101000; /*大气压力*/# l5 ?  R$ o6 A! N% ?9 q, g2 y& G4 R
        Ta=300;    /*大气温度*/
7 ^$ n) ^6 Z1 l# `! c% S# f        hs=(735.0+R)*Ta;  /*大气焓值*/
6 \, \8 @( X! d' X8 \$ n        P_SC=90000;6 w8 [: a% s' V4 u# p4 R
        T_SC=313;
: }  c9 s! r/ L' {( b4 \, p5 q! ^1 O/ B' U2 O% e
        A_SC=216; /*进气门关闭*/
2 t) ?) Z" z7 T9 P% o1 [# b        A_CB=350; /*燃烧开始*/. J6 P# k, t; n/ S
        A_CE=410; /*燃烧结束*/) y- m" o8 i  w( r# R! a( u
        A_EO=484; /*排气门开启*/
4 a$ i/ ?! V7 l4 w  ?1 k- I& h        A_SO=705; /*进气门开启*/
0 a6 s6 f' ~# }" h# |  H" Y        A_EC=15;  /*排气门关闭*/
( ]( d9 g6 d/ m" t' L) W. _% h
        Lo=14.4;% a4 f' c9 _- {. ~3 U7 }  P
0 u  S. u3 i- N1 P/ ]) _* [
    for(i=0;i<720;i++)
; `; \/ k  w2 P        {
+ [2 K5 {# r3 T0 U. k2 _                m_P[i]=0;, F4 f3 [: `' Q# T1 `8 ]" \
                m_CA[i]=i;7 w8 B. G  N, S5 h% p, M% `
                m_T[i]=0;
: |* c& F" `$ O- R# ~9 `5 G  G        }$ S+ d. H6 U( g, O  B: `; S5 m
7 U9 a+ w9 F4 J8 Q) ?: s6 C
        Calculate();
2 M5 f0 [5 V  P* O2 }! y# K7 i) y. u: \
    /*C编写数据输出程序,计算结束后按顺序输出0-720转角的“缸压,温度”数据到outdata.txt文件 */7 B8 Q6 B5 H/ P: X

: a1 Q. p# _$ D, j( f, h" f5 k}
8 o  i1 @& T# f+ a
/ f- V( Y4 C5 N8 W2 F; U: q4 _0 R8 F7 c# q# c1 |9 [

作者: 祥云飞鱼    时间: 2015-6-28 23:45
不难啊  完全是 把 公司 翻译成 C 又没有用指针跳转的。。。
作者: 一点一点来    时间: 2015-6-29 01:45
这是作业的干活吧……




欢迎光临 机械必威体育网址 (//www.szfco.com/) Powered by Discuz! X3.4