MPC与LQR详细分析比较

本文对比了Apollo中使用的PID、MPC和LQR控制器,着重分析了它们在状态方程、目标函数和求解方法上的异同,指出MPC和LQR在工作时域、最优解和适用场景上的差异,以及它们与频域分析的关系。MPC通过滚动优化处理非线性系统,而LQR更适合线性系统,两者在工程实践中有各自的应用场景。
摘要由CSDN通过智能技术生成

概要

        Apollo中用到了PID、MPC和LQR三种控制器,其中,MPC和LQR控制器在状态方程的形式、状态变量的形式、目标函数的形式等有诸多相似之处,因此结合自己目前了解到的信息,将两者进行一定的比较。

        MPC( Model predictive control, 模型预测控制 ) 和 LQR( Linear–quadratic regulator,线性二次调解器 ) 在状态方程、控制实现等方面,有很多相似之处,但也有很多不同之处,如工作时域、最优解等,基于各自的理论基础,从研究对象、状态方程、目标函数、求解方法等方面, 对MPC和LQR做简要对比分析。


研究对象

        LQR的研究对象是现代控制理论中以状态空间方程形式给出的线性系统。MPC的研究对象可以是线性系统,也可以是非线性系统,只不过为了某些需求,如时效性,计算的便捷,操控性等,一般会将非线性系统转换为线性系统进行计算。非线性系统的线性化可参考《运动学模型推导及其线性化和离散化》

        Apollo中,LQR和MPC控制器都选用的单车动力学模型作为研究对象,单车动力学模型为非线性系统,但LQR和MPC控制器的目的是为了求最优控制解,在具体的优化求解时,均通过线性化方法将状态方程转化为线性方程进行求解,所以,可以说apollo中LQR和MPC控制器的研究对象均为线性系统


状态方程

LQR的状态方程多以微分方程的形式给出,如:

是一个连续线性系统,在计算过程中需要转换为如公式3的离散线性系统,计算机能够处理的数据都是离散化的。


MPC的状态方程可以为线性系统,可以为非线性系统,非线性系统形如下:

但LQR和MPC在计算求解时基本都是基于离散线性方程计算的。公式1可以很方便的转化为公式3的形式。


工作时域

        LQR在一个固定的时域上求解,且一个时域内只有一个最优解,而MPC在一个逐渐消减的时域内( in a receding time window )求解最优解,且最优解经常更新
可以结合MPC的滚动优化,以及图1进行理解:

        针对同一工作时域[t,t+N],LQR在该时域中,有唯一最优控制解u*(t),而MPC仅在t时刻有最优解u*(t),但它会计算出一个控制序列U(t) ,并仅将序列的第一个值u*(t)作为控制量输出给控制系统,然后在下一采样时间结合车辆当前状况求取下一个最优控制解u*(t+1),这就是MPC所谓的滚动优化

        这么做的目的是为了使控制效果在一定时间内可期,并且能根据控制效果尽早调整控制变量,使实际状态更切合期望状态。

        此外,LQR的工作时域可以拓展到无限大,即可以求取无限时域的最优控制解。而MPC只针对有限时域。

对时域和频域基本理解补充

关于时域和频域的了解:

时域(时间域-time domain)
——自变量是时间,即横轴是时间,纵轴是信号的变化(振幅)。其动态信号x(t)是描述信号在不同时刻取值的函数。

频域(频率域- frequency domain)
——自变量是频率,即横轴是频率,纵轴是该频率信号的幅度(振幅),就是指的信号电压大小,也就是通常说的频谱图。

分析
时域分析函数的参数是时间t,也就是y=f(t),
频域分析时,参数是w,也就是y=F(w)两者之间可以互相转化。时域函数通过傅立叶或者拉普拉斯变换就变成了频域函数。


频域和时域的关系

​时域(Time domain) :分析信号参数随时间变化过程。时域是信号在时间轴随时间变化的总体概括。在时域中,将信号的所有频率分量相加并显示。频谱分析仪针对频域。

​频域(Frequency domain):分析信号包含的频率成分。各频率分量的频率和功率参数。在频域中,复数信号(即,由一个以上频率组成的信号)被分离成它们的频率分量,并显示每个频率的电平。示波器用来看时域内容。

因为信号不仅随时间变化,还与频率、相位等信息有关,这就需要进一步分析信号的频率结构,并在频率域中对信号进行描述。动态信号从时间域变换到频率域主要通过傅立叶级数和傅立叶变换等来实现。


 自动控制系统的分析有两种主要的框架:时域分析和频域分析,这两种方法只是观察系统行为的不同角度。

①时域分析:主要研究系统对单位阶跃、单位冲激等时间函数的响应,求解系统的时间响应并分析系统的稳定性、快速性、超调等性能指标。一般方法包括微分方程求解、根轨迹法、极点零点法等。

