Harmony
HARMONic stabilitY assessment of PE-penetrated power systems
Loading...
Searching...
No Matches
ProportionalController Class Reference

Single-gain proportional controller: output = K * (reference - u) + c. More...

#include <Proportional_controller.h>

Inheritance diagram for ProportionalController:
Collaboration diagram for ProportionalController:

Public Member Functions

 ProportionalController (const std::string &symbol, const vector< double > &value, int number_signals, std::vector< double > refs={ 0 })
 Construct a P controller.
 
virtual Eigen::VectorXd define_equations (const Eigen::VectorXd &x, const Eigen::VectorXd &u, const Eigen::VectorXd &c) override
 Vector P-controller dynamics.
 
virtual Eigen::VectorXd define_equations (const double x, const double u, const double c) override
 Scalar P-controller dynamics.
 
virtual void printValues () override
 Print controller type, gain K, and reference values.
 
double getK () const
 Return the proportional gain K.
 
void setK (double newK)
 Set the proportional gain K.
 
virtual vector< double > getParameters () const override
 Return { K }.
 
virtual void setParameters (const vector< double > &params) override
 Set K from a single-element parameter vector.
 
- Public Member Functions inherited from Controller
 Controller (const std::string &symbol, const vector< double > &value, int number_signals, std::vector< double > refs={ 0 })
 Construct a controller with reference setpoints.
 
void setReference (const std::vector< double > &ref)
 Replace all reference setpoints.
 
void setReference (const double ref, int i)
 Set one reference channel.
 
std::vector< double > getReference () const
 Return a copy of the current reference vector.
 
std::string getControllerSymbol () const
 Return the controller symbol/name.
 
int getNumberOfSignals () const
 Return the number of control channels.
 
virtual ~Controller ()=default
 

Additional Inherited Members

- Protected Attributes inherited from Controller
std::string controller_symbol
 
bool active = false
 
std::vector< double > reference
 

Detailed Description

Single-gain proportional controller: output = K * (reference - u) + c.

Constructor & Destructor Documentation

◆ ProportionalController()

ProportionalController::ProportionalController ( const std::string &  symbol,
const vector< double > &  value,
int  number_signals,
std::vector< double >  refs = { 0 } 
)
inline

Construct a P controller.

Parameters
symbolController symbol/name.
valueGain vector containing Kp (exactly one element).
number_signalsNumber of control channels.
refsReference values per channel (default zero).

Member Function Documentation

◆ define_equations() [1/2]

Eigen::VectorXd ProportionalController::define_equations ( const double  x,
const double  u,
const double  c 
)
overridevirtual

Scalar P-controller dynamics.

Defines the equations for a scalar P controller.

Parameters
xIntegrator state (unused for pure P).
uMeasured input value.
cFeed-forward output value.
Returns
Vector containing error state and controller output.

This function computes the error between the reference and input. The returned vector contains the state derivative and controller output.

Parameters
xIntegrator state (scalar).
uInput (measured) value. Not used in proportional controller.
cConstant/reference output signal.
Returns
Eigen::VectorXd Vector containing states and controller output.

Reimplemented from Controller.

References Controller::reference.

◆ define_equations() [2/2]

Eigen::VectorXd ProportionalController::define_equations ( const Eigen::VectorXd &  x,
const Eigen::VectorXd &  u,
const Eigen::VectorXd &  c 
)
overridevirtual

Vector P-controller dynamics.

Defines the equations for a vector P controller.

Parameters
xIntegrator state vector (unused for pure P).
uMeasured input vector.
cFeed-forward output vector.
Returns
Concatenated error states and controller outputs.

This function computes the error between the reference and input. The returned vector concatenates the states and controller outputs.

Parameters
xInput state vector.
uInput (measured) vector. Left empty for proportional controller.
cConstant/reference output signal vector.
Returns
Eigen::VectorXd Concatenated vector of states and controller outputs.

Reimplemented from Controller.

References Controller::reference.

◆ getK()

double ProportionalController::getK ( ) const
inline

Return the proportional gain K.

◆ getParameters()

virtual vector< double > ProportionalController::getParameters ( ) const
inlineoverridevirtual

Return { K }.

Reimplemented from Controller.

◆ printValues()

virtual void ProportionalController::printValues ( )
inlineoverridevirtual

Print controller type, gain K, and reference values.

Reimplemented from Controller.

References Controller::reference.

◆ setK()

void ProportionalController::setK ( double  newK)
inline

Set the proportional gain K.

Parameters
newKNew gain value.

◆ setParameters()

virtual void ProportionalController::setParameters ( const vector< double > &  params)
inlineoverridevirtual

Set K from a single-element parameter vector.

Parameters
paramsVector { K }.

Reimplemented from Controller.


The documentation for this class was generated from the following files: