Controller Parameter Bounds

RAI Controller Parameter Bounds

In preparation for ungovernance, bounds on the parameters for the RAI controller need to be set. This is to ensure that no errant parameters can be set in the future which will de-stabilize the system.

Suggested controller parameter bounds for the first phase of ungovernance.

Parameter Lower Bound Lower Bound Notes Upper Bound Upper Bound Notes
Kp 1e-8 -5% annual rate at -$0.15 deviation 4e-7 -85% annual rate at -$0.15 deviation
Ki 0 disables historical error 1e-13 -85% after 60d of $0.15 deviation w/ 1 year leak
alpha 0.99999884423976 30d leak 1 disables leak

As we just enabled ki and alpha, the above bounds allow us to completely disable ki, going back to a P-only controller. The above bounds also allow completely disabling the leak created by alpha.

The kp bounds are suggested given our understanding and observation of the system over the past year.

These bounds allow some flexibility of action in the next 5 months(before the final ungovernance phase), while providing some safety from errant parameters.

Controller parameter bounds for the final phase of ungovernance.

While kp has been running on mainnet for over a year and its affect is straightforward, the ki and alpha values were only recently enabled and are still being observed. Further, the parameterski and alpha are inter-dependent; when changing one, the other will most likely ned to be changed. (visualized below)

After a few months of running with the new error integral, the team and community will have more information to base a further reduction in bounds. In July 2022, a re-assessment of the system will be done to determine a further reduction in parameters bounds.

At that point, we can proceed by either

  1. Reducing the bounding box of ki/alpha values. This will allow these parameters to change independently of the others in the future.

  2. Creating a function in the parameter setting contract that tests if a set of parameters meets a condition.

Why might 2. be necessary?

ki and alpha do not act independently when calculating the integral rate. To understand their relationship, here is the intergral rate after a constant deviation using different values of ki and alpha

Let -80% be the strongest system rate we are willing to accept for the given, above prolonged deviation. We can see a ki value of 4.7e-14 might initially be an acceptable paramater with an alpha days value of 171. But if we later increase alpha days to 500, then the system has become stronger than intended(unstable).

Two possible outcomes of our current integral trial on mainnet by Jul 2022.

  1. We can narrow down ki/alpha selection to a bounding box that fits within our chosen max rate bound. Thus, the parameter bounds can safely be enforced independently. This is visualized below.

  1. We can’t narrow down ki/alpha selection to a bounding box that fits within our chosen max rate bound. Then a small function in the bound setting contract can be created to impose an additional limit on an arbitrary ki/alpha selection.

Whether we choose 1) or 2) will depend on our observation of mainnet with ki/alpha turned on and any additional intuition gained. WiIll keep this thread updated as that happens.