All of lore.kernel.org
 help / color / mirror / Atom feed
* pid control configuration
@ 2019-05-01 22:53 Vijay Khemka
  2019-05-01 23:05 ` Ed Tanous
  0 siblings, 1 reply; 17+ messages in thread
From: Vijay Khemka @ 2019-05-01 22:53 UTC (permalink / raw)
  To: Patrick Venture, James Feist; +Cc: openbmc @ lists . ozlabs . org

[-- Attachment #1: Type: text/plain, Size: 789 bytes --]

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",

        "FFGainCoefficient",

        "FFOffCoefficient",

        "ICoefficient",

        "ILimitMax",

        "ILimitMin",

        "Inputs",

        "Name",

        "OutLimitMax",

        "OutLimitMin",

        "PCoefficient",

        "SlewNeg",

        "SlewPos",

        "Type",

        "Zones"

    ]


Also we have a requirement of stepwise and pid together for some sensors, is it possible to configure same sensor for both types.

Regards
-Vijay

[-- Attachment #2: Type: text/html, Size: 5221 bytes --]

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: pid control configuration
  2019-05-01 22:53 pid control configuration Vijay Khemka
@ 2019-05-01 23:05 ` Ed Tanous
  2019-05-01 23:10   ` Patrick Venture
  2019-05-02 23:24   ` Vijay Khemka
  0 siblings, 2 replies; 17+ messages in thread
From: Ed Tanous @ 2019-05-01 23:05 UTC (permalink / raw)
  To: openbmc

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.

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: pid control configuration
  2019-05-01 23:05 ` Ed Tanous
@ 2019-05-01 23:10   ` Patrick Venture
  2019-05-01 23:15     ` Patrick Venture
  2019-05-02 23:24   ` Vijay Khemka
  1 sibling, 1 reply; 17+ messages in thread
From: Patrick Venture @ 2019-05-01 23:10 UTC (permalink / raw)
  To: Ed Tanous; +Cc: OpenBMC Maillist

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

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: pid control configuration
  2019-05-01 23:10   ` Patrick Venture
@ 2019-05-01 23:15     ` Patrick Venture
  0 siblings, 0 replies; 17+ messages in thread
From: Patrick Venture @ 2019-05-01 23:15 UTC (permalink / raw)
  To: Ed Tanous; +Cc: OpenBMC Maillist

On Wed, May 1, 2019 at 4:10 PM Patrick Venture <venture@google.com> wrote:
>
> On Wed, May 1, 2019 at 4:05 PM Ed Tanous <ed.tanous@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

The non-step PID operates at a 10x frequency fans : sensors.  so it
tries to control the fans 10x per second, and checks the status of the
thermal sensors involved once every second.  that's hard-coded
presently in the behavior of the code.  I think the step-wise operates
similarly but I would have to check.

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: pid control configuration
  2019-05-01 23:05 ` Ed Tanous
  2019-05-01 23:10   ` Patrick Venture
@ 2019-05-02 23:24   ` Vijay Khemka
  2019-05-06 16:20     ` Ed Tanous
  1 sibling, 1 reply; 17+ messages in thread
From: Vijay Khemka @ 2019-05-02 23:24 UTC (permalink / raw)
  To: Ed Tanous, openbmc

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@lists.ozlabs.org on behalf of ed.tanous@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.
    


^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: pid control configuration
  2019-05-02 23:24   ` Vijay Khemka
@ 2019-05-06 16:20     ` Ed Tanous
  2019-05-06 18:18       ` Vijay Khemka
  2019-05-10 21:20       ` Vijay Khemka
  0 siblings, 2 replies; 17+ messages in thread
From: Ed Tanous @ 2019-05-06 16:20 UTC (permalink / raw)
  To: Vijay Khemka, openbmc

On 5/2/19 4:24 PM, Vijay Khemka wrote:
>  My understanding here is pid data are only defined for temp sensors which will generate pwm values for fan.
> 

The above is not how phosphor pid control operates.  The temperature
controllers "request" a given fan RPM, then the fan PID controller
(which is scanned much more quickly than the temperature controllers)
attempts to drive the fan to that speed.  This ends up being a two stage
feedback loop that can perform better than a single PID loop.

In control theory, this is called a "Cascade" control scheme

https://en.wikipedia.org/wiki/PID_controller#Cascade_control

-Ed

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: pid control configuration
  2019-05-06 16:20     ` Ed Tanous
@ 2019-05-06 18:18       ` Vijay Khemka
  2019-05-06 18:54         ` Ed Tanous
  2019-05-10 21:20       ` Vijay Khemka
  1 sibling, 1 reply; 17+ messages in thread
From: Vijay Khemka @ 2019-05-06 18:18 UTC (permalink / raw)
  To: Ed Tanous, openbmc



On 5/6/19, 9:20 AM, "Ed Tanous" <ed.tanous@intel.com> wrote:

    On 5/2/19 4:24 PM, Vijay Khemka wrote:
    >  My understanding here is pid data are only defined for temp sensors which will generate pwm values for fan.
    > 
    
    The above is not how phosphor pid control operates.  The temperature
    controllers "request" a given fan RPM, then the fan PID controller
    (which is scanned much more quickly than the temperature controllers)
    attempts to drive the fan to that speed.  This ends up being a two stage
    feedback loop that can perform better than a single PID loop.
Where would I get data for Fan pid whatever data  we get from thermal team are 
Only for temperature pids.
    
    In control theory, this is called a "Cascade" control scheme
    
    https://urldefense.proofpoint.com/v2/url?u=https-3A__en.wikipedia.org_wiki_PID-5Fcontroller-23Cascade-5Fcontrol&d=DwICaQ&c=5VD0RTtNlTh3ycd41b3MUw&r=v9MU0Ki9pWnTXCWwjHPVgpnCR80vXkkcrIaqU7USl5g&m=gRrQtSejyIRsjuPS0GfqwX6bOmjSCOqs7BU5oina6oM&s=o56OqsqtJgiAeHSyp3Zd4yb8oFO8lzH-DIYsokTyc48&e=

Thanks for this.
    
    -Ed
    


^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: pid control configuration
  2019-05-06 18:18       ` Vijay Khemka
@ 2019-05-06 18:54         ` Ed Tanous
  0 siblings, 0 replies; 17+ messages in thread
From: Ed Tanous @ 2019-05-06 18:54 UTC (permalink / raw)
  To: Vijay Khemka, openbmc

On 5/6/19 11:18 AM, Vijay Khemka wrote:
> 
> Where would I get data for Fan pid whatever data  we get from thermal team are 
> Only for temperature pids.

I'm not really sure who you're asking, as that's more of a Facebook
organizational question than an engineering one.  I would assume the
thermal team needs to give you new parameters based on the different
controller model.  You could likely approximate them by assuming a
linear response of the fans and backing out the math from PWM units into
RPM units, but this would be an approximation.  Depending on the
required performance and predictability needed out of your thermal
scheme, this approximation might be "good enough".

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: pid control configuration
  2019-05-06 16:20     ` Ed Tanous
  2019-05-06 18:18       ` Vijay Khemka
@ 2019-05-10 21:20       ` Vijay Khemka
  2019-05-13 16:32         ` Patrick Venture
  1 sibling, 1 reply; 17+ messages in thread
From: Vijay Khemka @ 2019-05-10 21:20 UTC (permalink / raw)
  To: Ed Tanous, openbmc



On 5/6/19, 9:20 AM, "Ed Tanous" <ed.tanous@intel.com> wrote:

    On 5/2/19 4:24 PM, Vijay Khemka wrote:
    >  My understanding here is pid data are only defined for temp sensors which will generate pwm values for fan.
    > 
    
    The above is not how phosphor pid control operates.  The temperature
    controllers "request" a given fan RPM, then the fan PID controller
    (which is scanned much more quickly than the temperature controllers)
    attempts to drive the fan to that speed.  This ends up being a two stage
    feedback loop that can perform better than a single PID loop.
    
Ed, we are not using cascade control here in facebook. We only use outer loop which gives data for fan to drive.
Is it possible to still run Phosphor pid controller with single loop?

Regards
-Vijay


