openBMC pwm-fan control policy

Landon cld795 at 163.com
Thu Dec 2 20:11:49 AEDT 2021


Hello,


I read the  "https://github.com/openbmc/phosphor-pid-control/blob/master/configure.md":


How to Configure Phosphor-pid-control
type == "temp"

Exactly the same as margin but all the inputs are supposed to be absolute temperatures and so the maximal value is used to feed the PID loop.

type == "stepwise"
"name": "temp1",
"type": "stepwise",
"inputs": ["temp1"],
"setpoint": 30.0,
"pid": {
  "samplePeriod": 0.1,
  "positiveHysteresis": 1.0,
  "negativeHysteresis": 1.0,
  "isCeiling": false,
  "reading": {
    "0": 45,
    "1": 46,
    "2": 47,
  },
  "output": {
    "0": 5000,
    "1": 2400,
    "2": 2600,
  }
}
and  in  "https://github.com/openbmc/entity-manager/blob/master/configurations/R1000%20Chassis.json"
| { |
|
| | "Class": "temp", |
| | "FFGainCoefficient": 0.0, |
| | "FFOffCoefficient": 0.0, |
| | "ICoefficient": -4.64, |
| | "ILimitMax": 100, |
| | "ILimitMin": 30, |
| | "Inputs": [ |
| | "Exit Air Temp" |
| | ], |
| | "Name": "Exit Air Temp", |
| | "NegativeHysteresis": 5.0, |
| | "OutLimitMax": 100, |
| | "OutLimitMin": 30, |
| | "Outputs": [], |
| | "PCoefficient": -0.15, |
| | "PositiveHysteresis": 0.0, |
| | "SetPoint": 75.0, |
| | "SlewNeg": -1, |
| | "SlewPos": 0.0, |
| | "Type": "Pid", |
| | "Zones": [ |
| | "Zone 1", |
| | "Zone 2", |
| | "Zone 3", |
| | "Zone 4", |
| | "Zone 5", |
| | "Zone 6" |
| | ] |
| | }, |
but  I don't understand how to control the fan by temperature ?
I was wondering if you could help me explain ?
Thank you very much !
On 11/29/2021 18:22,Andrei Kartashev<a.kartashev at yadro.com> wrote:
Hello,

Please read phosphor-pid-control documentation:
https://github.com/openbmc/phosphor-pid-control
https://github.com/openbmc/phosphor-pid-control/blob/master/configure.md
https://github.com/openbmc/phosphor-pid-control/blob/master/tuning.md
https://github.com/openbmc/phosphor-pid-control/tree/master/examples

Keep in mind that there are two different ways to configure phosphor-
pid-control: statically with JSON config files and dynamically with
DBUS (generally, using EntityManager JSON configuration) and same
parameters with this two ways mostly have different names.
The way you want to use is generally depend on either you use EM for
your platform or not.

On Mon, 2021-11-29 at 17:43 +0800, Landon wrote:
 Thank you! 
I have read it
:  https://github.com/openbmc/entity-manager/blob/master/configurations/R1000%20Chassis.json
But I don't understand,
Is there an explanation for this part?
Are there general instructions on how to control fan output by
temperature?

and how to use phosphor-pid-control  to set this ?
 
Is there“ phosphor-pid-control ”the instructions for this part?
Thank you very much !
On 11/27/2021 05:57,Paul Fertser<fercerpav at gmail.com> wrote:
On Fri, Nov 26, 2021 at 01:55:31PM +0800, Landon wrote:
 
add: I just want to know in  OpenBMC by reading different
temperature values  or
 current values to  control the fan  output, so as  to cool down,
 how does  this
 strategy work? An example of this.

This is using temperature values to control the fans so as to cool
down, it works by configuring phosphor-pid-control appropriately, I
hope it's enough of an example:

https://github.com/openbmc/entity-
manager/blob/master/configurations/R1000%20Chassis.json

If you think phosphor-pid-control is missing some documentation
please
read its source code and send documentation patches for review.


--
Best regards,
Andrei Kartashev

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.ozlabs.org/pipermail/openbmc/attachments/20211202/0e2f0369/attachment-0001.htm>


More information about the openbmc mailing list