机械必威体育网址

 找回密码
 注册会员

QQ登录

只需一步,快速开始

搜索
查看: 3327|回复: 2
打印 上一主题 下一主题

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

[复制链接]
跳转到指定楼层
1#
发表于 2015-6-28 22:58:34 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
#include "math.h"' f1 ]# L4 T4 o/ X( u- \
#include "stdio.h"0 k: [1 w* s4 c3 j  C
#define PI 3.14159260 w+ \  ~5 S! X% v

0 C7 I, g+ y  J: U( q4 j: ]/ X7 idouble D,S,L,ge,n,Ne,gnum,ysb,Hu,Lo,M,R,P_SC,T_SC;
: I" g) D8 L4 l8 w1 W/*缸径、行程、连杆长、比油耗、转速、功率、气缸数、压缩比、低热值、理论空燃比、Weibe函数常数m、气体常数、进气门关闭时压力和温度 */
" v/ R+ }, `9 q8 q( U  O        double m_T[720],m_P[720],m_a[720];, w: b" t  n& g! L
/*气缸温度、压力、瞬时过量空气系数 */
! |+ J2 ~+ Y8 G  `& o        int m_CA[720],A_SC,A_CB,A_CE,A_EO,A_SO,A_EC;
! u; y! K) r& p" {7 g# W        double Pa,Ta,hs,P,V,T,CA,m,mf,nmd,Pe,mBo,mL,dXY;
8 n* e1 \; g& o2 z9 L$ |' C; p* I7 a        double Cv();
, Q& O6 q2 C& K' E2 c! z* X        double dV_dCA();
( L- U' d" x8 d6 g% Q9 _% M: ~        double dQw_dCA();
1 x' `+ Q0 J$ i- `0 ^- Q* ~) I        double dQB_dCA();
* }8 l0 F' d1 p- E        double U();
- n6 i, x. @$ D' g/ `' h5 c        double V_CA();
  S$ D$ E: `+ g  b' T% S        double dU_dnmd();1 |0 |! V4 T5 K- `, S
        double dT_Ys_dCA();* S9 N; J+ d+ H: n7 x
        double dT_Pz_dCA();2 A, m5 {4 [9 V. A; Q5 `2 K0 \
        double dT_Rs_dCA();0 D" l% [: y/ x* ^$ O5 @* q
        double dT_Hq_dCA();
, w. {- j% f6 }, R4 [  b. A        double dT_dCA(double an);: L/ G/ z- q3 v& l6 R
        void Calculate();
) J" N7 s. }7 S3 G3 s4 O& C; q4 |+ M; O
/* A编写各子函数程序*/
& ]& s4 Q2 b: P        double Cv() /*求定容比热*/
- Y" h$ W9 S1 a1 I7 h{/ W- M% b; w9 h  L( `7 r, e
& |5 f" j! V& V; G
}
/ ?. n! p  F9 W
$ G& G, z9 n2 m# Z% h; T7 @! T( G. V$ S3 Q. o* ]& ~
double  dV_dCA() /*求dv/dφ*/; J' j' N$ m8 l% L: ?- h- \. u
{
8 P6 H4 ~6 T* ^" \: C0 W: ^  F1 I7 r
}! ~0 F9 {  E( O) t
+ i$ B2 r/ \: c" s2 o6 O5 L
, t, B4 x# Z! P
double V_CA() /*求气缸容积*/
3 ]5 v' |! Y+ Z# B/ @0 {) M{
! a+ T6 Z+ n7 l$ P0 r# l! K% \2 z4 e0 J3 s4 G; i4 E  s+ k5 ]0 k0 j
}
/ a, I+ ?8 ~+ a/ @/ {! l% ^9 ~: t2 r
% l, O" z( u! m; U9 t2 d: M( W
# v  c& F' v; v  t8 x9 z+ ]& p' n$ Zdouble dQw_dCA() /*求dQw/dφ*/
' N6 f4 o5 E- v/ ]- \2 X{
1 X* p  I! b# R5 M, \7 g+ f- w4 n
# ^/ M: e) I8 `: [) K  R}$ s* f: k; k1 M  a1 m& \" e
- e7 ?( \; u: W4 Q5 v

: s1 \( H, S6 k' bdouble dQB_dCA() /*求dQB/dφ*/* D* S: ?) X1 I: ?! E
{% y2 v. b3 W" j3 L7 y
9 c5 b" A. M, C4 s
}
1 d  O  l2 M" Q* l/ t7 `2 f) a- x; D( }- n- I
3 Y  f3 W- F$ p/ Z. j2 l* b; B
double U() /*求u*/# W, f2 ]# D2 ~2 w7 o
{: }  K8 Q# ~8 X9 ~% b2 P8 o

  m$ Q0 O" \8 J0 o' k}
* b9 B' \6 R/ G! w3 b, Z8 h  \0 w, d

! ^  e1 c! k. V/ x- Odouble dU_dnmd()  /*求du/dλ*/0 ?/ I, Y: x- N. c2 h& ?
{
& S4 b* C! E4 X9 `0 X5 P$ L; |& F# s! y6 s* q; |* j4 K: {
}( I+ V0 ^( w8 r' k9 M2 i& s6 G
! b9 m$ F0 q0 b" C9 e9 p
double dT_Ys_dCA() /*压缩期*/
  u5 J$ M$ v! y{% ~3 R. X! c$ o* k3 ^$ R4 r3 K6 h

: S$ c- ^( y9 y' S$ P- \}$ l2 a/ k' m9 \6 a

3 k+ t, P1 r1 R6 f' q) D5 ?
/ h( |' M# _  Ydouble dT_Pz_dCA() /*膨胀期*/
! {: A7 |/ d* S& O1 s1 |{( u( j/ a* o( B1 r3 [
/ H" l- f" h3 r2 N$ A0 ]
}, }" h! Z/ S6 v: S6 E! L
. b5 I0 }$ Z! x& S1 x# g$ u

- z8 }3 L# {6 E+ T- _/ T, s; Adouble dT_Rs_dCA() /*燃烧期*/) Z6 H, L6 z6 `- K
{0 o3 M% \* c8 V) u/ R3 A5 i4 f8 L

( u7 k8 d# k+ U- s  Z& e4 Q}7 {# l: W) x0 h8 X. V6 x# z2 }

" M% u" q1 |) H( Q) q8 i* S, i
double dT_dCA(double an) /*求dT/dφ*/& ]2 `* i+ G! T4 a) ^
{  b) F, c" x. L9 d6 F5 C
        CA=an*PI/180;1 J+ N& @! s) b$ c! N, u3 _$ ?: O
        V=V_CA();6 a8 ~  I% H/ T
        if(A_SC<an && an<A_CB)   return dT_Ys_dCA();
' G0 ~8 c2 P+ w  @0 r% ]! D: I        if(A_CB<=an && an<=A_CE) return dT_Rs_dCA();
: Q! C3 M/ l/ k% W6 W0 i        if(A_CE<an && an<=A_EO)  return dT_Pz_dCA();
; Y+ Z; `- a" K1 p, V        if(A_EO<an && an<=A_SO)    /*换气过程不计算,线性赋值,避免零值 */
* ^' o: s+ X4 U' @# e                P=110000+(m_P[(int)A_EO]-110000)*(A_SO-an)/(A_SO-A_EO);
( n& v+ Y# v- W4 j; g4 d    if(A_SO<an || an<A_EC) : e# D9 J, k& |& Q) Z5 }) Q9 t
                P=110000-20000*(an>A_SO?an-A_SO:an-A_SO+720)/(A_EC-A_SO+720);
" j% F. a' o7 e$ T% b0 C& j2 @        if(A_EC<=an && an<=A_SC) P=90000;7 H- [% `& v, i4 _
        return 0;
" ^' Z) f) w4 b, ]: C& ]}# U$ F2 Q4 R1 H/ [6 L0 b4 Y7 ~6 ]

/ y+ N5 W9 Z6 P% o8 avoid Calculate(void)* ?+ J  ^4 O0 S
{( ^  ]) H8 n8 T5 j2 n* v, z  w
    double Tpre,K1,K2,an;
5 M% t: l9 W4 T* q    int index;
5 a/ m' g" s. B5 M  Z7 Y8 r        Pe=30*4.0*Ne/(gnum*100000*n*S*PI*D*D/4);  /*平均有效压力bar*/- M# |* g& E  B. Q2 D
        mBo=Ne*ge/(30000000*n*gnum);   /*单缸循环供油量kg */
7 F! x9 N) z7 @        CA=A_SC*PI/180; /*进气关闭时的角度转弧度*/
" N$ p" R: V) B/ _5 q3 k/ l        V=V_CA();/*进气关闭时角度下的气缸容积*/# b0 A% ], b+ }
        P=P_SC;- `& w+ ]. E: W9 P+ i( D" M; D
        T=T_SC;
6 g. g* y6 C8 ?( R! N1 X        index=(int)A_SC;
( ]8 ~) A5 P# D8 ^( j' p& \- u        m_T[index]=T;
( @' T2 P5 `% i, j- P# K3 E        m_P[index]=P;+ o7 s' K& V# H! }" W
        m=P*V/(R*T);/*进气关闭时角度下的气缸内工质质量*/
5 d" e. Z3 [9 e  y% g) A        mL=m-0.01*mBo;/*进气关闭时角度下的气缸内空气质量*/3 z1 R' O* h6 i8 F9 J
    mf=m-mL;
9 ?+ H2 I+ `$ m, [9 s7 q        Tpre=T;
( q2 {4 R- ~( G: M) R' [        an=A_SC+1;% s! r$ Z3 Z% i7 x# G! ?
' K* N) |4 z  S5 q
        do{
+ O0 e( u; f8 Q- r  @; Q+ w8 m, Q. \" X1 P
  /*B 编写欧拉法求解常微分方程程序 */
4 i+ F4 @0 c" e0 \6 J0 K" Z
- d1 Y5 O- S" [' C3 l! g- T, E$ Q        }while(an!=A_SC+1);
' x( U; Z  E4 w+ u3 z* H% @}! l. u4 Q$ }  D6 J: e. {8 U

% V: c  ?* w; U& }6 y% Avoid main(void)
" S  l7 b, L; i  ]{4 o" ^0 Y4 g% ?
        int i;( l% C7 T/ N  F3 h9 E
        FILE *fp;2 n# c% u2 |6 ^6 N! M+ v4 w
        D=0.11;   /*发动机数据按各自的任务书输入 */
& b2 N5 T, n; B$ Y9 G7 r( T6 k9 J        S=0.13;" g+ c  X* M* y8 y  x4 u2 Z
        L=0.21;0 _9 f4 q+ z# `8 Z- D0 M6 n6 I
        ge=236.0;
7 y9 l% M) @' s1 F0 q7 f2 l  m1 N        n=2400;+ l  n8 U0 \; h- Q2 M
        Ne=101568;
3 l9 @" k  D  K. Q# r$ n        gnum=6;  ysb=17;   M=0.7;# Y, V4 o( h5 A: N9 _& p* `
        Hu=41868000;0 G7 `) K) p+ D9 h7 L5 B
        R=287.08;
: H5 L& ~7 H- E. f. i! Z        Pa=101000; /*大气压力*/9 [: I, Q5 Z( J; W: w4 q, j/ n
        Ta=300;    /*大气温度*/
9 v, b: s& Y6 Q& h" N        hs=(735.0+R)*Ta;  /*大气焓值*/7 p; S$ A' f% Y
        P_SC=90000;! Y) |( e3 _( r" O1 ?' Y; }. d9 ^
        T_SC=313;
' ~9 ~( I9 k& k& T) r$ F; c2 u( |: H/ f' U
        A_SC=216; /*进气门关闭*/
* C1 U% `; I4 o. R" [: `        A_CB=350; /*燃烧开始*/
* C/ ?. ^" _7 a( U, A( I+ o) }        A_CE=410; /*燃烧结束*/
3 \  L# U! d$ j" A; f        A_EO=484; /*排气门开启*/
- l# L+ ~9 Z7 W* k6 I: ^" O        A_SO=705; /*进气门开启*/+ @7 t: `% P- z
        A_EC=15;  /*排气门关闭*/: @9 x6 y4 ?! n7 f3 d
9 f+ G: O: e! U6 m7 W5 J
        Lo=14.4;
+ ?- q; H8 D" f1 a+ ^1 P7 S8 v1 E/ L- |6 W$ H4 C
    for(i=0;i<720;i++)' R7 ?7 z+ G3 ]/ B4 A
        {
- j3 R6 y9 I4 @2 j5 e# y                m_P[i]=0;1 G) v9 M& k: C" _1 ~; [
                m_CA[i]=i;, V- b. d$ X2 C" y/ r
                m_T[i]=0;
. \4 ?) M- n$ ^" U3 t        }) {% x5 s; d6 T  F; C& k' ?

( G2 q6 L& R/ a- O# S( d- S        Calculate();
& L. k5 h/ D3 i! B; t9 c& x9 A" G( d, i" Y0 `) ~
    /*C编写数据输出程序,计算结束后按顺序输出0-720转角的“缸压,温度”数据到outdata.txt文件 */6 V0 \9 u; X: k

$ n8 L2 W- w/ i5 T4 }! D}9 V# O& X/ [1 Y
, ^" A$ {! o! b# J7 X
4 |. F- o$ X3 ~: {0 v
回复

使用道具 举报

2#
发表于 2015-6-28 23:45:10 | 只看该作者
不难啊  完全是 把 公司 翻译成 C 又没有用指针跳转的。。。
回复 支持 反对

使用道具 举报

3#
发表于 2015-6-29 01:45:20 | 只看该作者
这是作业的干活吧……
回复 支持 反对

使用道具 举报

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

本版积分规则

小黑屋|手机版|Archiver|机械必威体育网址 ( 京ICP备10217105号-1,京ICP证050210号,浙公网安备33038202004372号 )

GMT+8, 2024-9-22 05:29 , Processed in 0.057808 second(s), 19 queries , Gzip On.

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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