fire18 发表于 2014-5-29 10:54:06

请教步进电机梯形加减速C0的计算

//对于1.8度, 8细分, 1605的丝杆: 1600 / 5 = 320 step/mm
#define STEP_PER_MM   320

//计算第1步C的延时周期是多少us, C = 1/tt * sqrt(2*alpha/accel), 即s=1/2*a*t^2,所以t=sqrt(2s/a)
//输入参数a的单位是:mm/s^2 (毫米/秒^2)
//因为计算要控制在32位DWORD值之内进行,所以只能这么写才能算对
#define Calc_C0(a) (sqrt(((2*1 * 1000000) / (a * STEP_PER_MM)) * 1000000))

void GetC0()
{
   double a = 200; //单位是mm/s^2;
   double c0;
   //计算第1步和第二步之间的第一次时间间隔c0
   c0 = Calc_C0(a);
}

发现计算出的c0=5590us,画成曲线图发现应该是不对的,计算出的c0偏大了,想请教下计算错在哪呢,谢谢!


页: [1]
查看完整版本: 请教步进电机梯形加减速C0的计算