77 const std::array<float, NUM_FUZZY_MEMBERS> &kpParams,
78 const std::array<float, NUM_FUZZY_MEMBERS> &kdParams)
88 inline modm::Matrix<float, 2, 1>
getFuzzyGains()
const override {
return fuzzyGains; }
99 void performFuzzification(
float e,
float d);
105 void updateFuzzyMatrix();
108 void performDefuzzification();
121 static inline void performSingleValueFuzzification(
123 std::array<float, NUM_FUZZY_MEMBERS> &fuzzificationMemberValues)
132 fuzzificationMemberValues[
N] = std::min(-value, 1.0f);
135 fuzzificationMemberValues[
Z] = std::max(value + 1.0f, 0.0f);
136 fuzzificationMemberValues[
P] = 0;
143 fuzzificationMemberValues[
N] = 0;
146 fuzzificationMemberValues[
Z] = std::max(1.0f - value, 0.0f);
148 fuzzificationMemberValues[
P] = std::min(value, 1.0f);
153 std::array<float, NUM_FUZZY_MEMBERS> errorFuzzificationMemberValues = {};
154 std::array<float, NUM_FUZZY_MEMBERS> derivativeFuzzificationMemberValues = {};
155 std::array<std::array<float, NUM_FUZZY_MEMBERS>,
NUM_FUZZY_MEMBERS> fuzzyMatrix = {};
156 modm::Matrix<float, 2, 1> fuzzyGains = {};
157 std::array<float, NUM_FUZZY_MEMBERS> kpArray;
158 std::array<float, NUM_FUZZY_MEMBERS> kdArray;
FuzzyPDRuleTable(const std::array< float, NUM_FUZZY_MEMBERS > &kpParams, const std::array< float, NUM_FUZZY_MEMBERS > &kdParams)
Definition fuzzy_pd_rule_table.hpp:76