Transforms1s主要解决Transform8s无法方便解决的问题:
- 作动器数量超过8套,比如东南大学则需要拆成2套
Transform8s进行控制
- 作动器耦合布置,水平向与垂直向难以完全分开(
Hexapod/Octopod/Decapod),导致只能Transform8s用来计算当前作动器误差,自由度误差的合成则需要单独采用一个矩阵进行计算 ;
- 带连杆或曲柄连杆的系统,Transform8s完全无法使用。
Transform1s的基本思路与Transform8s的多自由度振动台控制思路(下图),基本类似,主要是自由度位移通过迭代得来,自由度的误差通过个体作动器的误差进行合成。
但对于作动器误差向自由度误差合成时,不再采用`Transform8s`8个作动器分组统一计算,而是采用单个作动器各自计算自己的误差再统一合成,如下图所示:
对于常规作动器的计算过程在Transform8s中已详细分析,不再赘述,而对于重点要解决的连杆型的系统,如何根据预设的参数及当前自由度下的位移进行当前长度及误差计算则成为Transform1s的重点问题。
初始状态如下,初始状态下作动器与连杆的方向重合,即作动器前端点、连杆的前后端点共线,由初始状态运动到运动后状态时,需要得到Δx的长度变化。
注意:假设参考点与连杆和作动器保持在一条直线上,则不需要额外的偏移量,若不在一条直线上,则需要额外的偏移量来校正。
为了计算Δx,最直观的方式是计算出R'的坐标,然后求RR'的模长即可,但实际上R'并不能直接求得,但可根据F和自由度变化直接求得F',为此需要利用R、 F、 F'三点坐标以及三点(R、 R'、 F)共线的特征来计算R',或直接计算Δx,为此将运动前后的状态合并到一起,如下图所示:
引入辅助矢量作动器初始矢量UA及其他过程量如下:
⎩⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎧∣L∣UADCBA:连杆的长度:作动器初始矢量:运动后连杆前端与初始连杆后端组成向量:运动后连杆在矢量UA上的投影(未知):运动后连杆(或向量D)在矢量UA的垂直平面上的投影:向量D在矢量UA上的投影
其中:
⎩⎪⎪⎪⎨⎪⎪⎪⎧C2=L2−B2B2=D2−A2=∣F′R∣2−A2A=F′R⋅FR
则可推断:
Δx=∣A∣−∣C∣=∣A∣−L2−B2=∣A∣−L2−(D2−A2)
完整流程如下图所示:
OffsetCoordinates 暂未使用,保持为0即可
- 各坐标的设置按照工程量
mm单位设置即可,Pulsar启动后会进行无量纲化写入到Dsp中。
ForceSignal:表示所添加的力信号,可直接计算出对应分解到各自由度下的力,当为Plus One(1)时表示力的单位矢量方向,后续通过矩阵与力信号重新处理。
- 转动方向的
Scale问题: 往往转动方向的Feedback的Scale不是1Rad,但该信号最后要传入到SignalArithmetic 计算各转动的正余弦时要求量纲为 1Rad,计算误差时矩阵用的Scale可能是1Rad,后续进行InternalConditioner的时候注意系数,比如100mRad的Scale,则Xterm=10,
为何外部计算Cos、Sin,可能是出于效率的考虑,尤其多作动器时的影响。