机械必威体育网址

 找回密码
 注册会员

QQ登录

只需一步,快速开始

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

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

[复制链接]
跳转到指定楼层
1#
发表于 2015-6-28 22:58:34 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
#include "math.h"
  J5 f3 d+ ]& {# q1 H#include "stdio.h"
' e0 o3 V0 ^/ i9 @  o#define PI 3.1415926
+ `1 Q/ c% c/ m. y
' E9 J9 [2 x4 z" W& A, Y0 Wdouble D,S,L,ge,n,Ne,gnum,ysb,Hu,Lo,M,R,P_SC,T_SC; ; o5 j/ u2 ?" q  v  \" ?
/*缸径、行程、连杆长、比油耗、转速、功率、气缸数、压缩比、低热值、理论空燃比、Weibe函数常数m、气体常数、进气门关闭时压力和温度 */! m6 e+ z! @. O0 Q0 l
        double m_T[720],m_P[720],m_a[720];8 ?: w; l, E. J1 N! j
/*气缸温度、压力、瞬时过量空气系数 */
4 F* D3 C8 @  p( w4 i6 M3 [  v        int m_CA[720],A_SC,A_CB,A_CE,A_EO,A_SO,A_EC;7 O4 L& K' y  Q8 Y1 z5 C8 Q$ ?
        double Pa,Ta,hs,P,V,T,CA,m,mf,nmd,Pe,mBo,mL,dXY;0 j4 n; l  l' k8 z) B- U
        double Cv();
* B+ f5 S1 j! ]5 G# M        double dV_dCA();
" d, r$ n7 B) v. _5 l$ @: B1 j+ g        double dQw_dCA();
2 _" t5 K, g+ q4 \9 e" F        double dQB_dCA();* m- L* N: R+ m
        double U();; i8 h& _: B  j9 P* W
        double V_CA();  B/ V  j: k' \- [# L
        double dU_dnmd();
) X5 Y$ h% ?% j# j* _  z        double dT_Ys_dCA();! [5 P( p; f' k* I$ {3 E$ |
        double dT_Pz_dCA();
7 x, w0 `: Z2 P8 Y, k        double dT_Rs_dCA();
* _/ r0 K& K8 a5 d+ j" j        double dT_Hq_dCA();, }0 x6 q7 M# _$ Y8 j% \, A9 i
        double dT_dCA(double an);
8 U  H" I. C/ ]  J! v        void Calculate();' @" D. e( g0 u8 ~  Q8 x3 }4 @1 K

2 B. {# \/ ^( V6 Z% Z/ V: Q" b/* A编写各子函数程序*// [7 r8 G0 ]' `
        double Cv() /*求定容比热*/  H( i( K1 `6 b& m; B
{
& @$ Z8 H7 H4 G
9 S! O, O; ]' N& d* \0 Y}
4 X/ I: l7 Y4 ^5 ?, y/ ~: b2 w6 p: ~9 j: M0 ]
* P3 V% w8 {5 u! h  q* l
double  dV_dCA() /*求dv/dφ*/! R# B$ U/ ]' A7 ?6 `* Z
{
9 r8 w0 Q1 j: [3 n: S2 k. ]+ M9 q+ E- V$ Y! R$ h
}; s9 ?6 S4 c8 p0 B8 @- p

- r  H& b' Y! t- w9 n$ k% Z9 H# X" I, K3 {! i
double V_CA() /*求气缸容积*/
* R% }& |: o- x5 @2 g6 M4 k{
& @  e' x' j) N8 n' @% P7 T" d6 [3 T/ h' z1 `# K
}
. [5 s: i+ Z8 ]9 c2 N
4 Y0 v% {: j  b% ~) ?% g* O! s
" b7 T/ J9 Y/ b5 y0 X+ ]double dQw_dCA() /*求dQw/dφ*/
  D, V# b3 j0 K' y* X9 E1 u) n& T{% n5 c- N" F- }7 b) o) b
  i7 L# t( O  a* N1 s3 C: v2 V
}
6 o7 v! w0 j5 m; q7 e9 E# ~
2 o. M! {+ S4 z$ K  F. F& p* d: P
$ o. I: q7 E5 M+ ~6 a  h, Fdouble dQB_dCA() /*求dQB/dφ*/2 g6 F3 X/ p  c
{& Z8 m$ @$ W( I4 z9 U! g
: Y. E% x, C; e0 n9 A
}+ V! o5 x; b0 }8 p. }
9 V8 N; @/ h" l

9 j' H1 Q- L3 T" ^1 ^double U() /*求u*/
% a7 ~2 {2 G* Z8 P3 h& f. d" n  T{
5 h& h3 g# y! x( J; V- J% a. X$ s$ m  H2 u, S3 F, q
}
1 }# z/ r# j3 R. |" C2 W
, g$ w2 c& W+ a) ]1 X" E* c! J
6 ^* S3 e5 B* F  z6 a+ kdouble dU_dnmd()  /*求du/dλ*/$ G+ e! Z9 r% d2 T* n4 u& {- Y' o" ?
{
4 q: w+ ^; s0 ^6 [" [8 s& m9 {
9 Z$ V6 w4 A8 ~* N* i}
7 @9 e# U. Q1 M) t8 i; N6 B
! b+ l2 J  l5 a$ a2 W1 w6 x! B" bdouble dT_Ys_dCA() /*压缩期*/# Q& G0 R: ^/ d7 `& \3 T
{
: W0 B7 }+ R" ?+ r. E/ g
# J$ n" |" A2 Q1 p}% u; [) \" a6 _' R
' t& \- e, p) O4 n

' E: N8 w5 q+ \( {double dT_Pz_dCA() /*膨胀期*/
& ~# e1 O; h. G; ^{
$ S. t; D) X0 z- Z& m( f$ u6 h) A' ]: J& V! i
}
4 [" t0 O" D8 Q4 Y2 F: z: J2 Q4 C5 q1 l, m: z2 G6 {" i

& x3 _; W8 h$ e; @double dT_Rs_dCA() /*燃烧期*/
1 s! L  o* D+ D* d- T{+ ]% b1 ?+ Y) w5 T; s1 {. o( E
/ ^) S3 o; z3 @% D* _- J9 F$ D
}
" x! W6 h3 _9 n& j  f5 d
7 C9 \1 Z8 W" s7 n2 ?7 m& _; F" ]
double dT_dCA(double an) /*求dT/dφ*/
0 v) _8 k- T$ X{8 `6 |( J2 f  f; _; {/ M
        CA=an*PI/180;$ C$ s9 x% j5 B  W$ x! I8 T
        V=V_CA();
# ^8 s$ X$ ~2 Q+ v0 T        if(A_SC<an && an<A_CB)   return dT_Ys_dCA();
3 M) T! [  v( M" T* [6 [; {        if(A_CB<=an && an<=A_CE) return dT_Rs_dCA();$ ?4 ~/ M6 n* A+ ]# m5 B5 D/ y
        if(A_CE<an && an<=A_EO)  return dT_Pz_dCA();
8 j) _8 Z9 C. `' ?/ F- x9 t        if(A_EO<an && an<=A_SO)    /*换气过程不计算,线性赋值,避免零值 */9 o& [; _# W: P  G' T' g2 b$ t3 d9 ~
                P=110000+(m_P[(int)A_EO]-110000)*(A_SO-an)/(A_SO-A_EO);
, x" v5 U& K; u' u3 I6 u    if(A_SO<an || an<A_EC) . B7 p( x9 \/ V) }7 ~0 Y7 i( |% I9 U
                P=110000-20000*(an>A_SO?an-A_SO:an-A_SO+720)/(A_EC-A_SO+720);
* @* z6 P- H7 m4 ^        if(A_EC<=an && an<=A_SC) P=90000;0 j; D7 m0 g- L
        return 0;
% g# O9 a0 \: F" P5 i; c}
! ?9 V# v: I: |& r' \
  r+ ^* x* N# J0 Gvoid Calculate(void)
* V1 U0 X3 w- T/ k/ T{
2 j- L% k/ P8 I    double Tpre,K1,K2,an;6 r, ?' C  T4 b: V' \0 v' ?
    int index;
1 g) P: m; W; u$ H* R# l! P) [0 Z5 s        Pe=30*4.0*Ne/(gnum*100000*n*S*PI*D*D/4);  /*平均有效压力bar*/: K7 l8 ]$ ?2 [
        mBo=Ne*ge/(30000000*n*gnum);   /*单缸循环供油量kg */$ i9 @+ h4 x( d
        CA=A_SC*PI/180; /*进气关闭时的角度转弧度*/$ {: `( R) U  p9 k: d! C
        V=V_CA();/*进气关闭时角度下的气缸容积*/& n1 l6 D1 h* |: u' j1 h
        P=P_SC;3 G3 C/ C3 X, Q9 I- T: N
        T=T_SC;
, i6 p; T# ^1 m  Q: E3 T        index=(int)A_SC;5 V1 U3 i9 V6 F0 V% b
        m_T[index]=T;
6 G* i& D! G: |2 L$ u: |# m        m_P[index]=P;9 A6 q" n* e3 q5 Y- q
        m=P*V/(R*T);/*进气关闭时角度下的气缸内工质质量*/: b  _  U: |( d: b
        mL=m-0.01*mBo;/*进气关闭时角度下的气缸内空气质量*/
. z. ]3 z) S3 o7 k0 T    mf=m-mL;
) s: Q( |( e2 B9 }. S9 ?  p        Tpre=T;+ m/ [- d* q% R1 g2 |
        an=A_SC+1;5 P8 f! o5 Y+ E; D/ C  J

, Z4 C$ K0 y' A# W$ U        do{; |9 f6 B' p" d% Y/ g& h! q& L

2 i- t7 g+ d% O6 O. o* {# ]  /*B 编写欧拉法求解常微分方程程序 */! h$ I/ j0 g# ?- [1 w: E
5 }  L( h  a; k% v5 V
        }while(an!=A_SC+1);
" V  n, s: |4 l0 d}
2 u( G. z( X! w2 Z3 E, d) s1 Y9 n2 Z1 J4 F4 f
void main(void)
- i( a$ f: J% {{
) X4 V; i' S: I5 {9 D        int i;" W: N7 Q8 z- l# n
        FILE *fp;) l. f" ~& T# H( x
        D=0.11;   /*发动机数据按各自的任务书输入 */
4 }) o' s' |& X7 R        S=0.13;1 P7 d, x" d" i6 |2 A: |
        L=0.21;
8 r8 s7 s) g0 e        ge=236.0;+ y: R6 m( s1 g" _; |4 s, C8 N
        n=2400;
/ o: L1 K. j- X- Z. U4 U* s        Ne=101568;8 P. |# A3 E* T
        gnum=6;  ysb=17;   M=0.7;5 p% |* T% h, _/ w( r/ @7 m
        Hu=41868000;4 ], S+ F  v% J6 x! T& K5 l+ [
        R=287.08;
; s0 |/ s9 l& m$ k        Pa=101000; /*大气压力*/' A0 r# g+ @! W+ F
        Ta=300;    /*大气温度*/
0 q7 \, d5 H0 o$ k$ l( Y8 o, A        hs=(735.0+R)*Ta;  /*大气焓值*/9 i+ r* ]. o4 }$ N8 n% S, H( u
        P_SC=90000;
/ P5 T6 }% S. \        T_SC=313;& r8 e8 B" p7 B# G/ C
" W0 u$ A7 \  ^& u4 B4 Y4 {. O; w
        A_SC=216; /*进气门关闭*/. E  R9 {" ?8 X/ X! s
        A_CB=350; /*燃烧开始*/- {4 f/ P' x2 Y( q1 S& k$ m! d/ }
        A_CE=410; /*燃烧结束*/
7 {  L1 F4 [8 t6 K5 K& b) s5 y' j        A_EO=484; /*排气门开启*/' G( g; C$ w% L6 O
        A_SO=705; /*进气门开启*/4 a: R3 T, t8 z- l4 ^9 i
        A_EC=15;  /*排气门关闭*/) \$ Y  g: r: u6 w  k" z( M
* l% s! ]7 Z: F
        Lo=14.4;5 X  |- z& k! Z8 U
) E) w5 i6 Y9 C, Y8 `0 s9 C! ?
    for(i=0;i<720;i++)
# j3 u/ L3 |; K, }/ v        {) f# i- H) G6 E1 J
                m_P[i]=0;5 K- E6 k1 u! A2 ]
                m_CA[i]=i;; _2 ~2 I3 x/ m3 W4 b* L% ]
                m_T[i]=0;) N. D: d# l; f
        }
. ?4 Y/ G# x* q
9 z& P  m% G$ l        Calculate();
. z% @$ a) ]) b/ L4 @. E3 I, U( p) C- k$ I. U: R% r; @2 [0 l3 E/ P
    /*C编写数据输出程序,计算结束后按顺序输出0-720转角的“缸压,温度”数据到outdata.txt文件 */
3 x* |3 g7 y9 X) w; ^
+ G$ u9 K# N) E- s+ U$ O}; T& B( U' h8 E1 R
* P: P1 u) M! e+ q, @$ d
8 P: I: Z. O. h& s
回复

使用道具 举报

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-12-23 17:36 , Processed in 0.055267 second(s), 19 queries , Gzip On.

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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