Steuerbarkeitsmatrix
Sei $\mathcal{M}\subseteq\mathbb{R}^n$ offen. Durch die Vektorfelder $f,g:\mathcal{M}\to\mathbb{R}^n$ wird ein eingangsaffines System
\[\dot{x}=f(x)+g(x)u\]beschrieben. Zu berechnen ist die Steuerbarkeitsmatrix
\[Q_S(x)= \begin{pmatrix} g(x) & \operatorname{ad}_{-f} g(x) & \cdots & \operatorname{ad}_{-f}^{n-1} g(x) \end{pmatrix}.\]Berechnung mit Maxima
Die Vektorfelder $f,g$ und der Vektor $x$ sind jeweils als Liste zu übergeben.
ControllabilityMatrix(f,g,x):=block([i,n,L],
n:length(x),
if length(f)#n then
error("Dimensionen von f und x müssen übereinstimmen."),
if length(g)#n then
error("Dimensionen von g und x müssen übereinstimmen."),
L:makelist(LieBracket(-f,g,x,i),i,0,n-1),
transpose(apply(matrix,L))
)$
Aufruf:
Q=ControllabilityMatrix(f,g,x)
Anwendung: Beispiel 4.42
Klaus Röbenack:
Nichtlineare Regelungssysteme - Theorie und Anwendung der exakten Linearisierung.
Springer Vieweg, 2017, S. 153, Algorithmus 4.7.