Hello! Welcome back to our course on multivariable control.
In the last lesson, we focused on the crucial design choice of where to place the observer poles. We established the key principle: make the observer dynamics significantly faster than the closed-loop controller dynamics to ensure the state estimate converges quickly.
Now that we know how to choose our target pole locations, we need to answer the next logical question: how do we calculate the observer gain matrix, , that will actually place the eigenvalues of at those desired locations? That is our goal for today. We will see that the methods for this are remarkably similar to the pole placement techniques you've already seen for state feedback controllers, all thanks to a powerful concept called duality.
The Duality Between Control and Estimation
At first glance, the controller problem and the observer problem look similar but distinct:
- Controller Problem: For a system , find a gain matrix such that the closed-loop system has desired poles. This is possible if the pair is controllable.
- Observer Problem: For a system with output , find a gain matrix such that the error dynamics has desired poles. This is possible if the pair is observable.
The principle of duality reveals that these are, in fact, the same mathematical problem in a different guise. The key insight comes from a property of matrices: a matrix and its transpose have the same eigenvalues.
Therefore, the poles of our observer error dynamics, which are the eigenvalues of , are identical to the eigenvalues of .
Look closely at the expression . It has the exact same structure as the state feedback problem's , if we make the following substitutions:
This means we can solve the observer gain problem by pretending it's a controller gain problem for a "dual" system.
The following video provides an excellent explanation of this duality and its implications for observer design.
State space observer 3 – observer design by pole placement
This video from John Rossiter's channel clearly explains the concept of duality and how it connects observer design directly to the state feedback methods you are familiar with.
Please watch the video from the beginning until 6:43. Pay close attention to: The derivation of the observer error dynamics (a quick recap). The side-by-side comparison of the state feedback problem (A-BK) and the observer problem (A-LC). How the transpose operation transforms the observer problem into a familiar state feedback structure. The condition for observer pole placement: the system must be observable.
As the video explains, the condition for being able to place the controller poles arbitrarily is that the system must be controllable. By duality, the condition for placing the observer poles arbitrarily is that the dual system must be controllable. The controllability matrix for this dual system is:
If you take the transpose of this matrix, you get the observability matrix of the original system. Since a matrix and its transpose have the same rank, this confirms that arbitrary observer pole placement is possible if and only if the system is observable.
Calculating the Observer Gain
Thanks to duality, we can reuse any pole placement algorithm we used for finding the controller gain . The general procedure is:
- Define the observable system with matrices and .
- Define the desired observer poles .
- Formulate the dual state feedback problem with matrices and .
- Solve for the "dual" feedback gain, let's call it , that places the poles of at .
- The observer gain is the transpose of this result: .
Let's see how this applies to specific methods.
1. Ackermann's Formula
You may recall Ackermann's formula for finding the state feedback gain . We can apply the same formula to our dual problem to find . This means we use in place of , in place of , and the observability matrix in place of the controllability matrix .
While we won't go through the manual derivation, it's useful to know that direct formulas for exist. The most common form of Ackermann's formula for the observer gain is:
where is the desired characteristic polynomial evaluated at the matrix , and is the observability matrix.
2. Using Software (The Practical Method)
In practice, you will almost always use software for these calculations. Functions like acker or place in MATLAB are perfect for this. The duality principle gives us a simple and elegant way to use them.
To find the observer gain for desired poles p_obs, you use the controller design function on the dual system and transpose the result.
Introduction: State-Space Methods for Controller Design
This page from the University of Michigan's Control Tutorials for MATLAB and Simulink (CTMS) provides a very clear, practical example of this method.
Please read the section titled 'Observer Design'. Focus on the MATLAB code snippet used to calculate the observer gain L. Notice how it uses the place command with the transposed matrices A' and C'.
As you saw in the reading, the MATLAB command is beautifully simple:
L = place(A', C', p_obs)'
Let's break this down:
place(A', C', p_obs): We are asking MATLAB to find a state feedback gain for a system with state matrix and input matrix , to place the poles atp_obs. This calculates .(...)': We then take the transpose of the result to get our desired observer gain, .
The video from earlier also demonstrates this exact procedure in MATLAB.
State space observer 3 – observer design by pole placement
Let's return to the same video to see a demonstration of this technique in MATLAB.
Please watch from 6:43 to the end. This section provides a summary of the calculation methods, including Ackermann's formula adapted for observers, and then demonstrates the pole placement procedure in MATLAB using both acker and place.
A Practical Example
Let's walk through a complete example. Suppose we have a system described by:
The controller design has placed the closed-loop poles at . Following our rule of thumb from the last lesson, we want our observer to be about 4-5 times faster. Let's choose desired observer poles at and .
Step 1: Check Observability
The observability matrix is:
The rank of is 2, which is the order of the system, so the system is fully observable and we can place the poles anywhere we want.
Step 2: Calculate L using the duality principle
Our desired observer poles are p_obs = [-5, -6].
In MATLAB, we would execute:
A = [0 1; -2 -3];
C = [1 0];
p_obs = [-5, -6];
L = place(A', C', p_obs)'
This calculation yields the observer gain:
Step 3: Verify the result
Let's check the eigenvalues of the resulting error dynamics matrix, .
The characteristic equation is .
Wait, something is wrong. Let's recompute.
Characteristic equation is .
The roots of are -5 and -6.
Let's check the calculation of .
.
.
This doesn't give poles at -5 and -6. My manual calculation of L or the characteristic polynomial must be wrong. Let me trust the place command.
Let's try Ackermann's formula.
The desired characteristic polynomial is . So .
The observer gain can be found using the direct approach by solving .
Comparing coefficients with :
So the correct gain is .
Let's re-verify with this new .
The eigenvalues are indeed the roots of , which are and . The manual calculation is correct. Apologies for the error—this demonstrates why using verified software tools is always preferable for non-trivial systems!
Test your understanding!
Consider the system shown in the image below.

Write down the one-line MATLAB command to calculate the observer gain matrix Ke (which is our ).
Show answer
Based on the duality principle, the command would be:
% Given matrices from the problem
A = [0 1; 20.6 0];
C = [1 0];
% Desired observer poles
p_obs = [-8, -8];
% Command to calculate the observer gain Ke
Ke = place(A', C', p_obs)'
This command calculates the observer gain by solving the dual state-feedback problem for the system and then transposing the result.
Conclusion
In this lesson, we have bridged the gap between choosing desired observer dynamics and implementing them. You now have the practical tools to calculate the necessary observer gain matrix .
Key Takeaways:
- The design of an observer gain is mathematically dual to the design of a state feedback gain .
- This duality allows us to reuse all familiar pole placement techniques (like Ackermann's formula or the
placecommand) by applying them to the dual system defined by and . - The practical method for calculating in software is
L = place(A', C', p_obs)', wherep_obsare the desired observer poles. - Just as controllability is the required condition for controller pole placement, observability is the required condition for observer pole placement.
Preview of the Next Lesson:
So far, we have designed the controller (finding ) and the observer (finding ) in separate steps. The final piece of the puzzle is to put them together. In the next lesson, we will formulate the complete dynamic equations for an observer-based state feedback controller and discuss the Separation Principle, a beautiful and powerful result that justifies our independent design approach.