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