Ain Shams Engineering Journal (2013) 4, 805-829

Ain Shams University Ain Shams Engineering Journal

www.elsevier.com/locate/asej www.sciencedirect.com

ELECTRICAL ENGINEERING

Neuro-fuzzy inverse model control structure of robotic manipulators utilized for physiotherapy applications

A.A. Fahmy a *, A.M. Abdel Ghany b

a Cardiff School of Engineering, Cardiff University, Cardiff CF24 3AA, UK

b Electrical Power and Machines Department, Faculty of Engineering, Helwan University, Cairo, Egypt

Received 5 October 2012; revised 15 January 2013; accepted 16 February 2013 Available online 31 March 2013

KEYWORDS

Dynamic systems; Fuzzy systems; Fuzzy-PID controllers; Neuro-fuzzy systems; Robot manipulators

Abstract This paper presents a new neuro-fuzzy controller for robot manipulators. First, an inductive learning technique is applied to generate the required inverse modeling rules from input/output data recorded in the off-line structure learning phase. Second, a fully differentiable fuzzy neural network is developed to construct the inverse dynamics part of the controller for the online parameter learning phase. Finally, a fuzzy-PID-like incremental controller was employed as Feedback servo controller. The proposed control system was tested using dynamic model of a six-axis industrial robot. The control system showed good results compared to the conventional PID individual joint controller.

© 2013 Ain Shams University. Production and hosting by Elsevier B.V.

All rights reserved.

1. Introduction

As a consequence of the rapid development in Fuzzy Logic Systems (FLSs) and neural networks (NNs) techniques in the 1980s, great progress in fuzzy neural networks (FNNs) design and implementation techniques was made. Since the early 1990s, FNN have attracted a great deal of interest because such systems are more efficient and more powerful than either NN or FLS alone. Different types of FNN have been presented in the literature. These types can be identified based on the structure of the FNN, the fuzzy model employed, and the learning algorithm

adopted. On the one hand, according to the FNN structure and learning algorithm, the most commonly used and successful approach is the feed-forward and recurrent structure model using the BP learning algorithm. On the other hand, according to the fuzzy model adopted, there are two types of fuzzy models that can be integrated with a neural network to form a FNN. These two models are the well-known Takagi and Sugeno model [35] and the Mamdani-model [14,15]. However, Mamdani-mod-el based FNN represent more transparent neuro-fuzzy systems compared with TS-model based FFNN.

The control of a multi-input multi-output (MIMO) plant is a difficult problem when the plant is non-linear and contains dynamic interactions between the plant variables. Robot manipulators, with two or more joints, are of such type of systems. Conventional methods of designing controllers for a MIMO plant such as a multi-joint robot generally require, as a minimum, an accurate knowledge of the form of a mathematical model for the plant. For robot manipulators, it is almost

* Corresponding author. Tel.: +44 (0)2920874173. E-mail address: fahmyaa@cf.ac.uk (A.A. Fahmy). Peer review under responsibility of Ain Shams University.

2090-4479 © 2013 Ain Shams University. Production and hosting by Elsevier B.V. All rights reserved. http://dx.doi.org/10.1016/j.asej.2013.02.010

impossible to identify precisely such a model and its parameters. Moreover, during operation, the dynamics of the robot may change significantly due to varying loading conditions. As a result, it is difficult to obtain an accurate mathematical model to allow model based controllers to be accurately applied. This led to the so-called approximate adaptive model control techniques. The dynamics of industrial multi-link robotic systems is normally very difficult to be mathematically modeled as shown in Appendix B. However, if the dynamics is know, for physiotherapy applications, the dynamics is contentiously changing from one patient to another and for the same patient as the rehabilitation process progress with time. Non-linear sliding mode control has been applied for robotics control for rehabilitation application when the robot nonlinear structure is well defined or with lower number of links robotic system. For example, a 2DOF exoskeleton robot was utilized to provide naturalistic range movement of the elbow joint [30]. In Fareh et al. [13], a hierarchical control is presented for a redundant adaptable trunk to track a desired trajectory in workspace. A sliding mode technique is used to develop the hierarchical robust control. The control strategy consists of controlling the last joint by assuming that the remaining joints follow their desired trajectories, then by following the same strategy backward, the inverse kinematic problem is solved by the pseudo-inverse of the Jacobean. An adaptive control technique for a parallel robot is proposed for trajectory tracking in Achili et al. [1]. This approach is based on adaptive neural network and sliding mode technique to design a robust controller with respect to external disturbances in order to improve the trajectory tracking. The neural network is developed to estimate the gravitational force, frictions, and other dynamics. The control law combining the neural network and the sliding mode is synthesized in order to attract states model to the sliding surface. An online tuning gain scheduling MIMO neural dynamic DNN-PID control architecture was presented in [29] to control a non-linear 2-axes robot arm to improve its joint angle position output performance. The proposed controller was implemented as a subsystem to control the real-time 2-axes robot arm system so as to control precisely the joint angle position when subjected to load variations. The results demonstrated the feasibility and benefits of the control approach in comparison with the traditional PID control strategy. The proposed gain scheduling neural MIMO DNN-PID control scheme forced both joint angle outputs of 2-axes robot arm to track those of the reference simultaneously under changes of the load.

In the last few decades, research effort has been directed at the design of intelligent robotic controllers using FLS. These schemes provide non-linear behavior that is determined exclusively by the designer, lower sensitivity to plant parameter variations, and simplicity of implementation. Fuzzy control has been used for direct Feedback control of robot manipulators [11,20,36]. In these examples, no adaptation for the rule base or membership functions of the fuzzy controller was carried out online [8]. Although the idea of using fuzzy controllers for robotic manipulators was introduced in the early 1990s, almost no systematic design procedure can be located in the literature. For example, the shape and location of the membership function for each fuzzy variable must be obtained using a heuristic (or trial-error) approach. Also, when the human expert cannot easily express his knowledge or experience in the form of linguistic ''If-Then'' control rules, it is not easy to construct the control rules.

In most inverse model neural control techniques, a Feedback controller (servo controller) is used along with the feedforward neural controller to improve the disturbance rejection capabilities of the control system. As learning proceeds, the error signal will reduce, and the role of the feed-forward neural controller increases while that of the Feedback controller decreases [27]. Although the total torque acting on the robot is the sum of the Feedback torque and the feed-forward torque, these two play very different roles in the robot control. The Feedback torque is used for clumsy but robust control at an early stage of learning, while the feed-forward torque is necessary for smooth control and fast movement of the robot. Usually, conventional P, PD, or PID controllers are used as the Feedback controller in many reported works [3].

Robotic physiotherapy applications are classified as repeated trajectory control for patients that can pursue sudden unpredicted jerking movements in the patient limbs during the movement, while the human or robotic physiotherapist needs to adapt to these changes with time as the level of limb movement resistance, and its occurrence frequency reduces by progress of the therapy repetition. Surgical manipulators are classified as sensitive Hybrid Force/position control application for limited variable boundary loading force conditions, in most cases is operated in the Master/Slave control scheme to replicate the surgeon hand movement and applied surgical force interface. The robotic physiotherapy application requires mainly the capabilities for learning the patient loading profile that is unique for each patient, while being able to adapt to this profile as the training proceed due to improvement of the patient health condition over time. This kind of application requires medium accuracy and precision due to the flexibility in the patient limbs that can account and absorb small deviations. While the main problems lie in the control system ability to adapt to memorize the patient health condition profile, this is unique to each patient and is changing with rehabilitation progress. This memorization is done in the form of the learned parameters in an adaptive neuro-fuzzy network during each rehabilitation session.

This paper presents an adaptive neuro-fuzzy modeling and control system for robot manipulators utilized for physiotherapy application based on input/output data [10], Wang and Mendel, [38,39]. For this purpose, an inductive learning technique introduced by Bigot [7] was modified and used for fuzzy rule generation during the off-line structure learning phase. A fully differentiable fuzzy neural network was developed to construct the inverse dynamics part of the controller. A fuzzy-PID-like incremental controller was developed and used as Feedback servo controller. The proposed control system was tested using the virtual dynamic model of the Puma 560® robot arm. Pro/Mechanica® visual dynamics simulation package was used to simulate the robot manipulator. This package allows simulation of dynamic systems by transferring the assembly CAD model from Pro/Engineer®, allows the user to specify masses, loads, drive forces, torques, friction, etc., and many other dynamics parameters of the modeled assembly. This package generates equations of motion, inertia parameters, orientation matrices, etc., for each body in the model and for the whole assembly from the geometry of the modeled system. The most powerful part of this package is that it allows the user to interface to the modeled system with a user specified C++ subroutine. This subroutine allows the user to get information about the modeled system and to design a

controller for the assembly. The Puma 560® industrial robot manipulator is used for the simulation process.

The remainder of the paper is organized as follows. Section 2 outlines the inverse dynamic modeling process for the robot arm in the off-line structure learning phase. Section 3 presents the overall structure of the proposed neuro-fuzzy controller and the neuro-fuzzy network. Section 4 describes the structure of the fuzzy-PID-like incremental Feedback servo controller and the online parameters learning phase. Section 5 compares the results of applying the proposed control system with those obtained with a conventional PID individual joint controller. Section 6 concludes the paper.

2. Inverse model identification of robotic manipulators

The forward dynamics of a robot manipulator is the determination of the joint displacement variables (h) according to a given set of manipulator joint torques (Ti), while the inverse dynamics of a robot manipulator is the determination of the joint torques required to cause certain joint displacements. Forward and inverse dynamics calculations are very complex, non-linear multi-input multi-output problems and can almost never be accurately calculated due to parameter variation, un-modeled friction, and backlashes. The parameters of these models are mostly obtained from CAD solid modeling or measured by disembodied robot, which results in inaccurate values. For a dynamic system with single input u and single output y, the system output at time interval k can be expressed in discrete form as:

