机械必威体育网址

用户名  找回密码
 注册会员

QQ登录

只需一步,快速开始

帖子
查看: 3587|回复: 2
打印 上一主题 下一主题

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

[复制链接]
跳转到指定楼层
1#
发表于 2015-6-28 22:58:34 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
#include "math.h"
2 q+ W" J8 ~$ a# Y#include "stdio.h"
5 ~  z+ C. q( ]7 W7 ~#define PI 3.14159268 i/ ~: ]+ C* Q8 s* N8 u

2 F9 H: ^# P0 A2 T6 z$ Udouble D,S,L,ge,n,Ne,gnum,ysb,Hu,Lo,M,R,P_SC,T_SC;   H% ?- W4 v) ]) B
/*缸径、行程、连杆长、比油耗、转速、功率、气缸数、压缩比、低热值、理论空燃比、Weibe函数常数m、气体常数、进气门关闭时压力和温度 */* `. A( h1 v1 R
        double m_T[720],m_P[720],m_a[720];
+ k: F/ u/ r/ ^, a, M3 a, a/*气缸温度、压力、瞬时过量空气系数 */
5 `3 {  ?  Y/ Q* Q$ z1 C        int m_CA[720],A_SC,A_CB,A_CE,A_EO,A_SO,A_EC;
% N. k9 `6 k  {, t$ P: O% O& J  W2 ^        double Pa,Ta,hs,P,V,T,CA,m,mf,nmd,Pe,mBo,mL,dXY;
' N9 [+ K$ `  g. ]        double Cv();
5 ?8 V5 s9 v9 m! S1 ~        double dV_dCA();6 c' E- x5 `0 T7 h; `; p! f" x9 z# w
        double dQw_dCA();- m$ Q" A1 p+ f: C5 W5 `
        double dQB_dCA();
6 S- Y+ C- Q2 X0 \        double U();1 x' X7 J6 F& U
        double V_CA();! ]# B: V* P7 [/ U. z
        double dU_dnmd();
; ^. c/ \. u' R  P: V: q        double dT_Ys_dCA();. R2 @( M) |2 Y( h8 A/ `5 B" U: ]) C  ~- m
        double dT_Pz_dCA();
' v7 }! a0 b/ ^( }9 A% F- q" J5 u5 G        double dT_Rs_dCA();
8 D, R" g* }, e3 Q( B7 M+ L        double dT_Hq_dCA();! k" S5 K  x  q5 m
        double dT_dCA(double an);8 U0 K- A7 P" H
        void Calculate();
1 k8 t! E6 E2 C$ u6 A
3 S7 I9 P6 u) v! Q: i! T6 d6 v/* A编写各子函数程序*/2 g0 S1 E3 r+ a3 V4 z
        double Cv() /*求定容比热*/