②频域分析:主要研究系统在各个频率下的响应特性,如振幅特性和相位特性等,并用来分析和设计控制系统的稳定性、鲁棒性。常用的方法有频率响应法、Nyquist稳定判据、Bode图法等。

       为什么要进行这两种分析,主要是因为它们各自关注了系统的不同特性:时域分析关注系统响应随时间如何变化、系统能否在有限时间内达到稳定状态,频域分析关注系统对不同频率信号的响应特性,使我们能深入理解系统对输入信号的灵敏度以及在不同频率下的系统性能。通过时域和频域分析,可以全面了解系统的动态行为,为系统的设计和调整提供依据。


目标函数

优化求解问题一般离不开目标函数的设计。
LQR的目标函数的一般形式为:

从形式上可以看出,LQR的目标函数为积分形式MPC的目标函数为求和形式,但其实都是对代价的累计。两者第一部分均为终端代价函数,当系统对终端状态要求极严的情况下才添加,一般情况下可省略


求解方法

        正如工作时域所述,针对同一工作时域,LQR有唯一最优控制解,也就是在该控制周期内,LQR只进行一次计算。而MPC滚动优化的思想,使其给出该时域内的一组控制序列对应不同的采样时刻(采样周期和控制周期不一定相同),但是只将该序列的第一个值输出给被控系统,作为该时刻的最优控制解。因此,对于工作时域[ t , t + N ] ,LQR只有唯一解,MPC可能有N个解。

        最优控制解的求取多基于目标函数进行,取线性约束下的目标函数的极值为最优控制解。对于系统为线性,目标函数为状态变量和控制变量的二次型函数的线性二次性问题,一般线性二次性问题的最优解具有统一的解析表达式。

        apollo中的MPC将优化问题转化为二次规划问题,利用二次规划求解器进行求解。横向控制中用的是LQR调节器,它通过假设控制量u ( t ) 不受约束,利用变分法求解。

        此外,LQR对整个时域进行优化求解,且求解过程中假设控制量不受约束,但是实际情况下,控制量是有约束的。而MPC通常在比整个时域更小的时间窗口中解决优化问题,因此可能获得次优解,且对线性不作任何假设,它能够处理硬约束以及非线性系统偏离其线性化工作点的迁移,这两者都是LQR的缺点。

优缺点比较

LQR缺点:

  • LQR不滚动优化,预测时间段内的控制序列只求解一次,没有考虑实际与规划的误差。
  • LQR求解整个预测时域内的控制序列,而MPC可在更小的时间窗口中求解优化问题,获得次优解,可大大提升求解速度。
  • 无约束,假设对控制量无约束,实际控制量(如转角或加速度)必须有约束限制,否则实际工程应用中会很危险。

MPC缺点:

  • 计算量大,实时性差,对于算力要求高,硬件成本较高
  • 需要较好的处理器和较大的内存,因为需要大量的在线优化,存储大量的变量

由于两者控制效果相差不大,工程中HWA,HWP,NOA等功能的横向控制中多以LQR控制算法为主。

补充LQR MPC PID三者之间的特点和适用场景对比

补充参考

PID控制算法、LQR控制算法和MPC控制算法都是控制系统中常用的控制算法,它们各自有着独特的原理、优缺点、适用场景以及相互联系。

首先,PID控制算法是一种最基本的控制算法。它通过测量系统输出与期望输出之间的误差来调整控制器的输出。PID控制器的优点是结构简单、易于实现和调节;缺点是对于非线性系统和多变量系统的控制效果较差。

其次,LQR控制算法是一种基于状态方程的控制算法,它可以在固定的时间窗口(horizon)中进行优化。LQR控制器的优点是能够很好地解决线性系统最优化问题;缺点是对于非线性系统和多变量系统的控制效果较差。

最后,MPC控制算法是一种Receding Horizon Control,滚动时域控制的思想,能很好的描述线性/非线性模型,输入/输出/状态约束等问题。MPC控制器的优点是能够处理多个输入和输出约束,同时也能够处理非线性系统;缺点是计算量较大。

这三种控制算法的适用场景各有不同。例如,PID控制算法适用于简单的系统,如温度控制、电机速度控制等;LQR控制算法适用于需要精确控制的系统,如飞机姿态控制、船舶舵机控制等;而MPC控制算法则适用于复杂的系统,如汽车自动驾驶、智能电网等  。

关于这三种控制算法的相互联系,可以这样理解:LQR和MPC都是更高级的控制算法,它们都是在PID的基础上发展起来的。LQR是基于状态方程的最优化方法,而MPC则是基于滚动时域的最优化方法。在实际应用中,根据系统的具体情况和需求,可以选择合适的控制算法进行设计和优化  。

注意:本文仅作为个人学习总结,详细学习请参考相关博客。

参考博客:

Apollo代码学习(七)—MPC与LQR比较_lqr和mpc的区别-CSDN博客

MPC与LQR的详细对比分析_lqr和mpc的区别-CSDN博客

频域和时域的关系 - 知乎

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值