You are on page 1of 4



Which of the following statements is correct?

Lets go through the statements one by one:
When designing observer-based controllers, the observer must be slower than the controller. The statefeedback controller will only become effective once the estimate of the state is reasonably good, i.e., it
makes sense to make the observer faster than the controller. As such, the statement is false.
The separation principle tells us that the control design and the observer design cannot be done independently of each other. Actually, it tells us the complete opposite that control and observer design can
be decoupled. The statement is false.
The eigenvalues to a general system x = Ax + Bu can always be placed anywhere using state-feedback.
This one is also false. Arbitrary eigenvalue-placement is only possible when the system is completely
If a linear system is completely controllable the state can be made to follow any trajectory. If it is
completely controllable then the system can move between any two states. But, it can not move (in
general) along any trajectory. So this one is also false.
If linear system is completely controllable the state can be made to go between any two initial and final
values. As stated above, this statement is true, and hence this is the correct answer.

Suppose you have a robot whose dynamics are

x =





and you go to the sensor store to buy a sensor. Each sensor comes with a corresponding output matrix C,
such that y = Cx. Which of the following sensors/C-matrices should you not buy? (Hint: Observability
seems to be a useful property in a sensor...)

What we need to do is ensure that the sensor is good enough, i.e., that it allows us to reconstruct the
state. Mathematically speaking, this means that we need to check if the resulting system is completely
observable. The observability matrix is

and this second order system is completely observable if and only if rank() = 2.
Lets go through the choices one by one:

1 0
0 1

which has rank 2 (both columns are linearly independent), i.e., this sensor is good.

1 1
C= 1 1
0 1
which has rank 2, i.e., this sensor is also good.

0 1
0 0

which has rank 1 since the first column can be obtained by multiplying the second column by zero. As a
consequence, this sensor is no good, and this C-matrix is the correct answer.

1 0
C = 1 0
0 1
which has rank 2, i.e., this sensor is good.

1 1

1 1
0 1

which has rank 2, i.e., this sensor is good as well.

Consider the scalar system
x = 2x + u.
We decide to try three different state feedback controllers u = ki x, i = 1, 2, 3, where
k1 = 1, k2 = 3, k3 = 5.
The different closed-loop system behaviors are shown in the figure below. Your job is to identify which
feedback controller was used to produce which plot. (The upper trajectory is referred to as solid, the
middle one as dotted, and the lower one as dashed.)














k1 = 1 gives the closed-loop system x = 2x x = x. Since this is a scalar system, the eigenvalue of the
A-matrix (which is now just a scalar) is the same as the value itself, i.e., the eigenvalue is 1. But, this
means that the system is unstable and, as such, the solid line corresponds to k1 .
k2 = 3 x = 2x3x = x, which is stable with eigenvalue 1. Similarly, k3 = 5 x = 2x5x = 3x,
which is stable with eigenvalue 3. As such, k3 gives a faster response than k2 (since the eigenvalue is
further away from the imaginary axis) and, as such, the dotted line corresponds to k2 and the dashed
one to k3 .

An attempt at a software implementation of an observer-based feedback controller is given below (in
some sort of pseudo-code):
% Given: dt (sample time), A,B,C (system matrics), K,L (gains)
% At each iteration, compute the following:
Which of the following versions of update estimator value(x tilde,u,y) is correct?

We know that the observer dynamics are given by
= A
x + Bu + L(y C x

so the update program must reflect this fact. Moreover, we need to implement this in discrete time so
the standard Euler approximation of this equation becomes
k+1 = x
k + t(A
xk + Buk + L(yk C x
k )),
where t is the sample time. As such, the correct answer is:
return x_tilde+dt*(A*x_tilde+B*u+L*(y-C*x_tilde));

We have seen that when using pole-placement, the larger (in magnitude) the closed-loop eigenvalues are,
the faster the response. So why not place all eigenvalues in 10, 000, 000, 000 and be done with it? Well,
there are problems with making the eigenvalues too large in magnitude.
Assume that we are designing a state-feedback, go-to-goal behavior for a mobile robot by stabilizing
the system around the goal point using pole-placement. Which of the following is a valid concern when
making the eigenvalues too large?
The actuators may saturate making the stability analysis invalid.
Fast and aggressive maneuvers lead to significant odometric drift.
Modeling errors get amplified by large control gains, which may deteriorate the performance.
Fast and aggressive maneuvers increase the risk of not being able to detect obstacles in the environment
quickly enough.
They all are valid concerns.

Making the eigenvalues too large means that the system will move very quickly and use very large
actuation signals (since the control gains will be really large). This would certainly saturate the actuators.
Also, when moving and turning quickly, the robot will slip and skid and, as such, the odometric drift will
be quite bad. As a consequence of moving too quickly, the robot may also not be able to respond in time
to obstacles. And, finally, large gains means more amplified responses. And, since modeling errors can
be thought of as disturbances, the response to these disturbances will also be amplified.
Answer: they are all valid concerns.