Consider the simple linear system: $$ \dot{x} = Ax + Bu $$ We want to identify a $u$ that ensures x converges to a desired value (typically $0$). Usually this is done by choosing some $u = u(x) = Kx$ so that we end up with $\dot{x} = (A-BK)x$, allowing us choose $K$ appropriately. But, we can instead couple $u$ to the dynamics like this: $$ \begin{bmatrix} \dot{x} \\ \dot{u} \end{bmatrix} = \begin{bmatrix} A & B \\ C & D \end{bmatrix} \begin{bmatrix} x \\ u \end{bmatrix} $$ Now we can (theoretically) choose $C$ and $D$ to control the eigenvalues. We'd also need to choose a $u(t=0)$, possibly just setting this to $0$. Note that in order for $x=0$ to be a stable fixed point we need $\dot{x} = Bu = 0$, so we'd likely need $u$ to converge to zero as well.
Intuitively, $u$ acts as an integrator for $x$ with gain $C$, and sometimes LTI systems are given these integrating states to help push $x$ to zero when there are disturbances (not included here). From this point of view, the main difference is that the integrating state $u$ can be made to decay as well by setting $D$.
I setup a little experiment with a simple motor model and played around with the values until I got a system where the angle of the motor converged to $0$ (code is below). It seemed to work fine, although it was a bit oscillatory. Here's a plot of that.
I could see this type of model being useful for describing inertia in the input signal $u$.
My questions are as follows:
- Has this already been studied? If so, what is it called?
- When is the system controllable?
- How would you go about designing $C$ and $D$?
I haven't been able to find similar questions or articles on this topic, but please let me know if there's something that I missed!
R= 2.0; % Ohms
L= 0.5; % Henrys
Km = .015; % torque constant
Kb = .015; % emf constant
Kf = 0.2; % Nms
J= 0.02; % kg.m^2
A = [
-R/L -Kb/L 0 % Current
0 0 1 % Angle
Km/J -Kf/J 0 % Angular rate
];
B = [
1/L
0
0
];
C = [0 140 -30];
D = [-10];
A_ = [
A, B ;
C, D
];
f = @(t,z) A_*z;
eigvals = eig(A_)
[t,y] = ode45(f,[0,10], [0;1;0;0]);
clf
plot(t,y)
legend('Current','Angle','Angle rate','Input', 'interpreter', 'latex')
```
It looks a lot like the equation for a double dampener, where the force acting ($F\propto \ddot{x})$ is proportional to the velocity $(\ddot{x}\propto\dot{x}$) but for two dampeners connected with a mass at one end and another end variable, for example.