if (d <= -du) //狀態1:禁止區域(-)
{
U = Umin;
if (vel < 0)
U = Umax;
}
else if (d > -du && d <= -dy) //狀態2:控制區域(-)
{
U = Umin;
if (vel < 0)
U = (-d - dy) / (du - dy)*Umax + (du + d) / (du - dy)*Umin;
}
else if (d > -dy && d < dy) //狀態3:自由區域(-)狀態4:自由區域(+)
{
U = Umin;
}
else if (d >= dy && d < du) //狀態5:控制區域(+)
{
U = Umin;
if (vel >= 0)
U = (d - dy) / (du - dy)*Umax + (du - d) / (du - dy)*Umin;
}
else if (d >= du) //狀態6:禁止區域(+)
{
U = Umin;
if (vel >= 0)
U = Umax;
}
d0 = d;
}
int _tmain(int argc, _TCHAR* argv[])
{
double d=0.0,U=0.0,dt=0.0;
for (int i = 0; i < 10; i++)
{
d = 0.01*i;
ControlFunc(d, U, dt);
cout << "第" << i << "步計算結果: 控制電壓U= " << U << " 時間間隔dt=" << dt << endl;