y(k) =f{y(k - 1), y(k - 2),..., y(k - n), u(k - 1), u(k

- 1),..., u(k - m)g (1)

This equation can be used to represent any SISO dynamic system in discrete format and can be extended to represent MIMO dynamical systems as well. When input/output data are used, function f and integer n and m define the dynamic system. If n and m are given, the only task is to find function f. f does not change with time for time-invariant systems. Feed-forward neural networks can be employed to approximate f. Robot manipulators are assumed to be bounded-input bounded-output (BIBO) stable in presence of input, which means that Eq. (1) can be used to approximate robot manipulator dynamics. In the following subsections, an inductive learning technique is first used to automatically identify the inverse dynamics model structure from numerical observation data by generating fuzzy-type identification rules. Then, the obtained model structure will be arranged in a full-differentia-ble version of the Mamdani-type neural network for final tuning of the model parameters.

2.1. Virtual dynamics model for Puma 560® manipulator

The Puma 560® is the ''guinea pig'' of robotics research. It has been studied and used in countless experiments over many years and in many laboratories. The values of dynamics and kinematics parameters depend upon the choice of coordinate frames in which they are expressed. Fig. 1 represents the commonly used definitions for the Puma 560® robot arm coordinates. Table 1 lists the relative values for these coordinates in addition the actual joint ranges as it is listed in the

manufacturer's manual. With regard to model parameters for the Puma 560® robot arm, Armstrong and Corke [5] represent the most commonly used references for these parameters. For the purpose of creating a virtual model of the Puma 560® robot arm, physical robot dimensions are first used to create a CAD solid model for each link under Pro/Engineer®. Then, these links are assembled together to form the robot. The assembled robot is then passed to the associated virtual dynamics simulation program Pro/Mechanica®.

Table 2 lists the mass parameters for each link, while Table 3 lists the coefficients of friction for the first three links. Fig. 2 shows the obtained virtual dynamics model for. Pro/ Mechanica® calculates the remainder of the required parameters for the dynamics simulation. For example, Fig. 3 lists the inertia matrix parameters calculated by ''Pro/Mechanica®'' for link-1 of the robot around its center of mass.

2.2. Rule generation from observation data

Many techniques have been developed to generate approximate models from input/output data of complex systems. One of the most successful techniques is the creation of neural network model; however, this requires a great much effort to select the network structure and finally results in a non-transparent ''Black Box'' model. The other method, which does possesses transparency and does not require sophisticated mathematics, is the fuzzy logic model system. The classical approach for fuzzy rule generation involves the determination of appropriate antecedent and consequent fuzzy memberships partitions based on knowledge and experience of the designer. When expert knowledge is either unavailable or difficult to quantify, however, a more heuristic approach to system identification and fuzzy rule generation is necessary. An intuitive method for the generation of appropriate rules is based upon the clustering of the system input-output data [17].

Perhaps the most famous method has been presented by Wang [38]. This efficient technique first requires pre-defined input/output fuzzy membership functions. Based on these membership functions, a fuzzy rule is generated for each pair of input/output data. Each rule is stored in a decision table. However, there is a ''growing memory'' problem when more and more training examples become available, and more and more rules are created, so that the selection of the best rules becomes difficult.

The use of a fuzzy rule for the classification of an example is in many ways similar to the use of rule created via inductive learning [9,21]. The main difference is that, due to the notion of fuzziness, a particular example will have a particular ''degree of match'' {i rule(example)} with each rule [34]. This could be used for instance to evaluate how likely a rule is to classify an example properly. This ''degree of match'' is obtained by first assessing the membership degree of each example attribute value with regard to the corresponding fuzzy condition in the rule; {i condition(Input_Attribute_Value)}. For example; assume the input attributes are speed = 14 km/ h and distance = 57 m. For the rule IF Speed is zero AND Distance is long Then Brake is zero, the membership degrees are {i speed_zero (14)} = 0.4 and {i distance_long (57)} = 0.8. Using these membership degrees, the ''degree of match'' of an example to each rule can be assessed. Two main methods are available:

Figure 1 Coordinate definition for the Puma 560® robot arm.

Table 1 Link coordinate system for the Puma 560 ® robot arm.

Link Joint variable 0t at dt (mm) at (mm) Range

1 0i ±90 660.4 0 -160 to + 160

2 02 0 149.5 432 -225 to + 45

3 03 ±90 0 0 -45 to + 225

4 04 ±90 432 0 -110 to + 170

5 05 ±90 0 0 -100 to + 100

6 06 0 56.5 0 -266 to + 266

Table 2 Link mass values [kg].

M1 M2 M3 M4 M5 M6

13.00 17.4 4.8 1.18 0.35 0.13

Table 3 Coefficients of friction [Nm and Nm/rad.].

Link-1 Link-2 Link-3

Static Dynamic Static Dynamic Static Dynamic

8.43 3.45 7.67 12.77 5.57 3.27

- The first selects the minimum membership degree, and if an example contains N attributes, it is defined as:

fl rule(example)} = minfi condition.1 (Input Attribute.Value1), ..., i conditionN (Input Attribute. ValueN)}.

- The second uses the product of all membership degrees, and if an example contains N attributes, it is defined as:

fl rule (example)} = n Ifuzzyxondition (InputAttribute.Value)

for_each.attribute y

It is important to note that if one membership degree is equal to zero, for both methods, {i rule(example)} will also be equal to zero; this represents the case when one example is not covered by a rule.

2.2.1. Data generation technique

The first step in rule generation via observation data is the data collection strategy. For this purpose, random trajectories are applied to suitable gain P-controllers, as shown in Fig. 4. The resulting P-controller torques with random values and frequencies generated from the error signals are applied to the joints of the virtual dynamics model of the robot. These torques allow the robot arm to move in all directions in the three-dimensional space. The data consist of the applied torque, their correspond-ingjoint angles, joint velocities, and the Cartesian coordinates of the end-effector main reference point and are recorded for

Figure 2 Virtual dynamics model for the Puma 560® robot arm.

Figure 3 Pro/mechanica calculated parameters for link-1.

current and previous sampling intervals. The data collection test was performed for the first three joints as they are the main joints responsible for the reaching process of the robot arm.

The collected data will be used to construct the model of the inverse dynamics of the robot manipulator in two stages, a structure identification stage followed by parameters identification stage. Fig. 5 illustrates these two stages.

2.2.2. Inductive learning algorithm

The predefinition of the membership functions for both inputs and outputs used in Wang method [38] could be a difficult task. In fact, the problem of designing the membership function may be just as complex as designing the rules. The task of decomposition into membership functions can be seen as

Figure 4 Data collection test for the "Puma 560®'' robot arm.

relatively similar to the task of discretization in machine learning. One of the advantages of machine learning algorithms is that they permit the creation of compact models. In the next section, the fuzzy inductive learning algorithm dynafuzz [7] is briefly explained including the suggested modifications. This method uses an automatic technique for input membership function creation during the rule forming process. The algorithm is designed to extract fuzzy "If-Then" rules from training set. Firstly, a manual step is performed to divide the output domain to generate target classes. In this paper, the output is divided into equal, 50% overlapped Gaussian membership functions as shown in Fig. 6. The Gaussian function is selected to allow for further tuning of the output membership function parameters in the neuro-fuzzy network. The number of the output membership functions can be regarded as the degree of precision prescribed for the model. The higher this number is, the higher should be the accuracy of the created rule set; however, the number of rules will also be increased. This number therefore gives the user a degree of control over the size and precision of the model to be created.

Each example (E) (input record) is described in terms of a fixed set of m(no. of inputs) attributes (A1, A2,..., Am) (equivalent to linguistic variables) and by a class (output) value (CE). A range of values {(FImin, Vmax)} (equivalent to linguistic membership functions) is assigned for the ith attribute. Each created rule is composed of a number of conditions on each (or some of the) attribute(s) (Cdti) and by its class value (Crule). Each rule can be represented as follows: Cdt1 a Cdt2 a ■■■ a Cdtm fi Crule. Each condition takes the form (FImin 6 Ai 6 Vmax) for continuous attributes i. In order to create a rule set, this algorithm incrementally employs a specific rule forming process until all examples are covered. Three particular steps of this process are of interest for the development of the fuzzy model. The first step is to select a seed example (SE), which is the first example in the list not covered by previously created rules. The second step consists of employing a