^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: pid control configuration
  2019-05-10 21:20       ` Vijay Khemka
@ 2019-05-13 16:32         ` Patrick Venture
  2019-05-13 17:32           ` Ed Tanous
  0 siblings, 1 reply; 17+ messages in thread
From: Patrick Venture @ 2019-05-13 16:32 UTC (permalink / raw)
  To: Vijay Khemka; +Cc: Ed Tanous, openbmc

On Fri, May 10, 2019 at 2:21 PM Vijay Khemka <vijaykhemka@fb.com> wrote:
>
>
>
> On 5/6/19, 9:20 AM, "Ed Tanous" <ed.tanous@intel.com> wrote:
>
>     On 5/2/19 4:24 PM, Vijay Khemka wrote:
>     >  My understanding here is pid data are only defined for temp sensors which will generate pwm values for fan.
>     >
>
>     The above is not how phosphor pid control operates.  The temperature
>     controllers "request" a given fan RPM, then the fan PID controller
>     (which is scanned much more quickly than the temperature controllers)
>     attempts to drive the fan to that speed.  This ends up being a two stage
>     feedback loop that can perform better than a single PID loop.
>
> Ed, we are not using cascade control here in facebook. We only use outer loop which gives data for fan to drive.
> Is it possible to still run Phosphor pid controller with single loop?

Your cascade PID could be a pass-through -- so that it receives the
set-point from the sensor PID and then just sets it directly within
that loop..  It may require a new PID controller that is just a
pass-through to explicitly exist -- i haven't dove into
phosphor-pid-control in a while, but you probably need to write a
basically empty PID controller object type.

>
> Regards
> -Vijay
>

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: pid control configuration
  2019-05-13 16:32         ` Patrick Venture
@ 2019-05-13 17:32           ` Ed Tanous
  2019-05-15 19:21             ` Vijay Khemka
  0 siblings, 1 reply; 17+ messages in thread
From: Ed Tanous @ 2019-05-13 17:32 UTC (permalink / raw)
  To: Patrick Venture, Vijay Khemka; +Cc: openbmc

On 5/13/19 9:32 AM, Patrick Venture wrote:
> On Fri, May 10, 2019 at 2:21 PM Vijay Khemka <vijaykhemka@fb.com> wrote:
>>
>>
>>
>> On 5/6/19, 9:20 AM, "Ed Tanous" <ed.tanous@intel.com> wrote:
>>
>>     On 5/2/19 4:24 PM, Vijay Khemka wrote:
>>     >  My understanding here is pid data are only defined for temp sensors which will generate pwm values for fan.
>>     >
>>
>>     The above is not how phosphor pid control operates.  The temperature
>>     controllers "request" a given fan RPM, then the fan PID controller
>>     (which is scanned much more quickly than the temperature controllers)
>>     attempts to drive the fan to that speed.  This ends up being a two stage
>>     feedback loop that can perform better than a single PID loop.
>>
>> Ed, we are not using cascade control here in facebook. We only use outer loop which gives data for fan to drive.
>> Is it possible to still run Phosphor pid controller with single loop?
> 
> Your cascade PID could be a pass-through -- so that it receives the
> set-point from the sensor PID and then just sets it directly within
> that loop..  It may require a new PID controller that is just a
> pass-through to explicitly exist -- i haven't dove into
> phosphor-pid-control in a while, but you probably need to write a
> basically empty PID controller object type.
> 

+1  That is an option for you.

>>
>> Regards
>> -Vijay
>>

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: pid control configuration
  2019-05-13 17:32           ` Ed Tanous
@ 2019-05-15 19:21             ` Vijay Khemka
  2019-05-15 21:50               ` Ed Tanous
  0 siblings, 1 reply; 17+ messages in thread
From: Vijay Khemka @ 2019-05-15 19:21 UTC (permalink / raw)
  To: Ed Tanous, Patrick Venture; +Cc: openbmc



On 5/13/19, 10:32 AM, "Ed Tanous" <ed.tanous@intel.com> wrote:

    On 5/13/19 9:32 AM, Patrick Venture wrote:
    > On Fri, May 10, 2019 at 2:21 PM Vijay Khemka <vijaykhemka@fb.com> wrote:
    >>
    >>
    >>
    >> On 5/6/19, 9:20 AM, "Ed Tanous" <ed.tanous@intel.com> wrote:
    >>
    >>     On 5/2/19 4:24 PM, Vijay Khemka wrote:
    >>     >  My understanding here is pid data are only defined for temp sensors which will generate pwm values for fan.
    >>     >
    >>
    >>     The above is not how phosphor pid control operates.  The temperature
    >>     controllers "request" a given fan RPM, then the fan PID controller
    >>     (which is scanned much more quickly than the temperature controllers)
    >>     attempts to drive the fan to that speed.  This ends up being a two stage
    >>     feedback loop that can perform better than a single PID loop.
    >>
    >> Ed, we are not using cascade control here in facebook. We only use outer loop which gives data for fan to drive.
    >> Is it possible to still run Phosphor pid controller with single loop?
    > 
    > Your cascade PID could be a pass-through -- so that it receives the
    > set-point from the sensor PID and then just sets it directly within
    > that loop..  It may require a new PID controller that is just a
    > pass-through to explicitly exist -- i haven't dove into
    > phosphor-pid-control in a while, but you probably need to write a
    > basically empty PID controller object type.
    > 
    
    +1  That is an option for you.
Ed, please see if following declaration in entity manager would work as I am not defining any pid values here.
        {
            "Class": "fan",
            "Inputs": [
                "MB_FAN0_TACH"
            ],
            "Name": "MB_FAN0_TACH",
            "Outputs": [
                "Pwm 1"
            ],
            "Type": "Pid",
            "Zones": [
                "Pid 1"
            ]
        },
    
    >>
    >> Regards
    >> -Vijay
    >>
    


^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: pid control configuration
  2019-05-15 19:21             ` Vijay Khemka
@ 2019-05-15 21:50               ` Ed Tanous
  2019-05-16  0:07                 ` Vijay Khemka
  2019-05-31 21:00                 ` Vijay Khemka
  0 siblings, 2 replies; 17+ messages in thread
From: Ed Tanous @ 2019-05-15 21:50 UTC (permalink / raw)
  To: Vijay Khemka, Patrick Venture; +Cc: openbmc

On 5/15/19 12:21 PM, Vijay Khemka wrote:
> 
> 
> Ed, please see if following declaration in entity manager would work as I am not defining any pid values here.
>         {
>             "Class": "fan",
>             "Inputs": [
>                 "MB_FAN0_TACH"
>             ],
>             "Name": "MB_FAN0_TACH",
>             "Outputs": [
>                 "Pwm 1"
>             ],
>             "Type": "Pid",
>             "Zones": [
>                 "Pid 1"
>             ]
>         },
>     
>     >>
>     >> Regards
>     >> -Vijay
>     >>
>     
> 

I'm assuming you loaded this on a system.  If it gave you the behavior
you're looking for, you're done.  If it didn't, it's probably time to
start debugging and tuning.

I run my systems in the cascade controller setup.  If you're deviating
from that, you'll likely find some places that need better documentation
and code improvements.

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: pid control configuration
  2019-05-15 21:50               ` Ed Tanous
@ 2019-05-16  0:07                 ` Vijay Khemka
  2019-05-31 21:00                 ` Vijay Khemka
  1 sibling, 0 replies; 17+ messages in thread
From: Vijay Khemka @ 2019-05-16  0:07 UTC (permalink / raw)
  To: Ed Tanous, Patrick Venture; +Cc: openbmc

On 5/15/19, 2:50 PM, "Ed Tanous" <ed.tanous@intel.com> wrote:

    On 5/15/19 12:21 PM, Vijay Khemka wrote:
    > 
    > 
    > Ed, please see if following declaration in entity manager would work as I am not defining any pid values here.
    >         {
    >             "Class": "fan",
    >             "Inputs": [
    >                 "MB_FAN0_TACH"
    >             ],
    >             "Name": "MB_FAN0_TACH",
    >             "Outputs": [
    >                 "Pwm 1"
    >             ],
    >             "Type": "Pid",
    >             "Zones": [
    >                 "Pid 1"
    >             ]
    >         },
    >     
    >     >>
    >     >> Regards
    >     >> -Vijay
    >     >>
    >     
    > 
    
    I'm assuming you loaded this on a system.  If it gave you the behavior
    you're looking for, you're done.  If it didn't, it's probably time to
    start debugging and tuning.

Thanks, No, I have not yet tested this but I can start this once we have our pid data and update documentations.
    
    I run my systems in the cascade controller setup.  If you're deviating
    from that, you'll likely find some places that need better documentation
    and code improvements.
    


^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: pid control configuration
  2019-05-15 21:50               ` Ed Tanous
  2019-05-16  0:07                 ` Vijay Khemka
@ 2019-05-31 21:00                 ` Vijay Khemka
  2019-06-03 17:43                   ` Ed Tanous
  1 sibling, 1 reply; 17+ messages in thread
From: Vijay Khemka @ 2019-05-31 21:00 UTC (permalink / raw)
  To: Ed Tanous, Patrick Venture; +Cc: openbmc



On 5/15/19, 2:50 PM, "Ed Tanous" <ed.tanous@intel.com> wrote:

    On 5/15/19 12:21 PM, Vijay Khemka wrote:
    > 
    > 
    > Ed, please see if following declaration in entity manager would work as I am not defining any pid values here.
    >         {
    >             "Class": "fan",
    >             "Inputs": [
    >                 "MB_FAN0_TACH"
    >             ],
    >             "Name": "MB_FAN0_TACH",
    >             "Outputs": [
    >                 "Pwm 1"
    >             ],
    >             "Type": "Pid",
    >             "Zones": [
    >                 "Pid 1"
    >             ]
    >         },
    >     
    >     >>
    >     >> Regards
    >     >> -Vijay
    >     >>
    >     
    > 
    
    I'm assuming you loaded this on a system.  If it gave you the behavior
    you're looking for, you're done.  If it didn't, it's probably time to
    start debugging and tuning.
