机械社区

 找回密码
 注册会员

QQ登录

只需一步,快速开始

搜索
查看: 3590|回复: 2

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

[复制链接]
发表于 2015-6-28 22:58:34 | 显示全部楼层 |阅读模式
#include "math.h"3 ?2 x/ V, T+ T! W1 H% K+ D
#include "stdio.h"2 R( ^( c. x+ q( [
#define PI 3.1415926
) [% Y( E2 f/ j, J  T9 J
% c8 Z: N  J$ W0 F+ \7 \3 f- \double D,S,L,ge,n,Ne,gnum,ysb,Hu,Lo,M,R,P_SC,T_SC; $ @; G1 W! t: q* Y( N
/*缸径、行程、连杆长、比油耗、转速、功率、气缸数、压缩比、低热值、理论空燃比、Weibe函数常数m、气体常数、进气门关闭时压力和温度 */
' ^5 @4 U: L3 `        double m_T[720],m_P[720],m_a[720];
# E$ W2 _* O; s7 f$ C, Y/*气缸温度、压力、瞬时过量空气系数 */
* b' {! ?# R. X7 a1 q        int m_CA[720],A_SC,A_CB,A_CE,A_EO,A_SO,A_EC;
! ]1 K; E  R* q( l& p, g) V5 j        double Pa,Ta,hs,P,V,T,CA,m,mf,nmd,Pe,mBo,mL,dXY;  M* O- v% S( [# [2 T! @
        double Cv();
) K; m: z  Z3 K        double dV_dCA();
, N. t' e& h! t0 i" s: p        double dQw_dCA();
8 `7 ?* R3 m; ?8 {        double dQB_dCA();
! s/ r4 ~3 r5 P+ E, |        double U();
# h- U! O& F7 X( h  c; d        double V_CA();
) J5 U) y! {0 C. R) v+ Y3 Z        double dU_dnmd();+ t' ^: K% t" Z) G
        double dT_Ys_dCA();0 r$ z( L! u; v# b- u- p' p
        double dT_Pz_dCA();
, L( C$ W. l  r; f5 h4 x( M$ @        double dT_Rs_dCA();% h7 s2 d' i3 d! x' c
        double dT_Hq_dCA();3 p$ d# u# P" I; x
        double dT_dCA(double an);
' O0 b) p4 N8 b% D& H4 W        void Calculate();
, y7 i# l# S. [0 x* }, P( a# m" }9 e
/* A编写各子函数程序*/
; c  m; _5 n* K0 m/ n        double Cv() /*求定容比热*/
/ O  Z. N+ Q, e, E% C  b" t{* ~. g/ S) `" M, w7 t, K6 X" i
% J% y, Z, e$ O2 Y
}
" [& M" P) s. M  A
8 I. ~& o+ E% S8 Z- V" H" z; Q4 _# n" t, f
double  dV_dCA() /*求dv/dφ*/
8 K4 G" S% v( F+ b! g. `: w{
5 c2 v6 ^# z% S+ T  h  ]( s
8 \2 y% V) k7 k}' Y: c. u! b4 X0 Z/ C* t

7 N6 {! t  H4 Y) D# u) v
' ~4 j7 C! A" X8 xdouble V_CA() /*求气缸容积*/
4 F- L3 p7 _7 D6 z{9 W" k$ e# c9 n
) o/ o2 b2 x  x4 d, a
}7 {3 [5 `: n' [! d8 H
- c9 W% Q) D; U1 b

: X, p, X; E( Z3 U$ z+ ldouble dQw_dCA() /*求dQw/dφ*/
& K/ o; J5 Y, T5 e{" e, C# z& S. s! U
  ]& I! @" G0 `5 i& u- Z
}; j3 _9 S4 b/ i. r' J
8 `9 W: N8 i3 m8 O" e8 q

: Q# l  W9 u8 W' Fdouble dQB_dCA() /*求dQB/dφ*/
: ]- o6 s4 L9 ?/ i  l# b5 p, J{8 J* f; k3 F, E+ j

" l  R' ]" ]: j; s2 Y9 H$ u2 L- @8 w) Z}6 l8 D4 s. t( e6 i" L( J
' W  w3 J+ Z+ M% q
, G5 d, @5 h' C" @' E
double U() /*求u*/! [$ J" E3 v6 Q, t  q. m
{
: ]9 U) p; d7 O. |# U5 y
9 f6 T+ x* s! \9 a0 H, ~}
/ \$ z# {0 X( S1 @; o( j! R$ W1 B* f5 \$ {5 |0 T; m
  y' `& D  V' S/ r; |6 l" r& t, V
double dU_dnmd()  /*求du/dλ*/
) ]* f9 C0 [/ }. j{
0 W: Q( i1 L- T3 c2 i- j; ]
; i. X5 _# n5 M  l4 K; i}
7 \7 G3 u! B! I/ Z- U, k$ X8 j+ l8 `" B. Y9 ]- z
double dT_Ys_dCA() /*压缩期*/
& A, l5 J+ [1 {4 r{: d7 E9 {3 P& a7 [2 P9 D

) k" V9 H9 e, ]" b) N; ^( Y2 d9 A% k: X}
* z4 s$ E6 D- e3 C9 `8 M1 S
. F  e+ {, e7 h
0 q! X0 h2 n8 g+ u8 adouble dT_Pz_dCA() /*膨胀期*/! E  t8 U. B$ S5 Y/ l4 h4 O# k  z- b
{6 w3 Y  X* O+ G- G
- X/ A9 l) R. A8 ]) b
}9 t4 J1 E' r) z( O* S; b9 i- O

