PIDControl

Declares a control data named 'output' and uses Proportional Integral Derivative logic on the 'value' control data to set it.

The reference or target value is set by the "set_point" parameter ControlData. The value of the output data is set by:

error=set pointvalueerror integral=error integral+Kierrordtoutput=Kperror+error integral+Kderrorerrorolddt;\text{error} = \text{set point} - \text{value} \\ \text{error integral} = \text{error integral} + K_i * \text{error} * dt \\ \text{output} = K_p * \text{error} + \text{error integral} + K_d * \dfrac{\text{error} - \text{error}_{old}}{dt};

where KpK_p, KiK_i and KdK_d are the proportional, integral and derivative constant parameters of the PID logic, the set point and the value are user-selected ControlData.

commentnote

To control a controllable value directly instead of a ControlData, use the PIDTransientControl

Input Parameters

  • K_dThe coefficient for the derivative term.

    C++ Type:double

    Unit:(no unit assumed)

    Controllable:No

    Description:The coefficient for the derivative term.

  • K_iThe coefficient for the integral term.

    C++ Type:double

    Unit:(no unit assumed)

    Controllable:No

    Description:The coefficient for the integral term.

  • K_pThe coefficient for the proportional term.

    C++ Type:double

    Unit:(no unit assumed)

    Controllable:No

    Description:The coefficient for the proportional term.

  • initial_valueThe initial value for the integral part.

    C++ Type:double

    Unit:(no unit assumed)

    Controllable:No

    Description:The initial value for the integral part.

  • inputThe name of the control data that we read in.

    C++ Type:std::string

    Unit:(no unit assumed)

    Controllable:No

    Description:The name of the control data that we read in.

  • set_pointThe name of the control data with the set point.

    C++ Type:std::string

    Unit:(no unit assumed)

    Controllable:No

    Description:The name of the control data with the set point.

Required Parameters

  • depends_onThe Controls that this control relies upon (i.e. must execute before this one)

    C++ Type:std::vector<std::string>

    Unit:(no unit assumed)

    Controllable:No

    Description:The Controls that this control relies upon (i.e. must execute before this one)

Optional Parameters

  • control_tagsAdds user-defined labels for accessing object parameters via control logic.

    C++ Type:std::vector<std::string>

    Unit:(no unit assumed)

    Controllable:No

    Description:Adds user-defined labels for accessing object parameters via control logic.

  • enableTrueSet the enabled status of the MooseObject.

    Default:True

    C++ Type:bool

    Unit:(no unit assumed)

    Controllable:No

    Description:Set the enabled status of the MooseObject.

  • implicitTrueDetermines whether this object is calculated using an implicit or explicit form

    Default:True

    C++ Type:bool

    Unit:(no unit assumed)

    Controllable:No

    Description:Determines whether this object is calculated using an implicit or explicit form

Advanced Parameters