Hacker News new | past | comments | ask | show | jobs | submit login

- Almost anything with right half-plane singularities. Although you can balance an inverted pendulum with PID, anything beyond that, PID falls flat on its face.

- Anything where you want high performance. Lag and lead compensation is very often needed. That's not complex to do. It's often necessary (especially in analog design). PID works, but rarely optimally.

- Complex nonlinearities. Although simple ones, PID can be quite robust to (even more so than "smarter methods").

- A lot of systems which are highly multidimensional, and especially where controls isn't cleanly separable from path planning.

It's worth noting, in lower-quality control courses (e.g. a prof who specializes in another field, teaching this course on the side), a lot of incorrect things are taught here. I'm seeing some of that represented in this (broader) discussion.

TL;DR: Be careful what you read online.




Can you give a real world example of some of these things? I'm having trouble imagining them.


humanoid robots, eg Boston dynamics. balancing is just too complex compared to a simpler 2-way 2D inverted pendulum, and PID alone just isn't going to cut it.


So with more advanced techniques, do they take into account the physics and linkages of the system in more detail then?


Let's say you're trying to control the x,y,z coordinates of a robot arm. It has three pivots. Rotating the third pivot can increase or decrease x depending on the first two.

That's a complex, multidimensional, nonlinear system (albeit with relatively simple dynamics). PID won't do it, since you don't even know which way the PID terms should go. There are approaches which mix PID with other methods, though.

A lot of analog systems too, such as some audio amplifiers, use more complex control techniques simply because they achieve higher performance. If you want low distortion, you need a lot of gain in your feedback loop. Most use rather simple controllers, but some go very fancy.

Some have complex linear dynamics. A system with a right half plane zero means that if you push right, the system goes left than right. That's very difficult to control. An example (called a boost amplifier) works like this, in analogy:

You have a bucket of water. You can either turn on a spigot to fill the bucket at a fixed rate, or one to empty it from a hole in the bottom (so at a rate proportional to how full it is). You'd like water to come out at a given rate. What is the ratio of time between filling and emptying?

- In the short term, if you empty for less time, less water comes out, because duh.

- In the long term, though, ALL the water which goes in must come out. If you empty for less time, you fill for more time, so it gets fuller, water pressure goes up, and more water comes out.

The above is actually completely analogous, mathematically, to how a USB device might take a 5V power rail and make a -12V power rail from it. You connect an inductor to 5V, charge it up with a current, and have it drive the -12V rail down.

If you're controlling more complex systems, you might have a mix of all of the above: nonlinearity AND complex dynamics.

Is your nick accurate? If so, you should already know this.


Not only that. The most important aspect is that you can have explicit constraints in the outputs, so that your system does not go outside the operating envelope it is designed for. For example you can state that I want you to stabilize my system given that my motor can only apply up to this force. And by the way do not exceed system velocity of x km/h.

We can also have objective to explicitly define how much more important to us accurate tracking vs stabilization speed.




Consider applying for YC's W25 batch! Applications are open till Nov 12.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: