|
#include "math.h" I3 s5 L0 s5 O% B3 G$ V* K5 M R
#include "stdio.h"
2 ~' _! m- L( w, }#define PI 3.14159261 [+ E, e, @) j; S8 t/ s
& d' s" V- Q! Q& }double D,S,L,ge,n,Ne,gnum,ysb,Hu,Lo,M,R,P_SC,T_SC;
( V. Z$ |4 f5 \) Q; q/*缸径、行程、连杆长、比油耗、转速、功率、气缸数、压缩比、低热值、理论空燃比、Weibe函数常数m、气体常数、进气门关闭时压力和温度 */
: ~+ H4 g' b! X" I* E double m_T[720],m_P[720],m_a[720];5 u9 z) m. }1 t; k) l
/*气缸温度、压力、瞬时过量空气系数 */9 q* }' q" p$ V2 {2 q
int m_CA[720],A_SC,A_CB,A_CE,A_EO,A_SO,A_EC;6 V( _. ?+ {# B
double Pa,Ta,hs,P,V,T,CA,m,mf,nmd,Pe,mBo,mL,dXY; N4 ]( G* c! @0 e( _: Y5 Y+ q8 n
double Cv();
. S& b8 C! n- y7 W7 ?% w double dV_dCA();/ @, T$ l3 e" ]1 ~, c2 b
double dQw_dCA(); d+ i. ?* T* [1 J; |1 I/ y/ q4 l
double dQB_dCA();2 S' A6 }: u+ V4 O( A
double U();
0 p& u2 G0 F6 h1 y% R6 E double V_CA();
) L0 N2 _( N5 R1 Y2 ? double dU_dnmd();
1 a* L# u' z! \8 s; w7 f$ Z double dT_Ys_dCA();& E; D. x3 v' k7 }- k- @8 @
double dT_Pz_dCA();; H3 S. @# `9 `$ j- l
double dT_Rs_dCA();
4 J! ]. k& |! r' \2 S double dT_Hq_dCA();7 }& g7 a" w& q" ?, l/ P
double dT_dCA(double an);& R8 B7 s4 C$ O! ^7 O& |
void Calculate();
' Q* d# j( G+ J0 h
$ y% A# e& h; q/ |6 H8 L/* A编写各子函数程序*/
3 [# P. j* `# g5 x* Q double Cv() /*求定容比热*/
5 B1 m7 l$ P$ b5 L1 p{3 a6 ]# r! {9 S! h3 f. e
. K6 j* I$ k! F}
/ a) L: g {# S: N3 @: C5 L) H8 j+ U+ c4 @
5 z, q8 n }8 D6 _! ?
double dV_dCA() /*求dv/dφ*/
* G: E, _' U# t/ `! {! ~# c0 X{3 T0 [7 G7 S6 Z& g4 b+ g; F
& j1 W3 l6 ~: n7 g c0 _}& L% f0 H- B: @6 O
7 \+ r) W0 |. s1 J" \& H5 }# S
) H4 U9 @# m+ U: b. Cdouble V_CA() /*求气缸容积*/: F/ V- c1 p+ i* Q; L. H' l) n
{
7 y( F& b6 _) O' h( P) b8 ?9 \2 l) X( y/ x
}! P8 @/ a; d/ B
7 ^: i5 D0 [; L9 X4 R' J1 ^6 Q2 Z4 W1 {9 N/ @% K
double dQw_dCA() /*求dQw/dφ*/
$ g$ W! _2 I% @9 x; _/ S- N{, p/ @" v6 e7 o) B
* e; B( L. E9 j( c}9 t( o2 x& v* n1 l% \) E
% i a& O* T T8 Q. K" d! E; [
$ O& c+ j1 b# |, B6 idouble dQB_dCA() /*求dQB/dφ*/! x1 i% G0 ]/ e+ l3 J# s
{
7 U+ Y9 i4 m u5 E' v% g7 T6 P# y( g' |/ E, T0 Q6 H0 a0 x. G
}$ h* Q. ~) X" h# a/ k9 H0 Z P
: \6 K2 F/ n( Q! k1 |. ?- c2 Q
- H- C) L* g+ D7 ^6 ~% @% Kdouble U() /*求u*/* A. a: [# d) }8 ?% ?/ o# [% R
{9 b, K+ ^8 X0 E" p
$ l( `: B; \/ f8 u" t/ }8 T}
" `9 l! D' p1 c% ~4 E, N! J, }% T
3 P4 k# Z; @" ^6 ]
double dU_dnmd() /*求du/dλ*/+ p5 g# \3 ~4 p8 h" M G
{
7 n$ Z% g; O- y8 i; F; U
+ ^) x2 l( ~9 |, E! g0 t, S}
; L2 `# ~ j: O9 ?8 }( [+ G% G
, [3 H ~6 P+ Tdouble dT_Ys_dCA() /*压缩期*/5 o) }7 _8 c W9 q
{
G# b) C' U$ J3 L/ s
# a# X# x) y* v v g}. K( j4 O1 p4 [
6 E# X$ B5 I$ q/ I6 S
/ V5 m- A" q: l. @, Y/ P8 pdouble dT_Pz_dCA() /*膨胀期*/
( v$ o7 P; k$ T7 `) Y9 _6 V$ C; y5 @{, [6 k6 i: G/ \; n8 q' j' P
9 j( s3 E% ~; L+ o% G0 s& p
}
9 k0 ~ m' o2 r! w" e+ A/ z9 I: S8 H H1 s* G. @2 T( ~
9 O: D$ O2 C2 @& ]- @1 udouble dT_Rs_dCA() /*燃烧期*/
* Q, `9 M0 X/ ^) n% L4 C{
8 ^5 d7 G( a: @
) R& S8 `) E3 [& Q}, g1 B% s8 z" s0 W) H1 T8 }
. x t# }% Z: a3 ?, L- q
5 w& l* l1 h: d7 @double dT_dCA(double an) /*求dT/dφ*/
+ C' w5 F3 A' G S& k{
# g5 d: R1 d& t7 p6 U- y CA=an*PI/180;) G9 J* c4 f2 h0 L
V=V_CA();
3 G5 h( \. m) i" t } if(A_SC<an && an<A_CB) return dT_Ys_dCA();
; q$ |* r) A- \8 q { if(A_CB<=an && an<=A_CE) return dT_Rs_dCA();! H, G: U. e. {, J3 @
if(A_CE<an && an<=A_EO) return dT_Pz_dCA();: y8 G8 U3 a: b- |: M7 y% y7 }
if(A_EO<an && an<=A_SO) /*换气过程不计算,线性赋值,避免零值 *// l/ \* @# C! _! H6 T5 z9 Y# s
P=110000+(m_P[(int)A_EO]-110000)*(A_SO-an)/(A_SO-A_EO);
3 _! J/ f: \" O8 S9 u2 v if(A_SO<an || an<A_EC)
- R1 \9 N- S! g" k+ ~" \% f( } P=110000-20000*(an>A_SO?an-A_SO:an-A_SO+720)/(A_EC-A_SO+720);! \; ~9 D! ~* B! J
if(A_EC<=an && an<=A_SC) P=90000;
5 [* Y1 n2 F3 O9 x1 _6 F% g return 0;
% j: m& `5 V( F! P) q; S}$ O# c, r: H7 b; j
; P( @; T/ r! E( }void Calculate(void)
& K) C4 U6 j8 s* \7 l{! o0 @8 L+ G/ E/ R7 j
double Tpre,K1,K2,an;
( c# V$ o& Y, u2 E) }1 E; n/ [ int index;! p; H5 F: f# M! p0 A# L
Pe=30*4.0*Ne/(gnum*100000*n*S*PI*D*D/4); /*平均有效压力bar*/9 I9 W9 }9 M) V; @
mBo=Ne*ge/(30000000*n*gnum); /*单缸循环供油量kg */( ?4 M* l& z3 E, O- D' ~' n
CA=A_SC*PI/180; /*进气关闭时的角度转弧度*/
) P$ u; ~# s' h4 F9 R2 k V=V_CA();/*进气关闭时角度下的气缸容积*/
4 c. b7 F0 [9 ~/ z" w: j( H P=P_SC;
" @. \. a9 n( k T=T_SC;+ j0 S0 m' c* N- e0 x4 B4 Y
index=(int)A_SC;
' ]; Q( R, V; Z* ] m_T[index]=T;2 c6 E* O/ R$ V, F. J
m_P[index]=P;6 {+ c; s" |9 K0 t. ]# D! B
m=P*V/(R*T);/*进气关闭时角度下的气缸内工质质量*/
6 I, v! g/ d9 [& o" Z3 l! K mL=m-0.01*mBo;/*进气关闭时角度下的气缸内空气质量*/
) q/ }. w2 _( q3 l3 w mf=m-mL;' m, J F, w2 u! s$ E
Tpre=T;8 n; P2 ~1 S4 R3 g% t
an=A_SC+1;
! I. ?0 I# P+ Z4 l3 m4 c6 U, r! a
Z1 I- w+ P7 M f( [$ r do{
% K/ n: N0 f3 W; B0 s! W! h
V' e2 o" l2 B' L /*B 编写欧拉法求解常微分方程程序 */, x/ E5 N5 b, U% o- ?3 r- ~# k7 \
' e5 }* I: b6 G& c
}while(an!=A_SC+1);
) M6 ^( a8 a8 [8 {7 z# h# |4 }}& w. j2 T: E4 e0 X, k5 K. j2 ?
/ y7 A7 v) {" z X( a( d- d% M8 _
void main(void)1 b( ]& ]- h& x, R7 h& r( Q
{
$ _, L4 b0 g; A# y3 \# j4 J8 r int i;: c9 q* R4 d9 l9 `5 `% R/ h, `8 Q
FILE *fp;
: s" J) k& X6 ?' Y' X1 @4 }( G D=0.11; /*发动机数据按各自的任务书输入 */0 h3 O8 p0 ]" l
S=0.13;
6 m5 ^! I4 f$ `, C. Y L=0.21;" g& m- [% K) @! w" p! ^: ~
ge=236.0;7 R# }, _* M) w# I1 `! I+ I: ~; f
n=2400;& d9 b' F! r/ m
Ne=101568;
' Z( }3 i" k/ _0 ^+ j! [ gnum=6; ysb=17; M=0.7;* U6 P9 e9 d$ }6 n# k. n
Hu=41868000;
% r# q2 Z. ]$ z( {6 _5 J R=287.08;
4 A% y9 g6 j! P2 X4 o7 I1 h6 q* I Pa=101000; /*大气压力*/
6 ~" v" a& U( O* W4 n Ta=300; /*大气温度*/0 j8 {2 T7 m: Z1 \* w
hs=(735.0+R)*Ta; /*大气焓值*/7 V$ R9 S/ f/ b# f. @
P_SC=90000;$ [, i2 w8 A, k" [
T_SC=313;- z. @8 e, j0 ~& k1 Y
# F$ `( b3 w+ k0 g7 T+ e A_SC=216; /*进气门关闭*/
) G1 G2 t: H9 v5 a+ x A_CB=350; /*燃烧开始*/$ \1 P$ X( F4 D
A_CE=410; /*燃烧结束*/
! p0 Y8 ]" h$ e) g* \8 m% S1 S5 {, J A_EO=484; /*排气门开启*/
; l' f" R1 J5 Q& F: }( k A_SO=705; /*进气门开启*/. r8 V; l8 A# s5 v1 v
A_EC=15; /*排气门关闭*/$ E" Q1 z# a2 u9 O& _+ r6 m, G
, p9 }4 @. j% f( }- F6 W
Lo=14.4;9 D2 i1 K* F3 e* `- ~2 e4 @
4 B( W( P2 ~ H
for(i=0;i<720;i++)
/ b. x" P' j0 b$ s5 } {# j7 k% z8 l; O. h
m_P[i]=0;' O3 Z- U6 R s0 q" x7 q" Z
m_CA[i]=i;
; s0 u) Z6 ?4 p6 b m_T[i]=0;; L5 J4 E: ?: i+ @+ Q
}
@: E( p5 y P* `$ \2 g4 S( Q5 f2 t1 d/ G8 A+ Q- d/ R- Y2 J
Calculate();! O' J* [& G% A
8 F- ~2 Q0 l" R4 V9 s7 K( ] P6 P
/*C编写数据输出程序,计算结束后按顺序输出0-720转角的“缸压,温度”数据到outdata.txt文件 */9 h' S/ M/ d. n% e9 L- D( g
& O l5 c) `+ \}: H& M8 Q0 P! {! T
0 W8 `/ Y+ v$ g& h' T+ I
& x& ]' J9 t) S |
|