diff --git a/goodwe_controller/app/validate.py b/goodwe_controller/app/validate.py index dbab384..8a95794 100644 --- a/goodwe_controller/app/validate.py +++ b/goodwe_controller/app/validate.py @@ -285,8 +285,9 @@ WHAT IS DELIBERATELY *NOT* REFUSED, because it is untidy rather than unsafe: than the rule would have been. On admin/goodwe's rig, over a family of 51 export steps from 1.0 to 4.2 kW at `max_w: 5000` and a 2 s tick, the over-absorption - peak battery power beyond what the site actually needed - - is FLAT in `slew_w`: 1233 W at slew 1000 and 1344 W at slew 250. It falls - monotonically in `gain`: 1495 W at 0.6, 961 W at 0.3, ~0 W at 0.2. The + is FLAT in `slew_w`: 958 W at slew 1000 and 1081 W at slew 250. It falls + in `gain`: 987 W at 0.6, 876 W at 0.3, 435 W at 0.2 - a real reduction, but + NOT to zero, and the 0.2 figure is the one worth not rounding away. The reason is structural and is visible in control.py: `slew_w` bounds the OUTPUT, while the integrator accumulates `gain * error` per cycle and is bounded only by `integrator_max_w`. At gain 0.6 into a 3.4 kW error the