Hacker News new | ask | show | jobs
by stevendhansen 3667 days ago
PID control is rarely used for professional servo applications, with the exception being amateur and lower performance systems (radio controlled, etc). This is especially true with PM servo motors because these machines are inherently nonlinear and cross-coupled. PID doesn't deal with either of these issues (nonlinearity or cross coupling) and therefore offers extremely limited performance.

The industry standard update rate for servo systems is ~1kHz (although it depends on the application), and I have seen systems with >5kHz torque bandwidths. The torque dynamics associated with a typical PM machine used for servo systems are easily in the 10's or 100's of microseconds, so 60Hz control would not cut it.

1 comments

Again, yes, but to clarify, the 60+ Hz I was referring to was not the servo loop update rate, but the rate at which (loosely speaking) the servo loop setpoint is updated. (1)

For example, KUKA robot arms can operate in a mode where a motion path is planned and a sensor on a tool tip can make slight adjustments to the motion path on the fly. The points on those motion paths (as well as corrections) are updated every 4 or 12ms (83.3 to 250 Hz).

My point is that servo motor drives do indeed implement (sophisticated) PID controllers for current, position, velocity control loops. (2)

Obligatory Defensive Writing:

(1) Typical industrial servo motors implement sophisticated control over the velocity and acceleration profiles of the point to point moves. Anyone interested can look up the DS402 standard and take a look at the motion profile modes of operation.

(2) The PID loops implemented in servo drives are way more sophisticated than the canonical PID control loop equation (https://en.wikipedia.org/wiki/PID_controller). Nonetheless anyone who finds themselves manually tuning the servo loops for an industrial servo motor will surely find themselves setting proportional and integral gains.

Source: Commissioning servo motor drives is a part of my job.

Just because controllers have proportional and integral terms does not mean they are PID controllers!

I'm not just being pedantic here, there is a world of difference between a modern servo controller and a simple (or advanced) PID controller. Good servo controllers include completely different topologies including state feedback decoupling, disturbance decoupling, state tracking feedforward terms, advanced notch filters, sliding mode gains, and many other techniques. This is not just an advanced PID loop, but a different controller design method altogether.

Source: I design servo (and other motor) controllers for a living