找回密码
 注册会员

QQ登录

只需一步,快速开始

搜索
查看: 3654|回复: 2

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

[复制链接]
发表于 2015-6-28 22:58:34 | 显示全部楼层 |阅读模式
#include "math.h"4 \& U( O& Q- }* c& |
#include "stdio.h". |" c& I. [, Y# K( o% S
#define PI 3.1415926! c, a: ~: M- x; W

( l& S% k4 A0 ]1 A5 }+ ydouble D,S,L,ge,n,Ne,gnum,ysb,Hu,Lo,M,R,P_SC,T_SC; . W6 |0 k, P: `# S. }
/*缸径、行程、连杆长、比油耗、转速、功率、气缸数、压缩比、低热值、理论空燃比、Weibe函数常数m、气体常数、进气门关闭时压力和温度 */0 o( U* W6 [# [  p, y: Z  I
        double m_T[720],m_P[720],m_a[720];2 ~( ?. Y, N" K
/*气缸温度、压力、瞬时过量空气系数 *// x8 L+ }* g+ M" k  L6 o
        int m_CA[720],A_SC,A_CB,A_CE,A_EO,A_SO,A_EC;
) V4 m6 Z, v. L1 p        double Pa,Ta,hs,P,V,T,CA,m,mf,nmd,Pe,mBo,mL,dXY;
' ?" X. t( g/ y  S        double Cv();+ ?3 v7 R3 P; _0 ]7 R! A  |
        double dV_dCA();2 k1 \2 B! J9 ?' H
        double dQw_dCA();  G- a3 w+ ?" V. K$ @
        double dQB_dCA();* [6 A( [8 w4 ?& v% u; }1 u
        double U();+ s3 D# m1 O! a1 @7 p
        double V_CA();
  o$ q8 d& T9 M) ?& [  m7 {        double dU_dnmd();5 L0 q! |% a! _! [
        double dT_Ys_dCA();/ a+ g. S3 [6 a( X! g
        double dT_Pz_dCA();1 v% O' n, c& \: a% v2 X( I
        double dT_Rs_dCA();8 f0 {$ a( Y  ]: V, d- o
        double dT_Hq_dCA();4 I. f6 R/ Y7 ?
        double dT_dCA(double an);$ [" c% t  ~8 Z* ~
        void Calculate();7 G: ?! U6 e- X& u/ ~! {0 t1 [

& E' d- F5 I+ o6 G/* A编写各子函数程序*/% I& a; w2 c/ s  ^2 r
        double Cv() /*求定容比热*/
, M3 p6 k4 g4 d9 q* p, y{7 I7 v7 R$ B( n5 k! p' d/ T  l* f2 H

8 h- C( |1 _4 M5 c! ^}! j+ G/ R" D1 a2 b7 ~9 }! F- Q
# S0 g5 R1 m: O  D- |2 _2 N* P
' N" o5 V/ M  n6 G
double  dV_dCA() /*求dv/dφ*/  L$ k  W$ o4 o, S
{
; y5 g" D) ~  r0 g1 m9 Y7 A7 V7 U3 \! ]& X7 X
}3 b9 R5 p$ v2 I+ N7 A

4 l8 h+ _* X) d. L' M: k$ Y6 N* v2 d$ \" W2 G5 u) [( }3 I' m
double V_CA() /*求气缸容积*/' \0 g# u' v* q% d7 b) f
{
$ Z. W4 v  |- P- p9 X, |  P, I  h5 p) Z, Q( F# \
}
1 M& i7 |* y/ P0 P8 z: \
4 _  q3 g4 C3 y( }* \
5 z" ^2 J& z  u* U1 d4 b9 |6 Tdouble dQw_dCA() /*求dQw/dφ*/
+ P8 _& j7 }+ n4 G, G8 @! ]{  q1 j/ Y: ^$ X6 V, ]) V; _
7 ~9 w: Z( Y% l
}
7 |& S2 s, C/ |. F9 N  ]2 h$ S
$ |* _. i$ _$ u5 A" A
$ A# C/ y, Z, U0 [; p* S/ Pdouble dQB_dCA() /*求dQB/dφ*/
" d7 @0 p9 U6 }% y' R+ }& j{( b. b. M" l; G* n

  g8 k  C- h9 Z2 i}2 g  b& X, B& E3 u& b
( h8 t2 Q* M9 H; K- Z
( Y* ^! \+ K% r5 b
double U() /*求u*/( p% }5 Q9 t4 ?& k" P6 c
{/ w+ I4 p- `* f) _- p) G6 P

