Fuzzy Logic Tools  v1.0.5.1
 All Classes Namespaces Files Functions Variables Enumerations Enumerator Macros Pages
derivatives.hpp
Go to the documentation of this file.
1 /* Copyright (C) 2004-2015
2  ANTONIO JAVIER BARRAGAN, antonio.barragan@diesia.uhu.es
3  http://uhu.es/antonio.barragan
4 
5  Collaborators:
6  JOSE MANUEL ANDUJAR, andujar@diesia.uhu.es
7  AGUSTIN JIMENEZ AVELLO, agustin.jimenez@upm.es
8  BASIL M. AL-HADITHI, basil.alhadithi@upm.es
9 
10  DPTO. DE ING. ELECTRONICA, DE SISTEMAS INFORMATICOS Y AUTOMATICA
11  ETSI, UNIVERSITY OF HUELVA (SPAIN)
12 
13  For more information, please contact with authors.
14 
15  This software is free software: you can redistribute it and/or modify
16  it under the terms of the GNU General Public License as published by
17  the Free Software Foundation, either version 3 of the License, or
18  (at your option) any later version.
19 
20  This software is distributed in the hope that it will be useful,
21  but WITHOUT ANY WARRANTY; without even the implied warranty of
22  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
23  GNU General Public License for more details.
24 
25  You should have received a copy of the GNU General Public License
26  along with this program. If not, see <http://www.gnu.org/licenses/>.
27 */
28 
29 #ifndef _DERIVATIVES_HPP_
30 #define _DERIVATIVES_HPP_
31 
39 #include <flt/utilities.hpp>
40 
41 namespace FLT // Use the FTL (Fuzzy Logic Tools) namespace
42 {
51  TNT::Array2D<double> jacobian(System &S,
52  const double *const x,
53  const double *const u,
54  TNT::Array2D<double> &B,
55  TNT::Array1D<double> &F);
56 
62  TNT::Array2D<double> jacobian(System &S,
63  System &C,
64  const double *const x);
65 
72  TNT::Array2D<double> jacobianAprox(System &S,
73  System &C,
74  const double * const x,
75  double h=0.001);
76 
86  TNT::Array2D<double> jacobianAprox(System &S,
87  const double *const x,
88  const double *const u,
89  TNT::Array2D<double> &B,
90  TNT::Array1D<double> &F,
91  double h=0.001);
92 
100  double derconseq(System &S,
101  double *x,
102  size_t output,
103  size_t rule,
104  size_t parameter,
105  int &error);
106 
112  TNT::Array2D<double> derconseq(System &S,
113  double *x);
114 
120  TNT::Array2D<double> deraffine(System &S,
121  double *x);
122 
130  double derantec(System &S,
131  double *x,
132  size_t input,
133  size_t output,
134  size_t rule,
135  size_t parameter,
136  int &error);
137 
143  TNT::Array2D<double> derantec(System &S,
144  double *x);
145 
151  TNT::Array2D<double> derfuzzy(System &S,
152  double *x);
153 
159  TNT::Array2D<double> derCLFSconseq(System &P,
160  System &C,
161  const double * const x);
162 
163 
164 } // FLT
165 
166 #endif
TNT::Array2D< double > deraffine(System &S, double *x)
Obtains the jacobian matrix of a fuzzy model with respect to its affine consequents.
Definition: derivatives.cpp:760
double derantec(System &S, double *x, size_t input, size_t output, size_t rule, size_t parameter, int &error)
Obtains the derivative of a fuzzy model with respect to a parameter of an antecedent.
Definition: derivatives.cpp:799
Fuzzy Logic Tools (FLT) namespace.
Definition: derivatives.hpp:41
TNT::Array2D< double > derfuzzy(System &S, double *x)
Obtains the jacobian matrix of a fuzzy model with respect to all of its parameters.
Definition: derivatives.cpp:920
TNT::Array2D< double > jacobianAprox(System &S, System &C, const double *const x, double h=0.001)
Computes the approximation of the closed-loop jacobian matrix in x for the Plant S and the Controller...
Definition: derivatives.cpp:649
TNT::Array2D< double > jacobian(System &S, const double *const x, const double *const u, TNT::Array2D< double > &B, TNT::Array1D< double > &F)
Computes the open-loop jacobian matrix in x for the Plant S.
Definition: derivatives.cpp:6
This class contains methods and attributes common to fuzzy Systems.
Definition: system.hpp:52
double derconseq(System &S, double *x, size_t output, size_t rule, size_t parameter, int &error)
Obtains the derivative of a fuzzy model with respect to a consequent.
Definition: derivatives.cpp:693
TNT::Array2D< double > derCLFSconseq(System &P, System &C, const double *const x)
Obtains the jacobian matrix of a Closed Loop Fuzzy System (CLFS) with respect to the consequents of t...
Implements useful functions for fuzzy systems.