pid control configuration

Patrick Venture venture at google.com
Thu May 2 09:10:17 AEST 2019


On Wed, May 1, 2019 at 4:05 PM Ed Tanous <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.

Thanks Ed for those great answers.


I'll provide the units answer:

If the PID is a margin controller and it's set-point is in centigrade
and output in RPM:
pCoefficient is your p value in units: RPM/C and integral coefficient RPM/Csec

If the PID is a fan controller whose output is pwm:
pCoefficient is %/RPM and iCoefficient is %/RPM sec


More information about the openbmc mailing list