본문내용
)
{
dist[i]=X0*exp(-1*Wn*(i+1))+(Xd0+Wn*X0)*(i+1)*exp(-1*Wn*(i+1));
}
}
if(Zeta>1) //과감쇠계의 경우
{
printf("과감쇠입니다.\n");
fp=fopen("overdamp.txt","w");
fprintf(fp,"mass = %f \ndamp = %f \nstif = %f \n",mass,damp,stif);
printf("mass = %f \ndamp = %f \nstif = %f \n",mass,damp,stif);
for(i=0; i
{
dist[i]=C1*exp(e1*Wn*(i+1))+C2*exp(e2*Wn*(i+1));
}
}
for(i=0;i
{
fprintf(fp,"%lf\t\t%.16f\n",(double)i+1, dist[i]);
printf("%f\t\t%.16f\n",(double)i+1, dist[i]);
}
fclose(fp);
}
void getData(double *mass, double *damp, double *stif)
{
printf("mass:");
scanf("%lf", mass);
printf("damp:");
scanf("%lf", damp);
printf("stif:");
scanf("%lf", stif);
return;
}
■ 프로그램의 설명과 결과
프로그램이 실행되면 먼저 getdata 함수를 통해 질량, 감쇠, 스프링의 상수를 받는다. 그런 다음 어떠한 경우(과감쇠, 임계감쇠, 부족감쇠)인지를 따져 프로그램이 실행된다.
프로그램이 완료되면 화면에 어떤 감쇠인지 표시하도록 하였으며 해를 구하는데 쓰인 질량, 감쇠, 스프링의 상수를 표시하도록 하였다. 결과를 더욱더 세분화하기 위해서는 시간i의 값을 100정도의 수로 나누어 주면 된다.
또한 프로그램 결과를 txt 파일로 만들 수 있도록 하였으며, txt파일의 이름 또한 어떠한 감쇠인지를 표시하도록 하여 폴더창에서 파일을 열어보지 않고도 어떤 감쇠인지를 알 수 있도록 하였다.
그 결과 부족감쇠의 경우에는 진동하다가 가장 늦게 소멸하며, 임계감쇠의 경우에는 시스템의 응답이 진동하지 않고 과감쇠의 경우보다 훨씬 빨리 소멸하는 것으로 나타났다.
이러한 결과를 보다 쉽게 알아볼 수 있도록 origein7.0을 가지고 그래프를 작성해보았다.
■ 첨부
● 부족 감쇠의 경우
● 임계감쇠의 경우
● 과감쇠의 경우
{
dist[i]=X0*exp(-1*Wn*(i+1))+(Xd0+Wn*X0)*(i+1)*exp(-1*Wn*(i+1));
}
}
if(Zeta>1) //과감쇠계의 경우
{
printf("과감쇠입니다.\n");
fp=fopen("overdamp.txt","w");
fprintf(fp,"mass = %f \ndamp = %f \nstif = %f \n",mass,damp,stif);
printf("mass = %f \ndamp = %f \nstif = %f \n",mass,damp,stif);
for(i=0; i
dist[i]=C1*exp(e1*Wn*(i+1))+C2*exp(e2*Wn*(i+1));
}
}
for(i=0;i
fprintf(fp,"%lf\t\t%.16f\n",(double)i+1, dist[i]);
printf("%f\t\t%.16f\n",(double)i+1, dist[i]);
}
fclose(fp);
}
void getData(double *mass, double *damp, double *stif)
{
printf("mass:");
scanf("%lf", mass);
printf("damp:");
scanf("%lf", damp);
printf("stif:");
scanf("%lf", stif);
return;
}
■ 프로그램의 설명과 결과
프로그램이 실행되면 먼저 getdata 함수를 통해 질량, 감쇠, 스프링의 상수를 받는다. 그런 다음 어떠한 경우(과감쇠, 임계감쇠, 부족감쇠)인지를 따져 프로그램이 실행된다.
프로그램이 완료되면 화면에 어떤 감쇠인지 표시하도록 하였으며 해를 구하는데 쓰인 질량, 감쇠, 스프링의 상수를 표시하도록 하였다. 결과를 더욱더 세분화하기 위해서는 시간i의 값을 100정도의 수로 나누어 주면 된다.
또한 프로그램 결과를 txt 파일로 만들 수 있도록 하였으며, txt파일의 이름 또한 어떠한 감쇠인지를 표시하도록 하여 폴더창에서 파일을 열어보지 않고도 어떤 감쇠인지를 알 수 있도록 하였다.
그 결과 부족감쇠의 경우에는 진동하다가 가장 늦게 소멸하며, 임계감쇠의 경우에는 시스템의 응답이 진동하지 않고 과감쇠의 경우보다 훨씬 빨리 소멸하는 것으로 나타났다.
이러한 결과를 보다 쉽게 알아볼 수 있도록 origein7.0을 가지고 그래프를 작성해보았다.
■ 첨부
● 부족 감쇠의 경우
● 임계감쇠의 경우
● 과감쇠의 경우
소개글