机械必威体育网址

 找回密码
 注册会员

QQ登录

只需一步,快速开始

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

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

[复制链接]
跳转到指定楼层
1#
发表于 2015-6-28 22:58:34 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
#include "math.h"
+ m" s+ h& p! t$ k- V- Q#include "stdio.h"
+ G9 b' C* n( n4 \3 j* w4 j9 l$ r#define PI 3.1415926  l* y8 r- ]8 N6 x8 {

/ F" p) b2 }0 }* c" Ddouble D,S,L,ge,n,Ne,gnum,ysb,Hu,Lo,M,R,P_SC,T_SC;
, }# M& D$ {" V# t- O- @  x% J/*缸径、行程、连杆长、比油耗、转速、功率、气缸数、压缩比、低热值、理论空燃比、Weibe函数常数m、气体常数、进气门关闭时压力和温度 */0 {& C1 g7 w) ]4 \- b5 S+ f
        double m_T[720],m_P[720],m_a[720];
/ M- F; y# `9 U: O' x/ ^/*气缸温度、压力、瞬时过量空气系数 */
% ^7 K: z# W& k# a% q3 H        int m_CA[720],A_SC,A_CB,A_CE,A_EO,A_SO,A_EC;, ^: H$ V# N7 F& I5 {0 m6 R, K# ]
        double Pa,Ta,hs,P,V,T,CA,m,mf,nmd,Pe,mBo,mL,dXY;
4 ?/ d8 r3 \: \9 P. f        double Cv();  o9 X) U+ n8 V; v- b4 P7 t
        double dV_dCA();
" V( n8 z: f: |5 r  n% }        double dQw_dCA();
" u; n" y& x3 a9 Y9 m' r/ }; Y        double dQB_dCA();
" E4 i) y& b) ~2 A5 m' H        double U();! B1 Q0 x6 _1 V3 v. ^6 Q
        double V_CA();
* _6 V5 {+ \. T) o4 M9 c$ W- H3 S$ ]        double dU_dnmd();0 a+ m' X5 e9 m# J7 u7 D  s8 y
        double dT_Ys_dCA();
8 F2 W* S$ o% W+ }* _: g8 i        double dT_Pz_dCA();
8 F5 k4 E/ n- f* [        double dT_Rs_dCA();
; I- R, y4 o. u) f# r  s6 M        double dT_Hq_dCA();" s, m6 K$ _7 {% z4 q
        double dT_dCA(double an);
2 P( d# N2 _+ C' p        void Calculate();0 K; N& N- [; O. |3 ^

) i2 D6 B" ]0 U: E8 q, z2 ]/* A编写各子函数程序*/7 F1 F4 q! x( d; ?7 Z5 Q
        double Cv() /*求定容比热*/
