Vous êtes sur la page 1sur 17

LECTURE TWELVE 054414 PROCESS CONTROL SYSTEM DESIGN

054414 Process Control System Design

LECTURE 12:
MODEL PREDICTIVE CONTROL

Daniel R. Lewin
Department of Chemical Engineering
Technion, Haifa, Israel

12-1 PROCESS CONTROL SYSTEM DESIGN - (c) Daniel R. Lewin Model Predictive Control

Objectives
On completing this section, you should:
n Be able to explain to a layman how model predictive
control (MPC) works.
o Understand why MPC can improve on the performance
that can be expected from decentralized controllers.
p Be able to correctly tune MPC to obtain a good
response.
q Be able to implement MPC using MATLAB.

Refs: 1) Seborg, D. E., Edgar, T. F. and Mellichamp, D. A., Process


Dynamics and Control, 2

12-2 PROCESS CONTROL SYSTEM DESIGN - (c) Daniel R. Lewin Model Predictive Control

1 Daniel R. Lewin, Technion


LECTURE TWELVE 054414 PROCESS CONTROL SYSTEM DESIGN

Introduction
Thus far, digital controllers have been designed using relatively
simple models to predict the future values of the process
outputs. We shall now consider a more general form of model
predictive control in which:
n The set points are computed based on a constrained
optimization of a steady-state process model.
o A model-based predictive algorithm ensures that the process
outputs track the setpoints over a prespecified horizon.
d
e u +
+
Opt. control process y
ys -
y model - +
constraints

12-3 PROCESS CONTROL SYSTEM DESIGN - (c) Daniel R. Lewin Model Predictive Control

Constrained Optimization
The most common approach is to perform constrained
optimization using a static process model at regular
intervals. This ensures that the process is maintained at
the optimal operating level when confronted with such
things as:
ƒ Changes in product demands.
ƒ Disturbances such as feedstock changes
ƒ Changes in equipment availability
Despite the fact that processes can be highly nonlinear,
the most commonly-used method is LP. This has been
covered in other courses (054374, 054402), so it will not
be discussed further here. This leaves MPC to cover…

12-4 PROCESS CONTROL SYSTEM DESIGN - (c) Daniel R. Lewin Model Predictive Control

2 Daniel R. Lewin, Technion


LECTURE TWELVE 054414 PROCESS CONTROL SYSTEM DESIGN

MPC made simple…


MPC is a model-based control strategy using models in 2 ways:
ƒ Uses a reliable model to predict effect of past control
moves on P future outputs, assuming no future moves.
ƒ Uses the same model to compute the optimal M controller
moves. Implement first move and repeat procedure.
past Prediction horizon, P v
target YCL
v
yOL
yk

mk

k k+M k+P

Control horizon, M
12-5 PROCESS CONTROL SYSTEM DESIGN - (c) Daniel R. Lewin Model Predictive Control

Discrete Convolution Models


Evidently, a discrete model describing the effect of inputs on
outputs is required. Commonly, discrete impulse response, or
convolution, models are used.
Consider the response of a typical process to a unit step input:
ai are the step response coefficients
hi are the impulse response coefficients
hi = ai − ai −1 , i = 1, …,H - model horizon.
h0 = 0 (what does this assume?)
H, the model horizon, is selected to
capture 99% of the transient.
H

A discrete convolution model is: yk +1 = ∑ hi mk +1−i


i =1
Predicted Manipulated
value of y variable at k + 1 - i

12-6 PROCESS CONTROL SYSTEM DESIGN - (c) Daniel R. Lewin Model Predictive Control

3 Daniel R. Lewin, Technion


LECTURE TWELVE 054414 PROCESS CONTROL SYSTEM DESIGN

Discrete Convolution Models


H
Discrete convolution model: yk +1 = ∑ hi mk +1−i (11.1)
i =1
yk +1 = h1mk + h2mk −1 + … + hH mk +1−H
(11.2)
where mk +1−H = 0 when k + 1 − H < 0

Define ∆mk = mk − mk −1 and substituting in (11.2):


yk +1 = h1mk + h2mk −1 + … + hH mk +1−H
= ( a1 − a0 ) mk + ( a2 − a1 ) mk −1 + … + ( aH − aH −1 ) mk +1−H
= a0mk + a1 ( mk − mk −1 ) + … + aH −1 ( mk +1−H − mk +1−H ) + aH mk +1−H
H
Hence: yk+1 = ∑ ai ∆mk +1−i (11.3)
i =1

