这是Smart-V2.X硬件的最后一个帖子,本来对数字"十"有强迫症,但刚好赶上V3.X硬件发布,后续有机会写写3.X硬件的帖子.
一:再说说开环PTO指令:涉及开环PTO,整除(特别重要),等差数列等内容,涉及的数学知识基本不会超过初中,错漏难免仅供参考.
理想情况下,每个运动控制项目的设计,都想时间准,空间准,每个时间片里的空间流逝准(速度准),就是要求你准时准点准速到达,而且要"站定"不能有倾倒的趋势,也不能有任何”逃跑”的趋势(类比加速度趋势),即使有趋势也是在源头上就设计好好的,因此大部分项目对应用的人来说一切都是设计好的,个人发挥空间实在有限,也就调调参数,这也符合成熟项目需求.
<1>先贴S7-200Smart的手册
1.1如下图关于PTO的介绍:



1.2从文档里提取出两个点:
(1)多段脉冲的每段持续时间要大于500微秒μs,这样才能保证段与段之间有效的转换.
(2)多段之间的PTO频率由于分辨率截断误差并不一定可以无缝的衔接,就是期望速度和实际速度可能要补偿匹配,这个西门子官方文档有介绍补偿方法,并给出期望曲线和实际曲线.
从每个Ts(1ms/2ms/4ms)的微小时间片角度看就是位置的给定频率要尽可能的在Ts内刚刚好发送完毕,整个脉冲串均匀的分布在整个Ts控制周期,和下一段无缝的衔接.
在思路之三中分析过速度放大后可以保证应发尽发,并且简单的要引入残差补偿分辨率截断误差,实践中发现:每个Ts时间片的速度必须放大才能满足应发尽发.
但速度放大后用示波器确认用中断方式发脉冲,每个中断里的脉冲不是均匀分布的,脉冲串之间的间隙有150μs-200μs.这个在加速阶段或者减速阶段理论上是可以接受的,在进入匀速阶段其实也是可以接受的,或者在匀速时可以采取变通思路做比如进入匀速段的第一个周期就预定整个匀速段的脉冲数SMD72以及频率SMW68并执行新的pls,这个有利有弊,相当于匀速段的位置和速度一次性宏观的托管给别人了,微观就不受控了,尤其是时间不受控.
脉冲分布不均匀问题:如果持续性的每个1秒钟周期的前0.9秒发10000个脉冲给驱动器,0.1秒空闲,那么0.1秒空闲是驱动器和电机惯性”滑行 ”阶段,驱动器的理论速度是多少?实际测出来的速度大概是多少?从1秒周期宏观看这有可能会引起电机的抖动的,但是时间周期如果缩小到1ms;前900μs发10个脉冲,后100μs空闲会不会引起电机抖动呢?
<2>实例分析
2.1一个很简单的例子,两个PTO脉冲轴,两个轴同时拉取一段塑料卷材:一个双辊夹送旋转伺服轴,一个直线拉取伺服轴,机械参数:夹送拉取同时距离102mm,夹送旋转轴12.56mm/r(电机每转送出12.56mm的卷材);直线拉取轴10mm/r(电机旋转一周直线方向运动10mm);把这些参数用简单的整除,等差数列等方式整合在一起会得到很好的位置和时间的匹配,配合合适的控制周期Ts,加上伺服调节好自身承诺的响应就好......
2.2先再次分析下采样周期Ts的选取:有些厂家的PTO轴的底层固件采用”Ts==4ms”既照顾了普通PLC的能力,又照顾了普通驱动器+电机的能力,还从时间和空间变化的角度考虑了最小可以停车速度,再者兼顾了整除的特性.属于既要又要还要再要.
Ts不一定越短越好,而是越适配越好,而且实践中Ts并不是一成不变的常量,而是要适配Cam文件路径,而且机床的多轴插补的时候肉眼可见的视在速度都不会很高,尤其是高精密插补更是很慢.
因此很多时候Ts==8ms也是一个兼顾大惯量的启停车速度和较长加减速时间的很好选择,这个时候的Ts的选择就是越适配每个轴的机械参数和加减速响应特性越好.
根据最短木板效应要多照顾多轴中的那个”短板”轴.以下整体针对2.1的分析也能看出2.2这点......
2.3针对2.1案例选择精度2um/pp分辨率,此时拉取伺服的机械参数[10.0(mm/r)*1000(um/mm)]/[2(um/pp)]===5000pp/r;(驱动器参数设置5000pp/r)此时拉取轴的分辨率==5000(pp/r)/10.0(mm/r)==500pp/mm;
[12.56(mm/r)*1000(um/mm)]/[2(um/pp)]===6280pp/r;(驱动器参数设置6280pp/r)此时夹送轴的分辨率==6280.0(pp/r)/12.56(mm/r)==500pp/mm
理论上在整体各个部分的性能好且输入,输出以及运算的分辨率和精度高的前提下Ts越短越好.因此暂定Ts==1ms,同步距离==102mm,起始和结尾速度==0,而且按照最简单的等腰梯形来设计同步的曲线:由于等腰梯形加减速完全对称所以S总==V匀速*(T加速+T匀速)==102mm*500pp/mm==51000pp总路程定了.
根据整除性质并控制住PTO最大频率的缩放小于65KHZ,因此把51000分解成51*1000,并令V匀速==51pp/ms==51KHZ;
此时根据加速度较小且速度等差原则,假定加速阶段每个Ts控制周期递增一个脉冲则加速段的每个Ts==1ms的脉冲数是1,2,3,4,5......51,加速51次,此时T加速==51*1ms==51ms==T减速;
T匀速==51000/51-51==949ms,T总时间==51+949+51==1051ms==1.051秒
此时由于加速时间才51ms,显然Ts==1ms选的不是太理想
如果选择Ts==2ms 则每个Ts==2ms的脉冲数是1,2,3,4,5......51,加速51次,T加速==51*2ms==102ms==T减速;T匀速=1898,T总时间==102+1898+102==2102ms
此时起步速度==1pp/2ms==500pp/s==1mm/s.
从设计的角度,整体看下来Ts==2ms.加速阶段的速度离散值1pp/2ms;2pp/2ms;......51pp/2ms(约等于25KHZ的频率),匀速阶段恒定为949次的51pp/2ms;减速过程和加速过程完完全全对称
,此时加速时间是2*51==102ms但是显然也不太理想;此时如果选取Ts==4ms也不是很合适会导致整体时间过长,只能这样设计,多插入一次加速阶段的速度离散值让加速阶段:1pp/2ms;1pp/2ms;2pp/2ms;2pp/2ms;.........50pp/2ms,50pp/2ms,51pp/2ms,51pp/2ms(约等于25K的频率)加速阶段多了51次,加速阶段多的脉冲数==(51+1)*51/2==26*51折算成26个51,这要在匀速段减去这些加速和减速阶段多余出来的脉冲数,因此匀速阶段的次数减少为949-26*2==897次的51pp/2ms;减速过程和加速过程完完全全对称,此时加速时间==102*2==204ms;匀速阶段==897*2==1794ms;减速阶段也是204ms.总时间==204+204+1794==2202,多了100ms但换来的是加减速过程更合理.
2.4关于JerkTime如下图所示,如果Ts==4ms,JerkTime==3ms则这样考虑,把JerkTime==3ms按照等差数列分解成3ms==2ms+1ms并将多余的时间放到开始和结束的两个控制周期里,此时定时中断时间在加速开头和结尾需要变更成6ms;5ms;4ms;4ms......4ms;4ms;5ms;6ms这样就适当的完成了JerkTime的等差数列分配,下图只画了开始阶段;如果JerkTime==10ms,可以这样分配:10ms==4ms+3ms+2ms+1ms并把它合理的分配到加速开头和结尾的四个周期内;如果JerkTime==5ms,分配成3+2或者2+1+1+1;或者是2+2+1......

