机械必威体育网址

 找回密码
 注册会员

QQ登录

只需一步,快速开始

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

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

[复制链接]
跳转到指定楼层
1#
发表于 2015-6-28 22:58:34 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
#include "math.h"
  U) ~* y% P4 Y' s% L#include "stdio.h"% p. Y) L( B3 n, y# C
#define PI 3.1415926
% L) y# W7 W* ^
9 L3 u. q% X: b! K4 bdouble D,S,L,ge,n,Ne,gnum,ysb,Hu,Lo,M,R,P_SC,T_SC;
& l; k5 A  a2 k3 M, B/ ?/*缸径、行程、连杆长、比油耗、转速、功率、气缸数、压缩比、低热值、理论空燃比、Weibe函数常数m、气体常数、进气门关闭时压力和温度 */" ]4 U, y+ j( ?! _. t
        double m_T[720],m_P[720],m_a[720];0 b9 p% E& a) A  {! K( c
/*气缸温度、压力、瞬时过量空气系数 */7 {. O2 l3 A- ^; k7 a
        int m_CA[720],A_SC,A_CB,A_CE,A_EO,A_SO,A_EC;
  H# y' l; Q& ]9 v/ d/ B$ I& i- A        double Pa,Ta,hs,P,V,T,CA,m,mf,nmd,Pe,mBo,mL,dXY;: ^$ R) L+ G' N3 Y4 T' C: P1 e# Z
        double Cv();
% R' U2 I1 `' o; A- w7 E" x        double dV_dCA();/ Z- o, O$ s. W6 ?( O; u; T
        double dQw_dCA();
$ j/ S# i+ ~1 S5 r( O        double dQB_dCA();
$ r4 T6 T- D, k( ]        double U();
- \8 K, p1 Z/ N% m        double V_CA();
1 J1 d* ^1 X; F+ D" x        double dU_dnmd();; y4 h- A; T3 u+ W7 x1 {3 u
        double dT_Ys_dCA();
0 g% _0 p/ t- }6 L: t; f- \' j        double dT_Pz_dCA();* [1 ^1 @6 n6 ^  q
        double dT_Rs_dCA();* K7 X9 r1 }7 o% M, g( H
        double dT_Hq_dCA();& ~) h8 R$ m8 ?
        double dT_dCA(double an);
. ^* W2 U3 h! m( G( n/ w  u        void Calculate();. J2 {  d' ^1 F- E/ D
4 R( E; Y7 t$ i% U8 T& @2 b$ o
/* A编写各子函数程序*/8 Z1 k0 n) g! c0 i# N7 U  D
        double Cv() /*求定容比热*/
2 f) Y; G* i! n0 I{6 d8 U/ |8 D  A# o+ w/ g4 |, s: B

# |5 c1 {9 R- C- O5 e}
% u! c3 c- X. u5 Z
3 J, E$ ~9 A% n* F# }; Q$ A; D# K6 }* r$ q' s2 _
double  dV_dCA() /*求dv/dφ*/, g9 j; o$ K' ?, C7 x
{; F5 a' c5 w6 J) o1 b" n7 k

$ X: j9 ?; [- @8 @}8 H( K5 P4 i2 l
  Q8 ?; F6 `; _

( ^0 q' r0 G) T6 F0 V) A9 i2 b$ Ydouble V_CA() /*求气缸容积*/
3 `) Z4 H9 T0 r* x{& q3 M; Z( s  J' }  ]$ F  J+ }% x

# H5 R6 Z2 s2 F& F. {& i% l3 U% @}! f4 |; W6 q& M. y) L% a0 i
2 q3 o* J+ w  v7 S: X; E8 Q

3 y* U( N) H# Z9 {3 ?8 adouble dQw_dCA() /*求dQw/dφ*/
) M1 }: o, P& A{
/ K; i  B3 l9 u. u0 D2 V( d2 N( Q! e
}
1 p+ H3 Q- L; G+ P3 Z0 {4 u! e$ i/ y8 u# @/ I3 f9 S! I& @; e6 ^

+ U) V- Y* |. h+ m" s6 [double dQB_dCA() /*求dQB/dφ*/
; \4 A+ c* l' D: o{2 Z% c: h: \( L5 w
! g6 W8 [. H% H$ ]2 T
}; t' u4 n) `, F# E- y4 `7 R' k* ?

" c* K; E- c% v. F7 Y% v  H, [/ a  K% p$ f9 x  [- Q
double U() /*求u*/$ h* i! X! P; ~4 l
{! p& ?" J; \  @: D; u) q' `1 D

! \' P2 h) }* ~. C9 R" e: V, Z. }}
' W0 d; T. K2 x/ ?  {! w3 o& s: J- M' ~* O8 @
3 {2 Y2 f+ w* s8 u3 S; s* Y) ]
double dU_dnmd()  /*求du/dλ*/
/ r+ Y: f8 k  C6 }( u- _9 a{, y4 ^$ ?8 h9 ~& E. L' }" H

0 t! p7 w% ?4 t/ }, B& L* v  Z+ X}
: x; B; [( G3 D3 X$ b; |" ~0 X  U6 J: b( \" d8 z% j
double dT_Ys_dCA() /*压缩期*/
+ H4 N- y. }& ~{, Z* ~) T6 `' \! z; R. z
; D  F- N0 t* r' j" }( J
}. K9 f+ B% Q, X: {, o

, ^5 s3 I2 i5 z! h# d4 L* V+ z* b: _: C3 I9 F5 E7 z* T
double dT_Pz_dCA() /*膨胀期*// Y0 b! D1 W5 Q, \  {/ ^
{; Z/ k: W7 k" d  r) a: L' K
' X7 x2 Q# n$ U* P- i% c
}
% ?" s' ]5 O/ l' Y3 R" U5 F# d2 y' V0 L# h
, l0 f; g+ Q+ d, E
double dT_Rs_dCA() /*燃烧期*/- X& ^9 p5 P# f
{
. @$ N, C/ W; k/ `& D) L
$ j1 E; D# ?9 r8 C+ |% Z}$ P! ~4 \6 g% A, f- k0 g3 ^
2 |: z& ~; n2 p" N
. P/ Z$ F; t5 v+ P
double dT_dCA(double an) /*求dT/dφ*/7 N! x8 |! ~' a+ s
{7 D* Y. {& x$ C
        CA=an*PI/180;0 l$ C; n" D( }  n
        V=V_CA();
, ]3 G7 }, z: D8 m        if(A_SC<an && an<A_CB)   return dT_Ys_dCA();
% m% k# A$ i6 P/ h  _! ^        if(A_CB<=an && an<=A_CE) return dT_Rs_dCA();
! b9 X  _* `, Y' }2 S) h        if(A_CE<an && an<=A_EO)  return dT_Pz_dCA();
: ~# ]) U! s) B7 r        if(A_EO<an && an<=A_SO)    /*换气过程不计算,线性赋值,避免零值 */3 K% A; B5 g8 p" |
                P=110000+(m_P[(int)A_EO]-110000)*(A_SO-an)/(A_SO-A_EO);
! b/ G1 n9 Q( w    if(A_SO<an || an<A_EC)   a4 W7 s2 V6 Q+ {  V
                P=110000-20000*(an>A_SO?an-A_SO:an-A_SO+720)/(A_EC-A_SO+720);+ D- _+ J- w& E& N, o
        if(A_EC<=an && an<=A_SC) P=90000;
1 k, s5 n! P9 q# B        return 0;- h5 G" K5 {+ \$ {. R
}  Q  j& o1 Q+ O7 h/ ]8 u6 i
: g8 r6 c3 v1 T, O/ I2 L
void Calculate(void)
( @6 z- M& f) t  ]8 A{+ p$ @! T9 n" l, K" }2 {7 X
    double Tpre,K1,K2,an;
' n6 c3 ?) p8 z# S1 Y$ L" O    int index;
% n" j  y# ?$ N( N$ C6 M8 j* ]( D        Pe=30*4.0*Ne/(gnum*100000*n*S*PI*D*D/4);  /*平均有效压力bar*/
! Q) [% t, N" W0 {7 L        mBo=Ne*ge/(30000000*n*gnum);   /*单缸循环供油量kg */( ?3 i! ^" V  K2 g! p; w, |
        CA=A_SC*PI/180; /*进气关闭时的角度转弧度*/9 z! T) X9 J4 O% D! X" J9 e: |
        V=V_CA();/*进气关闭时角度下的气缸容积*/5 N! w7 j' ~# P) X% B& i
        P=P_SC;. }+ f. q& w' W9 R
        T=T_SC;& X1 _; ?' W9 t4 L) y6 r* C$ Y
        index=(int)A_SC;, V* x8 X- W0 M
        m_T[index]=T;
- f% m/ p  D- M        m_P[index]=P;
# \: a- ], ]; U2 d5 r# ?        m=P*V/(R*T);/*进气关闭时角度下的气缸内工质质量*/  T  c- z7 h( a- c
        mL=m-0.01*mBo;/*进气关闭时角度下的气缸内空气质量*/
& v$ d4 Z: p- e# T( r7 E    mf=m-mL;" r: }7 g" a9 R' H$ f
        Tpre=T;4 c+ l5 ~6 V1 D
        an=A_SC+1;8 o' R! k9 I) p* u4 `- n2 v
  D1 c. Z" N) P7 M
        do{
! R5 p/ S, h- s. _+ n
. Q' U& ?: m" R9 F4 {$ z2 @. s% s  /*B 编写欧拉法求解常微分方程程序 */6 M$ _5 h* F! Y4 ^+ K0 V. q% E

. M# |. `/ D3 g6 Y/ M* l( R        }while(an!=A_SC+1);
: ^2 G$ s$ [6 t8 n' r, Q0 k}) d- ?2 q5 @5 H2 S9 d8 h4 g
# k6 }; M/ ?8 {: I- L& O: P
void main(void)' m) ]8 i& Y6 }& B$ b
{
# |+ e  h  h5 R$ p) m        int i;6 F+ |. n  l. o
        FILE *fp;
1 E+ c) q% a6 a; c( ]        D=0.11;   /*发动机数据按各自的任务书输入 */
7 D/ A4 @$ q- V9 W2 k) k        S=0.13;
' J( |; I2 x+ x        L=0.21;; U5 s3 W% d4 a5 R8 t
        ge=236.0;  X7 [4 }5 L* t; K- Y% H
        n=2400;+ E& `; R1 l5 O# V; b7 F" x
        Ne=101568;2 {; u3 ~' {/ @' g# ~
        gnum=6;  ysb=17;   M=0.7;
' {. `! |; m$ i, Z2 e: T        Hu=41868000;
) {, {: g2 G" v5 c        R=287.08;
% ^) u5 \7 O$ ]+ X+ p        Pa=101000; /*大气压力*/( V9 @1 S8 |5 Y3 t, Y
        Ta=300;    /*大气温度*/
7 d. }. o2 F2 A2 z* [3 }        hs=(735.0+R)*Ta;  /*大气焓值*/
* K0 |4 T' v/ {* {3 M8 n        P_SC=90000;, y- R' F/ F+ V( u
        T_SC=313;
" A* m, h* ^, x& O$ v( L- m' V7 q
        A_SC=216; /*进气门关闭*/4 f7 ]$ i! ~, p/ S, W0 @, \
        A_CB=350; /*燃烧开始*/7 B; e3 `+ B% u" O, o& u
        A_CE=410; /*燃烧结束*/
. M4 Y8 \6 ^, M6 E: r        A_EO=484; /*排气门开启*/
$ Z' N/ |9 q* @+ O) t6 Z: L        A_SO=705; /*进气门开启*/) s  C% q0 _) [  |( `
        A_EC=15;  /*排气门关闭*/7 `) M  V* \3 d0 M3 A

9 n* e: E9 W3 S; O1 U# y' e) o        Lo=14.4;
$ Q) S2 T" i" q$ U* F
. ]. B4 K' ~* f% G# p    for(i=0;i<720;i++)
% A2 N* y+ X+ k0 n( ^        {2 C; ]7 w. X* G- [
                m_P[i]=0;- F$ a3 `8 ?( f9 @5 @; W! Y
                m_CA[i]=i;  @$ g+ ?. ]! J+ c$ D
                m_T[i]=0;
% @+ y$ _' K* T4 p/ F$ D! Z; X        }& P7 {' `# D) x# a% P5 o9 |
& t* e' ]. P) B
        Calculate();
1 h4 b1 f1 Z  N# \* S! h9 k; u+ V2 M; `5 o/ T/ z( h
    /*C编写数据输出程序,计算结束后按顺序输出0-720转角的“缸压,温度”数据到outdata.txt文件 */5 x0 {$ Y4 ^# S1 B5 @* r( x$ f7 A

7 t( d; u, O% b2 H( `}" b3 a1 w" p4 t/ t% ]" a
8 Y; _3 `9 Y1 Q. A8 H8 H2 N4 q; T! _
; m& g- M: s" I% u6 O
回复

使用道具 举报

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-9-22 07:39 , Processed in 0.052439 second(s), 19 queries , Gzip On.

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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