- \7 O! J& ~) Y) {
" S- E% F" M2 o* ?" xdouble dT_Rs_dCA() /*燃烧期*/* v8 h4 N- n/ U4 `2 B0 J, U; H. U
{
8 ^1 m+ P% q8 D5 ^8 c
/ N$ v% q" r* [% Z}$ }! M% i- x; a7 k; `& k4 O

8 B$ H* G; Z4 s) C* Y% N6 z$ p3 S9 c: V
double dT_dCA(double an) /*求dT/dφ*/7 Y; B5 O( G- h; H+ [# Y
{  S; Z0 |% M. W
        CA=an*PI/180;
, E+ M% g7 {4 ]* u) t        V=V_CA();
) C' g( U! e' Y5 Z        if(A_SC<an && an<A_CB)   return dT_Ys_dCA();
/ j5 m5 [6 z' J" X) J        if(A_CB<=an && an<=A_CE) return dT_Rs_dCA();3 L- A4 {  z$ C2 Q! ?
        if(A_CE<an && an<=A_EO)  return dT_Pz_dCA();
+ n+ s2 ?$ n- I) A/ k) G+ Q        if(A_EO<an && an<=A_SO)    /*换气过程不计算,线性赋值,避免零值 */
+ N( V: t4 ?: O' O9 b6 j                P=110000+(m_P[(int)A_EO]-110000)*(A_SO-an)/(A_SO-A_EO);" E. J; d7 o2 n2 v0 F
    if(A_SO<an || an<A_EC) 0 L( u( L6 ~5 f/ O; k5 T
                P=110000-20000*(an>A_SO?an-A_SO:an-A_SO+720)/(A_EC-A_SO+720);6 K0 |+ E8 [. K% P& c
        if(A_EC<=an && an<=A_SC) P=90000;
; i, }1 P3 z2 H$ n# z& }" a        return 0;
  c* t6 o8 x1 R( f, w* d: f}
) f8 {( z6 r3 u/ D9 c3 ^
3 l0 G, y8 h; M# l9 Avoid Calculate(void)
9 o' e& ~- Z4 Y- W; t{1 ~2 z5 t4 B: m! q5 U( b( o
    double Tpre,K1,K2,an;: c$ M& g! C' m+ g2 h3 f
    int index;  X* u/ W1 v2 H1 _
        Pe=30*4.0*Ne/(gnum*100000*n*S*PI*D*D/4);  /*平均有效压力bar*/
$ ?$ y% f  \& E        mBo=Ne*ge/(30000000*n*gnum);   /*单缸循环供油量kg */
3 y* F- h/ I) G. f+ T) g& Q3 }0 {        CA=A_SC*PI/180; /*进气关闭时的角度转弧度*/6 n* ^1 P1 o6 I$ g$ ?0 }0 N
        V=V_CA();/*进气关闭时角度下的气缸容积*/
7 M% ^2 H$ n0 ]) B* P  ?7 D9 {# h        P=P_SC;0 W2 Z8 Q. P: F  o0 G' |" ?' q# f
        T=T_SC;
* r% G9 m) X+ G0 E        index=(int)A_SC;
5 ^+ o( p2 D  G0 `) j        m_T[index]=T;
- O* i4 X: o; r; c% H        m_P[index]=P;, Z7 K4 W7 [' y( Q
        m=P*V/(R*T);/*进气关闭时角度下的气缸内工质质量*/  B0 s/ j- q4 A
        mL=m-0.01*mBo;/*进气关闭时角度下的气缸内空气质量*/
- }0 `# z: }0 h" A    mf=m-mL;1 ~$ k2 r# ?; v, ~' b) o; k
        Tpre=T;
1 K4 D! X# Y0 L1 `+ {        an=A_SC+1;, B5 Y1 d4 Z# A( A  M) o: _4 J$ O
& l/ d; Q& |' U+ i: J% S
        do{/ w* C& f7 C+ S3 e0 a

) L4 S( C# i  Z  Y& ?# }3 c  /*B 编写欧拉法求解常微分方程程序 */' P3 v$ d2 s5 ~6 Z  X& K0 E4 e
! J) ~8 B* m, i
        }while(an!=A_SC+1);( e! {1 X& w, X) K3 r
}7 @1 Z! \8 P+ K: ?/ l5 ]

