Controllability:
1. General result:
A linear continuous-time time-invariant system:
is controllable iff: for any initial value
of the state at the initial time
and for a given final time
, there exists a control signal trajectory
such that
. Let n be the system order (
). A necessary and sufficient condition for the system to be controllable (condition
) is: 𝒞 is called the controllability matrix .
2. Proof (
):
The general solution of the state equation is:
Applied to our problem (
,
,
), it comes: or:
3. Proof of the necessary condition (
):
Considering, without loss of generality a single input system (
), equation (1) can be rewritten as : or:
If
(
) then there exists a vector
such that
. Then pre-multiplying (3) by
, it comes: Thus the system (3) is undetermined and it is not possible de compute
and thus it is not possible to compute
to bring back the state to
at
( then the system is uncontrollable (
)) except if
is in the controllolability sub-space
characterized by: where
is the null-space of the matrix 𝒞. 4. Proof of the sufficient condition (
):
For the sufficient condition, a new condition
is introduced: Then
. Indeed, the particular control signal: satisfies the problem (equation (1)). And thus the system is controllable (
). (Indeed: (3) in (1) gives:
.) To prove
, it can be proven that
: if
is not invertible (
), then considering a vector
, it comes: Remark : in the single input case:
and
.
is a scalar quadratic function of τ and thus is always positive or null (
). For its intregral to be null, it requires that:
. Thus:or using the Cayley-Hamilton expresion of
(equation (2)): Thus: 
5. Discrete-time case:
A linear discrete-time time-invariant system:
is controllable iff: for any initial value
of the state at the initial time
and for a given final time N, there exists a control signal sequence
such that
. Let n be the system order (
). A necessary and sufficient condition for the system to be controllable (condition
) is:
is called the controllability matrix .Proof: the proof in the discrete-time case is simpler than in the continuous-time case. Note that in the discrete-time case, there is a constraint on the final time:
. Indeed, the direct integration of the state equation with
reads: ⋮
Thus, one can solve this last equation in
if and only if
. Then the solution reads: 6. A particular solution in the continuous-time case:
Considering the continuous-time system
with an initial state
, the objective is to find a control signal trajectory
such that
for a given final time
. The discrete-time case can provide a solution to this problem considering that
is the output of a zero order hold (ZOH) sampled at
(see the following figure):
The general solution of the continuous-time state equation:
with:
,
,
,
,
and the change of variable
gives the discrete-time state-space representation of the system between
and
: Then the solution (5) can be computed and applied to the input of the zero order hold such that
. Solution (5) provides
, of course:
. That is illustrated in the following MATLAB session for a 4-th order continuous-time system with an arbitrary initial condition and a given final time
. 7. Illustration:
Given:
- a continous-time system:
, - an arbitrary initial condition
, - a given final time
,
an open-loop control profile
is computed such that
: The proposed example is the serie-connection of:
- the plant model which corresponds to an unstable aerospace vehicule:
, - the actuator model:
.
and is described by a SIMILINK file:
Numerical application:
,
,
,
,
. J=1;a2=1;f=0.01;xi=0.7;w=10; % Numerical application.
open_system('model_4th_order');
snapshotModel('model_4th_order');
sys=linmod('model_4th_order');
sys.StateName
'model_4th_order/theta'
'model_4th_order/u_r_dot//w'
'model_4th_order/u_r'
'model_4th_order/theta_dot'
From now, we know that the state vector provided by linmod is:
. Gc=ss(A,B,eye(n),0); % continuous-time system
Gd=c2d(Gc,tf/n); % discrete-time system
Cd=Bd; % controllability matrix
Cd=[Ad*Cd(:,1) Cd]; % here : Cd=[Ad^(n-1)Bd,..., AdBd, Bd].
rank(Cd) % check the system is controllable
We consider an initial condition on the attitude θ:
x0=[1;0;0;0]; % initial condition
u_n=-inv(Cd)*Ad^n*x0 % [u_0, u_1, u_2, u_3]^T
-3.0464
1.8214
-0.0114
0.0000
U1=[U1;u_n(ii)*ones(N,1)];
the stair-shape signal
due to the ZOH sampled at
can be seen on the various plot (grey lines). 8. Another solution in continuous-time:
This solution is directly computed in continuous-time and is given by equation (4). Indeed
is the solution of the Lyapunov equation: Proof:
Thus
can be easily computed using the MATLAB function lyap. Then the control signal bringing the state to
at
(
) is: That is illustrated in the following MATLAB sequence:
Qc_tf=lyap(A,-B*B'+expm(-A*tf)*B*B'*expm(-A'*tf))
1019 ×
0.0001 0.0011 0.0075 -0.0012
0.0011 0.4137 -0.4917 0.0270
0.0075 -0.4917 1.5170 -0.1627
-0.0012 0.0270 -0.1627 0.0201
Clearly
is ill-conditionned !! Such a solution is thus very sensitive to the condition number of
and works ony for very small values of
(this is due to fact that the system is unstable): Qc_tf=lyap(A,-B*B'+expm(-A*tf)*B*B'*expm(-A'*tf))
103 ×
0.0019 0.1112 0.0024 -0.0123
0.1112 8.1208 -1.8612 -0.5845
0.0024 -1.8612 2.3109 -0.1542
-0.0123 -0.5845 -0.1542 0.0863
t=[0:tf/1000:tf]; % requires a very small step!!
U2=[U2;-B'*expm(-A'*t(ii))*Qc_tf_m1*x0];
plot(t,Y(:,1));ylabel('theta');
plot(t,Y(:,2));ylabel('u_r_dot/w');
plot(t,Y(:,3));ylabel('u_r');
plot(t,Y(:,4));ylabel('theta_dot');
One can see that the magnitude of the control signal (last plot) is very big (
). 9. A closed-loop solution:
In the two previous illustrations, the control signal
is applied in open-loop. Although it meets the constraint
, the system is still unstable for
. From a practical point of view a closed-loop solution is preferred. Then, one can use a variation of the controllability definition (for linear system): a linear system
is controllable iff one can compute a state feedback assigning the n closed-loop eigenvalues to any prescribed values
. Of course one will choose these n eigenvalues stable and fast enough to bring back the state to
efficiently. But this is an exponential converge to
, contrary to the initial definition. This new definition allows to introduce the Controllability Canonical Form (CCF) (
,
) of the linear system: One can recognize:
- the coefficient
of the characteristic polynomial of the open-loop system (
) on the last row of the matrix
(with a minus sign and by increasing order of power of s), - the matrix
with 0 every where except 1 in the last row.
The objective is thus to find a state feedback control law:
such that the closed-loop dynamics (
) fits the prescribed dynamics: Then the solution is obvious :
Indeed:
. It is shown that an arbitrary linear system
can be tansformed into the CCN by a regular change of state vector
iff: Proof: It is well known that:
and
. We are going to identify
(column per column, starting from the last column ) form the relations
and
and then check that
is invertible: The identification of
provides the last column of matrix
:
. The identification of the last column of
provides
:
. The identification of the column
of
provides
:
. ⋮
The identification of the column 2 of
provides
:
. Since all the colmuns
of matrix
are now defined, we have to check that the identification of the column 1 of
works. That is confirmed thanks to the Cayley-Hamilton theorem (see: CayleyHamilton). Indeed, we get: Finally, we have to check that
is invertible. Indeed, since all its columns
are linear combinations of
,
,
,
, then: Once
and
are known, one can compute the state feedback gain
to be applied on the initial physical state
. Indeed: help acker
acker Pole placement gain selection using Ackermann's formula.
K = acker(A,B,P) calculates the feedback gain matrix K such that
the single input system
.
x = Ax + Bu
with a feedback law of u = -Kx has closed loop poles at the
values specified in vector P, i.e., P = eig(A-B*K).
Note: This algorithm uses Ackermann's formula. This method
is NOT numerically reliable and starts to break down rapidly
for problems of order greater than 10, or for weakly controllable
systems. A warning message is printed if the nonzero closed-loop
poles are greater than 10% from the desired locations specified
in P.
See also place.
Considering the previous example
, one can choose to assign the 4 closed loop eigenvalues to:
: i.e. the low-frequency closed-loop dynamic corresponds to a stable 2-nd order with a damping ratio of
and a frequency of
,- the 2 roots of
: i.e. the actuator dynamics is unchanged.
P=[-1+sqrt(-1);-1-sqrt(-1);roots([1 14 100])];
damp(A-B*K)
Pole Damping Frequency Time Constant
(rad/TimeUnit) (TimeUnit)
-7.00e+00 + 7.14e+00i 7.00e-01 1.00e+01 1.43e-01
-7.00e+00 - 7.14e+00i 7.00e-01 1.00e+01 1.43e-01
-1.00e+00 + 1.00e+00i 7.07e-01 1.41e+00 1.00e+00
-1.00e+00 - 1.00e+00i 7.07e-01 1.41e+00 1.00e+00
% Closed-loop system with the 4 states and the control signal on the
G_CL=ss(A-B*K,B,[eye(4);-K],0);