📄 yy.c
字号:
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
static
int lmtspeedcal(ilen);
main(void)
{
int len;
printf("Please input the length:");
scanf("%d",&len);
printf("\nlspd=%d",lmtspeedcal(len));
}
int lmtspeedcal(int ilen)
{double knifecircle;
double lengthref;
double synangle;
double lengthgap;
double synlength;
double lmtwidth;
double heigthtemp;
double shearlength;
double topwtemp;
double width;
double ktemp;
double knifemaxspeed;
double lmtacc;
double k1,k2,k;
if(ilen>9999) return iSPD;
if(ilen<500) return 0;
knifecircle=dCIR*10.0;
lengthref=ilen*10.0;
shearlength=dANG/360.0*knifecircle;
lengthgap=lengthref-knifecircle;
synangle=dSYN;
knifemaxspeed=dMAX*knifecircle*10.0/6.0/dRAT;
lmtacc=dACC;
if(lengthref<knifecircle)
synangle=90.0-0.015*(knifecircle-lengthref);
synlength=knifecircle*synangle/360.0;
lmtwidth=2.0*knifecircle-shearlength-synlength;
if(lengthref>lmtwidth)
{width=lmtwidth-shearlength-synlength;
heigthtemp=1.0;
topwtemp=lengthref-lmtwidth;
}
else
{width=lengthref-shearlength-synlength;
heigthtemp=2.0*lengthgap/width;
topwtemp=0;
}
ktemp=3.0*heigthtemp/width;
if(lengthref<knifecircle-200.0)
{ k1=knifemaxspeed/(1.0-heigthtemp);
k2=sqrt(-1000.0*lmtacc/ktemp);
k=max(k1,k2);
}
else if(lengthref>knifecircle+200.0)
{ k1=knifemaxspeed;
k2=sqrt(1000.0*lmtacc/ktemp);
k=min(k1,k2);
}
else
k=0.9*knifemaxspeed;
return min((int)(0.5+6.0*k/1000.0),iSPD);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -