|
#include "math.h"" E0 z2 K: A: j
#include "stdio.h"
9 J3 n) T7 Q( D" }) W% s. q2 P#define PI 3.14159267 @4 P( U4 J3 l# Q5 a+ m+ e E" Q( }
* Z2 e5 l; @2 S" b4 D- w ~double D,S,L,ge,n,Ne,gnum,ysb,Hu,Lo,M,R,P_SC,T_SC; 9 z; ~ G' D5 ^% ^* U
/*缸徑、行程、連桿長、比油耗、轉速、功率、氣缸數、壓縮比、低熱值、理論空燃比、Weibe函數常數m、氣體常數、進氣門關閉時壓力和溫度 */9 x R/ } Z, e- @2 I5 m. d
double m_T[720],m_P[720],m_a[720];8 a2 ~" m3 m4 N' r) \
/*氣缸溫度、壓力、瞬時過量空氣系數 */
/ J( t5 _( t& o! }, [# o int m_CA[720],A_SC,A_CB,A_CE,A_EO,A_SO,A_EC;
3 n Q# f' H7 ?. u3 s. K double Pa,Ta,hs,P,V,T,CA,m,mf,nmd,Pe,mBo,mL,dXY;
+ n$ ?1 i: t5 y2 y# H double Cv();
! H1 K4 V' u+ D% E9 L7 z double dV_dCA();4 i- k- |! I5 X4 X- A
double dQw_dCA();
8 K5 d0 X; q) p( I) E) \ double dQB_dCA();, J, S& W- ?. B" G, j) l$ W
double U();
% Z6 ]8 n( L1 p/ G( ?* I double V_CA();
- f" t5 S6 e$ C7 c/ l6 H: f8 _' F double dU_dnmd();0 N$ M0 B4 I' l6 i
double dT_Ys_dCA();
1 s) }& q6 P( a double dT_Pz_dCA();
& W: L" F% n( |, m& M0 D double dT_Rs_dCA();8 T5 w6 E4 S2 S; B+ U
double dT_Hq_dCA();
" V9 M2 t. Q4 ]( F$ ~3 Z' z9 M( D double dT_dCA(double an);
: ]' Z8 O; m+ [; K) ~, b! l' L# Z void Calculate();
' Y- [6 E0 ^3 R. D) g3 |5 {4 z3 Y+ N% j* g% c
/* A編寫各子函數程序*/
" a2 X7 z7 t* ^% S4 U double Cv() /*求定容比熱*/2 `. K1 M% n3 N* S) j4 S, |
{
; Y4 f3 C& c$ S* H; `6 e5 |
2 n/ J2 S; i8 S8 p}
5 ^7 G2 m4 ?! y5 `
& J4 Z* B7 Q% W/ ^( P0 {
. z7 ?' A C+ O8 ~ C, Y% tdouble dV_dCA() /*求dv/dφ*/) c, ]2 R, g% l3 m
{4 a4 H" D. b2 a; a
! J, I9 B% L, p$ L0 _: T) Z+ i}; q2 }' d3 U0 g6 u$ C
) l( u$ `9 u4 A+ ?: [8 n
$ r! \( y# A2 y# g, Y3 B2 [double V_CA() /*求氣缸容積*/
" {9 h8 C, K% C5 |$ `& ?{
0 K1 X% Z7 ?, s+ I
( m* [, v# u2 e1 |}9 P: s* l: y6 Z
2 \& [9 E! ^2 Y# \0 Q e" R# _1 m- j: b$ q/ V
double dQw_dCA() /*求dQw/dφ*/3 q% g2 z9 y) ^$ ^3 b
{- q* n2 i2 r, N2 T) c5 }8 F
+ r0 U w- u* X: m
}
2 t* D' R7 V* D$ t9 n. S
( \+ Y2 v) d0 X- N/ J; M2 x; c2 C, w( M* Q6 I% _- s
double dQB_dCA() /*求dQB/dφ*/# \# [/ Y7 w: K& t1 B0 Y; J; O, {$ x: |
{
& q+ r: v5 G( S6 i9 H
& \8 `+ E Z) p: Y" W}& m0 T, \2 Y( v4 t! J
6 \0 ^5 ~0 Z p! q! p
; \) o/ w: a6 c$ o# ldouble U() /*求u*/
3 b- h; E6 u) ?; e* {- R{" ^# Q6 E+ p- d2 g1 t2 |( T
[6 L0 g. V# G3 @' E2 \, e}) x+ R7 b/ G- i
* I- x( A/ N* K9 W
' ]3 R Z4 q" a$ Y+ |; @- hdouble dU_dnmd() /*求du/dλ*/
7 ~6 @7 H- u! x1 c s: P{ i0 E) ?2 _+ r1 p# H2 B l) y
# Y% L1 X; A, b
}' f+ v" Y3 A8 @+ ^# q2 K* ]5 ~
# m' v0 G1 E, O. ^% ]2 c
double dT_Ys_dCA() /*壓縮期*/
* _$ k+ N2 Y# t' Q+ I2 _3 q% O) ^{3 z; o2 J4 s6 e( j1 b3 I6 D
, Q, _) Q% E9 O) e
}
. @3 n7 c) Q2 t/ r6 z4 O9 B" z7 Y$ b! c( H* r6 w, C: d6 }6 }* W5 C
# K+ E# p+ a5 {
double dT_Pz_dCA() /*膨脹期*/; L+ W6 f! m! F8 p9 c9 g) [0 b
{- T/ w& x# |: b9 {- N/ I
% z' l! ]+ @, K8 q$ c8 r}
) _) L8 G" a4 I9 D- |+ x+ I3 Z, ` I2 ~6 s- m4 A* ~# F% D! H x: B
/ x- _% s" M. g. {8 p
double dT_Rs_dCA() /*燃燒期*/3 p# W) H4 c$ Z
{
, ]/ y* f# T. c( f" c
, h, C/ u4 @0 x( b% S}
) X4 b/ |1 h$ r( L" O/ t" }4 P% G0 I1 S4 M* j3 D! r* K2 M
6 z& e- D9 V$ z' O6 Hdouble dT_dCA(double an) /*求dT/dφ*/
0 d( L% T, z3 q8 e7 n{$ G! c p: E1 y2 _4 Q. o5 N/ {
CA=an*PI/180;8 |; @; k2 @0 H; U( E2 J7 G6 V
V=V_CA();
' L) A# a- h! i1 F1 g if(A_SC<an && an<A_CB) return dT_Ys_dCA();; h/ R. U+ ]! E1 }, i, E
if(A_CB<=an && an<=A_CE) return dT_Rs_dCA();
% K& B9 I1 Y f1 i if(A_CE<an && an<=A_EO) return dT_Pz_dCA();
6 h( m q- @% a3 V% P4 w% | if(A_EO<an && an<=A_SO) /*換氣過程不計算,線性賦值,避免零值 */) k4 |. R }! G
P=110000+(m_P[(int)A_EO]-110000)*(A_SO-an)/(A_SO-A_EO);4 { C3 A! i T$ P4 \! q
if(A_SO<an || an<A_EC)
# n, q* _2 G+ y3 b2 s- [% s5 Y! a P=110000-20000*(an>A_SO?an-A_SO:an-A_SO+720)/(A_EC-A_SO+720);
3 [1 S6 e* X3 v+ s g3 Q3 y( ` if(A_EC<=an && an<=A_SC) P=90000;
r6 P* c) a, r, W return 0; I# \, n8 s( f- A
}
& B6 z- @8 l# N3 \& u
. E8 v4 N% D+ r8 E) Y5 n) x3 Gvoid Calculate(void)1 \* c: x& ?6 u4 ~0 O8 j
{% T y" p7 ^ m# y
double Tpre,K1,K2,an;
7 c8 t* [) S6 Y" E int index;
3 B! ]. B7 F3 ~0 y+ A0 O Pe=30*4.0*Ne/(gnum*100000*n*S*PI*D*D/4); /*平均有效壓力bar*/
J. o, a2 `+ E/ G4 v) N0 S mBo=Ne*ge/(30000000*n*gnum); /*單缸循環供油量kg */
1 O( B. ^5 @: I CA=A_SC*PI/180; /*進氣關閉時的角度轉弧度*/3 {& I( ^2 e! D+ l
V=V_CA();/*進氣關閉時角度下的氣缸容積*/
( \! y, T5 \) e5 ^8 t7 w4 H0 m# q P=P_SC;1 p. A* h4 F0 H; M/ {
T=T_SC;
+ a& `& Q- L% {/ G' ?7 ~# e index=(int)A_SC;6 z) ?) a* l7 `$ ~7 _+ P2 e
m_T[index]=T;3 {+ c* n! p1 a
m_P[index]=P;5 }# y% G# ?6 @' r
m=P*V/(R*T);/*進氣關閉時角度下的氣缸內工質質量*// ]) u; f2 M5 z1 S9 p5 t0 K. O
mL=m-0.01*mBo;/*進氣關閉時角度下的氣缸內空氣質量*/: N3 y( v/ H+ W9 R
mf=m-mL;
\$ _+ ~# V( @6 _5 ^. ] Tpre=T;8 \& H) {4 h# j! O7 y4 h
an=A_SC+1;
) ` P! N# t8 X. T3 U; ]# D
' v! o- Q$ f1 [* Z) b- _ do{
6 K2 I& K& b& P* s( R8 R9 O9 k: [' l' I3 T. s. L* z. ~
/*B 編寫歐拉法求解常微分方程程序 */
! M2 l/ ]; X+ U, o0 Q# I R9 U; @" \9 i
}while(an!=A_SC+1);+ f. ~% }& h2 _5 C6 ~
}/ X$ `4 D8 e0 t, x q% f7 ^1 i
! W1 X$ }& H3 cvoid main(void): S3 d$ H5 }7 {- T/ D- a
{9 H, G, i3 e3 m% }# ~) D. R! G7 E+ O
int i;
& ^" a/ T& c0 T7 b, C FILE *fp;
" M0 }& J* K! ?* E& G2 G4 [4 U D=0.11; /*發動機數據按各自的任務書輸入 */1 `6 v. }9 P* n/ ?
S=0.13;
/ `/ P S! R( I8 k) J3 |9 f L=0.21;/ s- n+ ~ z+ H# l2 n @1 d4 r3 o
ge=236.0;; [3 R: l0 R2 D. a5 [- F
n=2400;
1 x0 D. V% O% l! C. v+ |3 B' } Ne=101568;
7 B: n$ h( D, ^& V7 x5 y gnum=6; ysb=17; M=0.7;7 u+ m0 _9 c5 w$ z7 ]) z
Hu=41868000;
- p. T5 u$ K. D. R: X* D3 ?: K9 n& P- T R=287.08;
( W) Q# M$ }$ s Pa=101000; /*大氣壓力*/
. [( [6 i1 A5 b% {7 o0 p+ X Ta=300; /*大氣溫度*/4 L* W9 [& e( r7 t( o7 K
hs=(735.0+R)*Ta; /*大氣焓值*/) ?" u; l1 `! i5 d7 u( o% O! y# A
P_SC=90000;
3 H& `- Z$ C6 a% | T_SC=313;# d, ]% R# P B/ B6 Q. ]
' e/ `+ V6 h# T$ }5 p A_SC=216; /*進氣門關閉*/: w$ ?; d+ h( r. i# ]/ K- Z; b
A_CB=350; /*燃燒開始*/! k' m2 p! C' w4 B
A_CE=410; /*燃燒結束*/
/ p: `; {1 u; w; x& A2 @% J A_EO=484; /*排氣門開啟*/( ]' R; b1 ]$ V0 F% s1 Y* s0 D
A_SO=705; /*進氣門開啟*/- \8 `5 Z/ v d/ P; C5 D+ U; p
A_EC=15; /*排氣門關閉*/, o8 |2 F. |: I% T+ p* ^
, |; y" M. `: E0 e4 P7 ?
Lo=14.4;2 l* A/ n- H4 E, B% j7 ^
# A( U$ V6 r; Y1 E+ u: d5 l
for(i=0;i<720;i++)
( V; i0 u* z$ ?+ z( C% B* f {
2 y# s, T- `! F! y: G m_P[i]=0;
7 O: H6 p$ b/ _0 l8 Y5 W$ y m_CA[i]=i;* t) I0 D+ i0 {4 E! M+ `
m_T[i]=0;
s6 w) f; N' P2 p' ` }
8 Q5 n0 J6 D+ _' w6 C: v! M7 n
# M1 V1 B5 g+ X' Q; f' G2 c Calculate();! s7 e2 m+ n2 Z
; n; S8 P# d& f% C# M7 D
/*C編寫數據輸出程序,計算結束后按順序輸出0-720轉角的“缸壓,溫度”數據到outdata.txt文件 */& i2 G& y) `4 f$ N
3 z5 i3 [! T' Q3 }}
4 j! r* X1 V% `3 ]9 `) C H% X6 F d% ^6 T, L
b3 k7 E7 ?# ^1 P& H8 U6 F9 i
|
|