|
#include "math.h"
$ n/ r$ y6 z h2 y' o$ X) x' G( ~- o& Y#include "stdio.h"' t$ J; N! t6 |6 h7 W
#define PI 3.1415926! O1 m$ I. A* g9 Z( d$ U s% Y
/ R! [2 h8 _$ v l2 g/ H# w0 H
double D,S,L,ge,n,Ne,gnum,ysb,Hu,Lo,M,R,P_SC,T_SC;
! U" W3 s8 I& X: E# E' G/*缸径、行程、连杆长、比油耗、转速、功率、气缸数、压缩比、低热值、理论空燃比、Weibe函数常数m、气体常数、进气门关闭时压力和温度 */
( j' G5 ^& ?% J double m_T[720],m_P[720],m_a[720];- q5 v. e" D5 Z6 s9 }" n. _
/*气缸温度、压力、瞬时过量空气系数 */" ^* R" s' T5 q- O; d q0 q
int m_CA[720],A_SC,A_CB,A_CE,A_EO,A_SO,A_EC;
- J* T! X# Q) D$ G! m" O* ` double Pa,Ta,hs,P,V,T,CA,m,mf,nmd,Pe,mBo,mL,dXY;
) @4 z6 F# R; S2 f/ ` double Cv();
, Q6 n5 q0 S3 o: f* U$ [ double dV_dCA();
0 m; x5 P; n3 p- Y5 w2 } double dQw_dCA();
6 F0 D# ^; _ M double dQB_dCA();7 e) K" O. }3 [0 t
double U();
+ \# Z# B; V( ?! B$ |9 i double V_CA();
4 |% L8 u: ?9 {; n! v; z double dU_dnmd();
. @& B/ e( a/ {% j4 M- _- B& |' T double dT_Ys_dCA();
* v0 X) { _$ ?7 e double dT_Pz_dCA();- D% |. C( p: |! H+ E8 N
double dT_Rs_dCA();
" T6 C1 X1 A" v double dT_Hq_dCA();8 \! N4 Q- m" {! r/ b9 d$ T/ I5 c9 U
double dT_dCA(double an);
) o% }, I% Q- ^- Q' Q( c$ ^9 v6 R void Calculate();
7 e( F2 G; W% |0 H9 _8 r- _5 V4 E& r
1 C' P6 m5 g0 K h9 v/* A编写各子函数程序*/- j- }; r/ c; w1 }. c7 M
double Cv() /*求定容比热*/" Z5 v( s7 C' d
{; s; l+ l. F) P, O
) f; t6 m3 \ I. Y}
+ u: p8 @0 l, C H' C& ]$ H& o* d g5 D
( g/ W1 I' ]7 C
double dV_dCA() /*求dv/dφ*/
, @0 W E4 A8 T$ D" u{# Q, I% `' a# _ g# Z/ h
# a0 a) r' X- \) l0 ] `}5 Z/ U# [% V9 R
' O: S+ ^, v' _+ I0 n0 E9 a- E
9 \3 R# c8 _4 }! P9 \, m2 N
double V_CA() /*求气缸容积*/
* L4 s' Y+ {# U% I. V* y! ^{
: V: c) i: w M+ L. t" [8 F, W; G9 z; X! h f$ s' j+ M% t
}8 f, _( h+ n/ l( m
3 v U& e! V* J% r2 Y, m+ B6 u
2 l2 Q9 E3 w/ L Cdouble dQw_dCA() /*求dQw/dφ*/
& }( \) X! k+ K! G( j{
* A3 y. ~# i& z
& L$ H9 @6 I" w4 a6 J' Q: Q}
1 x0 S9 l- Q5 G1 `8 |% z
. e; o& p9 ~5 Z* Y! f B
* Q( ~9 x9 i( A. k! s/ H- B+ B y+ Idouble dQB_dCA() /*求dQB/dφ*/
- M; C9 i/ ~) H- J2 H# Q{
( Q/ Y: \: M8 B+ V+ } u6 Z9 l" V
2 q" y/ t, n. _% e% \}
" t/ ^9 K, ^! @0 A
( }. p5 H! b; d$ T, }; A# [
2 w' X1 [7 M" j, p( G6 [double U() /*求u*/) A3 m( ^( j2 W3 R. e, j0 m6 G
{
7 g+ e8 ~7 y9 n
7 q5 D; k/ T' @3 D' m}6 a" _' \2 c) q3 w$ G9 R: r
8 G# Q" |8 v3 L
( v D/ z& \- U+ u; M, w# cdouble dU_dnmd() /*求du/dλ*/% t- _) L5 I# _% E# [) u1 P: r
{
8 N f: P# \+ N5 P6 a7 h" g B) u8 u" N* ]! G- d0 ?8 H$ l4 X
}- @1 A. G5 m0 ^; P
. R2 X9 O$ L7 G0 @; l' p; O6 Sdouble dT_Ys_dCA() /*压缩期*/: t) f1 F, e& o4 O- D$ R
{5 R3 Z6 I3 v" [! ?
8 p0 }6 p; h# k- k% H+ Z7 R" i( P M}
2 d: H6 N# Y; \9 O7 `7 d) W1 U4 L! |* I9 O0 P7 L f( m, j9 s' J
. X L# X0 ?$ b6 W8 o2 m% _
double dT_Pz_dCA() /*膨胀期*/0 K$ }1 y3 l6 G) o
{
3 H7 N1 U6 F5 u- I5 d
3 _8 Y) T; N' j}
. o% v8 N- t; Z" e6 f4 S# M, u1 K: u1 _+ ]" h1 F
( N: g q' K2 q5 Z
double dT_Rs_dCA() /*燃烧期*/
" ^4 |3 N% u S{; x3 s6 \0 U% l& T, I9 ^1 C' ?
$ N1 Q% z! f) e1 T6 v} z! h ~# e; C. a; R7 @4 U* {
2 z- X# w- Y6 j }. k' s) Q
& f+ {/ D+ W3 y" K" X2 }5 n5 \double dT_dCA(double an) /*求dT/dφ*// o, m5 `8 d5 u" w! ^2 G
{ L/ f# M5 e e& _4 M; O$ V2 {
CA=an*PI/180;% Z6 g. F) h0 U2 Z7 s
V=V_CA();; W4 m+ _3 ]. |. I6 O( t# J7 c$ v
if(A_SC<an && an<A_CB) return dT_Ys_dCA();# c9 D2 D. M3 C0 e" J+ h/ W1 j
if(A_CB<=an && an<=A_CE) return dT_Rs_dCA();
) i' |6 s0 B. V5 \/ j! a) e if(A_CE<an && an<=A_EO) return dT_Pz_dCA();! `6 [& D- G0 E% g- f( H
if(A_EO<an && an<=A_SO) /*换气过程不计算,线性赋值,避免零值 */. y- ]4 i! {- J" @6 o: m I* [
P=110000+(m_P[(int)A_EO]-110000)*(A_SO-an)/(A_SO-A_EO);- x2 C$ Q3 V, K9 S
if(A_SO<an || an<A_EC)
& |7 `3 F9 E" R$ i* F6 I% K9 X" M; v P=110000-20000*(an>A_SO?an-A_SO:an-A_SO+720)/(A_EC-A_SO+720);
$ Z3 W3 t) H& G+ p1 I9 n' S% T if(A_EC<=an && an<=A_SC) P=90000;7 ^/ k5 N' @% \
return 0;4 Y9 }( s/ J" y/ ]+ i8 D! E
}$ G3 V& {1 C5 u/ U
! k: h, R3 u* W; k w: c
void Calculate(void)0 w$ x- v: R1 C/ m P |
{
& P8 I1 d: @# |+ |2 F double Tpre,K1,K2,an;
5 _4 I L: O/ ^; M& `& P int index;& A% W3 E) o8 l6 v! v% j
Pe=30*4.0*Ne/(gnum*100000*n*S*PI*D*D/4); /*平均有效压力bar*/
) x+ i( O0 H5 Y' \9 ` mBo=Ne*ge/(30000000*n*gnum); /*单缸循环供油量kg */. r( B/ [$ X% w8 R
CA=A_SC*PI/180; /*进气关闭时的角度转弧度*/
: U5 B$ s. c o3 F1 c% Z V=V_CA();/*进气关闭时角度下的气缸容积*/
3 l% {! Z4 |. _ P=P_SC;
8 B1 e! a) m( m1 e T=T_SC;
, E% A4 z+ {" H1 o8 k index=(int)A_SC;- R, Q; E3 q* E8 n2 e. g
m_T[index]=T;5 S$ `# x' D& V- X
m_P[index]=P;& Y& k4 h* s' g7 m. @
m=P*V/(R*T);/*进气关闭时角度下的气缸内工质质量*/
) K5 x7 M2 f! R* P# Q, v mL=m-0.01*mBo;/*进气关闭时角度下的气缸内空气质量*/4 T; ]) X# t5 @5 j
mf=m-mL;* U! t8 y0 u- |, U
Tpre=T;. B- s! G/ B# S) u3 q0 j
an=A_SC+1;
3 w4 C: } s- z6 Y( C$ L5 J" m0 m6 p8 n8 F! s0 v! ^ T4 Z! w
do{
1 N: ~9 T; h; I) a6 S* i/ `, I
& ?! h/ Z% T: I" J0 { /*B 编写欧拉法求解常微分方程程序 */
# C+ I2 H5 v' s4 @
1 W5 C5 @( v# p8 Q) f0 E' Q }while(an!=A_SC+1);
: \/ \0 t' x2 m* W" }* Z}
; h2 ]# y2 g% e/ H
! q4 W6 s( }- n; B$ ^void main(void)
- y3 M- Y" Z# \: B4 k{# j4 |& L0 R) m D) a* y. H: g5 A
int i;! W! y$ K: ]8 D) ?; d
FILE *fp;# j& S3 [ H3 V6 ^& \5 T+ \7 n
D=0.11; /*发动机数据按各自的任务书输入 */
* \, q9 q7 Q: P0 F S=0.13;- l7 t( E5 T- b
L=0.21;
5 f+ c( `! ~* o9 [# D' o ge=236.0;
3 D; ]* {" V* x n=2400;
5 `0 R( c6 _+ Y7 X Ne=101568;5 s! ^3 J6 _5 C, D8 N
gnum=6; ysb=17; M=0.7;
4 ~% D$ n# g1 f+ X$ {# _; f Hu=41868000;- [9 P* f; n1 N% E
R=287.08;
1 ?- ~( D+ L2 h Pa=101000; /*大气压力*/
8 c9 B3 j l3 A5 n# |1 p8 O$ i9 n) H8 F( v Ta=300; /*大气温度*/: i: K( i+ D6 L, R) Q
hs=(735.0+R)*Ta; /*大气焓值*/
! q) I* c3 J! i7 v( F ]/ z P_SC=90000;# T1 C# o0 R7 ], Z" H
T_SC=313;; w$ Y' c2 j& [! s1 y$ v+ ]
* E8 P6 N# X8 S A_SC=216; /*进气门关闭*/
8 s- Z" U% e" B% C% h/ S$ d A_CB=350; /*燃烧开始*/- Y, n( D ~5 I5 B$ |( |4 c
A_CE=410; /*燃烧结束*/
/ F1 ~ K2 \* @1 y A_EO=484; /*排气门开启*/
5 o9 ?6 ~3 \6 d A_SO=705; /*进气门开启*/
9 r: v% y) |2 s. B K A_EC=15; /*排气门关闭*/
* C) s/ F, C( a4 c+ t3 k/ T6 F" R1 ~: ^$ g* B. x1 y: m. G: H6 C
Lo=14.4;6 s: q/ t. W7 N, d L% c! b" E
6 `/ r Q% ^( }" N for(i=0;i<720;i++)
8 m, W0 f% z& s0 \! {- u {
5 e* f; z4 H: C0 P2 |' c m_P[i]=0;
. g* i, G0 {! K. w' I m_CA[i]=i;
( f' E0 A9 t; @. C6 m- C m_T[i]=0;6 b( X, N# H; c' a' K" m |& G
}. d- s' M# h* ]; s
& Q: Q5 L [5 B# D _2 F
Calculate();
( D& [ y' B! l& a6 \
3 Y& Y. G9 l7 A' ` /*C编写数据输出程序,计算结束后按顺序输出0-720转角的“缸压,温度”数据到outdata.txt文件 */5 }; |1 f; y, E3 Q0 J& |$ M
, N3 M' Z0 g, w% { y& c}8 l4 |4 F- y- h/ i1 |: W& d& l* I
( b" U. }9 y9 W
9 o E2 H" w B& X1 j
|
|