机械社区

 找回密码
 注册会员

QQ登录

只需一步,快速开始

搜索
查看: 3563|回复: 2

内燃机热力计算怎么用C语言编程?模板如下,求助。

[复制链接]
发表于 2015-6-28 22:58:34 | 显示全部楼层 |阅读模式
#include "math.h"  I3 s5 L0 s5 O% B3 G$ V* K5 M  R
#include "stdio.h"
2 ~' _! m- L( w, }#define PI 3.14159261 [+ E, e, @) j; S8 t/ s

& d' s" V- Q! Q& }double D,S,L,ge,n,Ne,gnum,ysb,Hu,Lo,M,R,P_SC,T_SC;
( V. Z$ |4 f5 \) Q; q/*缸径、行程、连杆长、比油耗、转速、功率、气缸数、压缩比、低热值、理论空燃比、Weibe函数常数m、气体常数、进气门关闭时压力和温度 */
: ~+ H4 g' b! X" I* E        double m_T[720],m_P[720],m_a[720];5 u9 z) m. }1 t; k) l
/*气缸温度、压力、瞬时过量空气系数 */9 q* }' q" p$ V2 {2 q
        int m_CA[720],A_SC,A_CB,A_CE,A_EO,A_SO,A_EC;6 V( _. ?+ {# B
        double Pa,Ta,hs,P,V,T,CA,m,mf,nmd,Pe,mBo,mL,dXY;  N4 ]( G* c! @0 e( _: Y5 Y+ q8 n
        double Cv();
. S& b8 C! n- y7 W7 ?% w        double dV_dCA();/ @, T$ l3 e" ]1 ~, c2 b
        double dQw_dCA();  d+ i. ?* T* [1 J; |1 I/ y/ q4 l
        double dQB_dCA();2 S' A6 }: u+ V4 O( A
        double U();
0 p& u2 G0 F6 h1 y% R6 E        double V_CA();
) L0 N2 _( N5 R1 Y2 ?        double dU_dnmd();
1 a* L# u' z! \8 s; w7 f$ Z        double dT_Ys_dCA();& E; D. x3 v' k7 }- k- @8 @
        double dT_Pz_dCA();; H3 S. @# `9 `$ j- l
        double dT_Rs_dCA();
4 J! ]. k& |! r' \2 S        double dT_Hq_dCA();7 }& g7 a" w& q" ?, l/ P
        double dT_dCA(double an);& R8 B7 s4 C$ O! ^7 O& |
        void Calculate();
' Q* d# j( G+ J0 h
$ y% A# e& h; q/ |6 H8 L/* A编写各子函数程序*/
3 [# P. j* `# g5 x* Q        double Cv() /*求定容比热*/
5 B1 m7 l$ P$ b5 L1 p{3 a6 ]# r! {9 S! h3 f. e

. K6 j* I$ k! F}
/ a) L: g  {# S: N3 @: C5 L) H8 j+ U+ c4 @
5 z, q8 n  }8 D6 _! ?
double  dV_dCA() /*求dv/dφ*/
* G: E, _' U# t/ `! {! ~# c0 X{3 T0 [7 G7 S6 Z& g4 b+ g; F

& j1 W3 l6 ~: n7 g  c0 _}& L% f0 H- B: @6 O
7 \+ r) W0 |. s1 J" \& H5 }# S

) H4 U9 @# m+ U: b. Cdouble V_CA() /*求气缸容积*/: F/ V- c1 p+ i* Q; L. H' l) n
{
7 y( F& b6 _) O' h( P) b8 ?9 \2 l) X( y/ x
}! P8 @/ a; d/ B

