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
-
Reducing the bounding box of
ki/alpha
values. This will allow these parameters to change independently of the others in the future. -
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.
- 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.
- 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 arbitraryki
/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.