机械必威体育网址
标题:
内燃机热力计算怎么用C语言编程?模板如下,求助。
[打印本页]
作者:
方进小侯爷
时间:
2015-6-28 22:58
标题:
内燃机热力计算怎么用C语言编程?模板如下,求助。
#include "math.h"
( x0 y! U( k9 K* L5 y% ]
#include "stdio.h"
' i8 \; P8 U3 q( M f
#define PI 3.1415926
) `. R! t8 C3 b: \5 [
1 e/ d' t' i3 c& A$ |" I
double D,S,L,ge,n,Ne,gnum,ysb,Hu,Lo,M,R,P_SC,T_SC;
" e: U9 E' k" T9 Q q
/*缸径、行程、连杆长、比油耗、转速、功率、气缸数、压缩比、低热值、理论空燃比、Weibe函数常数m、气体常数、进气门关闭时压力和温度 */
% Q6 }7 Z+ I9 n
double m_T[720],m_P[720],m_a[720];
; x# P% p' J: U+ z3 l% A$ c: @
/*气缸温度、压力、瞬时过量空气系数 */
0 V t0 j, u" K5 D2 ?& L- q
int m_CA[720],A_SC,A_CB,A_CE,A_EO,A_SO,A_EC;
( N7 \# B# a' i8 b" z8 |7 _
double Pa,Ta,hs,P,V,T,CA,m,mf,nmd,Pe,mBo,mL,dXY;
0 d' n- v5 N/ e6 V5 a
double Cv();
0 z0 a e1 b+ I8 w8 _, c) X# c
double dV_dCA();
$ D1 Y; ^' {4 q9 @
double dQw_dCA();
% A: D5 }- D R% H$ j5 d, h2 ^
double dQB_dCA();
9 m1 _3 Z: H1 d8 Z' N: _8 n a9 P- ^
double U();
6 w( `7 b+ _: E4 n' q6 z# u t' b
double V_CA();
; h, v- V$ L ~9 v
double dU_dnmd();
' Y0 ~2 v# S' h* L m
double dT_Ys_dCA();
6 u! e1 o! ~* B. q! W, ?/ M
double dT_Pz_dCA();
: l5 a8 i" C9 b0 c4 K9 ^
double dT_Rs_dCA();
! D! _/ |3 F9 k7 v6 w2 X1 q" F
double dT_Hq_dCA();
2 T1 w9 C& J: B6 r; `/ D
double dT_dCA(double an);
2 u( t2 L P/ v9 q
void Calculate();
3 }6 x0 U% J: a j) K9 }1 a
3 W: j& C% H' K+ T% A( v
/* A编写各子函数程序*/
1 A4 g d" w- o2 ] j1 h& j
double Cv() /*求定容比热*/
% \" {7 u' r- C+ O2 U% _
{
1 Y: Q* G9 g/ e/ H% H6 v
g7 O9 H+ g) A3 X; j0 b. ]8 E
}
: x. u( W/ H# P
5 f+ N( f/ i" @2 } h
4 W! s, W$ u' ^. i" `+ ^
double dV_dCA() /*求dv/dφ*/
0 s" n0 q, P$ O/ }- B" s* F* B: m! {) j
{
/ z0 ^1 a! t1 M1 t
; n w( a9 z/ A- a. U: r( v
}
- m, l: r% R: ^) A/ p1 ]
6 w) w. l! q; `
2 h5 Z! |2 _6 `4 Y0 [& h
double V_CA() /*求气缸容积*/
0 j! K/ {4 J9 [0 o# o2 T F
{
! s& F- Z. J& ]! ?/ h* S
5 ^# a6 u+ i$ X* z
}
7 l& C" n; h5 E0 Z: I
4 y% W- f8 }- n* E8 \, Z+ D
* }2 |$ |; _" H; ?3 m: z& H
double dQw_dCA() /*求dQw/dφ*/
5 N& }) N) ]0 p: P( o P8 w
{
) F r1 Q* S2 t) d- X
. L: e. g( D- z( X" w( |
}
# G. C1 R) }) W
2 O( O O' f/ Q' ]7 c" C6 I: p, f
& h# ~, s( i0 p
double dQB_dCA() /*求dQB/dφ*/
# l- P R9 A% w$ v# e% [: J
{
) x0 ~; b9 q3 y
( P, q& L; h$ ]
}
6 F/ X0 `. ]2 t) @! F9 w
2 Q1 }9 q L/ E% x# G
+ n, V" g4 R0 K3 u [" W
double U() /*求u*/
9 |; a( ]5 D: `+ j: G! V
{
9 G/ c9 x" ~! W8 S8 `- s3 z% l0 V
" L1 e0 Q' Y" I. d
}
8 H6 \ \, G. |' u6 q& E
: L/ l5 k" o! t% C
3 X7 Z6 \5 v% y% L$ }
double dU_dnmd() /*求du/dλ*/
4 z( m9 Q& X5 T1 Y& e2 z; Y; T0 R
{
- a8 h6 ~* u% o! A1 E
, B5 v! @9 a0 x! L. G; G& J) M. |
}
( a( U7 b# o4 x2 `8 e+ U: k2 P
, N) g5 E" i$ h
double dT_Ys_dCA() /*压缩期*/
0 A& Y& ?. z# E
{
% r0 y0 x! p9 }6 `$ ?. v; l; g
K$ S3 T7 L% I& g2 M8 J0 N2 @5 S
}
9 v3 V' @4 U2 d& ~+ | O! F/ V- U
+ \& c2 a; Z9 u/ h" r {. b
0 L" x7 S% l2 k: c# E& Z: k8 R
double dT_Pz_dCA() /*膨胀期*/
5 k. `- X* c, W+ p" f
{
$ o3 |. n1 z- I& d$ [5 q0 v
4 t( w4 y! Q+ x9 X" A5 `
}
* N7 x$ U, @! C; x+ X
m9 e6 E* l+ h: r
* x r: ]7 ?* Q
double dT_Rs_dCA() /*燃烧期*/
& Z ]7 }$ I' x2 Y- r+ K# C' r
{
0 j4 u+ |) P& P/ i) t4 p; o+ j
. \( r; d5 c a- k, c' E$ g
}
. o* x# T' \. U- k1 W# u
8 e4 |0 y) Z8 j+ @
! ? p# e0 C* P, Y' X2 v) Z
double dT_dCA(double an) /*求dT/dφ*/
4 [5 b4 R9 M- k5 R" _9 K
{
' b: @6 L% O% r" a
CA=an*PI/180;
1 N) R% T9 S; F, R7 ~4 u: J1 k
V=V_CA();
+ L% J8 g+ v; _! t# P2 N
if(A_SC<an && an<A_CB) return dT_Ys_dCA();
' b' ?# U% V9 A* U/ U
if(A_CB<=an && an<=A_CE) return dT_Rs_dCA();
6 L7 K$ y+ L5 f: C y
if(A_CE<an && an<=A_EO) return dT_Pz_dCA();
$ \/ e2 s4 W" t. X( L4 J
if(A_EO<an && an<=A_SO) /*换气过程不计算,线性赋值,避免零值 */
- o I7 Q! |1 B7 {/ _. n8 j( B
P=110000+(m_P[(int)A_EO]-110000)*(A_SO-an)/(A_SO-A_EO);
6 A @4 h, g9 y8 V
if(A_SO<an || an<A_EC)
/ |" \. @, H4 I+ _# W
P=110000-20000*(an>A_SO?an-A_SO:an-A_SO+720)/(A_EC-A_SO+720);
4 r' _4 V- x% I4 N% f7 S2 B
if(A_EC<=an && an<=A_SC) P=90000;
1 k$ S. x$ t$ D) A/ I& z
return 0;
1 z" h2 [! W$ D- p. O% l
}
# o# ]/ U; N. ^6 {9 m+ N
! O$ T; Z5 l0 z0 |3 v% z
void Calculate(void)
5 a, v" ]3 B2 p
{
) A3 i& I) N$ O. \) U
double Tpre,K1,K2,an;
0 D; q* x) x6 L5 }+ u+ y+ |& @
int index;
1 c8 a6 g6 Q: }5 Y* c
Pe=30*4.0*Ne/(gnum*100000*n*S*PI*D*D/4); /*平均有效压力bar*/
" C( ~1 S4 j, ^
mBo=Ne*ge/(30000000*n*gnum); /*单缸循环供油量kg */
- v# ?! _4 b3 U' N- Y0 b6 X# t
CA=A_SC*PI/180; /*进气关闭时的角度转弧度*/
: s! ]' _$ L- \) v
V=V_CA();/*进气关闭时角度下的气缸容积*/
# y5 X4 d0 @4 R. T
P=P_SC;
1 ]6 S' B; q! e2 L" q) F: h+ y: y% ^
T=T_SC;
* C K- q k6 ~: q
index=(int)A_SC;
; J5 ?: p; R' ]8 a+ u' H' R: N
m_T[index]=T;
3 U D( w. C2 u; s5 X3 n1 D! ~
m_P[index]=P;
. ^" T* O& z' u3 V/ p
m=P*V/(R*T);/*进气关闭时角度下的气缸内工质质量*/
5 A% |& S8 i2 ~2 s8 ^: p; {5 l
mL=m-0.01*mBo;/*进气关闭时角度下的气缸内空气质量*/
5 f+ l1 c6 P- i: u
mf=m-mL;
x' N! W$ w0 w! h/ `
Tpre=T;
7 g! @8 _* R! `' n. U
an=A_SC+1;
# S. r9 B) N! _$ O/ r' x$ \
7 u+ C: G0 z% C7 ^ f
do{
* Q3 _ j, |: Z' [# w
7 p" W% r h& X' _ @ F
/*B 编写欧拉法求解常微分方程程序 */
( _0 S4 K$ {( l# a0 v- q6 z
8 B' j- ~" E6 |0 Q) y
}while(an!=A_SC+1);
) e `$ g D+ l4 @1 d2 ^# t+ z8 s- }
}
/ N; y, a7 B, B: j) H4 b; f
$ L* @3 R8 J( Z
void main(void)
1 b1 t2 U0 {. G: X4 `4 ?8 H& H( ~
{
8 d* R8 C0 d3 R% V) f/ K" E5 U
int i;
, a7 j, `" J2 G8 q+ ]
FILE *fp;
9 p5 H$ t6 R5 {9 u( a' n1 d2 J9 b2 X
D=0.11; /*发动机数据按各自的任务书输入 */
2 w5 f J3 Q6 Z" v1 ^ E
S=0.13;
# |3 y$ \/ \& v3 g' {! D
L=0.21;
9 m' b3 \$ V: y: n9 Z
ge=236.0;
: B5 R- l' U* {7 k: l0 H
n=2400;
) \+ {3 P4 b6 y
Ne=101568;
+ _; e! r1 \; ]0 z
gnum=6; ysb=17; M=0.7;
% y* c* S4 S Y# r
Hu=41868000;
0 ^* @2 d0 h9 A1 O1 O5 I% ~
R=287.08;
" N- D7 |7 p# {
Pa=101000; /*大气压力*/
# l5 ? R$ o6 A! N% ?9 q, g2 y& G4 R
Ta=300; /*大气温度*/
7 ^$ n) ^6 Z1 l# `! c% S# f
hs=(735.0+R)*Ta; /*大气焓值*/
6 \, \8 @( X! d' X8 \$ n
P_SC=90000;
6 w8 [: a% s' V4 u# p4 R
T_SC=313;
: } c9 s! r/ L' {( b
4 \, p5 q! ^1 O/ B' U2 O% e
A_SC=216; /*进气门关闭*/
2 t) ?) Z" z7 T9 P% o1 [# b
A_CB=350; /*燃烧开始*/
. J6 P# k, t; n/ S
A_CE=410; /*燃烧结束*/
) y- m" o8 i w( r# R! a( u
A_EO=484; /*排气门开启*/
4 a$ i/ ?! V7 l4 w ?1 k- I& h
A_SO=705; /*进气门开启*/
0 a6 s6 f' ~# }" h# | H" Y
A_EC=15; /*排气门关闭*/
( ]( d9 g6 d/ m
" t' L) W. _% h
Lo=14.4;
% a4 f' c9 _- {. ~3 U7 } P
0 u S. u3 i- N1 P/ ]) _* [
for(i=0;i<720;i++)
; `; \/ k w2 P
{
+ [2 K5 {# r3 T0 U. k2 _
m_P[i]=0;
, F4 f3 [: `' Q# T1 `8 ]" \
m_CA[i]=i;
7 w8 B. G N, S5 h% p, M% `
m_T[i]=0;
: |* c& F" `$ O- R# ~9 `5 G G
}
$ S+ d. H6 U( g, O B: `; S5 m
7 U9 a+ w9 F4 J8 Q) ?: s6 C
Calculate();
2 M5 f0 [5 V P* O2 }
! y# K7 i) y. u: \
/*C编写数据输出程序,计算结束后按顺序输出0-720转角的“缸压,温度”数据到outdata.txt文件 */
7 B8 Q6 B5 H/ P: X
: a1 Q. p# _$ D, j( f, h" f5 k
}
8 o i1 @& T# f+ a
/ f- V( Y4 C5 N8 W2 F; U: q
4 _0 R8 F7 c# q# c1 |9 [
作者:
祥云飞鱼
时间:
2015-6-28 23:45
不难啊 完全是 把 公司 翻译成 C 又没有用指针跳转的。。。
作者:
一点一点来
时间:
2015-6-29 01:45
这是作业的干活吧……
欢迎光临 机械必威体育网址 (//www.szfco.com/)
Powered by Discuz! X3.4