|
#include "math.h"' f1 ]# L4 T4 o/ X( u- \
#include "stdio.h"0 k: [1 w* s4 c3 j C
#define PI 3.14159260 w+ \ ~5 S! X% v
0 C7 I, g+ y J: U( q4 j: ]/ X7 idouble D,S,L,ge,n,Ne,gnum,ysb,Hu,Lo,M,R,P_SC,T_SC;
: I" g) D8 L4 l8 w1 W/*缸径、行程、连杆长、比油耗、转速、功率、气缸数、压缩比、低热值、理论空燃比、Weibe函数常数m、气体常数、进气门关闭时压力和温度 */
" v/ R+ }, `9 q8 q( U O double m_T[720],m_P[720],m_a[720];, w: b" t n& g! L
/*气缸温度、压力、瞬时过量空气系数 */
! |+ J2 ~+ Y8 G `& o int m_CA[720],A_SC,A_CB,A_CE,A_EO,A_SO,A_EC;
! u; y! K) r& p" {7 g# W double Pa,Ta,hs,P,V,T,CA,m,mf,nmd,Pe,mBo,mL,dXY;
8 n* e1 \; g& o2 z9 L$ |' C; p* I7 a double Cv();
, Q& O6 q2 C& K' E2 c! z* X double dV_dCA();
( L- U' d" x8 d6 g% Q9 _% M: ~ double dQw_dCA();
1 x' `+ Q0 J$ i- `0 ^- Q* ~) I double dQB_dCA();
* }8 l0 F' d1 p- E double U();
- n6 i, x. @$ D' g/ `' h5 c double V_CA();
S$ D$ E: `+ g b' T% S double dU_dnmd();1 |0 |! V4 T5 K- `, S
double dT_Ys_dCA();* S9 N; J+ d+ H: n7 x
double dT_Pz_dCA();2 A, m5 {4 [9 V. A; Q5 `2 K0 \
double dT_Rs_dCA();0 D" l% [: y/ x* ^$ O5 @* q
double dT_Hq_dCA();
, w. {- j% f6 }, R4 [ b. A double dT_dCA(double an);: L/ G/ z- q3 v& l6 R
void Calculate();
) J" N7 s. }7 S3 G3 s4 O& C; q4 |+ M; O
/* A编写各子函数程序*/
& ]& s4 Q2 b: P double Cv() /*求定容比热*/
- Y" h$ W9 S1 a1 I7 h{/ W- M% b; w9 h L( `7 r, e
& |5 f" j! V& V; G
}
/ ?. n! p F9 W
$ G& G, z9 n2 m# Z% h; T7 @! T( G. V$ S3 Q. o* ]& ~
double dV_dCA() /*求dv/dφ*/; J' j' N$ m8 l% L: ?- h- \. u
{
8 P6 H4 ~6 T* ^" \: C0 W: ^ F1 I7 r
}! ~0 F9 { E( O) t
+ i$ B2 r/ \: c" s2 o6 O5 L
, t, B4 x# Z! P
double V_CA() /*求气缸容积*/
3 ]5 v' |! Y+ Z# B/ @0 {) M{
! a+ T6 Z+ n7 l$ P0 r# l! K% \2 z4 e0 J3 s4 G; i4 E s+ k5 ]0 k0 j
}
/ a, I+ ?8 ~+ a/ @/ {! l% ^9 ~: t2 r
% l, O" z( u! m; U9 t2 d: M( W
# v c& F' v; v t8 x9 z+ ]& p' n$ Zdouble dQw_dCA() /*求dQw/dφ*/
' N6 f4 o5 E- v/ ]- \2 X{
1 X* p I! b# R5 M, \7 g+ f- w4 n
# ^/ M: e) I8 `: [) K R}$ s* f: k; k1 M a1 m& \" e
- e7 ?( \; u: W4 Q5 v
: s1 \( H, S6 k' bdouble dQB_dCA() /*求dQB/dφ*/* D* S: ?) X1 I: ?! E
{% y2 v. b3 W" j3 L7 y
9 c5 b" A. M, C4 s
}
1 d O l2 M" Q* l/ t7 `2 f) a- x; D( }- n- I
3 Y f3 W- F$ p/ Z. j2 l* b; B
double U() /*求u*/# W, f2 ]# D2 ~2 w7 o
{: } K8 Q# ~8 X9 ~% b2 P8 o
m$ Q0 O" \8 J0 o' k}
* b9 B' \6 R/ G! w3 b, Z8 h \0 w, d
! ^ e1 c! k. V/ x- Odouble dU_dnmd() /*求du/dλ*/0 ?/ I, Y: x- N. c2 h& ?
{
& S4 b* C! E4 X9 `0 X5 P$ L; |& F# s! y6 s* q; |* j4 K: {
}( I+ V0 ^( w8 r' k9 M2 i& s6 G
! b9 m$ F0 q0 b" C9 e9 p
double dT_Ys_dCA() /*压缩期*/
u5 J$ M$ v! y{% ~3 R. X! c$ o* k3 ^$ R4 r3 K6 h
: S$ c- ^( y9 y' S$ P- \}$ l2 a/ k' m9 \6 a
3 k+ t, P1 r1 R6 f' q) D5 ?
/ h( |' M# _ Ydouble dT_Pz_dCA() /*膨胀期*/
! {: A7 |/ d* S& O1 s1 |{( u( j/ a* o( B1 r3 [
/ H" l- f" h3 r2 N$ A0 ]
}, }" h! Z/ S6 v: S6 E! L
. b5 I0 }$ Z! x& S1 x# g$ u
- z8 }3 L# {6 E+ T- _/ T, s; Adouble dT_Rs_dCA() /*燃烧期*/) Z6 H, L6 z6 `- K
{0 o3 M% \* c8 V) u/ R3 A5 i4 f8 L
( u7 k8 d# k+ U- s Z& e4 Q}7 {# l: W) x0 h8 X. V6 x# z2 }
" M% u" q1 |) H( Q) q8 i* S, i
double dT_dCA(double an) /*求dT/dφ*/& ]2 `* i+ G! T4 a) ^
{ b) F, c" x. L9 d6 F5 C
CA=an*PI/180;1 J+ N& @! s) b$ c! N, u3 _$ ?: O
V=V_CA();6 a8 ~ I% H/ T
if(A_SC<an && an<A_CB) return dT_Ys_dCA();
' G0 ~8 c2 P+ w @0 r% ]! D: I if(A_CB<=an && an<=A_CE) return dT_Rs_dCA();
: Q! C3 M/ l/ k% W6 W0 i if(A_CE<an && an<=A_EO) return dT_Pz_dCA();
; Y+ Z; `- a" K1 p, V if(A_EO<an && an<=A_SO) /*换气过程不计算,线性赋值,避免零值 */
* ^' o: s+ X4 U' @# e P=110000+(m_P[(int)A_EO]-110000)*(A_SO-an)/(A_SO-A_EO);
( n& v+ Y# v- W4 j; g4 d if(A_SO<an || an<A_EC) : e# D9 J, k& |& Q) Z5 }) Q9 t
P=110000-20000*(an>A_SO?an-A_SO:an-A_SO+720)/(A_EC-A_SO+720);
" j% F. a' o7 e$ T% b0 C& j2 @ if(A_EC<=an && an<=A_SC) P=90000;7 H- [% `& v, i4 _
return 0;
" ^' Z) f) w4 b, ]: C& ]}# U$ F2 Q4 R1 H/ [6 L0 b4 Y7 ~6 ]
/ y+ N5 W9 Z6 P% o8 avoid Calculate(void)* ?+ J ^4 O0 S
{( ^ ]) H8 n8 T5 j2 n* v, z w
double Tpre,K1,K2,an;
5 M% t: l9 W4 T* q int index;
5 a/ m' g" s. B5 M Z7 Y8 r Pe=30*4.0*Ne/(gnum*100000*n*S*PI*D*D/4); /*平均有效压力bar*/- M# |* g& E B. Q2 D
mBo=Ne*ge/(30000000*n*gnum); /*单缸循环供油量kg */
7 F! x9 N) z7 @ CA=A_SC*PI/180; /*进气关闭时的角度转弧度*/
" N$ p" R: V) B/ _5 q3 k/ l V=V_CA();/*进气关闭时角度下的气缸容积*/# b0 A% ], b+ }
P=P_SC;- `& w+ ]. E: W9 P+ i( D" M; D
T=T_SC;
6 g. g* y6 C8 ?( R! N1 X index=(int)A_SC;
( ]8 ~) A5 P# D8 ^( j' p& \- u m_T[index]=T;
( @' T2 P5 `% i, j- P# K3 E m_P[index]=P;+ o7 s' K& V# H! }" W
m=P*V/(R*T);/*进气关闭时角度下的气缸内工质质量*/
5 d" e. Z3 [9 e y% g) A mL=m-0.01*mBo;/*进气关闭时角度下的气缸内空气质量*/3 z1 R' O* h6 i8 F9 J
mf=m-mL;
9 ?+ H2 I+ `$ m, [9 s7 q Tpre=T;
( q2 {4 R- ~( G: M) R' [ an=A_SC+1;% s! r$ Z3 Z% i7 x# G! ?
' K* N) |4 z S5 q
do{
+ O0 e( u; f8 Q- r @; Q+ w8 m, Q. \" X1 P
/*B 编写欧拉法求解常微分方程程序 */
4 i+ F4 @0 c" e0 \6 J0 K" Z
- d1 Y5 O- S" [' C3 l! g- T, E$ Q }while(an!=A_SC+1);
' x( U; Z E4 w+ u3 z* H% @}! l. u4 Q$ } D6 J: e. {8 U
% V: c ?* w; U& }6 y% Avoid main(void)
" S l7 b, L; i ]{4 o" ^0 Y4 g% ?
int i;( l% C7 T/ N F3 h9 E
FILE *fp;2 n# c% u2 |6 ^6 N! M+ v4 w
D=0.11; /*发动机数据按各自的任务书输入 */
& b2 N5 T, n; B$ Y9 G7 r( T6 k9 J S=0.13;" g+ c X* M* y8 y x4 u2 Z
L=0.21;0 _9 f4 q+ z# `8 Z- D0 M6 n6 I
ge=236.0;
7 y9 l% M) @' s1 F0 q7 f2 l m1 N n=2400;+ l n8 U0 \; h- Q2 M
Ne=101568;
3 l9 @" k D K. Q# r$ n gnum=6; ysb=17; M=0.7;# Y, V4 o( h5 A: N9 _& p* `
Hu=41868000;0 G7 `) K) p+ D9 h7 L5 B
R=287.08;
: H5 L& ~7 H- E. f. i! Z Pa=101000; /*大气压力*/9 [: I, Q5 Z( J; W: w4 q, j/ n
Ta=300; /*大气温度*/
9 v, b: s& Y6 Q& h" N hs=(735.0+R)*Ta; /*大气焓值*/7 p; S$ A' f% Y
P_SC=90000;! Y) |( e3 _( r" O1 ?' Y; }. d9 ^
T_SC=313;
' ~9 ~( I9 k& k& T) r$ F; c2 u( |: H/ f' U
A_SC=216; /*进气门关闭*/
* C1 U% `; I4 o. R" [: ` A_CB=350; /*燃烧开始*/
* C/ ?. ^" _7 a( U, A( I+ o) } A_CE=410; /*燃烧结束*/
3 \ L# U! d$ j" A; f A_EO=484; /*排气门开启*/
- l# L+ ~9 Z7 W* k6 I: ^" O A_SO=705; /*进气门开启*/+ @7 t: `% P- z
A_EC=15; /*排气门关闭*/: @9 x6 y4 ?! n7 f3 d
9 f+ G: O: e! U6 m7 W5 J
Lo=14.4;
+ ?- q; H8 D" f1 a+ ^1 P7 S8 v1 E/ L- |6 W$ H4 C
for(i=0;i<720;i++)' R7 ?7 z+ G3 ]/ B4 A
{
- j3 R6 y9 I4 @2 j5 e# y m_P[i]=0;1 G) v9 M& k: C" _1 ~; [
m_CA[i]=i;, V- b. d$ X2 C" y/ r
m_T[i]=0;
. \4 ?) M- n$ ^" U3 t }) {% x5 s; d6 T F; C& k' ?
( G2 q6 L& R/ a- O# S( d- S Calculate();
& L. k5 h/ D3 i! B; t9 c& x9 A" G( d, i" Y0 `) ~
/*C编写数据输出程序,计算结束后按顺序输出0-720转角的“缸压,温度”数据到outdata.txt文件 */6 V0 \9 u; X: k
$ n8 L2 W- w/ i5 T4 }! D}9 V# O& X/ [1 Y
, ^" A$ {! o! b# J7 X
4 |. F- o$ X3 ~: {0 v
|
|