3 d3 a: |4 ~, h3 K. x8 N/ L}6 |5 x3 L3 h& s) u. }
& ~$ ?$ H* R$ G2 [& K
0 W5 t! e4 z  _5 L
double dU_dnmd()  /*求du/dλ*/9 d1 j  z6 [( P8 C0 m' F! b
{/ d  ?7 ?, V# X1 V' z; O8 U
$ A( w2 X6 W/ `
}3 E4 }5 I6 J" ^. x9 Y# n8 ?

0 p; |+ F# T) I/ Edouble dT_Ys_dCA() /*压缩期*// B4 @  e, L0 g* p, a) m( l
{
, N8 u: ~. O, E" b, `. @2 [3 k# U
" @  j  |+ n" I4 x: j. K& @1 p}
; a5 o! z& E+ r/ K8 D+ m  G% i. N1 a) Z
0 n1 u  V1 d- t
double dT_Pz_dCA() /*膨胀期*/2 z. L' e8 J: M8 p, W& P0 ]
{
6 k& W2 A6 T" X/ a) A
+ ]' Y) g6 X5 K3 b9 p. n# a. O4 r# _}2 r8 t7 N2 r/ T4 z

/ D! d( J- ^* G5 T3 t& n
# S: B! i9 D4 M: u; }2 \) Zdouble dT_Rs_dCA() /*燃烧期*// d& D9 x  ^$ D
{1 H- f: W  ^) h# Z4 ]" n; M/ R, O

& q( e0 B8 f/ V* G* Y7 [0 u! G4 f}" Y3 A' r5 d3 A) ?- O) G6 S
: f# L; b4 O+ J. j0 W

+ p7 K% t1 Q4 ^8 ]) m" Adouble dT_dCA(double an) /*求dT/dφ*/
8 x6 u# a1 K; [6 X{- l& M% m: C# C; U4 ~$ B
        CA=an*PI/180;9 \6 S0 O3 I' `7 J# w
        V=V_CA();
$ n& u' M/ u) O3 a$ ~* B, u        if(A_SC<an && an<A_CB)   return dT_Ys_dCA();9 U; y! g9 Z( e# J% B1 F
        if(A_CB<=an && an<=A_CE) return dT_Rs_dCA();: f2 y$ x+ }" y' Q
        if(A_CE<an && an<=A_EO)  return dT_Pz_dCA();. Y3 i% u: s# k: f+ \
        if(A_EO<an && an<=A_SO)    /*换气过程不计算,线性赋值,避免零值 */' _+ u4 l+ F+ G8 L- D/ ], @$ G* z
                P=110000+(m_P[(int)A_EO]-110000)*(A_SO-an)/(A_SO-A_EO);
) b0 f" g- h8 ?1 D3 d    if(A_SO<an || an<A_EC)
5 A% j( D, j* u, ~                P=110000-20000*(an>A_SO?an-A_SO:an-A_SO+720)/(A_EC-A_SO+720);) D. F6 Q7 j! q( O! h4 m1 I
        if(A_EC<=an && an<=A_SC) P=90000;
9 a( X, Y$ \( s  f: u' u        return 0;6 G# Q3 B+ K) K$ d* @( t5 Q/ F( N
}7 E/ P/ V. T5 P0 z( f. J

! z% c/ n! j2 ~% n( Fvoid Calculate(void)& S: u1 z! g. [. G' i
{% [2 b5 W+ m- X& X& `
    double Tpre,K1,K2,an;, W2 g: A7 l6 p3 D' I, @
    int index;
7 I+ l  D/ \0 x1 o. ~7 l        Pe=30*4.0*Ne/(gnum*100000*n*S*PI*D*D/4);  /*平均有效压力bar*/
% p9 \( c; i/ \: D        mBo=Ne*ge/(30000000*n*gnum);   /*单缸循环供油量kg */; X$ p- C, |* G; S0 b
        CA=A_SC*PI/180; /*进气关闭时的角度转弧度*/
: j! |$ }; J' S4 r        V=V_CA();/*进气关闭时角度下的气缸容积*/5 ?- T, E: a! R. K8 a+ D+ y
        P=P_SC;
1 \& k; m9 U+ ]        T=T_SC;1 `: a0 \1 m$ @8 X2 j- Y
        index=(int)A_SC;; U& a0 c3 A9 c5 V% ]4 ]7 y
        m_T[index]=T;
) M; r% Z: M: R' N        m_P[index]=P;1 t' \1 ~' k. U" X
        m=P*V/(R*T);/*进气关闭时角度下的气缸内工质质量*/8 {+ v) r( [2 a0 v1 Y; t; X2 H
        mL=m-0.01*mBo;/*进气关闭时角度下的气缸内空气质量*/
0 N( @7 W! _5 S% `, g( Q% C0 f    mf=m-mL;
( U! t& U) Q: D% e7 v. ^# _        Tpre=T;& e& `: S. }! c
        an=A_SC+1;
! L3 U6 M8 Y% F6 Z& @% T' U6 f  }3 @2 T% c  t4 O" ?; C: y
        do{
# m2 p0 V$ [0 x6 a( @& Z& b9 _% K8 f
, p$ h1 a" A# X: b! b! L( [  H  /*B 编写欧拉法求解常微分方程程序 */
1 @! G  F4 i2 Q1 S" M6 V: I, `5 ~" A" b. T  q6 z
        }while(an!=A_SC+1);
" M/ f: J7 Q$ m/ X6 z9 f}" @5 s, ]6 ~* G  z: ~* Q

# I" I$ U* w: N/ p) Q/ k) uvoid main(void)
% k- O0 }) D" P; e% o{. M( M, N; d# R7 ]" j
        int i;
. w% w' l' X# c  t$ T' R' |        FILE *fp;
, q2 O! `+ g' p( ~- c        D=0.11;   /*发动机数据按各自的任务书输入 */
9 P0 E- h) y& X" m7 @        S=0.13;
7 ]4 y, u3 ~- z$ `1 \) o/ A        L=0.21;
9 |; ^% _% h0 I        ge=236.0;
% d( c; [  x8 O- n; R0 `        n=2400;
: q* g' L/ F  \% B( k        Ne=101568;: _6 D% Y$ `! O3 M6 D/ ]& ]( V  Z" }* A
        gnum=6;  ysb=17;   M=0.7;- G' p, D$ J! \; Y, o( i. d
        Hu=41868000;1 ~7 e; z! d2 v- Y' Y
        R=287.08;0 E5 h- w* ]0 r
        Pa=101000; /*大气压力*/' m: _. {& j# }- w2 N& E. M
        Ta=300;    /*大气温度*/
1 h4 t( n6 M* ~        hs=(735.0+R)*Ta;  /*大气焓值*/( U6 o" X( z2 C9 \7 G- S+ \
        P_SC=90000;. A$ h$ O5 w7 ~( _% l
        T_SC=313;- n$ f6 R, h4 z0 {
& X2 g/ k, a% F
        A_SC=216; /*进气门关闭*/
0 d3 ?' i" g; |1 b# {: B# |! Y4 Y        A_CB=350; /*燃烧开始*/$ m4 y' I" m# n% D# c% Y" B, P
        A_CE=410; /*燃烧结束*/7 f  \& J4 f' e
        A_EO=484; /*排气门开启*/
+ L# W8 X+ B& C8 f" {        A_SO=705; /*进气门开启*/& y: b. H9 G3 a" }
        A_EC=15;  /*排气门关闭*/5 J% C7 d/ z" K- b( T

, k1 k. Q1 m6 M1 b0 N, I! F, z/ S3 d9 O        Lo=14.4;
- c. {+ f' ^- _
, k4 t! S  L) R7 }9 t7 {) j- T( f    for(i=0;i<720;i++)( }6 g* j9 ?# Q' P
        {$ {& G7 A6 B! n, q# d2 Z* n, `
                m_P[i]=0;4 N. u$ ~. d1 G2 E) ]; u: |
                m_CA[i]=i;. d  w* ~7 j$ {6 S8 T/ T! b: ?5 G
                m_T[i]=0;
( W9 t0 ]' Y4 _- T/ x& C        }
( G$ F8 D  t# }% N
. }# b% ?# B5 C) G6 J        Calculate();
; I$ ]* x  ?1 F1 c4 G) Q# `4 |% E: N! `% m! {
    /*C编写数据输出程序,计算结束后按顺序输出0-720转角的“缸压,温度”数据到outdata.txt文件 */
' R/ ?0 V% j* B+ X' E% I% C# [
0 ?; _" m5 m" U0 |5 b$ Z}
9 S* X1 I" Z6 a3 V, n% M+ x
) \/ g/ v! g3 w$ b4 u; K
6 i& C5 v2 N- M8 R8 B$ a8 `9 C
回复

使用道具 举报

发表于 2015-6-28 23:45:10 | 显示全部楼层
不难啊  完全是 把 公司 翻译成 C 又没有用指针跳转的。。。
发表于 2015-6-29 01:45:20 | 显示全部楼层
这是作业的干活吧……
您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

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

GMT+8, 2025-8-3 03:58 , Processed in 0.066740 second(s), 19 queries , Gzip On.

Powered by Discuz! X3.5 Licensed

© 2001-2025 Discuz! Team.

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