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

LTI filter with configurable time constant, damping, and bandwidth. More...

#include <Filter.h>

Inheritance diagram for Filter:
Collaboration diagram for Filter:

Public Member Functions

 Filter (const std::string &symbol, const std::string &type, int order, vector< double > values, int number_of_connections)
 Construct a filter from symbolic metadata and parameter values.
 
virtual void printValues () override
 Print filter time constant, damping ratio, and bandwidth.
 
void updateParameters (double newTimeConstant, double newZeta, double newBandwidth)
 Replace filter time constant, damping ratio, and bandwidth.
 
VectorXd define_differential_equations (const VectorXd &x, const VectorXd &u)
 State derivatives for a vector-valued filter.
 
VectorXd define_differential_equations (const VectorXd &x, const double u)
 State derivatives for a scalar filter with vector state.
 
VectorXd define_differential_equations (const double x, const double u)
 State derivatives for a scalar filter.
 
int getFilterSize () const
 Total number of filter states (filter_size * filter_order).
 
- Public Member Functions inherited from ControlBlock
 ControlBlock ()=default
 
virtual ~ControlBlock ()=default
 

Detailed Description

LTI filter with configurable time constant, damping, and bandwidth.

Supports first- and second-order dynamics for vector or scalar signals.

Constructor & Destructor Documentation

◆ Filter()

Filter::Filter ( const std::string &  symbol,
const std::string &  type,
int  order,
vector< double >  values,
int  number_of_connections 
)
inline

Construct a filter from symbolic metadata and parameter values.

Parameters
symbolElement symbol/name.
typeFilter type identifier (e.g. "LP").
orderFilter order (1 or 2).
valuesParameter vector: time constant, damping ratio, bandwidth (Hz).
number_of_connectionsNumber of parallel filter channels (pins).

Member Function Documentation

◆ define_differential_equations() [1/3]

VectorXd Filter::define_differential_equations ( const double  x,
const double  u 
)

State derivatives for a scalar filter.

Parameters
xScalar filter state.
uScalar input.
Returns
Concatenated state derivative and filter output.

◆ define_differential_equations() [2/3]

VectorXd Filter::define_differential_equations ( const VectorXd &  x,
const double  u 
)

State derivatives for a scalar filter with vector state.

Parameters
xFilter state vector.
uScalar input.
Returns
Concatenated state derivatives and filter outputs.

◆ define_differential_equations() [3/3]

VectorXd Filter::define_differential_equations ( const VectorXd &  x,
const VectorXd &  u 
)

State derivatives for a vector-valued filter.

Parameters
xFilter state vector.
uInput vector.
Returns
Concatenated state derivatives and filter outputs.

◆ getFilterSize()

int Filter::getFilterSize ( ) const
inline

Total number of filter states (filter_size * filter_order).

◆ printValues()

virtual void Filter::printValues ( )
inlineoverridevirtual

Print filter time constant, damping ratio, and bandwidth.

Reimplemented from ControlBlock.

◆ updateParameters()

void Filter::updateParameters ( double  newTimeConstant,
double  newZeta,
double  newBandwidth 
)

Replace filter time constant, damping ratio, and bandwidth.

Parameters
newTimeConstantNew time constant.
newZetaNew damping ratio.
newBandwidthNew bandwidth (Hz).

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