Note that this assumes that ∆mk +1−H = mk +1−H − mk −H = mn +1−H

12-7 PROCESS CONTROL SYSTEM DESIGN - (c) Daniel R. Lewin Model Predictive Control

Discrete Convolution Models


Applying Eq. (11.3), a step change in m at k = 0 ⇒ ∆m0 = m0 – m-1,
with ∆mk = 0, k > 0:
H
k = 0: y1 = ∑ ai ∆m1−i
i =1 0
= a1 ∆m0 + a2 ∆m−1 + … = a1 ∆m0
H
k = 1: y2 = ∑ ai ∆m2−i
i =1 0 0
= a1 ∆m1 + a2 ∆m0 + a3 ∆m−1 + … = a2 ∆m0

In general, yk = ak ∆m0 − predicted values are step response


coefficients multiplied by ∆m0.

12-8 PROCESS CONTROL SYSTEM DESIGN - (c) Daniel R. Lewin Model Predictive Control

4 Daniel R. Lewin, Technion


LECTURE TWELVE 054414 PROCESS CONTROL SYSTEM DESIGN

ZT-Convolution Model Equivalence


We shall now see how these convolution models are equivalent
to transfer function models studied so far. As an example,
consider the process: p ( s ) = s +1 with a hold and T = 0.2.
1

Then HP ( z ) =
(1 − e ) z
−0.2 −1

=
0.1813z −1
1 − e −0.2z −1 1 − 0.8187z −1
By long division: HP ( z ) = 0.1813z −1 + 0.1484z −2 + 0.1215z −3
+0.0995z −4 + 0.0815z −5 + … (11.4)

To obtain unit step response: Yˆ ( z ) = HP ( z ) M ( z ) = HP ( z ) ⋅ 1 −1


1 −z
y(T) y(2T) y(3T)
By long division: Yˆ ( z ) = 0.1813z −1 + 0.3297z −2 + 0.4512z −3
+0.5507z −4 + 0.6321z −5 + … (11.5)
This is identical to the response: y (kT ) = 1 − e
− kT

12-9 PROCESS CONTROL SYSTEM DESIGN - (c) Daniel R. Lewin Model Predictive Control

ZT-Convolution Model Equivalence


H
Note that Eq. (11.3) is yk+1 = ∑ ai ∆mk +1−i
i =1
Taking Z-transforms of this equation gives:
H
ˆ ( z ) z k +1 = a ∆Mˆ ( z ) z k +1−i Ŷ ( z ) H
Y ∑i = ∑ ai z −i (11.6)
i =1 ∆Mˆ ( z ) i =1
Hence, when ∆mo = 1 ( ∆Mˆ ( z )), Eq. (11.6) is equivalent to Eq.
(11.5), so coefficients a1 = 0.1813, a2 = 0.3297, etc., can be
obtained by measuring the unit-step response.
H
Furthermore, we can write Eq. (11.1): yk +1 = ∑ hi mk +1−i
i =1
Ŷ ( z ) H
in the Z-domain: = HP (z ) = ∑ hi z −i (11.7)
Mˆ ( z ) i =1
Hence, Eq. (11.7) is equivalent to Eq. (11.4), whose coefficients
are h1, h2, etc. and we can check that hi = ai – ai-1.
12-10 PROCESS CONTROL SYSTEM DESIGN - (c) Daniel R. Lewin Model Predictive Control

5 Daniel R. Lewin, Technion


LECTURE TWELVE 054414 PROCESS CONTROL SYSTEM DESIGN

Matrix Form for Predictive Control


In general, at sample k, we will compute:
M future input changes - ∆mk , ∆mk +1 , …, ∆mk +M −1
input horizon

and P predicted future outputs - yk +1 , yk +2 , …, yk +P


prediction horizon

Generalizing Eq. (11.4):


H H
yk+1 = ∑ ai ∆mk +1−i = a1 ∆mk + ∑ ai ∆mk +1−i
i =1 i =2
future
past
H 2 H
yk+2 = ∑ ai ∆mk +2−i = ∑ ai ∆mk +2−i + ∑ ai ∆mk +2−i
i =1 i =1 i =3
future past

