机械社区

 找回密码
 注册会员

QQ登录

只需一步,快速开始

搜索
查看: 3111|回复: 2

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

[复制链接]
发表于 2015-6-28 22:58:34 | 显示全部楼层 |阅读模式
#include "math.h", r, {- h) F  q5 |
#include "stdio.h"0 b4 t6 Y$ [* e! u
#define PI 3.1415926
5 {% Q6 U, l9 E1 D! j. o' U8 s" D
* N: Q/ Q6 f( J" Kdouble D,S,L,ge,n,Ne,gnum,ysb,Hu,Lo,M,R,P_SC,T_SC;
* S! u0 k) G) @/*缸径、行程、连杆长、比油耗、转速、功率、气缸数、压缩比、低热值、理论空燃比、Weibe函数常数m、气体常数、进气门关闭时压力和温度 */
2 h1 P7 r* K$ F$ ~% r        double m_T[720],m_P[720],m_a[720];* a* @# B: v  X! a7 O- H  M
/*气缸温度、压力、瞬时过量空气系数 */
, b( V) v6 [0 S7 e" u5 [# T        int m_CA[720],A_SC,A_CB,A_CE,A_EO,A_SO,A_EC;. r& R5 E. S( ]" Z: o. t( x
        double Pa,Ta,hs,P,V,T,CA,m,mf,nmd,Pe,mBo,mL,dXY;0 d' Y$ a1 L& ^  x" b) r
        double Cv();
! S) u" s' u* A        double dV_dCA();
+ b; B/ |$ c$ Q6 X' I& ^; V        double dQw_dCA();! q+ p: n' |/ K4 h5 \. o
        double dQB_dCA();
3 S, o/ g& `+ _2 Z( X        double U();' s: Z- {5 V' e0 e* }
        double V_CA();
+ Z6 b6 \+ q; ^. C        double dU_dnmd();
5 B- h2 N, q. e# M  ~/ N: w        double dT_Ys_dCA();
, c9 ^! y4 t. j4 e& x8 r# h6 N        double dT_Pz_dCA();5 Y" D4 B* k& e+ x5 H4 w& E# k
        double dT_Rs_dCA();4 t5 D3 A5 N  d
        double dT_Hq_dCA();
, E0 d! u$ F( V0 x( Q, c; [6 \        double dT_dCA(double an);
; l; h5 O  _+ D/ p7 [$ |        void Calculate();
/ [* }' l% x$ a" D8 Q
0 a4 d8 ]  R9 z9 e/* A编写各子函数程序*/' m, T3 _0 M  B! _2 j. Z
        double Cv() /*求定容比热*/
: s* H  J. n7 f/ s- Q& \( K) f' Q9 e{
! y7 E. `4 r8 G* F
/ A6 p; `. w1 c) g; C) h}1 r8 E! R( U( a: g

8 N0 h8 M' c7 k6 L+ w" F8 o
7 ]6 w, Q+ M7 M5 ^3 a0 @9 `, b9 |; Kdouble  dV_dCA() /*求dv/dφ*/
8 ?- y! d" R9 G; I; A{
+ G3 N. F" W: s: e& p1 y1 d" F5 h1 Q, H2 U. J$ _$ Q; G
}. |% W. X% k/ V- a6 e

