Interactive applications to explore parametric space of multivariable controllers

These applications are bundled with the following book (in French):

Commande numérique de systèmes dynamiques, Roland Longchamp, Presses polytechniques et universitaires romandes, Lausanne, Switzerland, 3rd edition, 2010.

See also

Yves Piguet and Roland Longchamp, "Interactive applications to explore parametric space of multivariable controllers", IFAC'11, Milano (I), 2011.

Short description

ex_13_21 - phase plane

The application illustrates the kinds of state trajectories a system can exhibit in the phase plane.

The initial system is

A = [ 0.83 & -0.08 ; -0.16 & 0.75 ]

Its eigenvalues are lambda_1=0.91 and lambda_2=0.67. In the main window of the application, matrix A can be modified with sliders (a menu entry lets also the user enter it with Matlab's syntax), corresponding eigenvectors, and two graphics: one for eigenvalues in the complex plane, and one for the phase plane. 

In the phase plane, eigenvectors are shown as infinite straight lines, because their magnitude and sign is arbitrary and irrelevant. Small arrows show the vector field Ax-x. The discrete state trajectory, starting from the initial state, is tangent to this vector field. In addition to the state trajectory represented by circles, a continuous support line is displayed. Matching between eigenvalues and eigenvectors is shown by colors.

Figures containing elements which can be manipulated interactively with the mouse have a red frame. In the phase plane, the initial state can be moved anywhere. Since the green (second) eigenvalue is better damped than the red one (it is smaller), the trajectory converges faster along the green eigenvector and is tangent to the red eigenvector for larger times. This remains true for any initial state.

Eigenvalues can also be manipulated on the real axis; a new matrix A is computed which keeps the same eigenvectors. When eigenvalues are close together, the trajectory goes more or less directly to zero. Perfectly identical eigenvalues are prevented, because they result in a discontinuity in the eigenvectors. For this reason, it is not possible to switch to the complex case without changing directly matrix in the Settings menu.

ex_14_9 - eigenvalue assignment with observer

The application illustrates eigenvalue placement for a state feedback controller.

The discrete-time system represents a servomotor controlled in position. Closed-loop eigenvalues in the top-left figure can be moved anywhere in the complex plane (complex eigenvalues must form conjugate pairs). As a guide for the user, the region satisfying absolute and relative damping is displayed in red. The time responses of the input and state are displayed for a particular initial condition, which can also be changed.

ex_14_14 - LQR with receding horizon

The applications illustrates the LQR design, the role of the weights and the effect of a finite, receding horizon. As a simplification, weighting matrices are diagonal (correlation of state and input vectors would make the user interface needlessly complicated).

x(k+1) = [ 0.99 0 ; 0 0.98 ] x(k) + [ 0.995 0.995 ; -0.248 0.743 ] u(k)

Changing the weights, the following observations can be made:

- Increasing state weights q_i makes the corresponding state x_i(k) converge faster.

- Increasing control weights r_i makes the corresponding input u_i(k) smaller.

- In both cases, weights have also an effect on all other states and inputs.

- An R small relatively to Q makes the feedback gain L larger.

- The closed-loop system is stable for any choice of the weights.

The infinite-horizon LQR with the same weighting matrices is also displayed to show the difference. It can be observed that a smaller control horizon has a less pronounced low-pass effect; consequently, the feedback gain is larger and the closed-loop response is faster.

Applications and text: Copyright Roland Longchamp (Laboratoire d'automatique, EPFL, CH 1015 Lausanne) and Yves Piguet (Calerga Sarl, CH 1814 La Tour-de-Peilz), 2010-2011.
