机械必威体育网址

 找回密码
 注册会员

QQ登录

只需一步,快速开始

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

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

[复制链接]
跳转到指定楼层
1#
发表于 2015-6-28 22:58:34 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
#include "math.h"
. T  V7 |7 ?* y, n" x#include "stdio.h"/ F: s! s7 c) N) T' m: Z
#define PI 3.1415926
; S2 [, R; T1 y& W4 B$ k3 b2 D% d: e( x' |$ Q0 p  j
double D,S,L,ge,n,Ne,gnum,ysb,Hu,Lo,M,R,P_SC,T_SC;
; T) S1 V3 q3 ~* I/*缸径、行程、连杆长、比油耗、转速、功率、气缸数、压缩比、低热值、理论空燃比、Weibe函数常数m、气体常数、进气门关闭时压力和温度 */0 p3 v2 D, p: A8 A: N
        double m_T[720],m_P[720],m_a[720];2 |: S. P+ K# N% `
/*气缸温度、压力、瞬时过量空气系数 */- k. E2 U" ^8 W3 [6 q$ W6 J
        int m_CA[720],A_SC,A_CB,A_CE,A_EO,A_SO,A_EC;
- Z" \% ~4 X$ G- G% L        double Pa,Ta,hs,P,V,T,CA,m,mf,nmd,Pe,mBo,mL,dXY;
1 n4 s6 X4 p9 Y3 S8 \        double Cv();- A2 h. ]$ Y% x
        double dV_dCA();
3 x$ R; a6 o( B4 a        double dQw_dCA();
: @3 \2 K+ ]+ D3 O( S        double dQB_dCA();; s; t6 ~) |* b" U
        double U();# r. A  D. a- M
        double V_CA();