12-11 PROCESS CONTROL SYSTEM DESIGN - (c) Daniel R. Lewin Model Predictive Control

Matrix Form for Predictive Control


M H
yk +M = ∑ ai ∆mk +M −i + ∑ ai ∆mk +M −i
i =1 i M
= +1
future past
P H
y k +P = ∑
i =P −M +1
ai ∆mk +P −i + ∑ ai ∆mk
i =P +1
+P −i

future past

In summary, at sample interval n + j :


j H
yk + j = ∑
i
ai ∆mk
=1
+ j −i + ∑ ai ∆mk
i j
= +1
+ j −i j ≤M
future adjustments past adjustments (11.8)
j H
yk + j = ∑
i = j −M +1
ai ∆mk + j −i + ∑ ai ∆mk
i = j +1
+ j −i M < j ≤P
future adjustments past adjustments

12-12 PROCESS CONTROL SYSTEM DESIGN - (c) Daniel R. Lewin Model Predictive Control

6 Daniel R. Lewin, Technion


LECTURE TWELVE 054414 PROCESS CONTROL SYSTEM DESIGN

Matrix Form for Predictive Control


Thus, in matrix form, the predicted trajectory is:
⎡y k0+1 ⎤
⎡yk +1 ⎤ ⎡a1 0 0 0 ⎤ ⎢ 0 ⎥ ⎡w k ⎤
⎢yk +2 ⎥ ⎢a2 a1 0 0 ⎥ ⎡ ∆mk ⎤ ⎢y k +2 ⎥ ⎢w k +1 ⎥
⎢ ⎥ ⎢ ⎥⎢ ⎥ ⎢ 0 ⎥ ⎢ ⎥
⎢yk +3 ⎥ ⎢a3 a2 a1 0 ⎥ ⎢ ∆mk +1 ⎥ ⎢y k +3 ⎥ ⎢w k +2 ⎥
⎢ ⎥=⎢ ⎥ ⎢ ∆mk +2 ⎥ + ⎢ ⎥+⎢ ⎥
⎢yk +M ⎥ ⎢aM aM −1 aM −2 a1 ⎥ ⎢ ⎥ ⎢y ⎥ ⎢w k +M −1 ⎥
0
⎢ ⎥ ⎢ ⎥⎢ ⎥ ⎢ k +M ⎥ ⎢ ⎥
⎢ ⎥ ⎢ ⎥ ⎣ ∆mk +M −1 ⎦ ⎢ ⎥ ⎢ ⎥
⎢⎣yk +P ⎥⎦ ⎢⎣aP aP −1 aP −2 aP −M +1 ⎥⎦ ⎢y 0 ⎥ ⎢⎣w k +P −1 ⎥⎦
⎣ k +P ⎦
y A ∆ m k
y
0
wk
k k

In the above, y k + j is the output predicted without further


0

H
control action: y k + j =
0
∑ ai ∆mk
i j= +1
+ j −i and wk is disturbance effect.

12-13 PROCESS CONTROL SYSTEM DESIGN - (c) Daniel R. Lewin Model Predictive Control

Dynamic Matrix Control


That, is, in matrix form: y k = A ⋅ ∆m k + y k + w k
0
(11.9)
In DMC, the effect of disturbances on the output at k + 1 is
considered to be modeling error, and is estimated by using the
actual value of y measured at instant k :
wˆk = yk − yk (11.10)

Now, our objective is to obtain a desired trajectory, y k


*

Thus, we need to minimize the closed loop prediction error:


e *k = y k* − A ⋅ ∆m k − y k0 − wˆk

Rearranging: e *k (
= −A ⋅ ∆m k + y − y − wˆk
*
k
0
k ) (11.11)
Closed-loop Vector of Open-loop
prediction future control
error prediction
moves error

12-14 PROCESS CONTROL SYSTEM DESIGN - (c) Daniel R. Lewin Model Predictive Control

7 Daniel R. Lewin, Technion


LECTURE TWELVE 054414 PROCESS CONTROL SYSTEM DESIGN

Dynamic Matrix Control


Clearly, we would like to minimize the closed-loop prediction
error, e k . This can be formally stated as follows:
*

T
min φ = ⎡⎣e k0 − A ⋅ ∆m k ⎤⎦ ⎡⎣e k0 − A ⋅ ∆m k ⎤⎦ (11.12)
∆mk

