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.
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)