合肥工业大学-直动式溢流阀仿真

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

计算机仿真

直动式溢流阀仿真实验

班级:机设13-4班

学号: 2013210360

姓名:杨尚武

授课教师:翟华

日期: 2016年4月13日

一、实验目的

本实验要求学生能掌握连续系统仿真的一般过程,状态变量法的一般过程,键合图法仿真的一般过程,以四阶定步长龙格——库塔法的计算机程序的编写。二、实验要求

本实验要求学生能掌握连续系统仿真的一般过程,状态变量法的一般过程,键合图法仿真的一般过程,以及四阶定步长龙格—库塔法的计算机程序的编号要求每个学生参考上述源程序,独立编写C语言源程序或其他高级语言程序,正确计算仿真结果,并绘制压力P(t)和时间t的关系图,以及阀芯位移x(t)和时间t的关系。

三、参考C语言程序

#include "stdio.h"

#include "math.h"

void main()

{FILE * fp;

int i,j,e,g,l,s,n1,n2,b[3][2];

float d1,r1,r2,i1,c1,c2,x1,h1,a1,c,p0,pp,q1,x2,t;

float a[3][3],y[3],u[2],k[3][5],h[5],p[3][5],z[3],d[3][5];

if((fp=fopen("fz1","wb"))==NULL)

{printf("cannot open file\n");

}

fprintf(fp,"digital simulation of hydraulic relief valve\n");

d1=0.012;

r1=0.39e+11;

r2=0.147e+12;

i1=0.0614;

c1=0.8e-12;

c2=0.2e-4;

x1=0.0014;

p0=0.6e+6;

pp=0.3e+7;

q1=0.46e-3;

h1=0.0003;

t=0.0;

n1=5;

n2=55;

a1=0.785*d1*d1;

a[0][0]=-a1*a1*r1/i1;

a[0][1]=-1.0/c2;

a[0][2]=a1/c1;

a[1][0]=1/i1;

a[1][1]=0.0;

a[1][2]=0.0;

a[2][0]=-a1/i1;

a[2][1]=0.0;

a[2][2]=-1/(r2*c1);

for (i=0;i<=2;i++)

{for (j=0;j<=1;j++)

b[i][j]=0;

}

b[0][0]=-1;

b[2][1]=1;

y[0]=0.0;

y[1]=0.0;

y[2]=p0*c1;

x2=q1/(0.7*3.14*d1*sqrt(2.0*pp/900.0));

u[0]=pp*a1-(x1+x2)/c2;

u[1]=q1;

c=-0.7*3.14*d1*sqrt(2.0/900.0);

for(i=0;i<=2;i++)

{k[i][0]=0.0;}

h[0]=0.0;

h[1]=h1/2.0;

h[2]=h1/2.0;

h[3]=h1;

fprintf(fp," T P(T) X(T)\n"); for (e=1;e<=n2;e++)

{for (g=1;g<=n1;g++)

{t=t+h1;

for(j=1;j<=4;j++)

{for(i=0;i<=2;i++)

{p[i][j]=h[j-1]*k[i][j-1];

z[i]=y[i];

z[i]=z[i]+p[i][j];

}

if(z[1]<0.0) z[1]=0.0;

if(y[1]==0.0&&z[0]<0.0)z[0]=0.0;

if(z[2]<0.0) z[2]=0.0;

for (i=0;i<=2;i++)

{d[i][j]=0.0;

for(l=0;l<=2;l++)

{d[i][j]=d[i][j]+a[i][l]*z[l];}

k[i][j]=d[i][j];

for(s=0;s<=1;s++)

{k[i][j]=k[i][j]+b[i][s]*u[s];}

}

if(y[1]==0.0&&k[0][j]<0.0)k[0][j]=0.0;

if(y[1]==0.0&&k[1][j]<0.0)k[1][j]=0.0;

if(y[2]==0.0&&k[2][j]<0.0)k[2][j]=0.0;

if(y[1]>x1)

{k[2][j]=k[2][j]+c*(z[1]-x1)*sqrt(z[2]/c1);

if(y[2]==0.0&&k[2][j]<0.0) k[2][j]=0.0;

}

}

for(i=0;i<=2;i++)

{y[i]=y[i]+h1*(k[i][1]+2*k[i][2]+2*k[i][3]+k[i][4])/6.0; }

if(y[1]<0.0)y[1]=0.0;

if(y[1]==0.0&&y[0]<0.0)y[0]=0.0;

if(y[2]<0.0)y[2]=0.0;

}

fprintf(fp,"%7.5f %e %e\n",t,y[2]/c1,y[1]); }

}

四、输出结果

digital simulation of hydraulic relief valve

T P(T) X(T)

0.00150 1.449418e+06 0.000000e+00

0.00300 2.288071e+06 0.000000e+00

0.00450 3.099895e+06 1.151061e-04

0.00600 3.868414e+06 4.654126e-04

0.00750 4.600404e+06 1.006565e-03

0.00900 4.988608e+06 1.692020e-03

相关文档
最新文档