On Mon, 18 Feb 2008, Klemen Dovrtel wrote:
> 
> I am looking at hal pid component in hal documentation
> and i don't understand how pid component for servo
> motors driving actually works. There is only "command"
> input to hal pid component (beside the "feedback"
> input). How is then the constant motor speed (or
> acceleration or synchronization with others motors)
> achieved. If you input the desired location ("command"
> input) to pid component the motor speed and
> acceleration will be set according to set pid
> parameters and will not be constant. Is desired path
> cut to small portions and fed to pid input in suitable
> time steps - if so, how is smooth movement of motor
> achieved in this case?
>
> Regards
> Klemen

PID is only useful for controlling one physical quantity, such as a single 
motor's position. Although there is a single 'module' containing all of 
the different PID channels, they are completely separate from a control 
standpoint. Each servo cycle (defined by the length of the servo thread 
period) each PID controller reads the commanded value and feedback value, 
and updates its output based on the gain constants.

You can think of P as a spring attached to the desired location, I is like 
a regulated gas cylinder with a restricted orifice, and D is somewhat like 
a damper. Together these components can produce fast movement to the 
desired point without oscillation. On top of this layer of control, the 
motion module tells PID to move in a cubic curve (position vs time) so 
that the discrete commanded movement is close to what is physically 
realizable. In conjunction with the kinematics module, the motion module 
also handles synchronized movement.

Typical values for a servo cycle are around 0.1-1 milliseconds, so the 
amount of divergence in a cycle between the curved path created by a set 
of joints in a non-trivial kinematic configuration and the ideal straight 
line will be small, and will be corrected for in the next cycle. This is 
like approximating a curve with small line segments, but in reverse.

-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2008.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
Emc-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/emc-users

Reply via email to