精华内容
下载资源
问答
  • 控制理论】滑模控制最强解析

    万次阅读 多人点赞 2019-05-16 21:01:20
    滑模控制是一种相当简单而且控制性能优越的控制方法,但是绝大多数的工厂在做过程控制时还是只考虑PID控制,我觉得有必要写一篇文章详细的解释一下它的工作原理。 它的控制效果优越体现在哪里呢?主要是两点:1、...

    更新,在知乎创建了一个专栏,主要包括一些控制理论和机器人控制方面的知识。

    https://zhuanlan.zhihu.com/p/78549442


    滑模控制是一种相当简单而且控制性能优越的控制方法,但是绝大多数的工厂在做过程控制时还是只考虑PID控制,我觉得有必要写一篇文章详细的解释一下它的工作原理。

    它的控制效果优越体现在哪里呢?主要是两点:1、滑动模态可以进行设计,调节的参数少,响应速度快。2、对扰动不灵敏。什么是干扰?如果你的机器好端端地在工作,突然来了一个熊孩子拿起一钉锤就是一顿敲;或者工厂附近有高铁,每隔一段时间地面就要抖两下。滑模控制对扰动有很强的抑制能力,这对于在复杂环境工作下的机器来说非常友好。

    滑模控制本质上是非线性控制的一种,简单的说,它的非线性表现为控制的不连续性,即系统的“结构”不固定,可以在动态过程中根据系统当前的状态有目的地不断变化,迫使系统按照预定“滑动模态”的状态轨迹运动。

     

    针对一个真实的系统来解释,现在假设光滑的平面上有一个小木块,它在坐标轴X=2处,它存在一个向坐标轴远离的速度\dot{x}=2,现在的问题就是如何设计一个控制器让它最后能停在原点。

                                                

    1、根据上面的描述,可以写出这个小木块的状态方程:

                                                                                       

    x1,x2分别代表木块的位置和速度,u代表控制器的输出,控制目标很明确,最终要让x_1=0,x_2=0。用系统框图来表示为:

                       

    2、设计滑模面

                                                                             

    这里可能有人就要问了,滑模面是个什么东西?凭什么要写成这种形式而不是其他形式?

    之前说过了控制器的目的是为了使得x_1=0,x_2=0,那如果s=0,会有什么结果呢?

    可以看出状态量最终都会趋于零,而且是以指数速度趋近,指数趋近速度什么意思,也就是说当t=1/c时,趋近到零的这个过程它已经完成了63.2%,当t=3/c时,它已经完成了95.021%。调节c的大小可以调节状态趋近于零的速度。c越大,速度也就越快。所以如果满足s=cx_1+x_2=0,那么系统的状态将沿着滑模面趋于零,(s=0称之为滑模面)。用相平面来表示这个指数趋近的过程为,沿着箭头的方向移动到原点的这个过程就是设计滑模面要实现的效果。                                     

    3、设计趋近律,寻找s与控制u之间的关系

    上面说到如果s=0状态变量最终会趋于零,可是如何保证s=0呢?这就是控制率u所要实现的内容了。

    s=cx_1+x_2,在这个方程里面并没有u,我们想到可能和u有关系,果然:

                                                         

    趋近律就是指的\dot{x},趋近律一般有如下几种设计:

                                                       

    根据以上的趋近律,可以求出控制器u的表达式,对于\dot{s}=-\varepsilon sgn(s),\varepsilon >0来说,u=-cx_2-\varepsilon sgn(s),对木块施加该u的控制,那么最终木块会稳定在原点。

    再回来解释为什么趋近律\dot{s}这么设计会保证s=0。

    在控制原理中,用Lyapunov函数来判断系统的稳定性,对于系统状态方程\dot{s}=cx_2+u(目标已经变成s=0,因此现在写成s的状态方程),对于平衡点s,如果存在一个连续函数V满足

    那么系统将在平衡点s=0处稳定,即\lim_{t\rightarrow \infty}s=0

    V(s,t)=1/2s^2,很明显满足第一个条件,第二个条件也满足。满足Lyapunov函数的条件,s最终会稳定滑模面,也就是s=0。

    讲到这里,我们可以稍微总结一下滑模控制的设计步骤。首先根据被控对象的状态方程设计滑模面s=CX,状态一旦到达滑模面,将以指数趋近方式达到稳定状态。然后设计趋近律\dot{s}求出控制器的表达,李雅普诺夫函数作为稳定性的保证,即保证s=0可达,(相平面中的其他点能到达滑模面)。

     


    细心的朋友可能发现了一个问题,Lyapunov函数的两个条件能保证\lim_{t\rightarrow \infty}s=0,但是这个几乎没有什么用处。为什么这么说呢,因为它对到达的时间没有任何的要求,t=2s时s=0和t=200s时s=0都满足Lyapunov函数的要求,万一真的出现那种长时间才到达滑模面的情况,在实际情况下,是没有意义的。

    对Lyapunov函数的第二个条件做修改,让它能实现有限时间达到稳定点。

    对于改进后的第二个条件,分离变量然后积分,假设积分时间为t。

                          

                                                                                     \int _0^t \frac{\dot V}{V^{1/2}}dt\leq -\alpha t

    得到:

                                                              

    根据这个不等式可以看出V将在有限时间tr内到稳定点,\alpha越大,到达稳定点的时间越快。

                                                                     

    因为Lyapunov条件的改变,控制器u也要相应做出改变:

    只有满足才能实现有限时间到达滑模面。

     

     


    咱们继续分析,因为以上的讨论都还没有涉及干扰项d,现在将干扰加入系统状态方程,看看滑模控制是怎么做到对干扰不敏感的,这是真的牛。

    加入干扰项后,有新的状态方程:

                                                                              

    当然,这对滑模面的设计没有影响,滑模面还是,变化的是趋近律\dot{s},控制率u还是保持上面的形式

    为了满足Lyapunov函数,有:

                                                    

    上式中的L表示干扰的上界,

    对比\dot{V}的条件,只有当时,Lyapunov函数既满足有限时间收敛又负定。因此,系统仍按照先滑动到滑模面,再沿滑模面做指数趋近运动。干扰没有对系统造成影响。

     

    因为几天前老师给我开了小灶,花了几个小时专门讲滑模,所以心血来潮总结了这一篇文章,用viso画图、敲公式尽量想把这篇博客写得好一点,结果断断续续花了一天的时就按才搞完,心累。另外,CSDN的编辑器是真的难用

     

    展开全文
  • 基于模型预测控制(MPC)的车道保持控制实现方法

    万次阅读 多人点赞 2019-04-10 19:05:44
    车辆保持的目的是通过检测到车辆与道路中心线的横向偏差和横摆角偏差来控制车辆的方向盘的转角,最终使车辆行驶在道路中心线上。 MATLAB 2018b中有一个关于车道保持的案例,本次设计模型控制算法部分与案例相同,...

         车辆保持的目的是通过检测到车辆与道路中心线的横向偏差和横摆角偏差来控制车辆的方向盘的转角,最终使车辆行驶在道路中心线上。

           MATLAB 2018b中有一个关于车道保持的案例,本次设计模型控制算法部分与案例相同,但是车辆对象采用Carsim中的车辆模型。整个基于模型预测控制的车道保持系统simulink仿真框架如下所示

    图 1

           在实际的车辆保持控制算法中可用惯性测量单元IMU测量纵向速度 、横向速度、横向加速度、横摆角速度 等参数。可通过摄像头获取横向偏差,也可以通过摄像头预瞄的点计算出道路的曲率。

         车辆的动力学模型

           MATLAB 2018b中关于车道保持的案例采用的模型预测控制实现车辆的横向控制,其动力学模型及其推导过程如下

    最原始的状态变量为横向距离变化率和横摆角速度变化率,输入变量车辆的前轮偏角为

       (1)

    将上述公式拓展输出变量为,输入变量为新的状态空间方程为

    (2)

     

      (3)

    将公式(2)带入公式(3)

    选取的状态变量 ,输入变量为

     (4)

    注:公式(2)和公式(4)将将期望横摆角的变化率作为输入,实际上期望横摆角的变化率是一个扰动量,在MATLAB2018中输入量和扰动量放在一起,这一点在下一节中也会提到。

    MPC的实现

           模型预测控制主要包含三大部分:模型预测、滚动优化和反馈矫正。常规的模型预测控制的框架如下所示。

     

    图 2

    模型预测

    公式(4)为对车辆进行模型预测控制需要的连续车辆横向动力学模型。为了在计算机中实现需要对公式(4)的模型进行离散化,在MATLAB 2018b的getDiscrete函数中采用Simpson's rule 计算,,在实际车辆控制中为了实现的方便性建议中采用双积分变换求解具体实现如下所示

           在公式(4)的状态空间方程中,对应的横向偏差及变化率,横摆角偏差及变化率的计算如下所示。

    期望的横摆角速度 ,车辆实际的偏航角速度通过IMU测量得到。从而得到横摆角速度偏差。横摆角偏差通过横摆角速度偏差求积分得到。

    横向偏差的变化率,横向偏差 通过横向偏差的变化率求积分得到。横向偏差和横摆角的偏差如图3所示。实际这么求解横向偏差和偏航角偏差是否有问题?

    图3

    根据道路中心线的坐标计算出道路中心线曲率的时间序列,根据当前的时间和预瞄的长度,从上述时间序列中取出当前的曲率和预瞄时间内需要的曲率。在Curvature Previewer模块中实现上述功能。

           航向角偏差通过本车的航向角、纵向速度、曲率计算得到。期望的航向角计算的方法,期望的航向角为在期望位置的切线与X轴之间的夹角。

           如果是双移线工况

    可以通过上述公式直接计算出期望的航向角。如果能够事先获得参考轨迹的Xref,Yref坐标则可以通过另外一种方法计算期望航向角,具体如下所示。

    DX = gradient(Xref,Ts);

    DY = gradient(Yref,Ts);

    head_angle = atan2(DY,DX);

           Matlab中对应状态空间方程的表示形式,控制量、可测量的扰动,以及不可测量的扰动对应矩阵都是放在B中。

      

    在MPC控制作为模型预测的模型中,期望的航向角速度时作为测量扰动。

           获得离散后的车辆状态空间模型后,通过不断的迭代就可以得到模型的预测输出。

           在MATLAB 2018b的案例中获得模型预测控制需要的状态空间模型在lkablock_utilGetDiscreteModelForMPC函数实现。

           [mpcobj,UseExternalModel,DataType,NumEgoStates,hasLag] = ...

    lkablock_MaskInitFcn(gcb,EgoModelMatrixA,EgoModelMatrixB,EgoModelMatrixC,...

        MaxSteering,MinSteering,...

        InitialLongVel,...

        PredictionHorizon,Ts,maxiter,ControllerBehavior,...    VehicleMass,VehicleYawInertia,LengthToFront,LengthToRear,FrontTireStiffness,RearTireStiffness,TransportLag);

           MPC控制是采用simulink中的Model Predictive Control Toolbox工具箱中的Adaptive MPC Controller模块来实现的。

           控制相关的参数如下所示

    名称

    Ts

    0.1s

    m

    1575kg

    Iz

    2875kg.m2

    If

    1.2m

    Ir

    1.6m

    Cf

    68623 N/rad

    Cr

    533911 N/rad

    Np

    10

    Nu

    2

    R1

    0

    R2

    0.1/alpha

    Q

    [1 0.1]/alpha

    Umax

    0.5rad

    Umin

    -0.5rad

     

    滚动优化

    得到车辆模型在预测时域内的预测输出后,建立模型预测输出与期望输出之间的偏差和控制量及其变化率的二次型目标函数,具体如下所示。通过二次规划的方法可以求解出最优的控制量即前轮偏角。由于期望的输出是横向偏差和横摆角偏差,所以期望的输出值为0。

           通过在每个控制周期不断地求解最优的控制量,形成滚动优化过程。

    反馈矫正

           反馈矫正是通过比较模型输出与实际对象输出之间的偏差来修正模型的预测输出,这一点在目前的MATLAB 的车道保持案例中暂未体现出来。

    MPC 控制参数调节

    MPC的控制参数通过Mask->View base mask->Initialization中调用lkablock_MaskInitFcn函数实现的。权重参数、预测时域、控制时域等在lkablock_MaskInitFcn函数中的子函数generateMPC中设置。

    整个权重参数的调节是通过一个基本参数beta来调节,其值在0-1之间可调,具体计算如下所示。

    weightrange = 50;

          alpha =1 /weightrange^(beta-0.5);

    控制量变化率的权重为0.1*alpha, 输出偏差的权重为[1 0.1]/Alpha。

    当beta往1变大时,alpha变小,控制量变化率的权重系数变小,输出偏差的权重系数变大,控制量变化率变大,控制很激进。当beta往0变小时,alpha变大,控制量变化率的权重系数变大,输出偏差的权重系数变小,控制量变化率变小,控制相对来说变得缓慢。详细的参数调节对应的MATLAB程序如下所示。

    % Specify the MPC signal types in the plant.

    sys = setmpcsignals(sys,'MV',1,'MD',2);

    %% MPC Design

    mpc1 = mpc(sys,Ts);

    % Specify the prediction horizon.

    mpc1.PredictionHorizon = psteps;

    % Specify the control horizon.

    mpc1.ControlHorizon = round(max(0.1*mpc1.PredictionHorizon,2)); //控制时域

    % Specify MV constraints: max/min acceleraion.

    mpc1.MV.Min = umin;

    mpc1.MV.Max = umax;

    % Specify scale factors based on the operating ranges of the variables.

    mpc1.MV.ScaleFactor = umax-umin; % range of the steering angle

    mpc1.DV.ScaleFactor = 0.01; % scale factor of road yaw angle rate

    mpc1.OV(1).ScaleFactor = 0.5; % scale factor of lateral deviation w.r.t road

    mpc1.OV(2).ScaleFactor = 0.1; % scale factor of relative yaw angle w.r.t. road

    % Specify weights.

    alpha = getWeightParam(weightratio); % relating slider on mask to weights in MPC design

    mpc1.Weights.MVRate = 0.1*alpha;

    mpc1.Weights.OV = [1 0.1]/alpha; % tighter control on lateral deviation over relative yaw angle

    ScaleFactor 的作用是在优化的目标函数中将控制量和输出量统一成一样的范围,方便调节输出权重和控制权重。

     

    总结

           本文介绍MATLAB的基于MPC的车道保持控制案例的实现过程,并将实际的车辆对象通过Carsim中的车辆仿真对象进行替代,最后重点介绍了MATLAB中关于模型预测控制的参数调节方法。

    展开全文
  • Git 实用技巧

    千人学习 2019-11-24 18:20:42
    为了让同学们可以利用碎片化时间来灵活学习,在教程文章中大程度降低了上下文的依赖,让大家可以在工作之余进行学习与实战,并同时掌握里面涉及的Git不常见操作的相关知识,理解Git工具在工作遇到的问题解决思路和...
  • MPC控制笔记(一)

    万次阅读 多人点赞 2019-02-19 23:22:17
    转自 我的博客 笔记参考1:Understanding Model Predictive Control(Youtube 带自动生成字幕) 笔记参考2:Understanding Model ...MPC(Model Predict Control)是一种反馈控制(feedback control)算法, 使用模型来预...

    转自 我的博客

    笔记参考1:Understanding Model Predictive Control(Youtube 带自动生成字幕)
    笔记参考2:Understanding Model Predictive Control(B站 生肉)

    一、什么是MPC模型预测控制

    MPC(Model Predict Control)是一种反馈控制(feedback control)算法, 使用模型来预测过程的未来输出。

    举例:
    [场景] 车道保持
    [已知模型] 车辆模型,比如速度控制, 转向控制对应的偏航量
    [预测] 根据已知模型和所选的控制策略(action),进行轨迹预测
    [优化] 通过优化控制策略,来尽可能的拟合预测的轨迹。

    如下图所示为一个MIMO系统u1,u2输入与y1,y2输出相互影响。如果使用PID控制的话,每一个子系统单独设计一个PID控制器,两个相互影响的子系统没有任何的交联,使得系统难以设计,如果像图二一样设计一个较大的系统,则参数较多难以实现,而使用MPC控制器的话可以较好的解决两种问题,综合相互间的影响来设计参数。
    MIMO

    MIMO BIG
    MPC控制
    MIMO MPC

    此外MPC控制还可以方便的支持各种约束条件,具备一定的预测能力(有点像前馈feedforward控制)。

    二、MPC的特点

    综合上述,总结一下MPC的特点:

    • 支持MIMO系统,便于构建输入输出间的相互影响参数
    • 支持方便添加约束条件
    • 具有预测能力、
    • 需要较好的处理器和较大的内存,因为需要大量的在线优化,存储大量的变量

    Onlineopt

    三、MPC参数选择

    选择一个好的参数不仅影响MPC控制的性能,而且还会影响到MPC每一个timestep内进行在线优化的计算复杂度。这里将会给出关于控制器采样周期、预测及控制范围(prediction and control)、约束及权重。

    采样周期的选择

    采样周期过大,则系统反应过慢导致难以及时进行修正控制,而采样周期过小,则会导致系统产生大量的在线优化计算,给系统带来较大的开销。因而建议采样周期设计采用开环响应时间(10~90%上升时间)的十分之一或二十分之一
    timestep

    预测范围(prediction horizon)的选择

    预测范围指的是一次优化后预测未来输出的时间步的个数。建议范围:在开环响应时间内采样20-30个样本的范围
    predhorizon

    控制范围(control horizon)的选择

    如下图 [k, k+m]范围为控制范围,之后的红色部分称为 held constant,其中控制范围是要通过优化器来进行优化的参数动作。
    ctrlhorizon

    过小的控制范围,可能无法做到较好的控制,而较大的控制范围,比如与预测范围相等,则会导致只有前一部分的控制范围才会有较好的效果,而后一部分的控制范围则收效甚微,而且将带来大量的计算开销。
    consrtgr

    建议控制范围应该在预测范围的1020%之间,最小值为23个timestep时间步
    sujest

    约束

    对于约束,一般分为Hard约束和Soft约束,Hard约束是不可违背必须遵守的,在控制系统中,输入输出都可能会有约束限制,但是在设计时不建议将输入输出都给予Hard约束,因为这两部的约束有可能是有重叠的,导致优化器会产生不可行解。
    建议输出采用较小容忍度的Soft约束,而输入的话建议输入和输入参数变化率二者之间不要同时为Hard约束,可以一个Hard一个Soft。
    costraint

    四、Linear MPC (Adaptive MPC 与 Gain-Scheduled MPC)

    Linear MPC适用于:

    对于非线性系统而言,需要在不同的operating point处进行线性化处理如下图。
    op

    Adaptive MPC

    在 Adaptive MPC中,当operating condition发生变化的时候,需要进行一次近似线性化计算,在每个时间步中,使用其近似线性模型来更新内部的平台模型(plant model,比如飞控模型,自行车模型等)。
    在 Adaptive MPC中,在不同的operating point条件下,其优化问题的结构保持不变,即状态数量,约束数量不会随着operating condition而改变。
    adaptivempc

    Gain-Scheduled MPC

    在 Gain-Scheduled MPC中,在不同的operating point条件下,其优化问题的结构会发生变化,需要为每一个operating point构建一个MPC控制器,且相互之间独立,其状态数量约束数量也可能不同。
    在 Gain-Scheduled MPC模式下,需要设计调度算法来切换不同的MPC模型。
    GMPC

    二者选型

    [Adaptive MPC] 当能够构建平台(如飞行器,自动车等)的runtime线性模型,且在不同的operating point下优化问题的结构不变。

    [Gain-Scheduled MPC] 当能够构建平台(如飞行器,自动车等)的runtime线性模型,且在不同的operating point下优化问题的结构发生变化。

    五、Non-Linear MPC (Adaptive MPC 与 Gain-Scheduled MPC)

    Non-Linear MPC适用于(相对强大,能够提供更准确的预测能力,与决策支持,但是非线性优化的计算开销较大)

    展开全文
  • 基于车辆模型的横向控制方法

    万次阅读 多人点赞 2020-03-24 14:37:05
    无人驾驶车辆基于模型横向控制、车辆运动学模型、纯跟踪、后轮反馈、前轮反馈控制算法;车辆动力学模型、车辆线性二自由度动力学模型、车辆路径跟踪偏差状态方程的构建、LQR 横向控制算法的求解


    1. 简介


    1.1. 无人驾驶车辆

    大到类似百度apollo无人车,无人配送车
    小到扫地机器人,其实都是无人驾驶车辆
    都是一个复杂的软硬件结合系统
    其软件算法模块主要包含:感知、定位、轨迹预测、行为决策、运动规划 及 反馈控制

    在这里介绍和补充的是 反馈控制部分
    部分软件实现可参考:个人开源项目 path-following-control


    1.2. 横向控制和纵向控制

    反馈控制是无人车 最底层 的软件算法模块,包括:

    • 横向控制,主要用于车辆方向盘的控制
    • 纵向控制,主要用于车辆油门、刹车的控制

    两者协同工作以 使无人车按照预定的参考轨迹行驶

    其中,横向控制根据上层运动规划输出的 路径曲率 等信息进行跟踪控制,以减少跟踪误差
    同时保证车辆行驶的 稳定性舒适性


    1.3. 横向控制

    根据横向控制使用车辆模型的不同,可以将其分为两种类型,包括:

    • 无模型 的横向控制方法
    • 基于模型 的横向控制方法

    1.3.1. 无模型横向控制

    无模型的横向控制即传统的 PID 控制算法
    将车辆当前的 路径跟踪偏差 作为输入量
    对跟踪偏差进行比例(Proportion)、积分(Integration)和微分(Differentiation)控制得到转向控制量
    具体原理可以参考:增量式PID控制的理解和应用

    但该算法由于没有考虑车辆本身的特性
    因此算法对外界干扰的鲁棒性较差,无法满足车辆在高速行驶过程中的有效控制


    1.3.2. 基于模型横向控制

    而其中基于模型的方法又可分为:

    • 基于车辆 运动学模型 的横向控制方法
    • 基于车辆 动力学模型 的横向控制方法

    因此,将主要介绍包括:

    • 基于车辆运动学模型的纯跟踪控制(Pure Pursuit)算法
    • 后轮反馈控制(Rear wheel feedback)
    • 前轮反馈控制(Front wheel feedback)算法
    • 基于车辆动力学模型的线性二次型调节器(Linear Quadratic Regulator,LQR)控制算法

    2. 基于车辆运动学模型的控制方法


    2.1. 车辆运动学模型

    基于车辆运动学模型的控制方法主要考虑了 车辆的运动学约束对车辆控制的影响

    首先了解一下常见的车辆运动学模型:
    在这里插入图片描述

    平时见到的汽车属于 阿克曼转向,通常可以简化为两轮的自行车模型

    在这里插入图片描述

    其假设车辆的前后轮均为刚体,只能沿着车轮滚动的方向前进,无侧向滑动

    由上述假设可得自行车模型的运动微分方程如下式:

    在这里插入图片描述

    角速度和角速度的关系:v=ωr,即 ω=v/r,因此这里 ψ ˙ \dot{\psi} ψ˙ = v * tan( δ δ δ) / L
    其他的比较简单,就不加以说明


    2.2. 纯跟踪控制算法

    纯跟踪控制算法(Pure Pursuit)是一种典型的横向控制方法
    最早由 R. Wallace 在1985年提出,该方法对外界的 鲁棒性 较好

    该算法的思想:
    基于当前车辆 后轮中心 位置,在参考路径上向 l l ld (自定义)的距离匹配一个预瞄点
    假设车辆后轮中心点可以按照一定的转弯半径𝑅 行驶抵达该预瞄点
    然后根据 预瞄距离 l l ld , 转弯半径𝑅,车辆坐标系下预瞄点的朝向角𝛼 之间的几何关系来 确定前轮转角

    在这里插入图片描述

    弧的弧度为2𝛼是因为这个三角形是等腰三角形,边长为𝑅,而其中一个角为 π π π/2-𝛼
    所以这个弧度为 π π π -( π π π / 2- 𝛼)* 2 = 2𝛼

    如图所示,弧线为经过车辆后轮中心以及预瞄点的圆弧
    圆弧的半径𝑅 与 朝向角𝛼和 预瞄距离 l l ld 有关,其实也就是与( x x xg y y yg)有关

    作一条辅助线d,垂直于𝑅,则:
    在这里插入图片描述
    根据图中的几何关系,𝑅, 𝛼, 与 l l ld 的关系为:

    在这里插入图片描述
    再作一条辅助线,垂直于 l l ld,则:
    在这里插入图片描述
    根据图中的几何关系,𝑅, 𝛼, 与 l l ld 的关系为:

    在这里插入图片描述
    根据运动学方程(2-1) 中 ψ ˙ \dot{\psi} ψ˙ = v ∗ t a n v * tan vtan( δ δ δ) / L / L /L
    t a n tan tan( δ δ δ) = ψ ˙ \dot{\psi} ψ˙ ∗ L / v * L / v L/v,而在这里 ψ ˙ \dot{\psi} ψ˙ / v / v /v = 𝑅,即:

    在这里插入图片描述
    再把式(2-4)带入(2-5)可得前轮转角为:
    在这里插入图片描述


    2.3. 后轮反馈控制算法

    后轮反馈式(Rear wheel feedback)是利用 后轮中心路径跟踪偏差量 来进行转向控制量计算的方法

    在这里插入图片描述

    根据运动学方程(2-1)及车辆后轮与参考路径的几何关系
    可推导出参考路径坐标系 (𝑠, 𝑙)

    Ferent 坐标系下 (𝑠, 𝑒, ψ \psi ψ𝑒) 的变化率为:

    在这里插入图片描述

    Frenet坐标系使用道路的中心线作为参考线,使用参考线的 切线向量法线向量 建立坐标系
    那么基于参考线的位置,就可以使用 纵向距离横向距离 来描述任意位置
    同时纵向和横向的速度、加速度、加加速度等信息也更便于计算

    对于二次连续可导的参考线,需要设计车身横摆角速度𝜔保证在李亚普洛夫方程下局部渐进收敛:
    在这里插入图片描述
    李亚普洛夫稳定(一个分析系统的稳定性方法)用数学的语言描述为:
    可控可微分的状态方程 x ˙ \dot{x} x˙ = f ( x , u ) f(x,u) f(x,u)

    在给定的参考轨 x x xref ( t ) (t) (t) 下,存在 ∀ \forall ε>0, t t t1< t t t2,𝛽>0,满足下列条件:
    :

    在这里插入图片描述
    对于李亚普洛夫稳定也分为渐进稳定和指数稳定

    李亚普洛夫稳定性理论是从能量的观点出发的
    系统的能量随着时间的推移不断变化(增加or减少),在有限时间内,系统趋于稳定,能量不再变化
    此时,系统的k+1时刻的能量减去k时刻的能量是<0的,即V(k+1)-V(k)<0,V代表能量函数

    渐进稳定指对于时变系统,𝛽在条件(1)下独立于时间 t t t1
    指数稳定指收敛率是以指数下降

    对于后轮反馈式算法,为了保证车辆的李亚普洛夫稳定性,车身横摆角速度𝜔可表示为式(2-10)

    在这里插入图片描述

    其中, 𝑘ψ 为横摆角偏差反馈控制增益, 𝑘e 为横向位置偏差反馈控制增益

    因此,根据运动学方程(2-1),可得到前轮转角𝛿为:
    在这里插入图片描述


    2.4. 前轮反馈控制算法

    前轮反馈控制(Front wheel feedback)又称 Stanley 控制
    其核心思想是利用 前轮中心路径跟踪偏差量 对方向盘转向控制量进行计算

    在这里插入图片描述

    前轮中心横向位置跟踪偏差𝑒 的变化率为:

    在这里插入图片描述

    式(2-12)中可以看出前轮横向位置偏差的变化率 e ˙ \dot{e} e˙ 可以直接通过 前轮转角𝛿 进行控制

    当定义 e ˙ \dot{e} e˙ = − k = -k =k𝑒 后,可以保证前轮横向位置偏差𝑒 满足 李亚普洛夫的指数化收敛,即:

    在这里插入图片描述

    李亚普洛夫指数:在相空间中相互靠近的两条轨线随着时间的推移,按指数分离或聚合的平均变化速率

    关于 a r c s i n arcsin arcsin 函数:
    在这里插入图片描述
    那么对于式(2-13)来说,当 ∣ − k e / v |-ke/v ke/vf ∣ > 1 |>1 >1 时,函数无解

    对于有限域内的指数收敛可以放宽到局部指数收敛,从而将前轮转角𝛿 定义为:

    在这里插入图片描述

    Stanley 前轮反馈控制算法 在变曲率路径且路径连续可导 的条件下,可以满足局部指数收敛特性
    但也可以看出该算法不适用于倒车的场景,导致对于自动泊车等工况不适用


    3. 基于车辆动力学模型的横向控制

    基于车辆运动学模型的方法忽略了车辆的动力学特性
    因此在 车速过快 或者 曲率变化率过大 的情况下该算法无法满足车辆的 稳定性 控制要求

    这里介绍一种典型的基于车辆动力学模型的横向控制方法,包括

    • 车辆线性二自由度动力学模型的构建
    • 车辆路径跟踪偏差状态方程的构建
    • LQR 横向控制算法的求解

    3.1. 车辆线性二自由度动力学模型

    对于基于车辆动力学模型的控制方法,首要的工作是对车辆动力学进行建模
    由于车辆动力学模型具有强 非线性时变 的特性,因此精确建模整个车辆动力学十分困难

    在横向控制中,主要关心的是车辆横向运动特性
    通常将车辆动力学模型简化为的二自由度横向动力学模型
    假设车身的纵向速度Vx 保持不变, 其横向动力学模型的两个自由度为:

    • 横向运动
    • 横摆运动

    由于精确的二自由度动力学模型是非线性的,为了便于进行实时的跟踪控制计算
    通常还需要在精确的二自由度动力学模型基础上进行一些简化近似,得到线性二自由度动力学模型

    这里介绍基于 转向小角度轮胎动力学 线性化假设下的车辆线性二自由度动力学模型
    下图为车辆为车辆横向动力学坐标系示意图
    在这里插入图片描述

    假设道路平整(不考虑道路横向的倾斜),且转向角度较小时
    则车身𝑦轴方向应用牛顿第二定律可得:

    在这里插入图片描述
    其中,𝑚是整车质量, 𝛼y 是车辆质心处的横向加速度, Fyf,Fyr 为地面给前轮胎和后轮施加的横向力
    而横向加速度𝛼y 由两部分组成:

    • 车辆沿车身𝑦轴横向运动产生的加速度 y ˙ \dot{y} y˙
    • 车身横摆运动产生的向心加速度 vx ψ ˙ \dot{\psi} ψ˙

    因此:
    在这里插入图片描述
    将(3-2)代入(3-1)可得:
    在这里插入图片描述
    然后,车辆绕𝑧轴的转矩平衡方程为:

    在这里插入图片描述
    其中, l l lf , l l lr 分别是前轮轴和后轮轴到质心的距离

    接下来对横向轮胎力 Fyf,Fyr进行计算
    实验结果表明,轮胎侧偏角较小时
    地面施加给轮胎的横向力(侧偏力)与轮胎侧偏角成线性关系(侧偏角是车轮速度方向与车轮纵轴的夹角)
    在这里插入图片描述
    前轮侧偏角为:
    在这里插入图片描述

    θ \theta θvf 是前轮胎速度方向与车身纵轴的夹角,𝛿为前轮转向角
    后轮的侧偏角为:
    在这里插入图片描述
    θ \theta θvr 是后轮胎速度方向与车身纵轴的夹角

    因此,前轮(2个)横向轮胎力为:
    在这里插入图片描述
    C𝛼f 是前轮侧偏刚度(cornering stiffness)

    同样,后轮(2个)横向轮胎力为:
    在这里插入图片描述
    C𝛼r 是后轮侧偏刚度

    计算 θ \theta θvf θ \theta θvr
    在这里插入图片描述

    θ \theta θvf θ \theta θvr 较小时可近似得到:
    在这里插入图片描述
    将(3-5),(3-6),(3-7),(3-8),(3-11),(3-12)代入(3-3)和(3-4)可得线性二自由度模型的状态方程:
    在这里插入图片描述


    3.2. 车辆路径跟踪偏差状态方程的构建

    有了式(3-13)的系统状态方程之后
    就可以分析出在给定的前轮转角输入下,车辆的横向位移、横向速度、横摆角以及横摆角速度的响应

    但是横向跟踪控制的目的是为了减小跟踪偏差
    需要的状态方程是能够分析在给定的前轮转角下车辆跟踪偏差的响应
    因此些偏差通常是:

    • 横向位置偏差𝑒1 及横向位置偏差变化率 e ˙ \dot{e} e˙1
    • 横摆角偏差𝑒2 及横摆角偏差变化率 e ˙ \dot{e} e˙2

    在这里插入图片描述
    下面介绍具体的转换过程
    车辆期望横摆角速度:
    在这里插入图片描述
    期望的横向加速度𝛼ydes 为:
    在这里插入图片描述
    则横向加速度偏差 e ˙ \dot{e} e˙1 为:
    在这里插入图片描述
    因此横向位置偏差变化率 e ˙ \dot{e} e˙1 (横向速度偏差)为:
    在这里插入图片描述
    此外,横摆角偏差 𝑒2 为:
    在这里插入图片描述
    将式(3-16),(3-17),(3-18)代入(3-3),(3-4)化简后可以得到新的状态方程:

    在这里插入图片描述
    即:
    在这里插入图片描述
    进一步忽略 ψ ˙ \dot{\psi} ψ˙des 项之后:
    在这里插入图片描述

    上式(3-20)就是横向控制所需的路径跟踪偏差状态方程


    3.3. LQR 横向控制算法的求解

    基于前面推导的路径跟踪偏差系统状态方程(3-20)
    就可以分析在前轮转角控制输入𝛿作用下,车辆路径跟踪偏差𝑥的响应特性

    期望的响应特性就是 跟踪偏差能够快速、稳定地趋近于零,并保持平衡
    同时前轮转角控制输入又尽可能小
    ,这就是一个典型的多目标优化最优控制问题

    且优化的目标函数可以表示为跟踪过程累计的跟踪偏差与累计的控制输入的加权和
    如式(3-21)所示:
    在这里插入图片描述
    其中, 𝑄为半正定的状态加权矩阵, 𝑅为正定的控制加权矩阵
    且 𝑄, 𝑅通常取为对角阵

    若只是 x x x δ \delta δ 做为代价,那么存在 x x x的正误差被 δ \delta δ的负误差消除
    相反,自身相乘,这样负值也会产生正平方,称这些为二次项

    𝑄矩阵元素变大意味着希望跟踪偏差能够快速趋近于零
    𝑅矩阵元素变大意味着希望控制输入能够尽可能小

    设M是n阶方阵,如果对任何非零向量z,都有zTMz> 0,其中zT 表示z的转置,就称M为正定矩阵

    则式(3-21)目标函数中
    第一项优化目标 ∫ 0 ∞ ( x T Q x )   d t \int_{0}^{∞} (x^TQx)\, dt 0(xTQx)dt 表示跟踪过程路径偏差的累积大小
    第二项优化目标 ∫ 0 ∞ ( δ T R δ )   d t \int_{0}^{∞} (\delta^TR\delta)\, dt 0(δTRδ)dt 表示跟踪过程控制能量的损耗

    这样就将横向控制问题转化为一个最优控制问题:
    求解最优的前轮转角控制输入 δ \delta δ* ,使得式(3-21)目标函数 𝐽 可以取极小值

    而式(3-21)是一个关于状态变量𝑥和控制输入𝛿的二次型目标函数
    对它的优化求解是一个典型的 LQR 最优控制问题

    根据 LQR 最优控制理论,对式(3-21)目标函数的优化求解
    解出的最优控制规律 δ \delta δ* 是关于状态变量𝑥的线性函数:

    在这里插入图片描述
    其中,𝐴d 和 Bd 代表状态方程(3-20)离散化后的𝐴, B1 矩阵, 𝑃是式(3-23)黎卡提方程的解:
    在这里插入图片描述
    因此,根据式(3-22)可以设计一个状态反馈调节器,通过状态反馈实现闭环最优控制,如图所示
    在这里插入图片描述
    根据求解的状态反馈调节器增益𝐾,则可以得到最优的状态反馈前轮转角 δ \delta δfb
    在这里插入图片描述
    由于在 LQR 状态反馈控制求解过程中没有考虑路径本身的动态变化特性
    因此只有式(3-25)的反馈控制输入时 LQR 控制在曲线行驶时会存在稳态误差

    稳态误差是系统从一个稳态过渡到新的稳态,或系统受扰动作用又重新平衡后,系统出现的偏差

    为了消除该稳态误差, 还需要加上一个前馈控制输入量 δ \delta δff
    前馈控制考虑了路径的曲率及车辆的转向不足特性
    在这里插入图片描述
    其中, KV为不足转向梯度,表征了车辆的转向特性
    e2ss 为稳态时的角度跟踪偏差
    k3 为𝐾矩阵中的角度偏差反馈控制增益部分
    在这里插入图片描述
    因此,总的 LQR 前轮转角输入为:
    在这里插入图片描述


    4. 总结

    本文主要介绍了基于车辆运动学和动力学模型的横向控制算法
    从上文对两类方法的分析可以看出,两类方法在应用场景上都存在一定的局限性,并具有较强的互补性
    因此在实际使用中,综合使用这些方法会更有效
    在这里插入图片描述

    无模型的 PID 横向控制算法参数少,简单易用
    但是由于没有考虑车辆系统动力学特性及路径本身的动态变化特性,对外界干扰的鲁棒性较差
    在高速或曲率较大的弯道场景时,会出现较大的跟踪误差和“画龙”现象
    因此,该方法比较适合应用于低速曲率较小的路径跟踪控制场景中

    基于运动学模型的横向控制算法中
    Pure Pursuit 和 Stanley 前轮反馈算法在中低速场景下,他们的路径跟踪的性能较好

    Pure Pursuit 在大的跟踪误差和非连续的路径场景下鲁棒性较好
    其控制的关键在于对最佳前向预瞄距离的确定
    其中,增大前向预瞄距离将提高车辆控制的稳定性
    但随之会带来路径跟踪性能降低及稳态误差增大的后果,表现出转弯内切现象

    相比于 Pure Pursuit 算法,Stanley 前轮反馈算法还额外考虑了横摆角偏差
    因此在大多数场景下,跟踪性能更佳
    然而,由于没有设置前向预瞄,Stanley 算法会出现转向过度的情况
    与 Pure Pursuit 和 Stanley 算法相比,后轮反馈控制算法计算更加复杂, 对路径的平滑性要求更高
    在中等速度下的跟踪性能及鲁棒性与 Stanley 方法近似
    然而在速度较大时,稳态误差也会变大,从而导致控制效果不佳

    LQR 算法使用二自由度动力学模型来设计横向控制器
    与前述基于运动学模型的几种算法相比,LQR 参数调节更加复杂
    其不仅需要获取车辆自身的模型参数
    还需要调节LQR 目标函数的 Q,R 矩阵以获得较优的跟踪性能

    LQR 算法的优点在于,通过与转向前馈进行有效结合,LQR 能够很好的解决曲线行驶时的稳态跟踪误差
    中等速度曲线行驶时其稳态误差趋近于零,从而极大提升跟踪性能
    LQR 非常适用于路径平滑的高速公路及城市驾驶场景,具有较好的车辆高速控制性能

    但是,由于模型的固有缺陷,LQR 与前馈控制的结合也无法解决所有跟踪控制问题
    由于该方法采用基于简化后的二自由度动力学模型
    因此当车辆运动不满足二自由度动力学模型转向小角度,或轮胎动力学线性化的假设条件时
    LQR 算法的跟踪性能会大幅降低,从而导致控制失效


    参考: 走进自动驾驶横向控制,你需要这篇超长综述


    谢谢

    展开全文
  • 反馈校正:基于测量模型预测进行修正。 图例: 对于参考轨迹1,以时刻k作为当前时刻,预测[K,K+Np]的系统输出,通过求解以某目标的优化问题,得到预测控制量4,以该控制序列的第一个元素作为实际控制量。 下一...
  • 电机矢量控制方法

    万次阅读 多人点赞 2017-03-23 16:54:47
    在工业控制领域,电动机是一个重要的研究方向,发电厂60%的能量都去驱动电动机来为人类服务,可见电机的控制在工业以及军事方面的重要性。电动机分为直流电机和交流电机,而交流电机包括同步交流电机和异步交流电机...
  • 非线性模型预测控制-建模方法

    千次阅读 2017-11-21 11:42:28
    非线性模型预测控制-建模方法
  • 在某段时间,若网络中某一资源的需求超过了该资源所能提供的可用部分,网络的性能就要变换,叫做拥塞 拥塞控制和流量控制的区别: 拥塞控制往往是一种全局的,防止过多的数据注入到网络之中,而TCP连接的端点...
  • 工业PID控制方法的C语言实现详解

    万次阅读 多人点赞 2015-05-14 11:57:42
    1 典型环节的微分方程、传递函数及C语言实现方法 无论多么复杂的系统,总是可以由简单的子系统构成,分析典型环节的特点,其目的是为了通过典型环节的特点分析更为复杂的系统,实际工程应用中,真正完全通过理论的...
  • IO设备的控制方式

    万次阅读 2020-10-13 22:04:21
    1:使用轮询的可编程方式  cpu不停地检查设备的状态,以字节为单位,非中断方式,利用率低 ... 以数据块为单位,放宽响应时间  4:IO通道的方式  以数据块组成的一组数据块为单位,大幅度提高CPU的利用率 ...
  • 【BLDC理论篇】直流无刷电机控制方法

    万次阅读 多人点赞 2019-11-01 15:38:13
    BLDC进行梯形波控制时,需要检测转子磁极位置,根据检测的位置定子线圈进行换相通电,形成6步的旋转磁场,进而带动转子同步转动的控制方式。而检测转子磁极位置又可分为电机带霍尔传感器(有感)以及不带霍尔传感器...
  • PID温度控制参数整定方法

    万次阅读 多人点赞 2018-03-27 16:53:35
    出处:https://blog.csdn.net/pengzhihui2012/article/details/50380780最近做了一个温度控制相关的项目,...1. 位置式PID控制公式原型:u(t) = kp * e(t) + ki * [e(1) + e(2) + ....+ e(t)] + kd...
  • CSMA/CD介质访问控制方法

    千次阅读 2018-11-15 15:07:48
    基本概念 早期的局域网的部署一般都是总线型的,总线型局域网采用"共享介质"的...节点需要通过“竞争”的方式获得发送权,每个节点能够得到总线发送权的时间是不确定的,所以CSMA/CD属于随机型介质访问控制方法
  • 无人驾驶汽车系统入门(十)——基于运动学模型的模型预测控制 在前面的第五篇博客中,我们介绍了两种常见的车辆模型——...被广泛应用,但是它并不一定能够以最“节约”的方式进行控制,即所谓的 优化控制, 而MP
  • JAVA上百实例源码以及开源项目

    千次下载 热门讨论 2016-01-03 17:37:40
    发送消息,同时文本进行少量修改,发送end-of-messages消息,最后关闭连接。 Tcp服务端与客户端的JAVA实例源代码 2个目标文件 摘要:Java源码,文件操作,TCP,服务器  Tcp服务端与客户端的JAVA实例源代码,一个简单...
  • 机器人编队控制总结

    万次阅读 多人点赞 2019-01-09 21:14:58
    文章目录简介基于领航者-跟随者(Leader-follower)的编队控制方法基于虚拟结构(Virtual Structure)的编队控制方法基于人工势场(Artificial Potential Field)的编队控制方法基于行为(Behavior)的编队控制方法 ...
  • 实现数据库安全性控制的常用方法和技术。

    万次阅读 多人点赞 2018-05-14 15:49:11
    方法由系统提供一定的方式让用户标识自己的名字或身份。每次用户要求进入系统时,由系统进行核对,通过鉴定后才能提供系统的使用权 (2)存取控制 通过用户权限定义和合法权检查确保只有合法权限的用户...
  • Restful Api的访问控制方法

    万次阅读 2016-02-26 11:39:25
    最近在做的两个项目,都需要使用Restful Api,接口的安全性和访问控制便成为一个问题,看了一下别家的API访问控制办法。 在stackoverflow上Simone Carletti 提出了两种解决方案: 1. 使用一个基础HTTP认证,...
  • 步进电机是将电脉冲控制信号转变为角位移或线位移的一种常用的数字控制执行元件,又称为脉冲电机。在驱动电源的作用下,步进电机受到脉冲的控制,其转子的角位移量和速度严格地与输入脉冲的数量和脉冲频率成正比。...
  • 姿态解算(一)飞控控制方法学习

    万次阅读 2016-01-28 16:37:48
    飞控控制方法学习“飞控”是指无人机的飞行控制器,用于自动化保持飞行器处于一个特定的状态(悬停、飞行等)。由于无人机经常处于“超视距”的环境飞行,所以自动化控制的飞控对于无人机来说是不能缺少的。好的飞控...
  • 本文介绍通过增量式PID控制器实现通过自动驾驶车辆的EPS进行扭矩响应控制从而实现期望方向盘转角的控制控制器采用增量式PID 根据位置式PID控制公式,写出n-1时刻的控制量: 此处,我们仅使用PI控制即可。 ...
  • 已经过了工作的年纪,在这里稍微出一下自己做的一套永磁同步电机的教程,从基础的矢量控制,到应用性较强的MTPA、弱磁控制等,最后深入到无速度传感器的控制,搜集了三种无速度的方法,足够大家从基础到深入整个过程...
  • H264的码率控制方法(CBR, VBR, CVBR,ABR)

    万次阅读 2018-08-03 11:23:19
    CBR(Constant Bit Rate)是以恒定比特率方式进行编码,有Motion发生时,由于码率恒定,只能通过增大QP来减少码字大小,图像质量变差,当场景静止时,图像质量又变好,因此图像质量不稳定。这种算法优先考虑码率...
  • 总线控制 一、总线判优控制 1.基本概念: 总线判优控制的集中式方式有三种:链式查询、计数器定时查询、独立请求方式 1.链式查询方式 ...注:在查询链中离总线控制器最近... 缺点:速度慢,需要一直向下查询,...
  • spss教程进行单因素方差分析(图文教程) 单因素方差分析原理 因变量:连续变量 自变量:多分类 ...统计推断方法是计算F统计量,进行F检验,总的变异平方和 SST,控制变量引起的离差SSA(Be...
  • 温度控制实习(大林算法C语言)

    千次阅读 2019-01-05 20:42:06
    然后把温度数据送入单片机进行数据处理,与设定值进行比较,把采集到的温度送到数码显示管上显示,同时,通过调节可控硅导通角来控制电热杯的温度和升温速率,从而达到电热杯的温度进行控制的目的。 2、实习原理 ...
  • 家用电器远程控制

    万次阅读 多人点赞 2019-06-19 10:49:22
    通过手机远程控制家用电器的方法逐渐得到了人们的认可和青睐。而且人们住宅的舒适度,安全性和智能化的要求越来越高,如今WIFI越来越普及。因此设计一种通过WIFI模块和互联网实现家电的远程控制系统,已经具备了...
  • 一、静态指标术语 二、动态指标术语 三、步进电机加减速过程控制技术 四、步进电机的细分驱动控制 五、步进电机控制策略

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,386,376
精华内容 554,550
关键字:

对时间进行控制的方法