回复: about pid speed control

周 远清 zhouyuanqing8 at outlook.com
Sun Sep 27 23:26:43 AEST 2020


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://avatars3.githubusercontent.com/u/13670043?s=400&v=4]<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.



________________________________
发件人: 周 远清 <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/20200927/790f40e1/attachment-0001.htm>


More information about the openbmc mailing list