从系列:修剪和线性化
布莱恩•道格拉斯
为什么经过线性化模型的麻烦?套用理查德·费曼,那是因为我们知道如何解决线性系统。用线性模型我们可以更容易地设计一个控制器,评估稳定,理解系统动力学。
这段视频介绍了线性化的概念和涵盖的一些主题,将帮助您了解如何使用线性化和为什么它是有帮助的。
这个视频还描述了系统操作点和修剪的过程操作点一个平衡。
结束,我们走过雅可比矩阵线性化的一个例子通过观察系统的一阶偏导数。
在这个视频中,我将介绍线性化的概念和涵盖的一些主题,将帮助您了解如何使用线性化和为什么它是有帮助的。考虑一个物理系统建模为一个微分方程的形式xdot是x的函数和u。这意味着系统如何随着时间的变化,取决于系统的当前状态,和外部输入到系统,这可能是外力,扭矩,能源等等。这通常表示非线性自所有真正的系统本质上是非线性的。问题是,我们能找到一个合适的线性定常系统状态和外部输入的组合产生相似的结果作为非线性动力学在一些有限的意义上吗?也就是说,我们可以适应模型,该模型是一个非线性函数线性形式的x和u xdot = Ax +布鲁里溃疡和这样做的意义是什么?好吧,让我们谈谈。我是布莱恩,欢迎来到MATLAB技术说话。
首先,让我们看一个MATLAB水箱系统的例子。水注入水箱顶部通过开放速度成正比的电压驱动泵。有一个底部排水,水可以离开坦克。水箱里的水的高度变化,可以通过控制泵的电压的影响。如果你打开一个MATLAB命令窗口并键入“watertank”,会弹出下面的仿真软件模型。金宝app这是一个典型的反馈系统;引用水高度、一个控制器和一个植物代表水箱的动态系统,输入电压,输出是水的高度。在工厂子系统如何建模的细节。从这个我们可以写出这个系统的微分方程。参数,a, b,和资本的特定参数坦克和他们代表常数相关流量的坦克和横截面积。 So what we have is the change in height of the water equals the amount of height gained by the water entering the tank minus the height lost by water leaving. And the amount lost is proportional to the square root of the water height. This square root makes it a nonlinear model. So at this point, we could linearize this model and fit it to the form x dot = Ax + Bu.
问题可能是,为何还要麻烦地线性模型吗?为什么不直接在更精确的非线性模型?至少有三个很好的理由。,我们可以更容易地检查局部稳定性和比我们可以理解一个线性系统的动态非线性系统。2,我们有很多工具,我们可以使用它来为线性模型设计控制器。和三个,可以加快你的模拟代替非线性模型和线性。这可能是重要的如果您正在运行一个半实物测试控制器在目标硬件上运行,但是它与系统的其余部分的仿真交互动态。在某些情况下,非线性数学参与运行仿真不能解决足够快跟上实时硬件,代之以一个更快,线性等价是一个很好的选择。让我们进入线性化的过程。
在任何时刻,一个动力系统状态——也就是说,一个特定的配置系统变量,定义系统的状态(位置、速度、电压、等等)。系统的所有可能的配置集可以在被称为状态空间。这是每一个方向,运动,和条件,一个系统可以体验。例如,摆有两种状态:角θ,θ角速率,点。状态空间将从0到2π为θ覆盖整个圆和负到正无穷θ点覆盖所有可能的利率可以旋转。当然,实际上,你摆可能永远不会超过10 rad / s所以我们可以砍下来这小得多的操作状态空间,或操作信封。如果可以的话,最好我们可以得到一个线性模型,整个状态空间。但这通常并非如此,因为一个线性模型可能代表动力学在一些州,但由于系统的非线性,这将是一个糟糕的表现。所以为了解决这一问题,我们在特定位置称为操作点线性化,我们想要最低的错误。一个重要的和非常常见的操作点是当系统处于稳定状态,或平衡。 This means that if you initialized the system at this state, then the states would not change over time. Or, another way of putting it: x dot for all time equals zero. That might mean that the system states are at an equilibrium on their own with no external inputs, like a pendulum that has two equilibrium points, one hanging straight down and one perfectly balanced pointing straight up. But we also have inputs into the system and the combination of inputs and system states can also be an equilibrium. For example, if the input into the pendulum is a torque, then we can find a constant torque that moves the equilibrium point to pi/4 radians. If we initialized the pendulum in this condition, it would not move since the torque from gravity and the input torque perfectly balance out and we can linearize around this condition. The act of finding an equilibrium by adjusting the input signals is called trimming. This is a term that is borrowed from aerospace, like trimming an aircraft to fly straight and level.
想象飞机,被设置为一个固定的高度飞行时零度攻角在给定速度没有电梯的控制输入。这是这个系统的稳态条件。然而,如果飞机开始减速,或飞行速度低于在稳态条件下,机翼产生的升力和高度将开始下降。高度仍有可能保持不变这一新的速度如果飞行员添加一个输入到系统中拉回电梯轭上的转移,提高攻角和产生更大的升力。而不必经常拉回到轭,飞行员可以修剪电梯这样中性轭位置产生所需的电梯位置,高度不变。这是削减意味着什么:找系统的状态和输入,产生一个稳态情况在您选择的操作点。
你可以想象削减是一个复杂的任务,如果你的系统有几十个状态你试图保持常数和几个控制输入,您可以使用它们来控制他们。下一节,我们将讨论一些可用的工具在仿真软件,使调整容易。金宝app对于现在来说,这足以理解削减的概念以及它与产生稳态操作点。
让我走在一个真正的快速一边。这并不总是可能的调整稳态状态空间任意一点。例如,没有输入的组合,将导致飞机飞向后稳态即使状态空间允许的运动。所以你必须足够了解你的系统,你不选择一个组合的状态,你不能找到一个平衡。
好的,回去。我们选择操作点和修剪系统,这样它的平衡。下一步是线性化操作点。
告诉我们如何做到这一点,让我们走过两个例子。从维基百科我抓住第一个例子,但我想在这里复述和润这一点,因为我认为它会给你一个线性化背后的基本想法和如何计算得到简化。
我们来看看方程f (x) =√x。现在,这不是一个微分方程,但它仍然会帮助的点。
√x是一个非线性函数,看起来像这样。我们可能会问,这个函数的值是在x = 4 ?这很容易解决,我们得到2。然而,一个较难的问题,值x = 4.001是什么?它可能会花大量的时间来解决这个。然而,我们可以简化使用线性方程估算值。我们的想法是,只要我们不过于偏离操作点,然后线性估计和真实值之间的误差会小。好的,让我们这样做。一条线的方程是y = mx + b b m是斜率和偏移量。
任何一点的斜率沿着函数是函数的导数和偏移量的值是函数在操作点。所以我们的线性化方程y (x)是操作一点的斜率x酒吧*距离操作点+偏移量。这是x酒吧和线性化,在我们的案例中,x酒吧是4。这就给了线性方程1/4 * x - 4 + 2。
现在我们可以检查值x = 4.001和2.00025容易做数学。真正的功能评价为4.001是2.00024998。不到一百万的百分之一。虽然感觉很多步骤来线性化,我们现在可以使用这个方程来估计4.1或3.9或任何操作点附近迅速和很少的错误。
然而,如果我们尝试使用线性方程x = 2,误差超过百分之一。如果错误是超过我们可以处理,我们也可以选择在操作点线性化2然后手之间的两个线性模型作为x 2和4之间的变化。
虽然这个例子很简单,但关系与我们的坦克的例子开始。记得Hdot,国家H和输入V的函数,给出了非线性方程。所以让我们线性化。首先我们选择一个操作点,我会坚持H酒吧= 4类似于过去的问题。现在我们可以修剪系统,H点H = 0通过设置输入的操作点和解决。我们得到V酒吧2 a / b。这些值,操作点的函数值= 0。
这个系统只有一个状态,高度,和一个输入电压。所以我们可以期待这种形式最后的线性方程,矩阵都1×1。好了,现在我们有一个修剪系统在操作点,我们现在可以线性化。我想提醒你,我们之前做的是用一个线性替换功能√X, y = mx + b。我们要做的东西有所不同,但结果将是非常相似的。我们要扩大我们的微分方程的泰勒级数,而是将所有的条款到正无穷,我们会忽略所有的高阶项。这样我们只保持第0和一阶条件,或一阶导数的泰勒级数。
现在,这是所涉及的数学比我想覆盖在这个视频,但我的目的只是给你一个想法的一个函数的导数可以用来生成一个线性近似。如果你工作通过泰勒级数展开和删除,剩下下面的函数。
看看这个。它y = mx + b有惊人的相似之处。我们有偏移,或函数的起点,也就是Hdot在操作点的值。然后添加到函数的斜率是变化的相关国家乘以距离国家远离操作点。第一除了照顾的变化将改变状态,第二个还负责由于改变输入的变化。
但我们可以进一步化简自从在操作点函数的值是零。现在我们可以解决偏导数。进一步简化的结果,我们可以重新贴标签于零。所以高度的测量从槽的底部,例如,我们可以从操作点。这个凝结H -百巴下来就H和V Vbar V。
剩下的是我们的水箱系统的线性方程在操作点4。就像前面的例子,我们偏离这个操作点,这个线性模型将不像其非线性行为。如果我们不能处理错误,那么我们就会在一个新的操作点线性化一次。
当你有多个线性模型,您可以开发一个线性控制器和手控制的收益从一个地区到另一个。这是背后的想法获得调度,我联系一个视频在描述这个话题,如果你对学习更多感兴趣。还有一个链接watertank模型线性化的例子和MathWorks页面来了解更多关于模型的线性化模型,所以我希望你检查出来。金宝app
我们做的是雅可比矩阵线性化。我们建立了一个线性模型的一阶系统的衍生品。这种类型的线性化需要的操作点的函数是可微的。但还有其他线性化方法,下一节我们将探索一些其他方法,为他们存在什么工具,如何理解他们在做什么。
如果你不想错过下一个科技视频说话,别忘了订阅这个通道。同样,如果你想看看我的通道,控制系统讲座,我覆盖更多的控制理论主题。谢谢收看。下次再见。
你也可以从下面的列表中选择一个网站:
选择中国网站(中文或英文)最佳站点的性能。其他MathWorks国家网站不优化的访问你的位置。