; d2 X/ X# D. b+ j2 v2 G        double dU_dnmd();
) A% [/ e' ~( O# o# g* g2 g        double dT_Ys_dCA();
8 J9 y3 ?  b  Q6 {3 S# i) g7 M% b        double dT_Pz_dCA();4 i2 D$ p! t8 Y2 z1 x$ B5 [" ?
        double dT_Rs_dCA();3 ^" j' G# @) P
        double dT_Hq_dCA();1 c7 h( |( p) b6 s2 i! V0 T
        double dT_dCA(double an);
2 V+ s1 {/ O* i4 ?4 \$ j/ X        void Calculate();4 t1 K2 `/ c% x

, D: A4 p6 s; \5 ~9 i8 z: m/* A编写各子函数程序*/: o- q) S- A- A* G* n& o1 L4 n
        double Cv() /*求定容比热*/8 {4 p  ]; k/ H
{
1 f1 y9 U5 k, m: L- d6 F7 m* U+ P( t. j
}
  t, o& v, k. \/ e# |& X) q; W( }) D) g* z
) W0 n% [" t: W7 z
double  dV_dCA() /*求dv/dφ*/) v* Z6 E( l  D0 o6 C
{
7 }; R: c8 P0 }  g
  @. c8 a& S% r: a}
" w/ F% S. f; a: p, s  N/ n
# G8 r! a) o; P' a4 C
. o0 V2 R3 ^2 ?9 {# bdouble V_CA() /*求气缸容积*/
1 I& x! U5 L9 S5 g{: ?" ?5 D+ ^5 B8 K
+ i% c; P7 k# G; {; h
}# z( D2 v8 o( }$ I2 {7 j

; C2 _- m5 J! A( [% [7 a+ X$ I. a$ \5 l5 n5 [2 d
double dQw_dCA() /*求dQw/dφ*/5 a7 l. g3 n+ a+ R
{+ _& K+ q2 @8 Y8 a) D

/ n* K. _* F* [, D3 z9 L}
2 w8 g) Y- G2 [/ H7 M+ V) g0 e; o9 b- Z& R. J$ I
7 c8 o: J) P4 v' Z% h( H
double dQB_dCA() /*求dQB/dφ*/8 f# z; h" [. K
{
$ g/ n& `8 K  r; P3 g# S. F; K) H; u$ |3 i7 Z/ I& k) g, E
}( f2 q- W2 S& t& K! `

9 E5 ?* {7 F3 x8 F) i# q5 {$ s# k& S$ J; K1 Y" q
double U() /*求u*/
. E$ e. m7 u/ a# l# A0 s  f( Y' ?( `5 @{
0 z- |, Q4 Z# k9 u3 U2 l( F7 C" D
% _5 r8 l8 w" Z" K9 `% T}
5 W/ r% y: q( X2 X4 Y
% u* k9 M' j1 t2 h& `
2 p8 F! M$ @: {# b9 n4 _9 `0 I; sdouble dU_dnmd()  /*求du/dλ*/
" U4 \! W5 ?  W, G# B' X{
9 R6 D. H. d) Y. [1 m" [/ {+ l9 B1 p3 t0 v3 j
}0 o8 D9 R  u5 W5 b7 p/ d

% p/ `# ]$ E. C2 L' Y) zdouble dT_Ys_dCA() /*压缩期*/* @6 J" z/ v- X# }# @( k
{0 j( D9 b; B& x* y' L3 U. `6 k

+ r" N: d% V8 y9 d}  K1 N0 S/ r) g! y% O) H
, h% G2 x) l% {1 Z; k3 S
; k1 g  J. C/ D1 r- U9 N; V# D
double dT_Pz_dCA() /*膨胀期*/% Y3 C5 Q1 t3 }) H/ U1 O1 `
{* \2 X  |* u/ r& v  F9 Q
. ]" F+ Y( C2 \1 X9 q6 n6 c) x7 c
}
, ~, H. g' C" {: A1 J( n# }* V# b; g; H1 W6 u% y

, @: H1 A; O7 j( X" r) [double dT_Rs_dCA() /*燃烧期*/0 B2 s- d6 \* D# W
{: _1 [$ p! f6 g0 t$ D( r$ u  N

# i0 d' K  Y1 H  L}
+ A# f  `+ k! T! P0 G+ m1 v9 B/ [
& U; ?) L9 r* Z" m; C; h- P0 m
double dT_dCA(double an) /*求dT/dφ*/7 T; T# q* _: h" m  w: j+ G& u
{
$ E" G4 g  J* X: V2 B        CA=an*PI/180;% A4 K% w* U# V4 p% c: h* e  |
        V=V_CA();; |/ H/ r5 w7 `
        if(A_SC<an && an<A_CB)   return dT_Ys_dCA();1 Z6 T2 u2 @! @7 [1 a
        if(A_CB<=an && an<=A_CE) return dT_Rs_dCA();, D$ v0 g8 ?1 ?! K0 s  _
        if(A_CE<an && an<=A_EO)  return dT_Pz_dCA();
: S" h$ O! f/ s- D& ]: _        if(A_EO<an && an<=A_SO)    /*换气过程不计算,线性赋值,避免零值 */- O4 B$ J" y! y# e( F; r4 o# q
                P=110000+(m_P[(int)A_EO]-110000)*(A_SO-an)/(A_SO-A_EO);$ M  \% w9 N8 S/ _! l, j
    if(A_SO<an || an<A_EC)
! j, ?  w7 P7 ~, ?6 N6 n0 o9 ?) T                P=110000-20000*(an>A_SO?an-A_SO:an-A_SO+720)/(A_EC-A_SO+720);$ j% q7 ^3 ]% q
        if(A_EC<=an && an<=A_SC) P=90000;; v  s2 X" H% ~( T( f2 X: U
        return 0;
1 o& X$ i" `; \$ b# {/ J7 D7 {4 `}
2 W* t. M% W& X+ T9 n3 k* C( D* C; ~% e# r0 H1 ?+ C
void Calculate(void)
! d7 V& G! @4 I$ `* _& H6 A3 B: a{
( y. R/ b$ L2 \3 ^% \    double Tpre,K1,K2,an;( w! P- p3 s0 N8 ?
    int index;- J5 i  L; _8 w
        Pe=30*4.0*Ne/(gnum*100000*n*S*PI*D*D/4);  /*平均有效压力bar*/
* ?! m% z8 C9 U# t        mBo=Ne*ge/(30000000*n*gnum);   /*单缸循环供油量kg */
0 P* _6 _4 \6 o& r! Y8 X8 k; l2 @        CA=A_SC*PI/180; /*进气关闭时的角度转弧度*/
6 j) B: h2 ]' _4 H        V=V_CA();/*进气关闭时角度下的气缸容积*/0 o3 h# ~4 E4 u0 S7 l9 Q
        P=P_SC;# P8 Y/ \+ T, i' h( R" K2 u
        T=T_SC;2 B) O7 f+ S6 f) {, y
        index=(int)A_SC;
5 @( U6 i% O9 U" ?2 V7 }4 F        m_T[index]=T;' U7 c6 D0 v/ I! r/ M
        m_P[index]=P;) E$ ?1 L0 S  c* q2 y8 F  h
        m=P*V/(R*T);/*进气关闭时角度下的气缸内工质质量*/2 \  _3 c# T# g. r5 J3 M8 I  ~
        mL=m-0.01*mBo;/*进气关闭时角度下的气缸内空气质量*/" \+ z3 r) a6 W$ @3 ^
    mf=m-mL;
) N2 [5 X: F. p6 s        Tpre=T;
7 n/ ~, l3 O9 N. f        an=A_SC+1;
7 s: f5 B1 Y6 U; g
8 j3 C2 `* P! m. v; e; u0 O        do{
$ e% k% |, }$ M2 E
# n$ d. h8 ]5 d# g/ R  /*B 编写欧拉法求解常微分方程程序 */; b) x; ^6 S0 `- w  u2 n

# z+ w4 m) ?; p        }while(an!=A_SC+1);4 r! I. u! X1 R4 K5 `
}( @7 ?4 x/ H" W8 L
2 D7 a. y# t% T: t
void main(void)1 T5 e; Q' z' V6 V/ e
{& ^( C/ C* X! K) }5 W$ N9 }8 h0 s$ t
        int i;
5 T" }3 \( J$ n5 M4 D        FILE *fp;+ a; @7 J6 Q. H' c5 C
        D=0.11;   /*发动机数据按各自的任务书输入 */
$ H# n. L/ H$ B' [9 `        S=0.13;3 V2 J" S' v& \! Q- `& ]
        L=0.21;' e! r% P7 c$ f" d
        ge=236.0;0 K4 r3 T( s: w) S6 m  ~
        n=2400;9 n# N% x( T4 _6 ^
        Ne=101568;$ p) Q5 c9 S. M' z* h" W- X
        gnum=6;  ysb=17;   M=0.7;- C6 a" e2 p% x/ A3 X: }) p+ Z$ E1 j
        Hu=41868000;
- R* M- b+ l- c        R=287.08;
" p  T$ ?5 I/ y: T; g! i        Pa=101000; /*大气压力*/
$ ^$ @+ c6 w, F4 Z, K: b. P0 \, K        Ta=300;    /*大气温度*/
4 }3 W- Z6 ^5 I        hs=(735.0+R)*Ta;  /*大气焓值*/
7 k9 C* L4 K6 |- d5 Z5 D# H7 S) F7 H        P_SC=90000;. t& g7 U& H' I. M5 l; u+ g1 y$ V
        T_SC=313;9 Z1 ^0 T! E* }0 A) n% \
