从系列:状态空间
布莱恩•道格拉斯
本视频提供了一个直观的理解杆位,也被称为全状态反馈。这是一种控制技术,而饲料每一个状态恢复到保证闭环系统的稳定性,是敲门砖其他方法,如LQR和H无穷。
我们将讨论控制律的结构,以及为什么移动极点或特征值会改变系统的动力学。我们还将复习MATLAB中的一个示例,并与其他控制技术进行一些有趣的比较。
在这段视频中,我们将讨论一种方法来为一个模型开发一个反馈控制器,这个模型是用状态空间方程来表示的。我们会用一个叫极点配置的方法来做,或者叫全状态反馈。现在,我的经验是极点配置本身并没有在工业中广泛使用;你可能会发现你经常使用其他的方法,比如LQR或者h_∞。然而,极点配置值得花一些时间,因为它会让你更好地理解使用状态空间方程反馈控制的一般方法,它是得到那些其他方法的垫脚石。所以我希望你能留下来。我是Brian,欢迎来到MATLAB技术讲座。
首先,我们有一个输入为u输出为y的工厂,我们的目标是开发一个反馈控制系统,将输出驱动到某个期望的值。您可能熟悉的一种方法是将输出与参考信号进行比较,以获得控制错误。然后你开发一个控制器,它使用这个误差项来产生输入信号到工厂,目标是把误差降到零。这是反馈系统的结构,如果你在开发一个PID控制器,你会看到它。
但是对于极点的位置,我们要用不同的方法来解决这个问题。而不是反馈输出y,我们会反馈每个状态变量的值在我们的状态向量,x。我们认为我们知道每个州,尽管它的价值并不一定输出y的一部分。我们会一点,但是现在,假设我们有访问所有这些值。然后我们用状态向量乘以一个由一系列不同增益值组成的矩阵。这个结果从一个缩放的参考信号中减去,然后直接输入到我们的装置中。
现在你会注意到这里并没有一个像我们在顶部框图中看到的那样,被标记为“controller”的块。在这个反馈结构中,整个部分是控制器。极点配置是一种计算适当增益矩阵以保证系统稳定性的方法,并利用参考点上的比例项来保证稳态误差性能的可接受性。这两个我都会讲到。
在上个视频中,我们介绍了状态方程x导= Ax + Bu。我们证明了线性系统的动力学在第一部分Ax中得到了体现。第二部分是系统如何响应输入,但是系统中的能量是如何存储和移动的,是如何被Ax项捕获的。所以当涉及到控制器设计时,你可能会认为A矩阵有一些特别之处。还有:任何反馈控制器都必须修改A矩阵来改变系统的动态。在稳定性方面尤其如此。
矩阵的特征值是系统的极点,极点的位置决定了线性系统的稳定性。这就是极点配置的关键:通过移动极点或闭环矩阵的特征值来生成所需的闭环稳定性。
在我们进一步讨论之前,我想再扩展一下极点,特征值,和稳定性之间的关系,因为我认为这将帮助你们准确地理解极点的位置是如何工作的。
在这个例子中,我们刚开始与动态任意一个系统和重点,A矩阵。所以这是一个有点容易看到的状态衍生品如何与状态,我们可以在非矩阵形式重写这个。通常,每个状态可以作为其他状态的函数而改变。这就是这里的情况;X点基于X2 1种变化,并且x点基于X1和X2两者2度的变化。这是完全可以接受的,但它使人很难想象如何征值有助于整体动态。所以我们所能做的就是变换矩阵A为一个使用一组不同的状态变量来描述系统。
这个变换是用一个变换矩阵来完成的,它的列是矩阵的特征向量。我们在变换后得到的是一个修正后的矩阵它由沿着对角线的复特征值和其它地方的零组成。这两个模型代表同一个系统。它们有相同的特征值,相同的动力学;它只是用一组独立变化的状态变量来描述第二种状态。
写在对角形式A矩阵,可以很容易地看到,我们留下了一组一阶微分方程的每个状态的导数只受这种状态,没有别的。而这里的凉爽部分:以这样的微分方程的解的形式为Z =恒定次; ^拉姆达吨。其中的λ是对于给定的状态变量的特征值。
好的,让我们再深入研究一下这个方程。Zn表示给定初始条件c时状态随时间的变化情况,另一种考虑方法是用能量初始化状态,这个方程表示能量随时间的变化情况。通过改变,你可以影响能量是如何消耗的,或者,在一个不稳定的系统中,能量是如何增长的。
让我们通过拉姆达的几个不同的值,可以直观的看到能量的变化如何根据复平面内的特征值的位置。
如果是一个负实数,那么这个模式是稳定的,因为解e是一个负数,任何初始能量都会随着时间消散。如果它是正的,那么它是不稳定的,因为能量会随着时间增长。如果有一对虚特征值,那么模态的能量就会振荡,因为e的虚数产生了sin和cos。特征值中任意实数和虚数的组合都会产生振荡和指数能量耗散的组合。
我知道这一切都是非常快的,但希望它做的足够意义上,现在我们可以说出我们正在努力解决这个问题。如果我们的工厂有是在复平面不可取位置的特征值,那么我们就可以用极点配置到别的地方移动。Certainly if they’re in the right half plane it’s undesirable since they’d be unstable, but undesirable could also mean there are oscillations that you want to get rid of, or maybe just speed up or slow down the dissipation of energy in a particular mode.
有了这些之后,我们现在可以研究极点的位置如何移动特征值。还记得我们一开始画的控制器的结构吗?这导致输入u = r*Kr - k*x。其中rkr是缩放的参考,我们稍后会讲到。kx是我们反馈的状态向量乘以增益矩阵。
这就是奇迹发生的地方。如果我们把这个控制输入代入状态方程,我们就关闭了这个循环,我们得到了下面的状态方程:注意,A和-Bk都作用于状态向量,所以我们可以把它们结合起来得到一个修改过的矩阵。
这是闭环的矩阵,我们必须通过选择合适的K.移动的特征值的能力,这是很容易通过手简单的系统做的。让我们尝试用二阶系统具有单个输入的例子。我们可以通过A的行列式设置找到特征值 - 拉姆达我到零,然后解决拉姆达。他们是在-2和+1。一种模式将炸毁到无穷大,因为正实特征值的存在,因此该系统是不稳定的。让我们用极点配置设计一个反馈控制器将由不稳定极点移动到左半平面稳定这个系统。
我们的闭环矩阵是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命令。我将定义这四个矩阵,然后创建开循环状态空间对象。我可以检查开环的特征值一个矩阵只是为了告诉你,事实上,正的特征值导致这个系统不稳定。
这是没有好,所以让我们继续前进的系统的特征值,以-2和-1。现在解决了使用极点增益矩阵可以使用的地方命令来完成。而我们得到的增益值2和1个像我们的预期。
现在新的闭环矩阵是A - BK,再检查一下,这是Acl的样子它确实在-1和-2处有特征值。好的,我将创建闭环系统对象,现在我们可以比较这两个步骤的响应。
开环系统的阶跃响应是不稳定的。闭环系统的阶跃响应比较好。然而,它并不完美。而不是像我们期望的那样上升到1,稳态输出只有0.5。这就是引用缩放的最终作用。到目前为止,我们只关心稳定性,很少关注稳态性能。但即使解决这个问题也很简单。如果对输入的响应只有你期望的一半,为什么我们不把输入加倍呢?这就是我们所做的。不是翻倍,而是把输入乘以稳态值的倒数。
在MATLAB中,我们可以通过反求系统的直流增益来实现这一点。你可以看到直流增益是0。5,所以倒数是2。现在,我们可以通过用kb扩展输入并检查阶跃响应来重建我们的闭环系统。不足为奇;它的稳态值是1。
这就是基本的极点配置。我们反馈给每个状态变量,并将它们乘以增益矩阵,这样就移动了闭环特征值,然后我们缩放参考信号,使稳态输出是我们想要的。
当然,除了我在这12分钟的视频中所讲的之外,还有更多关于杆位的内容,我不想拖得太久,但我也不想在这段视频中不讲一些更有趣的东西,让你们思考。所以,为了节省时间,让我们用闪电轮的方式来讨论这些最后的想法。你准备好了吗?我们走吧!
杆的位置就像花式根轨迹。对于根轨迹,你有一个增益你可以调整它只能沿着轨迹线移动到极点。但是有了极点的位置,我们就有了增益矩阵,使得我们能够在复杂平面上移动极点,而不仅仅是沿着单维线。
一个两状态极点配置控制器是非常相似的PD控制器。用PD,你反馈输出并产生所述控制器内的衍生物。随着极点,你反馈的衍生物作为一个国家,但结果基本相同:2倍的收益,一个是国家,一个用于它的衍生物。
好的,我们可以移动特征值,但是我们应该把它们放在哪里?这个问题的答案是一个更长的视频,但这里有一些东西值得思考。如果你有一个高阶系统,考虑让两个极点比其他的更接近虚轴,这样系统的行为就会像一个普通的二阶系统。这些被称为主导极点,因为它们速度较慢,而且往往主导系统的响应。
记住,如果你试着把一堆特征值往左移得非常远,以得到一个超级快的响应,你可能会发现,你的执行器没有速度或权威来产生必要的响应。这是因为它需要更多的增益,或更多的驱动器的努力,以移动的特征值进一步从他们的开环起点。
全状态反馈是一个有点用词不当。你是反馈你的数学模型的每个状态,但不这样做,而不能在一个真实的系统中的每个状态反馈。对于只是一个例子,在一定程度上,所有的机械硬件是灵活的,这意味着额外的状态,但是你可以选择忽略这些国家在模型和发展你的反馈控制器假设一个僵化的体制。最重要的是你反馈的所有关键州对您的设计,使您的控制器将仍然在真正的硬件工作。
你需要访问所有的临界状态才能得到反馈。输出y可能包括每个状态,在这种情况下,您已经全部设置好了。但是,如果不是这种情况,您将需要向系统添加更多的传感器来测量缺失的状态,或者使用现有的输出来估计或观察您没有直接测量的状态。为了观察你的系统,它需要是可见的,同样的,为了控制你的系统,它需要是可控的。下个视频我们会讲到这两个概念。
现在就讲到这里。我希望这些最后的想法能帮助你更多地理解杆位的含义,以及它如何成为整体控制架构的一部分。
如果你想要一些额外的信息,在描述中有一些链接是值得查看的,它们解释了更多关于MATLAB中极点配置的用法。
如果你不想错过下一个科技视频,不要忘记订阅这个频道。另外,如果你想看看我的频道,控制系统讲座,我也会讲到更多的控制理论话题。谢谢收看。下次见。