The input membership functions are defined to characterize the premises of the rules that define the various situations in which rules should be applied. The input membership functions are left constant and are not tuned by the FMRLC. The membership functions on the output universe of discourse are assumed to be unknown. They are what the FMRLC will automatically synthesize or tune. Hence, the FmrlC tries to fill in what actions ought to be taken for the various situations that are characterized by mises We must choose initial values for each of the output membership functions. For example, for an output universe of discourse l-l, I we could choose triangular-shaped membership functions with base widths of 0. 4 and centers at zero This choice represents that the fuzzy controller initially knows nothing about how to control the plant so it inputs u=0 to the plant initially (well, really it does know something since we specify the remainder of the fuzzy controller a priori) Of course, one can often make a reasonable best guess at how to specify a fuzzy controller that is"more knowledgeable than simply placing the output membership function centers at zero. For example, we could pick the initial fuzzy controller to be the best one that we can design for the nominal plant. Notice, however, that this choice is not always the best one, Really, what you often want to choose is the fuzzy controller that is best for the operating condition that the plant will begin in(this may not be the nominal condition). Unfortunately, it is not always possible to pick such a controller since you may not be able to measure the operating condition of the plant, so making a best guess or simply placing the membership function centers at zero are common choices To complete the specification of the fuzzy controller, we use minimum or product to represent the conjunction in the premise and the implication(in this book we will use minimum unless otherwise stated) and the standard center-of-gravity defuzzification technique. As an alternative, we could use appropriately initialized singleton outp membership functions and centeraverage defuzzification Learning, Memorization, and Controller Input Choice For some applications you may want to use an integral of the error or other preprocessing of the inputs to the fuzzy controller. Sometimes the same guidelines that are used for the choice of the inputs for a nonadaptive fuzzy controller are useful for the FMRLC. We have found, however, times where it is advantageous to replace part of a conventional controller with a fuzzy controller and use the FmrlC to tune it(see the fault-tolerant control application in Section 3.3) In these cases the complex preprocessing of inputs to the fuzzy controller is achieved via a conventional controller Sometimes there is also the need for postprocessing of the fuzzy controller outputs Generally, however, choice of the inputs also involves issues related to the learning dynamics of the FMRLC. As the FMrlC operates, the learning mechanism will tune the fuzzy controllers output membership functions. In particular, in our example, for each different combination of e(kn) and c(kn)inputs, it will try to learn what the best control actions are. In general, there is a close connection between what inputs are provided to the controller and the controller's ability to learn to control the plant for different reference inputs and plant operating conditions. We would like to be able to PDF文件使用" pdffactory Pro"试用版本创建ww. fineprint,com,cn
The input membership functions are defined to characterize the premises of the rules that define the various situations in which rules should be applied. The input membership functions are left constant and are not tuned by the FMRLC. The membership functions on the output universe of discourse are assumed to be unknown. They are what the FMRLC will automatically synthesize or tune. Hence, the FMRLC tries to fill in what actions ought to be taken for the various situations that are characterized by the premises. We must choose initial values for each of the output membership functions. For example, for an output universe of discourse [-1, 1] we could choose triangular-shaped membership functions with base widths of 0.4 and centers at zero. This choice represents that the fuzzy controller initially knows nothing about how to control the plant so it inputs u = 0 to the plant initially (well, really it does know something since we specify the remainder of the fuzzy controller a priori). Of course, one can often make a reasonable best guess at how to specify a fuzzy controller that is "more knowledgeable" than simply placing the output membership function centers at zero. For example, we could pick the initial fuzzy controller to be the best one that we can design for the nominal plant. Notice, however, that this choice is not always the best one. Really, what you often want to choose is the fuzzy controller that is best for the operating condition that the plant will begin in (this may not be the nominal condition). Unfortunately, it is not always possible to pick such a controller since you may not be able to measure the operating condition of the plant, so making a best guess or simply placing the membership function centers at zero are common choices. To complete the specification of the fuzzy controller, we use minimum or product to represent the conjunction in the premise and the implication (in this book we will use minimum unless otherwise stated) and the standard center-of-gravity defuzzification technique. As an alternative, we could use appropriately initialized singleton output membership functions and centeraverage defuzzification. Learning, Memorization, and Controller Input Choice For some applications you may want to use an integral of the error or other preprocessing of the inputs to the fuzzy controller. Sometimes the same guidelines that are used for the choice of the inputs for a nonadaptive fuzzy controller are useful for the FMRLC. We have found, however, times where it is advantageous to replace part of a conventional controller with a fuzzy controller and use the FMRLC to tune it (see the fault-tolerant control application in Section 3.3). In these cases the complex preprocessing of inputs to the fuzzy controller is achieved via a conventional controller. Sometimes there is also the need for postprocessing of the fuzzy controller outputs. Generally, however, choice of the inputs also involves issues related to the learning dynamics of the FMRLC. As the FMRLC operates, the learning mechanism will tune the fuzzy controller's output membership functions. In particular, in our example, for each different combination of e(kT) and c(kT) inputs, it will try to learn what the best control actions are. In general, there is a close connection between what inputs are provided to the controller and the controller's ability to learn to control the plant for different reference inputs and plant operating conditions. We would like to be able to PDF 文件使用 "pdfFactory Pro" 试用版本创建 www.fineprint.com.cn
design the FMRlC so that it will learn and remember different fuzzy controllers for all the different plant operating conditions and reference inputs; hence, the fuzzy controller needs information about these Often, however, we cannot measure the operating condition of the plant, so the FmrlC does not know exactly what operating condition it is learning the controller for. Moreover, it then does not know exactly when it has returned to an operating condition. Clearly, then, if the fuzzy controller has better information about the plant's operating conditions the Fmrlc will be able to learn and apply better control actions. If it does not have good information, it will continually adapt, but it will not properly remember For instance, for some plants e(kn) and c(kn) may only grossly characterize the operating conditions of the plant. In this situation the FmrLC is not able to learn different controllers for different operating conditions; it will use its limited information about the operating condition and continually adapt to search for the best controller. It degrades from a learning system to an adaptive system that will not properly remember the control actions(this is not to imply, however that there will automatically be a corresponding degradation in performance) Generally, we think of the inputs to the fuzzy controller as specifying what conditions we need to learn different controllers for. This should be one guideline used for the choice of the fuzzy controller inputs for practical applications A competing objective is, however, to keep the number of fuzzy controller inputs low due to concerns about computational complexity. In fact, to help with computational complexity, we will sometimes use multiple fuzzy controllers with fewer inputs to each of them rather than one fuzzy controller with many inputs; then we may, for instance, sum the outputs of the individual controllers 3.2.2 The Reference model Next, you must decide what to choose for the reference model that quantifies the desired performance. Basically, you want to specify a desirable performance, but also a reasonable one. If you ask for too much, the controller will not be able to deliver it; certain characteristics of real- world plants place practical constraints on what performance can be achieved. It is not always easy to pick a good reference model since it is sometimes hard to know what level of performance we can expect, or because we have no idea how to characterize the performance for some of the plant output variables(see the flexible robot application in Section 3.3 where it is difficult to know a priori how the acceleration profiles of the links should behave) In general, the reference model may be discrete or continuous time, linear or nonlinear, time-invariant or time-varying, and so on. For example, suppose that we would like to have the response track the continuous time model G(s)= 1+s Suppose that for your discrete-time implementation you use T=0. 1 sec. Using a bilinear(Tustin) transformation PDF文件使用" pdffactory Pro"试用版本创建ww. fineprint,com,cn
design the FMRLC so that it will learn and remember different fuzzy controllers for all the different plant operating conditions and reference inputs; hence, the fuzzy controller needs information about these. Often, however, we cannot measure the operating condition of the plant, so the FMRLC does not know exactly what operating condition it is learning the controller for. Moreover, it then does not know exactly when it has returned to an operating condition. Clearly, then, if the fuzzy controller has better information about the plant's operating conditions, the FMRLC will be able to learn and apply better control actions. If it does not have good information, it will continually adapt, but it will not properly remember. For instance, for some plants e(kT) and c(kT) may only grossly characterize the operating conditions of the plant. In this situation the FMRLC is not able to learn different controllers for different operating conditions; it will use its limited information about the operating condition and continually adapt to search for the best controller. It degrades from a learning system to an adaptive system that will not properly remember the control actions (this is not to imply, however, that there will automatically be a corresponding degradation in performance). Generally, we think of the inputs to the fuzzy controller as specifying what conditions we need to learn different controllers for. This should be one guideline used for the choice of the fuzzy controller inputs for practical applications. A competing objective is, however, to keep the number of fuzzy controller inputs low due to concerns about computational complexity. In fact, to help with computational complexity, we will sometimes use multiple fuzzy controllers with fewer inputs to each of them rather than one fuzzy controller with many inputs; then we may, for instance, sum the outputs of the individual controllers. 3.2.2 The Reference Model Next, you must decide what to choose for the reference model that quantifies the desired performance. Basically, you want to specify a desirable performance, but also a reasonable one. If you ask for too much, the controller will not be able to deliver it; certain characteristics of real- world plants place practical constraints on what performance can be achieved. It is not always easy to pick a good reference model since it is sometimes hard to know what level of performance we can expect, or because we have no idea how to characterize the performance for some of the plant output variables (see the flexible robot application in Section 3.3 where it is difficult to know a priori how the acceleration profiles of the links should behave). In general, the reference model may be discrete or continuous time, linear or nonlinear, time-invariant or time-varying, and so on. For example, suppose that we would like to have the response track the continuous time model ( ) 1 1 G s s = + . Suppose that for your discrete-time implementation you use T = 0. 1 sec. Using a bilinear (Tustin) transformation PDF 文件使用 "pdfFactory Pro" 试用版本创建 www.fineprint.com.cn
to find the discrete equivalent to the continuous-time transfer ion G(s), we replace s with Tz+′ to obtain Y(e=H()=2-192/Where m(=)and R(=)are the s-transform of ya(kT) and r(kT), respectively. Now (=+1)/21 19 for a discrete-time implementation we would choose ym(kT +Tr27.m (T)+r(kT+T)+r(kT) This choice would then represent that we would like our output y(kn) to track a smooth, stable, first-order typ response of ym(kn). A similar approach can be used to, for example, track a second-order system with a specified damping ratio C and undamped natural frequency On The performance of the overall system is computed with respect to the reference model by the learning mechanism by generating an error signal Ye(krym(kT)-]kn Given that the reference model characterizes design criteria such as rise-time and overshoot and the input to the reference model is the reference input rkn), the desired performance of the controlled process is met if the learning mechanism forces e(kn) to remain very small for all time no matter what the reference input is or what plant parameter variations occur. Hence, the error ye(kn) provides a characterization of the extent to which the desired performance is met at time kT. If the performance is met (i.e, ye(kn) is small), then the learning mechanism will not make significant modifications to the fuzzy controller. On the other hand if ye(k)is big, the desired performance is not achieved and the learning mechanism must adjust the fuzzy controller. Next, we describe the operation of the learning mechanism 3.2.3 The learning mechanism The learning mechanism tunes the rule-base of the direct fuzzy controller so that the closed-loop system behaves like the reference model. These rule- base modifications are made by observing data from the controlled process, the reference model, and the fuzzy controller. The learning mechanism consists of two parts: a"fuzzy inverse model"and a knowledge-base modifier". The fuzzy inverse model performs the function of mapping ye(kn)(representing the deviation from the desired behavior ) to changes in the process inputs p(kn) that are necessary to force ye(kn) to zero The knowledge-base modifier performs the function of modifying the fuzzy controller's rule-base to affect the needed changes in the process inputs. We explain each of these components in detail next Fuzzy Inverse Model Using the fact that most often a control engineer will know how to roughly characterize the inverse model of the plant (examples of how to do this will be given in several examples in this chapter), we use a fuzzy system to map ye (kn), and possibly functions of ye(kT)such as (k7)=(y.(k7)-y(A7-T)/T (or any other closed-loop system data),to the necessary changes in the process inputs. This fuzzy system is sometimes called the" fuzzy inverse model"since information about the plant inverse dynamics is used in its specification. Some, however, a void this terminology and simply view the fuzzy system in the adaptation loop in Figure 3.3 to be a controller that tries to pick p(kn) to reduce the PDF文件使用" pdffactory Pro"试用版本创建ww, fineprint,com,cn
to find the discrete equivalent to the continuous-time transfer function G(s), we replace s with 2 1 1 z T z - + to obtain ( ) ( ) ( ) ( 1) 21 19 21 Ym z z H z R z z + = = - .Where Y z m ( ) and R z( ) are the z-transform of ym(kT) and r(kT), respectively. Now, for a discrete-time implementation we would choose ( ) ( ) ( ) ( ) 19 1 1 21 21 21 m m y kT +T = y kT + r kT + + T r kT . This choice would then represent that we would like our output y(kT) to track a smooth, stable, first-order type response of ym(kT). A similar approach can be used to, for example, track a second-order system with a specified damping ratio ζ and undamped natural frequency ωn. The performance of the overall system is computed with respect to the reference model by the learning mechanism by generating an error signal Ye(kT)=ym(kT)-y(kT) . Given that the reference model characterizes design criteria such as rise-time and overshoot and the input to the reference model is the reference input r(kT), the desired performance of the controlled process is met if the learning mechanism forces ye(kT) to remain very small for all time no matter what the reference input is or what plant parameter variations occur. Hence, the error ye(kT) provides a characterization of the extent to which the desired performance is met at time kT. If the performance is met (i.e., ye(kT) is small), then the learning mechanism will not make significant modifications to the fuzzy controller. On the other hand if ye(kT) is big, the desired performance is not achieved and the learning mechanism must adjust the fuzzy controller. Next, we describe the operation of the learning mechanism. 3.2.3 The Learning Mechanism The learning mechanism tunes the rule-base of the direct fuzzy controller so that the closed-loop system behaves like the reference model. These rule-base modifications are made by observing data from the controlled process, the reference model, and the fuzzy controller. The learning mechanism consists of two parts: a "fuzzy inverse model" and a "knowledge-base modifier". The fuzzy inverse model performs the function of mapping ye(kT) (representing the deviation from the desired behavior), to changes in the process inputs p(kT) that are necessary to force ye(kT) to zero. The knowledge-base modifier performs the function of modifying the fuzzy controller's rule-base to affect the needed changes in the process inputs. We explain each of these components in detail next. Fuzzy Inverse Model Using the fact that most often a control engineer will know how to roughly characterize the inverse model of the plant (examples of how to do this will be given in several examples in this chapter), we use a fuzzy system to map ye(kT) , and possibly functions of ye(kT)such as yc (kT ) = ( ye e (kT ) - - y (kT T T )) (or any other closed-loop system data), to the necessary changes in the process inputs. This fuzzy system is sometimes called the "fuzzy inverse model" since information about the plant inverse dynamics is used in its specification. Some, however, avoid this terminology and simply view the fuzzy system in the adaptation loop in Figure 3.3 to be a controller that tries to pick p(kT) to reduce the PDF 文件使用 "pdfFactory Pro" 试用版本创建 www.fineprint.com.cn
error ye(kn). This is the view taken for some of the design and implementation case studies in the next section Note that similar to the fuzzy controller, the fuzzy inverse model shown in Figure 3. 3 contains scaling gains, but now we denote them with 8,, gy and gp. We will explain how to choose these scaling gains below. Given that g, y and g y are inputs to the fuzzy inverse model, the rule-base for the fuzzy inverse model contains rules of the IFj。 is Y, and j。isy! Then p is P Where Y, and Y denote linguistic values and p denotes the linguistic value associated with the mth output uzzy set In this book we often utilize membership functions for the input universes of discourse as shown in Figure 3.4 symmetric triangular-shaped membership functions for the output universes of discourse, minimum to represent the premise and implication, and COG defuzzification. Other choices can work equally well. For instance, we could make the same choices, except use singleton output membership functions and center-average defuzzification Knowledge-Base modifier Given the information about the necessary changes in the input, which are represented by p(kn), to force the error y, to zero, the knowledge-base modifier changes the rule-base of the fuzzy controller so that the previously applied control action will be modified by the amount p(kn). Consider the previously computed control action u(kT-n), and assume that it contributed to the present good or bad system performance (i.e, it resulted in the value of r(kn) such that it did not match ym(kI)). Hence, for illustration purposes we are assuming that in one step the plant input can affect the plant output; in Section 3. 2. 4 we will explain what to do if it takes d steps for the plant input to affect the plant output Note that e(kn)and c(kT-n would have been the error and change in error that were input to the fuzzy controller at that time. By modifying the fuzzy controller's knowledge-base, we may force the fuzzy controller to produce a desired output u(kT-T)+ p(kn), which we should have put in at time kT-T to make ye(kn) smaller. Then, the next time we get similar values for the error and change in error, the input to the plant will be one that will reduce the error between the reference model and plant output Assume that we use symmetric output membership functions for the fuzzy controller, and let bm denote the center of the membership function associated with U. Knowledge-base modification is per formed by shifting centers bm of the membership functions of the output linguistic value U that are associated with the fuzzy controller rules that contributed to the previous control action u(kT-7 This is a two-step process 1. Find all the rules in the fuzzy controller whose premise certainty PDF文件使用" pdffactory Pro"试用版本创建ww, fineprint,com,cn
error ye(kT) . This is the view taken for some of the design and implementation case studies in the next section. Note that similar to the fuzzy controller, the fuzzy inverse model shown in Figure 3.3 contains scaling gains, but now we denote them with e y g , c y g and p g . We will explain how to choose these scaling gains below. Given that e y e g y and c y c g y are inputs to the fuzzy inverse model, the rule-base for the fuzzy inverse model contains rules of the form is is is j l m e e c c IF y Y and y Y Then p P Where j Ye and l Y c denote linguistic values and m P denotes the linguistic value associated with the mth output fuzzy set. In this book we often utilize membership functions for the input universes of discourse as shown in Figure 3.4, symmetric triangular-shaped membership functions for the output universes of discourse, minimum to represent the premise and implication, and COG defuzzification. Other choices can work equally well. For instance, we could make the same choices, except use singleton output membership functions and center-average defuzzification. Knowledge-Base Modifier Given the information about the necessary changes in the input, which are represented by p(kT), to force the error y, to zero, the knowledge-base modifier changes the rule-base of the fuzzy controller so that the previously applied control action will be modified by the amount p(kT). Consider the previously computed control action u(kT-T), and assume that it contributed to the present good or bad system performance (i.e., it resulted in the value of Y(kT) such that it did not match ym(kT) ). Hence, for illustration purposes we are assuming that in one step the plant input can affect the plant output; in Section 3.2.4 we will explain what to do if it takes d steps for the plant input to affect the plant output. Note that e(kT) and c(kT-T) would have been the error and change in error that were input to the fuzzy controller at that time. By modifying the fuzzy controller's knowledge-base, we may force the fuzzy controller to produce a desired output u(kT-T)+ p(kT), which we should have put in at time kT-T to make ye(kT) smaller. Then, the next time we get similar values for the error and change in error, the input to the plant will be one that will reduce the error between the reference model and plant output. Assume that we use symmetric output membership functions for the fuzzy controller, and let bm denote the center of the membership function associated with m U . Knowledge-base modification is performed by shifting centers bm of the membership functions of the output linguistic value m U that are associated with the fuzzy controller rules that contributed to the previous control action u(kT-T). This is a two-step process: 1. Find all the rules in the fuzzy controller whose premise certainty PDF 文件使用 "pdfFactory Pro" 试用版本创建 www.fineprint.com.cn