1. Optimal Control Tracking Problem Applied to a Wind Power
System
May 4, 2015
Julio Bravo
tud12837@temple.edu
Abstract
We consider a wind power system with the goal of track a desired trajectory of
its states using an extension of the Linear Quadratic Regulator method. The nonlinear
system is mathematically modeled and then it is linearized for Tracking Problem design
purposes. We mathematically design the controller and compare the system states with
the desired trajectories.
1. Introduction
Power generation using wind turbines has become an important source of clean energy during
the last decades. The necessity of control these systems has been the focus of many researchers
with the goal to improve efficiency considering fatigue loads and life time of the system
components as described by [1] and [2].
In Section 2 we begin showing the nonlinear model of a wind power system developed by [3]
and [4] then we show the linearization of the system choosing the appropriate operating points.
In Section 3 we describe the analytical analysis of the tracking problem applied to this linear
system explained by [5], [6] and [7].
In Section 4 we simulate all the system states separately and compare them against their
respective desired trajectories.
2. Model
From [3] we have a wind power energy conversion system (WECS) where ”the aerodynamics
block converts the power from wind into mechanical power (rotations) and these rotations are
increased and transmitted to the generator block by the drive train block. Finally, the mechanical
power is transformed into electrical power by the generator block”. A WECS block diagram is
shown in Fig.1.
2. Figure 1: WECS Block Diagram
For the control purpose, only aerodynamics, drive train dynamics, and generator dynamics are
taken into account. All the definitions, values, and units of the variables and constants used in
the following deduction of the system model are tabulated in Table 1.
Parameter Definition Value and Units
Ld = Lq d and q components of the stator inductance 0.04156 mH
Rs Stator Resistance 3.3 Ω
ρ Standard Air Density 1.2041 kg/m3
Jg Generator Inertia 0.22 kgm2
Bg Damping Coefficient of the Generator Shaft 0.3
i Gearbox Ratio 6
Kg Stiffness Coefficient of the Generator Shaft 75
γ Defined in the Text -0.51215
CQ Torque Coefficient 0.3422
¯λ = λopt Tip-speed Ratio 7.36218
Jr Wind Rotor Inertia 7.1062 kgm2
η Gearbox Efficiency 0.405288
R Radius of the Wind Rotor Plane 2 m
p Number of Pole Pairs 2
φm Flux 0.6573 Wb
a0 λ - Polynomial Coefficient 0.0084948
a1 λ - Polynomial Coefficient 0.05186
a2 λ - Polynomial Coefficient -0.022818
a3 λ - Polynomial Coefficient 0.01191
a4 λ - Polynomial Coefficient -0.0017641
a5 λ - Polynomial Coefficient 7.48 × 10−5
¯ωr Wind Rotor Speed 36.8109 rad/s
¯ωg Generator Speed 220.8654 rad/s
¯TH Internal Torque 329.49 Nm
¯id d Component of Stator Current 6.68 A
¯iq q Component of Stator Current 5.25705 A
Table 1: Definition and Units of System Variables
3. The inputs of the aerodynamics block are V and ωr. The output is Tr which can be expressed
as
Tr(λ, t) =
1
2
ρπR3
CQ(λ)V (t)2
(1)
where λ and CQ are defined as
λ(t) =
ωr(t)R
V (t)
(2)
and
CQ(λ) = a0 + a1λ + a2λ2
+ a3λ3
+ a4λ4
+ a5λ5
(3)
The drive train can be represented by a rigid or flexible model as described in [2]. A flexible
drive train block is shown in Fig.2
Figure 2: Drive Train Block Diagram
From [3] a flexible drive train has the model
˙ωr(t) = −
i
ηJr
TH(t) +
1
Jr
Tr(t) (4)
˙ωg(t) =
1
Jg
TH(t) −
1
Jg
Tg(t) (5)
˙TH(t) = iKgωr(t) − Kgωg(t) − Bg(
1
Jg
+
i2
ηJr
)TH(t) +
iBg
Jr
Tr(t) +
Bg
Jg
Tg(t) (6)
”Essentially, asynchronous and synchronous generators are two primary types of generator
which have been used in WECSs. Three popular generators are Squirrel Cage Induction Generator
(SCIG), Doubly Fed Induction Generator (DFIG), and Permanent Magnet Synchronous Generator
(PMSG)” [3]. This study is focused on the PMSG which, from [8], has the model in (d,q) axes
˙id(t) = −
Rs
Ld
id(t) −
pLq
Ld
iqωg(t) −
1
Ld
ud(t) (7)
4. ˙iq(t) = −
Rs
Lq
iq(t) −
p
Lq
(Ldid(t) − φm)ωg(t) −
1
Lq
uq(t) (8)
where Tg is defined as Tg(t) = pφmiq(t) and can be used in the model of the drive train
explained above.
The complete nonlinear model of a PMSG-based WECS is obtained by combining equations
4 to 8.
CQ(λ) has its maximum value at λopt. Maintaining λopt constant, regardless the fluctuations
of wind speed, we can expect that a WECS operates optimally. To keep λ(t) at the λopt value
as V (t) changes, according to [3], ωr(t) must be adjusted by controlling Tg(t).
The nonlinear system has the state vector x(t) = [ωr(t); ωg(t); TH(t); id(t); iq(t)]T
and the
input vector u(t) = [ud(t); uq(t); V (t)]T
.
Using Taylor’s Series expansion around the operating points given by
¯x(t) = [ ¯ωr(t) ¯ωg(t); ¯TH(t); ¯id(t); ¯iq(t)]T
and ¯u(t) = [ ¯ud(t); ¯uq(t); ¯V (t)]T
, we obtain a model as
follows
˙δx(t) = Aδx(t) + Bδu(t) (9)
where δx(t) = x(t) − ¯x(t) and δu(t) = u(t) − ¯u(t) are variations of the variables in the
neighborhood of the operating points and A and B are the Jacobian of the system defined as
A =
∂ωr
∂ωr
∂ωr
∂ωg
∂ωr
∂TH
∂ωr
∂id
∂ωr
∂iq
∂ωg
∂ωr
∂ωg
∂ωg
∂ωg
∂TH
∂ωg
∂id
∂ωg
∂iq
∂TH
∂ωr
∂TH
∂ωg
∂TH
∂TH
∂TH
∂id
∂TH
∂iq
∂id
∂ωr
∂id
∂ωg
∂id
∂TH
∂id
∂id
∂id
∂iq
∂iq
∂ωr
∂iq
∂ωg
∂iq
∂TH
∂iq
∂id
∂iq
∂iq
(10)
and
B =
∂ωr
∂ud
∂ωr
∂uq
∂ωr
∂V
∂ωg
∂ud
∂ωg
∂uq
∂ωg
∂V
∂TH
∂ud
∂TH
∂uq
∂TH
∂V
∂id
∂ud
∂id
∂uq
∂id
∂V
∂iq
∂ud
∂iq
∂uq
∂iq
∂V
(11)
Evaluating the Jacobian at the operating points, we have the system and control matrices given
as
A =
1
2Jr ¯ωr
ρπR3
CQ(¯λ)γ ¯V 2
0 − i
ηJr
0 0
0 0 1
Jg
0 −pφm
JG
iKg + iBg
2Jr ¯ωr
ρπR3
CQ(¯λ)γ ¯V 2
−Kg −Bg( 1
Jg
+ i2
ηJr
) 0 Bgpφm
Jg
0 pLq
Ld
¯iq 0 −Rs
Ld
pLq ¯ωg
Ld
0 p
Lq
(Ld
¯id − φm 0 −pLd ¯ωg
Lq
−Rs
Ld
(12)
5. and
B =
0 0 2−γ
2Jr
ρπR3
CQ(¯λ)¯V
0 0 0
0 0 2−γ
2Jr
iBgρπR3
CQ(¯λ)¯V
− 1
Ld
0 0
0 − 1
Lq
0
(13)
where γ =
¯λCQ(¯λ)
CQ(¯λ)
.
Assuming a wind velocity V = 10 m/s, and evaluating the Jacobian in the numerical values
of the operating points, the system and control matrices are given as bellow
A =
−1.0133 0 −2.0833 0 0
0 0 4.5455 0 −5.9755
448.176 −75 −5.1136 0 1.7926
0 10.5141 0 −79.4033 441.7308
0 18.2715 0 −441.7308 −79.4033
(14)
and
B =
0 0 18.3058
0 0 0
0 0 32.9504
−24.0616 0 0
0 −24.0616 0
(15)
The linear system have five eigenvalues λ1=-79.45+441.86j, λ2=-79.45-441.86j, λ3=-0.2, λ4=-
2.92+35.63j, and λ5=-2.92-35.63j. The negative real part of all eigenvalues demonstrate that the
system is stable.
3. Tracking Problem
The goal of Optimal Control is to find a control u(t) which causes the system
˙x(t) = f(x(t), u(t), t) to follow a trajectory x(t) that minimizes the cost function
J = φ(x(tf ), tf ) +
tf
t0
L(x(t), u(t), t)dt (16)
The purpose of this analysis is to maintain the system state x(t) as close as possible to the
desired state xd(t) in the interval [t0, tf ] and because is specially important, that the states be
close to their desired values at the final time. To satisfy the goal of our analysis, we can choose
a cost function as
J =
1
2
< x(tf ) − xd(tf ), S(x(tf ) − xd(tf ) > +
1
2
tf
t0
[< x(t) − xd(t), Q(x(t) − xd(t)) > + < u(t), Ru(t) >]dt
(17)
6. where the operator < ·, · > represents the dot product of vectors. Q is a real symmetric
n × n matrix that is positive semi-definite. The elements of Q are selected to weight the relative
importance of the different components of the state vector and to normalize the numerical values
of the deviations. R is a real symmetric positive definite m×m and S is a real symmetric positive
semi-definite n × n matrix.
Because our system has the linear form
˙x(t) = Ax(t) + Bu(t) (18)
with initial conditions x(t0) = x0 the above cost function leads to an optimal control tracking
problem.
Defining the Hamiltonian we have
H(x, ψ, u, t) =
1
2
< x(t) − xd(t), Q(x(t) − xd(t)) > +
1
2
< u(t), Ru(t) > + < ψ(t), Ax(t) + Bu(t) > (19)
where ψ(t) are the costates which are deducted from the minimization problem solved using
the approach of Calculus of Variations. They represent the Lagrange multipliers used to solve
such problem.
Using the Pontryagin’s minimum principal we find the adjoint equation
˙ψ(t) = −Qx(t) − AT
ψ(t) + Qxd(t) (20)
and the algebraic relations that must be satisfied are given by
Ru(t) + BT
ψ = 0 (21)
Now the problem became a two point boundary problem as shown below
˙x = Ax(t) + Bu(t) (22)
with initial conditions x(t0) = x0 and
˙ψ(t) = −Qx(t) − AT
ψ(t) + Qxd(t) (23)
with ”initial” conditions ψ(tf )=S(x(tf ) − xd(tf )).
The problem described above can be written in a state space form as
˙x
˙ψ
=
A −BR−1
BT
−Q −AT
x
ψ
+
0
Q
xd (24)
Now let ψ(t) = P(t)x(t) − η(t), where P(t) is a real symmetric n × n matrix and η(t) is a
n × 1 matrix.
Differentiating we have ˙ψ(t) = ˙P(t)x(t) + P(t) ˙x(t) − ˙η(t).
Replacing we obtain
−Qx(t) − AT
[P(t)x(t) − η(t)] + Qxd(t) = ˙P(t)x(t) + P(t)(Ax(t) − BR−1
BT
(P(t)x(t) − η(t))) − ˙η(t) (25)
expanding and regrouping we find
7. (−Q−AT
P(t)− ˙P(t)−P(t)A+P(t)BR−1
BT
P(t))x(t)+(AT −P(t)BR−1
BT
)η(t)+ ˙η(t)+Qxd(t) = 0 (26)
To satisfy the above equation we need
˙P(t) + P(t)A + AT
P(t) − P(t)BR−1
BT
P(t) + Q = 0 (27)
the above equation is the Riccati differential equation which has to be solved backwards using
P(tf ) = S as ”initial” conditions.
We also have
˙η(t) − (AT
− P(t)BR−1
BT
)η(t) − Qxd(t) (28)
which has to be solved backwards with ”initial” conditions η(tf ) = Sxd(tf ).
Since we know that u(t) = −R−1
BT
ψ(t), once we solve the above equations for P(t) and
η(t) we can find the feedback control law which is
u(x(t), t) = −R−1
BT
P(t)x(t) + R−1
BT
η(t) (29)
and finally the closed loop system will be
˙x(t) = (A − BR−1
BT
P(t))x(t) + BR−1
BT
η(t) (30)
4. Simulations
Using a code written in Matlab , we simulated and found the results for different desired tra-
jectories. In our case we chose trajectories of the type: constant, linear, quadratic, and sinusoidal.
To solve Riccati system of differential equations we used Runge-Kutta 4th
order with step
size h = 0.0001. We used the same numerical method to solve the extra system of differential
equations that involve η and the state space equations.
For simulation we used the following weight matrices:
S is a matrix of dimensions 5 by 5 with all its elements equals to zero. These values were
used in all cases.
R is a matrix of dimesions 1 by 1 with its only element equals to one. These values were
used in all cases.
The initial conditions used for the state space simulation were x0 = [0; 0; 0; 0; 0]T
. These
values were used in all cases.
The matrix Q varies depending on what kind of desired trajectory we want to follow. Dif-
ferent Qs, for constant trajectory, linear trajectory, quadratic trajectory, and sinusoidal trajectory
respectively are presented below
Qcons =
500 0 0 0 0
0 200 0 0 0
0 0 200 0 0
0 0 0 20000 0
0 0 0 0 20000
(31)
8. QLinear =
1000 0 0 0 0
0 200 0 0 0
0 0 200 0 0
0 0 0 20000 0
0 0 0 0 20000
(32)
Qquad =
1000 0 0 0 0
0 1000 0 0 0
0 0 1000 0 0
0 0 0 20000 0
0 0 0 0 20000
(33)
Qsin =
2000 0 0 0 0
0 200 0 0 0
0 0 0 0 0
0 0 0 20000 0
0 0 0 0 20000
(34)
The desired trajectories of the states were chosen based on the relation that exists among the
states. For easier calculations purpose we chose:
for constant desired trajectory ωrd(t) = 4 rad/s, ωgd(t) = 25 rad/s, THd(t) = 13 Nm,
idd(t) = 3 A, and iqd(t) = 10 A;
for linear desired trajectory ωrd(t) = t rad/s, ωgd(t) = 6t rad/s, THd(t) = 14 Nm,
idd(t) = 3 A, and iqd(t) = 10 A;
for quadratic desired trajectory ωrd(t) = 0.85t2
rad/s, ωgd(t) = 5t2
rad/s,
THd(t) = 18 Nm, idd(t) = 3 A, and iqd(t) = 10 A;
for sinusoidal desired trajectory ωrd(t) = 0.8sint rad/s, ωgd(t) = 5sint rad/s,
THd(t) = 12.5 Nm, idd(t) = 3 A, and iqd(t) = 10 A.
Where the subscript d stands for desired.
The solutions of the State Space system of differential equations for different desired trajec-
tories are shown from Fig.3 to Fig.22.
10. Time
0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2
TH
0
5
10
15
20
25
30
35
40
Desired Trajectory and Tracking Problem TH
desired T
H
controlled TH
Figure 5: Internal Torque Constant
Time
0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2
id
0
0.5
1
1.5
2
2.5
3
3.5
4
4.5
Desired Trajectory and Tracking Problem id
desired id
controlled id
Figure 6: d current Constant, id
11. Time
0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2
iq
0
1
2
3
4
5
6
7
8
9
10
Desired Trajectory and Tracking Problem iq
desired i
q
controlled iq
Figure 7: q current Constant, iq
Time
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5
ωr
0
0.5
1
1.5
2
2.5
3
3.5
4
4.5
5
Desired Trajectory and Tracking Problem ωr
desired ωr
controlled ω
r
Figure 8: Rotor Speed Linear
12. Time
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5
ωg
-5
0
5
10
15
20
25
30
Desired Trajectory and Tracking Problem ωg
desired ω
g
controlled ωg
Figure 9: Generator Speed Linear
Time
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5
TH
0
5
10
15
Desired Trajectory and Tracking Problem TH
desired TH
controlled TH
Figure 10: Internal Torque Linear
13. Time
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5
id
0
0.5
1
1.5
2
2.5
3
3.5
4
4.5
Desired Trajectory and Tracking Problem id
desired i
d
controlled id
Figure 11: d current Linear, id
Time
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5
iq
0
1
2
3
4
5
6
7
8
9
10
Desired Trajectory and Tracking Problem iq
desired iq
controlled iq
Figure 12: q current Linear, iq
15. Time
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5
TH
0
5
10
15
20
25
Desired Trajectory and Tracking Problem TH
desired T
H
controlled TH
Figure 15: Internal Torque Quadratic
Time
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5
id
0
0.5
1
1.5
2
2.5
3
3.5
4
4.5
Desired Trajectory and Tracking Problem id
desired id
controlled id
Figure 16: d current Quadratic, id
16. Time
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5
iq
0
2
4
6
8
10
12
Desired Trajectory and Tracking Problem iq
desired i
q
controlled iq
Figure 17: q current Quadratic, iq
Time
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5
ωr
-1
-0.8
-0.6
-0.4
-0.2
0
0.2
0.4
0.6
0.8
1
Desired Trajectory and Tracking Problem ωr
desired ωr
controlled ω
r
Figure 18: Rotor Speed Sinusoidal
18. Time
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5
id
0
0.5
1
1.5
2
2.5
3
3.5
4
4.5
Desired Trajectory and Tracking Problem id
desired i
d
controlled id
Figure 21: d current Sinusoidal, id
Time
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5
iq
0
1
2
3
4
5
6
7
8
9
10
Desired Trajectory and Tracking Problem iq
desired iq
controlled i
q
Figure 22: q current Sinusoidal, iq
19. The Control Law for different desired trajctories are shown from Fig.23 to Fig.30.
Time
0 0.5 1 1.5
ud
0
100
200
300
400
500
600
700
800
Control Law, ud
Figure 23: Control Law for Constant Trajectory, ud
Time
0 0.5 1 1.5
uq
0
500
1000
1500
2000
2500
3000
Control Law, uq
Figure 24: Control Law for Constant Trajectory, uq
20. Time
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5
ud
0
100
200
300
400
500
600
700
800
Control Law, ud
Figure 25: Control Law for Linear Trajectory, ud
Time
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5
uq
0
500
1000
1500
2000
2500
3000
Control Law, uq
Figure 26: Control Law for Linear Trajectory, uq
21. Time
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5
ud
0
100
200
300
400
500
600
700
800
900
1000
Control Law, ud
Figure 27: Control Law for Quadratic Trajectory, ud
Time
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5
uq
0
500
1000
1500
2000
2500
3000
Control Law, uq
Figure 28: Control Law for Quadratic Trajectory, uq
22. Time
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5
ud
0
100
200
300
400
500
600
700
800
Control Law, ud
Figure 29: Control Law for Sinusoidal Trajectory, ud
Time
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5
uq
0
500
1000
1500
2000
2500
3000
Control Law, uq
Figure 30: Control Law for Sinusoidal Trajectory, uq
23. The solutions of Riccati system of differential equations for the case when the desired trajectory
is a constant are shown from Fig.31 to Fig.38.
Time
0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2
P
-0.2
0
0.2
0.4
0.6
0.8
1
1.2
1.4
Riccati equation solutions
p11
p12
Figure 31: Riccati Differential Equation Solution
Time
0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2
P
-0.25
-0.2
-0.15
-0.1
-0.05
0
0.05
Riccati equation solutions
p13
p14
Figure 32: Riccati Differential Equation Solution
27. The solutions of the extra system of differential equations that involve η for the case when
the desired trajectory is a constant are shown in Fig.39 and Fig.40.
Time
0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2
η
-70
-60
-50
-40
-30
-20
-10
0
10
Extra differential equation η1
,η3
,η4
,η5
η1
η3
η4
η5
Figure 39: η Differential Equation Solution
Time
0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2
η
-1200
-1000
-800
-600
-400
-200
0
Extra differential equation η2
Figure 40: η Differential Equation Solution
28. Because of space reasons the solutions of Riccati system of differential equations and the
solutions of the extra system of differential equations for the cases where the desired trajectory
is a function of time are not shown in this report but they can be provided upon request.
5. Conclusions
After apply the Tracking Problem Theory to this Wind Power System we can appreciate the
following:
a) It is very important to take the time, use the correct criterion, and try many times with
different options before choose the appropriate desired states trajectories and weight matrices.
Changes in any desired trajectory will affect the trajectory of the other states since the states
are related. It is important to balance the remain trajectories and also be careful tuning the weight
matrices when we want to follow some trajectory for a specific state.
b)The Tracking Problem analysis can be expanded to Time Variant Systems and also can be
applied when the desired trajectory is a function of time.
In our case of study we noticed that when we chose a desired trajectory that is a function of
time the perturbation on the other states is more critical when the function is not linear and in
our specific case the more affected state is the internal torque, TH.
c)The time of response of the states is different depending on the desired trajectory chosen.
In our case the constant trajectory has the fastest response. That is the reason why we plot the
other cases for an interval of 5 seconds rather than 2 seconds as we did it in the case of constant
trajectory.
d)As an extra conclusion, I would like to mention that in order to solve the tracking problem we
had to solve three different systems of differential equations, the Riccati system which actually
have 25 equations but because it is symmetric we only have to consider 15 equations, the system
that involve η with 5 equations, and the state space system with 5 equations. All the systems
were solved independently but at the same time they were related, the form in which the code
was written is a kind of cascade where one system is solved and its solutions are inputs of the
next system. Because of this way to write the code I used the same step size for all the systems
but I noticed that if I used step values greater than 0.0001 then the numerical method blows up.
A possible reason that could cause the instability of the numerical method when we use bigger
step values could be the nonlinearity and the order 15 of the Riccati Equations. The problem
with the optimal control analysis of this report is that we need to solve first the Riccati Equations
and then use its results as input for the controlled space state system as I mention before.
6. Matlab Code
Matlab codes were too long to be included in this report. This could be provided upon request.
References
[1] H.Battista F. Bianchi and R. Mantz, “Wind turbine control system: Principles, modelling, and gain schedule
design,” 2007.
[2] N. Cutuluslis I. Munteanu, A. Bratcu and E. Ceanga, “Optimal control of wind energy systems: Toward a
global aproach,” 2008.
29. [3] Yang Zhang, D. Naidu, and Chenxiao Cai, “Time scale analysis and sysnthesis for model predictive control
under stochastic enviroments,” Control Theory and Applications, IEE Proceedings -, nov.
[4] Naidu Nguyen, “Time scale analysis and control of wind energy conversion system,” Energy Conversion, IEEE
Transactions on, 2012.
[5] Saroj Biswas, “Lecture notes of optimal control,” .
[6] Doald Kirk, “Optimal control theory: an introduction,” 2004.
[7] Frank Lewis, “Optimal control,” 2012.
[8] H. Li and Z. Chen, “Overview of different wind generator systems and their comparisons,” Renewable Power
Generation, vol. 2, no. 2, pp. 123–138, June 2008.