步进电机算法s曲线的原理与实现「建议收藏」

步进电机算法s曲线的原理与实现「建议收藏」s曲线图形如下上图的曲线图在步进电机中可看为是步进电机的速度变化图,步进电机速度是和频率成正比,即也可看为是频率递增的曲线图。加速在加速的过程中一共可以分为两个阶段,分别为前半部分和后半部分,前半部分是加速度匀速递增的曲线,称为:加加速阶段曲线,后半部分是加速度匀速递减的曲线超,所以称为:减加速度阶段曲线。s曲线图对应的加速度变化,即曲线斜率图如下:前半段斜率大于0,加速度从0变为最大值,后半段斜率小于0,加速度从最大值变为最小值。一…

大家好,欢迎来到IT知识分享网。

s曲线图形如下

步进电机算法s曲线的原理与实现「建议收藏」

      上图的曲线图在步进电机中可看为是步进电机的速度变化图,步进电机速度是和频率成正比,即也可看为是频率递增的曲线图。加速在加速的过程中一共可以分为两个阶段,分别为前半部分和后半部分,前半部分是加速度匀速递增的曲线,称为:加加速阶段曲线,后半部分是加速度匀速递减的曲线超,所以称为:减加速度阶段曲线。

         s曲线图对应的加速度变化,即曲线斜率图如下:

步进电机算法s曲线的原理与实现「建议收藏」

        前半段斜率大于0,加速度从0变为最大值,后半段斜率小于0,加速度从最大值变为最小值。

  一、S形速度表的计算方法

   根据网上资料的最终推导公式可得:

   a=( ( 2 * ((Vm) – (Vo)) ) /t*t;  Vm为中间速度,Vo初速度;t为时间

  Vm = (Vo + Vt)/2;

总加速时间为t,则加加速时间为t/2;减加速时间为t/2。

S=1/6*a*t*t*t;

频率与速度对应,则f=sppd;T=1/spzeed;

可得出计算表如下:

Vt:t时刻速度     ,T总加速时间 

void  SpeedTab(int Vo, int Vt, float T)

{

int32_t i = 0;

int32_t Vm =0;      // 中间速度

float a = 0;    // 加速度

float Tn = 0;      // Tn时刻

float DeltaV = 0;  // Tn时刻的速度

float TimeDel = 0; // 时间间隔

T = T / 2; //加加速时间,与减加速时间一样

Vm = (Vo + Vt) / 2; //中间速度

a = ( ( 2 * ((Vm) – (Vo)) ) / pow((T),2) );// 加速度值

Step  = (int)( ( (a) * pow( (T) ,3) ) / 6 );// 加加速的位移和减加速一样

       Step  = abs(Step ); // 取绝对值

if( Step  % 2 != 0)     // 

{

Step  += 1;

}

TotalStep =Step * 2;           // 加加速和减加速的总步数

TimeDel = T /Step;加加速时间除以步数等于每步对应时间间隔

for(i = 0; i <= Step; i++)

{

Tn = i * TimeDel;//每步对应的时间

DeltaV = 0.5f * a * pow(Tn,2);       // tn时刻对应的速度变化量 v = V0+1/2 * a * t^2;

Speed.Form[i] = Vo + DeltaV;//  v = V0+1/2 * a * t^2;

Speed.Form [ TotalStep – i] = Vt – DeltaV ;        // 减加速与加加速是对称的加速度变化量,由于减加速斜率为负,则是减去 DeltaV

}

//就可以得到速度表的内容了,即对应的频率值

}

下一篇再说一下如何运用到电机上吧!!!

感谢关注!!

步进电机算法s曲线的原理与实现「建议收藏」

 

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/13037.html

(0)

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

关注微信