从系列:在实践中控制系统
布赖恩·道格拉斯
通常情况下,最佳的控制系统是最简单的。当你试图控制系统是高度非线性的,这会导致非常复杂的控制器。增益调度:这部影片来谈谈非线性控制的一种简单形式继续实践我们对控制系统的讨论。
增益调度是调整基于所述系统的当前状态的线性控制器的增益的方法。通过这种方式,增益控制计划可以通过分裂产生足够的控制系统的整个工作范围内的范围为更小的,线性控制区域。控制器增益之间的切换,但是,可以有一些意想不到的效果。除了提供增益调度一个直观的了解,这部影片通过一些方式来实现这些控制器和如何选择的实现可以最大限度地减少一些交换收益的负面影响行走。
增益调度在实践中经常使用,因此非常有必要学习这种方法与这部影片的基本知识。然而,没有什么比坐下来练习它在你自己更好。这里是你开始设计在MATLAB增益控制器安排一些其他的教程和例子,这将有助于®和Sim金宝appulink®。
让我们继续对控制系统的讨论,在实践中通过谈论非线性控制的一种形式:增益调度。我有这个想法的时候,我从大学,我会花很多时间运用艺术非线性控制理论的状态和建立真正看中的控制器毕业。但我发现,在大多数情况下,你想摆脱最简单的设计可能的,因为这些都是典型的便宜的设计和更容易实现,理解和解决问题。有一些简单的非线性控制器,开闭房子恒温器是其中之一,但是通常非线性控制背后的数学较为复杂,且只能应用于缩小的系统类别的控制器。因此,有时候,最好的解决方案仅仅是棒与尝试和真正的线性控制器,即使对于高度非线性的系统。而这正是我们要与增益调度做。我是布莱恩,欢迎到MATLAB技术讲座。
想象一下,你被要求制定一个商用飞机自动驾驶仪变桨控制器。当自动驾驶仪请求某个桨距角,您的控制器需要针对当前的俯仰角比较的是命令,然后驱动电梯控制面以相应地调节桨距。你已经得出了植物的线性传递函数和验证,该系统将呈线性,以至于你可以用这个模型来设计和调整控制器。如果你需要做的是你的系统设计工作,当飞机处于巡航高度,以保持的速度飞行,那么你也许可以设计一个线性控制器,它会工作得很好。
但是,有一个问题。这种模式仅代表飞机在一个单一的运行状态的动态。飞机不飞只是一个单一的操作条件。马赫数的变化,动态压力,襟翼位置,作为燃料被消耗的重力和质量变化的中心,攻击的角度发生变化等。公司经营状况一直在变化。和每一个操作条件都有它自己的一组参数,和线性模型的一个,因此不同的实例。这是非线性系统的类型被称为线性参数变系统(LPV)。当模型本身是线性的,但参数的变化随着时间的推移,或在运行状态。所以你与一个单一的操作条件这么好线性控制器,可能是在与模型的不同实例其他工作条件,工作得很好。
所以,我们能做些什么?我们可以尝试设计一个复杂的非线性控制器,将工作在整个工作范围内,我们可以尝试以设计鲁棒线性控制器,将工作 - 虽然这几乎肯定是性能下降,可能甚至是不可能的,我们只能限制船员非常严格的条件下,只能从事巡航自动驾驶仪,或者我们可以使用一个线性控制器和改变控制器基于一个时间表,我们定义了收益。让我们用这个选项去。
让我们更加紧密地看一下我们的反馈桨距控制系统的简化框图。对于这一思想的锻炼,我们使用一个PID控制器,但是任何基于增益的控制架构,将正常工作。PID控制器有3个可调增益,Kp,KI和Kd,让我们说,我们已经制定了一套收益为给定的马赫数。也许较低马赫数0.3一样左右。
假设这些都是我们想出了涨幅。在这一点上,我们已经确定,当飞机加速到更高马赫数,这些成果已不再足够,我们需要的性能,我们重新调整PID为这个新的操作条件。现在我们有另一套增益。
我们有收益的两套独立的,因此直觉它将使感来衡量的飞机实时速度,并选择当它飞慢慢收益的一组,另一组时,它的飞行速度快涨幅。这是一个非常简单的增益程序。我们选择基于调度可变增益,在我们的例子马赫数。
一旦我们选择了我们想要的增益,我们需要能够用这些新的增益更新控制器。这就是来自PID控制器顶部的箭头要表示的。在Simuli金宝appnk中,有许多控制器块允许您将增益定义为外部输入。如果你想试试并练习开发你自己的增益调度器,我在下面的描述中留下了一个关于这个的更多信息的链接。
到目前为止,我们只有一个调度变量,马赫数。但是现在让我们看一下运行包络线,或者是“徘徊者”在它上面飞机可以飞行两个调度变量:马赫数和动态压力,我们的增益调度图会是这样的-分成两部分,仍然有两个不同的增益集。然而,我们可能会发现are增益并不能在整个动态压力范围内起作用,我们也想基于这个变量添加一个新的进度表。现在我们有四个增益集,每个增益集由PID控制器的三个增益组成。这样就可以对运行包络线进行分割,分别克服各个条件,在增益集之间随马赫数和动压变化而跳变。我们可以添加第三个调度变量,CG位置,并制作一个三维地图。还有带有攻角的四维空间,等等。你可以看到变量矩阵增长的有多快,这是增益调度的一个倒退。您希望对操作包进行足够的划分,以便在任何地方都获得良好的性能,但又不希望进行过多的划分,以至于有大量的调优任务等着您。
大型增益矩阵的另一个缺点是,你必须存储它们,然后在其中有效地搜索控制器值。b所以有些人希望公司规模越小越好。
附注:这张图很好地展示了角案例这个术语。当你有多个极端的条件,图形化的,它在信封的角落里。通常,这些极端情况是您的设计中的异常值,因为您必须考虑两个或更多极端情况。所以当你在调优你的控制器时,你可能会发现它在运行过程中相对容易和快速,然而,你花了更多的时间和精力去处理那些极端情况。
所以,现在我们有什么增益调度是一个解释,让谈如何去实现它。还有,一般来说,四个步骤与前两个步骤我想你现在可能已经猜到了:
步骤一,线性化植物在每个设计的操作条件。基本上,我们要开发一个线性控制器,我们需要确保我们有一个线性装置。让我们重提我们简单的时间表,只有两个增益集:一个用于高马赫数和一个用于低马赫数。在这种情况下,你会选择两个工作点,一个在每个领域。你要找到一个选点的平均值,该工厂的变化在整个区域,当你调整你的控制器,它的生产仍然在整个区域足够的性能的最佳机会的方式。后来,如果你发现有里的表现不是很好,你可以切片的面积了与增益设定一个新的区域,对于它的作品。
这里最重要的是,你至少覆盖关键的操作要点。这可能是你的系统的稳态工作点以及地方的模型结构变化或稳定性。了解你的系统将帮助您确定这些关键点。
对于LPV系统就像我们,你已经有了一个线性模型。那么对于这一步,你只需要选择的设计要点,并找到相关的参数。
现在,我们有我们的线性模型,第2步是调整为每一个控制器增益。基本上,而不是一个单一的设计问题,我们在以消耗它,因为有设计工作点很多设计问题。在我们的例子中,我们使用PID控制器,所以我们会调整每一个在我们最好调整任何其他的PID控制器相同的方式。关于有许多不同的小控制问题的好处是,该要求并不需要为每一个设计点是相同的。您可以选择的,因为可行性的担忧不同的要求或只是因为你想要的行为是不同的。
这里值得一提的是,使用这种方法,我们只能保证在设计点上的性能,以及在相同情况下的稳定性。我会给你们展示一下我们要么在整个区域内使用一组增益,要么在点之间插入增益。不管怎样,我们实际上只是在少数几个地方进行调优,并期望性能能够满足整个信封的要求。因此,在设置控制器需求时,可以通过增加设计裕度或其他一些技术来考虑这一点,以使控制器更健壮,从而使它有最佳的机会与大面积的作业信封一起工作。您将在步骤4中评估性能,因此您应该能够捕捉到任何异常值,并将收益更改为工作,或者将其划分为两个更小的区域。
在这一点上,我们的设计工作点及其相关的增益设置等等有趣的部分开始了一把。第三步是实现基于调度变量那些增益集之间切换的结构。这里的一个死简单的办法是实现一个简单的开关。如果调度变量小于一定值时,使用增益集合A,如果是大于或等于该值,则使用增益设置B.这是因为它是多么简单但思考和落实,一个有吸引力的建筑,当切换发生时它产生一些不期望的瞬态。
为了理解这种情况发生,想象下面的情况。取而代之的PID控制器的,比方说我们可以逃脱只是一个比例控制器,这样,只有一个增益值。我们已经在我们的增益调度,为3的增益两个设计点时的马赫数大于或等于0.5和2的增益时的马赫数为0.5以下。最初,飞机在零度倾斜和我们命令自动驾驶间距达10度。该机飞行马赫数为0.6,当飞机开始音高,它使用相应的3增益。当飞机继续投球时,速度开始下降。Right at Mach 0.5, we’ll say the pitch error is 5 degrees, we’re not at 10 degrees yet, and so the output of the controller is 15 since there is a gain of 3. At the next time step, the Mach number is 0.499, the gain set switches instantly to 2. The error hasn’t changed much in this amount of time and so it’s still about 5 degrees, therefore the output of the controller jumps down to 10. This would cause a quick motion of the elevator and the aircraft would change its pitch quickly at that point, startling the passengers and spilling their drinks. Not a great design.
要解决这个问题的方法之一是通过实施免费瞬时开关。这种类型的开关的不跳控制器的输出瞬间,因为它产生两个增益集之间的平滑过渡,例如,从3降到2在某个特定的时间内顺利斜坡。这将删除突然短暂的,但它可能是一个有点棘手成立。这是因为你需要设置过渡时间足够长,以使瞬态理顺,但不长,所以增益不能转换速度不够快。
去除瞬变的另一种方式,可以说是一个更好的办法是与交换机做了所有在一起。而不是两个不同的增益设置,我们可以开发一个曲线平滑地从一个工作点变化到另一个。对于我们的单个调度可变例如,这可能意味着在设定为2低马赫数的增益,并且将增益随着速度的增加逐渐增加。这条曲线可以被定义为一个方程,或者只是在一个查找表,你之间插值的一系列点。但由于增益总是在变化平稳,并以最快速度调度变量的变化,那么有没有突然的瞬变。
如果你有两个变量,调度,那么你会拿出一个增益表面的每一个规定的设计工作点之间进行插值。使用这种方法,只要你想,你还可以有许多的调度变量,它只是使描述涨幅高阶表面。
有些你可能不知道的很酷的东西是MATLAB和Simulink中的工具Systune和控制系统调优器。金宝app有了这些工具,你可以选择你的设计工作点,定义增益曲面作为一个多项式作为一个方程,并自动调整多项式的增益。所以你需要做很多腿部运动。在下面的描述中,我留下了一个如何做到这一点的例子。
无论选择哪种架构,第四步都是至关重要的:评估整个操作范围内的控制性能——这通常是通过模型和模拟来完成的,因为您需要运行大量的测试条件。如果是模拟的,速度会快得多。既然您不能保证性能远离设计操作点,那么选择您的测试条件(您模拟的和不模拟的)是非常重要的。您需要确保所有的关键转换和每个潜在的极端情况都得到了覆盖。
尽管什么似乎像工作的此方法的不必要的量,被经常使用,在实际情况增益调度所以它的价值更详细地学习和实践你自己的。
如果你只观看此视频有点了解增益调度的概念,这是真棒!但是,如果你想练什么,我只是覆盖或学习如何在MATLAB和Simulink实现这些肯定检查了所有的我挂在描述中的示例和教程。金宝app
如果你不想错过下技术讲座视频,别忘了订阅此频道。另外,如果你想看看我的频道,控制系统的讲座,我覆盖更多的控制理论主题那里。感谢您的收看,我会看到你下一次。
您还可以选择从下面的列表中的网站:
选择最佳的网站性能的中国网站(在中国或英文)。其他MathWorks的国家网站都没有从您的位置访问进行了优化。
本网站使用Cookies来改善您的用户体验,个性化的内容和广告,并分析网站流量。通过继续使用本网站,您同意我们使用Cookie。请参阅我们的隐私政策了解更多关于cookies和如何更改您的设置。