机械必威体育网址

 找回密码
 注册会员

QQ登录

只需一步,快速开始

搜索
查看: 3391|回复: 2
打印 上一主题 下一主题

内燃机热力计算怎么用C语言编程?模板如下,求助。

[复制链接]
跳转到指定楼层
1#
发表于 2015-6-28 22:58:34 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
#include "math.h"+ c% w: x" ~8 H' ~4 w
#include "stdio.h"
1 N6 o& M8 w9 M8 q9 R#define PI 3.14159266 Y+ `2 u3 s# D4 r

& q' o! X% U' K5 Adouble D,S,L,ge,n,Ne,gnum,ysb,Hu,Lo,M,R,P_SC,T_SC; $ H0 ]7 j8 c! p4 h) U% _7 M5 d' Y
/*缸径、行程、连杆长、比油耗、转速、功率、气缸数、压缩比、低热值、理论空燃比、Weibe函数常数m、气体常数、进气门关闭时压力和温度 */: x6 `0 f/ i# N7 H/ \0 l
        double m_T[720],m_P[720],m_a[720];
' ]- W; C+ E( _/*气缸温度、压力、瞬时过量空气系数 */
+ n) x9 _/ M+ w3 A! H7 Z        int m_CA[720],A_SC,A_CB,A_CE,A_EO,A_SO,A_EC;5 h$ A% z2 P( {* d+ a7 k
        double Pa,Ta,hs,P,V,T,CA,m,mf,nmd,Pe,mBo,mL,dXY;9 h7 Z3 _# O% p% F
        double Cv();
8 |- k% \2 K6 E8 x; n% V        double dV_dCA();
# S( Q, x+ J6 p8 @& ]7 D2 F        double dQw_dCA();
+ Z" Q. @) C" d: g        double dQB_dCA();
4 h7 s7 Y/ z5 @        double U();
8 A0 C+ ~1 S- A        double V_CA();
+ c! I- n  }! }8 \" j5 ~9 c; d        double dU_dnmd();7 R0 W7 m3 S: D3 V
        double dT_Ys_dCA();: H. V8 p  X4 S- [" I3 y! H6 e. ?1 E
        double dT_Pz_dCA();
" r- y" J2 L. y2 \) S# l) X8 ?: z        double dT_Rs_dCA();
) o; H4 Z  m0 d; g        double dT_Hq_dCA();+ g+ l! G3 R/ c) Q5 ]+ ~
        double dT_dCA(double an);
) U4 s  E6 h6 L1 T. b        void Calculate();% I0 h8 U3 d$ ~
3 @8 V% t+ N: V1 W. y8 {# [) j7 E
/* A编写各子函数程序*/. k- W) ^. h: ?6 M7 d% z
        double Cv() /*求定容比热*/$ M' u5 X1 F* d: Q+ ~" N9 X* B  ^
{
- V5 K& f# [8 |
  F! l2 Y3 M6 V}
( w* A7 @& [$ `) s
' N* S3 ?/ g, f3 f- i$ _4 S0 Z
) i. Y& m+ U# l8 J9 h, U9 u3 Qdouble  dV_dCA() /*求dv/dφ*/: U/ Y( n$ B1 V% |; n; A4 {
{7 t; r2 \- p5 k2 A: W' }
. K; I' T0 g6 b' z- q. v
}% Y, n4 u4 K- @* {& f. j# L/ A
. ^9 X1 P) M) ^