' [" }1 G$ t9 A; z0 u{
) k0 T) y7 H8 v7 P# K5 O8 d6 }7 Y# I; ~8 `! H
}; Z0 p4 S3 [8 J4 s

7 S& A" q& ^( c$ B4 J+ h
) Y. u" |  ^% S# `double  dV_dCA() /*求dv/dφ*/
' A  L/ N5 i& a, s& b, Y' h; |{2 t" t# v- T9 H2 ]0 {
$ o, F- A; p: g2 s" C2 n# C, i7 _* J
}( f  n& O5 {( w' E: |  j" {# x' m
: y; h% |+ Y" F  }" s9 W) b

' {) V/ r5 m: O. _double V_CA() /*求气缸容积*/$ K* l4 f7 Y: Q5 o- y& p  q0 r
{  {5 L" h0 `8 D# j; Y$ l, h+ z# J

( z9 N0 j3 w4 ]" o$ H}
4 P  y- l9 O+ |! ~
5 K. ~6 T$ A/ e# t
( c/ H. X2 Q9 J" {7 N: z' bdouble dQw_dCA() /*求dQw/dφ*/& ?# v% }0 l; h! ?
{/ A# Y9 E, ]# j6 Y' N3 c

0 F( n) ~2 w1 P# S3 E}, L, y. \4 P3 U" L- F: @( s) X

3 ]4 e+ k  Y! O+ s5 L# M! p! y$ N* {
double dQB_dCA() /*求dQB/dφ*/+ k# G0 t8 H' N4 E5 D6 {
{
% [4 \4 X& P2 Y) `0 \& A
$ v2 U0 F: b* ]0 v# F. w- @}- m! S3 i% E0 h7 p

( \8 L7 {- O# F# I
  o3 H$ o' v; p5 Q6 b* Vdouble U() /*求u*/
7 v# F1 P% r3 b& k" G; j7 z/ K$ g{
* N; u" p' [6 R$ H( O7 g7 z6 P6 d  o4 k: y' U
}* u  W0 s9 S, E( L- q1 q

: W1 _1 W7 z. O% s6 j' @9 u. e6 g$ U3 t8 ]$ u( D
double dU_dnmd()  /*求du/dλ*/* r1 w2 Z, o  K$ U7 e% D! J6 d
{" ~. A2 h$ a* O0 j* H

; R# j! @/ _7 S; H# J8 G, H* I2 I}
# y; ]" @+ M9 s0 a4 w" z$ ^3 \: s& Q3 A
double dT_Ys_dCA() /*压缩期*/
4 Z, N5 @6 `  o6 Z1 K+ H9 t( Q{+ o; Y: F9 @. Q& A4 P4 u/ g
: g. }2 ^) a( G! Y2 g* z. H) k
}
4 c) t+ g1 ~3 W9 V; z8 a1 e' T$ l# k( [; J" k8 A& {

( ?  \+ J! p$ ~) o# Zdouble dT_Pz_dCA() /*膨胀期*/
9 h+ i9 m# I- b2 `$ X: p2 A{
( |% K+ _- D0 `1 T& s
5 ~$ I  H7 t; X0 f6 r4 [}
& @, u# Y6 [/ _) Q( \! o3 i: X9 _2 Y  |$ G2 O- q4 J

# A8 s7 z( j% m) Hdouble dT_Rs_dCA() /*燃烧期*/) B* C5 G5 G" b- ]% X( Q
{6 k4 l7 ^5 k5 t9 O- _8 P

" H0 [: O0 y. C7 a% r}# e4 M( ?  [( l: b

/ `0 O7 k7 @' l0 ]4 g1 w
* n- i* s& O! y2 c8 [7 Odouble dT_dCA(double an) /*求dT/dφ*/
# t7 s0 v+ P) Z5 X{
1 n% q8 p8 x- Y        CA=an*PI/180;
! T! R# j% F' w6 A5 ]' r* B& z        V=V_CA();. ^/ ?! [' [4 U
        if(A_SC<an && an<A_CB)   return dT_Ys_dCA();6 _1 E# z# y; C. `& P
        if(A_CB<=an && an<=A_CE) return dT_Rs_dCA();
  Q1 O9 @$ M# r1 k$ o* t1 {        if(A_CE<an && an<=A_EO)  return dT_Pz_dCA();
% h7 U/ {% s4 U0 q% O        if(A_EO<an && an<=A_SO)    /*换气过程不计算,线性赋值,避免零值 */
% p! T" N% F" B3 S                P=110000+(m_P[(int)A_EO]-110000)*(A_SO-an)/(A_SO-A_EO);
# [8 \3 e2 r; Y1 K1 P& ^+ u% _* K# u    if(A_SO<an || an<A_EC) ( |% f6 {$ {/ T& C# n$ w. ~9 A; {& F0 Z
                P=110000-20000*(an>A_SO?an-A_SO:an-A_SO+720)/(A_EC-A_SO+720);
4 ^3 W1 @: P% I: X& o* U        if(A_EC<=an && an<=A_SC) P=90000;
# q7 R/ B) Z. I0 ^: J, @+ `% n        return 0;
, G6 F& t, J' S5 q8 D}: n/ ^2 Q5 {; ?0 T  ?+ {
; P  ^. W1 S/ S( t5 O* p3 `
void Calculate(void)
: T" J& U+ `4 w( j{( P) `1 m1 N2 q: L
    double Tpre,K1,K2,an;2 A0 V! a0 m) C3 Q! |1 a
    int index;- F! M; }% Z4 l% A7 U6 u
        Pe=30*4.0*Ne/(gnum*100000*n*S*PI*D*D/4);  /*平均有效压力bar*/7 g6 Y' d* I, t
        mBo=Ne*ge/(30000000*n*gnum);   /*单缸循环供油量kg */: \$ L$ z% R5 [+ Q
        CA=A_SC*PI/180; /*进气关闭时的角度转弧度*/( B8 I0 k8 A3 V% L: |2 l
        V=V_CA();/*进气关闭时角度下的气缸容积*/
: Q. Y! k% r8 ~: W' u2 ?) v, a        P=P_SC;
5 [, R! T6 ~& V" A2 ?  T: y        T=T_SC;+ [( D  ]/ n1 \& ^
        index=(int)A_SC;
: t- r" J& w3 k9 F9 y        m_T[index]=T;
6 f, r3 {" f$ a3 B+ v# C        m_P[index]=P;( j0 L6 E" q5 f
        m=P*V/(R*T);/*进气关闭时角度下的气缸内工质质量*/
: x+ _, v$ a8 P- Q        mL=m-0.01*mBo;/*进气关闭时角度下的气缸内空气质量*/" J+ z! ^  d3 _' ?5 w" h/ n+ @
    mf=m-mL;
* L( o7 r" e$ h  X/ b& h# a        Tpre=T;
( R2 m" E) a+ A0 Y        an=A_SC+1;4 @1 ]% C. v+ V1 y) [

& I1 s. X8 j$ t/ B0 M0 p        do{0 W* _& l5 x& H# W, b! x. E- ^

- J6 J2 r0 e; q  /*B 编写欧拉法求解常微分方程程序 */5 B+ S& R0 d8 F  K" S: {+ O9 b6 l

; i  t: ?' s9 v2 c6 r4 V        }while(an!=A_SC+1);
8 i0 K, f0 P6 T/ Y6 @}
" t; U' [) N9 g" f& v, I" d0 ?  ^0 a" L9 f+ e
void main(void)
& s0 P) f& |# O2 Y7 H0 @{3 S/ M& V  N2 ?1 I( A9 y
        int i;# k2 Z0 d3 |$ A& e, u2 b: v
        FILE *fp;% X2 o$ F& a: N% M) Q1 y& \. Y
        D=0.11;   /*发动机数据按各自的任务书输入 */# ]. V1 E5 e9 o( X: q5 b7 G
        S=0.13;1 ]$ R! K* G& ]2 X4 Q. `
        L=0.21;/ _$ X( j6 y1 }4 ?0 T
        ge=236.0;# P: @1 ]* q: x8 m9 A
        n=2400;
  h8 u. S& K! W2 S) r        Ne=101568;% f+ D% g0 [# z
        gnum=6;  ysb=17;   M=0.7;! F9 c& X3 |8 x- M) P, C# o
        Hu=41868000;
8 Q6 N6 X6 z/ o# N. n* a1 r        R=287.08;
$ o3 H# p  Q' X- o3 u        Pa=101000; /*大气压力*/
- N; E+ i! x0 C1 B. O5 c$ V        Ta=300;    /*大气温度*/
, M7 X, [8 m8 v1 X- L4 H: h        hs=(735.0+R)*Ta;  /*大气焓值*/
4 g1 e7 L0 b( }) w        P_SC=90000;* w0 B# A$ S2 F% \# c& S
        T_SC=313;
2 m3 F" z! L: t6 C* E
. t1 c3 A6 W$ |! z% n        A_SC=216; /*进气门关闭*/2 S* E9 q4 V/ q& S) E/ S5 O3 `
        A_CB=350; /*燃烧开始*/. t. L0 w9 P% F+ Y3 \7 e
        A_CE=410; /*燃烧结束*/
6 \7 [5 x5 e3 O9 l  {6 W        A_EO=484; /*排气门开启*/
, S" x$ d. Z4 q) N8 W        A_SO=705; /*进气门开启*/, }- b, {. A2 f  q% z3 K
        A_EC=15;  /*排气门关闭*/; U6 g0 p0 Y+ y& C, X4 N$ U; c

9 _- c% C- ^8 V2 A5 m* a# s" \        Lo=14.4;- v* l' r. T" v6 }1 _% P

6 v/ N7 Z+ N5 r% {+ }+ t0 t" F( i8 j    for(i=0;i<720;i++)
# X% m1 _; O3 e  V0 A. n& c. r        {0 Z% f" S- U  d$ O1 d/ O
                m_P[i]=0;
% q' N8 b9 |# t% q" x1 R- e8 @                m_CA[i]=i;% h' @0 B" t% z
                m_T[i]=0;6 g) a6 j6 O( q, n6 K# n
        }7 p6 w) g9 a: r! d( {* H
$ g# w+ ?1 \+ q/ u- B5 L
        Calculate();# o' I2 B9 U1 o# s% ^4 e0 L
0 N8 U! {1 X- e  r, ?% w1 T
    /*C编写数据输出程序,计算结束后按顺序输出0-720转角的“缸压,温度”数据到outdata.txt文件 */$ }! [! a( `4 {& C5 k
0 O; C: j/ V& L7 e' k
}
. a- l* b# L; z" {
5 u# R$ C6 X4 @" ^" B0 t8 d2 v( h' ~: d# ?5 m4 `4 E
回复

举报

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

举报

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

举报

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

本版积分规则

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

GMT+8, 2025-4-26 12:12 , Processed in 0.070491 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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