一、能控性
系统的能控性(Controllability)是控制理论中的一个基本概念,它描述了系统状态是否能够在有限时间内,通过适当设计的输入(或控制信号),从任何初始状态转移到任何期望的最终状态。如果一个系统满足这个条件,我们就说这个系统是完全能控的。
对于线性时不变系统,系统的能控性是由系统本身决定的(即,物理建模得出的状态空间方程不会变了),系统的能控性通过其数学模型来判定。假设系统的状态空间方程如下:
能控性可以通过判断能控矩阵(Controllability Matric) CM来判定
其中,n为系统状态的维度。如果矩阵CM的是满秩的,(系统的秩等于状态空间向量的维数n),则系统是完全能控的。意味着通过适当设计输入u(t),可以在有限时间内将系统的状态x(t)从任何初始状态转移到任何期望的最终状态。
在matlab中,使用ctrb(A,B)命令可以直接生成能控性矩阵,使用rank函数可以计算能控矩阵的秩,结合使用这两个函数,可以直接判断系统的能控性。
上一篇文章,小车倒立摆系统线性化,离散化处理-CSDN博客,测试离散后的状态空间方程的能控性,运行后现实系统完全能控。
二、能观性
如果系统完全能控,我们可以通过设计控制律 u=-kx,对系统做反馈控制,其中,是系统的全部状态量。一般情况下,系统的输出y不会完全包含全部的状态量,因此,我们需要设计状态观测器,借助传感器采集的输出数据和已知的输入数据,逆推出全部状态量。如果一个系统的任何状态都可以通过基于一段时间内的输出和输入唯一确定,那么这个系统是完全能观的。
对于系统:
通过能观性矩阵,可以判断系统的能观性,能观性同样也是由系统本身唯一绝对的。能观矩阵如下:
如果矩阵OM是满秩的,那么系统被认为是完全能观的。意味着通过观测输出y(t)和已知的输入u(t),可以在有限时间内确定系统的状态。
在matlab中,使用obsv(A,C)能生成观测矩阵,再配合rank函数求秩,便能判断系统的能观性。
在我们搭建的系统中,运行如下指令:
显示系统完全能观。
因此,可以进行后续的控制器和观测器开发。