about pid speed control

Patrick Venture venture at google.com
Thu Nov 12 02:15:30 AEDT 2020


On Sun, Sep 27, 2020 at 6:27 AM 周 远清 <zhouyuanqing8 at outlook.com> 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
> <https://github.com/openbmc/phosphor-pid-control/blob/master/configure.md>
> openbmc/phosphor-pid-control
> <https://github.com/openbmc/phosphor-pid-control/blob/master/configure.md>
> 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 <krellan at google.com> for input.

>
>
> ------------------------------
> *发件人:* 周 远清 <zhouyuanqing8 at outlook.com>
> *发送时间:* 2020年9月27日 11:17
> *收件人:* openbmc <openbmc at lists.ozlabs.org>
> *抄送:* uperic at 163.com <uperic at 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 at 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
>                     }
>            }
>             ]
>         }
>     ]
> }
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.ozlabs.org/pipermail/openbmc/attachments/20201111/0b63a4b7/attachment-0001.htm>


More information about the openbmc mailing list