找回密码
 注册会员

QQ登录

只需一步,快速开始

搜索
查看: 3684|回复: 2

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

[复制链接]
发表于 2015-6-28 22:58:34 | 显示全部楼层 |阅读模式
#include "math.h"
- g- M$ v- F/ H- x: Y) e5 |#include "stdio.h"
! P5 {* l' C3 l! V: V6 C: O3 E& f#define PI 3.1415926
. s) o+ E7 B1 t( C% q
- ~  U, g# o+ j$ Idouble D,S,L,ge,n,Ne,gnum,ysb,Hu,Lo,M,R,P_SC,T_SC;
& K- N( \0 u! _/ Y# L/*缸径、行程、连杆长、比油耗、转速、功率、气缸数、压缩比、低热值、理论空燃比、Weibe函数常数m、气体常数、进气门关闭时压力和温度 */
5 S( ~2 {5 X8 o9 h- L2 ^6 |        double m_T[720],m_P[720],m_a[720];
( i) r  B! u# W; }5 W: ]/*气缸温度、压力、瞬时过量空气系数 */) Q& s- q& y/ Q$ D' G/ ~8 w8 ]
        int m_CA[720],A_SC,A_CB,A_CE,A_EO,A_SO,A_EC;
4 X( m& {2 J, s$ b: N1 o* g- n        double Pa,Ta,hs,P,V,T,CA,m,mf,nmd,Pe,mBo,mL,dXY;
' q/ C( y, {* X- ?4 N' @        double Cv();
6 a& Z# W) l5 q( ]# I6 y        double dV_dCA();
/ a5 i( a: Q" P) n# s+ g% i* M        double dQw_dCA();: ?9 B: ^/ ^* H7 b" L/ @  a0 B
        double dQB_dCA();1 V  ]0 q. }: u
        double U();
, f$ p6 T* d! G0 M  h1 A% ?# H- {        double V_CA();6 i7 x( ]: j$ J+ G$ A
        double dU_dnmd();
5 G& z/ y) {$ v! G3 W$ x, p        double dT_Ys_dCA();4 z( X0 |' }5 t: @  \5 v' i
        double dT_Pz_dCA();, I  L, d9 q; U! P
        double dT_Rs_dCA();
! y' {  @: t/ m" D0 u4 j9 \+ g        double dT_Hq_dCA();
# d2 o* J, {* v$ j        double dT_dCA(double an);
! D  z- r. G9 h+ x( N        void Calculate();
, K& \" {0 I7 [9 k2 _
6 V5 b6 P9 v- g) Q4 d/* A编写各子函数程序*/$ T$ r1 d5 y4 F3 k( m: p
        double Cv() /*求定容比热*/
" ?3 ~  K0 m# r9 }  |9 ]{
5 m+ A2 [4 @! w* j
' M# n9 o& Y% ^  S# R}7 u0 E0 _$ a  y" n" a
) X2 W, T/ c1 R" g* @

0 w. O7 N4 C5 l1 O+ I; y' q$ Ndouble  dV_dCA() /*求dv/dφ*/
' R! u$ N& `6 _{
7 `( @6 f$ E8 `6 w# f. g9 z2 _
" F) L# ]$ C4 w* T8 D$ K: m8 ^}
* D: F* J4 c1 r# i6 x- \
+ y* i: [; U6 l0 @2 M1 \* v
  E+ j- Y3 A$ O. [" r" S* ^double V_CA() /*求气缸容积*/. f, k% k% v5 T
{
) p0 Q6 B  P) d
  J- g; e6 G9 j5 b}
9 A8 q6 y" C: G4 R
, o" ?' z3 d9 j" ~) n) o0 V- d
; y6 }8 `$ d) `* Ddouble dQw_dCA() /*求dQw/dφ*/( |; F3 C/ m# I
{) q/ K) f2 N2 H

. G0 ]+ \; v: z}
4 `( S: i7 m* E3 i0 M5 P! ^
6 f/ v& n  i$ |' \; P& m1 l0 d' l1 r
double dQB_dCA() /*求dQB/dφ*/4 I& R% G: E+ W2 L! p
{
3 r- q; W' j2 R9 b6 q! C& ?
6 O  f3 `  F( I9 R* ^% \}& V4 T5 k; v" Q5 j

/ `9 S- h" F) \0 R9 l' h% F' \9 |9 N& z
double U() /*求u*/
5 k, s. R9 @. h0 t( H{
, |+ p% |  |, ^) Z) e
' i$ Z# R6 v& ], @) Q" M6 D}
/ U" {. f; `- ]! A* K
2 m! H# W+ j( u+ P) ~! E  G5 p5 C; ?) P. ]4 B$ [
double dU_dnmd()  /*求du/dλ*/
+ W/ w% D/ h2 V: s( y! k3 [  V{& H% O9 f1 D1 g
. D- G3 X- E4 T3 T! a8 E
}
* Z6 W. w/ A9 M; C! Q6 y$ i4 j) {8 v0 Q
double dT_Ys_dCA() /*压缩期*/# o6 D, I6 X. U/ L. `
{6 R7 j' e% _$ B4 }% q, o4 c
$ }8 p: a; R* x, y! ?- w: M7 k( Z
}# v5 M! D7 k$ w  f4 ~; L$ u: v
- P3 v' M( R) w5 g

! v. n) t# h  M# C, r" a5 Y2 d( w- Vdouble dT_Pz_dCA() /*膨胀期*/
# n% \1 u! {9 I+ b2 u( d; n{- r( P* n" |( ~# ~

; A, _( d! \5 d5 _}
* L9 O+ \3 K$ ?$ d. `( G7 u
  P' ?$ o0 M6 a  E4 [
- _& n1 e% k1 h8 I3 C" zdouble dT_Rs_dCA() /*燃烧期*// O) E: N2 L. [+ l& d% B% F1 f
{
; G4 f6 V7 x& G4 P( `) y" B; S
. \: h$ a. T2 Z6 `}
7 o: ?" e2 r; Q  a9 X6 O, `8 p" q0 V, U
+ b2 V: ~/ o$ v' \" p$ u0 \, z
double dT_dCA(double an) /*求dT/dφ*/% b5 J( y7 {2 P! @0 |: q
{
, b7 r8 Y2 c8 m2 M. `2 H  P        CA=an*PI/180;' t  t8 J9 i, D' A  r6 D- R2 @: ?
        V=V_CA();9 N* Y% ]3 R3 O& I) Q
        if(A_SC<an && an<A_CB)   return dT_Ys_dCA();
: w. [4 m1 ^2 o  Y9 {9 q7 \        if(A_CB<=an && an<=A_CE) return dT_Rs_dCA();
0 Q' Q$ Q; S1 f  Q        if(A_CE<an && an<=A_EO)  return dT_Pz_dCA();
8 c- r3 ^: I, E* q        if(A_EO<an && an<=A_SO)    /*换气过程不计算,线性赋值,避免零值 */
( N* M: S  _" Z! M                P=110000+(m_P[(int)A_EO]-110000)*(A_SO-an)/(A_SO-A_EO);  U1 S- I  i. L0 M5 s4 d2 v7 A; w
    if(A_SO<an || an<A_EC) 5 b3 O0 D& v2 ?/ A9 i
                P=110000-20000*(an>A_SO?an-A_SO:an-A_SO+720)/(A_EC-A_SO+720);
+ k( M4 i/ i# l* h        if(A_EC<=an && an<=A_SC) P=90000;1 X9 m* G  T& M/ o/ v' i
        return 0;
/ f7 w* ]; D: f}  H: e0 I) T# J/ j" p

( i8 A, n7 x% X5 u. P$ g2 W$ P, K# ~void Calculate(void)
6 z" t; D; ^( A3 h8 R- ]# o{
/ E. l' f$ X( s2 |" ~0 g4 S6 a9 s- j0 f    double Tpre,K1,K2,an;
, u  k. t2 b- N' m. [    int index;
( D- E9 n! T8 z& R1 e        Pe=30*4.0*Ne/(gnum*100000*n*S*PI*D*D/4);  /*平均有效压力bar*/  o1 r5 y, x3 g7 C
        mBo=Ne*ge/(30000000*n*gnum);   /*单缸循环供油量kg */
) K' W# |/ f2 H$ G$ U' q        CA=A_SC*PI/180; /*进气关闭时的角度转弧度*/
" N' L$ F# y  s; V        V=V_CA();/*进气关闭时角度下的气缸容积*/5 T! q0 Z: u8 f( ?
        P=P_SC;2 [$ x2 k2 h0 g0 K
        T=T_SC;
) P1 k( u) U) F  z, [0 N        index=(int)A_SC;
. R% u# ^# Q. I  H$ o3 O# T9 U# }        m_T[index]=T;4 f( [( I# v, M. t8 U6 ~- O, j
        m_P[index]=P;
( K$ V  T) E. F        m=P*V/(R*T);/*进气关闭时角度下的气缸内工质质量*/4 M5 G( E9 ~! t2 S
        mL=m-0.01*mBo;/*进气关闭时角度下的气缸内空气质量*/
: {9 i. D0 j( c    mf=m-mL;3 p% k3 u: g' G4 c. l+ k; \% m* X
        Tpre=T;( F% H" W' `! F' Z" r) e
        an=A_SC+1;: ~! I. ?8 Y: L6 v) Z# B
% S. R% ~/ d6 O
        do{
' W6 y% c# p- o5 ?- z: G9 q- _: C' ]- x3 }. L1 ^, ?
  /*B 编写欧拉法求解常微分方程程序 */6 `* M7 k% s7 g" l( w
/ S' t: r; C- d5 x! X# O
        }while(an!=A_SC+1);9 N+ k" p; T$ E' m/ G0 A+ \6 g, v: W
}
% I% {7 G) m# a  }# Z
8 @) O0 T* y0 nvoid main(void)
* ?0 b+ s2 g5 Z( i* Z{
  H) h( i  |3 b8 a, {$ [        int i;
2 |4 ^9 v! s- H3 Q- S/ S, i        FILE *fp;' v, C; U3 q/ Y4 z/ u! o! n
        D=0.11;   /*发动机数据按各自的任务书输入 */8 r9 ]: u  ^0 v' g, H$ y, H
        S=0.13;1 w9 z9 O7 Y$ D9 A
        L=0.21;
1 t( `' Q6 t9 @. Z, ^        ge=236.0;
! r5 H5 u( a, U; B        n=2400;
9 {9 G1 f4 }9 P6 s; j        Ne=101568;, ~' l2 a8 b2 b
        gnum=6;  ysb=17;   M=0.7;
& W7 j( ]3 `- d# }/ u) p! Y( C        Hu=41868000;6 p1 i; E' d. R% p
        R=287.08;: R3 f1 ?5 W+ e' V: `& k" F. E& n4 u* L
        Pa=101000; /*大气压力*/
% i1 }8 q5 J, U' C2 Z) d        Ta=300;    /*大气温度*/
# W9 w0 |- ?, y/ [# O7 y9 c        hs=(735.0+R)*Ta;  /*大气焓值*/, U& @& b5 O+ V) C- [7 m& D
        P_SC=90000;: T0 q' t% W7 X4 |- [1 S$ H1 P* K
        T_SC=313;& V4 a9 B" j& @8 S
' `8 P3 F# F( m0 }  N! A5 v
        A_SC=216; /*进气门关闭*/# A1 w1 M8 g! T$ I
        A_CB=350; /*燃烧开始*/  U! V2 g' F. m# Y/ ]* g
        A_CE=410; /*燃烧结束*/
$ o' u2 o, w0 R3 `0 ~' e        A_EO=484; /*排气门开启*/
. x) s% H. r: P1 r9 n        A_SO=705; /*进气门开启*/
$ e& ]) Z% t8 |0 e% A        A_EC=15;  /*排气门关闭*/
, e$ L6 ^/ [. N- s# x
3 |' I* t# K+ Z" G) m5 W        Lo=14.4;: [: b% F+ j. a8 M

' T5 A9 b9 \: m5 M( M: T# E" Z" ?1 ?    for(i=0;i<720;i++)
  d8 O( S/ J: k3 }, `        {8 L- Q1 S( |- K! T8 j5 g( C2 o
                m_P[i]=0;0 l& u' E' L) X! e- F2 |
                m_CA[i]=i;/ Y( h$ ~8 \* w
                m_T[i]=0;! s$ S2 X5 P9 q
        }
) g: c$ X8 N" h4 \# L, m" A# v- O, H/ L; v1 i
        Calculate();' N& R' w3 e: y3 S
! w2 v0 k$ y6 W' W* j, r
    /*C编写数据输出程序,计算结束后按顺序输出0-720转角的“缸压,温度”数据到outdata.txt文件 */4 I  r. u0 J: k
: `% O% H( _9 U0 N% C. Z! O
}7 A  T' e$ c4 K

# H' E5 B& m% ?; v2 g$ O2 o/ c- X% H5 M0 j6 L
回复

使用道具 举报

发表于 2015-6-28 23:45:10 | 显示全部楼层
不难啊  完全是 把 公司 翻译成 C 又没有用指针跳转的。。。
发表于 2015-6-29 01:45:20 | 显示全部楼层
这是作业的干活吧……
您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

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

GMT+8, 2025-9-20 02:50 , Processed in 0.094149 second(s), 19 queries , Gzip On.

Powered by Discuz! X3.5 Licensed

© 2001-2025 Discuz! Team.

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