27 Filter(
const std::string& symbol,
const std::string& type,
int order, vector<double> values,
int number_of_connections)
28 :
ControlBlock(), filter_symbol(symbol), filter_size(number_of_connections), filter_type(type), filter_order(order) {
29 if (values.size() != 3) {
30 throw std::invalid_argument(
"Filter values must contain time constant, damping ratio, and bandwidth.");
32 timeConstant = values[0];
34 bandwidth = values[2];
39 std::cout <<
"Filter Parameters:"
40 <<
" Time Constant (T): " << timeConstant <<
"\n"
41 <<
" Damping Ratio (zeta): " << zeta <<
"\n"
42 <<
" Bandwidth: " << bandwidth <<
" Hz\n";
51 void updateParameters(
double newTimeConstant,
double newZeta,
double newBandwidth);
79 return filter_size*filter_order;
84 string filter_type =
"LP";
Base class for dynamic control blocks used by converters.
Abstract base for filters, integrators, and controllers.
Definition Control_block.h:17
LTI filter with configurable time constant, damping, and bandwidth.
Definition Filter.h:17
virtual void printValues() override
Print filter time constant, damping ratio, and bandwidth.
Definition Filter.h:38
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.
Definition Filter.h:27
void updateParameters(double newTimeConstant, double newZeta, double newBandwidth)
Replace filter time constant, damping ratio, and bandwidth.
Definition Filter.cpp:7
VectorXd define_differential_equations(const VectorXd &x, const VectorXd &u)
State derivatives for a vector-valued filter.
int getFilterSize() const
Total number of filter states (filter_size * filter_order).
Definition Filter.h:78