机械必威体育网址
标题:
内燃机热力计算怎么用C语言编程?模板如下,求助。
[打印本页]
作者:
方进小侯爷
时间:
2015-6-28 22:58
标题:
内燃机热力计算怎么用C语言编程?模板如下,求助。
#include "math.h"
5 u+ S& J; v9 E4 C
#include "stdio.h"
' P4 ^2 _& @/ J8 I0 g
#define PI 3.1415926
% h) \% @5 M: s7 M7 {6 k( F
2 p- h1 V9 F: X' \6 n! N+ T+ C
double D,S,L,ge,n,Ne,gnum,ysb,Hu,Lo,M,R,P_SC,T_SC;
8 O0 @) V$ r5 _# u9 v
/*缸径、行程、连杆长、比油耗、转速、功率、气缸数、压缩比、低热值、理论空燃比、Weibe函数常数m、气体常数、进气门关闭时压力和温度 */
5 W9 h7 g+ C W9 \
double m_T[720],m_P[720],m_a[720];
5 G. r* f) Q. n; m
/*气缸温度、压力、瞬时过量空气系数 */
% X! }. ^) g* Q
int m_CA[720],A_SC,A_CB,A_CE,A_EO,A_SO,A_EC;
$ D y+ J* ^1 M* G% S# g# @6 n
double Pa,Ta,hs,P,V,T,CA,m,mf,nmd,Pe,mBo,mL,dXY;
# b2 I4 o8 i6 u2 P4 p6 D
double Cv();
, F; p6 Y y5 ~. Y
double dV_dCA();
- I0 q- G. G8 w, r, P! R
double dQw_dCA();
6 _; a1 b1 l$ L# s; X' D
double dQB_dCA();
: t) q$ [) [7 I- g" o8 q
double U();
- }. u$ Z5 T7 ]" K
double V_CA();
5 Z: o7 j6 S. p
double dU_dnmd();
/ s* m: m- T/ t' b
double dT_Ys_dCA();
( t+ i3 K' Z5 O' ~
double dT_Pz_dCA();
) m8 n Y. Y* ]
double dT_Rs_dCA();
! ]2 J/ R8 A; t1 a' w/ b
double dT_Hq_dCA();
5 g$ c6 B4 l# L: x
double dT_dCA(double an);
. N1 `) s. _1 l. h6 U& d& p! I2 t
void Calculate();
1 M: I7 @$ t& L) D6 N/ C/ W
+ U1 O( }7 [' p; j7 n# {9 [
/* A编写各子函数程序*/
: @2 F# x z$ c! e( F
double Cv() /*求定容比热*/
; D- Y# H4 E- h+ I
{
- u- R7 p) i! v2 L7 P! S
# v; B; i9 X! k, V# w
}
0 L; _1 h4 `6 _& O
$ U3 m( S# _& [ t+ B
3 k" E5 H; {6 V+ ]2 u5 E" E
double dV_dCA() /*求dv/dφ*/
# h: E$ g; Z. L. f
{
# `9 i; S& X0 @6 y1 Z/ p
) g7 C! ^" h. O, u P9 ?
}
5 r) i# Q |2 C5 E U7 B$ m
5 T* w F/ ?7 a% g
! }% ?# a1 J/ O2 a: t
double V_CA() /*求气缸容积*/
5 c5 P+ W o& e
{
7 ^4 T9 z' m+ @: z* i N' p
2 d' v0 @8 O" P6 B9 L9 F
}
- Q/ {: F* K: L( r$ g1 A
! J* k4 F" X* z# z$ d+ l
! q' I8 Z% A' E' a1 x
double dQw_dCA() /*求dQw/dφ*/
" Y- t& j) e) J+ L
{
- u$ K* Z5 P5 A1 g5 r3 i, F a
: L# Z- w6 R( S, N
}
1 Y0 }: }# H- a+ }3 k$ w
) W: i" Q% X0 g! _* N2 r
/ |! V) C2 n4 y
double dQB_dCA() /*求dQB/dφ*/
+ ~9 ^4 x; H, [
{
( K( l1 z `' i. F: C6 }" F% l1 c
5 d. D' u4 k9 N: b( }
}
& T- }0 a2 S7 G ]
0 I0 b4 ^0 P) y
A$ q3 {8 k* U/ V& t: g( Z+ ?( t
double U() /*求u*/
0 T8 f( e) _$ `; {! }
{
0 Z D$ y. Q+ E/ s
1 S& m2 y+ k6 B' |/ r( \
}
6 S) p8 D! J" E" J( F4 a6 m% N
! B8 C- U! H1 J; Q ^
, y+ \( k! X5 O3 M% a0 [
double dU_dnmd() /*求du/dλ*/
' y, Q0 f5 ^2 `
{
% \4 {# N) _: j& i$ e! l( L Y
* \/ G+ Z6 ~& O
}
% ]6 H3 f) }8 U
% |, Q2 w: P- o- q& K. b+ j0 j
double dT_Ys_dCA() /*压缩期*/
; G1 ?1 `3 Z# [2 M x6 v5 c* m
{
1 Y: Z4 u {' ^/ X
( [) a6 z( g9 X2 c* `
}
# H% d$ J( I% s$ ]3 c5 S" W8 C# O, q
. B0 O1 ^+ v: ]
~, b) S; M! N+ v3 h
double dT_Pz_dCA() /*膨胀期*/
9 w, F. d6 b- b+ b
{
: M2 T {0 ^& ?7 ?! D
3 l6 A, E* ~/ ]4 X( y. E( c
}
9 h$ ?0 L7 ]% Q+ @4 X% k
3 F0 O# ]. y2 `
" F' V6 S0 ?1 G, a
double dT_Rs_dCA() /*燃烧期*/
, v: h6 a7 N) @. A
{
5 x, c g1 f% N
y+ R: }9 W* W1 T
}
# ?! I% x+ g L& b S* c
8 f% M# {$ H7 g' z9 D
4 c' ]& M5 Q2 v: H+ |
double dT_dCA(double an) /*求dT/dφ*/
: ~( A% O8 k7 ^3 x3 q4 {
{
! R- R- X7 p- f( U6 Y7 @- P
CA=an*PI/180;
, B' }/ K5 ~& z1 A$ p. s
V=V_CA();
$ Q* y B6 H( l4 S$ I5 ~
if(A_SC<an && an<A_CB) return dT_Ys_dCA();
' g# V3 o& g6 |5 e* o V. y2 j
if(A_CB<=an && an<=A_CE) return dT_Rs_dCA();
7 D' }9 m5 f: \$ J
if(A_CE<an && an<=A_EO) return dT_Pz_dCA();
$ L9 w; M) Q( f: E
if(A_EO<an && an<=A_SO) /*换气过程不计算,线性赋值,避免零值 */
# q' a0 s4 L) r# a2 x1 s4 p! g) q
P=110000+(m_P[(int)A_EO]-110000)*(A_SO-an)/(A_SO-A_EO);
3 @; L! _% a9 q3 P# Q7 e# E( `& a, Z
if(A_SO<an || an<A_EC)
$ Y2 }( ]7 K) O6 Z# g- {
P=110000-20000*(an>A_SO?an-A_SO:an-A_SO+720)/(A_EC-A_SO+720);
E) F8 J5 Q, c8 n
if(A_EC<=an && an<=A_SC) P=90000;
0 B3 Q& e2 q5 F3 L0 V5 m! i4 A
return 0;
- A {' Y9 t4 P; o
}
0 Z' T" i) {8 d# p
2 w6 G1 ^0 A( y
void Calculate(void)
! \3 F1 O% f3 k3 Y: Q
{
# |! G& x( c+ r+ g$ f! u; L3 T
double Tpre,K1,K2,an;
( d6 s9 a( |8 ~- `
int index;
/ T* P6 Y/ x1 X: ?6 w
Pe=30*4.0*Ne/(gnum*100000*n*S*PI*D*D/4); /*平均有效压力bar*/
- O8 o6 F1 L, m" ~* g
mBo=Ne*ge/(30000000*n*gnum); /*单缸循环供油量kg */
) d) g- M/ ]# V7 ~0 q% s
CA=A_SC*PI/180; /*进气关闭时的角度转弧度*/
- o( v% \+ K" [+ S+ L" |) V
V=V_CA();/*进气关闭时角度下的气缸容积*/
* O% v# k" v+ Z2 j& Q" l
P=P_SC;
9 E; e0 u7 `/ ^) c7 S2 [
T=T_SC;
4 u* Q: ~3 h2 B: i' p, m
index=(int)A_SC;
! _) P% `5 G8 R# ?$ T# Z
m_T[index]=T;
q1 ?: g, s) ?+ @; }$ \" I c
m_P[index]=P;
0 G5 B; |9 x0 e3 ]; }3 I: w
m=P*V/(R*T);/*进气关闭时角度下的气缸内工质质量*/
8 R; ^4 g# ]! D0 D. ]
mL=m-0.01*mBo;/*进气关闭时角度下的气缸内空气质量*/
' D5 J# A' G6 _! C+ A5 e
mf=m-mL;
, i: ?1 G4 F' p5 h; B8 t- Y
Tpre=T;
( e6 R' M8 u: {( J* X
an=A_SC+1;
2 b3 l7 x9 W) D2 ]% l5 a! x! E
$ |* V- _. p- p
do{
- i! _8 K- V! J( ^: o: C" e9 [
' k$ Q" N. W& P5 L8 G5 \5 V n) L1 g8 r
/*B 编写欧拉法求解常微分方程程序 */
! T# G" h4 t* i% o& J% J+ k
; _: s2 V/ \5 S
}while(an!=A_SC+1);
! W+ G) ^7 t8 L6 |: M
}
2 V' O4 R- l+ i6 r e1 H
0 m# b0 S, V# w# ~
void main(void)
- R( S8 w3 ?* L6 X8 s/ H
{
) }3 n$ @* y7 ~: l" R8 c3 X
int i;
$ E# h9 {: w6 c7 E1 A; t
FILE *fp;
: z" j6 F) g# _$ J
D=0.11; /*发动机数据按各自的任务书输入 */
4 A# k6 c9 {" `" F6 [0 y$ p
S=0.13;
: G W0 K* z: j: e! @' s
L=0.21;
6 ?5 o1 E' T) q4 D
ge=236.0;
: u* W1 z1 U, ^+ \3 W% d
n=2400;
+ V* q2 E4 s* w
Ne=101568;
) T `* L$ L1 ~% w5 i4 H
gnum=6; ysb=17; M=0.7;
+ v; G% U, E" w+ a
Hu=41868000;
- H1 n0 N: x6 O8 ?$ Z! }8 ]% [$ Q! b1 M
R=287.08;
6 i8 n) h S* @% D+ {
Pa=101000; /*大气压力*/
! @3 Y) |" y- W: g2 e; w8 V# Q5 P
Ta=300; /*大气温度*/
: \) ~, L- {7 O2 {, r" H
hs=(735.0+R)*Ta; /*大气焓值*/
0 p: k4 S1 e% [) R
P_SC=90000;
# e2 Q; [* k4 v0 q K( o) D) i
T_SC=313;
8 W. m& ^; [0 a& S6 C
2 @% K, r) | _) K' R& ?7 \5 K
A_SC=216; /*进气门关闭*/
V. f B5 }% h4 D4 s. ]5 ?
A_CB=350; /*燃烧开始*/
/ o$ g/ j: Q1 {
A_CE=410; /*燃烧结束*/
9 C9 {% C) r& B& x, j( ?7 ^
A_EO=484; /*排气门开启*/
9 r1 u# p4 l6 Y0 K$ r( P
A_SO=705; /*进气门开启*/
( a8 E T$ h- q
A_EC=15; /*排气门关闭*/
' W: b; M5 g( p3 N: h
+ e7 v1 u6 b; i1 ^
Lo=14.4;
: v3 I8 }8 x" A& W4 K
4 \- L# S) s; n' O/ L& o2 ]3 b
for(i=0;i<720;i++)
, Z$ e% ]8 x6 k
{
$ H1 |7 Z; J! B, P
m_P[i]=0;
1 \8 b) [$ h2 G
m_CA[i]=i;
1 c: g2 o- p$ p
m_T[i]=0;
0 J7 I; Y4 X: I; I. W' B0 n3 r3 [, C
}
4 a: c# Y' u% \; C& |
& s. P/ Q: w6 K" i
Calculate();
' W7 Q; R1 o$ A+ p+ x
: q# a: i$ K) B$ H! a1 s A
/*C编写数据输出程序,计算结束后按顺序输出0-720转角的“缸压,温度”数据到outdata.txt文件 */
6 Z/ | o) h* G7 v9 V% @$ X( K$ B2 t
+ b2 X- f; l9 _6 J7 g
}
; [7 O3 @, m9 N8 r, B9 S! {) P
7 A( M$ Z8 u( J( F7 ?/ p W: l
) Z( Q! Q- }, Y- h2 f
作者:
祥云飞鱼
时间:
2015-6-28 23:45
不难啊 完全是 把 公司 翻译成 C 又没有用指针跳转的。。。
作者:
一点一点来
时间:
2015-6-29 01:45
这是作业的干活吧……
欢迎光临 机械必威体育网址 (//www.szfco.com/)
Powered by Discuz! X3.4