机械必威体育网址

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

作者: 方进小侯爷    时间: 2015-6-28 22:58
标题: 内燃机热力计算怎么用C语言编程?模板如下,求助。
#include "math.h"
' N, ?8 e. ]9 a#include "stdio.h"
- K! G& D! z6 l/ ?# O#define PI 3.1415926+ Q6 o/ e$ _& J. N3 R
, x; z$ v  h6 l' J8 j
double D,S,L,ge,n,Ne,gnum,ysb,Hu,Lo,M,R,P_SC,T_SC;
4 P& n$ [' T+ S2 j- d3 ?( J& ?$ v/*缸径、行程、连杆长、比油耗、转速、功率、气缸数、压缩比、低热值、理论空燃比、Weibe函数常数m、气体常数、进气门关闭时压力和温度 */, Q2 b7 K" i7 @2 t9 a) b8 L
        double m_T[720],m_P[720],m_a[720];% Z  _! G9 L* l% u
/*气缸温度、压力、瞬时过量空气系数 */
) g: o& S9 x1 b2 n0 y& M# W        int m_CA[720],A_SC,A_CB,A_CE,A_EO,A_SO,A_EC;
- `2 _8 ?# Q; N' k# B, |- H& z        double Pa,Ta,hs,P,V,T,CA,m,mf,nmd,Pe,mBo,mL,dXY;9 [; f8 W9 v4 o5 \
        double Cv();! B8 N  p' E. w1 i% `" |
        double dV_dCA();& h  n8 g7 z* _& ?1 v
        double dQw_dCA();& S; F& k& r( K/ m2 s4 x
        double dQB_dCA();
3 E, v7 X' V3 H( L- F        double U();
1 b6 s1 M, }: w, q        double V_CA();% K. @  w% S1 p7 b$ @, I
        double dU_dnmd();
, m2 g# T' v: z0 e4 [, c        double dT_Ys_dCA();
+ {5 k& y" F2 Y0 V3 ~% j4 y3 Y        double dT_Pz_dCA();
2 ?  c& Y5 E6 Z6 M! J) G5 E( }- ^        double dT_Rs_dCA();9 q# q/ ~) E' U, ^1 p
        double dT_Hq_dCA();) R( _& S: W! ]
        double dT_dCA(double an);
6 ]( i) a6 Y' p% C! a        void Calculate();
! ?3 B2 Z/ u3 D# x! x4 A) q8 |2 n- B* W/ X  h7 q. T7 l
/* A编写各子函数程序*/. Y" [- z' x) I1 G
        double Cv() /*求定容比热*/
0 F# l4 j% B5 W9 X7 {0 w1 ~{) ^  H& m, r; ?0 z* z; l

