步进电机s加减速学习笔记

在这里插入图片描述
这个曲线取点使用很方便,不用考虑速度,加速度,加加速度以及其组合情况…但是它困扰我的是 我难以设定路径的加速时间段.而且当我限定最大加速度时我不知如何与这个曲线对应.因此放弃
在这里插入图片描述
这个图总之先贴着…

目标与输入输出

我要做的是scara在平面活动的那两关节的运动。为了最终算出关节角对应的速度,我决定把末端路线均匀细分之后计算每个点上每个关节的角度
我在为末端做s加减速的时候需要规定最大速度Vm,最大加速度Am和最大加加速度Jm。A的加速和减速必须存在【大概】,但是它可以不必达到Am。J还是规定为一个常量比较方便,就直接每次都Jm吧【不然脑阔炸裂】
我已知的是末端的起点和终点位置,目标是计算末端每走过一定距离时的关节电机的频率,需要知道的是 末端每走过一定的距离的耗时 而我已知的是每段路线的长度【自定义的】,所以我应该塑造一个(C)图的曲线使点划线的面积为全程,并取等量面积得其横坐标。

定曲线

v-t图里,路程【即面积】定死,每小段的匀速的速度大小应该自己设定,记为Va。要是Va设得小了,时间就拖得太长,所以Va应该尽量大。 首先设定好Jm,那么先算好A恰好到达Am但没有匀加速部分时的面积,记为Vd. 这是匀加速的分界点,这时的加速度曲线是两个连着的三角形【像N】。再算一下此时的路程Sd,将目标路程与Sd做对比,若目标路程偏小,只能以路程为准自动设定最高速度并报告用户;若路程偏大则需要通过用户设定的速度判断曲线,但首先要计算一下在没有匀速阶段的条件下走过那个路程能到达的最高速度,记为Vh。将Va与Vh对比,若Va偏小,则有匀速部分,若Va偏大就报警并调速到Vh。
那么考虑一下起始速度和末速度不为0且不一致的状况。以起始速度为参考点,若Va偏小,则加速度取反,若不对称,也就是头和尾各自算,不能乘2了。若V初<Va<V末也是两头各自算。需要考虑的应该是路程【面积】怎么处理。

速度曲线定好之后就能做积分了.然后在纵坐标上取距离点就能得到对应路段的时间.
【诶,也可以在获得各阶段时间之后按对应的公式算出速度就可以得到频率了。不过这样的话就是按等时间划分,就没那个等距离的事了,按速度继续推出末端位移,再算scara的关节角】

对应上述逻辑的程序意识流

Sa 给定路径长度
Sd 无匀加速无匀速时的路程 // 不对称的 =V初 * T加 + V初 * T减 + Jm * T加3+2 * Vd * T减 - Jm * T减3
Vs 初速度
Va 自定义进给速度
Vd 无匀加速时可达的最大速度
Vh 在Sa要求下路段正中间可达的最高速度 //前提是Vh小于机械可承受的最高速度Vm

if(Sa<=Sd)//修正Va为Vam,由Sa推导出加速时间段;
{
	float a_for_T1, b_for_T1, Vam;
	int i=0;

	a_for_T1 = Sa * sqrt(Jm) / 4;
	b_for_T1 = sqrt(Sa * Sa * Jm / 16.0 + 8 * Vs * Vs * Vs / 27.0);
	T1 = (pow(a_for_T1 + b_for_T1, 1.0 / 3.0) + pow(a_for_T1 - b_for_T1, 1.0 / 3.0)) / sqrt(Jm);
	Vam = Vs + Jm * T1 * T1;

	if (Va >= Vam)
	{//这个是 Sa<=Sd && Va >= Vam 的情况,分四段加速度.四个T1
		Va = Vam;
		//这时候拿着上面算出来的T1作为分段函数的自变量分界点,就可以解位移与时间的一元三次方程了
	}
	else
	{//这个是 Sa<=Sd && Va < Vam 的情况,分五段加速度.四个T1和一个T4
		T1 = sqrt((Va - Vs)/ Jm);
		S_add = Jm * T1 * T1 * T1 + 2 * Vs * T1;
		T4 = (Sa - 2 * S_add) / Va;//中间的匀速进给时间
	}
}
else
{
	if(Va<Vd)
	{
		//按上面的else求
	}
	else if(Va>Vh) 
	{	Va=Vh;
	}
	else
	{//这里就是(C)图的情况
	}
}
公式

请移步这里S形加减速这里有一位伟大的博主.

参考文献

步进电机S型曲线加减速算法与实现
步进电机S(SigMoid)曲线加减速【查表法】
一种时间最优的在线S型加减速规划方法与流程发明
STM32-步进电机S型加减速控制 好像是把加减速部分的频率直接存在数组里调用,而不是实时计算
电机SpTA控制算法将电机的运动时间分割成若干个合适的小时间片,在每个时间片内它都将速度参数加到位置参数上,如果位置参数溢出,它就会输出一个脉冲,速度参数根据加速度参数和时间而改变,
STM32-步进电机S型加减速控制 有代码

  • 1
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值