zoukankan      html  css  js  c++  java
  • LQR算法如何跟随变化的期望状态

    开门见山,通过LQR的能量函数可以看出,LQR算法是将状态量控制到零(关于能量函数请看我的随笔:LQR要点),但实际控制中我们希望状态量能够跟随期望值

    下面将会解决如何用LQR算法跟随变化的期望值:

    分为两个子问题:

    1 如何稳定在期望值

    设实际状态量x,期望状态x_ref,将实际状态量与期望状态作差,记为x_delta,x_delta作为我们要控制的状态量

    x_delta = x - x_ref

    完成迭代:x_delta(i+1) = A * x_delta(i) + B * u(i)

    其中u(i) = -K * x_delta(i)        K=dlqr(A,B,Q,R)

    我们需要的是状态量x

    x = x_delta + x_ref

    输出x我们会发现状态量就可以稳定在期望值了(LQR控制需要一定时间,因此要适当取迭代次数,另外增大Q可以加速收敛)

    2 跟随变化的期望值

    通过调试LQR,我们会发现LQR需要一定时间才可以稳定在期望值,想要达到更好的观测效果我们需要把期望状态从连续信号转化为阶跃信号,实际控制中我们得到的信号或是期望的信号都是阶跃的离散的,因此阶跃信号的期望状态更贴近现实:

    并且L要保证此LQR算法需要在L期间内能够稳定到X1

    控制效果会变成:

  • 相关阅读:
    Servlet学习小结
    HTTP学习小结
    SpringMVC第二天
    使用Servlet 编写过滤器
    项目使用框架
    java-web
    SSM框架集成.下(供自己练习查阅用)
    SSM框架集成.中(供自己练习查阅用)
    SSM框架集成.上(供自己练习查阅用)
    debug
  • 原文地址:https://www.cnblogs.com/niulang/p/9257265.html
Copyright © 2011-2022 走看看