Fuzzy Logic Tools
v1.0.5.1
|
This class contains methods and attributes common to fuzzy Systems. More...
#include <system.hpp>
Public Member Functions | |
size_t | inputs (void) const |
Returns the number of inputs of the System. | |
size_t | outputs (void) const |
Returns the number of outputs of the System. | |
size_t | rules (size_t output) const |
Returns the number of rules for the output output of the System. | |
TNT::Array1D< size_t > | rules (void) const |
Returns the number of rules for each output of the System. | |
TNT::Array1D< double > | in_low (void) const |
Returns the low limits of the System inputs. | |
double | in_low (size_t input) const |
Returns the low limit of the input input . | |
TNT::Array1D< double > | in_high (void) const |
Returns the high limits of the System inputs. | |
double | in_high (size_t input) const |
Returns the high limit of the input input . | |
TNT::Array1D< double > | out_low (void) const |
Returns the low limits of the System outputs. | |
double | out_low (size_t output) const |
Returns the low limit of the output output . | |
TNT::Array1D< double > | out_high (void) const |
Returns the high limits of the System outputs. | |
double | out_high (size_t output) const |
Returns the high limit of the output output . | |
void | in_low (double *limits) |
Changes the low limits of the System inputs. | |
void | in_high (double *limits) |
Changes the high limits of the System inputs. | |
void | out_low (double *limits) |
Changes the low limits of the System outputs. | |
void | out_high (double *limits) |
Changes the high limits of the System outputs. | |
int | checkInputLimits (const double *const point) |
Checks if point meets the input limits of the system. More... | |
int | checkOutputLimits (const double *const output) |
Checks if output meets the output limits of the system. More... | |
int | test (void) const |
This function checks the parameters of all Membership functions of the System, and corrects them if possible. More... | |
int | changeRule (const Rule &R, size_t r, size_t output) |
Changes a Rule in the System. More... | |
int | readRule (Rule &R, size_t output, size_t r) const |
Reads a Rule from the System. More... | |
Rule * | readRule (size_t output, size_t r) |
Extracts a pointer to a Rule from the System. More... | |
void | initialize (size_t in, size_t out, size_t *N) |
Initializes the System with in inputs, out outputs and N [out] rules for each output. | |
size_t | NumberOfAntecedents (void) |
Gets the number of parameters stored in the antecedents of the System. | |
int | setAntecedents (const double *const parameters) |
Sets all the parameters of the antecedents of the System. More... | |
TNT::Array1D< double > | getAntecedents (void) |
Gets all the parameters of the antecedents of the System. More... | |
size_t | NumberOfConsequents (void) |
Gets the number of parameters stored in the consequents of the System. | |
void | setConsequents (const double *const parameters) |
Sets all the consequets of the System. More... | |
TNT::Array1D< double > | getConsequents (void) |
Gets the consequets of the System. More... | |
TNT::Array1D< double > | evaluate (const double *const point) |
Evaluates the System for input point . More... | |
System & | operator= (const System &S) |
System (const System &S) | |
System (size_t in, size_t out, size_t *N) | |
Private Attributes | |
size_t | in |
Number of inputs of the System. | |
size_t | out |
Number of outputs of the System. | |
size_t * | N |
Number of rules of the System for each output. | |
double * | low_in |
Low limits for the inputs of the System. | |
double * | low_out |
Low limits for the outputs of the System. | |
double * | high_in |
High limits for the inputs of the System. | |
double * | high_out |
High limits for outputs of the System. | |
Rule ** | R |
System Rules. | |
This class contains methods and attributes common to fuzzy Systems.
This class stores a completely general Takagi-Sugeno fuzzy System.
int System::changeRule | ( | const Rule & | R, |
size_t | r, | ||
size_t | output | ||
) |
int System::checkInputLimits | ( | const double *const | point | ) |
Checks if point
meets the input limits of the system.
low_in[i] <= point[i] <= high_in[i]
, for i = 1..in
.point[i] < low_in[i]
or point[i] > high_in[i]
, returns 1 + the lowest value of i
that breaks limits. int System::checkOutputLimits | ( | const double *const | output | ) |
Checks if output
meets the output limits of the system.
low_out[j] <= output[j] <= high_out[j]
, for i = j..out
.output[j] < low_out[j]
or output[j] > high_out[j]
, returns 1 + the lowest value of j
that breaks limits. Array1D< double > System::evaluate | ( | const double *const | point | ) |
Evaluates the System for input point
.
If point
or output
are beyond the limits of the system, a warning message is sent to the standard error stream.
Array1D< double > System::getAntecedents | ( | void | ) |
Gets all the parameters of the antecedents of the System.
The antecedents must be sorted for each output, for each rule.
Array1D< double > System::getConsequents | ( | void | ) |
Gets the consequets of the System.
The consequets are sorted for each output, for each rule, the affine term and the consequents of each input.
int System::readRule | ( | Rule & | R, |
size_t | output, | ||
size_t | r | ||
) | const |
Rule * System::readRule | ( | size_t | output, |
size_t | r | ||
) |
int System::setAntecedents | ( | const double *const | parameters | ) |
Sets all the parameters of the antecedents of the System.
The antecedents must be sorted for each output, for each rule.
void System::setConsequents | ( | const double *const | parameters | ) |
Sets all the consequets of the System.
The consequets must be sorted for each output, for each rule, the affine term and the consequents of each input.
int System::test | ( | void | ) | const |
This function checks the parameters of all Membership functions of the System, and corrects them if possible.