机械社区

 找回密码
 注册会员

QQ登录

只需一步,快速开始

搜索
查看: 3561|回复: 2

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

[复制链接]
发表于 2015-6-28 22:58:34 | 显示全部楼层 |阅读模式
#include "math.h"
8 P6 B& v; D8 O' Q# I#include "stdio.h"% f7 N. j. s/ h1 \/ G
#define PI 3.14159266 ?, v% @* i1 K+ x" ~, r& R# x

4 C. M8 U' L% ddouble D,S,L,ge,n,Ne,gnum,ysb,Hu,Lo,M,R,P_SC,T_SC; + \6 C7 T. ?+ Q. ]9 Z6 M1 a( Y* `
/*缸径、行程、连杆长、比油耗、转速、功率、气缸数、压缩比、低热值、理论空燃比、Weibe函数常数m、气体常数、进气门关闭时压力和温度 */! c5 s/ C) l" C1 b
        double m_T[720],m_P[720],m_a[720];
0 g7 E/ p: x4 \. F/*气缸温度、压力、瞬时过量空气系数 */
9 B9 g- h3 {( {- c, u/ M/ Y        int m_CA[720],A_SC,A_CB,A_CE,A_EO,A_SO,A_EC;$ ~9 V" ]7 P* z
        double Pa,Ta,hs,P,V,T,CA,m,mf,nmd,Pe,mBo,mL,dXY;
2 R" L* M( l" ^9 k% O        double Cv();# E. U# L/ `; V# ]
        double dV_dCA();
0 ~. W" o  E' D' u! ?$ |        double dQw_dCA();
( K" [' j% {! g% w$ l, w+ f, L        double dQB_dCA();. f3 ?, `* d3 N4 w; g/ r3 {
        double U();
$ E& F1 s0 e3 s        double V_CA();3 s$ J5 [, P) [; k
        double dU_dnmd();1 m# v9 {" r( x& @, S; A
        double dT_Ys_dCA();0 f9 ^* F% l( x1 I8 e6 ^
        double dT_Pz_dCA();
7 q1 j6 Y) ~6 ^3 ?( T6 W( ]  x        double dT_Rs_dCA();3 o) p/ A; Z. H
        double dT_Hq_dCA();
: j3 f7 L" `/ W7 C" \        double dT_dCA(double an);/ L( a6 v" L8 H" w; B. g
        void Calculate();- m: A5 Q* U% T6 s7 o+ D% O! n9 A
9 \+ L1 r% D/ |9 K- ]
/* A编写各子函数程序*/8 J  F  W) Z! w. P/ i" d  V
        double Cv() /*求定容比热*/5 X) B( O& j) O3 ^% O$ |
{
) e0 }9 j- c: \8 J: h. S8 r, Y4 {; S% z5 k
}3 _8 v- ~6 B( u2 N( e
, M: h" w5 W( |! R* |& y
7 z" @7 G8 m& Z8 x" D8 ?9 H
double  dV_dCA() /*求dv/dφ*/
$ i0 G# E& O, L# W{) `  r  G* {  \5 ?3 B3 A9 \" k

+ ]$ [" Y; L- w/ Y2 l' A0 ~3 z1 ^}' D' M7 L1 {/ z$ D7 r: F

7 s2 e) r1 m5 m% |
5 d+ r6 n; ]% ]double V_CA() /*求气缸容积*/5 c" z; q$ Q+ Y# @, z' _
{' m) x' i- B# M5 _' _$ @6 w+ P

9 L+ M* G7 _2 h  L( X* q; a& p# Q9 ?}" y/ M7 t2 G8 Z* e" z

4 D0 Y: N! W  }0 i9 d( [6 k( W! m
3 D+ ]) q: }, d* j) ^double dQw_dCA() /*求dQw/dφ*/
, V- L1 m) r- {- G+ @5 ?{
, P4 q- \7 u: H( `$ @2 b9 V  s+ s& J0 _  K' a" H
}
% R: D1 ~9 _6 `
  |2 N! I7 R2 v) `2 n: Z$ A7 E% Y  [
double dQB_dCA() /*求dQB/dφ*/
6 x( D( C* g$ u' [8 c# b  [" @{1 ^* c/ g' |1 P% M' M4 ]
5 e3 `+ B; x$ J4 Z
}
8 V/ j' a  ^: N3 V! Y9 O, x' G$ O  u1 X- E( N  z3 D6 _' [& Y0 s- o

& e, b2 i- |  C6 w; Bdouble U() /*求u*/2 W7 z7 c% _$ j; k
{# @, ?0 n% f, |( t! Y6 w& U; z' e+ O. M
0 B) J' |+ C5 b& W
}7 }) d2 R2 z* Y" i, h$ I
+ a0 A! b/ _9 U4 {6 \
7 m, ]  M/ O5 Z) z
double dU_dnmd()  /*求du/dλ*/( T# U/ M( T4 Q, {0 p
{
6 n: k( T& m/ [- Z2 e9 i4 @
+ U3 Z1 L' V' j$ ]}. r& M  x; T. O$ q' [! ^

2 U' B9 v5 w( X3 v: ^1 a- ndouble dT_Ys_dCA() /*压缩期*/
4 V) k4 o$ S# S6 [% `{/ m( d4 Q# }7 V6 |3 \
5 u4 N# C( J% }4 i
}
. v/ M  [" \. \; }$ u1 s9 S* e
. V+ I9 {  f1 Y9 Y/ _% r8 n. c! d$ p! B: p5 y
double dT_Pz_dCA() /*膨胀期*/; u7 B1 \+ J+ R' ?, R& d& _
{
  J# l' X0 L* j% [0 ^- h) d
$ L- Q2 n+ i( i; ?+ |- a5 H}
9 H: K( o- J3 Q9 y. W: |  j: `% W- x* N. _, F' Q
0 v  b% _9 B# |
double dT_Rs_dCA() /*燃烧期*/& a2 @' Z$ ~) }  ?
{0 k4 p; w" D/ c) W- [: a

1 c' g; q' |0 d}
! S7 S' V7 ?1 t9 g. j% [
) H& P7 ?2 I6 ]$ H3 h
" G6 a/ ?' r2 p* P0 udouble dT_dCA(double an) /*求dT/dφ*/
6 V+ d9 Y1 F) l$ S( S, H{
3 N+ n0 [' v, L- M  q  e6 e9 c        CA=an*PI/180;8 K4 c7 x$ _& l7 l
        V=V_CA();
4 [$ v2 N4 ]5 p( }        if(A_SC<an && an<A_CB)   return dT_Ys_dCA();" U! H5 `. i8 ]5 T! P/ \
        if(A_CB<=an && an<=A_CE) return dT_Rs_dCA();* j! {$ x$ `1 b) h$ P
        if(A_CE<an && an<=A_EO)  return dT_Pz_dCA();
8 \8 _! ?6 J- J        if(A_EO<an && an<=A_SO)    /*换气过程不计算,线性赋值,避免零值 */
+ J% u6 C6 R9 i- C: t  ~- W  x  S  F                P=110000+(m_P[(int)A_EO]-110000)*(A_SO-an)/(A_SO-A_EO);+ U" ?+ C( M6 I; g7 X
    if(A_SO<an || an<A_EC) + T4 D1 r3 d" h7 D, U  p6 H( C
                P=110000-20000*(an>A_SO?an-A_SO:an-A_SO+720)/(A_EC-A_SO+720);
( _0 X% y* v' u8 I        if(A_EC<=an && an<=A_SC) P=90000;! i6 D9 B7 N! w  @
        return 0;
4 \& x/ ]; Y2 j* \' ]7 n. U+ @. y}1 k8 \! ^  E) ?, C) {" j

7 s; a4 P$ R# X& Dvoid Calculate(void)
. r0 z2 S- [  I& @/ Y, R{
, A1 R' x% h7 N9 Z8 T8 B    double Tpre,K1,K2,an;  L" `! R  `1 T* g
    int index;
, }1 Z+ A, G# p6 r        Pe=30*4.0*Ne/(gnum*100000*n*S*PI*D*D/4);  /*平均有效压力bar*/1 a( O4 p2 z1 O3 P2 N( O1 G" L
        mBo=Ne*ge/(30000000*n*gnum);   /*单缸循环供油量kg */
5 W6 P+ G. N5 T        CA=A_SC*PI/180; /*进气关闭时的角度转弧度*/% B; ?. v7 U4 P, ~
        V=V_CA();/*进气关闭时角度下的气缸容积*/! X# n2 _, k; t7 {
        P=P_SC;
+ H/ ^1 W  M* ?: G. C  Y        T=T_SC;
) T( ~5 h( ]0 B. ~4 Y1 t/ g        index=(int)A_SC;+ g5 d) Y0 e7 p
        m_T[index]=T;( b4 Q3 z4 n; }. E8 t
        m_P[index]=P;1 e+ t4 T  P: w
        m=P*V/(R*T);/*进气关闭时角度下的气缸内工质质量*/7 q' l$ N( ^4 ~6 v" Q: {* G
        mL=m-0.01*mBo;/*进气关闭时角度下的气缸内空气质量*/
1 P- ^8 G) F& j" g) u& e6 u    mf=m-mL;
: a: W3 s) y0 _$ x# X        Tpre=T;
, B  E' j- |9 b' D        an=A_SC+1;
- w* e: m7 ~/ W
7 r# o9 i8 D( V4 M        do{. ?& w3 a1 ^+ U3 C& i5 w

1 n4 G5 b5 U/ n5 Y0 S  /*B 编写欧拉法求解常微分方程程序 */
/ @: l0 b8 s  l. C6 ?. D4 x4 r& n( B
2 V8 Z, I" l. J8 ^        }while(an!=A_SC+1);
* Q# [1 ~/ [& r0 b}
1 l; a# h% t; ]; w$ Z/ }. m0 q; @! {; \! c+ V! g' K; ]* c
void main(void)
( v. L9 r& v& F5 r9 T( ]{
0 W4 R$ c+ u3 T/ j        int i;8 A# d$ I" S  d; v! G& E+ Z1 l0 d
        FILE *fp;6 [. M* w9 T' |! }
        D=0.11;   /*发动机数据按各自的任务书输入 */" h8 o/ n+ B$ L# T2 @+ _
        S=0.13;
- k: R* o- u- p  u! b* A" n        L=0.21;" F- j: \, E" y/ H$ ~! W6 K
        ge=236.0;  Y6 M7 |! L4 {# H* B& I
        n=2400;
2 W) ?9 O: U( t- G        Ne=101568;/ V* O4 c8 L  Z8 k
        gnum=6;  ysb=17;   M=0.7;# Z% f/ A  ?1 j$ C+ @% m
        Hu=41868000;+ u9 W( ]' `' v, A/ {
        R=287.08;1 ~9 B: _; x2 e& b$ [$ b1 v% e+ ~
        Pa=101000; /*大气压力*/4 z9 x2 ^0 M; ?3 p
        Ta=300;    /*大气温度*/
  h2 _* x: h: W! S        hs=(735.0+R)*Ta;  /*大气焓值*/7 T& s0 Q, i3 A5 e
        P_SC=90000;
% s' w* W8 T, b; O) n/ B        T_SC=313;6 V8 @+ v! d2 H1 u1 n5 D( _
/ x* y% D' H# e! I+ z; J
        A_SC=216; /*进气门关闭*/
, G+ e. j, R- f2 t4 L. R  c  K+ f        A_CB=350; /*燃烧开始*/
& Z0 S# y. c' H        A_CE=410; /*燃烧结束*/: z4 L  l' H) l- ^6 X
        A_EO=484; /*排气门开启*/
, G# t! h# q/ Z        A_SO=705; /*进气门开启*/  ]4 K1 m8 i. V! T/ d0 }+ H3 X
        A_EC=15;  /*排气门关闭*/
! S+ K1 C( l3 }6 G) W- g3 t8 H$ b: C
        Lo=14.4;
4 ]3 _* c8 n: D. B% c' T! h, a; V, o% M% {, d7 z
    for(i=0;i<720;i++)' f! T) S( K. U5 C
        {& n" Q$ v' ]; r; d: A; M1 h& q2 f4 k
                m_P[i]=0;1 A4 I1 f! |+ P! I" {, @% c, ?
                m_CA[i]=i;4 Z& A) L% f! K1 H, Q- J1 S2 o
                m_T[i]=0;
) W' U+ ?8 ~. p, a$ k3 P        }, |; t0 s+ Z4 d* \7 Y& v! B1 n  \

8 S; b' v; c; z        Calculate();
& H/ o$ Q7 m' K6 X$ v" X
& \: u2 n. D* j, S# P- U    /*C编写数据输出程序,计算结束后按顺序输出0-720转角的“缸压,温度”数据到outdata.txt文件 */2 s) A9 M8 V# i6 \4 C

: q% w7 O6 Z+ f6 y! s% G  ~}  g7 A! v6 w$ m- e$ s, z8 ~+ c# V' }
( r" {# {$ M5 @6 h0 ^" a. l* Z$ p
: ?  o) R  U( U& \7 t
回复

使用道具 举报

发表于 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 12:27 , Processed in 0.067020 second(s), 19 queries , Gzip On.

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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