来自系列:鲁棒控制
布莱恩•道格拉斯
本视频介绍了一个主动悬架系统的控制器设计。实际上,我们设计了两个控制器。对于第一个,我们使用H无穷大综合来设计一个控制器的标称对象模型,将保证性能,但不一定对系统的变化是鲁棒的。然后我们建立一个不确定模型就像我们在上个视频中做的那样然后用综合设计一个鲁棒控制器。
在此视频中,我们将通过控制器设计来进行主动悬架系统。实际上,我们要设计两个控制器。首先,我们将使用H Infinity Synthesis设计用于标称工厂模型的控制器,该模型将保证性能但不一定对系统的变化具有鲁棒性。然后我们将建立一个不确定的模型,如我们在最后一个视频中所做的那样,使用MU合成设计一个强大的控制器。我认为它会非常有趣,所以我希望你坚持下去。我是布莱恩,欢迎来到Matlab技术谈话。
当汽车撞到颠簸路面时,轮胎会吸收一些冲击力并压缩一点,然后迫使整个车轮向上。这个力通过悬架传递,导致车身弹起。对于悬架系统,我们通常感兴趣的是车辆在遇到颠簸时的性能以及乘坐的舒适度。
在主动悬架系统中,除了被动弹簧和阻尼机构,还有一个液压执行器,可以向系统注入力,以微调我们希望的性能和舒适度。
我们可以用以下模型近似该系统。我们将轮胎的弯曲作为弹簧,将轮胎组件作为质量通过弹簧/阻尼系统连接到主体质量,该弹簧/阻尼系统表示被动悬架部件,以及我们将作为输入力的液压致动器。
通过该工厂的简化模型,我们可以设计反馈控制器,K,这将采用一些测量,我们将调用V,并产生受控变量U。对于我们的系统,我们有一个受控变量,这是所要求的液体力,我们将使用两项测量:车身加速,AB和悬架行程,SD。悬架行程是压缩或扩大悬浮液的方式。所以,这是我们的反馈控制问题。现在,让我们进入我们如何设计这个控制器。就像我说的那样,我们将从H无限综合开始。
为了从概念上理解H∞和综合的作用,我们需要展开这个框图。除了控制器输入外,我们还有外部输入,这些输入来自于干扰、噪声甚至参考信号。我们称这些为w。
我们还需要考虑其他的输出。这些错误信号可以让我们了解系统的运行情况。这些输出可以是在真实系统中测量的信号,也可以是虚拟的,在某种意义上,我们只是暂时在模型中使用它们来设计控制器但在真实系统中我们不需要它们。我们称这些错误信号为z。
假设我们的工厂有一个我们关心的外部输入;当我们在路上遇到颠簸时产生的扰动。我们想用三个错误信号来定义性能:,身体加速度,悬挂行程,和要求的执行器力。
简而言之,这就是整个设计问题。我们想要一个控制器,当扰动进入系统时,使误差信号最小化。我们可以这样想,当汽车撞到凸起物时,会产生扰动,这种扰动会以某种方式通过轮胎,弹簧和减震器被放大汽车上下移动,拉伸和压缩悬挂。控制器可以通过驱动执行器来改变扰动对这些信号的影响。目标是驱动驱动器,使扰动的放大是最小的,并在过程中使用尽可能少的驱动器力。
这就是H∞合成为我们做的。这是一个优化过程,计算出在w和z之间使增益最小化的控制器。
但是,作为设计人员,您可能不希望在该优化问题中同样地待遇每个信号。因此,我们可以通过将加权因子添加到W和Z来设置各个信号的重要性来操纵模型内的信号。例如,如果我们对身体加速度不如执行者能量,我们可能会降低执行器加权因素。或者我们可能会增加权重,如果我们想要减少执行器,因为我们更关心延长其生命。我们可以开发多个控制器,每个控制器都有不同的重量,然后允许用户在不同的主动悬架模式之间切换,如性能,舒适度或两者之间的平衡。
好吧,现在我们有一个想到我们将如何接近它,设置和解决这个问题,你可以看到我们有一些设计选择。我们需要创建工厂的型号,我们需要确定控制器可以访问哪些测量信号以及它控制的哪些输入变量,我们需要选择外部输入和错误信号,然后最后我们必须设置每个信号加权的成本函数。一旦我们拥有那个,我们就基本上使用H无限综合来解决大量优化问题。在数学上,它可能有点棘手,但这个视频的点不是你用手做的。这是为了让您了解控制器的工作方式,以便您可以自己设置问题,让工具为您解决数学。
所以,让我们去Matlab,做到这一点。
在大多数情况下,这个脚本与MathWorks示例“主动悬架的鲁棒控制”(Robust Control of an Active Suspension)是一致的,但我在本视频中对它进行了一些修改。如果你想深入了解如何设置所有这些并自己练习的话,我建议你自己看看原来的例子。这看起来会是一堆令人困惑的代码,但我保证这个脚本的要点就是我们刚刚讲过的。
我们首先建立一个工厂模型,它是四分之一汽车悬架的弹簧/质量/阻尼代表。目前,我们假设这个模型是完美的,我们的动态中没有不确定性。我们稍后会回到这个假设。
这里的另一件事是我们将液压执行器为第一订单系统建模。这意味着控制器请求力,u,但实际力致动器生成fs,取决于其动态。
为了继续其余的设计设置,我们为每个外部输入和错误信号设置单独的加权函数。比如,W路的收益是0.07。但真正酷的是。权重函数可以与频率有关。在这种情况下,我们在执行器信号上放一个高通滤波器。这将惩罚高频控制器命令超过低频,因此给了我们一种限制控制带宽的方法。
这里有什么需要注意的是,我们正在为身体加速和悬架行程设置三组不同的重量。这是我们如何区分性能模式,舒适模式和平衡模式;前进,我们实际上要为三个不同的控制器解决,一个用于这些增益集的一个。
现在,我们将每个模块连接起来,创建一个单独的开环模型。该模型包括悬架动力学、执行器动力学和权重函数。这个开环函数叫做qcaric。
好吧,使用设计问题设置,我们可以使用H Infinity Synthesis命令构建控制器。这很简单。这是一个命令,我们通过它的开环功能并告诉它控制器可以访问的信号。但请记住,幕后幕后的情况是它通过找到控制器K来解决优化问题,这使得从外部输入到误差信号的能量传输。实际上,它已经这样做了三次,每个增益都是一个。
因此,我们剩下的是一个控制器,它接收两个测量信号,悬挂行程和身体加速度,并输出执行器命令u。让我们通过模拟5厘米路面颠簸的响应来看看这些控制器的行动。我用H∞控制器建立了一个闭环系统,在这里我运行了一个1秒的模拟四种不同的配置:不受控制的系统,舒适度,平衡和性能概况。看看这个。
绿线是5厘米的凹凸路面,蓝线是开环响应。这就是如果我们只有被动悬挂部件系统的表现。但是有了闭环控制器,我们就有了舒适度曲线,凹凸的地方阻尼很好就像你漂浮在云上,我们有了性能曲线,阻尼很快你就能真正感受到路面。平衡是介于两者之间的。
这一切都很好,除了这些控制器是用一个不完美的模型设计的。我们知道悬架系统比简单的弹簧/质量/阻尼系统要复杂得多;还有四个轮子相互作用,传感器里有噪音,驱动器的动态可能会变化,等等。所以,我们在这个系列中不断问自己的问题是这个系统如何处理变异?
让我们来看看不确定的执行器的影响。这里,我用一些频率相关的不确定性改变标称作动器动力学。然后,用这个不确定的执行器重建开环模型。一切都和之前一样,我们的工厂是用不确定性建模的。
让我们看看名义上的H无穷大控制器是如何通过模拟5厘米的路面颠簸为100个随机驱动器的变化。为了简单起见,我们只考虑平衡控制器。来看看。大多数驱动器组合似乎是稳定的,并产生合理的响应。然而,有些变化会产生不稳定的反应。所以,H∞控制器不是一个很好的解决方案如果执行器的动态能像我所建模的那样变化很大。
那么,我们该如何改进呢?我们可以回去调整权重的不同信号,试图想出一个控制器,在这些变化是稳定的,但是如果我们已经有了一个模型不确定系统,我们开发一个控制器,为什么不从一开始就考虑了这些不确定性?这就是合成的作用。
综合是H∞的扩展因为它仍然在解决相同的问题,除了它试图最小化整个不确定性空间的最坏情况增益。
它的方法是用一个叫做D-K迭代的迭代过程。这个过程的数学细节对这个视频来说不重要,但本质上它在每一步做的是运行H∞综合来找到一个标称控制器并检查它的鲁棒性。然后,基于系统中的不确定性对问题进行标度,并进行另一次H∞综合,检查其鲁棒性,再次标度。它一直这样做,直到健壮的性能停止改善为止。
鲁棒性能为峰值Mu值,一般情况下,该值越低,系统鲁棒性越好。您可以看到Peak Mu在每次迭代中都在减少,它是报告为最佳鲁棒性能的最终值。
因此,通过这种方式,我们知道无论不确定性的最坏情况组合是什么,它仍然至少有这个水平的稳健性。就像H∞一样,我们可以通过一个指令来进行综合我们将开环函数传递给它,并告诉它控制器可以访问哪个信号。它是完全一样的,只是在内部使用了不同的优化。这里,我运行它只是为了平衡增益集,集合2。
让我们看看平衡的H∞控制器和可比的Mu综合控制器之间的区别。这和我之前展示的响应是一样的,除了现在我们可以看到综合控制器是如何产生一个由于不确定性而变异性更小的响应的。车身位置和悬挂行程都非常一致,重要的是,稳定。乍一看,车身加速度似乎更糟糕,但如果我们仔细观察,大部分变化在这里也更一致,这些疯狂的加速度摆动只与最偏离名义驱动器的变化有关。所以,如果你用一个接近变化极限的执行器来建造悬挂系统,系统仍然是稳定的,但代价是有一个稍微粗糙的驾驶。也许最后是一个不错的选择。
所以,希望你们能看到思考系统中哪里有不确定性的价值,建模那个不确定性,然后用那个不确定性模型来开发一个鲁棒控制器。我认为这是值得尝试的做法,因为这将允许你调整一些值,并看看这将如何影响最终控制器设计。一种方法是查看描述中的MathWorks示例。
这就是我要讲的。
如果你不想错过任何未来的Tech Talk视频,别忘了订阅这个频道。如果你想看看我的频道,控制系统讲座,我也涵盖了更多的控制理论话题。感谢收看,我们下期节目再见。
你也可以从以下列表中选择一个网站:
选择中国网站(中文或英文)以获得最佳网站性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。