On Sun, Sep 27, 2020 at 6:27 AM 周 远清 wrote: > Hi everyone, > > For the parameters of the following table, does the PID code of > openbmc have a clearer transfer function corresponding to this table? By > adjusting the following parameters, fancontrol has taken effect. I set 5000 > rpm, but the fan will change back and forth between 4500-5500. The change > in this range is still relatively large. If there is a transfer function, > the adjustment will be more accurate and faster. > > > https://github.com/openbmc/phosphor-pid-control/blob/master/configure.md > > openbmc/phosphor-pid-control > > OpenBMC PID-based Thermal Control Daemon. Contribute to > openbmc/phosphor-pid-control development by creating an account on GitHub. > github.com > > field type meaning > samplePeriod double How frequently the value is sampled. 0.1 for fans, > 1.0 for temperatures. > proportionalCoeff double The proportional coefficient. > integralCoeff double The integral coefficient. > feedFwdOffsetCoeff double The feed forward offset coefficient. > feedFwdGainCoeff double The feed forward gain coefficient. > integralLimit_min double The integral minimum clamp value. > integralLimit_max double The integral maximum clamp value. > outLim_min double The output minimum clamp value. > outLim_max double The output maximum clamp value. > slewNeg double Negative slew value to dampen output. > slewPos double Positive slew value to accelerate output. > +Josh Lehan for input. > > > ------------------------------ > *发件人:* 周 远清 > *发送时间:* 2020年9月27日 11:17 > *收件人:* openbmc > *抄送:* uperic@163.com > *主题:* about pid speed control > > Hi everyone, > > I added the phophor-pid-control module to my project. After the PID > module was started, the pwm value oscillated between 12 and 153. I deleted > other configurations and only kept one fan and one temp. I have debugged > various PID parameter values of fan, and there is no obvious change in the > phenomenon. Please take a look at it, thank you. > > The configuration is as follows: > > 4611 root 7616 S /usr/bin/swampd -t -l /tmp/ > > root@starlake-sn:~# cat /etc/thermal.d/setpoint > 3000 > > config.json as follow: > { > "sensors" : [ > { > "name": "Fan0_Speed", > "type": "fan", > "readPath": > "/xyz/openbmc_project/sensors/fan_tach/Fan0_Speed", > "writePath": > "/xyz/openbmc_project/sensors/fan_tach/Fan0_Speed", > "min": 0, > "max": 255, > "timeout": 0 > }, > { > "name": "inlet_Temp", > "type": "temp", > "readPath": > "/xyz/openbmc_project/sensors/temperature/inlet_Temp", > "writePath": "", > "min": 0, > "max": 0, > "ignoreDbusMinMax": true, > "timeout": 0 > } > ], > "zones" : [ > { > "id": 1, > "minThermalOutput": 3000.0, > "failsafePercent": 75.0, > "pids": [ > { > "name": "Fan0_Speed", > "type": "fan", > "inputs": ["Fan0_Speed"], > "setpoint": 50.0, > "pid": { > "samplePeriod": 0.1, > "proportionalCoeff": 20.0, > "integralCoeff": 0.1, > "feedFwdOffsetCoeff": 0.0, > "feedFwdGainCoeff": 1.0, > "integralLimit_min": 0.0, > "integralLimit_max": 5.0, > "outLim_min": 5.0, > "outLim_max": 60.0, > "slewNeg": 0.0, > "slewPos": 0.0 > } > }, > { > "name": "inlet_Temp", > "type": "temp", > "inputs": ["inlet_Temp"], > "setpoint": 50.0, > "pid": { amplePeriod": 0.1, > "samplePeriod": 1.0, > "proportionalCoeff": -0.1, > "integralCoeff": 1.0, 36;34Hin": 5.0, > "feedFwdOffsetCoeff": 0.0, > "feedFwdGainCoeff": 0.0, > "integralLimit_min": 0.0, > "integralLimit_max": 0.0, > "outLim_min": 3000.0, > "outLim_max": 16000.0, > "slewNeg": 0.0, > "slewPos": 0.0, > "positiveHysteresis": 1.0, > "negativeHysteresis": 1.0 > } > } > ] > } > ] > } >