Quiz 4 Solutions
SOLUTIONS: QUIZ 4 CONTROL OF MOBILE ROBOTS
1 Which of the following statements is correct?
SOLUTION Let’s 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 controllable. 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.
2 Suppose you have a robot whose dynamics are 0 x˙ = 0
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...)
SOLUTION 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 C Ω= CA and this second order system is completely observable if and only if rank(Ω) = 2. Let’s go through the choices one by one: C=
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. C=
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. C=
1 −1 0 1
which has rank 2, i.e., this sensor is good as well.
3 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”.)
SOLUTION 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˙ = 2x−3x = −x, which is stable with eigenvalue −1. Similarly, k3 = 5 ⇒ x˙ = 2x−5x = −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 .
4 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: y=read_in_output_vaule; u=-K*x_tilde; x_tilde=update_estimator_value(x_tilde,u,y); send_control_value(u); Which of the following versions of update estimator value(x tilde,u,y) is correct?
SOLUTION We know that the observer dynamics are given by x ˆ˙ = Aˆ x + Bu + L(y − C x ˆ), 3
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 x ˆ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));
5 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.
SOLUTION 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.