前言
在推荐页的某些场景下,我们需要对不同类型的内容做分发控制,以满足产品策略确定的分发量或分发占比。PID 控制是一种自动控制领域比较常见的控制方式。本文编写 PID 控制代码,并模拟被控制系统,调研使用 PID 控制的可行性。
测试代码
|
|
方案一
执行
若将 ki,kd 固定为 0,将 kp 分别取 0.01,0.07,0.1,0.13,得到(纵轴为 test 函数输出的 values,横轴为对应的 0,1,2…(len(values) - 1),下同)
可见,根据不同的系统状态(coefficient),这些参数都能将系统调节到 set_value,但是不同的状态下,最优的 kp 是不同的
若将 ki,kd 固定为 0,将 kp 取 0.2,得到
若 kp 超出特定的范围,会出现失控的状况。在这里,当 coefficient 为 10 时,kp >= 0.2(1/10 * 2) 时会出现这种状况
方案二
执行
若将 ki,kd 固定为 0,调节 kp,可得
可见是存在稳态误差的
若将 kp 固定为 0.06,kd 固定为 0,调节 ki,可得
可见 PI 是也能达到预期的控制目的的,但如果参数超出范围,仍会出现「失控」的情况