. h+ C: b9 r* m; jdouble V_CA() /*求气缸容积*/
- q% o7 u9 ?/ ], _' P. e* g{
) u$ J' P- y7 g
3 A( l8 e/ H0 c}# E- x6 K/ D; r# x( ]+ y
; v9 J# R5 F4 y
) V" l9 f- b. a& q5 I/ H; I
double dQw_dCA() /*求dQw/dφ*/8 @( C. ~: ]7 z
{
0 J+ S6 u# h7 R6 v8 f
9 z7 J' D7 l1 W1 t& w/ S" M1 r}
: N5 L$ C8 T3 P; D/ H
. Y3 P  u- k& Y8 Z" O, O
6 e7 F# ~( N: l: i/ Vdouble dQB_dCA() /*求dQB/dφ*/! z3 s! i2 L% u+ x
{  K4 Y5 a; f5 a6 R1 m: u
5 S; B5 H/ I+ W% ]  j4 ^
}& C( q4 L+ T2 g* [0 F

( P6 y  ?9 L' ?% x# I) P) R$ ^, L
- |$ ~+ W$ {3 J1 I0 D; ydouble U() /*求u*/
" I% B7 z. q% f) F{
# R' B2 B- @  K$ p% Q" C/ r! S7 }! W  v  o
}, `7 t" k% p! ?/ P0 y
% m) d) `2 c* L5 J2 Y+ g' Z' g

5 v( p% b$ i' _( `: d$ odouble dU_dnmd()  /*求du/dλ*/" V' A* P+ Y5 e+ u3 V8 S
{
9 ~  r, S+ Z& m8 |7 z4 m/ z8 x- {" p- b1 L4 s1 `4 G" d
}
7 e6 b1 I+ ?* W9 A, D% l2 x
4 |0 v8 P, ?0 G+ s* ^- vdouble dT_Ys_dCA() /*压缩期*/
4 l1 E5 M/ _& v2 K2 A+ Q; y{  f: U; K( M, G' |9 c, F* G. v. f
( _3 y8 |$ U4 E+ [
}; G) v' m/ E7 C% V: r
1 c- K8 ^% Q* D- s

  Q5 i, r% _# l# i2 jdouble dT_Pz_dCA() /*膨胀期*/
4 p6 ]) M, e5 Q8 L{
, D8 P" \2 W/ r2 T3 b4 H
( G$ N3 {0 O1 o& A6 Y* n6 y  G}) q9 J9 w6 F( u) q6 u& F  l
' A$ F( X$ ~! M: a1 N
9 O( B( L2 M& ~) b/ y% [, Z. z
double dT_Rs_dCA() /*燃烧期*/
5 W) ~3 a- y2 |3 Z- ^/ o$ R9 k1 H3 j{
) H, S* o0 }4 ]$ H* d
9 E" e/ x  i1 @; Y9 D1 s( V}
7 S$ P. O2 r7 L! c3 w3 J) v2 w; Z, o( i/ W
, X; o  A* W  B. r$ z+ j. L
double dT_dCA(double an) /*求dT/dφ*/% a: f0 O  W6 K
{6 {+ I# N7 u6 r" c( b& r
        CA=an*PI/180;; v5 C5 ]6 ~: D* X' U2 c0 R% V" y4 s
        V=V_CA();9 i# u. A" T) Z* h' T0 h7 b- y
        if(A_SC<an && an<A_CB)   return dT_Ys_dCA();$ a$ u& M5 F7 _& d: p/ c: n
        if(A_CB<=an && an<=A_CE) return dT_Rs_dCA();
' B3 T! @5 C& @  B4 @        if(A_CE<an && an<=A_EO)  return dT_Pz_dCA();# j+ _3 J  D; f* K: m
        if(A_EO<an && an<=A_SO)    /*换气过程不计算,线性赋值,避免零值 */! f2 Y) V& X+ f( D
                P=110000+(m_P[(int)A_EO]-110000)*(A_SO-an)/(A_SO-A_EO);
' F* z6 F. w) N    if(A_SO<an || an<A_EC) ) T0 \' I- v7 X  r) U
                P=110000-20000*(an>A_SO?an-A_SO:an-A_SO+720)/(A_EC-A_SO+720);
) ~, Z# |. a# d7 v        if(A_EC<=an && an<=A_SC) P=90000;
: M+ k7 U3 }4 }. p3 y$ |- n) j( {5 F' X        return 0;
" z1 n, ~/ v; H: Y. ~7 y}# J- W$ Z4 @" z* I7 b( o

( w, ?5 L8 D) r' _7 s  e3 Z5 o& n6 _+ avoid Calculate(void)3 P' W# g) E4 O9 b* [' M2 v# {
{
$ n* t' i6 x7 I0 b4 i3 B    double Tpre,K1,K2,an;* y3 {& h1 O, X1 _9 y/ q
    int index;
+ q; k& e5 O9 }8 [        Pe=30*4.0*Ne/(gnum*100000*n*S*PI*D*D/4);  /*平均有效压力bar*/( [9 H4 T# ^+ J" P/ }5 }
        mBo=Ne*ge/(30000000*n*gnum);   /*单缸循环供油量kg */" S# I$ H( w+ D2 U8 ~- O
        CA=A_SC*PI/180; /*进气关闭时的角度转弧度*/
' A; i8 L( o: y9 k  ]9 ^1 p! a0 x% w        V=V_CA();/*进气关闭时角度下的气缸容积*/% v: ~4 u( h! F; }: S, w! h
        P=P_SC;
2 S# x, H' P- A& a        T=T_SC;3 B" p( Q5 W: y& G5 F1 ^. P+ e1 B
        index=(int)A_SC;
3 D9 G- Z; s# a) N5 `+ J+ p, E        m_T[index]=T;$ [3 `, l5 I! u9 c- z; }) r5 M
        m_P[index]=P;* R1 f2 L/ j9 _& A
        m=P*V/(R*T);/*进气关闭时角度下的气缸内工质质量*/
' P; C9 H& T: d1 m. g/ c6 k        mL=m-0.01*mBo;/*进气关闭时角度下的气缸内空气质量*/7 T# F" Q) \: l5 n# z* B% I1 a
    mf=m-mL;6 Z$ @/ e( B$ ^2 H- V+ y5 n
        Tpre=T;( V' D9 w6 d% ?! _- t% b1 A
        an=A_SC+1;
* }2 l1 G, B' i/ c( {% f3 S' T. F5 @+ ?& @6 j
        do{
8 V  a& z: @  N1 `# y' r" a1 Z! T0 r) F
  /*B 编写欧拉法求解常微分方程程序 */
4 @% n. F. A9 A5 t
1 ^0 W3 a" N& ]! C* T1 r        }while(an!=A_SC+1);
8 n7 i3 P" m$ ]  T2 b7 H}4 d: d1 i5 b! ^7 y; F6 Q! c

! {  B" u' J" E' R$ o& a8 svoid main(void)
0 B9 t+ w, W3 R% H. c. e. I  K& I. f{
" m7 R4 d0 }! v' c7 ^' Y+ D" U+ q        int i;
; M8 y' g7 h! ~# i9 }8 J1 A        FILE *fp;; k3 ?+ R' z, R0 R3 m  p' n
        D=0.11;   /*发动机数据按各自的任务书输入 */
) t$ J# a. J6 z, q2 U0 G! ]' z, }        S=0.13;
3 @# `5 S1 O( V3 P, D4 P        L=0.21;0 w$ Y4 k7 D; W" ~
        ge=236.0;6 r" x! v- b3 C
        n=2400;0 j0 j8 q, M5 F( d9 t9 Z
        Ne=101568;
' R# x& u) c4 ~4 v+ {        gnum=6;  ysb=17;   M=0.7;
/ P7 {# m6 ]) e4 p$ o        Hu=41868000;
$ D2 }8 S) f1 [& |( B+ t. |6 s        R=287.08;
4 ]9 g  V' U0 k+ F+ o) c% D) Q( k& B        Pa=101000; /*大气压力*/
7 f; Z; }2 F% `$ U; N        Ta=300;    /*大气温度*/& w  T0 ~" {+ E+ r; G% |$ t
        hs=(735.0+R)*Ta;  /*大气焓值*/
+ X( k; t0 j0 p4 G6 Q        P_SC=90000;  _3 a/ K' c2 ~
        T_SC=313;
' [1 j; {8 N; ]1 Y, ^3 P3 w$ v( S- ?$ X& P3 v8 Z
        A_SC=216; /*进气门关闭*/& [/ M' A* q7 ~' G$ U( S# ]0 M
        A_CB=350; /*燃烧开始*/
' c3 N- E" T* o9 J* ]        A_CE=410; /*燃烧结束*/
! a9 @  d  E1 K" E) ~        A_EO=484; /*排气门开启*/: H+ {' g: k" j# u' o1 U' j6 U/ F! w- R
        A_SO=705; /*进气门开启*/
4 O$ O4 Q, G0 w8 y  U1 F        A_EC=15;  /*排气门关闭*/
6 }' G+ x! V; J& q7 D+ i7 o# `1 F
        Lo=14.4;
1 ~% g9 M1 Y8 _) L& }8 A2 }4 F! q' |  u& t) w0 [6 h
    for(i=0;i<720;i++)/ Q9 j9 k- B% i' L. O6 X
        {" M3 y  Y0 I( a9 Q  U* ~( t7 {) V
                m_P[i]=0;( ]; S1 [, x7 }  }
                m_CA[i]=i;
2 Z; T& u$ w; Q6 M9 ~# T                m_T[i]=0;0 L& k! L1 g. U  p4 A2 p& Z' L
        }
/ Q3 R) Z; G  {# C% v# S9 B8 y
( o: E% B1 }$ _1 q( f6 `% Q7 \        Calculate();
" c2 |- c# D5 G% |7 \0 D# \' W+ c3 U% w3 U7 v
    /*C编写数据输出程序,计算结束后按顺序输出0-720转角的“缸压,温度”数据到outdata.txt文件 */
( o# B: s0 ]/ ^/ _2 b; j$ [- W
}2 i3 i5 A; q- Y: X+ {3 H$ j: c* G

' z4 M7 p- n$ O2 y8 E9 ?; x; c' U6 R7 [. g& w5 L; C
回复

使用道具 举报

2#
发表于 2015-6-28 23:45:10 | 只看该作者
不难啊  完全是 把 公司 翻译成 C 又没有用指针跳转的。。。
回复 支持 反对

使用道具 举报

3#
发表于 2015-6-29 01:45:20 | 只看该作者
这是作业的干活吧……
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

小黑屋|手机版|Archiver|机械必威体育网址 ( 京ICP备10217105号-1,京ICP证050210号,浙公网安备33038202004372号 )

GMT+8, 2024-11-15 08:57 , Processed in 0.051600 second(s), 19 queries , Gzip On.

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表