We have a linear network with n nodes, of the form: $$\dot{x} = Ax$$. I would like to apply some concepts of linear control theory to the network and see how it goes, by using Matlab.
- As a first step I understand that this form of systems have only one fixed point at 0.
- We need therefore to see what this point is, regarding its stability. I would think of 3 possible ways to do that:
A. by plotting the solutions and see if any of them explode to infinity, just as a basic way of getting intuition on the behaviour of all solutions in a small time-window (this way of course cannot be a safe way to assess its stability since one would have to check for infinite time)
B. by assessing the eigenvalues of the system, here we have two that are positive:0.0102, 0.0100, -0.0177, -0.0172, -0.0092, -0.0090, -0.0000, -0.0000, -0.0003, -0.0003
C. by checking the values of the determinant, trace and discriminant of A. Here the determinant Det = 3.7870 10^(-28) (positive), the trace Tr=-0.0335 (negative), and the discriminant $$\Delta =Tr^2-4Det=0.0011$$
1st question: I would expect the trace to be positive, as it indicates unstable behaviour which is clearly the case for the specific system. What might be the reason for this discrepancy? Or is it that I got it wrong?
Let us assume for a moment that the system is indeed unstable at the origin. By use of control, we would like to make this fixed point stable.Therefore, I need to find such a \$u(t)\$ that if applied to the system appropriately (an appropriate \$B\$ is required) it will shift its dynamics from unstable to stable. For this \$u(t)\$ to exist, it is required that the system be controllable, under the specific \$B\$. I have calculated potential \$B\$ matrices that render the system controllable, so one could consider now the system $$\dot{x}=Ax+Bu$$, as controllable.
We are still looking for the \$u\$ that has the form \$u=K(r-y)\$, where \$K\$ is a matrix we will compute, \$r\$ is the reference we want to achieve, \$y=Cx\$ are the measurements, and \$C\$ is the identity matrix if we have full-state feedback. So, we have: $$\dot{x} = (A-BKC)x + (BK-A)r$$. In other words, given that the system $$\dot{x}=Ax$$ was unstable as we assumed, we add a controller which which will transform \$A\$ matrix accordingly such that the eigenvalues of the "new \$A\$" matrix be stable: the "new \$A\$ matrix" is \$A-BKC\$. I used the place command to just make only the positive eigenvalues negative, while keeping the negative ones as they were. The reference \$r\$ is just zeros. The result is the following, and shows all solutions going to zero
The problem is that even if I use a \$B\$ which doesn’t grant controllability to the system (so, if I choose different nodes), the result still shows all solutions converging to 0:
I would expect that in the uncontrollable case, things would be a little less "prone to convergence"
2nd question: Why is that happening? Does it have something to do with the system being linear and probably easy to be stabilised if not controllable? Or is there any misconception in the use of the closed-loop method above?
3rd question: I realised that the computation of controllability of the system depends significantly upon the decimals of the values of \$A\$ matrix. For instance, the components of the matrix I used to produce the results above, were of an order of magnitude of 10^(3). To control this \$A\$, one node was never enough. On the other hand, when I scaled this \$A\$ matrix by something like 30, one node was always enough to control the whole network. Does it have something to do with the how the occurring rank of the controllability matrix is being read by Matlab, when after several multiplications of \$A\$ with itself it quickly becomes a very small number?
really sorry for the long post!