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

Abstract controller with per-channel reference values. More...

#include <Controller.h>

Inheritance diagram for Controller:
Collaboration diagram for Controller:

Public Member Functions

 Controller (const std::string &symbol, const vector< double > &value, int number_signals, std::vector< double > refs={ 0 })
 Construct a controller with reference setpoints.
 
virtual Eigen::VectorXd define_equations (const Eigen::VectorXd &x, const Eigen::VectorXd &u, const Eigen::VectorXd &c)
 Controller dynamics for vector states and signals.
 
virtual Eigen::VectorXd define_equations (const double x, const double u, const double c)
 Controller dynamics for scalar state and signals.
 
virtual void printValues () override
 Print reference values to standard output.
 
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 vector< double > getParameters () const
 Return controller-specific parameters (implemented by subclasses).
 
virtual void setParameters (const vector< double > &params)
 Set controller-specific parameters (implemented by subclasses).
 
virtual ~Controller ()=default
 

Protected Attributes

std::string controller_symbol
 
bool active = false
 
std::vector< double > reference
 

Detailed Description

Abstract controller with per-channel reference values.

Subclasses implement define_equations and store gain parameters.

Constructor & Destructor Documentation

◆ Controller()

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

Construct a controller with reference setpoints.

Parameters
symbolController symbol/name.
valueGain parameter vector (interpreted by derived classes).
number_signalsNumber of control channels.
refsReference values per channel (default zero).

◆ ~Controller()

virtual Controller::~Controller ( )
virtualdefault

Member Function Documentation

◆ define_equations() [1/2]

virtual Eigen::VectorXd Controller::define_equations ( const double  x,
const double  u,
const double  c 
)
inlinevirtual

Controller dynamics for scalar state and signals.

Parameters
xIntegrator or auxiliary state.
uMeasured input value.
cFeed-forward or constant output value.
Returns
Concatenated state derivative and controller output.

Reimplemented in ProportionalController, and ProportionalIntegralController.

◆ define_equations() [2/2]

virtual Eigen::VectorXd Controller::define_equations ( const Eigen::VectorXd &  x,
const Eigen::VectorXd &  u,
const Eigen::VectorXd &  c 
)
inlinevirtual

Controller dynamics for vector states and signals.

Parameters
xIntegrator or auxiliary state vector.
uMeasured input vector.
cFeed-forward or constant output vector.
Returns
Concatenated state derivatives and controller outputs.

Reimplemented in ProportionalController, and ProportionalIntegralController.

◆ getControllerSymbol()

std::string Controller::getControllerSymbol ( ) const
inline

Return the controller symbol/name.

References controller_symbol.

◆ getNumberOfSignals()

int Controller::getNumberOfSignals ( ) const
inline

Return the number of control channels.

References reference.

◆ getParameters()

virtual vector< double > Controller::getParameters ( ) const
inlinevirtual

Return controller-specific parameters (implemented by subclasses).

Reimplemented in ProportionalController, and ProportionalIntegralController.

References reference.

◆ getReference()

std::vector< double > Controller::getReference ( ) const
inline

Return a copy of the current reference vector.

References reference.

◆ printValues()

virtual void Controller::printValues ( )
inlineoverridevirtual

Print reference values to standard output.

Reimplemented from ControlBlock.

Reimplemented in ProportionalController, and ProportionalIntegralController.

References reference.

Referenced by MMC::printElementValues().

◆ setParameters()

virtual void Controller::setParameters ( const vector< double > &  params)
inlinevirtual

Set controller-specific parameters (implemented by subclasses).

Parameters
paramsParameter vector.

Reimplemented in ProportionalController, and ProportionalIntegralController.

◆ setReference() [1/2]

void Controller::setReference ( const double  ref,
int  i 
)
inline

Set one reference channel.

Parameters
refNew reference value.
iChannel index.

References reference.

◆ setReference() [2/2]

void Controller::setReference ( const std::vector< double > &  ref)
inline

Replace all reference setpoints.

Parameters
refNew reference vector.

References reference.

Member Data Documentation

◆ active

bool Controller::active = false
protected

◆ controller_symbol

std::string Controller::controller_symbol
protected

Referenced by getControllerSymbol().

◆ reference


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