Сначала мне представлялось, что все довольно просто хотя бы в SW Motion. К примеру, есть у нас два вала, которые должны соединяться этой виртуальной обгонной муфтой. На один вал задаем двигатель, котрый может крутить вал в одну/другую сторону по рандомно сгенеренному файлу. На другой вал тоже задаем двигатель, который уравнением связан с движением первого вала. Пусть ось Z совпадает с направлением осей валов, Angular VelocityZ1 - угловая скорость первого вала. Если уравнение такое:
if({Angular VelocityZ1}:0,0,{Angular VelocityZ1})
то есть, когда
угловая скорость первого вала <