where e k = y k − y k − wˆk is the open-loop prediction error.


0 * 0

Differentiating Eq. (11.12) with respect to ∆mk, and equating


to zero gives:
∂φ
= −AT ⎣⎡e k0 − A ⋅ ∆m k ⎦⎤ = 0
∂∆m k

( )
−1
Solving gives: ∆m k = A A AT e k0
T
(11.13)
A MxP matrix
of controller
gains

12-15 PROCESS CONTROL SYSTEM DESIGN - (c) Daniel R. Lewin Model Predictive Control

Dynamic Matrix Control


The generic DMC algorithm is implemented as follows:

n The process output, yk, is measured, and used to


estimate the process model error using Eq. (11.10).
o The open-loop prediction error, e k = y k − y k − wˆk , is
0 * 0

updated (accounting for changes in setpoint and


effect of previous controller moves)
( )
−1
p Solve Eq. (11.13): ∆m k = AT A AT e k0
q ∆mk (first step only) is implemented.
r Counter is updated: k = k + 1.

12-16 PROCESS CONTROL SYSTEM DESIGN - (c) Daniel R. Lewin Model Predictive Control

8 Daniel R. Lewin, Technion


LECTURE TWELVE 054414 PROCESS CONTROL SYSTEM DESIGN

MPC in Action
n The process output, yk, is measured, and used to
estimate the process model error using Eq. (11.10).

past

yk

mk

12-17 PROCESS CONTROL SYSTEM DESIGN - (c) Daniel R. Lewin Model Predictive Control

MPC in Action
o The open-loop prediction error, e k = y k − y k − wˆk , is
0 * 0

updated (accounting for changes in setpoint and


effect of previous controller moves)

past Prediction horizon, P


Target y k*
0
y
yk k

mk

k k+P

12-18 PROCESS CONTROL SYSTEM DESIGN - (c) Daniel R. Lewin Model Predictive Control

9 Daniel R. Lewin, Technion


LECTURE TWELVE 054414 PROCESS CONTROL SYSTEM DESIGN

MPC in Action
( )
−1
p Solve Eq. (11.13): ∆m k = AT A AT e k0
q ∆mk (first step only) is implemented.

past Prediction horizon, P


Target y k*
0
y
yk k

mk

k k+M k+P

Control horizon, M

12-19 PROCESS CONTROL SYSTEM DESIGN - (c) Daniel R. Lewin Model Predictive Control

MPC in Action
r Counter is updated: k = k + 1.

past Prediction horizon, P


Target y k*

yk

mk

k k+M k+P

Control horizon, M
Problem. Control law can result in ringing in ∆mk. This occurs
when A A is ill-conditioned or singular.
T

12-20 PROCESS CONTROL SYSTEM DESIGN - (c) Daniel R. Lewin Model Predictive Control

10 Daniel R. Lewin, Technion


LECTURE TWELVE 054414 PROCESS CONTROL SYSTEM DESIGN

Dynamic Matrix Control


Solution. Modify the objective function, to penalize for
excessive control moves:
T
φMS = ⎡⎣e k0 − A ⋅ ∆m k ⎤⎦ ⎡⎣e k0 − A ⋅ ∆m k ⎤⎦ + ∆mTk W 2 ∆m k (11.14)

The inclusion of the positive definite matrix, W 2 , in the


objective function is refereed to as “move suppression.”

( )
−1
Minimizing with respect to ∆mk gives: ∆m k = A A +W 2 AT e k0
T

Example. Design MPC/DMC for the process: p ( s ) = e −s


1
(10 s +1)( 5s +1)

Use T = 2 min, and H = 40, and test: (a) M = 1, P = 3, and (b) M =


2, P = 4. Compare results with PID tuned by (c) ZN rule, and (d)
IMC-PID method. Test the performance of the designs for unit
step change in setpoint for nominal process model and for the
case with 50% gain and delay uncertainty.

12-21 PROCESS CONTROL SYSTEM DESIGN - (c) Daniel R. Lewin Model Predictive Control

Comparing MPC with PID (SISO)


Nominal servo responses.

P=3,M=1
P=4,M=2

P=3,M=1
P=4,M=2