# a6 I% z3 A  H}9 X( c) P8 p5 \( u; H- H; @
) V" I4 ^/ I# R' P) H, j. {
5 M  C% I  t% O" j
double  dV_dCA() /*求dv/dφ*/
) m  j: k- E( _6 [1 L* f{) R7 X6 r& l1 l0 c2 R! ^
3 y1 B3 M9 P: Q6 }; V
}# g/ m; z" T! z+ @; o0 i; ?
5 v% _+ N) F8 R2 P2 z
: k5 N# [& l5 O3 ?7 i, d9 R
double V_CA() /*求气缸容积*/
0 b( ^  i! I. f{
2 ~2 Y5 t1 Y: C2 ~# z- O1 }! ^
  b+ A" J. d+ y. w1 y}+ j& e  I! i- U3 h7 B

+ D8 B) B5 r# G5 q" a1 F+ W% u; U( I! O$ p9 Q
double dQw_dCA() /*求dQw/dφ*/; k3 S5 I4 f3 O% j) V$ d- H
{
; x- U4 ~" G) m2 M& M& W1 {0 p9 H, v: X) T: o: F
}
5 \9 B- K5 e. a
+ t* `) M0 j' k
+ q7 l: u2 D+ m' }6 Q& ]) z7 u, ~double dQB_dCA() /*求dQB/dφ*/
2 B( y! ^9 l+ U{
; z& h4 C- ^. ]7 Z* u" Y* m* h- n+ q; u: f% K' F5 w: A! s. `  ~
}6 m" F! F+ }+ G. Z& p) [* D8 Z( {
/ E- N6 J0 N  p0 E
" Q& Q3 d- `  O2 l" k( W
double U() /*求u*/$ A; y9 g$ `9 e6 ^  `$ H# L
{
$ K, m) s8 K) ~4 m
" C  N+ O0 b3 m4 h4 w4 F}. S& X5 s& O! z/ F* {; f  d
( N1 U: r7 l2 n

5 q/ I% Y* @& N" s4 \  Bdouble dU_dnmd()  /*求du/dλ*/
, |1 Y9 S8 x/ n{0 x: e& c, M5 w7 j

" x5 k6 E: s. [* F: v}
6 X  j4 X; P$ c$ t% e2 Y. a+ ~2 q
double dT_Ys_dCA() /*压缩期*/
, N+ \' Z+ q! n; `; Y( p6 h{
2 P1 u1 N7 i1 @2 H& b3 |- X1 |
}
5 A2 t  F$ h% w- F$ j
& C: l  u/ V( p! v& y* n8 I+ R, ]. k/ F+ j+ {
double dT_Pz_dCA() /*膨胀期*/3 O+ g1 m; Z. Z( d+ @$ u
{
+ b# Q1 o0 X  [" B% x( s& n4 g& y9 u0 t# U6 @3 D% I
}
2 l& q# ^# N7 K) A' A) g' Q! c; i+ H" l6 I9 C: o7 W

" K, d9 h6 a4 s: g  gdouble dT_Rs_dCA() /*燃烧期*/
+ y0 K. V$ }& S* D6 o0 b( c{$ J" t; H6 L) z# k8 Q4 Q7 w, b" A
' G1 S! \" [) a  ^2 V
}7 p7 S) A- J: _

1 X2 n! `; t+ M! O6 H; N; C+ Z! {" R8 B; G' P+ V
double dT_dCA(double an) /*求dT/dφ*/
6 Z- t3 Y" o/ \% k- g{
% U! w, D5 d" z7 q# ~        CA=an*PI/180;4 D- S0 l# \4 K' z
        V=V_CA();4 p& d7 b; w) F: X" u
        if(A_SC<an && an<A_CB)   return dT_Ys_dCA();
6 e! R) ^/ \" G5 U7 ]0 t        if(A_CB<=an && an<=A_CE) return dT_Rs_dCA();
3 I" }' u4 f: W8 s" a5 d5 T        if(A_CE<an && an<=A_EO)  return dT_Pz_dCA();
' X! W( N; V) ~: @        if(A_EO<an && an<=A_SO)    /*换气过程不计算,线性赋值,避免零值 */1 x# l5 u! M6 I5 |3 p1 f  [/ h
                P=110000+(m_P[(int)A_EO]-110000)*(A_SO-an)/(A_SO-A_EO);
& U4 t1 k; a4 s9 s( F- ~* y1 g+ x    if(A_SO<an || an<A_EC) 4 [: m; t3 w+ w7 o
                P=110000-20000*(an>A_SO?an-A_SO:an-A_SO+720)/(A_EC-A_SO+720);
0 I% c8 x6 j, z        if(A_EC<=an && an<=A_SC) P=90000;
' e5 ~6 K& s$ Z+ _/ G# m        return 0;
, W( H, J' I: l. r1 w' L' v# G}
; v% w( i; a6 D5 V" m* w4 ?! I" c
void Calculate(void)5 Z! u5 S. y1 L$ z) X4 o9 k
{% F. B1 s/ t" w  o
    double Tpre,K1,K2,an;; ^4 h2 A( B0 f9 ?8 u; x7 _( H4 J
    int index;
! {+ |: p2 G2 x        Pe=30*4.0*Ne/(gnum*100000*n*S*PI*D*D/4);  /*平均有效压力bar*/
1 x* F7 ]2 h: k        mBo=Ne*ge/(30000000*n*gnum);   /*单缸循环供油量kg */0 L$ L6 ?' a* ?4 H  K1 _! {
        CA=A_SC*PI/180; /*进气关闭时的角度转弧度*/
- C- ^7 Y. u2 I4 d& j1 W        V=V_CA();/*进气关闭时角度下的气缸容积*/' m; W1 Q6 A3 U" L  [- Y  g% D
        P=P_SC;
+ E9 t5 G# D) y* ?5 z' N        T=T_SC;& {* q/ a# R8 S2 g# o
        index=(int)A_SC;
6 h" V* \* x1 M8 _+ @, v5 z* C        m_T[index]=T;2 S2 g- e, I+ g9 g3 i
        m_P[index]=P;
7 V$ g. v: T6 c, `9 L7 y- W# F        m=P*V/(R*T);/*进气关闭时角度下的气缸内工质质量*/1 t9 _/ K% z  L2 O" J4 t
        mL=m-0.01*mBo;/*进气关闭时角度下的气缸内空气质量*/+ c$ @9 o0 [# d9 p9 j
    mf=m-mL;: ^9 z& s" w, P# v3 H$ h8 a3 T
        Tpre=T;' W8 k8 r1 r3 v
        an=A_SC+1;) `. ~5 u8 W$ j- ?

+ f7 K% w! ?1 b; n. u( N, y: a        do{
+ F. e6 x: C! B. k0 U
! ]& a; A9 y( y6 f- S  /*B 编写欧拉法求解常微分方程程序 */3 u% f0 g# B" p1 M, g
( _4 `( L1 t, x" P4 u0 d
        }while(an!=A_SC+1);9 U5 C" ^1 g$ {, `1 B4 l
}- _" a7 H; W7 T/ P% Z; q
1 F7 ^" ]2 Q& ^; m! R) [
void main(void)/ D) E( T; f) \* A# v
{) Z3 |6 n6 O, `
        int i;# G" l0 q1 _( F2 c$ u
        FILE *fp;
; k) w+ g* c. L- r' Y        D=0.11;   /*发动机数据按各自的任务书输入 */
, {; E4 ?- i7 S; j" t9 U% v9 }+ G        S=0.13;9 z$ K4 |1 N+ S% w! G7 D- n
        L=0.21;1 W2 Z. r: H) D5 h5 M( K1 t
        ge=236.0;
; V: Q9 u0 f- `% I8 U; _$ T        n=2400;! n/ ?, Z" ~" r1 d( ?
        Ne=101568;
* F4 R5 j) c( E" K0 ~) R5 a        gnum=6;  ysb=17;   M=0.7;4 Y3 t0 J$ w. }5 H9 T' c) H
        Hu=41868000;% h+ @/ T$ e3 |
        R=287.08;! K( Y0 i; }" x3 x" E
        Pa=101000; /*大气压力*/
# l# R  e% D8 U- Q        Ta=300;    /*大气温度*/0 Z+ b! u' b7 v- O
        hs=(735.0+R)*Ta;  /*大气焓值*/! A1 v# ]0 f6 E; j6 Y" z
        P_SC=90000;/ M, f6 |, {  D* M
        T_SC=313;* W6 [/ O: _& _# g

! Y, E, F, [3 ]& O" i3 ~! i        A_SC=216; /*进气门关闭*/
8 C1 w: o* e  F# B# P0 f        A_CB=350; /*燃烧开始*/
& h6 E; }( c6 U2 _  \7 [% l- l3 S        A_CE=410; /*燃烧结束*/
* u( @  d! @6 {5 A% W8 z7 F, n2 h( q        A_EO=484; /*排气门开启*/0 D- e* ]( D1 H
        A_SO=705; /*进气门开启*/  a) {6 h% `0 i7 U& M# N% R
        A_EC=15;  /*排气门关闭*/
5 w/ z5 B, d; f
1 a4 W/ I$ p6 ^# _1 N+ x$ E( g        Lo=14.4;
' h( S9 f3 H5 w& l' L  s1 r0 _, F7 e, N% C$ j0 P. f
    for(i=0;i<720;i++)5 U! z3 a3 Q! _. E7 Q( k9 O% b2 i
        {  t! d1 @1 k: ?& u6 E- T3 n; w% y
                m_P[i]=0;
0 _8 L6 e; U9 |: b, X5 q' l1 i5 }                m_CA[i]=i;2 b5 `8 E- t3 R9 ~! g$ l
                m_T[i]=0;" y6 y7 X) c9 `9 h  v, F' P
        }
; e* n0 N' V3 U
, e8 C) ^/ {8 p, q3 V        Calculate();9 W0 E# u5 A& y' _6 K+ e1 t# \
3 f- m8 R" V5 I' M/ }' I6 I
    /*C编写数据输出程序,计算结束后按顺序输出0-720转角的“缸压,温度”数据到outdata.txt文件 */0 c/ t+ @& z2 I0 H8 q, j9 j" x! O
6 g; A" g# m6 a9 G& d' R" s
}
) y4 G8 `2 w5 q% e" `' v
: W) z) M, q: D( B+ k8 x
  I# H* r3 Q6 _2 B
作者: 祥云飞鱼    时间: 2015-6-28 23:45
不难啊  完全是 把 公司 翻译成 C 又没有用指针跳转的。。。
作者: 一点一点来    时间: 2015-6-29 01:45
这是作业的干活吧……




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