恭喜,你发布的帖子
发布于 2023-05-16 19:42:52
22楼
分享一个采样给定周期是1ms的半残差补偿,浮点数残差部分扩大1000倍(实际测试倍数设置成1000和10000甚至100000影响微乎其微),实际累计到倍数的一半500时,就补偿一次SMD72,即此时补偿一次SMD72==SMD72+1;理论上用ROUND四舍五入指令应该是不行的,可能要用TRUNC截取指令。
以下测试两组图片
图1、2减速距离5mm,匀速速度50pp/ms;最终减到速度同步是26pp/ms==0.06mm/ms==60mm/s
脉冲分毫不过冲
图1 运行结束各个参数情况
图2结尾速度是设定的值
图3、4减速距离5mm,匀速速度50pp/ms;最终减到速度同步是13pp/ms==0.03mm/ms==30mm/s
脉冲过冲3个脉冲,即理想的速度同步,位置相差3个脉冲,也勉强算理想的开环速度同步,位置同步,当然这3个脉冲也是可以想办法补偿回来的
图3运行结束位置相差3个脉冲,速度一致
图4残余误差补偿
以上说明Smart低速脉冲串在采样周期短到1ms;适当的半差,半残差补偿可以达到理想的,开环的,简单的位置,速度控制精度,即速度同步,位置相差可控。最终如果持续发送结尾的同步速度就可以进入理想的位置,速度同步区。
当然非48位或64位或80位及以上浮点精度的低速脉冲串(低于1M)在采样周期短到1ms时的问题是显而易见的:位置分辨率还行,速度的不失控分辨率不够,不失控时的速度离散给定值只能是1K(1pp/ms);2K;3K......然而在脉冲频率不高,脉冲距离分辨率不够精细的情况下,速度的给定分辨率甚至都达不到1mm/s;因此可能导致速度给定值只能是2mm/s;4mm/s;6mm/s......
进一步闭环其实就是公式中参与运算的速度和位置是实际反馈的速度和位置。
进一步再加上时间约束值等效虚拟编码器约束值(比如:在规定100ms(或100个虚拟值)内;运动距离100mm;速度值从初始100mm/s到最终30mm/s同步值),速度的规划要简单的加上一些策略......
其实以上所有帖子的计算对纯开环来讲都是在做无用功,因为开环只需要计算一次等差数列,规划好每个时间片的脉冲串,除不尽的平均分配到中间时间片即可;对简单闭环有点用。
有空更新一个调和残差补偿的例程......
请填写推广理由:
分享
只看
楼主