This config is failing with below message.
Apr 12 23:32:39 tiogapass swampd[1310]: terminate called after throwing an instance of 'std::out_of_range'
Apr 12 23:32:39 tiogapass swampd[1310]:   what():  _Map_base::at

Is there any default data which I can be used for config but has no impact in its action?
    
    I run my systems in the cascade controller setup.  If you're deviating
    from that, you'll likely find some places that need better documentation
    and code improvements.
    


^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: pid control configuration
  2019-05-31 21:00                 ` Vijay Khemka
@ 2019-06-03 17:43                   ` Ed Tanous
  2019-06-03 18:18                     ` Vijay Khemka
  0 siblings, 1 reply; 17+ messages in thread
From: Ed Tanous @ 2019-06-03 17:43 UTC (permalink / raw)
  To: Vijay Khemka, Patrick Venture; +Cc: openbmc

On 5/31/19 2:00 PM, Vijay Khemka wrote:
> 
> This config is failing with below message.
> Apr 12 23:32:39 tiogapass swampd[1310]: terminate called after throwing an instance of 'std::out_of_range'
> Apr 12 23:32:39 tiogapass swampd[1310]:   what():  _Map_base::at
> 

If I had to guess, you're missing a property that's required.

> Is there any default data which I can be used for config but has no impact in its action?

Like I said before, I don't know of anyone running phosphor-pid like you
are hoping to.  The "default" is to run in cascade loop mode, and all
the existing systems are examples of that configuration.  It's likely
time for you to break out GDB and start debugging your configuration.

Alternatively, approximating your fans as linear, and using that as the
output targets would likely get you to a working thermal solution faster
than going down the path you're going.

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: pid control configuration
  2019-06-03 17:43                   ` Ed Tanous
@ 2019-06-03 18:18                     ` Vijay Khemka
  0 siblings, 0 replies; 17+ messages in thread
From: Vijay Khemka @ 2019-06-03 18:18 UTC (permalink / raw)
  To: Ed Tanous, Patrick Venture; +Cc: openbmc

Thanks Ed,
I will debug with some passthrough data.

Regards
-Vijay

On 6/3/19, 10:44 AM, "Ed Tanous" <ed.tanous@intel.com> wrote:

    On 5/31/19 2:00 PM, Vijay Khemka wrote:
    > 
    > This config is failing with below message.
    > Apr 12 23:32:39 tiogapass swampd[1310]: terminate called after throwing an instance of 'std::out_of_range'
    > Apr 12 23:32:39 tiogapass swampd[1310]:   what():  _Map_base::at
    > 
    
    If I had to guess, you're missing a property that's required.
    
    > Is there any default data which I can be used for config but has no impact in its action?
    
    Like I said before, I don't know of anyone running phosphor-pid like you
    are hoping to.  The "default" is to run in cascade loop mode, and all
    the existing systems are examples of that configuration.  It's likely
    time for you to break out GDB and start debugging your configuration.
    
    Alternatively, approximating your fans as linear, and using that as the
    output targets would likely get you to a working thermal solution faster
    than going down the path you're going.
    


^ permalink raw reply	[flat|nested] 17+ messages in thread

end of thread, other threads:[~2019-06-03 18:18 UTC | newest]

Thread overview: 17+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-05-01 22:53 pid control configuration Vijay Khemka
2019-05-01 23:05 ` Ed Tanous
2019-05-01 23:10   ` Patrick Venture
2019-05-01 23:15     ` Patrick Venture
2019-05-02 23:24   ` Vijay Khemka
2019-05-06 16:20     ` Ed Tanous
2019-05-06 18:18       ` Vijay Khemka
2019-05-06 18:54         ` Ed Tanous
2019-05-10 21:20       ` Vijay Khemka
2019-05-13 16:32         ` Patrick Venture
2019-05-13 17:32           ` Ed Tanous
2019-05-15 19:21             ` Vijay Khemka
2019-05-15 21:50               ` Ed Tanous
2019-05-16  0:07                 ` Vijay Khemka
2019-05-31 21:00                 ` Vijay Khemka
2019-06-03 17:43                   ` Ed Tanous
2019-06-03 18:18                     ` Vijay Khemka

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.