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