/ ?, G! v/ F3 I5 l
        A_SC=216; /*进气门关闭*/
9 _/ a% X# s0 c( M: I  n3 E* s        A_CB=350; /*燃烧开始*/' j0 ~0 M" t6 S" Z& {  _; b  r2 s
        A_CE=410; /*燃烧结束*/$ Y6 E! d5 u* Z( D4 _- j8 B
        A_EO=484; /*排气门开启*/
2 G+ \3 I% [8 q( Y, ?4 R5 D        A_SO=705; /*进气门开启*/8 z, G8 D' }" u) _
        A_EC=15;  /*排气门关闭*/* D& K4 [0 E# R! S# \# T0 u% t
7 d9 a0 W9 @( |3 p# \+ C
        Lo=14.4;
( h( F. o9 V' z7 @- j+ l/ W. V8 A7 n. m- f; n
    for(i=0;i<720;i++)
  b. m! `, p! F6 Y) p        {
' {3 b  u5 W" \7 S                m_P[i]=0;3 H, \# s. W9 l0 r4 ?0 R
                m_CA[i]=i;2 ], g: X" l8 K9 l5 s- q
                m_T[i]=0;2 s# X; H1 }1 W4 W+ g! ~5 N, E
        }
$ U, D( j) Q4 k# b* ]( M1 j2 b! y6 S; @# w* T6 W9 F* d6 n+ n' z
        Calculate();  i3 v, Z) a* d! l4 U! m+ C
; V, i8 i4 ?/ ]! e( G6 B$ N
    /*C编写数据输出程序,计算结束后按顺序输出0-720转角的“缸压,温度”数据到outdata.txt文件 */$ V0 G: j9 r6 I, w

, k3 ]5 ?' Z5 \4 u}
2 h) f- j) E% Y) J  H: _- u8 J, X6 r  S6 k+ w

$ x, l' ]' u! {6 a6 L% n
回复

使用道具 举报

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

使用道具 举报

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-11 12:15 , Processed in 0.054298 second(s), 19 queries , Gzip On.

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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