1 w- I0 J. f- v) ^2 }6 F  w9 w
# p/ I2 v2 Y3 [double V_CA() /*求气缸容积*/- [* L- F2 e* ~/ ?- V0 O$ m
{
* ~, m" A- c6 j% G( O
- a# y! Q+ ]$ ^6 O6 v}! r1 F8 o- O9 E

! o9 T7 s' ]: P) H, b  q1 `# q+ u5 F" c+ c1 y2 F
double dQw_dCA() /*求dQw/dφ*/- }# e0 }& E6 `0 A& k- p
{& ?( k3 c% s$ L; j1 s

) @8 L% Z: X7 g8 F1 o. P}" p7 Z. z% D) U: K: D( l
+ R5 D3 k; M4 x% l- P( [2 f! p
4 |4 ~( A2 d- n6 T- c+ b/ ^% }
double dQB_dCA() /*求dQB/dφ*/6 q9 T8 K2 F$ }# w8 O: s4 T) @/ E
{/ M! F9 P4 g8 H, p% h9 K8 p

: U  [) C5 c" m/ V- [) k& O0 `5 t}
/ E3 J1 \  Q$ g3 U/ q1 L) m0 a: x7 i6 |3 W  b* r: z/ b
+ [, g1 B" g0 ]0 ~0 n
double U() /*求u*/, x: ]- J1 X% ?  e4 m/ o: e; ~3 N
{, q' h7 m5 q8 B) g2 Z
; o/ U8 o! h/ L0 l3 Y
}: J3 [7 q0 P: k/ E
. Q: O% k& D5 i! i  q% n

9 f( `! D3 N' h# e" _) {double dU_dnmd()  /*求du/dλ*/
4 W+ A: S" d, W4 A; W6 R{
% z9 o2 Y0 A. p$ q8 j/ X
. C4 b  x- s& {: m}
  b. Q$ I( {9 _1 t
4 m# k* |+ h; f6 qdouble dT_Ys_dCA() /*压缩期*/
  x" q1 p8 l- C/ v, m' L{* _7 l$ x$ Y$ H
) l9 U. u8 y& \" C7 [& |
}: b+ s/ a- k, U
' }- n" U- l) L/ @
( f9 P0 r% r* p, l5 V3 e" \  v
double dT_Pz_dCA() /*膨胀期*/
+ r  z1 \* {5 F; J4 \8 B2 J0 g{
7 a. Y2 s; ^- h6 b
! `+ i3 L. P. J  s# `}* p. w# i9 F  U1 i+ w3 C
7 J( W+ T  s  o( ?* E$ ?" Z. [( }- n$ X

$ s' W  |9 ?9 X4 O7 \- ?7 Y% ydouble dT_Rs_dCA() /*燃烧期*/
1 c0 e9 L0 G0 M8 P{
% h, ~8 N' I4 z0 Q% X. k: t0 P: n* ^& R) Z# T  F8 i
}
- b2 @% B. b2 E# |7 C8 T$ U# {" a4 |; _$ e$ Z
6 ^* t$ Z0 N8 Y
double dT_dCA(double an) /*求dT/dφ*/( V) @0 Q! r! V
{
$ r$ R: p* y* W1 ?7 O  B( A& Q. _        CA=an*PI/180;- E/ O( K$ D+ u" O" p2 B3 i
        V=V_CA();
$ U' S4 b/ R' l6 Y. z; d        if(A_SC<an && an<A_CB)   return dT_Ys_dCA();; U9 J" q$ h. S& {
        if(A_CB<=an && an<=A_CE) return dT_Rs_dCA();
! x7 L7 _* s6 p        if(A_CE<an && an<=A_EO)  return dT_Pz_dCA();
0 M/ i. f5 c! F8 n9 L        if(A_EO<an && an<=A_SO)    /*换气过程不计算,线性赋值,避免零值 */6 j" f8 b+ e- i5 `) d
                P=110000+(m_P[(int)A_EO]-110000)*(A_SO-an)/(A_SO-A_EO);) ?9 V0 P3 }; j: f5 r
    if(A_SO<an || an<A_EC) # S/ Q$ |2 b9 w1 m; y% Q+ f- \
                P=110000-20000*(an>A_SO?an-A_SO:an-A_SO+720)/(A_EC-A_SO+720);! B% E) L- L' R+ D& Y2 A+ |
        if(A_EC<=an && an<=A_SC) P=90000;
/ Y! {' \, z  p        return 0;
) P4 D0 \& f. h2 }0 ^}
- i# Q$ R6 t. |  S
1 o" p7 x% O; ^* |/ qvoid Calculate(void)
2 G) W5 I, l, F6 T% {5 k( H$ z{
& _3 K8 v. T& s7 h9 B    double Tpre,K1,K2,an;$ c1 c! P. |9 ]0 L4 e+ Q
    int index;. q8 H( X0 K8 b$ Y
        Pe=30*4.0*Ne/(gnum*100000*n*S*PI*D*D/4);  /*平均有效压力bar*/
7 j0 a! Y: p( u: ]0 @4 P        mBo=Ne*ge/(30000000*n*gnum);   /*单缸循环供油量kg */) r/ C2 p, G' Y, k
        CA=A_SC*PI/180; /*进气关闭时的角度转弧度*/
6 s- O% d, Z3 r0 u% Z) ~        V=V_CA();/*进气关闭时角度下的气缸容积*/0 M0 y& o7 _1 P  Z
        P=P_SC;6 T9 ^+ n  Y. y) `, z
        T=T_SC;0 [' _, O' o& D9 t) U6 T  b  M
        index=(int)A_SC;
0 N& A* C- R/ ]% P7 }, m3 n        m_T[index]=T;
. f: w/ U: R  S. m- Y        m_P[index]=P;+ T4 M% J' N" z+ C9 m6 ]
        m=P*V/(R*T);/*进气关闭时角度下的气缸内工质质量*/
: U' [7 m) J! ?+ ?$ B        mL=m-0.01*mBo;/*进气关闭时角度下的气缸内空气质量*/  s! y! c" Y4 R1 E' I/ }$ S
    mf=m-mL;8 Q; n/ d0 H; k
        Tpre=T;9 w/ l$ ]. n0 P" P
        an=A_SC+1;9 S! \' l2 w8 {% ]: X
/ s8 y1 T: B, j0 W% ~
        do{! a8 D  r  W) E, m8 V8 p# Z

) w% y, \0 D/ o  /*B 编写欧拉法求解常微分方程程序 */
! W4 ~, y. C! f2 I  o
# r( b( }4 t2 |1 Z        }while(an!=A_SC+1);
8 L( }9 Q7 I; e4 M7 X}
- Q% [; f$ s2 i- w& D
+ N2 t. y+ Z! i) E4 D9 X+ dvoid main(void)
6 B9 Y  H+ w- l! c$ V{
3 Y6 F9 P! y1 a; t        int i;2 [& A/ |" }, Q8 i
        FILE *fp;% n! I8 ]' o; S0 Z4 P- ]+ \
        D=0.11;   /*发动机数据按各自的任务书输入 */4 j5 d. {# h& {4 j
        S=0.13;- \$ c' ^0 G3 A- v" F+ ?  ~/ Z3 R
        L=0.21;; {  n6 F+ E1 Q* W8 J) U# l
        ge=236.0;
+ ~6 H; W+ G9 [7 P        n=2400;  X# M0 z! Q( u; r( Q1 C2 ]' w
        Ne=101568;
% a# }: c% K' a  m8 P4 o, h" B) N        gnum=6;  ysb=17;   M=0.7;. B6 R" j. [) a2 N( S3 j9 p
        Hu=41868000;
2 D" F* s) ]) ?6 p: |4 T        R=287.08;
  N3 `) f3 \4 g4 B        Pa=101000; /*大气压力*/
, P3 h7 N2 k1 Y3 \3 C* U# Q        Ta=300;    /*大气温度*/
# Y3 u, A* o; D1 m+ ^        hs=(735.0+R)*Ta;  /*大气焓值*/
# e! ^0 f! d' b3 \        P_SC=90000;0 ]9 p# t- P+ {/ K. O9 S9 x- I
        T_SC=313;& x4 N/ O; q, A! j% B
( `3 G+ W- A, }6 U+ f
        A_SC=216; /*进气门关闭*/
7 G& g1 k& t" X! g7 r- K2 U' L4 Y7 \        A_CB=350; /*燃烧开始*/) ~4 r) e6 W0 b0 I0 v! X
        A_CE=410; /*燃烧结束*/9 C6 I! Y. y3 a5 _  k
        A_EO=484; /*排气门开启*/
% v$ |# u8 q: n+ s1 K; _7 ]: h        A_SO=705; /*进气门开启*/
( \" N7 e# g  r" U6 \- V6 D: {        A_EC=15;  /*排气门关闭*/
# C# F- z& x; v$ e# \
; s7 }6 l; r! m( H" t8 {        Lo=14.4;5 M9 O5 E- D4 b5 B" v% z
$ j3 l/ y8 \6 N
    for(i=0;i<720;i++)
, p* o3 y9 I% @( I        {; g6 T* R7 _1 T9 `2 K9 Y
                m_P[i]=0;
: t4 V3 i& A& k$ H                m_CA[i]=i;/ n6 R+ c, |5 P3 r: Q! f$ _
                m_T[i]=0;
3 K. i4 ~6 x1 G        }- l- `* O7 G; l  q: g! c3 |0 a$ l
8 U' Y5 T5 k4 k( I# y
        Calculate();
6 n; L6 p2 K. Q) h6 m+ s' R7 V3 w
    /*C编写数据输出程序,计算结束后按顺序输出0-720转角的“缸压,温度”数据到outdata.txt文件 */! ?$ }3 [  h  t  `" Z* ^: D& U
8 a: N+ I7 e9 y$ k& S! L7 F+ i
}6 ]: {9 G. \$ \0 d

# M; c  W9 f! P% N: l! f, ~4 g; E7 K$ k
回复

使用道具 举报

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

使用道具 举报

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-25 10:02 , Processed in 0.055515 second(s), 20 queries , Gzip On.

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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