specific search process to create a consistent and general rule covering the (SE). The main feature of this search is that the conditions for inputs are created automatically during the rule forming process. The inputs are not pre-discretized (not divided into membership functions). The result is a rule where all conditions will take the form (VL- < Ai < VLJ. These

\ illill Ulax. /

conditions might cover large areas in the example space. Thus, as the third and final step, the algorithm employs a postprocessing technique that reduces the coverage of some continuous attribute conditions to the training data range only. This avoids the coverage of "unknown" areas and reduces the presence of overlapping rules.

2.2.2.1. Seed example selection. A (SE) is selected from the examples that not covered by previously created rules. Then, the output class value (y°SEPU') (output fuzzy set) of (SE) is used as target class for the rule to be created. For instance, for the Gaussian membership function, the target class will be the fuzzy set {FSE(a, b, c)} in which the membership degree will be maximum. In the particular case of 50% overlapping membership functions, where the membership degree is equal to 0.5 for two adjacent membership functions, only one of them is considered. Another problem occurs, with a fuzzy rule, because there are various degrees for the coverage of an example. In particular, one example might be covered and classified by a rule, but its output value may have a low degree of belonging to the rule output membership function. This rule does not therefore properly represent the example. Thus, the ''fuzzy algorithm'' needs to create another rule for this example. In dynafuzz, the (SE) selected is the first example in the training list that is not covered by at least one previously created rule where the degree of belonging of its output value to the rule output fuzzy set {FSE(a, b, c)} is a maximum and P0.5.

2.2.2.2. Formation of a rule. During the selection of (SE), the targeted fuzzy set has been identified (FSE). Thus, for the

Initial Fuzzy

Input/Output

Final Fuzzy

Structure Identification

Parameter Identification Figure 5 Steps in the proposed neuro-fuzzy modeling.

Figure 6 Selected output membership functions.

discretization of the examples, it is proposed to classify as positive examples (belonging to the target class), those having an output value belonging to (FSE) with (i > 0) and to classify the remaining examples as negative. The search mechanism searches for rules that cover as many examples as possible from the target class and at the same time exclude examples belonging to other classes. The rule formation starts with a condition excluding the closest example not belonging to the target class. To find the closest example, a measure is used to assess the distance between any two examples for the ith attribute as follows:

examplel & example2

/Attr_Value_Ex.1-Attr_Value_Ex.2^\2 \Max_Attr_Value-Mm_Attr_Value )

where c is the sum over all attributes in the examples, At-tr_Value_Ex.1 and Attr_Value_Ex.2 are the values of ith attribute in these two examples, and Max_Attr_Value and Min_Attr_Value are the maximum and minimum known values for the ith attribute. Applying this distance measure, the closest examples not belonging to the target class and covered by the rules formed so far can be found. Thus, in the next iteration, the rule forming procedure considers appending only those conditions to the rule that exclude the closest examples. For a particular uncovered example, the algorithm takes the closest example not belonging to the target class and creates candidate conditions to exclude it. These conditions are formed using attributes having different values for the considered two examples. The format of the formed condition will be {(attribute name) > or < (the attribute value of the closest example)}. For instance, if the attribute value of an example for which a rule is being created is V = 5, and the attribute value of the closest example is V = 10 then the resulted candidate condition will be (V < 10).

By applying this procedure, the algorithm handles continuous attributes generated from random operation of the robot manipulator arm. Thus, there is no need to pre-process the data in order to discretize the continuous input attribute data. The algorithm identifies splitting points for each continuous attribute range during the learning process. Each condition will takes the form (Vj < A' < V2) for continuous attributes, where V\ and V2 are continuous values included in the ith continuous attribute range (F^, Vmax).

2.2.2.3. Rule post-processing. The fuzzy logic representation permits handling of uncertainties and makes the transformation of condition ranges into membership functions more straightforward. At the end of rule forming process, the class

of the rule (positive) is replaced by the targeted fuzzy set (Fse), and each continuous conditions is transformed into a fuzzy condition using the following method in order to obtain the final fuzzy rule. Considering the condition (V < A' < JV,), it is transformed into a membership function F(a, b, c):

- If Vl and V2 exist; a — V\; b — V\\ and c = (V2 + Fl)/2.

- If V1 is equal to —i; a — —i; b — V2; and c = Vmjn, which is the minimum value.

- If V2 is equal to +i; a — V\; b — +i; and c — VmM, which is the maximum value.

These values are then used to generate equivalent Gaussian and sigmoidal membership functions to be used in the Mamdani-type neuro-fuzzy network as shown in Fig. 7.

2.3. Inverse dynamics rules

Many neural network structures are used in the literature to model robot manipulators [2]. Unlike the T-S fuzzy model, to model the inverse dynamics of the robot arm in a Mamda-ni-type neuro-fuzzy network using the data recorded, a fuzzy rule base that represents the inverse dynamics of the robot arm is generated first using the inductive learning rule generation algorithm explained [18]. Eq. (3) expresses an approximate relation between the desired joint angles trajectories of the robot arm, the required joint torques to achieve this, the current joint angles, and the current torques of the robot manipulator,

nk k+1 ;hn; 1 >

k+1 k ... k ;n ; 1; ';n}

Tk+1 ffi f(Ti,..., Tk, h

where T is the joint torque and is the joint velocity. Using Eq. (3), three sets of fuzzy rules can be generated representing the robot inverse dynamics. The entire training set is composed of 39,821 examples. The outputs have all been decomposed into 11 Gaussian membership functions. The resulting model is composed of 228 rules for the first three links compared to more than 14 hundred rules generated using Wang's method.

3. Proposed controller structure

The structure of the proposed control system resembles the additive feed-forward control as shown in Fig. 8.

It consists of a feed-forward path controller in addition to a Feedback path controller. The net control action applied to the robot joints is the sum of the two controllers output [4].

3.1. Forward path neuro-fuzzy controller

This path is a neuro-fuzzy approximate model of the inverse dynamics for the robot arm. The first step is to generate this model off-line. The approximate inverse dynamic network has to be trained online to compensate for any external disturbances and/or reactions resulting from the robot attached load. This online training scheme utilizes the Feedback controller response to adjust the network weights, Pham and Fahmy [23,24].

3.1.1. Softmin and softmax functions

The proposed neuro-fuzzy network is a feed-forward connec-tionist representation of a Mamdani-model based FLS. In order to achieve a suitable trade-off between the transparencies of the neuro-fuzzy system, the ease of mathematical analysis, the net-

work has to employ differentiable alternatives for the logic-min and logic-max functions to implement its decision-making mechanism. For this purpose, a differentiable alternative of the logic-min function termed softmin and a differentiable alternative of the logic-max function termed softmax are presented [12,33]. Using these two differentiable functions to implement the network decision-making mechanism allows a more accurate calculation of the partial derivatives necessary for the back-propagation learning algorithm. In [6], an analytical form of the logic-min function termed softmin is given by:

softmin{a,i, i = 1, 2,..., n) = ' (4)

where, ai is the ith argument and the parameter f controls the softness of the softmin function. As f fi 1, softmin function filogic min. However, for a finite f, softmin becomes a multi-argument analytical approximation of the logic-min

Backpropagation Feed-back-error

Learning . „

On-line ! Adaptation !

dynafuzznn Inverse Dynamic — model for the '

robot arm

Robot Arm

FPID Servo Controller

Figure 8 Proposed controller structure.

Output

Rule nodes

Input term nodes

Layer 1

Figure 9 Structure of the proposed neuro-fuzzy network.

function. Estevez and Nakano [12] introduced the multi-argument softmax function used to approximate both the logic-max and the logic-min function with a proper selection of parameters. Furthermore, based on De Morgan's law, Shankir and co-workers [33,42] presented a multi-argument alternative of the logic-max function termed softmax as a logic complement of the above mentioned sofmin function:

softmax(ai , i = 1,2 ,

n — —far i=iaie

where a, — iA. and ai — 1 — ai.

These two differentiable functions will be utilized as the inference mechanisms within the neuro-fuzzy network.

3.1.2. Dynafuzznn network structure

Fig. 9 presents the structure of the proposed network. It consists of a six-layer feed-forward representation of a Mamdani-model based FLS Pham et al. [25,26]. The network employs time-delayed Feedbacks from output layer to input layer. The network structure is similar to other Mamdani-model based FFNN in the first four layers structure as in Lin and Lee's FFNN [16] and in Berenji and Khedkar's FFNN [6]. The difference is in the representation of the defuzzification

function, which is represented using the last two layers (layer five and layer six) instead of one layer only. In general, a node in any layer of the network has some finite fan-in of connections represented by weight values from other nodes and fan-out of connections to other nodes. Associated with the fan-in of a node is an aggregation function f that serves to combine information, activation, or evidence from other nodes.

Using the same notation as in [16], the function provides the net input for such a node as follows:

inputn

j u, uk,... ,up \

I i- i- i- I ,... ,wp J

where p is the number of fan-ins of the node, w is the link weight associated with each fan-in, u is an output of a node in the preceding layer associated with the fan-in and the superscript k indicates the layer number. A second action of each node is to output an activation value as a function of its net input,

output — ok — ak(fk) (7)

where ak(-) denotes the activation function in layer k. The functions of the nodes at each of the six layers of the proposed network are described next.

Layer 1: Nodes at layer one are input nodes, which represent input linguistic variables. Layer one contains n nodes, which receive a crisp input vector X = (x,,..., xn). The nodes in this layer simply transmit input values directly to the next layer. That is,

f — U — xi and a! — f

The link weights at layer one are fixed to unity.

Layer 2: Nodes at layer two are input term nodes which act as membership functions to represent the terms of the respective n input linguistic variables. An input linguistic variable x in a universe of discourse U is characterized by A(x) = {Alx,A2x,..., Am}, where A(x) is the term set of x, that is, the set of the generated membership functions for each input derived from inductive learning of the linguistic values of x, as explained previously. Layer two therefore accommodates n independent term sets, where each term set corresponds to an input xi and is partitioned to mi terms representing input membership functions. The function of each node j in a term set i is to calculate the degree of membership of the input xi with respect to the membership function associated with the term set Aj(xi) according to the specific equation of this membership function:

{(wl * a1) - mj}

and a2,. = e

2 -f2 2 — o flj

for Gaussian functions

f2_7 *{ H * aQ - mij}

fy — Ibjl

for Left sigmoidals

7 *{bj- (w2 * a,')}

and a2

lj 1 + f

and a2

lj 1+fj

for Right sigmoidal functions

where my and r y are, respectively, the center (or mean) and the width (or variance) of the Gaussian function, and by is the characteristic value for the sigmoidal function. my, ry, and by all calculated from the (a, b, c) parameters generated for each membership function from the off-line inductive learning stage. Hence, a link weight at layer two w2 can be interpreted as an adjustable free parameter of the input membership function. The tuning of this parameter (link weight) has the effect of tuning the membership function parameters (a, b, c).

Layer 3: The nodes at layer three are rule nodes which have been generated during the off-line inductive learning stage explained previously, where each node associates one term node from each term set to form a condition part of one fuzzy rule if it is part of that rule. Hence, the rule nodes should perform the logic-min operation if the min interpretation of the sentence connective "and" between the antecedents of a fuzzy rule is employed, or the algebraic product if the product interpretation of the sentence connective "and" is employed. In the proposed neuro-fuzzy network, the min interpretation is employed; consequently, the logic-min function is replaced by the softmin function. Therefore, the function of the rth rule node using softmin can be written as follows:

f — softmin [u!, U,

q i i —11

— fr

where r = ',...,R, and R is the number of rules or rule nodes in layer three, q is the number of inputs for that particular rule, ut is the ith input to layer three, and f is an index representing the softness of the softmin function. All link weights at this layer are fixed to unity to transmit only the membership degree of the linguistic input to the rule interpretation mechanism.

Layer 4: The nodes at layer four are output term nodes which act as membership functions to represent the output terms of the respective I linguistic output variables (in this case I = 3). An output linguistic variable y in a universe of discourse W is characterized by F(y) — <Fly,F2y,...,F,' j, where F(y) is the term set of y which is equal to ', in this case, that is the set of the class membership functions for each output, as explained previously, representing the linguistic values of y. Consequently layer four accommodates three independent term sets, where each term set corresponds to an output yi and is partitioned to ,, terms representing output membership functions. The nodes in layer four should perform the logic-max operation to integrate the fired rules that have the same consequent. In the proposed neuro-fuzzy network the logic-max function is replaced by the softmax function. Therefore, the function of each term node y in the output term set i can be written as follows:

fjj — softmax(u\,uj ,..., U

El iUe-fU EL ie-fU

and a4j f4j

where p is the number of rules sharing the same consequent (the same output term node),ui is the ith input to layer four, and f is an index representing the softness of the softmax function. Hence, the link weights at layer four are fixed to unity.

Layer 5: The number of nodes at layer five is 21, where I is the number of output variables, that is, two nodes for each output variable. The function of these two nodes is to calculate the denominator and the numerator of an approximate form of Mean of Maxima (MOM) defuzzification function [32,31] for each output variable. The functions of the two nodes of the ith output variable are described as:

fm — 4 * mij and 4 — fn,

fd,— a4 and 4 — A

(12) (13)

where fni and fdi are, respectively, the node functions of the numerator and the denominator nodes of the ith output variable. my is the center (or mean) of the Gaussian function of the yth term of the ith output linguistic variable y. Layer five employs 21 weight vectors, with two weight vectors for each output variable. The first link weight vector connects the numerator node of the ith output to the term nodes in its term set, and its components are denoted by wny5. Each component of this weight vector represents the center (or mean) of the membership function of the yth term of the term set of the ith output variable. The second link weight vector connects the ith output denominator node to the term nodes in its term set, and its components are denoted by w5dy. Hence the link weights at layer five are fixed to unity.

Layer 6: The nodes at layer six are defuzzification nodes. The number of nodes in layer six equals the number of output linguistic variables. The function of the ith node corresponding to the ith output variable can be written as follows:

f6—:

—f and у,—

where w6ni and w6di are layer six link weights associated with each output variable node. These two link weights represent a scaling factor of an output variable.

3.1.3. Neuro-fuzzy network parameters tuning

The physiotherapy application requires mainly the capabilities for learning the patient loading profile that is unique for each patient and changing during each rehabilitation session, while being able to adapt to this profile as the training proceed due to improvement of the patient health condition over time. Moreover, the motion of the trajectory must be flexible enough to cope for the jerking movement of the patient limb during the exercises by reversing the trajectory or relaxing the motion speed with the ability to halt the operation if the patient limb became very stiff for safety purposes. Following the network construction phase, the network then enters the parameter learning phase to adjust its free parameters through online adaptation. The network adjustable free parameters were selected to be centers (m^s) of the output membership functions of the term nodes in layer four as well as the link weights at layers two and six. The supervised learning technique is employed along with the back-propagation learning algorithm to optimally tune these parameters. The problem for the supervised learning can be stated as: Given n input patterns xi(t), i = 1,...,n, and l desired output patterns yi(t), i = 1,...,l, the fuzzy partitions, and the fuzzy rule base, adjust the network free parameters optimally. In the parameter learning phase, the network works in the feed-forward manner, that is, the goal is to minimize the following error function:

E — 1 (y(t)-y„et(t)}2 (15)

where y(t) is the desired output, and ynet(t) is the current network output. For each training data set, starting at the input nodes, a forward pass is followed to compute the activity levels of all the nodes in the network. Then, starting at the output nodes, a backward pass is followed to compute the rate of change of the error function with respect to the adjustable free parameters for all the hidden nodes. Assuming that (w) is the adjustable free parameter in a node, then, the general learning rule can be written as follows:

Dw — - — dw

w(t + 1) — w(t)+ gDw

(16) (17)

where g is the learning rate; then using the chain rule, the partial derivative can be defined as follows:

@{y(t)-ynet(t)}

@{y(t)-ynet(t)} dE da df da df dw

dE df df dw

Using the last learning rule, the calculations of the backpropagated errors as well as the updating of the free parameters can be described next starting at the output nodes:

Layer 6: Using Eqs. (14) and (18), the adaptive rule to tune the weights of layer six is derived as follows:

dE _ dE da6 df6

— щ * f * Щ,

<(t + 1) — w6,(t)+g6

— {y(t) ynet(t)} :

dE dE da6 df6 f ( . ( „ * a5m

— äöf * f * nwrr -{y(t)-ynet(t)}* tw^T^

w6,(t + 1) — w6,(t)+g6

(19a) (19.b)

(20.a) (20.b)

where g6 is the learning rate of the link weights at layer six. The propagated error from layer six to the numerator and the denominator nodes at layer five are derived as follows:

6 dE dE dai6 dfi6

^ d^r Щ * f * dir -{y(t)-ynet(t)}*

ddi—S—S * S * S—-{y(t)-ynet(t)}*

(21.a)

-w6. * a5.

dal daf df6 dad

(21 .b)

Layer 5: At layer five, no adjustment is required for the link weights connected to the denominator nodes, while an adjustment is required for the link weights wnijs which represent the centers mijs of the output membership functions. Consequently, using Eqs. (10) and (18), the adaptive rule to tune the free parameters layer five is derived next. The adaptive rule to tune the centers of the output membership functions can be derived as follows:

= dE* %L = ** a4

dmij daii dfni dmij

(22.a) (22.b)

where g5 is the learning rate of the adjustable parameters (m^s) at layer five. The propagated error from layer five to the jth node in the ith term set in layer four is derived as follows:

dE dal:

f da4j

Щ, * f * f — <d-* -)+ «

Layer 4: No adjustment is required for the link weights of layer four. Only the error signals S4rs need to be calculated and to be propagated to a rule node r in layer three. Each one of these error signals is a summation of L propagated error signals di, one error signal from a specific node j of each term set i, where i = 1,..., L and L is the number of output variables (or term sets). Using Eq. (3.18), the error signal ¿4 is calculated as follows:

d4 — E^ — E

(V * da4j *

\dj dfj daj)

di* di

di* di

Then from Eqs. (5) and (11) j1'

dfiL= -{(1 - Cap * e-dal

- f * e

1" ijm

-f(öL»

if the jth term node at the ith term set at layer four is connected to the rth rule node at layer three, otherwise,

da3r 0

where p is the number of rules sharing the sameyth output term node, and u4m is the complement of the mth input to the yth output term node at the ith term set at layer four.

Layer 3: Similar to layer four, no adjustment is required for link weights at layer three. Only the error signals ¿3s need to be calculated and propagated from the rth rule node at layer three to the jth term node at the ith term set at layer two. Each one of these error signals is a summation of p propagated error signals ¿3m from layer three, where m = ',...,p, and p is the number of rules which share the same jth term node at the same ith input term set at layer two. Using Eq. (18), the error signal ¿3 can be calculated as follows:

^Sm * @fm * @a"J

Then from Eqs. (L) and (10),

dal @fm

at. d¿2j

{ (1 - fajj * e-f4 * £ N 1e-f""i + f * e-fa2* £ N 1u"¡¡* e-^}

(S N 1e-f"m')2

if the jth term node at the ith input term set in layer two is connected to the rule node m at layer three, otherwise,

where N is the number of input term sets and u3mi is the ith input to the rule node m in layer three.

Layer 2: Using Eqs. (18) and (9) the adaptive rule to tune the weights at layer two is derived as follows:

@E @E dalj dfij da2 — - J - — d - *

dw2 @4 dft dw2

@f'" dw2

wjt + 1) = wj(t)-

(26.a) (26.b)

where -J- is calculated as follows:

= —ef2

1+e ij

for Gaussian functions for Left sigmoidal functions

for Right sigmoidal functions

and TT? is calculated as follows:

_ 2*a¡1 f(

w2 *a: I-mi

-7*a1 lb

^ for Gaussian functions

for Left sigmoidal functions

= for Right sigmoidal functions

where g2 is the learning rate of the link weights in layer two. The propagated error from layer two to the ith input node at layer one is derived as follows:

d¿ * M * da]

dl * @af * M

°ij f da1

_ ^ f(w

where ^ is calculated as follows:

: IbijI

for Gaussian functions for Left sigmoidal functions for Right sigmoidal functions

and -r-j is calculated as mentioned above.

Layer 1: The nodes in this layer just transmit input values to the next layer directly without any processing. So, the link weights at layer one are fixed to unity, and no tuning is required in this layer. Following the construction phase and the learning phase, an online tuning process is performed to obtain the optimum mapping for the inverse kinematics and inverse dynamics of the robot manipulator.

3.2. Feedback path servo controller

This controller is mainly utilized to deal with the disturbances from the external load in early learning stages. The controller receives the error between the desired and actual joint angles. It generates a control action, which is combined with the action from the feed-forward controller to form the net torque applied to the joints of the robot. In this paper, a new Fuz-zy-PID controller [33] is adapted with extended rules and utilized as the Feedback servo controller. This controller functionally performs fuzzy derivative and fuzzy integral functions, so that no calculations are required outside the FLC. The suggestion for using neuro-fuzzy-PID control in this work is linked to the idea of memorizing the robotic structure dynamics in the form of well designed fuzzy neural network. This network can then be utilized for control purposes with the ability for online adaptation to include the patient dynamics that is unique to each patient and is changing with time as a result of the rehabilitation process, which improves the health condition of the patient.

4. Fuzzy-PID-like incremental feedback controller

The suggested fuzzy-PID-like incremental controller employs two inputs (present and previous errors). Each element of the fuzzy-PID-like incremental controller can approximate the corresponding control function with separate non-linear gain using five fuzzy set partitions (NL, NS, ZE, PS, and

_ -e V

f2 -eV

PL) for both input and output universes of discourses. The input/output universe of discourse of each input/output variable is uniformly partitioned using fuzzy sets defined by symmetrical triangular membership functions with 50% overlap for continuous approximation of input/output signals as shown in Figs. 10 and 11. L' represents the distance between two consecutive membership functions centers.

The proportional, derivative, and incremental part of the integral control actions of a fuzzy-PID-like incremental controller are mainly functions of the two present and past error variables, err(kt) and err(kt — t), or their normalized variables, e(kt) and e(kt — t). Consequently,

UPW(kt) — fpfe(kt), e(kt — t)} + fD{e(kt), e(kt — t)}

+ Ui(kt — t)+ fi{e(kt), e(kt — t)} (28)

where the three functions fP, fD, and fI are the proportional, derivative and incremental integral functions to be implemented using the fuzzy logic controller and UI(kt — t) is the past output of the integral controller element. The three functions in Eq. (28) can be approximated using three two-input fuzzy control elements (FCEs). Consequently, the outputs of the three FCEs are summed together to form the proposed fuzzy-PID-like incremental controller as shown in Fig. 12. In the following subsections, the design process of the operation rules for the three functions in Eq. (28) in the form of three fuzzy control elements will be explained.

4.1. Design procedures for fuzzy-PID-like incremental controller

Each output function of the fuzzy-PID-like incremental controller is of a different nature (proportional, derivative, or integral). Therefore the partition of the output universe of discourse is selected to be of the same membership function shape and degree of overlapping but with different scaling factors to allow for different tuning of each control element.

4.1.1. Fuzzy proportional control element The fuzzy rules of the operation of the FPCE according to the suggested partitions are generated heuristically based on the intuitive concept that the proportional control action at any time step is directly proportionally to an error e1 at the same time step regardless of the value of the error at the previous time step e2. Therefore, if the error variable e1 is expressed linguistically as zero, negative small, or negative large, the proportional control action can be expressed linguistically as zero, negative small, or negative large respectively, regardless

f fie(kt), or fie(kt-t)

e(fo), or e(kt-t]

-2L -L 0 +L +2L

Figure 10 Input membership functions of fuzzy controller.

mm Value -2Lpj,orD "Lp,r, or D 0 +LP>[, or D +2Lp>ri or □ max Value Figure 11 Output membership functions of fuzzy controller.

of the linguistic value of the error variable e2. Consequently, the Fuzzy Associative Memory (FAM) rules according to this concept of the FPCE can be written as shown in Table 4.

where (NL, NS, ZE, PS, PL) are the term sets of the normalized input variables e1 and e2 and the normalized output variable UP(kt). To infer the fuzzy output of the FPCE, Mam-dani's min/max method using the bounded sum triangular co-norm is employed. In [41], the fmin and fmax functions were introduced to approximate the logic-min and logic-max functions analytically. These two functions were formulated as follows:

fmin(he1, he2 ) — 0.5

fmax(hpi, hp2) — 0.5

(he1 + he2 )

(he1 - he2) +(0.01)2 + 0.01

(hp! + hp2) + \j(hp1 -hp2)2 + (0.01)2 -0.01

where (he1 and he2) are defined as the fuzzy membership values of the input error variables (e1 and e2), while (hp1 and hp2) are defined as the fuzzy membership values of the same output membership function resulting from any two different rules at any time step. For generality, the softmin and softmax functions can replace Eqs. (29) and (30). The center average defuzz-ification method (height method), Ying [40] is employed to calculate the crisp output of the FPCE. Consequently, based on the defined membership functions, only four rules are triggered at a time. Therefore, the inference system produces four nonzero fuzzy outputs for the two crisp error inputs. The fuzzy output of a rule (output fuzzy sets after inference) is a fuzzy set with a trapezoid membership function whose height (h) equals the membership degree produced by the min operator of Eq. (29). Based on the input errors condition, employed inference method, and defuzzification method, the output of the FPCE is calculated for any input condition using the center average defuzzification method, assuming different membership output function for each rule inference, as follows:

Eli [h alueof the input Mf with min h * output Mf centre]

Ei=1 [h alue0j

of the input Mf with min h\ 'Rulei

Using Eqs. (29) and (31), the analytical solution of the proportional function of the FPCE fP(e1, e2) in Eq. (28) can be expressed as follows:

£4— 1 í CopJ[iR.Ы + ßRi(e2)] ^J[1r. (e1)-lR. (e2)]2 + (C.C1)2 + C.C1

FPCEout"ut - "

2 * £4—1 { [lR. (e1) + ßRi (e2)] \J[1r. Ы-Ir (e2)]2 + (C.C1)2 + C.C1

where CopRi is the FPCE output membership function center value for rule i, iRi(e1) is the membership degree of the present error to the rule i, and iRi(e2) is the membership degree of the past error to the rule i.

4.1.2. Fuzzy derivative control element

In the case of the Fuzzy Derivative Control Element FDCE, the distance between the centers of any two adjacent output membership functions is now LD. The fuzzy rules for the operation of the FDCE according to the suggested partitions are generated heuristically as well based on the intuitive concept that the derivative control action at any time step is directly proportionally to rate of change of the error (difference between two successive time steps). For example, if the error variables e1 and e2 are both expressed linguistically as positive, the derivative control action can be expressed linguistically as zero. Consequently, the Fuzzy Associative Memory (FAM) rules according to this concept of the FDCE can be written as shown in Table 5. Where (NL, NS, ZE, PS, PL) are the term sets of the normalized input variables e1 and e2 and the normalized output variable UD(kt). Consequently, based on the defined membership functions, only four rules are triggered at a time. Therefore, the inference system generally produces four nonzero fuzzy outputs for the two crisp error inputs. The fuzzy output of a rule (output fuzzy sets after inference) is a fuzzy set with a trapezoid membership function whose height (h) equals the membership degree produced by the min operator of Eq. (29) during the fuzzy inference.

Based on the input errors condition, employed inference method, and defuzzification method used in the last section, the analytical solution of the FDCE function fD(e1, e2) in Eq. (28) can be written as follows:

Table 4 Proportional element FAM bank.

NL NS ZE PS PL

NL NL NL NL NL NL

NS NS NS NS NS NS

ZE ZE ZE ZE ZE ZE

PS PS PS PS PS PS

PL PL PL PL PL PL

where CodRi is the FDCE output membership function center value for rule i, iRi(e1) is the membership degree of the present error for the rule i, and iRi(e2) is the membership degree of the past error for the rule.

4.1.3. Fuzzy incremental integral control element The conventional integral control action is composed of two parts. The first part is the integration initial condition or the controller's output history Uj(kt — t), and the second part is the controller's incremental outputf1(e1,e2) = AUJ(kt). Therefore, the output of the integral element is composed of the same two parts. To implement the Fuzzy Integral Control Element (FICE), the same numbers of input/output partitions as in the previous two sections are employed. However, in this case, the distance between the centers of any two adjacent output membership functions is Lj. To implement the integration initial condition and the incremental part into one fuzzy controller element, the centers of the output universe membership functions are shifted after the kth time step to a distance Ui(kt — t) = Em—iAUKmt). Only the incremental part of the

FDCEoutput —

£4—1 { CodRt([ [iR, (e0 + iRi (e2)] -0lR. (e1)-iR (e2 )]2 + (0.01)2 + C.d)

2 * £4— 1Í [iR, (e1 )+ lR,t (e2)] — \j[lRt (e1)-iR, (e2)]2 + (0.01)2 + 0.01}

Figure 12

Structure of the fuzzy servo controller.

Table 5 Derivative element FAM bank.

NL NS ZE PS PL

NL ZE NS NL NL NL

NS PS ZE NS NL NL

ZE PL PS ZE NS NL

PS PL PL PS ZE NS

PL PL PL PL PS ZE

Table 6 Integral incremental element FAM bank.

NL NS ZE PS PL

NL NL NL NL NS ZE

NS NL NL NS ZE PS

ZE NL NS ZE PS PL

PS NS ZE PS PL PL

PL ZE PS PL PL PL

integral control element is of interest for the moment. The fuzzy rules of the operation of the incremental FICE are generated heuristically based on the intuitive concept that the incremental part of the integral control action at a time step is directly proportional to the sum of the error variables at two successive time steps. For example, if the error variables e1 and e2 are expressed linguistically as positive and negative, the incremental part of the integral control action can be expressed linguistically as zero. Consequently, the Fuzzy Associative Memory (FAM) rules according to this concept of the incremental FICE can be written as shown in Table 6. Where (NL, NS, ZE, PS, PL) are the term sets of the normalized input variables e1 and e2 and the normalized output variable AU/KT).

To obtain the output of the incremental FICE, the same partitions, inference, and the same defuzzification method as in the last two sections are employed. Consequently, only four rules are triggered at a time. Therefore, the inference system generally produces four nonzero fuzzy outputs for the two crisp error inputs. The fuzzy output of a rule (output fuzzy sets after inference) is a fuzzy set with a trapezoid membership function whose height (h) equals the membership degree produced by the min operator of Eq. (29) during the fuzzy inference. Based on the input errors condition, employed inference method, and defuzzification method used in the last two sections, the analytical solution of the incremental FICE function f(e,, e2) in Eq. (28) can be written as follows:

dficeoutpui —

Eiij CoÍR, ( (i* (ei)+iR (e2))-vVr, (ei)-Ir, (e2))2 + (0.01)2 + 0.0i)

* E4—1 {(iR, (ei)+1* M)-^ (ei)-Ir, fe))2 + (0.01)2 + 0.01 )

I J Rule,

where CoiRi is the incremental FICE output membership function center value for rule i, iRi(e,) is the membership degree of the present error for the rule i, and iRi(e2) is the membership degree of the past error for the rule i.

Feedback-error learning scheme is utilized in the suggested robot control system. As mentioned earlier, this scheme ensures that online training will stop only when the Feedback error is zero. This behavior resembles the integration action in a classical integral controller which will be achieved in this case by shifting the output membership functions centers of the proposed feed-forward network (Dynafuzznn), so that only the incremental part of the integral control element is used.

Consequently, the rule base of the three incremental FCEs (P, D and I) can be combined together to form one rule base for the total fuzzy-PID-like incremental servo controller output as follows:

where kp, kd, and k¡ are the scaling factors, while ku is an overall gain for the servo controller. Table 7 represents the combined fuzzy-PID-like incremental controller rules.

Finally, the total servo controller output can be represented in the form:

Upid = kv{kpkNpei + kDkND(ei - ej) + k1kN1(el + ej)} (36) where kNP, kND, and kNI are the equivalent non-linear gains.

4.2. Feedback-error learning scheme

Following the selection of the Feedback controller, the total control torque acting on the robot manipulator is the sum of the feed-forward torque and the Feedback torque.

rri _ rj-j I rrf

T tot — T FB + TF>

The well-known Feedback-error learning (FEL) method proposes a novel architecture for control, in which learning and control efficiently are combined. It is essentially an adaptive control system with an inverse model in the feed-forward path along with Feedback servo controller. The objective of control is to minimize the error between the command signal and the plant output. If the learning part of the architecture is disregarded, then, if the inverse model of the plant exists and is stable, the tracking will be perfect. In Miyamura and Kimura [19,37], a stability proof for the FEL algorithm for linear time-invariant systems is presented.

The neuro-fuzzy forward path controller parameters are tuned online using the Feedback controller response as the error signal. This control structure provides an internal teacher so that the control scheme works in an unsupervised manner. The adjustment of the neuro-fuzzy network parameters during the control by Feedback-error learning is more convenient than other learning structures. The network adjustable free parameters were selected to be centers (my) of the output membership functions of the term nodes in layer four as well as the link weights at layers two and six as mentioned before. The central idea behind fuzzy control of the back-propagation algorithm is the implementation of the heuristics used for faster convergence in terms of fuzzy "If-Then" rules. In this

Upid —

ku * p4= 1 j (kpCopRj + kdCodRí + kiCoÍR¡)([iR.(ei)- iRi(e2)] - \J[lRi(ei)- iRi(e2)]2 + (0.01)2 + 0.01)|

2 ^ ti {[IR, (ei ) + 1Rt (e2)] \J [1r, (ei)- lRt (e2)]2 + (0.01 )2 + 0.01

Table 7 Fuzzy servo controller combined FAM bank.

e1 e2 P-element D-element I-element

NL NL NL ZE NL

NS NL NS PS NL

ZE NL ZE PL NL

PS NL PS PL NS

PL NL PL PL ZE

NL NS NL NS NL

NS NS NS ZE NL

ZE NS ZE PS NS

PS NS PS PL ZE

PL NS PL PL PS

NL ZE NL NL NL

NS ZE NS NS NS

ZE ZE ZE ZE ZE

PS ZE PS PS PS

PL ZE PL PL PL

NL PS NL NL NS

NS PS NS NL ZE

ZE PS ZE NS PS

PS PS PS ZE PL

PL PS PL PS PL

NL PL NL NL ZE

NS PL NS NL PS

ZE PL ZE NL PL

PS PL PS NS PL

PL PL PL ZE PL

study, the fuzzy-PID-like Feedback controller along with a fixed learning rate provides the general non-linear policy of the controller and learning signal as well. Weight changes are performed at the kth iteration according to:

1 1 1 1

Etot(wk) - - E [Ttot - Tff] 2 - 1E [ту2

^tot^k) 1 „i 4

@TffK)

gTFB - gk^kPkNPe\ + kDk-ND (e\ - e'2) + kIkm(e\ + e\)}

where Etot(wk) is the total error at the kth iteration, Ttot is the total acting torque at robot link i, TFF is the feed-forward controller torque at robot link i, TFB is the Feedback controller torque at robot link i, wk is the vector of weight values after

the kth iteration, Dwk is the change in these weights, I is the total link numbers of the robot, e\ and e'2 are the current and past position errors at link i, and g is the learning rate. The chain rule is then applied to calculate the network output partial derivative with respect to the variables weights at each layer as explained in Section 3. The neuro-fuzzy modeling technique utilized in this work address three main problems usually linked with fuzzy system. The suggested techniques links data-mining rule generation techniques to the direct measurements obtained from the robot structure to form neuro-fuzzy system structure that posse's structure linked to the target dynamic system. The target universe of discourse of the fuzzy system target output membership functions is bounded by the output domain of the link torques to limit the controller output. The input universe of discourse of the fuzzy system input membership functions is automatically generated during the rule generation phase to form compact structure of the system. The fuzzy control is considered as a non-linear model free control that posses a fixed structure that can be initially designed and then tuned to best fit the target system while it is in operation. This characteristic and its non-linearity emulate the classical gain scheduling and variable-structure control in their effect on the system. The effect of changing the fuzzy membership size on each P, I, or D term of the controller is similar to changing each controller term value in classical linear PID controller, while changing the number of controller rules is controlled by the number of membership functions in the universe of discourse of the error domain. This directly affects the controller non-linearity and response time, for example less number of membership functions and rules results in quicker controller response and closer to classical linear PID controller. The optimal fuzzy model size is normally subjected to the designer selection of the structure of the controller and its tuning method. This is why, in this work, the main fuzzy controller is designed from the dynamic measurements of the robot arm, while the initial servo control is selected to emulate the operation of classical PID controller, although using the non-linearity characteristics of the fuzzy PID to cope with the complexity and non-linearity of the robotic structure. Finally, the formation of the neuro-fuzzy system in the form of adaptable differential neural network enhances the flexibility of the system structure to be modified easily during online adaptation allowing for rules to be omitted or being with less effect as well as the possibility for changing membership functions shape. In this way, many of the randomness nature of normal fuzzy system are avoided in the suggested system.

Figure 13 Healthy volunteers

and mechanical limb model.

u> 0 -a 0

O O C. O ^ CN CN CN 00 p'

-Target Angle-3 -Robot Angle-3

0) <U <U

Sec. Sec.

Figure 14 Neuro-fuzzy controller position trajectories tracking.

5. Comparison study of the results

In this work, the main fuzzy controller is designed from the dynamic measurements of the robot arm; this means

that an initial learning stage is utilized to tune the main controller for the required trajectories with healthy volunteer or mechanical model as shown in Fig. 13 Pham et al. [22,28].

o ai to

0 0.12 0.28 0.57 0.98 1.46 2 2.4 2.63 2.81 | 3.5 3.92 4.51 4.9 5.44 !

-Target Velocity-1 — Robot Velocity-1

o ai CO

di ai Q

0 0.12 0.32 0.62 1.08 1.61 2.14 2.51 2.73 2.9 cd co CT) g co co CO co co Ja lid co -si- J

fill /

-Target Velocity-2 -Robot Velocity-2

Figure 15 Neuro-fuzzy controller velocity trajectories tracking.

□ -100

-250 J

t— cd co o) t- cn id cd

(d o) s hi (D W HI N

-i-^cncncncncococo

-TargetAngle-2 -RobotAngle-2

-100 -150 -200

COCNCN^t-T-COCN-i-iD^t-^t-ir)

^ro^rcoco n 10 01 " "

cn cn cn cn co co

Target Angle-3 -Robot Angle-3

Figure 16 Conventional PID controller position trajectories tracking.

Figure 17 Conventional PID controller velocity trajectories tracking.

When the patient is attached to the robot, the servo controller will compensate for the discrepancy between the main controller output and the actual patient state. With progress of the therapy, repetition of the trajectory on the patient, the main controller is tuned to the patient attached to the robot, and his neuro-fuzzy network optimal weights are stored under the patient name and retrieved each time this patient is attached to the therapy robot and so on for each patient. The robot parameters changes are mainly related to the changes in the attached patient resistance profile. These changes are the main motivation behind the suggested control strategy. The fuzzy-PID servo controller is used for clumsy but robust control at an early stage of learning to compensate for inevitable changes on the system. Moreover, the feed-forward neuro-fuzzy network is the main controller for smooth of the robot with the patient attached to the robot under rehabilitation exercises. The neuro-fuzzy network changes its parameters through adaptive online learning to achieve robustness of the control system. Consequently, the inevitable changes of the system parameters are stored in the neuro-fuzzy network weights all times. Usually, conventional P, PD, or PID controllers are used as the Feedback controller, while in this work, Fuzzy-PID controller is utilized to benefit from its non-linearity effect on the system performance during the learning phase [3]. The proposed control system is tested by applying it to control the first three links of a Puma 560® industrial robot. The controller algorithm was programmed in C++and linked to the "Pro/Mechanica®" virtual model of the Puma 560® industrial robot. For comparison purposes, a conventional PID controller, tuned using the Ziegler-Nichols tuning rule and then fine tuned by trial-error, is also used to control the robot over the required pre-planned joint-trajectories while carrying a fixed payload of 7.0 kg representing manipulated arm. Figs. 14 and 15 represent the results for the suggested neuro-fuzzy controller, while Figs. '6 and '7 represent the results for the conventional PID controller. It can be observed from the results that the proposed neuro-fuzzy controller outperforms the conventional PID controller, both in terms of joint displacement and velocity tracking, as a result of the embedded knowledge of system dynamics in the neuro-fuzzy feed-forward controller component. Although the conventional PID controller can be used for servo control of the robot links, it is not suitable as the training signal for the neuro-fuzzy controller due to high noise associated with the linear integration and differentiation terms of the controller when used with sampled measurements, as well as producing stiff driving torque in the case of patient jerk movement of the patient. The non-linearity characteristics of the fuzzy-PID controller reduced the error allowing for better learning effect on the main neuro-fuzzy controller. Moreover, effect of the feed-forward controller output at early stages of the rehabilitation process, reduces the effect of the joint-error on the Feedback controller driving torque. Moving from the virtual world to the real life application would reflect on the measurements generation from the robot structure for fuzzy rule generation during the off-line structure learning phase. Data acquisition technique used and sampling time selection involved form the main source for challenge in practical implementation. Confronting such challenge, would be by designing digital filter to reject high frequency components in the measurements for accurate rule pruning and neuro-fuzzy network size reduction. The Fuzzy-PID servo controller is used for clumsy but robust

control at an early stage of learning to compensate for inevitable changes on the system dominating the control effect for faster rehabilitation exercises scenarios. Moreover, the feedforward neuro-fuzzy network is the main controller for smooth and slower movement with the patient attached to the robot under rehabilitation exercises. With rehabilitation progress, the neuro-fuzzy network changes its parameters through adaptive online learning and memorizes the patient profile to achieve robustness of the control system all over the rehabilitation process. For much faster rehabilitation exercises scenarios, the neuro-fuzzy network order should be increased to include high dynamics of the robot structure in the measurements acquisition [18].This effect would increase the size of the generated rules as well as sensitivity of the generated rules to the sampling time selected and utilized digital filter applied on the measurements. For slower rehabilitation exercises scenarios, the neuro-fuzzy network order can be reduced to first order dynamics of the robot structure [18].This effect would decrease the size of the generated rules as well as sensitivity of the generated rules to the sampling time selected and utilized digital filter.

6. Conclusion

This paper proposed a new solution for the problem of trajectory control of robotic manipulators when applied for robotic physiotherapy application. A new neuro-fuzzy inverse dynamics network was developed using input/output data sampled from the robot during free motion under conventional controller. This neuro-fuzzy network forms the feed-forward controller for the proposed control system. A new fuzzy-PID-like incremental controller is incorporated in the control system as a Feedback servo controller to drive the physiotherapy robot in the early stages of learning the rehabilitation process and provide the learning signal for the feed-forward neural network. In this way, the overall control produce less stiff driving torque during the jerk movement of the patient, while learning the dynamic changes in the system associated with this sudden movement. A Feedback-error learning scheme utilizing a non-linear learning signal was used to tune the network weights on-line. The control system was applied to test the Puma 560® virtual model over pre-planned joint-trajectories while carrying a fixed payload to emulate the patient arm. The obtained results showed that the method was effective and applicable for robotic manipulators control for rehabilitation application. Moreover, the structured Fuzzy-PID controller can be further extended to be implemented in an adaptive form that can be also pre-tuned to achieve optimal control over the robotic structure before attaching patients to the physiotherapy robot. In this work, the controller philosophy is based mainly on measurements taken directly from the robot links. All modern industrial robots are equipped with required sensors, and its controller can be adapted to host the suggested controller philosophy. Generally, for such therapeutic application, a PC would be used to host the patient profile data, health state, trajectories required,...etc. This PC can be used as the main unit to generate the control signals to the robot arm. The main cost lies behind the development of the controller software and the user interface. The frequency response of the result is much faster than the frequency response of the robot time constant due to high speed computation power in the

virtual domain. Most of the high frequency error signals will not appear in the practical implementation due to the fact that the mechanical time constant of the robot will not respond to high frequency driving torques, while the error signal will converge to the error average trajectory. Digital signal processing and filtration is an important step in practical implementation of the system to eliminate high frequency computation and error signals from the actuators drives. Conventional PID controller can be considered a sub-set of the fuzzy-PID controllers, while the proposed neuro-fuzzy control has the advantage of memorizing the robotic structure in its network rules and weights, while conventional PID controller reacts only to the system error with no previous knowledge of the system it is controlling. In addition, the neuro-fuzzy control has the ability to update its memory about the system under control through online tuning.

Appendix A. PUMA 560® kinematics

The Kinematics function of the Puma 560® simulator returns a 4 x 4 transformation matrix representing the end-effector position and orientation with respect to the base frame of the manipulator as its output using a given set of joint angles and link parameters as input. The direct kinematics solution is a matter of calculating T — A6 = nj=iA_i by chain multiplying the six A\_ 1 matrices and evaluating each element in the T matrix. The individual A_ matrices are given by:

C0 —Ca,S0, Sa,-S0,- a C0

S0, Ca,-C0,- —Sa,C0, a,-S0,-

0 Sa,- Ca,- d

0 0 0 1

Using the link coordinate system shown in Fig. 1 and Table 1, each of the Aii i matrices for left and right arm orientation, respectively, can be expressed as follows:

An —

C01 0 TS01 0

S01 0 ±C01 0

0 0 d1 :

0 0 0 1

" C02 0 —S01 a2C02 "

S02 C0 2 0 a2 S02

0 0 1 d2

0 0 0 1

C03 0 ±S03 0

S03 0 0 ±1 TC03 0 0 0 A4; A3 —

0 0 0 1.

C05 0 ±S05 0

S05 0 TC05 0

0 ±1 0 0 :

0 0 0 1.

C04 0 TSÖ4 0 S04 0 ±C04 0

C06 —S06 0 0

S06 C06 0 0

0 0 1 d6

0 0 0 1

where S0,- = sin(h) and C0,- = cos(h).

In this way the end-effector orientation and position with reference to the base coordinate system (frame 0) can be obtained from T as:

« s a P 0 0 0 1

'x Px Py Pz

0 0 0 1

«x — C01 [C(02 + 03){C04C0sC06 - S04S06}- S(02 + 03)S0sC06]- S01[S04C05C06 + C04S06]

«y — S01[C(02 + 03){C04C05C06 - S04S06}- S(02 + 03)S05C06] + C01[S04C05C06 + C04S06]

«z — TS(02 + 03)[C04C05C06 - S04S06]T C(02 + 03)S05C06

Sx — C01[-C(02 + 03 ){C04 C05S06 + S04C06} + S(02 + 03)S05S06]- S01[-S04C05S06 + C04C06]

Sy — S01 [—C(02 + 03 ){ C04 C05 S06 + S04C06 } + S(02 + 03)S05S06 ] + C01[— S04C05S06 + C04C06]

Sz — ±S(02 + 03){C04C05S06 + S04C06}± C(02 + 03)S05S06

ax — ±C01[C(02 + 03)C04S05 + S(02 + 03)C05]T S01S04S05 ay — ±S01[C(02 + 03)C04S05 + S(02 + 03)C05]± C01S04S05 az — —S(02 + 03)C04S05 + C(02 + 03 ) C05 Px — C01 [±ds{C(02 + 03)C04S05 + S(02 + 03)C05}± S(02

+ 03)d4 + a2C02]T S01{d6S04S05 + d2}

Py — S01[±d,{C(02 + 03)C04S05 + S(02 + 03)C05}± S(02 + 03)d4 + a2C02] + C0{d6 S04S05 + d2}

Pz — d,{C(02 + 03 ) C05 — S(02 + 03)C04S05} + C(02 + 03 H T a2S02 + d

• ± Indicate left and right shoulder configuration, respectively.

Given the end-effector orientation and position as shown above, the inverse kinematics approach is used to obtain the joint angles 0,- of the robot arm as follows:

h — Tan

h2 = Tan 1

±Py\JP2x + P2y - d2 - d2Px

±Px\lp2x + p2y - d2 + d2P

-(pz{a2 + d4S03} + {d4C03^^V/pX+^rd2})

Pz(d4C03)-{a2 + d4S03^ ±\lpx + P2 - "2

± Indicate left and right shoulder configuration, respectively.

h3 — Tan 1

pX + P2y + P2 - d2 - a2 - d2

^4d2a2 -(pX + P2 + P2 - d2 - a2 - d2)2

± Indicate elbow-below-hand and elbow-above-hand configurations, respectively.

h4 — Tan 1

Chi ay - Shiax

C0iC(02 + h3)ax + ShiC(h2 + h3)ay - S(h2 + h3)a2J

r\ _ J"\R°t _i_ r\Trans

Dij — +

[R0Z,-i]T/s [R0Zj-i]}

mA Z-i x

Lj—k

x {Z-1 x [f - Pi-i]}

— ¿{ [R0Z,-i]T/s [R0Z,-i]};

i 6 j, i— 1, n + ^ [m^Zj-i X [fs - Pj-i]}

x {Z,-1 x [fs - p,-1]}]

h5 Tan-

1 |"(ChiC(h2 + h3)Ch4 - ShiSh4)ax + (ShiC(h2 + h3)Ch4 + ChiSh4)ay - Ch4S(h2 + h3)az

ChiS(h2 + h3)ax + ShiS(h2 + h3)ay + C(h2 + h3 )a2

h6 Tan-

-1 |"(-ShiCh4 - ChiC(h2 + h3)Sh4)nx + (ChiCh4 - ShiC(h2 + h3)Sh4)ny + (Sh4S(h2 + h3))n

-ShiCh4 - ChiC(h2 + h3)Sh4)sx + (ChiCh4 - ShiC(h2 + h3)Sh4)sy + (Sh4S(h2 + h3))sz _

(A.7) (A.8) (A.9)

-180° 6 01, 02, 03, 04,05,06 6 180°

The degenerate case (05 = 0), i.e., when the axis of joint 6 is aligned with the approach vector [ ax ay az ]T, results in (04 + 06) = total angle required to align the orientation of the hand.

For a given arm configuration, (01,02,03,04,05,06) is a set of solutions and

(01,02,03,04 + p, —05,06 + p) is another set of solutions. The joint angles 0t are obtained in the following sequence

^ 02, 04, 05, 06.

Appendix B. PUMA 560® dynamics

The dynamic equations of any open chain robot manipulator are expressed as:

+ Hfflns(0, h) + Hf" (h, 0) + g, = s,

HTrans (h, h )—^

k p—2

ms s-1 £ <

k— 1

{Zi-1 x[fs -Pi_,]}

<{Z;_i x[fs -Pi-i]}], i— 1,...,n

Hf°'(h, h ) — £

lR0Zi-i \Tis\J2

. j—i

hjRj :

EhpRjZp-i

Lp—i

EhkRsZk-

k —j+1 T "

Is y^hgZq-1

= 1.....n

G,-— — g -[Zi—1 x Em[fj— P,—1]]; - —1; •••;

g —(gx; gy; gz)T; |g|— 9.8062 m/s2

where m is the mass of link i; I the inertia about the center of mass of link i with respect to the base coordinate system; s the applied torque exerted on link i; Cs the position vector to the center of mass of link from the base coordinate system; cs the position vector of the center of mass of link s from the (s — 1)th coordinate frame with reference to the base coordinate frame; Is the inertia tensor matrix of link about its center of mass expressed in the sthcoordinate system; R the rotation matrix with reference to the Sth coordinate frame; 1 6 s 6 n; and ZJ—1 the axis of rotation of joint j with reference to the base coordinate frame.

The dynamic coefficients Dj and G; are functions of both the joint variables and inertial parameters of the manipulator, while Hfrans and Hf°' are functions of the joint variables, the joint velocities and inertial parameters of the manipulator. These coefficients have the following interpretations:

1. The elements of the D,, matrix are related to the link's inertia of the manipulator. Eq. (B.1) reveals the acceleration effects of joint j acting on joint i where the driving torque S acts. The first term of Eq. (B.1) indicates the inertial effects of moving link j on joint i due to the rotational motion of link j, and vice versa. If i = j, it is the effective inertia felt at joint i due to the rotational motion of link j, while if i „ j, it is the pseudo products of inertia of link j felt at joint i due to the rotational motion of link j. The second term has same physical meaning except it is due to the transitional motion of link j acting on joint i.

2. The Hfra"s(0,0) is related to the velocities of the joint variables. Eq. (B.2) represents the combined centrifugal and Coriolis reaction torques felt at joint i due to the velocities of joints p and q resulted from the transitional motions of links p and q. The first and third terms of Eq. (B.2) constitute the centrifugal and Coriolis reaction forces from all the links below link i in the kinematic chain due to the transitional motion of the links. If p = q, then it represents the centrifugal reaction forces felt at joint i. If p „ q, then it indicates the Coriolis forces acting on joint i. The second and fourth terms of Eq. (B.2) indicate the Coriolis reaction forces contributed from links below link i in the kinematic chain due to the transitional motion of the links.

3. The Hfo'(0, 0) is also related to the velocities of the joint variables. Similar to the Hfram(0,0), Eq. (B.3) reveals the combined centrifugal and Coriolis reaction torques felt at joint i due to the velocities of joints p and q resulted from the rotational motion of link p and q. The first term of Eq. (B.3) indicates purely the Coriolis reaction forces of joints p and q acting on joint i due to the rotational motion of the links. The second term is the combined centrifugal and Coriolis reaction forces acting on joint i, while ifp „ q, then it represents the Coriolis forces acting on joint i due to the rotational motion of the links.

4. The coefficient Gt represents the gravity acting on joint i from the links above joint i.

For the Puma 560® robot arm, the elements of the D j matrix come from the transitional and rotational effects of the

links. For the first three joints (h1, h2, h3), because of their usually long link length for maximum reach and long distance traveled between initial position and final position, the effects of transitional motion will dominate the rotational motion. In contrast to the first three joints, the rotational effects will dominate for the last three joints. Hence, one can simplify the computation of the Dj matrix by considering only the transitional effects for the first three joints and the rotational effects for the last three joints. Similarly, one can evaluate the contribution of Hf™"5 and Hf°' and eliminate their computations if they are insignificant. The resulting simplified model retains the entire major interaction and coupling reaction forces at a reduced computation time and greatly aids the design of an appropriate control law for controlling the robot arm.

References

[1] Achili B, Daachi B, Ali-Cherif A, Amirat Y. Combined multi layer perceptron neural network and sliding mode technique for parallel robots control: an adaptive approach. In: Proceedings of international joint conference on neural networks, Atlanta, Georgia, USA, June 14-19, 2009.

[2] Ahn KK, Anh HPH. Identification of the pneumatic artificial muscle manipulators by MGA-based nonlinear NARX fuzzy model. IFAC J Mechatron 2009;19(1):106-33.

[3] Akbas E, Esin EM. Intelligent stabilization of direct drive manipulators. In: EUROCON 2003, computer as a tool, the IEEE region 8, 22-24 September 2003, vol. 1, Ljublijana, Slovenia. p. 367-1.

[4] Anh H, Pham H. Online tuning scheduling MIMO neural PID control of the 2-axes pneumatic artificial muscle (PAM) robot arm. Expert Syst Appl 2010;37(9):6547-60.

[5] Armstrong B, Corke PI. A search for consensus among model parameters reported for the PUMA 560 Robot. In: IEEE international conference on robotics and automation, vol. 2, San Diego, California, USA, 1994, p. 1608-13.

[6] Berenji HR, Khedkar P. Learning and tuning fuzzy logic controllers through reinforcements. IEEE Trans Neural Netw 1992;3(5):724-40.

[7] Bigot S. New techniques for continuous values handling in inductive learning. PhD thesis, University of Wales, UK, 2003.

[8] Breedon PJ, Sivayoganathan K, Balendran V, Al-Dabass D. Multi-axis fuzzy control and performance analysis for an industrial robot. In: Proceedings of the IEEE international conference on fuzzy systems, 12-17 May 2002, Honolulu, HI, USA. p. 500-5.

[9] Delgado M, Gonzalez A. An inductive learning procedure to identify fuzzy systems. Fuzzy Sets Syst. 1993;55:121-32.

[10] Er MJ, Yap SM, Yeaw CW, Luo, FL. A review of neural-fuzzy controllers for robotic manipulators. In: Thirty-second IAS annual meeting, IEEE industry applications conference, vol. 2, 5-9 October 1997, New Orleans, Los Anglos, USA. p. 812-9.

[11] Erbatur K, Kaynak O, Rudas I. A study of fuzzy schemes for control of robotic manipulators. In: IECON twenty-first IEEE international conference on industrial electronics, control, and instrumentation, vol. 1, 6-10 November 1995, Orlando, Florida, USA, 1995. p. 63-8.

[12] Estevez PA, Nakano R. Hierarchical mixture of experts andmax-min propagation neural networks. In: IEEE international conference on neural networks, 27 November-1 December 1995, Perth, WA, Australia. p. 651-65.

[13] Fareh R, Saad M, Saad M. Real time hierarchical robust control for 5 dof ANAT redundant Robot using sliding mode technique. In: 25th IEEE Canadian conference on electrical and computer engineering, 2012.

[14] Lee CC. Fuzzy logic in control systems fuzzy logic controller. Part I. IEEE Trans Syst Manuf Cybern 1990;20(2):404-18.

[15] Lee CC. Fuzzy logic in control systems fuzzy logic controller. Part II. IEEE Trans Syst Manuf Cybern 1990;20(2):419-35.

[16] Lin C-T, Lee CSG. Neural network-based fuzzy logic control and decision system. IEEE Trans Comput 1991;40(12):1320-36.

[17] Martin P. Real-time neuro-fuzzy trajectory generation for robotic rehabilitation therapy. MSc thesis, University of Toronto, Institute for Aerospace Studies University of Toronto, 2009.

[18] Ming-Kun Chang, Jeih-Jang Liou, Ming-Lun Chen. T-S fuzzy model-based tracking control of a one-dimensional manipulator actuated by pneumatic artificial muscles. Control Eng Practice 2011;19:1442-9.

[19] Miyamura A, Kimura H. Stability of feedback error learning scheme. Syst Control Lett 2002;45(4):303-16.

[20] Moudgal VG, Kwong WA, Passino KM. Fuzzy learning control for a flexible-link robot. IEEE Trans Fuzzy Syst 1995;3(2): 199-210.

[21] Pham DT, Aksoy MS. A new algorithm for inductive learning. J Syst Eng 1995;5:115-22.

[22] Pham DT, Eldukhri EE, Dimov SS, Packianather MS, Zlatov NB, Fahmy AA, et al. A knowledge-based system for selection of exercises for robotied physiotherapy. In: 8th IEEE conference on mechatronics and machine vision in practice, Hong Kong, 2001.

[23] Pham DT, Fahmy AA. Neuro-fuzzy modelling and control of robot manipulators for trajectory tracking. In: Proceedings of the 16th IFAC world congress, 2005, Czech Republic, vol. 16, Part 1, 2005. p. 415-29.

[24] Pham DT, Fahmy AA. Intelligent internal model control of robots for upper-limb rehabilitation. In: Proceedings of the 16th IFAC world congress, Prague, Czech republic, 2005.

[25] Pham DT, Fahmy AA, Eldukhri EE. Fuzzy hysteresis coordinator for neuro-fuzzy position controlled manipulators. In: Proceedings of the 17th IFAC world congress, Seoul, Korea, 2008.

[26] Pham DT, Fahmy AA, Eldukhri EE. Adaptive fuzzy neural network for inverse modeling of robot manipulators. In: Proceedings of the 17th IFAC world congress, 2008, Seoul, Korea, 611 July 2008. p. 5308-13.

[27] Pham DT, Yildirim S. Control of the trajectory of a planar robot using recurrent hybrid networks. Mach Tools Manuf 1999;39(3):415-29.

[28] Pham DT, Zlatov N, Eldukhri EE, Dimov S, Bratanov D, Dobrev T, et al. Modelling and control of an 8-dof mechatronic limb. In: 8 IEEE conference on mechatronics and machine vision in practice, 2001, Hong Kong.

[29] Pham H, Anh H. Online tuning gain scheduling MIMO neural PID control of the 2-axes pneumatic artificial muscle (PAM) robot arm. Expert Syst Appl 2010;37:6547-60.

[30] Rahman MH, Saad M, Kenne JP, Archambault PS. Modeling and development of an exoskeleton robot for rehabilitation of wrist movements. In: IEEE/ASME international conference on advanced intelligent mechatronics, Montreal, Canada, July 6-9, 2010.

[31] Runkler TA. Selection of appropriate defuzzification methods using application specific properties. IEEE Trans Fuzzy Syst 1997;5(1):72-9.

[32] Saade JJ. A unifying approach to defuzzification and comparison of the outputs of fuzzy controllers. IEEE Trans Fuzzy Syst 1996;4(3):227-37.

[33] Shankir Y. Fuzzy logic systems and fuzzy neural networks for dynamic systems modelling and control. PhD thesis, University of Wales, Cardiff School of Engineering, Cardiff University, UK, 2001.

[34] Srinivasan A, Batur C, Chan CC. Using inductive learning to determine fuzzy rules for dynamic systems. Eng Appl Artif Intell 1993;6(3):257-64.

[35] Takagi T, Sugeno M. Fuzzy identification of systems and its applications to modelling and control. IEEE Trans Syst Manuf Cybern 1985;SMC-15(1):116-32.

[36] Tang W, Chen G, Lu R. A modified fuzzy pi controller for a flexible-joint robot arm with uncertainties. Fuzzy Sets Syst 2001;118(1):109-19.

[37] Terashita J, Kimura H. Robustness of feedback error learning method with time delay. In: Proceedings of the 41st SICE/IEEE annual conference, vol. 4, 5-7 August 2002, Tokyo, Japan. p. 2240-4.

[38] Wang LX, Mendel JM. Generating fuzzy rules by learning from examples. IEEE Trans Syst Manuf Cybern 1992;22(6):1414-27.

[39] Wang LX, Mendel JM. Fuzzy basis functions, universal approximation, and orthogonal least-squares learning. IEEE Trans Neural Netw 1992;3(5):807-14.

[40] Ying H. The simplest fuzzy controllers using different inference methods are different non-linear proportional-integral-controllers with variable gains. Automatica 1993;29(6):1579-89.

[41] Yuan F, Feldkamp LA, Davis Jr LI, Puskorius GV. Training a hybrid neural-fuzzy system. In: IEEE/IJCNN international joint conference on neural networks, vol. 2, 7-11 June 1992, Baltimore, MD, USA, 1992. p. 739-44.

[42] Zhang X, Hang CC, Tan S, Wang P-Z. The min-max function differentiation and training of fuzzy neural networks. IEEE Trans Neural Netw 1996;7(5):1139-50.

A.A. Fahmy, was born in Cairo. He received his B.Sc. and M.Sc. degrees in 1992 and 1999 from the Electrical Power System and Machines department, Helwan University, Cairo, Egypt. From 2000 to 2004, he got his Ph.D. in Computer Controlled Robotics from the Manufacturing Engineering Systems, School of Engineering, Cardiff University, UK. From 2004 to 2006, he worked as an assistant professor at the department of Electrical Machines and Power System, Hel-wan University, Cairo Egypt. In 2006, he moved to UK to re-join Cardiff University School of engineering. He authored more than 17 papers in control and drive applications. His areas of interest are Control of Power System and Electrical Machines. He is an IET Member.

A.M. Abdel Ghany, was born in Cairo. He received his B.Sc. and M.Sc. degrees in 1980 and 1987 from the Electrical Power System and Machines department, Helwan University, Cairo, Egypt. From 1989 to 1994, he got his Ph.D. in Computer Controlled Systems from the Institute of Control and Systems Engineering, Technical University of Wroclaw Poland. From 1994 to 1999, he worked as an assistant professor at the department of Electrical Machines and Power System, Hel-wan University, Cairo Egypt. In 2002, he was promoted to Associate Professor at the Department of Electrical Power Systems and Machines Department, University of Helwan, Cairo, Egypt. In 2009, he was promoted to Professor at the Department of Electrical Power Systems and Machines Department, University of Helwan, Cairo, Egypt. Currently, he is the head of the department. He shared in the Economical Lighting of Helwan industrial plant as a part of the Supreme Council of Egyptian Universities Projects. He authored more than 70 papers in control and analysis of Power Systems. His areas of interest are Control of Power System and Electrical Machine, Automatic Control Systems. He is an IEEE Member.