从系列中:状态空间
布赖恩·道格拉斯
这个视频提供了对极点放置的直观理解,也被称为全状态反馈。这是一种反馈每个状态以保证闭环稳定性的控制技术,也是其他方法(如LQR和H∞)的基石。
我们将介绍控制律的结构,以及为什么移动极点或特征值会改变系统的动力学。我们还将在MATLAB中查看一个示例,并与其他控制技术进行一些有趣的比较。
在这段视频中,我们要谈的方式来开发一个模型反馈控制器的使用状态空间方程表示。而我们要做的是一个叫极点配置方法,或全状态反馈。现在,我的经验是本身没有在工业上广泛使用的极点配置;你可能会发现,你所使用的其他方法,如LQR或者H无穷更频繁。然而,极点配置是值得花一些时间,因为它会使用状态空间方程给你一个更好的了解,一般的方法来反馈控制的,这是一个踏脚石让那些其他方法。所以,我希望你留下来。我是布莱恩,欢迎到MATLAB技术讲座。
首先,我们有一个具有输入u和输出y的工厂。目标是开发一个反馈控制系统,将输出驱动到某个期望值。您可能熟悉的一种方法是将输出与参考信号进行比较,以获得控制错误。然后,您开发一个控制器,该控制器使用该误差项生成设备的输入信号,目标是将误差降至零。这是反馈系统的结构,如果你正在开发,比如说,一个PID控制器,你会看到它。
但是对于极点配置,我们将以不同的方式来处理这个问题。我们将反馈状态向量x中每个状态变量的值,而不是反馈输出y。我们要声明,我们知道每个状态的值,即使它不一定是输出y的一部分。我们将在稍后讨论,但现在,假设我们可以访问所有这些值。然后取状态向量,乘以一个由一组不同增益值组成的矩阵。结果从标度参考信号中减去,该结果作为输入直接输入到我们的工厂。
现在你会发现,没有在这里标注为“控制器”就像我们在上面框图块。在这种反馈结构,这整个部分是控制器。和极点配置是由我们可以计算适当的增益矩阵,以保证系统的稳定性的方法,以及在参考的缩放术语用于确保稳态误差性能是可接受的。我将在这个视频涵盖这两种。
在上一个视频中,我们介绍了状态方程x dot=Ax+Bu。我们在第一部分展示了线性系统的动力学,Ax。第二部分是系统如何响应输入,但系统中的能量如何存储和移动被Ax项捕获。所以,当涉及到控制器设计时,您可能会认为矩阵有一些特殊之处。还有:任何反馈控制器都必须修改A矩阵以改变系统的动力学。在稳定方面尤其如此。
矩阵的特征值是系统的极点,极点的位置决定了线性系统的稳定性。这是极点配置的关键:通过移动极点或闭环矩阵的特征值来产生所需的闭环稳定性。
在我们进一步讨论之前,我想对极点、特征值和稳定性之间的关系进行更多的阐述,因为我认为这将帮助你准确地理解极点配置是如何工作的。
对于这个例子,我们从一个任意的系统开始关注它的动力学,A矩阵。我们可以把它写成非矩阵形式这样更容易看出状态导数和状态之间的关系。一般来说,每个州都可以作为其他州的函数而改变。这就是这里的情况;X·1是基于x2而X·2是基于x1和x2而变化的。这是完全可以接受的,但它使它很难想象特征值是如何对整体动力学做出贡献的。所以我们能做的就是把A矩阵转换成一个用不同的状态变量来描述系统的矩阵。
该转化使用变换矩阵,它的列是A矩阵的特征向量来实现的。我们与改造后的是由沿对角线和零其他地方的复杂特征值的经修改的A矩阵到底是什么了。这两款车型代表了相同的系统。它们具有相同的特征值,同样的动力;它只是使用一组彼此独立的改变状态变量描述了第二个。
用对角形式写出A矩阵,很容易看到我们剩下一组一阶微分方程每个状态的导数只受那个状态的影响,没有其他的。这是最酷的部分,微分方程的解是这样的形式Z =常数乘以e ^ t,其中是给定状态函数的特征值。
好的,让我们再深入一点这个等式。Zn显示了在给定初始条件C的情况下,状态是如何随时间变化的。或者另一种思考方式是,如果你用一些能量初始化状态,这个方程显示了能量随时间的变化。通过改变λ,你可以影响能量的耗散,或者,在一个不稳定的系统中,能量如何增长。
让我们看几个不同的值,所以你可以直观地看到能量是如何变化的,基于特征值在复平面内的位置。
如果lambda是一个负实数,那么这个模式是稳定的,因为解被提升到一个负数,任何初始能量都会随时间消散。如果它是正的,那么它是不稳定的,因为能量会随着时间增长。如果有一对虚本征值,那么模式中的能量会振荡,因为e的虚数产生正弦和余弦。特征值中实数和虚数的任何组合都会产生振荡和指数能量耗散的组合。
我知道这非常快,但希望它足够有意义现在我们可以表述我们想要解的问题。如果我们的植物的特征值在复平面的不希望的位置,那么我们可以使用极点放置将它们移到其他地方。当然,如果它们在右半平面,这是不可取的,因为它们是不稳定的,但不可取也可能意味着有一些振荡,你想要摆脱,或者可能只是加速或减缓特定模式的能量耗散。
与我们后面,我们现在可以进入如何极点移动的特征值。还记得控制器的结构,我们画了开头?这导致输入u = R *氪 - K * X。其中r氪是缩放的参考,这也我们会得到一个位。和KX是状态向量,我们正在通过增益矩阵反馈相乘。
这里就是神奇的发生。如果我们堵塞这个控制输入到我们的状态方程,我们正在完成一个循环,我们可以得到下面的状态方程:请注意,A和-Bk状态向量两种行为,所以我们可以结合他们得到改进的矩阵。
这是一个闭环矩阵,我们有能力通过选择一个合适的k来移动特征值,对于简单的系统,这很容易用手来做。让我们以一个只有一个输入的二阶系统为例。我们可以通过将A - I的行列式设为0来找到特征值然后解出。它们分别是-2和+1。其中一个模态会爆炸到无穷大因为存在正的实本征值所以系统是不稳定的。让我们使用极点放置来设计一个反馈控制器,通过将不稳定极点移动到左半平面来稳定这个系统。
我们的闭环A矩阵是A-BK,增益矩阵k是1x2,因为有一个输出和两个状态。这导致-K1、1-k2、2和-1。我们可以像以前一样求解Acl的特征值,得到这个特征方程,它是两个增益值的函数。
我们想让闭环极点在-1和-2处。这样,特征方程就是L²+ 3L + 2 = 0。在这一点上,很容易找到合适的K1和K2使这两个方程相等。我们只要让系数相等,然后解出来。我们得到K1 = 2 K2 = 1,就是这样。如果我们把这两个增益放在这个系统的状态反馈路径中,它将用-1和-2的特征值稳定下来。
通过手的例子散步,我想,给你一个很好的理解极点配置;然而,数学参与开始变得势不可挡对于有两个以上的国家系统。我们的想法是一样的;刚刚解决了决定性变得不切实际。但是,我们能做到这一点同样的事情在MATLAB与几乎单一的命令。
我很快就会告诉你如何通过重新创建我们做手工同一系统中使用MATLAB的地方命令。我将定义四个矩阵,然后创建了开环状态空间物体。我可以检查开环矩阵的特征值只是告诉你,没有,事实上,积极的特征值,导致该系统不稳定。
这不好,所以我们把系统的特征值移到-2和-1。现在,利用极点放置来求解增益矩阵可以用place命令来完成。我们得到了2和1,和我们期望的一样。
现在,新的闭环矩阵是A - BK,只是仔细检查,这是何等的Acl样子,它确实有特征值在-1和-2。好吧,我将创建闭环系统对象,现在我们可以通过比较两者的阶跃响应。
开环系统的阶跃响应是不稳定的。闭环系统的阶跃响应看起来要好得多。然而,这并不完美。而不是像我们预期的那样上升到1,稳态输出只有0.5。这就是引用上的缩放的最终目的。到目前为止,我们只关注稳定性,很少关注稳态性能。但即使解决这个问题也相当简单。如果对输入的响应只有您期望的一半,那么我们为什么不将输入增加一倍呢?我们就是这么做的。好吧,不是双倍的,但是我们用稳态值的倒数来缩放输入。
在MATLAB中,我们可以通过反转系统的直流增益来实现这一点。你可以看到直流增益是0.5,所以倒数是2。现在我们可以通过Kr缩放输入并检查阶跃响应来重建闭环系统。毫不奇怪;其稳态值为1。
这就是基本的极点配置。我们反馈每个状态变量,然后用增益矩阵乘以它们,这样可以移动闭环特征值,然后我们缩放参考信号,这样稳态输出就是我们想要的。
当然,在这12分钟的视频中,极点放置比我能覆盖的更多,而且我不想拖太长时间,但是我也不想离开这个视频,而不需要为你考虑一些有趣的事情。因此,为了时间的利益,让我们以闪电般的方式来完成这些最后的想法。你准备好了吗?我们走吧!
极点的位置就像是花哨的根轨迹。对于根轨迹,你有一个可以调整的增益,它只能沿着轨迹线移动到极点。但是通过极点配置,我们有一个增益矩阵,它使我们能够在复杂平面的任何地方移动极点,而不仅仅是沿着一维直线。
双状态极点配置控制器与PD控制器非常相似。对于PD,你反馈输出并在控制器内生成导数。在极点配置中,你将导数作为状态反馈,但结果本质上是相同的:2个增益,一个用于状态,一个用于其导数。
好的,我们可以移动特征值,但是我们应该把它们放在哪里呢?答案是一个更长的视频,但这里有一些事情要考虑。如果你有一个高阶系统,考虑两个极点比其他的更接近虚轴,这样系统的行为就像一个普通的二阶系统。这些被称为主导极,因为它们速度较慢,并且往往主导系统的响应。
请记住,如果您试图将一组特征值移动到非常左侧以获得超快的响应,您可能会发现您的执行器没有速度或权限来生成必要的响应。这是因为需要更多的增益,或更多的执行器努力,才能将特征值从其开环起点进一步移动。
完全状态反馈有点用词不当。你可以反馈数学模型中的每个状态,但你不能,也不能,反馈真实系统中的每个状态。举个例子,在某种程度上,所有的机械硬件都是灵活的,这意味着额外的状态,但你可以选择忽略模型中的这些状态,并假设一个刚性系统开发反馈控制器。重要的是,你要将所有关键状态反馈给你的设计,这样你的控制器才能在真正的硬件上运行。
你必须对所有的关键状态都有某种访问权限,以便反馈它们。输出y可能包括每个状态,在这种情况下,您都已设置好。但是,如果情况并非如此,则需要向系统中添加更多传感器来测量缺失状态,或者使用现有输出来估计或观察未直接测量的状态。为了观察你的系统,它需要是可观察的,同样,为了控制你的系统,它需要是可控制的。我们将在下一个视频中讨论这两个概念。
所以这是它现在。我希望这最后的一些想法帮助你了解多一点意味着什么做极点,以及它如何的一部分的整体控制架构。
如果您需要一些附加信息,说明中有几个链接值得查看,这些链接详细解释了如何在MATLAB中使用极点配置。
如果你不想错过下技术讲座视频,别忘了订阅此频道。另外,如果你想看看我的频道,控制系统的讲座,我覆盖更多的控制理论主题那里。感谢收看。我会看到你下一次。
你也可以从以下列表中选择一个网站:
选择中国站点(中文或英文)以获得最佳站点性能。其他MathWorks国家/地区网站未针对您所在地的访问进行优化。