2.5针对Ts==1ms选取不理想,其实也可以通过类似的“空间换时间”来改善加减速过程;在Ts==1ms理想只有51ms的加速时间(这个在大部分的伺服速度带宽的范围内,一般伺服也能达到),可以在加速阶段通过多次插入1,2,......50,51这个Ts时间片的位置等差数列,并减少匀速段的51pp/Ts发送次数,来适当增加加速过程的过渡时间(时间),但要减少匀速段的脉冲(空间),以此来达到满意的设计效果,在非高精度浮点数的低速脉冲发送频率场合加速度1pp/(Ts*Ts)的选择是一个非常精妙的设计,它使得过渡段的等差数列的总脉冲数刚好是匀速度的整数倍,因为等差求和Sn==(A1+An)*n/2由于每个控制周期递增1个脉冲(1pp)此时N==An刚好使得Sn是An(匀速速度)的整数倍,采样控制时间Ts的增大减小使得”1pp/Ts“:”一个离散时间片里的一个脉冲“呈现了类似小数的效果,进而实现加减速以及JerkTime精确可控;在浮点数运算残差累计再补偿是解决小数点的有效方法之一,后续另外一个案例简单介绍微米级树脂(油漆)液位控制方法以及补偿方案,滤波思路以及另一个泵速液位双闭环实际案例,帖子都是在Ts==1ms/2ms/4ms的时间片里发脉冲,所以涉及到的方法都是细碎而简单的自然数等差数列,整除等内容,讨论的时间和空间尺度都是1个脉冲,一个时间片Ts里发生的事,涉及的时间,空间的单位是毫秒ms,脉冲pp,实践中不管是N位的编码器值,总线或者脉冲或者模拟量给定和反馈量,在离散的采样控制时间和空间里都是整数,如果还有运动总时间是2000ms这个约束条件的要求那么设计上还要优化......