cancel
Showing results for 
Search instead for 
Did you mean: 

Sync Motion - following extrapolated actual position

Sync Motion - following extrapolated actual position

bschmidt
New Contributor

Hello,

With the Motion app 2.04.3 and GearInPos function the slave can follow the actual position of the master axis:

bschmidt_0-1704387227310.png

This is working ok, but there is a lag between master and slave:

bschmidt_1-1704387272192.png

So then I tried SYNC_ACTUAL_EXTRAPOLATED. This requres Extrapolation to be enabled in the master axis.

bschmidt_2-1704387407317.png

Since the slave axis was lagging by 12ms I tried 0.012s for Extrapolation Time. But with any value of Extrapolation Time, even 0s, I see weird results. The slave is moving around even when the master is at standstill. It appears that the normal dither of the position feedback is being greatly amplified and causing erratic motion on the slave.

bschmidt_0-1704407532530.png

Is the Extrapolation feature supposed to be working correctly in this version? If so, what are some hints on proper usage?

Best regards,

Brian

4 REPLIES 4

CodeWasi
Occasional Contributor

Hello bschmidt,
I forward the your request to RuD. Guess they need to answer.
Watch out for private note.

Bye

CodeShepherd
Community Moderator
Community Moderator

This is a known issue and already addressed to our R&D. Stay tuned for further information.

Thank you

bschmidt
New Contributor

Update after further testing: In the case of Encoder Axis, if we use the built-in filter of the Measuring Encoder, not only is the signal smoothed out before it gets to the Encoder Axis, but also the Extrapolation in ctrlX is working much better since there is minimal noise to amplify. With the Extrapolation box checked for the Encoder Axis and the slave geared to it with SYNC_ACTUAL_EXTRAPOLATED I see that the lag that was present with SYNC_ACTUAL is corrected for. I have 0 for Extrapolation Time, so I guess the correct default extrapolation time/cycles is automatically calculated. The built-in filter of the Measuring Encoder has its own compensation for the filter delay, so there is no velocity-dependent phase shift induced by the filter. The filter can induce lag and overshoot during accel/decel, so it works best with low acc/dec and jerk limiting of the master encoder (which in real application we don’t necessarily have control over ).

bschmidt_0-1705099219854.png

bschmidt_1-1705099219857.png

Red (Encoder Axis) and Blue (real axis who is following) stay in phase:

bschmidt_2-1705099219870.png

 

Icon--AD-black-48x48Icon--address-consumer-data-black-48x48Icon--appointment-black-48x48Icon--back-left-black-48x48Icon--calendar-black-48x48Icon--center-alignedIcon--Checkbox-checkIcon--clock-black-48x48Icon--close-black-48x48Icon--compare-black-48x48Icon--confirmation-black-48x48Icon--dealer-details-black-48x48Icon--delete-black-48x48Icon--delivery-black-48x48Icon--down-black-48x48Icon--download-black-48x48Ic-OverlayAlertIcon--externallink-black-48x48Icon-Filledforward-right_adjustedIcon--grid-view-black-48x48IC_gd_Check-Circle170821_Icons_Community170823_Bosch_Icons170823_Bosch_Icons170821_Icons_CommunityIC-logout170821_Icons_Community170825_Bosch_Icons170821_Icons_CommunityIC-shopping-cart2170821_Icons_CommunityIC-upIC_UserIcon--imageIcon--info-i-black-48x48Icon--left-alignedIcon--Less-minimize-black-48x48Icon-FilledIcon--List-Check-grennIcon--List-Check-blackIcon--List-Cross-blackIcon--list-view-mobile-black-48x48Icon--list-view-black-48x48Icon--More-Maximize-black-48x48Icon--my-product-black-48x48Icon--newsletter-black-48x48Icon--payment-black-48x48Icon--print-black-48x48Icon--promotion-black-48x48Icon--registration-black-48x48Icon--Reset-black-48x48Icon--right-alignedshare-circle1Icon--share-black-48x48Icon--shopping-bag-black-48x48Icon-shopping-cartIcon--start-play-black-48x48Icon--store-locator-black-48x48Ic-OverlayAlertIcon--summary-black-48x48tumblrIcon-FilledvineIc-OverlayAlertwhishlist