International Journal of Fuzzy Logic Systems (IJFLS) Vol.4, No.1, January 2014
DESIGN OF LYAPUNOV BASED FUZZY LOGIC CONTROLLER FOR PUMA-560 ROBOT MANIPULATOR
1
1
Ch Ravi kumar 2DV Pushpalatha 3K R Sudha 4KA Gopala Rao
Research Scholar, Department of Electrical Engineering, Andhra University, India 2 Professor, Department of EEE, GRIET, Hyderabad, India 3 Professor, Department of Electrical Engineering, Andhra University, India 4 Professor, Department of EEE, GVPCE, Visakhapatnam
ABSTRACT As the robot manipulators are highly nonlinear, time varying and Multiple Input Multiple Output (MIMO) systems, one of the most important challenges in the field of robotics is robot manipulators control with acceptable performance. In this research paper, a simple and computationally efficient Fuzzy Logic Controller is designed based on the Fuzzy Lyapunov Synthesis (FLS) for the position control of PUMA-560 robot manipulator. The proposed methodology enables the designer to systematically derive the rule base thereby guarantees the stability of the controller. The methodology is model free and does not require any information about the system nonlinearities, uncertainties, time varying parameters, etc. The performance of any fuzzy logic controller (FLC) is greatly dependent on its inference rules. The closed-loop control performance and stability are enhanced if more rules are added to the rule base of the FLC. However, a large set of rules requires more on-line computational time and more parameters need to be adjusted. Here, a Fuzzy Logic Controller is first designed and then the controller based on FLS is designed and simulated with a minimum rule base. Finally the simulation results of the proposed controller are compared with that of the normal Fuzzy Logic Controller and PD controlled Computed Torque Controller (PD-CTC). Results show that the proposed controller outperformed the other controllers.
KEYWORDS PUMA-560 robot manipulator, Fuzzy controller, Fuzzy Lyapunov Synthesis.
1. INTRODUCTION Robotic arm is an important class in the robot anatomy such as manipulator of PUMA-560 robot. These arms are widely used for mechanical handling, welding, assembling, painting, grinding and other industrial applications. These applications may require path planning, trajectory generation and control design. All these factors make the study of robot manipulators, interesting. Conventional methods of controlling a nonlinear system are based on models, especially in the field of robot control. Many controllers like LQG, HÎą [1] and input shaping as well as singular perturbation, feedback linearization, manifolds and output redefinition techniques have been used for controlling purpose if the exact model of the system is known. Many robotic control schemes can be considered as special cases of model-based control called computed torque approach. The basic concept of computed torque is to linearize a nonlinear system, and then to apply linear control theory. But these controllers suffer from the lack of an exact simple-enough model of the system and this calls for the use of the intelligent controllers. And for these above mentioned controllers stability also became hard task. Fuzzy inference systems [2] have been proven to be powerful tools to deal with the nonlinear systems on the basis of fuzzy rules [3], particularly those DOI : 10.5121/ijfls.2014.4101
1
International Journal of Fuzzy Logic Systems (IJFLS) Vol.4, No.1, January 2014
possessing a high degree of uncertainty and nonlinearity. Thus considerable research development has been achieved in the use of fuzzy inference system for the control of a robot manipulator that suffers from structured and unstructured uncertainties such as load variation, friction, and external disturbances etc. To avoid these difficulties and ensuring the stability of the system, a model free technique Fuzzy Lyapunov Synthesis (FLS) is proposed to control the PUMA-560 robot in this paper. A new Fuzzy rule base is derived for stabilizing the system and minimizing the error. The basic idea to choose Lyapunov function and derive the Fuzzy rules is to make its derivative negative. For this, the knowledge of output relative degree of the system model is only sufficient. The basic assumption of the fuzzy Lyapunov synthesis is that, for a Lyapunov function V (x), if the linguistic value of (x) is Negative, then (x) < 0, so the stability can be guaranteed. Prior to this work, the mathematical model of PUMA-560 robot manipulator is implemented in Simulink, the normal three input Fuzzy controller is applied to the model [4], the results are compared with the results obtained by PD controlled Computed Torque Controller (PD-CTC). The rest of the paper is organized as follows: The mathematical model of PUMA-560 robot manipulator is presented in section 2, The Fuzzy Lyapunov Synthesis (FLS) is presented in section 3, the FLS Control law is explained in section 4, and Simulation results are presented in section 5.
2. THE MATHEMATICAL MODEL OF PUMA-560 ROBOT MANIPULATOR The mathematical model Armstrong [5] [6] [7] of PUMA-560 robot manipulator [8] model is derived by using Lagrangeâ&#x20AC;&#x2122;s equation considering only three links among the total six links, such that . -------eq. (1) Where q: nx1 position vector , A(q): nxn inertia matrix of the manipulator, G(q): nx1 vector of gravity terms : nx1 vector of torques B(q): nxn(n-1)/2 matrix of Coriolis torques C(q): nxn matrix of Centrifugal torques : n vector of acceleration and are notation for n(n-1)/2 vector of velocity products and the n-vector of squared velocities respectively. Where
The above model of the robot arm is derived by generating the kinetic energy matrix and gravity vector symbolic elements by performing the summation of Lagrangeâ&#x20AC;&#x2122;s nonlinear formulation [9]. These elements are simplified by combining inertia constants that multiply common variable expressions. The Coriolis and centrifugal matrix elements are then calculated in terms of partial derivatives of kinetic energy, and then reduced using four relations that hold the partial derivatives. 2
International Journal of Fuzzy Logic Systems (IJFLS) Vol.4, No.1, January 2014
Where a11=Im1+I1+I3CC2+I7SS23+I10SC23+I11SC2+I20(SS5(SS23(I21+CC4)–1)–2SC23C4SC5) +I21SS23CC4+2{I5C2S23+I12C2C23+I15(SS23C5+SC23C4S5)+I16C2(S23C5+C23C4S5)+I18S4S 5+I22(SC23C5+CC23C4S5); a12=I4S2+I8C23+I9C2+I13S23–I15C23S4S5+I16S2S4S5+I18(S23C4S5–C23C5)+I19S23SC4 + I20S4(S23C4CC5+C23SC5)+I22S23S4S5; a13=I8C23+I13S23–I15C23S4S5+I19S23SC4+I18(S23C4S5–C23C5)+I22S23S4S5+I20S4(S23C4 CC5+C23SC5); a22=Im12+I2+I6+I20SS4SS5+I21SS4+2(I3S3+I12C3+I15C5+I16(S3C5+C3C4S5)+I22C4S5; a23=I5S3+I6+I12C3+I16(S3C5+C3C4S5+I20SS4SS5+I21SS4+2{I15C5+I22C4S5}; a33=Im5 I6+I20SS4+SS5+I21SS4+2{I15C5+I22C4S5}; a34=-I15S4S5+I20S4SC5; a35=I15C4C5+I17C4+I22S5; a36=I23S4S5; a44=Im4+I14–I20SS5; a46=I23C5;a55=Im5+I17; a66=Im6+I23;
b112=2{-I3SC2+I5C223+I7SC23–I12S223+I15(2SC23C5+(1-2SS23)C4S5+I16(C223C5S223C4S5)+I21SC23CC4+I20(1+CC4)SC23SS5-(1-2SS23)C4SC5+I22{(1–2SS23)C52SC23)C4S5)}+I10(1-2SS23)+I11(1-2SS2) b113=2{I5C2C23+I7SC23-I12C2S23+I15(2SC23C5+(1-2SS23)C4S5)+I16C2(C23C5S23C4S5)+I21SC23CC4+I20{(1+CC4)SC23SS5-(1-2SS23)C4SC5)+I22{(1–2SS23)C52SC23)C4S5)}+I10(1-2SS23) b114=2{-I15SC23S4S5–I16C2C23S4S5+I18C4S5–I20(SS23SS5SC4–SC23S4+SC5)+ I22CC23S4S5–I21SS23SC4); b115=2{I20(SC5(CC4(1-CC23)CC23)-SC23C4(1-2SS5))–I15(SS23S5–SC23C4C5)I16C2(S23S5-C23C4C5)+I18S4C5+I22{CC23C4C5-SC23S5)} b123=2{-I8S23+I13C23+I15S23S4S5+I18(C23C4S5+S23C5)+I19C23SC4+I20S4(C23C4CC5– 3
International Journal of Fuzzy Logic Systems (IJFLS) Vol.4, No.1, January 2014
S23SC5)+I22C23S4S5}; b124=- I182S23S4S5+I19S23(1-(2SS4)+I20S23(1-2SS4CC5)–I14S23; b125=-I17C23S4+I182(S23C4C5+C23S5)+I20S4(C23(1-2SS5)–S5S23C4*2SC5; b126=-I23(S23C5C23C4S5); b134= b124; b135 = b125; b136 = b126; b145=2{I15S23C4C5+I16C2C4C5+I18C23S4C5+I22C23C4C5)+I17S23C4-I20(S23S4(12SS5)+2C23SC5); b146=I23S23S4S5; b156=-I23(C23S4S5+S23C4C5); b214=I14S23+I19S23(1-(2SS4))+2{-I15C23C4S5+I16S4C4S5+I20(S23(CC5CC4– 0.5)+C23C4SC5)+I22S23C4S5}; b215=2{-I15C23S4C5+I22S23S4C5+I16S2S4C5}I17C23S4+I20C23S4(1-2SS5)–2S23SC4SC5); b216=-b126; b223 =2{-I12S3I3C3+I16(C3C5–S3C4S5)} b224=2{-I16C3S4S5+I20+SC4SS5+I21SC4–I22S4S5} b225=2{-I15S5I16(C3C4C5–S3S5)+I20SS4SC5+I22C4C5}; b254= b224; b235 =b225; b256=I23S4C5; b245=2{-I15S4C5–I16S3S4C5-I17S4+I20S4(1-2SS5}; b246=I23C4S5; b314=2{-I15C23C4S5+I22S23C4S5+I20(S23{CC5+CC4–0.5)+C23C4SC5)}+I14S23+I19S23(1(2SS4)); b315=2{-I15C23S4C5+I22S23S4C5-I17C23S4+I20S4{C23(1-2SS5)-2S23C4SC5); b316=-b136; b324=2{I20SC4SS5+I21SC4–I22S4S5) b325=2{-I15S5+I20SS4SC5+I22C4C5; b334=b324; b335=b325; b346=b246; b356=b256; b412=- b214; b413=-b314; b416=- b146; b423=- b324; b345=I152S4C5–I17S4+I20S4(1-2SS); b415=I20{S23C4(1-2SS5)+2C23SC5)-I17S23C4}; b425=I17S4+I20S4(1-2SS5); b426=- b246; b435= b425; b436=- b346; b512=- b215; b515=- b515; b514=b415; b516=- b156; b525=-b325; b524=- b425; b526=- b256; b534= b524; b536=- b356; b546=- b456; b612=b126; b613=b136; b614=b146; b613=b156; b624=b246; b625=b256; b634=b624; b635=b625; b645=- b456.
4
International Journal of Fuzzy Logic Systems (IJFLS) Vol.4, No.1, January 2014
Matrix C is
Where c12=I4C2–I8S23–I9S2+I13C23+I15S23S4S4+I16C2S4S5+I18(C23C4S5+S23C5)+I19C23SC4+ I20S4(C23CC5-S23SC5)+I22C23S4S5; c13=0.5b123; c21=-0.5b112; c23=0.5b223; c24=-I15C4S5–I16S3C4S5+I20C4SC5; c31=-0.5b113; c32=c23; c34=-I15C4S5+I20C4SC5;c35=-I15C4S5+I22C5; c41=-0.5b114; c42=0.5b224; c43=0.5b423; c31=-0.5b115; c52=-0.5b225; c53=0.5b523; c34=-0.5b145. And matrix G is:
Where g2=g1C2+g2S23+g3S2+g4C23+g5(S23C5+C23C4S5) g3=g2S23+g4C23+g5(S23C5+C23C4S5); g5=g5(C23S5+S23C4C5); Where are the inertial constants, are the gravitational constants. And we have abbreviated the trigonometric functions by writing S2 to mean sin( ), C23 to mean cos( ) and CS4 to mean cos( )*sin( ). With all the above parameters the dynamic model equation (1) can be written as follows. -------- eq. (2) Where -------- eq. (3) Selecting the Proportional-Derivative (PD) [10] feedback results in the PD-Computed Torque Controller (PD-CTC) Nguyen [11], this forms equation (4). -------- eq. (4) 5
International Journal of Fuzzy Logic Systems (IJFLS) Vol.4, No.1, January 2014
From the equation (4), we can separate the mathematical model into linear and nonlinear parts. The schematic diagram of a 6DOF PUMA-560 robot manipulator is shown in Fig. 1.
Figure 1. The 6DOF PUMA-560 robot manipulator
3. FUZZY LYAPUNIV SYNTHESIS (FLS) The FLS, Margaliot [12] is fuzzy model-free approach based on selecting a Lyapunov function candidate [13] [14] and make its derivative negative by designing fuzzy control rules [15]. The FLS was applied to some minimum phase single input single output plants where some fuzzy rules describing the linguistic relation between the input and the output and the output relative degree were known [16]. And in this process there is no direct insight to the system dynamic and structural properties was given there, so that the applicability of the FLS and the study of stability analysis were less tractable. Here, the reviewed formulation is to show the essentials of the theory and its control rules [12] are clearly modified to illustrate applicability of the FLS to the nonminimum phase systems and improve the system performance. Consider the nonlinear system p
, u
n
, y
-------eq. (5)
y = h(x) The control objective is that the error e = y â&#x20AC;&#x201C; yd goes to zero asymptotically where yd is the desired reference trajectory. First we had chosen a positive definite function V as a lyapunov function candidate and then design u to make its time-derivative as negative along the system trajectory, i.e. ,
--------eq. (6)
If the knowledge about (5) is limited to fuzzy descriptions of the proposed system, (6) may be used again, but here this time as a linguistic inequality yielding u in terms of fuzzy mamdani IFTHEN rules. This methodology is called Fuzzy Lyapunov Synthesis. The control strategy of FLS is based on designing u to make negative.
6
International Journal of Fuzzy Logic Systems (IJFLS) Vol.4, No.1, January 2014
4. FLS CONTROL LAW The Lyapunov function candidate [17] can be selected in several approaches based on some specific controlling objectives. The following are some possible approaches in them. 1. Select a Lyapunov function candidate in order to guarantee the system stability and to meet the performance measures. And this approach often becomes more complex. 2. The Lyapunov function candidate parameters are tuned accordingly by observing the performance measures and the internal stability of system dynamics so that system stability [18] is guaranteed. 3. Add all control terms to the main system controller, such that each control term that satisfies the performance measures pertaining to the internal stability. In this section, to derive the control rules two Lyapunov function candidates are proposed. Even though these two Lyapunov functions are simple easy functions of output error e, with their integral and derivative, these also give good insight to the problem. These Lyapunov functions and corresponding derived FLS control rules are modified and reviewed to improve the performance and to stabilize the internal dynamics of the system. Let us consider the first Lyapunov function candidate and its time derivative are The FLS control rules are derived assuming ĂŤ is proportional to u with e and Ä&#x2014;. And the premise variables are summarized in the Table 1. Using and, can be rewritten as: -------- eq. (7) The FLS control rules framed based on equation (7) do not generate effective control signals when the steady state error is large. Under these conditions, the second Lyapunov function can be chosen which gives effective control. The equation is: 2
)
-----eq. (8)
The related control rules corresponding equation (8) are given below in the Table 1. Table 1. Fuzzy Lyapunov control rules
U
+
-
+
-
+
-
+
-
+
+
-
-
+
+
-
-
+
+
+
+
-
-
-
-
nb
nm
z
ns
ps
z
pm
pb
Where nb- negative big, nm- negative medium, z- zero, ns- negative small, ps- positive small, pmpositive medium, pb- positive big. 7
International Journal of Fuzzy Logic Systems (IJFLS) Vol.4, No.1, January 2014
5. RESULTS The Fuzzy Lyapunov Synthesis (FLS) controller was designed by means of selecting appropriate rule base such that the system stability was also guaranteed and tested to step and ramp inputs. At first the mathematical model of PUMA-560 robot manipulator was implemented in simulation. In this simulation the first, second and third joints are moved from home to final position with and without uncertainties. The simulation was implemented in MATLAB/SIMULINK environment. The results obtained for Fuzzy Lyapunov Synthesis (FLS) controller were compared with the results obtained for PD controlled Computed Torque Controller (PD-CTC) Nguyen [4] and normal Fuzzy controller. From the figures from Fig. 2 to Fig. 12 it was observed that the FLS controller gave better results in all cases when compared with PD-CTC and Fuzzy controllers. Error in theta3 of link3 for ramp input without uncertainties
0
PD-CTC Fuzzy Ref Fuzzy Lyap
-1 -2
Error
-3 -4 -5 -6 -7
0
1
2
3
4
5 Time
6
7
8
9
10
Fig. 2 Response of error in angle at link3 for ramp input without uncertainties Error in theta3 of link3 for ramp input with uncertainties (positive)
0
Reference PD-CTC Fuzzy Fuzzy Lyap
-1
Error
-2 -3 -4 -5 -6 -7
0
1
2
3
4
5 Time
6
7
8
9
10
Fig. 3 Response of error in angle at link3 for ramp input with uncertainties (positive)
8
International Journal of Fuzzy Logic Systems (IJFLS) Vol.4, No.1, January 2014 Error in theta3 of link3 for step input without uncertainties
1.2 1
Reference PD-CTC Fuzzy Fuzzy Lyap
0.8
Error
0.6 0.4 0.2 0 -0.2
0
1
2
3
4
5 Time
6
7
8
9
10
9
10
Fig. 4 Response of error in angle at link3 for step input without uncertainties E rror in theta3 of link 3 for s tep input with unc ertainties (pos itive)
1.2 1
Referenc e P D-CTC Fuz z y Fuz z y Ly ap
0.8
E rror
0.6 0.4 0.2 0 -0.2
0
1
2
3
4
5 Tim e
6
7
8
Fig. 5 Response of error in angle at link3 for step input with uncertainties (positive) Error in theta2 of link2 for ramp input without uncertainties 7 6 PD-CTC Ref Fuzzy Fuzzy Lyap
5
Error
4 3 2 1 0
0
1
2
3
4
5 Time
6
7
8
9
10
Fig. 6 Response of error in angle at link2 for ramp input without uncertainties
9
International Journal of Fuzzy Logic Systems (IJFLS) Vol.4, No.1, January 2014 Error in theta2 of link2 for ramp input with uncertainties (positive) 7 Reference PD-CTC Fuzzy Fuzzy Lyap
6 5
Error
4 3 2 1 0
0
1
2
3
4
5 Time
6
7
8
9
10
Fig. 7 Response of error in angle at link2 for ramp input with uncertainties (positive) E rror in theta2 of link 2 for s tep input without unc ertainties 2
1
E rror
0 Referenc e P D-CTC Fuz z y Fuz z y Ly ap
-1
-2
-3
-4
0
1
2
3
4
5 Tim e
6
7
8
9
10
Fig. 8 Response of error in angle at link2 for step input without uncertainties Error in theta1 of link1 for ramp input without uncertainties 0.005 0 PD-CTC Fuzzy Ref FUZZY LYAP
-0.005
Error
-0.01 -0.015 -0.02 -0.025 -0.03 -0.035 -0.04
0
1
2
3
4
5 Time
6
7
8
9
10
Fig.9 Response of error in angle at link1 for ramp input without uncertainties
10
International Journal of Fuzzy Logic Systems (IJFLS) Vol.4, No.1, January 2014 Error in theta1 of link1 for ramp input with uncertainties (positive) 0.005 0 Reference PD-CTC Fuzzy Fuzzy Lyap
-0.005
Error
-0.01 -0.015 -0.02 -0.025 -0.03 -0.035
0
1
2
3
4
5 Time
6
7
8
9
10
Fig. 10 Response of error in angle at link2 for ramp input with uncertainties (positive) E rror in theta1 of link 1 for s tep input without unc ertainties 0.01 0 Referenc e P D-CTC Fuz z y Fuz z y Ly ap
-0.01
-0.03 -0.04 -0.05 -0.06 -0.07 -0.08
0
1
2
3
4
5 Tim e
6
7
8
9
10
Fig.11 Response of error in angle at link1 for step input without uncertainties -5
12
Error in theta1 of link1 for step input with uncertainties (positive)
x 10
10 Fuzzy Lyap Reference
8 6
Error
E rror
-0.02
4 2 0 -2
0
2
4
6
8
10 Time
12
14
16
18
20
Fig. 12 Response of error in angle at link1 for step input with uncertainties (positive)
11
International Journal of Fuzzy Logic Systems (IJFLS) Vol.4, No.1, January 2014
6. CONCLUSIONS In this paper, a novel approach for determining the rule base of a Fuzzy lyapunov Synthesis (FLS) controller is proposed. Starting with minimal knowledge concerning the plant’s behavior, a lyapunov function candidate V is chosen and determines conditions so that V will indeed be a lyapunov function. These conditions provide us the rule base of the fuzzy controller. Our proposed FLS approach combines two works here. On one hand, the plant is model-free in the sense only minimal fuzzy knowledge is available. On the other hand, it follows the classical Lyapunov Synthesis method. This combination provides us with a solid analytical basis from which the rules are obtained and justified. And now the concept of Fuzzy Lyapunov Synthesis (FLS) is applied to a PUMA-560 robot manipulator, the effectiveness of the control is observed when compared with PD controlled Computed Torque Controller (PD-CTC) and the normal Fuzzy controller. Only with the knowledge of output relative degree and some structural properties of the robot manipulator model the framework of stability and performance analysis of the system was done.
REFERENCES [1] [2]
[3] [4] [5] [6]
[7] [8] [9] [10] [11] [12] [13] [14]
[15] [16] [17]
[18]
Dennis S. Bernstein, Wassim M. Haddad, “LQG Control with an Hα Performance Bound”, IEEE Transactions on Automatic Control, Vol. 34, No. 3, 293-304, March 1989. Srinivasan Alavandar, M. J. Nigam “Adaptive Neuro-Fuzzy Inference System based control of six DOF robot manipulator”, Research Article, Journal of Engineering Science and Technology Review 1 (2008) 106- 111. Tanaka, K., H.O. Wang, Fuzzy Control Systems Design and Analysis, John Wiley and Sons Inc., 2001. C. Chen, Y. Yin, “Fuzzy Logic Control of a Moving Flexible Manipulator”, IEEE ICCA, 1999, pp. 315-320. “The Explicit Dynamic Model and Inertial Parameters of the PUMA 560 Arm”, Brian Armstrong, Oussama Khatib, Joel Burdick, (CH2282-2/86/0000/0510)T;o1.00 109 86 EEE, pages 510-518. Farzin Piltan, Mohammad Hossein Yarmahmoudi, “PUMA-560 Robot Manipulator Position Computed Torque Control Methods Using MATLAB/SIMULINK and Their Integration into Graduate Nonlinear Control and MATLAb courses” IJRA, Volume (3): Issue (3): 2012. W.J. Book, “Recursive Lagrangian Dynamics of Flexible Manipulator Arms”, Int. J. Rob. Res., Vol. 3, 1984, pp. 87-101. A. Vivas and V. Mosquera, "Predictive functional control of a PUMA robot," Conference Proceedings, 2005. T. R. Kurfess, Robotics and automation handbook: CRC, 2005. S. Tzafestas, N. Papanikolopoulos, “Incremental Fuzzy Expert PID Control”, IEEE Trans. Ind. Elec., Vol.37, 1990, pp. 365-371. D. Nguyen-Tuong, M. Seeger and J. Peters, "Computed torque control with nonparametric regression models," IEEE conference proceeding, 2008, pp. 212-217. Margaliot M., G. Langholz, New Approaches in Fuzzy Modeling and Control, World Scientific Pub. Co.,2000. Michael Margaliot, Gideon Langholz, “Fuzzy Lyapunov-based approach to the design of fuzzy Controllers”, ELSEVIER, Fuzzy sets and systems 106 (1999) 49-59. Changjiu Zhou, “Fuzzy-Arithmetic-Based Lyapunov Synthesis in the design of stable fuzzy controllers: A Computing-with-words approach”, International Journal of Applied Mathematics and Computational Science, 2002, Vol. 12, No. 3, 411-421. V.G. Moudgal, W.A. Kwong, K.M. Passino, and S. Yurkovich, “Fuzzy Learning Control for a Flexible Manipulator Control”, ACC., June 1994, pp. 563-567. A.Mannani, H.A.Talebi, “A Fuzzy Controller based on Fuzzy Lyapnov Synthesis for a Single-Link Flexible Manipulator”. Mehrdad Ghandhari, Göran Andersson and Ian A. Hiskens “Control Lyapunov Functions for Controllable Series Devices”, IEEE Transactions on Power Systems, VOL. 16, No. 4, 689-694, November 2001. K. Ogata, Modern control engineering: Prentice Hall, 2009. 12