openBMC pwm-fan control policy

Landon cld795 at 163.com
Wed Dec 15 13:39:05 AEDT 2021


Thanks ! 
On 12/7/2021 16:05,Andrei Kartashev<a.kartashev at yadro.com> wrote:
Sorry, I probably miss your question.

I still don't understand, what kind of help do you need, but I will try
to explain the idea:
PID-control daemon use concept of the PID systems, where you have
inputs (sensors) and outputs (FANs). To configure PIDs in pid-control
the zone concept is used: thermal zone can have several fans and
several sensors. 
Then you should select PID-loop type and set parameters for each sensor
and FAN. For normal temperature sensor you generally will use normal
PID-loop, were you setup PID coefficients and setpoint (target
temperature). When the value of one (or more) sensor exceed setpoint
PID-control will increase the speed of the fans in the zone trying to
keep temperatures below the setpoints.
For current sensors you probably should use stepwise mode, but I'm not
familiar here.

On Tue, 2021-12-07 at 15:37 +0800, Landon wrote:
  
  
On 12/7/2021 09:45,Landon<cld795 at 163.com> wrote:

 Hello,
Can you take a look at it, please?
 
Thanks!
On 12/2/2021 17:11,Landon<cld795 at 163.com> wrote:
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/20211215/1f4c4d1c/attachment-0001.htm>


More information about the openbmc mailing list