In a basic PID controller, you measure the process value y (such as temperature) directly; then the error e is equal to the difference between the process value and the set point r. The error feeds a PID controller C which in turn outputs a control signal u to an effector, in this case maybe a heating element, controlling the process P.


But what about a peak-finding system such as an antenna tuner? Here, it's still closed-loop but there is no defined "set point", and rather than being able to measure the process value directly, we can only measure some non-directional figure of merit such as signal strength. We simply try to adjust for peak carrier strength, where the effector could be a tuning capacitor. The error could be set as

$$ e = - \frac {\Delta y} {\Delta u} $$

That is to say, for some positive perturbation in the effector, if it improves the signal strength, then decrease the error.

Is there such a control system already? If so what's its name so that I can do further reading?

  • \$\begingroup\$ FM? AM? Suppressed carrier? SSB? \$\endgroup\$ – Andy aka May 22 '18 at 13:53
  • \$\begingroup\$ AM SSB with full carrier \$\endgroup\$ – Reinderien May 22 '18 at 14:02
  • \$\begingroup\$ Tricky I believe! \$\endgroup\$ – Andy aka May 22 '18 at 14:04
  • \$\begingroup\$ Such automatic antenna tuners are common in wireless comms (ham radio, e.g.). Some use pi networks with 3 variables (2xC + 1xL) and an algorithm to minimise VSWR. A single variable would be a much easier task. \$\endgroup\$ – Chu May 22 '18 at 15:57

You're trying to think of this as a "reference tracking control problem". The situation you describe is still related to control systems, but it attempts to solve a different problem: an optimization problem.

If you wish to locate a "peak strength", this means you wish to solve the problem of finding a local maximum. The same mathematical approaches used to numeric optimization problems can be applied. The most intuitive one is the gradient descent method. I will attempt to describe how to find a local maximum in generic terms, so that you see how it is applicable to your problem.

  1. For the currrent state of the system, determine the direction of greatest increase (the direction of the gradient vector).

  2. Take your system to a new state along such direction, in a step that is proportional to the magnitude of the increase.

  3. Iterate until the increase in any direction is lower in magnitude than a given tolerance (the derivatives at the point are arbitrarily close to zero, optimization point found).

Another way to put it is, as you've described in your question, the error signal is a derivative. Well, to solve an optimization problem essentially means to find a point with derivatives close to zero.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.