可控制性

可控制性（Controllability）是控制系统中的重要特性，在许多控制问题中都很重要，例如是否可以透过回授稳定一个本身不稳定的系统，或是最佳控制的相关问题。
可控制性及可观测性是同一个问题上的对偶概念。
简单来说，可控制性是指是否可以透过一些允许的程序让系统调整到其组态空间内的任何一个组态。随着其系统模型或是框架的不同，定义也会略有改变。
以下是一些在系统或是控制文献中出现过的可控制性定义：- 状态可控制性（State controllability）- 输出可控制性（Output controllability）- 行为框架中的可控制性（Controllability in the behavioural framework）

**状态可控制性**
状态可控制性是指在确定性系统的状态空间内，也就是系统所有状态变数数值组成的集合，可以完全描述系统在任一时间以下的状态。特别是不需要有关系统以往的资讯，只要知道目前的状态，以后所有的状态都是已知的。
完全状态可控制性（有时也称为状态可控制性）是指外在输入（由控制变数组成的向量）可以在有限时间内将系统由任意状态改变为另一个状态737。
可控制性表示可以使系统到达任意状态，但不表示系统可以维持在该状态，有可能系统只是在该状态停留短暂间而已。

**连续时间线性系统**
考虑连续时间下的线性系统
 
 
存在一个控制使系统在时间至时间，由状态改变为状态，若且唯若是以下的列空间中
 
其中是状态转移矩阵，而是可控制性格拉姆矩阵。
其实上，若是的解，则控制即为所需的控制输入。
注意上述定义的有以下的特质：- 是对称矩阵- 是正定矩阵，- 满足以下的线性矩阵微分方程
: - 满足以下方程
: 

**可控制性的秩条件**
可控制性格拉姆矩阵和状态转移矩阵的积分有关。另外有一个较简单，类似在非时变系统下的可控制性判断方式。 
考虑连续时间的线性系统，在时间区间内光滑变化：
 
 
其状态转移矩阵也是光滑的，引入n x m的矩阵函数，并且定义
  = .

考虑一个由, 组成的矩阵：
.
若存在以及非负整数k使得，则为可控制系统。
若在区间内也是解析变化，则在中的每个非平凡子区间内可控制，若且唯若存在及非负变数使得。
上述方式仍然很不容易确认，因为包括了状态转移矩阵的计算。另一个等效的条件如下：令，对于每一个  0，定义
 =  
此例中，每一个是直接由求得。此系统有稳定性的充份必要条件是存在及非负整数使得下式成立：


**例子**
考虑一个在内解析变化的系统及矩阵
,   
则
，其矩阵秩为3，因此在之内的每一个非平凡区间都是可控制的。

**连续线性时不变（LTI）系统**
考虑以下的连续线性时不变系统
 
 
其中
 为状态向量
 为输出向量
 为输入（或控制）向量
 为状态矩阵
 为输入矩阵
 为输出矩阵
 为前馈矩阵
可控制矩阵为

系统可控制的充份必要条件是其可控制矩阵为满秩（也就是）。

**离散线性时不变（LTI）系统**
针对离散时间，状态方程如下的线性状态空间系统（也就是时间变数）：

其中是的矩阵，是的矩阵，（也就是是个输入，整理成的向量）。测试其可控制性的方式为以下矩阵

有全秩（也就是）。因此，若此系统可控制，会有个线性独立的-{zh-hans:列; zh-hant:行;}-；若中有个-{zh-hans:列; zh-hant:行;}-是线性独立的，个状态中的每一个都可以用适当的输入变数来达到。

**推导**
假设在初始时间（表示为k=0）状态，状态方程可以得到，则，以此类推，利用反复将状态变数反向代回，可以得到

或者等效的

将状态向量想要的值放在左侧时，可解出一连串控制向量的条件是若且唯若等号右侧的第一个矩阵有全秩。

**范例**
例如，考虑和的例子（只有一个控制输入）。因此，和是的向量。若为秩2（满秩），因此和为线性独立，可以生成整个平面。若秩为1，则和平行，无法生成整个平面。
假设初始状态为0。
在时间时：
在时间时：
在时间时，所有可到达的状态是在由向量组成的直线上。
在时间时，所有可到达的状态是在由向量和组成的线性组合上。
若系统可控制，这二个向量可以生成整个平面，在时间时即可完成。
前面有假设初始状态为0，此一假设只是为了推导方便，若可以从原点到达所有的状态，就可以由任意的初始状态到所有的状态（只要进行坐标平移）
上述例子对于所有正整数的都成立，不过的例子比较容易视觉化。

**类似n = 2的范例**
以下是一个用Car analogy上述范例的例子。
一个人坐在车上，车在一个无穷大的平面上，车头朝向北方。
目的是透过驾驶（直线前进或是直线倒车）一段距离、停车、转弯、再驾驶（直线前进或是直线倒车）一段距离的方式到平面上的任何一点。
假如车上没有方向盘，因此车只能直线前进或后退，车所能到的方向只有车的正南方或正北方的位置上。
没有方向盘类似的秩为1（二次所走的位移均平行）的情形。
假如车有方向盘，可以任意的旋转，自然可以到平面上的任何一点，这类似的秩为2的例子。
若将此范围延伸到，则例子会变成让飞机到三维空间中的任何一点（不考虑飞机本身的机头面对方向。
可做的事为：
*以直线航行
*左转或是右转任意角度（偏摆，yaw）
*飞机朝上或是朝下任意角度（俯仰，pitch）
虽然三维的例子比较不容易视觉化，不过原理类似。

**非线性系统**
以下控制仿射形式的非线性系统
 
其在附近局部可到达（accessible）的条件是可到达分布可以生成 个空间，其中等于的秩，而且R可以由下式表示：

此处是重复的李括号运算，定义如下
 
线性系统的可控制性矩阵可以由此式推导而得。

**零可控制性**
若离散控制系统具有零可控制性（null-controllable），表示针对某一初始状态，存在可控制的使得。此条件和存在矩阵使得为幂零矩阵的条件等价。
此条件可以由可控制-不可控制分离推导而得。

**输出可控制性**
输出可控制性（Output controllability）是有关系统输出（以上表示为y）的特性，输出可控制性描述外在输入是否可以在有限时间内，将输出从任意初始状态控制到特定输出。输出可控制性和状态可控制性不一定会有相关性。尤其：- 状态可控制性的系统不一定会是输出可控制性的系统。例如矩阵D = 0，且矩阵C没有全秩，因为输出矩阵的结构限制，有些输出是无法达到的。即使系统的所有状态都可以在有限时间内达到，但仍然有些特定的输出是无法产生的。一个明显的例子是D=0，且矩阵C至少有一行为零，因此此系统无法让该输出有不为零的输出。- 输出可控制性的系统也不一定会是状态可控制性的系统。例如，假如状态空间的维度大于输出的维度，针对每一个输出，都有一组可能的对应状态组态。也就是说，系统可能会有零动态（zero dynamics），也就是系统状态有变化，但是在输出上完全看不出来。因此，可以在有限时间将输出控制到特定输出，和状态的可控制性完全没有关系。
针对线性连续时间系统，例如由矩阵、、及描述的系统，其输出可控制性矩阵

有满行秩（rank ）若且唯若此系统为输出可控制系统742，此结果也是卡尔曼的可控制性准则date=February 2012。

**在有输入限制下的可控制性**
在一些没有完全控制权的系统，常常无法在可控制子空间内将系统从任意初始位置移到从任意结束位置。会出现此一现象的原因可能是因为系统本身就有的输入信号限制（例如致动器的饱和）或是因为其他原因而给系统的限制（例如因为安全相关的考量）。在输入及状态有限制时的系统可控制性，是可到达性（reachability）及viability theory探讨的内容。

**行为框架中的可控制性**
在所谓的行为系统理论方法（behavioral system theoretic approach）中，不会直接定义模型输入－输出的结构。在此框架内，系统由是由变数集合的允许轨迹来表示，其中有些可能是输入或是输出。
在此框架中，可控制的系统是指，系统过去的行为（外在变数的轨迹）可以和任何未来的行为连接，而其连接方式都在可允允许的系统行为内151。

**可稳定性**
可稳定性（stabilizability）是比可控制性要弱的一个条件。系统具有可稳定性若所有不可控的状态都有稳定的动态特性。因此虽然系统中有一些状态是不可控的，在系统动作时，所有的状态都还是维持在一定的范围内（有界）。Hautus引理有针对可稳定性的判断

**可达到集合**
令T ∈ Т，且x ∈ X（其中X是所有可能状态的集合，Т是一段时间区间）。在时间T内从x开始的可达到集合（reachable set）定义为:  
，其中 x→z表示存在一个在时间T内从x到z的状态转换。
针对自主系统，其可达到集合为：
,
其中R为可控制性矩阵。
若以可达到集合来表示，系统有可控制性若且唯若。
证明  
根据以下的等式：



考虑系统可控制，因此R的-{zh-hans:列; zh-hant:行;}-需为线性独立，因此
 


另一个和可达到集合有关的集合为可控制集合（controllable set），定义如下：
.
Sontag提出了可达到性（reachability）和可控制性的关系:
(a) n维离散线性系统可控制，若且唯若：
: （其中X为x的所有可能值或是状态，且k为时间）
(b) 连结时间线性系统可控制，若且唯若：
: 针对所有e>0。
若且唯若针对所有e>0。

**相关条目**
 可观测性- 状态观测器- 平坦性

**脚注**

**参考资料**

**外部连结**
urlname=Controllability-   MATLAB function for checking controllability of a system date=20120210033123 -   Mathematica function for checking controllability of a system date=20140303230007