From bfaae6860eea31802cebabb3fed866d8217c7fa8 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Tue, 11 Feb 2020 16:28:45 +0100 Subject: [PATCH] fix controller --- doc/src/Eqs/fix_controller1.jpg | Bin 4832 -> 0 bytes doc/src/Eqs/fix_controller1.tex | 12 -------- doc/src/Eqs/fix_controller2.jpg | Bin 5571 -> 0 bytes doc/src/Eqs/fix_controller2.tex | 12 -------- doc/src/fix_controller.rst | 48 ++++++++++++++++++-------------- 5 files changed, 27 insertions(+), 45 deletions(-) delete mode 100644 doc/src/Eqs/fix_controller1.jpg delete mode 100644 doc/src/Eqs/fix_controller1.tex delete mode 100644 doc/src/Eqs/fix_controller2.jpg delete mode 100644 doc/src/Eqs/fix_controller2.tex diff --git a/doc/src/Eqs/fix_controller1.jpg b/doc/src/Eqs/fix_controller1.jpg deleted file mode 100644 index 25f381543fda256370cc881e6b57e3b2fd38063b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4832 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 diff --git a/doc/src/Eqs/fix_controller1.tex b/doc/src/Eqs/fix_controller1.tex deleted file mode 100644 index 14f98fc303..0000000000 --- a/doc/src/Eqs/fix_controller1.tex +++ /dev/null @@ -1,12 +0,0 @@ -\documentclass[24pt]{article} - -\pagestyle{empty} -\Huge - -\begin{document} - -\begin{eqnarray*} -\frac{dc}{dt} &=&Ê -\alpha (K_p e + K_i \int_0^t e \, dt + K_d \frac{de}{dt} ) \\ -\end{eqnarray*} - -\end{document} diff --git a/doc/src/Eqs/fix_controller2.jpg b/doc/src/Eqs/fix_controller2.jpg deleted file mode 100644 index 178fd5a67eb618a0929d9b1d52be195221071797..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5571 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 Zg=4~8gntHTXq+1-|1;` is changed, it should only be necessary to change -the value of *alpha* to reflect this, while leaving *Kp*\ , *Ki*\ , and -*Kd* unaltered. +the value of :math:`\alpha` to reflect this, while leaving :math:`K_p`, +:math:`K_i`, and :math:`K_d` unaltered. When choosing the values of the four constants, it is best to first -pick a value and sign for *alpha* that is consistent with the -magnitudes and signs of *pvar* and *cvar*\ . The magnitude of *Kp* -should then be tested over a large positive range keeping *Ki* = *Kd* =0. -A good value for *Kp* will produce a fast response in *pvar*\ , without -overshooting the *setpoint*\ . For many applications, proportional -feedback is sufficient, and so *Ki* = *Kd* =0 can be used. In cases where -there is a substantial lag time in the response of *pvar* to a change -in *cvar*\ , this can be counteracted by increasing *Kd*\ . In situations +pick a value and sign for :math:`\alpha` that is consistent with the +magnitudes and signs of *pvar* and *cvar*\ . The magnitude of :math:`K_p` +should then be tested over a large positive range keeping :math:`K_i = K_d =0`. +A good value for :math:`K_p` will produce a fast response in *pvar*\ , +without overshooting the *setpoint*\ . For many applications, proportional +feedback is sufficient, and so :math:`K_i` = K_d =0` can be used. In cases +where there is a substantial lag time in the response of *pvar* to a change +in *cvar*\ , this can be counteracted by increasing :math:`K_d`. In situations where *pvar* plateaus without reaching *setpoint*\ , this can be -counteracted by increasing *Ki*\ . In the language of Charles Dickens, -*Kp* represents the error of the present, *Ki* the error of the past, -and *Kd* the error yet to come. +counteracted by increasing :math:`K_i`. In the language of Charles Dickens, +:math:`K_p` represents the error of the present, :math:`K_i` the error of +the past, and :math:`K_d` the error yet to come. Because this fix updates *cvar*\ , but does not initialize its value, the initial value is that assigned by the user in the input script via @@ -141,7 +147,7 @@ the :doc:`internal-style variable ` command. This value is used (by the other LAMMPS command that used the variable) until this fix performs its first update of *cvar* after *Nevery* timesteps. On the first update, the value of the derivative term is set to zero, -because the value of *e\_n-1* is not yet defined. +because the value of :math:`e_n-1` is not yet defined. ----------