5 x. ~1 B! y9 o& h- l{* y1 v6 S0 X6 u( A* r
7 v2 ~$ L& \5 G: i3 ~. E9 ?
}
& |' S6 o' D9 E' V$ v7 P  t7 M4 |* o3 p. _- A$ d
4 M* h, e4 w+ T- ~2 b/ B
double  dV_dCA() /*求dv/dφ*/- x& R4 J1 @- o
{
& R. ^8 Y1 {* b8 z2 |) m
/ ^; L: u: f% V2 O! i2 B/ G}
: y( q. i0 B7 ?; D% v% x0 q: v  P* x# b  z$ l4 k
6 D- M4 j! j8 y; r& D& N0 K' p6 u
double V_CA() /*求气缸容积*/4 s' m3 \% r8 T, a" X8 A/ G
{( f  M, m2 n' j. g) p

0 C2 u3 l3 T" A2 u+ I}
2 v) }# N5 S( I, ?5 O7 m5 E
; ?" Z9 d1 ?# z
1 R4 n4 P8 N- V# Y- K5 C/ ldouble dQw_dCA() /*求dQw/dφ*// X$ \2 L7 S: v; i5 U% V
{
& f7 L# \' v$ P- F9 V% z; g2 [% x) C
}
( G5 N6 M% m3 y, G$ l' R, ^
) T6 o% t; c) w; N( G! t9 v6 u! E8 H. d7 K* w7 R
double dQB_dCA() /*求dQB/dφ*/2 ?" U  O" {& w$ S1 V% q
{$ d; d/ g# y2 ]0 E& r% W
- j4 @  Q# R# i' P
}/ L8 O9 n" d8 e* ?/ Z6 W

: ?) g- h$ |. E* p5 x& G
3 |" l, K! K( w- N0 Adouble U() /*求u*/
) A& a9 l: |$ S( k2 z{
4 H0 z% k# e9 X: x
, T' K* }: l9 Z2 ?6 \  Z}
% D0 c- a4 d0 W0 r4 J& c& u& D5 J& u( g9 E
# F- q# `: b! Z" g
double dU_dnmd()  /*求du/dλ*/
8 P: ^3 \: y& a; f{
0 Y/ u/ K  o. N/ F7 f! L( C  s3 M$ [5 w0 ]: X$ j2 \' ?$ ]6 `
}5 P. h( L0 x( m. Q  R+ [3 R+ i! w

/ i( o0 r+ u4 I& m9 V) }double dT_Ys_dCA() /*压缩期*/
8 U% K: B4 F1 A' ^! _{
7 X# Y2 i2 g) L! N. ]8 E) z5 L
$ k. p2 x  h4 M( N}- P2 ?9 Z9 K' |' m6 j+ R: e
) Q/ y1 z( z& N1 R
# q/ V+ s7 i6 R9 N. U7 G
double dT_Pz_dCA() /*膨胀期*/1 P4 g8 i( Q; x
{& \5 z0 B- x- j6 o9 C
% |. U) b2 a8 G: u7 e9 e$ ^
}
1 A) m: J/ p* e% U) S
8 F  U: X2 r) i. n; [* j
; i1 J% x" P$ O/ ~6 A! _# e, hdouble dT_Rs_dCA() /*燃烧期*/
1 o  y7 o, T" w& ?( d' U{
0 X% q6 w0 }9 Q; E, ~# f# A! \& `* \) j1 R8 }- Y: c6 O! S
}5 }/ F4 D1 @# K: f- M9 `/ @

8 u' K1 B7 L% P: p$ J7 k' Q. P% Y9 a
double dT_dCA(double an) /*求dT/dφ*/
" K3 w0 J) i4 M" p1 n- ?{% @( V4 m% M2 O; O! A
        CA=an*PI/180;
, A' t8 K! B( ?" z7 y        V=V_CA();7 X0 h1 z/ D2 {" }+ m  A! d' n
        if(A_SC<an && an<A_CB)   return dT_Ys_dCA();
; L4 f  \& ]# \- ~$ K$ }        if(A_CB<=an && an<=A_CE) return dT_Rs_dCA();
0 S  }7 s& s9 ^: |        if(A_CE<an && an<=A_EO)  return dT_Pz_dCA();/ s7 y) d& q8 _( ]& V1 g% w* p) h& J1 O
        if(A_EO<an && an<=A_SO)    /*换气过程不计算,线性赋值,避免零值 */
/ t, v5 i) a$ ^" I; i                P=110000+(m_P[(int)A_EO]-110000)*(A_SO-an)/(A_SO-A_EO);- ?* v3 ]+ ?  `. H* ^# q
    if(A_SO<an || an<A_EC) / ~8 ^& `* q! _3 s+ P& h9 c
                P=110000-20000*(an>A_SO?an-A_SO:an-A_SO+720)/(A_EC-A_SO+720);" ^. f. b- V  V  j0 R6 [
        if(A_EC<=an && an<=A_SC) P=90000;* [7 b( g! i, s* j
        return 0;
) f  O6 G7 J5 G6 |4 L}
. h* M4 @' K# T% N6 ]) ]+ K! u' R/ y+ x3 P; U
void Calculate(void)
/ v: O. q8 k! P& {6 v{
" g, A# }$ S' V5 Y3 s' L) ?9 B    double Tpre,K1,K2,an;
; I( E0 {8 a- Y) D    int index;
6 y5 L2 f% ]* ^& E        Pe=30*4.0*Ne/(gnum*100000*n*S*PI*D*D/4);  /*平均有效压力bar*/2 L- S8 i% c& V( }* z' ?8 G
        mBo=Ne*ge/(30000000*n*gnum);   /*单缸循环供油量kg */
0 K2 _+ n7 L$ m1 T5 L        CA=A_SC*PI/180; /*进气关闭时的角度转弧度*/; K- ]0 p+ M4 S9 s! |' }
        V=V_CA();/*进气关闭时角度下的气缸容积*/
/ K$ G. k( E1 ?        P=P_SC;0 S5 @4 C( C1 b! h% X+ W8 o* y) F
        T=T_SC;6 q+ D1 P4 c" {
        index=(int)A_SC;
: `# H: R0 `. m( q$ H0 }        m_T[index]=T;/ J+ Y( b4 s9 D1 X: n
        m_P[index]=P;
3 c0 _  i0 Q, V  Q  u        m=P*V/(R*T);/*进气关闭时角度下的气缸内工质质量*/
& L) E: o. [# q        mL=m-0.01*mBo;/*进气关闭时角度下的气缸内空气质量*/
8 s* [  }3 F6 l5 s9 H    mf=m-mL;
: T/ }8 u* M! `        Tpre=T;0 U: \8 w5 n: V$ v- o5 S$ m- F; J
        an=A_SC+1;
' `- K, P2 G" ?- Y8 o3 z( q! s6 }
2 T  S7 d, h7 t        do{
2 l7 n+ J+ X9 r) Z4 `: h; n4 R2 I
" r/ v. ], V& \! ^" Q6 U  /*B 编写欧拉法求解常微分方程程序 */3 B& g5 ^- y# K- h2 K0 A

! ]( o, b9 i7 i- J  S; E7 H* t        }while(an!=A_SC+1);
4 X4 l; U: K* A- ~9 x' Q9 y) R}' K, h* D: v& Y, {7 L- ~' {

3 k* @* N1 d8 f+ S2 \( S# pvoid main(void): |8 K5 I- Z5 p, q1 }) `
{* b3 N" q: G6 b" U3 k4 [& c
        int i;
# k' [, k" I  ?7 S        FILE *fp;1 Y: _# ]4 X) D
        D=0.11;   /*发动机数据按各自的任务书输入 */
5 |7 G1 L- i; A( @" `        S=0.13;8 _% U# W# ~/ M% l% K# ?
        L=0.21;
# B' \' r2 m2 g+ u4 X+ c) z+ i        ge=236.0;3 S  Q$ W, I5 _" z
        n=2400;: H. T6 a. @' ?3 L  Q5 X
        Ne=101568;2 V; V- M, X8 C
        gnum=6;  ysb=17;   M=0.7;4 {+ m' c6 S( \/ n8 h  L  A
        Hu=41868000;7 B% I  k4 i: Z! I- x
        R=287.08;
& \& _* n0 t4 _8 F        Pa=101000; /*大气压力*/
) s! ^) z/ g+ x7 _9 y; ]0 T0 z        Ta=300;    /*大气温度*/
0 f3 W. m  x: Q        hs=(735.0+R)*Ta;  /*大气焓值*/) L/ w4 X0 @; x- i
        P_SC=90000;( T6 R& @8 _/ D8 D" v
        T_SC=313;2 D0 \, m% @: M  N$ _

( Q6 t% \7 |) p: t. W        A_SC=216; /*进气门关闭*/
7 }( K% j( u/ G. O        A_CB=350; /*燃烧开始*/
- T. q0 M* O9 X6 ?! m4 h# d        A_CE=410; /*燃烧结束*/
, @$ ?) i; B; J# T& A- B        A_EO=484; /*排气门开启*/
# b, e/ E$ m; S+ A        A_SO=705; /*进气门开启*/* x( L% x; y, Z+ C& B, w
        A_EC=15;  /*排气门关闭*/1 g3 h3 P) n/ O& E7 V% o( B- f

- I+ C' s& S/ ^/ i8 I        Lo=14.4;
% P0 p0 R' }  B9 j+ j, s
+ N* [- {$ n. R2 H    for(i=0;i<720;i++)
' i2 D" d8 Z6 x1 o  E3 H$ o$ M" k        {- p/ J: D* `# @0 [3 W  V
                m_P[i]=0;" N. F: y# v. j& t
                m_CA[i]=i;6 ^! b' R$ i) x: g
                m_T[i]=0;& P$ c8 Z; q2 E, \, @
        }" h9 f$ w$ ]/ z+ @: I5 T* W
4 o! ]7 A- N7 l. Y- b
        Calculate();
" d- O6 s9 i3 B2 L; y. s1 Q8 |8 d4 r6 Q# X. M' M! e4 w) M! i. K- ]
    /*C编写数据输出程序,计算结束后按顺序输出0-720转角的“缸压,温度”数据到outdata.txt文件 */, F( e7 e, \5 e, H

/ g5 I. P: J7 c}2 c1 G; u1 t! O7 v- Q
4 I2 R% i1 c3 G& b

. O2 f: a1 H; A1 \% N( @: f( i2 |1 H
回复

使用道具 举报

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-2-19 07:04 , Processed in 0.082621 second(s), 16 queries , Gzip On.

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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