首页 » SEO优化 » php中实现加法技巧_三角函数S型加减速算法事理及实现

php中实现加法技巧_三角函数S型加减速算法事理及实现

访客 2024-12-16 0

扫一扫用手机浏览

文章目录 [+]

如上图在利用步进或伺服电机实现物体X由A运动到B的过程中,常日须要电机在行程S内有加减速的过程。
须要加减速的缘故原由:对付步进电机而言有空载启动频率,如果脉冲频率大于该值则步进电机不能正常启动,发生丢步或堵转情形。
同时,加减速的存在可以是的运动平滑,减小惯性冲击。

S型加减速分为5个阶段:加加速阶段,减加速阶段,匀速阶段,加减速阶段,减减速阶段。
定时器PWM波输出解释:定时器计数频率:Freq = CK_PSC / (PSC + 1);PWM频率:Freq = CK_PSC / (PSC + 1) / (ARR + 1)2、算法实现2.1、速率方案首先须要根据用户的输入参数对全体行程范围内的速率曲线进行方案,对付S形加减速曲线而言一样平常分为加加速阶段、减加速阶段、匀速阶段、加减速阶段、减减速阶段,但如果输入参数不合理会导致在行程范围内无法达到设定的目标速率,此时须要重新方案。
由于在加速阶段加速度是从0增大末了又为0,以是,T1=T2=Ta/2,同理,T4=T5=Tb/2。
对付三角函数形式的S型加减速曲线,其加加速度Jerk曲线为正弦曲线,如下所示:

php中实现加法技巧_三角函数S型加减速算法事理及实现

则:

php中实现加法技巧_三角函数S型加减速算法事理及实现
(图片来自网络侵删)

为了避免在MCU中计算三角函数,采取切比雪夫多项式对三角函数进行逼近:

由正弦函数曲线可知,其在T/2处取得最大值则:

综上:可得各阶段的加加速度、加速度、速率、位置表达式为:Jerk曲线方程:

加速度曲线方程:

速率曲线方程:

位置曲线方程:

由上述公式可以求得加加速、减加速、加减速、减减速阶段的运动间隔,从而可以求出匀速段的运动间隔:s3=s-s1-s2-s4-s5,此时存在如下三种情形:①、如果s3>0则解释能达到指令速率并且存在匀速段T3 = s3/vm;②、如果s3=0则解释能达到指令速率并且不存在匀速段T3 =0;③、如果s3<0则解释不能达到最大速率不存在匀速段,须要重新方案假设最大速率为vx则令s=s1+s2+s4+s5T3 =0;

得:

将其代入上式中重新方案2.2、插补在MCU中利用定时器进行韶光插补,插补周期detT,利用积分事理实现对速率的插补得到期望的位置。
在前面速率方案中得到了三个阶段的韶光t1、t2、t3、t4、t5。
假设当前插补次数为n,则运行韶光为ndetT假设全体运动韶光为T,插补周期为△t,则插补次数n=T/△t。
则须要得到每个插补周期的运动间隔△s。
这里得到的间隔还是用户单位,输出时须要将其转换为脉冲数。
转换关系式为:插补脉冲数=导程插补间隔∗一圈脉冲数在MCU中须要在定时器中统计统共实行的脉冲数,在T形加减速算法实行完毕后与总间隔的脉冲数进行比拟,如果输出的脉冲数少了则须要以终止速率连续输出剩余脉冲数,担保精度足够准确。
3、MATLAB 验证

4、MATLAB和C源码见源码章节部分

三角函数S型加减速算法事理及实现

http://bbs.plcjs.com/forum.php?mod=viewthread&tid=498567&fromuid=17

(出处: PLC论坛-全力打造可编程掌握器专业技能论坛)

#加减速#

标签:

相关文章