### RM_AxisSpline –  Commanded values interpolation

Block SymbolLicensing group: MOTION CONTROL Function Description

There are lot of motion control blocks which implement complicated algorithms so they require bigger sampling period (typical update rate is from 10 to 200ms). On the other side, the motor driver usually requires small sampling period for smooth/waveless movement. The RM_AxisSpline block solves this problem of multirate execution of motion planning and motion control levels. The block can run in different task than other motion control blocks with highest sampling period possible. It interpolates commanded position, velocity and torque and generates smooth curve which is more suited for motor driver controllers.

There are two possibilites of connection to RM_Axis block: connect all necessary values (outputs of the block RM_AxisOut) as input of interpolating block or use only axis reference and read the state directly. This block uses axis reference. For correct synchronization between two tasks, the block RM_Axis must be executed first followed by all axis related motion control blocks and finally by block RM_AxisOut at the end.

Note 1:For interpolation of position signal, 3rd order polynomial $p\left(t\right)$ is used, where ${p}_{s}\left(0\right)=pos0,{p}_{s}\left({t}_{S}\right)=pos1,{\frac{d{p}_{s}\left(t\right)}{dt}}_{t=0}=vel0,{\frac{d{p}_{s}\left(t\right)}{dt}}_{t={t}_{S}}=vel1$. To interpolate velocity, also an 3rd order polynomial ${p}_{v}\left(t\right)$ is used, where ${p}_{v}\left(0\right)=vel0,{p}_{v}\left({t}_{S}\right)=vel1,{\frac{d{p}_{v}\left(t\right)}{dt}}_{t=0}=acc0,{\frac{d{p}_{v}\left(t\right)}{dt}}_{t={t}_{S}}=acc1$. Torque is interpolated by linear function.

Note 2:Because the time of execution of motion blocks is varying in time, the block uses one or two step prediction for interpolation depending on actual conditions and timing of the motion blocks in slower tasks. The use of predicted values is signalized by states RUN0, RUN1, RUN2.

Note 3: Control system REXYGEN orders the blocks primarily by flow of signal, secondarily by name of block (ascendent in alphabetical order), so name like "zzz" is good choice for the block RM_AxisOut. For checking the order, you can use REXYGEN Diagnostics tool where the blocks are sorted by execution order.

2020 © REX Controls s.r.o., www.rexygen.com