kamenges said:
How did you do that? I know how the evil guys from California would do it, but how did you?
5th order polynomial ramps and the chain rule. That is the easy part. Calculating smooth velocities over a time period of 1 millisecond is the key. If the master speed is bouncing around the slave target speed will to the same and so will the control output. Calculating the acceleration, the pink line, for the acceleration feed forward is something I will keep to myself.
True enough. This is a basic concern of all real master applications. As far as I know your two alternatives are to filter the master reference, which affects accuracy, or use a virtual master, which requires control of the feed axis. Is there another option in following?
Yes, get a high resolution encoder. The encoder above gives over 200,000 counts per revolution. If you read my article about resolution then you know I feel strongly about having all the resolution you can get. How can you track a master encoder that has only 1000 counts per revolution? If the roller has a circumference of 10 inches the resolution is .01 inchers per count when sampled every millisecond. The best speed resolution one can get then is 10 incher per second which will not work. The link above does not use a filter because the system must track even if it slows down or speeds up while in the process of making a cut. The virtual master trick will not work. There are other 'tricks'.
OkiePC said:
If you get too high with the FF Gain, the slave steady state velocity may oscillate
kamenges said:
The nice thing about feed forward values is they are open loop. They won't tend to induce oscillation in your system.
Keith has is right. Feed forwards do not cause oscillations.
However, if the master velocity is very coarse, because one is using only a 10000 count encoder with a 10 inch diameter roller, the master velocity will be quantized to increments of 1 inch per second. Therefore the slave target velocity will try to follow the master velocity so the slave target velocity will change in increments of one inch per second. When this quantized speed is multiplied by the feed forward gains the output will be quantized too. The output will jump up and down and look like fuzz or noise on an oscilloscope.
If the output looks as clean as the output in the link there is a good chance you can have a system that will track accuately and smoothly.
So what does this mean to widelto? Let assume the these facts:
Max speed = 1.0 m/s
encoder = 10000 counts/rev
1 rev = .25 m.
synchronizing speed = 0.5 m/s
At synchronizing speed the encoder is turning at 2 revs per second and generating 20000 counts per second. That sounds like a lot until you look at how many counts the controller sees each millisecond, 20. This means the system speed will vary by about %5 from one millisecond to the other millisecond because the encoder will generate 18,20 or 21 counts each millisecond. %5 of .5 m/s is .025 m/s of error due to quantizing.
Now for the feed forward term. The max speed of 1.0 m/s is achieve when the controller output 10 volts. This means the feed forward gain is 10 volts/(m/s).
Now when the quantized velocity of .025 m/s is multiplied by 10 v/(m/s) the output will jump around by 0.25 volts. This is from just from the velocity feed forward term. The acceleration feed forward term will be MUCH higher.
Hopefully widelto is using high resolution encoders.