Feedback

Feedback is use to modify an input variable so that some computed variable equilibrates to a given value. As an example of use, many plasma devices are stable with only a constant current source, but the input parameter is the voltage. In this case, the voltage is varied to get the current to be a certain value.

For the general case we have the following quantities

  • H is the history that we want to get to a value by feedback.
  • D is the value that we want it to get to.
  • P is the parameter that we can change, such that increasing P causes H to increase in the region of stable operation.
  1. S1 = H (unaryScalarOpUpdater with historySTFunc, message)
  2. S2 = (1-a)*S2 + a*S1 = averaged history (scalarBinOpUpdater, add, no message)
  3. F = F + b*(D - S2) = feedback (userFuncScalarUpdater, no message)
  4. V = min(Vmax, max(Vmin, c*F)) = new value of feedback variable (userFuncScalarUpdater, no message)
  5. Set boundary condition = scalarFieldBinOpUpdater, add, aCoeff=1, bCoeff=0