7 ^: i5 D0 [; L9 X4 R' J1 ^6 Q2 Z4 W1 {9 N/ @% K
double dQw_dCA() /*求dQw/dφ*/
$ g$ W! _2 I% @9 x; _/ S- N{, p/ @" v6 e7 o) B

* e; B( L. E9 j( c}9 t( o2 x& v* n1 l% \) E
% i  a& O* T  T8 Q. K" d! E; [

$ O& c+ j1 b# |, B6 idouble dQB_dCA() /*求dQB/dφ*/! x1 i% G0 ]/ e+ l3 J# s
{
7 U+ Y9 i4 m  u5 E' v% g7 T6 P# y( g' |/ E, T0 Q6 H0 a0 x. G
}$ h* Q. ~) X" h# a/ k9 H0 Z  P
: \6 K2 F/ n( Q! k1 |. ?- c2 Q

- H- C) L* g+ D7 ^6 ~% @% Kdouble U() /*求u*/* A. a: [# d) }8 ?% ?/ o# [% R
{9 b, K+ ^8 X0 E" p

$ l( `: B; \/ f8 u" t/ }8 T}
" `9 l! D' p1 c% ~4 E, N! J, }% T
3 P4 k# Z; @" ^6 ]
double dU_dnmd()  /*求du/dλ*/+ p5 g# \3 ~4 p8 h" M  G
{
7 n$ Z% g; O- y8 i; F; U
+ ^) x2 l( ~9 |, E! g0 t, S}
; L2 `# ~  j: O9 ?8 }( [+ G% G
, [3 H  ~6 P+ Tdouble dT_Ys_dCA() /*压缩期*/5 o) }7 _8 c  W9 q
{
  G# b) C' U$ J3 L/ s
# a# X# x) y* v  v  g}. K( j4 O1 p4 [
6 E# X$ B5 I$ q/ I6 S

/ V5 m- A" q: l. @, Y/ P8 pdouble dT_Pz_dCA() /*膨胀期*/
( v$ o7 P; k$ T7 `) Y9 _6 V$ C; y5 @{, [6 k6 i: G/ \; n8 q' j' P
9 j( s3 E% ~; L+ o% G0 s& p
}
9 k0 ~  m' o2 r! w" e+ A/ z9 I: S8 H  H1 s* G. @2 T( ~

9 O: D$ O2 C2 @& ]- @1 udouble dT_Rs_dCA() /*燃烧期*/
* Q, `9 M0 X/ ^) n% L4 C{
8 ^5 d7 G( a: @
) R& S8 `) E3 [& Q}, g1 B% s8 z" s0 W) H1 T8 }
. x  t# }% Z: a3 ?, L- q

5 w& l* l1 h: d7 @double dT_dCA(double an) /*求dT/dφ*/
+ C' w5 F3 A' G  S& k{
# g5 d: R1 d& t7 p6 U- y        CA=an*PI/180;) G9 J* c4 f2 h0 L
        V=V_CA();
3 G5 h( \. m) i" t  }        if(A_SC<an && an<A_CB)   return dT_Ys_dCA();
; q$ |* r) A- \8 q  {        if(A_CB<=an && an<=A_CE) return dT_Rs_dCA();! H, G: U. e. {, J3 @
        if(A_CE<an && an<=A_EO)  return dT_Pz_dCA();: y8 G8 U3 a: b- |: M7 y% y7 }
        if(A_EO<an && an<=A_SO)    /*换气过程不计算,线性赋值,避免零值 *// l/ \* @# C! _! H6 T5 z9 Y# s
                P=110000+(m_P[(int)A_EO]-110000)*(A_SO-an)/(A_SO-A_EO);
3 _! J/ f: \" O8 S9 u2 v    if(A_SO<an || an<A_EC)
- R1 \9 N- S! g" k+ ~" \% f( }                P=110000-20000*(an>A_SO?an-A_SO:an-A_SO+720)/(A_EC-A_SO+720);! \; ~9 D! ~* B! J
        if(A_EC<=an && an<=A_SC) P=90000;
5 [* Y1 n2 F3 O9 x1 _6 F% g        return 0;
% j: m& `5 V( F! P) q; S}$ O# c, r: H7 b; j

; P( @; T/ r! E( }void Calculate(void)
& K) C4 U6 j8 s* \7 l{! o0 @8 L+ G/ E/ R7 j
    double Tpre,K1,K2,an;
( c# V$ o& Y, u2 E) }1 E; n/ [    int index;! p; H5 F: f# M! p0 A# L
        Pe=30*4.0*Ne/(gnum*100000*n*S*PI*D*D/4);  /*平均有效压力bar*/9 I9 W9 }9 M) V; @
        mBo=Ne*ge/(30000000*n*gnum);   /*单缸循环供油量kg */( ?4 M* l& z3 E, O- D' ~' n
        CA=A_SC*PI/180; /*进气关闭时的角度转弧度*/
) P$ u; ~# s' h4 F9 R2 k        V=V_CA();/*进气关闭时角度下的气缸容积*/
4 c. b7 F0 [9 ~/ z" w: j( H        P=P_SC;
" @. \. a9 n( k        T=T_SC;+ j0 S0 m' c* N- e0 x4 B4 Y
        index=(int)A_SC;
' ]; Q( R, V; Z* ]        m_T[index]=T;2 c6 E* O/ R$ V, F. J
        m_P[index]=P;6 {+ c; s" |9 K0 t. ]# D! B
        m=P*V/(R*T);/*进气关闭时角度下的气缸内工质质量*/
6 I, v! g/ d9 [& o" Z3 l! K        mL=m-0.01*mBo;/*进气关闭时角度下的气缸内空气质量*/
) q/ }. w2 _( q3 l3 w    mf=m-mL;' m, J  F, w2 u! s$ E
        Tpre=T;8 n; P2 ~1 S4 R3 g% t
        an=A_SC+1;
! I. ?0 I# P+ Z4 l3 m4 c6 U, r! a
  Z1 I- w+ P7 M  f( [$ r        do{
% K/ n: N0 f3 W; B0 s! W! h
  V' e2 o" l2 B' L  /*B 编写欧拉法求解常微分方程程序 */, x/ E5 N5 b, U% o- ?3 r- ~# k7 \
' e5 }* I: b6 G& c
        }while(an!=A_SC+1);
) M6 ^( a8 a8 [8 {7 z# h# |4 }}& w. j2 T: E4 e0 X, k5 K. j2 ?
/ y7 A7 v) {" z  X( a( d- d% M8 _
void main(void)1 b( ]& ]- h& x, R7 h& r( Q
{
$ _, L4 b0 g; A# y3 \# j4 J8 r        int i;: c9 q* R4 d9 l9 `5 `% R/ h, `8 Q
        FILE *fp;
: s" J) k& X6 ?' Y' X1 @4 }( G        D=0.11;   /*发动机数据按各自的任务书输入 */0 h3 O8 p0 ]" l
        S=0.13;
6 m5 ^! I4 f$ `, C. Y        L=0.21;" g& m- [% K) @! w" p! ^: ~
        ge=236.0;7 R# }, _* M) w# I1 `! I+ I: ~; f
        n=2400;& d9 b' F! r/ m
        Ne=101568;
' Z( }3 i" k/ _0 ^+ j! [        gnum=6;  ysb=17;   M=0.7;* U6 P9 e9 d$ }6 n# k. n
        Hu=41868000;
% r# q2 Z. ]$ z( {6 _5 J        R=287.08;
4 A% y9 g6 j! P2 X4 o7 I1 h6 q* I        Pa=101000; /*大气压力*/
6 ~" v" a& U( O* W4 n        Ta=300;    /*大气温度*/0 j8 {2 T7 m: Z1 \* w
        hs=(735.0+R)*Ta;  /*大气焓值*/7 V$ R9 S/ f/ b# f. @
        P_SC=90000;$ [, i2 w8 A, k" [
        T_SC=313;- z. @8 e, j0 ~& k1 Y

# F$ `( b3 w+ k0 g7 T+ e        A_SC=216; /*进气门关闭*/
) G1 G2 t: H9 v5 a+ x        A_CB=350; /*燃烧开始*/$ \1 P$ X( F4 D
        A_CE=410; /*燃烧结束*/
! p0 Y8 ]" h$ e) g* \8 m% S1 S5 {, J        A_EO=484; /*排气门开启*/
; l' f" R1 J5 Q& F: }( k        A_SO=705; /*进气门开启*/. r8 V; l8 A# s5 v1 v
        A_EC=15;  /*排气门关闭*/$ E" Q1 z# a2 u9 O& _+ r6 m, G
, p9 }4 @. j% f( }- F6 W
        Lo=14.4;9 D2 i1 K* F3 e* `- ~2 e4 @
4 B( W( P2 ~  H
    for(i=0;i<720;i++)
/ b. x" P' j0 b$ s5 }        {# j7 k% z8 l; O. h
                m_P[i]=0;' O3 Z- U6 R  s0 q" x7 q" Z
                m_CA[i]=i;
; s0 u) Z6 ?4 p6 b                m_T[i]=0;; L5 J4 E: ?: i+ @+ Q
        }
  @: E( p5 y  P* `$ \2 g4 S( Q5 f2 t1 d/ G8 A+ Q- d/ R- Y2 J
        Calculate();! O' J* [& G% A
8 F- ~2 Q0 l" R4 V9 s7 K( ]  P6 P
    /*C编写数据输出程序,计算结束后按顺序输出0-720转角的“缸压,温度”数据到outdata.txt文件 */9 h' S/ M/ d. n% e9 L- D( g

& O  l5 c) `+ \}: H& M8 Q0 P! {! T

0 W8 `/ Y+ v$ g& h' T+ I
& x& ]' J9 t) S
回复

使用道具 举报

发表于 2015-6-28 23:45:10 | 显示全部楼层
不难啊  完全是 把 公司 翻译成 C 又没有用指针跳转的。。。
回复 支持 反对

使用道具 举报

发表于 2015-6-29 01:45:20 | 显示全部楼层
这是作业的干活吧……
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

小黑屋|手机版|Archiver|机械社区 ( 京ICP备10217105号-1,京ICP证050210号,浙公网安备33038202004372号 )

GMT+8, 2025-4-3 18:33 , Processed in 0.059930 second(s), 19 queries , Gzip On.

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表