pid control configuration

Vijay Khemka vijaykhemka at fb.com
Fri May 3 09:24:27 AEST 2019


Hi Ed,
Thanks for detailed definition of each parameter, it really helps. I have a follow up question from R100 Chassis.json in entity manager where "fan" class is also defined as pid controller. I don't think we have any pid data for fans, we only have pid data for temperature sensors. My understanding here is pid data are only defined for temp sensors which will generate pwm values for fan. I might be missing something here, please clarify.

Regards
-Vijay

On 5/1/19, 4:06 PM, "openbmc on behalf of Ed Tanous" <openbmc-bounces+vijaykhemka=fb.com at lists.ozlabs.org on behalf of ed.tanous at intel.com> wrote:

    On 5/1/19 3:53 PM, Vijay Khemka wrote:
    > Hi Patrick/James,
    > 
    > I am not understanding how to get these following data for configuration
    > file for pid. I only had p(proportional), i(integral) and
    > d(differential) values from my thermal team. But unable to maop these to
    > required parameter.
    > 
    >  
    > 
    >     "required": [
    > 
    >         "Class",
    This will be PIDController in the case of PID, and is part of how entity
    manager divides up the config information to the various components.
    > 
    >         "FFGainCoefficient",
    > 
    >         "FFOffCoefficient",
    In your case, both of these FF variables would be 0.0
    > 
    >         "ICoefficient",
    Would be the I value from your thermal team.
    
    > 
    >         "ILimitMax",
    > 
    >         "ILimitMin",
    
    These sets the limits to the integral coefficient to prevent integral
    runaway in the case where the controller cannot ever reach the target
    temperature.  If you don't want to use these at all (which I wouldn't
    recommend from a control perspective) you can set them to unreasonably
    large and unreasonably small values, and they will have no effect.
    
    > 
    >         "Inputs",
    
    The sensors you want to control, by name.
    
    > 
    >         "Name",
    This is the "pretty" name for this controller, and can be whatever you
    want.  The controller will show up in DBus and Redfish under this name.
    
    > 
    >         "OutLimitMax",
    > 
    >         "OutLimitMin",
    > 
    
    I believe both of these are in % of fan speed these days, so setting
    them to 100 and 0% respectively will probably give you the behavior you
    want if you don't have other data from your thermal team around limits.
    
    >         "PCoefficient",
    Your P value from your thermal team.
    
    > 
    >         "SlewNeg",
    > 
    >         "SlewPos",
    
    These two reflect the D values from your thermal team.  If they only
    gave you one D value, there are two things here.  1. It could use the
    same coefficients for both positive and negative derivative values.  Or
    2. It only applies to Positive slew rates, and negative is zero.  You
    would need to talk to your team to understand what they intended.
    
    > 
    >         "Type",
    The Entity manager type, which I believe it PIDController, but I don't
    have the examples in front of me.
    
    > 
    >         "Zones"
    Fan zones in which this controller applies to.  For Tioga pass I would
    expect you to only have a single fan zone for the whole node.
    
    > 
    >     ]
    > 
    >  
    > 
    >  
    > 
    > Also we have a requirement of stepwise and pid together for some
    > sensors, is it possible to configure same sensor for both types.Yes, you can declare multiple controllers.  Whichever controller
    requests the high fan speed will be the one that's used for the PWM output.
    



More information about the openbmc mailing list