The present invention generally relates to a control system. More particularly, the present invention relates to a control system employing a predictor, fuzzification, a neural network, and genetic programming.
Control systems have been used for controlling processes for decades. However, prior art control systems typically suffer from at least one of several drawbacks.
First, although there are a number of prior art control systems that employ systems such as neural networks and fuzzy logic to make decisions, such systems typically require substantial training using known sets of data.
Second, such prior art system are typically very complex and require an expert to tune and establish the system.
Third, prior art systems typically rely on one of the several available methodologies of decision making and are not able to combine decision making methodologies to provide improved performance.
One or more of the embodiments of the present invention provide a neuro-fuzzy controller including a predictor that receives inputs and makes prediction inputs. The prediction inputs are passed to a fuzzy cluster module that includes a neural network fuzzifing said prediction inputs and passing the result to an inference engine. The output of the inference engine is defuzzified and provided as an output of the controller. The fuzzifier and defuzzifier preferably represent a neural network employing a trigonometrical series. The inference engine preferably employs rules that are determined using genetic programming, in this form to find directly rules that may be defined in a short period of time without the help of an expert. This embodiment allows the user to tune the complete controller in a better way. Additionally, the controller may also be autonomous.
The neuro-controller 100 is preferably based on trigonometric neural networks, predictor, partition coefficients and the FCM. The neuro-controller 100 preferably follows a modified Takagi-Sugeno structure but instead of using polynomials on the defuzzification process it also uses trigonometric neural networks (T-ANN's) and the process for tuning the membership functions is based on FCM.
Initially the number of membership functions is preferably calculated using Partition Coefficients. This method provides for an improved number of membership functions.
As shown in
One of the concerns in using the FCM is to find the number of clusters. However, this is addressed by the Partition Coefficient—this is the first stages in the controller after that the diagram showed in
The information below presents the analytical information regarding the stages of the controller 100.
First, the Partition Coefficient (PC) is a method used to validate how well a clustering algorithm has identified the structure presented in data that is represented into clusters. This small algorithm is based on the following equation:
Where U is the partition matrix and uij is the membership value of the j-th element of the data related to the i-th cluster, cis the number of clusters and n is the number of elements in data collection. From this equation, it may be noted that the closer the PC is to 1, the better the data is considered to be classified.
The preferred number of clusters may be denoted at each c by Ωc using:
The Table below shows the above procedure.
Trigonometric Artificial Neural Networks
Consider ƒ(x) periodic and integrable in Lesbegue (continuous and periodic functions (2π) in [−π,π] or [0, 2π]). In Mathematics, the Lesbegue measure is the standard form to assign a longitude, area, or volume to the subsets of the Euclidean space. It must be written as ƒεC*[−π,π] or just ƒεC*. Being that the Fourier series are associated to ƒ in the point x are given by:
The deviation—error—of ƒεC* from the Fourier series at the x point or from a trigonometric polynomial of order ≦n.
Using Favard sums of ƒ falling in its extreme basic property, give the best approximation for trigonometric polynomials of a class (periodic continuous functions) as follows:
Theorem: If ƒεC[a,b] and τn=Pn is polynomial of degree δ≦n then:
Using a sumability method being:
Where: M is a double matrix of infinite numbers.
For each {Sn} sequence the {σn} sequence is associated so:
Where the series converge for all n if:
We then say that the sequence {Sn} is sumable in M to the limit S. The σn are named linear media of {Sn}. The equation system σn=UΣanvSv may be written as: σ=T(S) and call the system a linear transformation. σn is also named the transformation of Sn for T. The most important transformations are regulars.
If y(t) is a function in time (a measured signal) and x (ω,t) is an approximated function (or rebuilt signal) that continuously depends of the vector ωεΩ and of time t. Then the problem of decomposition is to find the optimal parameters ω*=[ω1*,ω2*,K,ωn*] of the approximated function:
Where: {Φi(t)}(i=1, 2, K, N) is a set of basic specific functions. Orthogonal functions are commonly used as basic functions. An important advantage of using orthogonal functions is that when an approximation needs to be improved by increasing the number of basic functions, the ωi coefficients of the original basic functions remain unchanged. Furthermore the decomposition of the signal of time in a set of orthogonal functions that are easily generated and defined has many applications on engineering.
Fourier series have been proven to be able to model any periodical signal. For any given signal ƒ(x) it is said to be periodic if ƒ(x)=ƒ(x+T) where T is the fundamental period of the signal. The signal may be modeled using Fourier series:
The trigonometric Fourier series includes the sum of functions multiplied by a coefficient plus a constant, so a neural network may be built based on the previous equations.
One advantages of this topology is that the weights of the network may be computed using analytical methods as a linear equation system. The error on the solution decreases when the number of neurons is augmented which corresponds to adding more harmonics according to the Fourier series.
To train the network we need to know the available inputs and outputs. The traditional faun to train a network is to assign random values to the weights and then wait for the function to converge using the gradient descendent method. Using this topology the network is trained using the least squares method fixing a finite number of neurons and arranging the system in a matrix form Ax=B. Approximating the function with pair functions we will use cosines, if we want to do it with impair functions we will use sine.
Considering the sum of squared differences between the values of the output function, and the ones given by the function ƒ(x, a0,K an) in the corresponding points, we will choose the parameters a0,K an such that the sum will have the minimum value:
Using cosines:
This way the problem is reduced to find the parameters a0,K an for which S(a0,K an) has a minimum:
This equation system may be the written in the matrix form Ax=B:
Fuzzy Cluster Module (FCM)
Clustering methods split a set of N elements X={x1, x2K, xn} into a c group denoted c={μ1, μ2, K μn}. Traditional clustering sets methods assume that each data vector may belong to one and only one class, but in practice clusters normally overlap, and some data vectors may belong partially to several clusters. Fuzzy set theory provides a natural way to describe this situation by FCM.
The fuzzy partition matrices M, for c classes and N data points were defined by three conditions: M={UεVcN|1,2,3}
The first condition: ∀ 1≦i≦c μikε[0,1], 1≦k≦N
The second condition:
The third condition:
The FCM optimum criteria function has the following form:
Where dik is an inner product noun defined as: dik2=∥xk−vi∥A2
Where A is a positive definite matrix, m is the weighting exponent mε[1, ∞). If m and c parameters are fixed and define sets then (U,V) may be globally minimal for Jm(U,V) only if:
FCM Method
The fuzzy c-module solution may be described as:
1) Fix c and m, set p=0 and initialize U(0).
2) Calculate fuzzy centers for each cluster V(p) using (2).
3) Update fuzzy partition matrix U(p) for the p-th iteration using (1).
4) If ∥U(p)−U(p-1)∥<ε then, j←j+1 and return to the second step.
In this algorithm, the parameter m determines the fuzziness of the clusters; if m is large the cluster is fuzzier. For m→1 FCM solution becomes the crisp one, and for m→≈ the solution is as fuzzy as possible. There is no theoretical reference for the selection of m, and usually m=2 is chosen. After the shape of the membership functions are fixed, the T-ANN's learn each one of them.
Predictive Method
The controller response may be improved by using predictors, which provide future information and allow it to response in advance. One of the simplest yet powerful predictors is based on exponential smoothing. A popular approach used is the Holt's method.
Exponential smoothing is computationally simple and fast at the same time this method may perform well in comparison with other more complex methods. The series used for prediction is considered as a composition of more than one structural component (average and trend) each of which may be individually modeled. We will use series without seasonality in the predictor. Such type of series may be expressed as:
y(x)=yav(x)+pytr(x)+e(x);p=0
Where: y(x), yav(x), ytr(x), and e(x) are the data, the average, the trend and the error components individually modeled using exponential smoothing. The p-step ahead prediction is given by:
y*(x+p|k)=yav(x)+pytr(x)
The average and the trend components are modeled as:
yav(x)=(1−α)y(x)+(yav(x−1)+ytr(k−1))
ytr(x)=(1−β)ytr(x−1)+β(yav(x)+yav(x−1))
Where yav(x) and ytr(x) are the average and the trend components of the signal. Where α and β are the smoothing coefficients, its values range (0,1). yav and ytr may be initialized as:
The execution of the controller depends on several VI's which are explained in the following steps:
1) This is a predictor VI based on exponential smoothing, the coefficients alpha and beta are fed as scalar values. The past and present information are fed in a 1D array with the newest information in the last element of the array.
2) The partition coefficient is executed for getting the number of membership functions.
3) This VI executes the FCM method, the information of the crisp inputs are fed as well as stop conditions for the cycle, the program returns the coefficients of the trigonometric networks, the fundamental frequency and other useful information.
4) These three VI's execute the evaluation of the premises. The first on the top left generator of the combinations of rules, that depends on the number of inputs and membership functions. The second one on the bottom left combines and evaluates the input membership functions. The last one on the right uses the information on the combinations as well as the evaluated membership functions to obtain the premises of the IF-THEN rules.
5) This VI creates a 1D array with the number of rules of the system: {1,2,K,n} where n is the number of rules, it is used on the defuzzification process.
6) This VI evaluates a T-ANN on each of the rules.
7) This VI defuzzifies using the Takagi method with the obtained crisp outputs from the T-ANN.
This version of one input one output of the controller is modifiable to adapt to different systems. For example,
The following example was designed for a real application of the neuro controller. For the designing process all the steps of the controller where used. The following paragraphs describe in detail the application. The first stage in the controller design was to applied the partition coefficient method.
For the design of the prototype, a quadruped mobile robot QuadCrawler, a commercial structure of robot, is used this robot is built on a light aluminum chassis that allows loads up to 2.26 kilograms, 8 actuators are provided for its displacement to get two degrees of freedom per leg. A Basic Stamp microcontroller and a PSC Power Source Controller for control and provision of necessary power for the actuators is provided with the kit. Three PING))) ultrasonic sensors are used for detecting the obstacle's distance. These sensors have a distance detection range from 3 cm to 3 m, and a detection angle of 40 degrees. The digital signal processor DSP 56F801 is used transmit the command from LabVIEW to the Basic Stamp microprocessor. The 56800 architecture of the family is Harvard based, allowing up to six operations per cycle of instruction 40 MIPS at 80 MHz. The 50F801 DSP and a computer with LabVIEW were used to implement the neuro-fuzzy controller. For communications between the computer and the robot, wireless serial communication was used, with devices that support Bluetooth technology. In the robot the EmbeddedBlue transceiver was used to provide the Basic Stamp standard Bluetooth connectivity. The computer used a Bluetooth USB adapter F8T001 to provide it with a Bluetooth communications interface.
Eight rechargeable batteries from 1.2 volts and AA size are used to create a 9 volts dc power supply for the Basic Stamp and the DSP while six from these batteries a 7.2 volts dc supply is used in the servos.
The program was implemented by LabVIEW and the DSP was relegated to the control movement of the robot to manage different walking types.
The computer communicates bidirectionally, as shown in
In
Implementation
The three proximity sensors were set on the front side of the robot to measure left, center, and right obstacle position. Fuzzy membership functions are tuned by FCM and triangular functions were used, in order to simplify the implementation. These fuzzy memberships where fixed to four clusters
In order to obtain the performance of the robot, different speeds where tested with a fixed number of walking cycles, displaced distance and the turning degree were measured to obtain the speed functions that control the robot behavior, some of this measures are shown below in Table 2.
With this information the output of the fuzzy rules were proposed, as shown in Table 3, different combinations for the fuzzified inputs have different combinations of speed outputs.
A signal that represents the controller output was modeled using a trigonometric neural network with 35 neurons, and was trained with this information.
The predictive method and the FCM algorithm were implemented in the controller. Successive measurement that were made were added to a vector that was used to fix the shape of the fuzzy membership functions.
Results
We now compare the dynamic behavior of the navigation system using the neuro-fuzzy controller with the predictive method (NFP) and without the predictive method (NF).
When the NF was tested the results showed that the robot was able to navigate around the maze avoiding the walls but it was not be able to avoid dynamic objects which moved in a linear trajectories at constant speed around 10 Km/h.
After the training process the NFP could navigate and avoid dynamic objects. The results present a good behavior when the robot is moving in the maze It also may be observed that it takes sometime to walk straight through the maze. The movements are oscillating and tend to get closer to the walls
The following tests were done with the NFP controller. The robot was set in the same environment without previous knowledge of it.
When dynamic obstacles were introduced to the environment the robot was able to avoid them.
The use of the predictor method and the FCM algorithm helps to improve the performance of the system, allowing the robot to avoid dynamic objects and get a better result compared with the neuro-fuzzy controller without predictors. The system without predictors also showed good results. For implementation ease the FCM algorithm may alternatively be omitted as the use of the fixed triangular fuzzy membership functions is good.
Two predictor algorithms were compared in order to obtain the best system. After several tests with narrow and wide distances between the walls of the labyrinth, we found that the best prediction system was the exponential smoothing, followed by the Box & Jenkins. The minimum variance predictor results were unacceptable. Table 4 has the abbreviations for the graphics.
Since the neuro-fuzzy controller was applied the obstacle avoidance problem was achieved in an efficient manner in unknown environments. The performance of the proposed controller was an enhanced version of a previous system adapting to the environment in which the robots are moving adjusting the system in a real time. The predictive method allows the robot anticipate its movements, obtaining a better way to avoid obstacles. The execution of the system may be done in real time platform, because of the neural networks based on trigonometrical series may be trained faster than the conventional neural networks, in addition the fuzzy systems processing time is small, the part of the controller that is off-line is to get the number of the membership functions.
Performance of the system may also be improved by implementing genetic programming for getting knowledge in a linguistic form. The one aspect of this concept is to get information from a real plant in a linguistic manner by an autonomous program. This program is able to generate a set of rules for describing a real system. The reason to describe it in a linguistic faun is because the main way of communication is using linguistic expressions, so if we implement a model based on linguistic rules, the model is understandable without a deep knowledge of mathematics or physics. This makes the model more accessible for a lot of persons that required understanding it in a clear way.
Consequently, we obtain an interface between the user and the system in linguistic form. The autonomous system preferably only requires the inputs and outputs of the system for getting a set of rules which are the minimum number of rules which describe the real plant.
For example, if a user wanted to describe an electric vehicle the system may fix a set which includes the inputs and outputs into the system, the result is a set that mapping the inputs and outputs of the real plan in the linguistic form. The system may generate new information by this mapping.
Basic Theory
In 1992 John Coza developed a variation of Genetic Algorithms that is able to automate the generation of computer programs. Evolutionary Algorithms, also known as Evolutionary Computing, are the general principles of natural evolution that can be applied to completely artificial environments. Genetic Algorithms and Genetic Programming are types of Evolutionary Computing. Genetic programming represents computing methods that give to a system the possibility to generate optimized programs or computer codes. In GP if . . . then . . . rules are coded in to individuals, which often are represented as trees.
For example: in a wheel robot, If left is far & center if far & right is close then turn left.
Accordingly to Banzhaf (Banzhaf et al., 1998) “genetic programming, shall include systems that constitute or contain explicit references to programs (executable code) or to programming language expressions . . . ”.
Length in Genetic Algorithms
In Genetic Algorithms the length of the chromosome is fixed, which can restrict the algorithm to a non optimal region of the problem in search space, because of this using tree representation, in Genetic Programming we can have chromosomes of almost any length.
Genetic Programming Stages
Genetic Programming uses four steps to solve problems:
1) Generate initial population of random compositions of the functions and terminals of the problem (computer programs).
2) Execute each program in the population and assign it a fitness value according to how well it solves the problem.
3) Create a new population of computer programs
4) The best computer program that appeared in any generation, the best-so-far solution, is designated as the result of genetic programming.
Just like in Genetic Algorithms, in Genetic Programming the stages are initialization, selection, crossover and mutation.
Initialization
There are two methods for creating the initial population in a GP system:
1) Full: selects nodes from only the function set until a node is at a specified maximum depth.
2) Grow: randomly selects nodes from the function and terminal set which are added to a new individual.
Selection
The most used method for selecting individuals in GP is tournament selection, because it does not require a centralized fitness comparison between all individuals. The best individuals of the generation are selected.
Crossover
In a random position two trees interchange their branches, but it should be in a way such that syntactic correctness is maintained. Each offspring individual will pass to the selection process of the next generation.
Mutation
In Genetic Programming the generated individuals are selected with a very low probability to be mutated. When an individual is mutated, one of its nodes is selected randomly and then the current sub tree at that point is replaced with a new randomly generated sub tree.
It is important to state that just like in biological mutation, in GP mutation the genotype may not change but also the resulting genotype could be completely different.
Thus, a preferred embodiment of the present invention includes a general neuro-fuzzy controller which may be used in different applications such as Robotics, Automobile, etc. The controller was designed and validated by LabVIEW but it may be programmed in any programming languages like C code, Pascal, or Fortran, for example. Additionally, the controller may be adjusted for controlling any kind of system.
Some of the advantages of this controller are:
It does not require an expert for tuning the membership functions as conventional fuzzy logic does.
The predictor systems help the controller to improve the performance.
The neural networks only need one epoch for training then may be implemented. This allows to used them on line.
Neural networks are used in the fuzzification and defuzzification process.
The neuro-fuzzy controller is a general controller which may be applied in different plants.
The whole controller is autonomous because only requires information from the input and output for working properly.
The controller adapts online taking samples from the system.
While particular elements, embodiments, and applications of the present invention have been shown and described, it is understood that the invention is not limited thereto because modifications may be made by those skilled in the art, particularly in light of the foregoing teaching. It is therefore contemplated by the appended claims to cover such modifications and incorporate those features which come within the spirit and scope of the invention.
The present application claims the benefit of U.S. Provisional Application No. 61/197,484, filed Oct. 28, 2008, entitled “Intelligent Control Toolkit For LabVIEW.” which is hereby incorporated by reference in its entirety.
Number | Name | Date | Kind |
---|---|---|---|
5740323 | Nomura et al. | Apr 1998 | A |
6381591 | Hoffmann et al. | Apr 2002 | B1 |
6456990 | Hoffmann et al. | Sep 2002 | B1 |
20030102373 | Swartz et al. | Jun 2003 | A1 |
20090077418 | Navarro et al. | Mar 2009 | A1 |
20090276391 | Kofman et al. | Nov 2009 | A1 |
Entry |
---|
Ponce, P. et al. “Neuro-Fuzzy Controller Using Labview”, Proceedings of the 10th IASTED International Conference Intelligent Systems and Control, Nov. 19-21, 2007. ISBN: 978-0-88986-707-9. pp. 487-493. |
Hoffmann, F. et al. “Genetic programming for model selection of TSK-fuzzy systems”. Information Sciences 136. 2001. pp. 7-28. |
Ponce-Cruz, P. et al. “A Novel Neuro-Fuzzy Controller Based on Both Trigonometric Series and Fuzzy Clusters”. IEEE. 2006. pp. 407-412. |
Govindasamy, K. et al. “Fuzzy System with Increased Accuracy Suitable for FPGA Implementation”. International Conference on Intelligent Engineering Systems, INES2008. Feb. 25-29, 2008. pp. 133-138. |
Ponce, P. et al. “A Novel Neuro-Fuzzy Controller Genetically Enhanced Using LabVIEW”. IEEE. Nov. 2008. pp. 1559-1565. |
Jerome, J. et al. “LabVIEW based Intelligent Controllers for Speed Regulation of Electric Motor”. IMTC2005—Instrumentation and Measurement Technology Conference. May 17-19, 2005. IEEE. pp. 935-940. |
Vassilopoulos, A.P. et al. “Adaptive neuro-fuzzy inference system in modelling fatigue life of multidirectional composite laminates”, Computational Materials Science, vol. 43, Issue 4, Oct. 2008, pp. 1086-1093. http://dx.doi.org/10.1016/j.commatsci.2008.02.028. |
Toosi, A.N. et al. “A new approach to intrusion detection based on an evolutionary soft computing model using neuro-fuzzy classifiers”, Computer Communications, vol. 30, Issue 10, Jul. 31, 2007, pp. 2201-2212. http://dx.doi.org/10.1016/j.comcom.2007.05.002. |
Rummel, C. “Quantification of intra- and inter-cluster relations in nonstationary and noisy data”. Phys. Rev. E vol. 77, Issue 1, 016708, The American Physical Society. Jan. 17, 2008. DOI:10.1103/PhysRevE.77.016708. |
Number | Date | Country | |
---|---|---|---|
20100138364 A1 | Jun 2010 | US |
Number | Date | Country | |
---|---|---|---|
61197484 | Oct 2008 | US |