ZN tuning is: Kc = 4.2,τI = 6, τD = 4. IMC-PID tuning (with


λ = 2) is: Kc = 3.75,τI = 15, τD = 3.33. Note that IMC-PID
gives similar performance to MPC, superior to ZN (Is this
surprising?)

12-22 PROCESS CONTROL SYSTEM DESIGN - (c) Daniel R. Lewin Model Predictive Control

11 Daniel R. Lewin, Technion


LECTURE TWELVE 054414 PROCESS CONTROL SYSTEM DESIGN

Comparing MPC with PID (SISO)


Servo responses with 50% uncertainty in gain and delay.

P=3,M=1
P=4,M=2

P=3,M=1
P=4,M=2

Increasing M and P leads to more aggressive control


action and less robustness.

12-23 PROCESS CONTROL SYSTEM DESIGN - (c) Daniel R. Lewin Model Predictive Control

MIMO MPC
The results obtained so far are easily extended to cover MIMO
systems. Consider for example the 2x2 system described by
the following discrete convolution model:
H H
y1,k+1 = ∑ a11,i ∆m1,k +1−i + ∑ a12,i ∆m2,k +1−i
i =1 i =1
H H
y2,k+1 = ∑ a21,i ∆m1,k +1−i + ∑ a22,i ∆m2,k +1−i
i =1 i =1
This model can be transformed into the standard dynamic form:
* 0
E k = −A ⋅ ∆M k + E k
* 0
where E k and E k are vectors of length 2P and ∆Mk is a vector
of length 2M: * T
E k = ⎡⎣e1,*k +1 , e1,*k +2 , …, e1,*k +P , e2,*k +1 , e2,*k +2 , …, e2,*k +P ⎤⎦
T
∆M k = ⎡⎣ ∆m1,k , ∆m1,k +1 , …, ∆m1,k +M −1 , ∆m2,k , ∆m2,k +1 , …, ∆m2,k +M −1 ⎤⎦

12-24 PROCESS CONTROL SYSTEM DESIGN - (c) Daniel R. Lewin Model Predictive Control

12 Daniel R. Lewin, Technion


LECTURE TWELVE 054414 PROCESS CONTROL SYSTEM DESIGN

MIMO MPC
In this 2x2 case, the matrix A has the following structure:

⎡A A 12 ⎤
A
A = ⎢ 11 ⎥ where each sub-matrix ij has the structure:
A
⎣ 21 A 22 ⎦
⎡aij ,1 0 0 0 ⎤
⎢a aij ,1 0 0 ⎥
ij ,2
⎢ ⎥
Aij = ⎢aij ,3 aij ,2 aij ,1 0 ⎥
⎢ ⎥
⎢ ⎥
⎣⎢aij ,P aij ,P −1 aij ,P −2 aij ,P −M +1 ⎦⎥

Even more general objective function is:


*T * T
φ = E k W 1 E k + ∆M k W 2 ∆M k

( )
−1 0
Minimizing gives: ∆M k = A W 1 A +W 2 AT W 1 E k
T

12-25 PROCESS CONTROL SYSTEM DESIGN - (c) Daniel R. Lewin Model Predictive Control

Comparing MPC with PID (MIMO)


Example. Consider the Wood and Berry distillation column:
⎡ 12.8 −18.9 −3s ⎤
e −s e
⎡xD ⎤ ⎢ 16.7s + 1 21s + 1 ⎥ ⎡L ⎤
= ⎢ ⎥⎢ ⎥
⎣⎢xB ⎦⎥ ⎢ 6.6 e −7 s −19.4 −3s ⎣V ⎦
e ⎥
⎣⎢ 10.9s + 1 14.4s + 1 ⎥⎦

We will compare two MIMO control systems for the process:


(a) an MPC design for H=30, P=6, M = 3, T=3, and W 2 = 0;
(b) a diagonal IMC-PID control system, tuned with λ = [6, 2.5].

Results. The following slides indicate that: (a) Nominally, MPC


provides superior performance to decentralized PID, since it
decouples the process interactions; (b) It is more sensitive to
model uncertainties (50% in gain and delay) than PID.

12-26 PROCESS CONTROL SYSTEM DESIGN - (c) Daniel R. Lewin Model Predictive Control

13 Daniel R. Lewin, Technion


LECTURE TWELVE 054414 PROCESS CONTROL SYSTEM DESIGN

Comparing MPC with PID (MIMO)