" U: A$ ~! W) a+ g; [8 e& B5 @$ g; bvoid main(void)7 t: Q( v9 v5 b, d8 ]6 X- c5 J
{. w' b6 l5 G5 k
        int i;# ~- o* A: ]; z
        FILE *fp;
2 m& ^+ O8 R* \1 n! w        D=0.11;   /*发动机数据按各自的任务书输入 */
' S: s6 J2 v. I" a        S=0.13;
. @* k9 g' f" b+ r; z, [        L=0.21;
0 a2 U6 T$ q- s" g        ge=236.0;
! J& J' U9 q- G4 `; [9 I        n=2400;
  ^- a; Q  L* z" \9 O5 R8 c        Ne=101568;$ l' I$ s# T2 m, |" l; w
        gnum=6;  ysb=17;   M=0.7;: O& U; P* R: o) P
        Hu=41868000;9 F$ t. Q) x) c& o
        R=287.08;% c  |; g- d  H) I) N
        Pa=101000; /*大气压力*/5 l8 M% Y! `+ w8 u# w  I6 C0 R' a
        Ta=300;    /*大气温度*/
" C* K! c1 b. k% E4 C. J+ n        hs=(735.0+R)*Ta;  /*大气焓值*/
1 D" C- ~! C% W, W: u& Y1 m  G        P_SC=90000;
1 y3 J4 t1 k  D( H. W        T_SC=313;
. H5 f- Q- P3 C0 D( V7 a- T3 y5 n) M9 C1 ?
        A_SC=216; /*进气门关闭*/) x/ y. v8 I* j, @$ r: `
        A_CB=350; /*燃烧开始*/  Z+ u' E, ^( ~3 t4 Q5 A
        A_CE=410; /*燃烧结束*/
# N  c- [3 d9 W+ ^/ e: x        A_EO=484; /*排气门开启*/
* a9 P# ?: d7 h- {        A_SO=705; /*进气门开启*/( \3 L8 S7 k! p
        A_EC=15;  /*排气门关闭*/9 k: I# e, V8 H  g" [9 |$ Z

) o* L1 `: ^: ]0 P2 J+ N5 ^        Lo=14.4;0 U% K" O! i3 v" v' h# I4 k1 F$ |

' S7 u8 l2 w2 r- W3 J9 w    for(i=0;i<720;i++)
2 ?" i8 l3 X! P3 Z        {
, f( U- T! ~, f4 ?; F1 O$ S                m_P[i]=0;) W, Q8 T( ~4 b) O2 a
                m_CA[i]=i;% O. P: F3 b* y" Q
                m_T[i]=0;
9 {5 W8 y" F& q7 t        }/ A; S* ?; C) L+ t7 B) @9 R& I
  B9 A7 u! i; w- p* M
        Calculate();# O6 t' L3 h3 }0 l4 R$ B' f' N5 H1 r
9 z) b% Q8 \) ?' D2 k
    /*C编写数据输出程序,计算结束后按顺序输出0-720转角的“缸压,温度”数据到outdata.txt文件 */
& Z7 m  G/ o4 v, f3 z& R$ j: j5 i* f; Q
}  n+ ?$ a- D8 L- Z$ M1 Q3 `

; r& _- k, c- r& p' Y" H5 e
/ @. p1 S( J" |5 t2 V, m; E, u: U
回复

使用道具 举报

发表于 2015-6-28 23:45:10 | 显示全部楼层
不难啊  完全是 把 公司 翻译成 C 又没有用指针跳转的。。。
回复 支持 反对

使用道具 举报

发表于 2015-6-29 01:45:20 | 显示全部楼层
这是作业的干活吧……
回复 支持 反对

使用道具 举报

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

本版积分规则

小黑屋|手机版|Archiver|机械社区 ( 京ICP备10217105号-1,京ICP证050210号,浙公网安备33038202004372号 )

GMT+8, 2025-5-2 08:06 , Processed in 0.082539 second(s), 19 queries , Gzip On.

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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