📄 speedmodel.cpp
字号:
// speed.cpp: implementation of the speed class.
//
//////////////////////////////////////////////////////////////////////
#include "stdafx.h"
#include "2level.h"
#include "speedmodel.h"
#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
speedmodel::speedmodel()
{
}
speedmodel::~speedmodel()
{
}
double speedmodel::roll_speed(int i,global x)
{
//define the rolling speed
double v0;
//compute the slip
double ff;
double v=x.v[i];
slipmodel slip;
ff=slip.slip(i,x);
//compute the rolling speed
v0=v/(1+ff);
return v0;
}
double *speedmodel::init_speed(double h[5])
{
//initial the speed of last stand
double out_speed=15;
double *p;
double m_speed[5];
//compute the speed of every stand;
m_speed[4]=out_speed;
m_speed[3]=h[4]/h[3]*out_speed;
m_speed[2]=h[4]/h[2]*out_speed;
m_speed[1]=h[4]/h[1]*out_speed;
m_speed[0]=h[4]/h[0]*out_speed;
p=&m_speed[0];
return p;
}
double speedmodel::max_speed(global x)
{
double ratio[5];
double max_speed;
double in_speed; //轧机入口速度;
double a; //middle parameter;
double ff;
int b=0;
ratio[0]=x.W[0]/x.max_power[0];
a=ratio[0];
for(int i=1;i<=4;i++)
{
ratio[i]=x.W[i]/x.max_power[i];
if(ratio[i]>a)
{
a=ratio[i];
b=i;
}
}
x.W[b]=x.max_power[b];
x.vr[b]=x.W[b]*1.34*x.R[b]/(0.2192*10E-3)/600/x.MM[b];
//compute the slip of NO.b stand;
slipmodel slip;
ff=slip.slip(b,x);
x.v[b]=x.vr[b]*(1+ff);
x.v[4]=x.h[4]/x.h[b]*x.v[b];
if(x.v[4]>x.max_out_speed)
max_speed=x.max_out_speed;
else
max_speed=x.v[4];
in_speed=x.h[b]/x.H0*x.v[b];
if(in_speed>x.max_in_speed)
max_speed=x.H0/x.h5*x.max_in_speed;
else
max_speed=x.h[b]/x.h[4]*x.v[b];
return max_speed;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -