找回密码
 注册会员

QQ登录

只需一步,快速开始

搜索
查看: 3639|回复: 2

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

[复制链接]
发表于 2015-6-28 22:58:34 | 显示全部楼层 |阅读模式
#include "math.h"+ E, p" |$ U7 Y. S; w8 ?
#include "stdio.h"
; M) a- ]4 ^1 y7 ?6 l( |3 ~#define PI 3.1415926
9 [; g) o1 B' x5 U  c4 ?
" b- E7 F1 D" x, E5 C: Kdouble D,S,L,ge,n,Ne,gnum,ysb,Hu,Lo,M,R,P_SC,T_SC; % R0 {$ e% h9 I
/*缸径、行程、连杆长、比油耗、转速、功率、气缸数、压缩比、低热值、理论空燃比、Weibe函数常数m、气体常数、进气门关闭时压力和温度 */: F5 K( O, h3 a; o
        double m_T[720],m_P[720],m_a[720];
9 X& K1 C, E) n" Y. S( l" K& R+ V/*气缸温度、压力、瞬时过量空气系数 */5 ^- w9 P! w/ [! j
        int m_CA[720],A_SC,A_CB,A_CE,A_EO,A_SO,A_EC;4 |' Q& z7 \( G$ {( ~! ~9 x
        double Pa,Ta,hs,P,V,T,CA,m,mf,nmd,Pe,mBo,mL,dXY;  o4 `( m+ U& {8 @) P
        double Cv();- `6 U/ \+ [8 l
        double dV_dCA();2 t; `' @4 D) V7 K8 f- c2 H
        double dQw_dCA();+ W; Z' S; T& r: w  T) M( H
        double dQB_dCA();
; _0 W* D  t- m8 P9 D        double U();
; c! Z: y8 s* `& v/ G! F        double V_CA();
# m- e' M; W# X9 k) g6 C        double dU_dnmd();
) M- p. o# m) Y6 _8 `5 v5 |9 m3 E        double dT_Ys_dCA();$ x) h/ Y5 t" b9 f* j( S
        double dT_Pz_dCA();
% C& Y  B3 Y& K9 z3 z        double dT_Rs_dCA();" S, L, @  f+ D6 p) R
        double dT_Hq_dCA();! t6 i) V1 a+ t5 _
        double dT_dCA(double an);
3 Z( |' }7 |9 @* \# g        void Calculate();
5 c: X/ Q$ g  G1 i- Y& H6 A2 ]/ Z) A& ^6 U
/* A编写各子函数程序*/+ H5 K2 \( w- z  a) g
        double Cv() /*求定容比热*/
: k2 V! Y. D& u) X9 B$ D( o. Q) ~{$ \1 }, l5 d/ @! b4 z* a

6 ]$ }/ O0 f7 A- D& X2 a% U}
' M- H  Y: h) `9 U: `7 c# d: G  d  y9 s

# I' C- s. q9 edouble  dV_dCA() /*求dv/dφ*/' N, q/ b5 d6 E5 ^; D4 y
{; c8 i8 N& Y) l! c8 I  h
' a# G% ~  V0 z( o' |1 P/ z- f2 }3 l
}8 c7 D3 `+ v; F& J- m; q9 X
: |' O, Z/ ]  b1 k. O$ F
+ F; R: X: A& _( n1 x
double V_CA() /*求气缸容积*/
4 {0 e: V" K& K0 t* X6 U+ d9 F{) I- j' D- I  d8 C
& }. d: n# F- Y, j
}# I6 y' S5 M- ~4 K, e8 K0 h

+ G( A1 u8 V% i4 e& [$ X4 X+ x" Y8 T( y' z  \5 a
double dQw_dCA() /*求dQw/dφ*/1 ?& {" T5 K! y6 M
{  r, {) H% U  ]3 P

- L  s' |4 t4 N9 q" p}
2 A: k7 {( g. m4 p& S4 Q7 x# ?  v
* V- Z  S! \$ I3 d' F. O
double dQB_dCA() /*求dQB/dφ*/1 A1 l% d* l, m+ n. I. e6 i
{
, @( `& r1 Z: d
- W& t6 F: h4 i) b; r$ s+ Y}
* r. O; N! \6 y% D+ @0 p' C
: C" P2 w! ?2 \& k5 J% B& W( X7 t3 b3 I- c+ \% D+ W1 u1 `6 H; {7 N
double U() /*求u*// p4 w2 v% @% L7 g" _
{
1 ^! {+ x6 d: G2 C% p
0 l' {# u) ]3 P, y- O( ~' A. x}
% B1 `6 x8 `2 l- d' ^( n, `$ h$ Y6 p! N6 y' E+ P3 C: X

* v* Q3 n- ^7 ^double dU_dnmd()  /*求du/dλ*/7 i  n  q; @- d( e. n
{
+ ^, {! V, A. i% ^- h
# r1 Y- I3 e! j2 |* h3 z: i}
: T9 ^% g. g1 n, y: Z( @0 A0 O( D6 l( f  H
double dT_Ys_dCA() /*压缩期*/) C5 r  \( M1 ?
{& R7 s" [2 I, I. G# Z, K! A

  M4 R! `4 Y5 Y% B7 S% b}6 t! V* O9 R2 E
# g7 s4 o# D5 C2 a6 R  J6 o
' F0 v: A( Y) c
double dT_Pz_dCA() /*膨胀期*/5 q3 C  o2 {; p' I* K) o
{
( x) M/ Z. i$ ]/ t' ~5 H% j: S& j* Z& _( {7 w  Q
}; ~4 k, F& B! x' \! c4 O
! r, e8 L8 ~$ q9 f# \$ I

( N: U8 i- c  Ldouble dT_Rs_dCA() /*燃烧期*/! m6 j, k5 g* @. L  ^3 K
{
. N9 O5 w% ^' P; I6 Y# @& U8 X/ [
; F3 G* |( T# T; r0 ?' r}
: J  X6 N8 N0 f; @
* L- T% ]. Y3 I! R1 C  i4 ^% R8 a: n8 s4 t9 d2 d& g4 p
double dT_dCA(double an) /*求dT/dφ*/
: w' O% d" p5 `. Y# C8 s" V; w{
, j8 M: O8 I7 T# S. f8 C        CA=an*PI/180;
' u  B, r6 r% U  o2 K( C8 |        V=V_CA();2 W! i7 O5 J7 K
        if(A_SC<an && an<A_CB)   return dT_Ys_dCA();
2 P! ?7 \4 W6 C+ ^0 [, D        if(A_CB<=an && an<=A_CE) return dT_Rs_dCA();
8 L5 Q2 X' p0 Z' W9 B! c- M3 y5 M        if(A_CE<an && an<=A_EO)  return dT_Pz_dCA();& C7 Q- Y0 N% D$ e! Y" a: ?
        if(A_EO<an && an<=A_SO)    /*换气过程不计算,线性赋值,避免零值 */
/ m* }/ X( d: c                P=110000+(m_P[(int)A_EO]-110000)*(A_SO-an)/(A_SO-A_EO);4 Z! D5 C; D8 W' P$ |1 J5 l
    if(A_SO<an || an<A_EC)
3 }5 W! ^! B' ^/ J- ^8 M                P=110000-20000*(an>A_SO?an-A_SO:an-A_SO+720)/(A_EC-A_SO+720);5 k; A  O+ l7 q
        if(A_EC<=an && an<=A_SC) P=90000;
) X; Z% @$ K3 M' _& e5 }/ Y$ @5 ?        return 0;# r* s4 g! \& u6 T2 d1 g
}$ I1 }2 @5 \, B( d3 f
' e2 o! @5 [, L% K
void Calculate(void)
9 _4 o. b: `7 d+ Q# W2 ]3 I{% t9 ~6 ~% u6 {1 q( i
    double Tpre,K1,K2,an;2 S' b; C3 M6 c1 V9 K" K% @( u. {
    int index;( G: w' y$ f, ]) P/ P7 g7 `% F
        Pe=30*4.0*Ne/(gnum*100000*n*S*PI*D*D/4);  /*平均有效压力bar*/
* Z: `/ ~& U6 w        mBo=Ne*ge/(30000000*n*gnum);   /*单缸循环供油量kg */
- ~* R' V/ G3 w& `# k$ o( u        CA=A_SC*PI/180; /*进气关闭时的角度转弧度*/
, s1 _5 z9 w6 m/ V8 O- M; g        V=V_CA();/*进气关闭时角度下的气缸容积*/" ]  l7 F; I! D% N- n* S
        P=P_SC;
8 r' m' a5 c; ?* p' s        T=T_SC;
& w+ y) m7 C/ k/ A: C7 K        index=(int)A_SC;
% J$ ], A: z* E$ E        m_T[index]=T;
4 l: }8 ?& X! R. g) o  f        m_P[index]=P;
2 Q6 G: S) x2 K4 n1 R        m=P*V/(R*T);/*进气关闭时角度下的气缸内工质质量*/
4 o! A, e) t) H/ Z* G+ t8 w        mL=m-0.01*mBo;/*进气关闭时角度下的气缸内空气质量*// u* O/ f' L$ ^
    mf=m-mL;  C. w: N$ Q# b& R) D, f9 K
        Tpre=T;
6 _. s' |6 C! F9 x2 I+ q        an=A_SC+1;
% ]' V& S: x+ Y+ \  x
. Q+ |- g. j4 I& d$ s8 q2 }6 a        do{
3 r- H2 g5 q1 S$ U1 s  S9 d' X! T, \9 D
  /*B 编写欧拉法求解常微分方程程序 */
# P9 ~3 P: ~9 ]2 T: b: N+ z% ~+ Q' M3 q+ Z# u; O& F$ s
        }while(an!=A_SC+1);9 _' W# I4 X6 p& A3 g
}
: u# C+ e1 x# C5 y
, x: v, d4 r# c" [1 r+ m$ k# Z8 pvoid main(void)( V/ H( V( s6 t
{
  M) x/ M7 E1 e9 n        int i;# d9 q! }6 j0 e5 m! p
        FILE *fp;
* V; C  z' v" U1 I. z" {: @5 @        D=0.11;   /*发动机数据按各自的任务书输入 */4 z* |) _" W9 u7 f: h; V
        S=0.13;
( a% J: A1 i% k! G0 s2 F2 m# X4 T        L=0.21;" k/ c+ y2 \* `; v' ~
        ge=236.0;3 M* p( }$ V. [9 T$ k
        n=2400;
" \/ m  Q* t7 j. y$ S        Ne=101568;
- b3 X, q7 z- u/ i' W        gnum=6;  ysb=17;   M=0.7;8 }0 P: m1 @/ q" m
        Hu=41868000;
# f0 g3 S* a+ G, V        R=287.08;
/ A: r2 m) }; k. O7 Y        Pa=101000; /*大气压力*// S$ v" ?' U5 U9 L  V# b4 D
        Ta=300;    /*大气温度*/
2 i( a  C4 B: l9 {8 Y; u9 D        hs=(735.0+R)*Ta;  /*大气焓值*/
4 Z6 K7 ?  f2 m8 N        P_SC=90000;. }% L) J) v/ k4 g) N; W
        T_SC=313;
' L4 l. |" D/ ^7 M3 t0 N
8 q6 j3 F5 ^, |1 M" C% P        A_SC=216; /*进气门关闭*/
% G/ p0 W0 H# D6 D! V, W        A_CB=350; /*燃烧开始*/
. T  t2 \3 w& e; t1 j  V5 h: K: r        A_CE=410; /*燃烧结束*/
0 _& o' ?4 R  k, {- p        A_EO=484; /*排气门开启*/# M4 h4 D9 t3 F" [4 W
        A_SO=705; /*进气门开启*/2 r; y  e. f* P" `- y
        A_EC=15;  /*排气门关闭*/
' q7 S2 r0 ~2 g  R" c$ o# {9 o+ q- ~" q
        Lo=14.4;5 u. g/ R; H6 t6 B, {4 `- o

: R/ Y; E! w' L) n! ?$ |    for(i=0;i<720;i++)
; d6 g- S5 d3 _9 |        {
% g/ g0 e" w' {& _" N8 o) m, W                m_P[i]=0;1 R+ _6 A) {0 H( [: `
                m_CA[i]=i;
, V1 h- l& V! }0 q+ a& e: \( F                m_T[i]=0;3 W. E0 K  C% H. E5 n; a6 B. @8 D: @
        }
  R/ i4 e9 }; y7 k" R: `1 {: k, g+ `1 Z9 F: W  g. s' f3 \
        Calculate();: Q) [5 e( s) r! j" B
/ s$ D/ u8 z& |: `, ~1 J' c. d
    /*C编写数据输出程序,计算结束后按顺序输出0-720转角的“缸压,温度”数据到outdata.txt文件 */6 }- x2 |6 h, e+ r+ Z! n- \
  b0 t- P' L2 h5 B
}! U3 ?/ y) o4 N/ s' C3 [
% \) B/ I; p4 ?5 z9 T0 f

6 R" t4 m2 c3 b5 G6 G- \
回复

使用道具 举报

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

本版积分规则

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

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

Powered by Discuz! X3.5 Licensed

© 2001-2025 Discuz! Team.

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