Modulating velocity in a rotary axis

I have a rotary axis that I need to rotate at say a closed looped 10 rpm. I need to modulate the velocity so that my vel max occurs at 0 and 180 degrees and vel min occurs at 90 and 270 degrees. The amplitude of the modulation is a variable ratio from 1/1 (no modulation), to 200/1 (max modulation) of max/min velocity Delta while keeping the average 10 rpm shaft speed. The accel/decell ramps would be nice to control But I can use sinusoidal just fine.

Can this be done with the sin move and the proper offset and amplitude or do I need to do some real trig on the actual_pos output and modulate the rate with the product.



Did you figure this out? I notice nobody replied yet. I don’t know that the sine command will work, being you want to do it for velocity, and the sine works on position. You could run the sine on a virtual reference axis, then have your control axis gear via velocity to the virtual reference. If you do that, modulating the sine with offset and amplitude should do it.

Hi Jacob,

I did revisit this and thought of a pretty simple method of using the angle status and the mod parameter for frequency. If I start the sin function then modulate the frequency parameter via a cosine function of the angle status times my range of modulation I can keep my peak velocity at say 0 and 180 degrees and slow it down to my desired range at 90 and 270 degrees.

I have not tried this yet but it looks sound. Thoughts?

I solved the problem using radians and revolutions. I like the revolution solution better.
I would use the equation for angular position using revolutions to make a curve that wraps from 1 revolution back to 0 so the angular position is always 0<=angular position<1.
I would use a virtual axis to index into the curve. I would use the move velocity command to change the speed between 0 and 1.66666 revolutions per second. The virtual master ramping up and down will make sure the rotating accelerates smoothly no matter what angle the rotation starts at.
Mathcad - Forum Chuck.pdf (151 KB)