Example: Wood and Berry Column (Nominal MPC)
P=6, M=3

12-27 PROCESS CONTROL SYSTEM DESIGN - (c) Daniel R. Lewin Model Predictive Control

Comparing MPC with PID (MIMO)


Example: Wood and Berry Column (Nominal PID)

12-28 PROCESS CONTROL SYSTEM DESIGN - (c) Daniel R. Lewin Model Predictive Control

14 Daniel R. Lewin, Technion


LECTURE TWELVE 054414 PROCESS CONTROL SYSTEM DESIGN

Comparing MPC with PID (MIMO)


Example: Wood and Berry Column (MPC - Model Error)
P=6, M=3

12-29 PROCESS CONTROL SYSTEM DESIGN - (c) Daniel R. Lewin Model Predictive Control

Comparing MPC with PID (MIMO)


Example: Wood and Berry Column (PID - Model Error)

12-30 PROCESS CONTROL SYSTEM DESIGN - (c) Daniel R. Lewin Model Predictive Control

15 Daniel R. Lewin, Technion


LECTURE TWELVE 054414 PROCESS CONTROL SYSTEM DESIGN

Tuning the MPC Controller


The following recommendations are often considered when
selecting the tunable parameters in MPC:
n H - model horizon.
ƒ HT should be selected so that it is greater than the open-loop settling
time (defined as 99 or 95% of response). Commonly 20 ≤ H ≤ 70.
o T – sampling period.
ƒ Should be selected to capture important dynamic information.
p P and M - prediction and control horizons.
ƒ Generally, P > M. Increasing M increases controller aggressiveness and
decreases robustness. A suitable first guess P ≈ t60/T (number of
samples to reach 60% of open-loop response).
q W1 and W2 – weighting matrices.
ƒ W2, generally defined as a diagonal matrix, permits selectively
penalizing particular manipulated variables for MIMO systems (“move
suppression”). W1 allows output scaling to be handled, and is referred
to as “equal concern error” in DMC.

12-31 PROCESS CONTROL SYSTEM DESIGN - (c) Daniel R. Lewin Model Predictive Control

Process Constraints
In practice, the manipulated variables are constrained to
physical, or allowable limits. Furthermore, the output variables
may also be subject to constraints. Thus, in practice, a
constrained optimization problem is solved:
*T * T
min φ = E k W 1 E k + ∆M k W 2 ∆M k (11.15)
∆M k

subject to: ∆m ≤ ∆m k ≤ ∆m (move limits)


L H

mL ≤ mk ≤ mH (manipulated variable bounds)


y ≤ yk ≤ y
L H
(output variable bounds)

This type of problem can be solved using quadratic


programming. Nonlinear versions are solved using successive
quadratic programming (SQP).

12-32 PROCESS CONTROL SYSTEM DESIGN - (c) Daniel R. Lewin Model Predictive Control

16 Daniel R. Lewin, Technion


LECTURE TWELVE 054414 PROCESS CONTROL SYSTEM DESIGN

Why Model Predictive Control ?


Real processes are multivariable and often involve
significant interaction.
interaction Here’s a good analogy to convince
your future boss to implement MPC.
Driving a car down Haifa’s, Freud Street
When driving a car, we make coordinated use of:
Steering wheel
Brake pedal
Acceleration pedal
Gear stick
Consider how well you could maneuver a car at speed
down Freud Street using only the steering wheel, with
all other controls fixed? Equivalent to SISO control…

12-33 PROCESS CONTROL SYSTEM DESIGN - (c) Daniel R. Lewin Model Predictive Control

Summary
On completing this section, you should:
n Be able to explain to a layman how model predictive
control (MPC) works.
ƒ Recall that MPC uses a model in two ways: (a) to predict
the effects of past moves; (b) to optimize future moves.
o Understand why MPC can improve on the performance
that can be expected from decentralized controllers.
ƒ Recalling that MPC: (a) implicitly handles constraints and
thus maximizes DOF; (b) effectively decouples process
interactions.
p Be able to correctly tune MPC to obtain a good
response.
q Be able to implement MPC using MATLAB.

12-34 PROCESS CONTROL SYSTEM DESIGN - (c) Daniel R. Lewin Model Predictive Control

17 Daniel R. Lewin, Technion

Vous aimerez peut-être aussi